f487204b73
Closes the remaining P1: move off Next 14 onto the CVE-patched Next 15 line (15.5.x), eliminating the framework's RSC DoS/source-exposure advisories and the middleware-auth-bypass class that applied to the 14.x auth gate. App Router on Next 15 requires React 19, so react/react-dom move to 19.x in lockstep; lucide-react and next-themes bump to their React-19-compatible releases. The code surface was the Next 15 async-request-API change: params and searchParams are now Promises. All [id] route handlers (10 files) and the four server pages that read them now await the resolved value, using a uniform re-derive idiom that leaves handler bodies untouched. cookies()/ headers() were already awaited, so no other request-API changes were needed; all routes stay dynamic, so the uncached-by-default change is a no-op. next.config.js (static CSP) and the middleware matcher are unchanged. No schema, no API contract change, no data migration. Verified: tsc + lint clean, 209 tests pass, next build succeeds with the standalone bundle tracing the Prisma engine.
49 lines
1.3 KiB
JSON
49 lines
1.3 KiB
JSON
{
|
|
"name": "proof-of-work",
|
|
"version": "1.0.0",
|
|
"description": "Self-hosted multi-user workout planner and logger.",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "next lint",
|
|
"db:push": "prisma db push",
|
|
"db:seed": "npx tsx prisma/seed.ts",
|
|
"create-admin": "npx tsx scripts/create-admin.ts",
|
|
"db:studio": "prisma studio",
|
|
"sync-library": "node scripts/sync-library.cjs",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:coverage": "vitest run --coverage"
|
|
},
|
|
"dependencies": {
|
|
"@prisma/client": "^5.0.0",
|
|
"autoprefixer": "^10.4.16",
|
|
"bcrypt": "^6.0.0",
|
|
"clsx": "^2.0.0",
|
|
"lucide-react": "^1.18.0",
|
|
"next": "^15.5.9",
|
|
"next-themes": "^0.4.6",
|
|
"postcss": "^8.4.31",
|
|
"react": "^19.2.0",
|
|
"react-dom": "^19.2.0",
|
|
"tailwind-merge": "^2.2.0",
|
|
"tailwindcss": "^3.3.0",
|
|
"zod": "^3.22.4"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/node": "^20.5.0",
|
|
"@types/react": "^19.2.0",
|
|
"@types/react-dom": "^19.2.0",
|
|
"@vitest/coverage-v8": "^4.1.5",
|
|
"eslint": "^8.57.1",
|
|
"eslint-config-next": "^15.5.9",
|
|
"prisma": "^5.0.0",
|
|
"tsx": "^4.7.0",
|
|
"typescript": "^5.2.2",
|
|
"vitest": "^4.1.5"
|
|
}
|
|
}
|