- scripts/seed.ts: idempotent pnpm db:seed inserts "Home" household if none exists (powered by tsx)
- signIn callback: first member of household gets owner role, subsequent users get member
- src/lib/session.ts: getCurrentSession() returns { user, household, role }, throws if unauthenticated or unmembered
- /settings/household: member list for all roles; rename form gated to owner only (server action also enforces)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
53 lines
983 B
JSON
53 lines
983 B
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2022",
|
|
"lib": [
|
|
"ES2023",
|
|
"DOM",
|
|
"DOM.Iterable"
|
|
],
|
|
"module": "ESNext",
|
|
"moduleResolution": "bundler",
|
|
"resolveJsonModule": true,
|
|
"esModuleInterop": true,
|
|
"allowSyntheticDefaultImports": true,
|
|
"isolatedModules": true,
|
|
"verbatimModuleSyntax": true,
|
|
"strict": true,
|
|
"noUncheckedIndexedAccess": true,
|
|
"noImplicitOverride": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"skipLibCheck": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"allowJs": false,
|
|
"noEmit": true,
|
|
"jsx": "preserve",
|
|
"incremental": true,
|
|
"baseUrl": ".",
|
|
"plugins": [
|
|
{
|
|
"name": "next"
|
|
}
|
|
],
|
|
"paths": {
|
|
"@/*": [
|
|
"src/*"
|
|
]
|
|
}
|
|
},
|
|
"include": [
|
|
"*.cts",
|
|
"*.mts",
|
|
"*.ts",
|
|
"src/**/*",
|
|
"scripts/**/*",
|
|
".next/types/**/*.ts"
|
|
],
|
|
"exclude": [
|
|
"node_modules",
|
|
".next",
|
|
"dist",
|
|
"drizzle"
|
|
]
|
|
}
|