244050fa75
Precache: - Service worker now precaches /fitness/workout(/active) shells (DE+EN) on install so a fresh device can log workouts offline without first visiting /fitness online. - Layout-level precache adds /fitness/__data.json itself plus the static sub-routes nutrition/meals and check-in/body-parts (DE+EN). Unsynced workouts on history: - History page reads the offline outbox via getQueuedSessions on mount and merges queued sessions into the displayed list, sorted by startTime. Duration is computed locally so the Clock stat still shows. - SessionCard gains an 'unsynced' prop: renders as a non-clickable div with an orange-accent border and a CloudOff badge labelled 'Unsynced' / 'Nicht synchronisiert'. - On window 'online', the page waits briefly for the layout's flushQueue to drain the outbox, then re-reads the queue and calls invalidateAll to swap unsynced placeholders for the now-saved server sessions.
76 lines
2.8 KiB
JSON
76 lines
2.8 KiB
JSON
{
|
|
"name": "homepage",
|
|
"version": "1.68.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite dev",
|
|
"prebuild": "bash scripts/subset-emoji-font.sh && pnpm exec vite-node scripts/generate-mystery-verses.ts && pnpm exec vite-node scripts/download-models.ts && pnpm exec vite-node scripts/generate-loyalty-cards.ts && pnpm exec vite-node scripts/generate-error-quotes.ts",
|
|
"build": "vite build",
|
|
"postbuild": "pnpm exec vite-node scripts/build-error-page.ts",
|
|
"preview": "vite preview",
|
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:ui": "vitest --ui",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:ui": "playwright test --ui",
|
|
"test:e2e:docker:up": "docker compose -f docker-compose.test.yml up -d",
|
|
"test:e2e:docker:down": "docker compose -f docker-compose.test.yml down -v",
|
|
"test:e2e:docker": "docker compose -f docker-compose.test.yml up -d && playwright test; docker compose -f docker-compose.test.yml down -v",
|
|
"test:e2e:docker:run": "docker run --rm --network host -v $(pwd):/app -w /app -e CI=true mcr.microsoft.com/playwright:v1.56.1-noble /bin/bash -c 'npm install -g pnpm@9.0.0 && pnpm install --frozen-lockfile && pnpm run build && pnpm exec playwright test --project=chromium'",
|
|
"deploy": "bash scripts/deploy.sh",
|
|
"deploy:dry": "bash scripts/deploy.sh --dry-run",
|
|
"tauri": "tauri"
|
|
},
|
|
"packageManager": "pnpm@9.0.0",
|
|
"devDependencies": {
|
|
"@playwright/test": "1.56.1",
|
|
"@sveltejs/adapter-auto": "^7.0.1",
|
|
"@sveltejs/kit": "^2.56.1",
|
|
"@sveltejs/vite-plugin-svelte": "^7.0.0",
|
|
"@tauri-apps/cli": "^2.10.1",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/svelte": "^5.3.1",
|
|
"@types/leaflet": "^1.9.21",
|
|
"@types/node": "^22.12.0",
|
|
"@types/node-cron": "^3.0.11",
|
|
"@vitest/ui": "^4.1.2",
|
|
"bwip-js": "^4.10.1",
|
|
"jsdom": "^27.2.0",
|
|
"svelte": "^5.55.1",
|
|
"svelte-check": "^4.4.6",
|
|
"tslib": "^2.8.1",
|
|
"typescript": "^6.0.2",
|
|
"vite": "^8.0.4",
|
|
"vite-node": "^6.0.0",
|
|
"vitest": "^4.1.2"
|
|
},
|
|
"dependencies": {
|
|
"@auth/sveltekit": "^1.11.1",
|
|
"@huggingface/transformers": "^4.0.1",
|
|
"@lucide/svelte": "^1.7.0",
|
|
"@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3",
|
|
"@sveltejs/adapter-node": "^5.5.4",
|
|
"@tauri-apps/plugin-geolocation": "^2.3.2",
|
|
"barcode-detector": "^3.1.2",
|
|
"chart.js": "^4.5.1",
|
|
"chartjs-adapter-date-fns": "^3.0.0",
|
|
"date-fns": "^4.1.0",
|
|
"file-type": "^19.0.0",
|
|
"leaflet": "^1.9.4",
|
|
"mongoose": "^9.4.1",
|
|
"node-cron": "^4.2.1",
|
|
"romcal": "github:AlexBocken/romcal#dev",
|
|
"sharp": "^0.34.5",
|
|
"web-haptics": "^0.0.6"
|
|
},
|
|
"pnpm": {
|
|
"onlyBuiltDependencies": [
|
|
"esbuild"
|
|
]
|
|
}
|
|
}
|