- Signup now creates unverified users and sends a verification email (Resend); dev falls back to [VERIFY-LINK] console log - /api/auth/verify-email: single-use token handler, mints tia_session on success, redirects to /onboarding - /api/auth/resend-verification: rate-limited (3/hr), enumeration-safe - Sign-in gated on email_verified — unverified accounts get 403 with needsVerification flag so the UI can show the resend button - Google OAuth via arctic v3: PKCE + state anti-CSRF, find-or-create user, writes accounts row, mints tia_session - Login page: Google button, check-email screen, resend link on 403 - drizzle/0005_email_verification.sql: creates email_verifications table + backfills all existing users as verified (runs automatically on container start before app boots) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
55 lines
1.4 KiB
JSON
55 lines
1.4 KiB
JSON
{
|
|
"name": "tia",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"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"
|
|
},
|
|
"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",
|
|
"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",
|
|
"next-pwa": "^5.6.0",
|
|
"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",
|
|
"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",
|
|
"drizzle-kit": "^0.31.10",
|
|
"esbuild": "^0.25.12",
|
|
"tailwindcss": "^4",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5"
|
|
}
|
|
}
|