2ae65a5a9f
Build Kvitt images / build (push) Failing after 1h14m5s
web/ is the browser client's scaffold: Vite 8, React 19, TypeScript 5.9 strict, React Router 7 (basename /app, every fixed route with a lazy placeholder page), TanStack Query 5 (refetch on focus and every 60 s), openapi-typescript types generated from contracts/openapi.yaml with openapi-fetch. Reads go through GET /sync (no REST reads exist for the ledger, SPEC §7): useLedger() pulls from cursor 0 and then incrementally, restarting on a new epoch or cursor_ahead. Login pairs the browser as "Web · <browser>" with an invite code (E-3); every call sends the SPEC §14.3.1 headers, a 401 signs out. kvitt-domain's split, balances, allocation and settlement rules are ported to web/src/lib and pass every case of contracts/test-vectors. Design tokens from design-spec §2 in tokens.css (light-dark()), Material Symbols Rounded (Apache-2.0) as generated inline SVG, sv/en catalogs generated from docs/ux/strings.csv plus web-strings.csv. Gate: cd web && npm run check. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
62 lines
1.9 KiB
JSON
62 lines
1.9 KiB
JSON
{
|
|
"name": "kvitt-web",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"description": "Kvitt web client: the SPA served by kvitt-server under /app/",
|
|
"type": "module",
|
|
"kvitt": {
|
|
"versionCode": 1
|
|
},
|
|
"engines": {
|
|
"node": ">=22.18"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
"lint": "eslint --max-warnings 0 .",
|
|
"test": "vitest run",
|
|
"api:types": "openapi-typescript ../contracts/openapi.yaml -o src/api/schema.d.ts",
|
|
"i18n:import": "node scripts/gen-i18n.mjs",
|
|
"icons:import": "node scripts/gen-icons.mjs",
|
|
"generated:check": "node scripts/check-generated.mjs",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check .",
|
|
"check": "npm run generated:check && npm run typecheck && npm run lint && npm run format:check && npm run test && npm run build"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-query": "5.104.5",
|
|
"openapi-fetch": "0.17.0",
|
|
"react": "19.3.1",
|
|
"react-dom": "19.3.1",
|
|
"react-is": "19.3.1",
|
|
"react-router": "7.18.4",
|
|
"recharts": "3.10.1"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "10.0.1",
|
|
"@material-symbols/svg-500": "0.48.1",
|
|
"@material-symbols/svg-600": "0.48.1",
|
|
"@testing-library/dom": "10.4.2",
|
|
"@testing-library/jest-dom": "7.0.1",
|
|
"@testing-library/react": "16.3.3",
|
|
"@testing-library/user-event": "14.6.8",
|
|
"@types/node": "26.6.5",
|
|
"@types/react": "19.3.0",
|
|
"@types/react-dom": "19.3.0",
|
|
"@vitejs/plugin-react": "6.1.2",
|
|
"eslint": "10.13.0",
|
|
"eslint-config-prettier": "10.1.8",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"globals": "17.13.0",
|
|
"jsdom": "30.1.3",
|
|
"openapi-typescript": "7.13.0",
|
|
"prettier": "3.9.10",
|
|
"typescript": "5.9.3",
|
|
"typescript-eslint": "8.72.0",
|
|
"vite": "8.3.5",
|
|
"vitest": "5.0.5"
|
|
}
|
|
}
|