- Wrap next.config.ts with @serwist/next (webpack mode, disabled in dev) - Service worker: NetworkOnly for /api/*, offline fallback → /~offline - Web app manifest via Next.js metadata API (app/manifest.ts) - PNG icon set generated with sharp (192, 512, maskable-512, apple-180) - iOS meta tags: appleWebApp, themeColor viewport export - Middleware: pwaAssets early-return so /sw.js never gets a 302→login - Offline fallback page at /~offline (static, no auth dependency) - InstallPrompt component: beforeinstallprompt (Android) + iOS Share sheet instructions - Logout (menu/page.tsx): purge all SW caches on signout (shared-device safety) - Fix invite/[token]/page.tsx params type for Next.js 16 (use(params)) - Build script: next build --webpack (Serwist requires webpack, not Turbopack) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
1.6 KiB
JSON
60 lines
1.6 KiB
JSON
{
|
|
"name": "tia",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build --webpack",
|
|
"start": "next start",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate": "tsx src/db/migrate.ts",
|
|
"db:studio": "drizzle-kit studio",
|
|
"db:pull": "drizzle-kit pull",
|
|
"db:build-migrator": "node scripts/build-migrator.mjs",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest"
|
|
},
|
|
"dependencies": {
|
|
"@auth/drizzle-adapter": "^1.11.2",
|
|
"@aws-sdk/client-s3": "^3.1045.0",
|
|
"@aws-sdk/s3-request-presigner": "^3.1045.0",
|
|
"@react-pdf/renderer": "^4.5.1",
|
|
"@serwist/next": "9.5.11",
|
|
"arctic": "^3.7.0",
|
|
"bcryptjs": "^3.0.3",
|
|
"chart.js": "^4.5.1",
|
|
"date-fns": "^4.1.0",
|
|
"drizzle-orm": "^0.45.2",
|
|
"framer-motion": "^12.38.0",
|
|
"nanoid": "^5.1.11",
|
|
"next": "16.2.6",
|
|
"next-auth": "5.0.0-beta.31",
|
|
"nodemailer": "^7.0.13",
|
|
"openai": "^6.37.0",
|
|
"postgres": "^3.4.9",
|
|
"rate-limiter-flexible": "^11.1.0",
|
|
"react": "19.2.4",
|
|
"react-chartjs-2": "^5.3.1",
|
|
"react-dom": "19.2.4",
|
|
"recharts": "^3.8.1",
|
|
"resend": "^6.12.3",
|
|
"serwist": "9.5.11",
|
|
"sharp": "^0.34.5",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4",
|
|
"@types/bcryptjs": "^3.0.0",
|
|
"@types/node": "^20",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"@types/sharp": "^0.32.0",
|
|
"@vitest/coverage-v8": "^4.1.7",
|
|
"drizzle-kit": "^0.31.10",
|
|
"esbuild": "^0.25.12",
|
|
"tailwindcss": "^4",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5",
|
|
"vitest": "^4.1.7"
|
|
}
|
|
}
|