Frontend:
- apps/web (Vite+TS, TanStack Router/Query, shadcn/ui @cfdm/ui base-nova)
- 10 страниц в routes/_auth/, Recharts через shadcn Chart, lucide-react
- формы на RHF + Zod (FormSheet/FormField)
- удалены Tabler, Chart.js, react-router-dom
Backend (параллельный трек):
- apps/api (Fastify 5 + Drizzle + better-sqlite3)
- packages/db: Drizzle-схема и repositories по сущностям
- packages/shared: Zod-контракты
- роуты с валидацией и единым форматом ошибок { error: { code, message } }
- sync/backup — заглушки 501 (billmanager-адаптеры переносятся отдельно)
- legacy Express оставлен как runtime по умолчанию (RUNTIME=express)
Infra:
- Dockerfile multi-stage под pnpm workspaces
- .dockerignore и docker-compose обновлены под monorepo
Rules:
- удалены нерелевантные правила (rust, cloudflare, server/frontend-conventions)
- project-structure.mdc и AGENTS.md переписаны под monorepo
- frontend-shadcn.mdc, shadcn-ui-production.mdc, sqlite.mdc обновлены
Co-authored-by: Cursor <cursoragent@cursor.com>
22 lines
889 B
JSON
22 lines
889 B
JSON
{
|
|
"extends": "../../tsconfig.base.json",
|
|
"compilerOptions": {
|
|
"baseUrl": ".",
|
|
"paths": {
|
|
"@/*": ["./src/*"],
|
|
"@cfdm/ui/components/*": ["../../packages/ui/src/components/*"],
|
|
"@cfdm/ui/hooks/*": ["../../packages/ui/src/hooks/*"],
|
|
"@cfdm/ui/lib/utils": ["../../packages/ui/src/lib/utils.ts"],
|
|
"@cfdm/ui/globals.css": ["../../packages/ui/src/styles/globals.css"],
|
|
"@cfdm/shared": ["../../packages/shared/src/index.ts"],
|
|
"@cfdm/shared/contracts/*": ["../../packages/shared/src/contracts/*"],
|
|
"@cfdm/shared/types/*": ["../../packages/shared/src/types/*"],
|
|
"@cfdm/db": ["../../packages/db/src/index.ts"],
|
|
"@cfdm/db/schema": ["../../packages/db/src/schema/index.ts"],
|
|
"@cfdm/db/repositories/*": ["../../packages/db/src/repositories/*"]
|
|
},
|
|
"types": ["vite/client"]
|
|
},
|
|
"include": ["src", "vite.config.ts"]
|
|
}
|