refactor(repo): переход на pnpm monorepo с shadcn/ui и Fastify+Drizzle

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 <[email protected]>
This commit is contained in:
Denozordec
2026-06-26 13:42:05 +07:00
co-authored by Cursor
parent 8408155be6
commit 6fbd1a9113
202 changed files with 16734 additions and 12145 deletions
+13 -20
View File
@@ -4,33 +4,26 @@
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "concurrently \"npm run server\" \"vite\"",
"server": "node server/index.js",
"build": "vite build",
"dev": "pnpm --filter web dev",
"dev:api": "pnpm --filter api dev",
"build": "pnpm --filter web build",
"lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
"cors": "^2.8.5",
"express": "^4.21.1",
"sql.js": "^1.14.0"
"preview": "pnpm --filter web preview",
"test": "pnpm -r --if-present test"
},
"devDependencies": {
"@eslint/js": "^9.39.1",
"@tabler/core": "^1.4.0",
"@tabler/icons-react": "^3.40.0",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.1",
"chart.js": "^4.5.1",
"concurrently": "^9.1.0",
"eslint": "^9.39.1",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
"globals": "^16.5.0",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"react-router-dom": "^7.13.1",
"vite": "^7.3.1"
"typescript": "^5.9.2"
},
"packageManager": "[email protected]3.2",
"engines": {
"node": ">=22"
},
"pnpm": {
"onlyBuiltDependencies": ["better-sqlite3", "esbuild"]
}
}