feat: scaffold supabase multi-tenant backend

This commit is contained in:
Codex
2026-06-21 21:54:43 +08:00
commit c9c767c7bd
99 changed files with 36660 additions and 0 deletions

80
package.json Normal file
View File

@@ -0,0 +1,80 @@
{
"name": "tianjin-zsb-master",
"version": "1.0.0",
"description": "升本刷题通 - 专业的专升本备考刷题软件",
"author": "升本刷题通团队",
"private": true,
"type": "module",
"homepage": "./",
"workspaces": [
"apps/*",
"packages/*",
"scripts/import-pocketbase"
],
"dependencies": {
"@codemirror/lang-cpp": "^6.0.3",
"@codemirror/state": "^6.6.0",
"@codemirror/view": "^6.41.1",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@google/genai": "*",
"codemirror": "^6.0.2",
"docx": "^9.6.1",
"html-to-image": "^1.11.13",
"jszip": "^3.10.1",
"katex": "^0.16.45",
"lucide-react": "^0.330.0",
"pdf-lib": "^1.17.1",
"pdfjs-dist": "^5.6.205",
"perfect-freehand": "^1.2.3",
"pocketbase": "^0.21.1",
"qrcode.react": "^4.2.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.22.0",
"react-to-print": "^3.3.0",
"recharts": "^2.12.7",
"xlsx": "^0.18.5"
},
"devDependencies": {
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.0",
"@vitejs/plugin-react": "^4.2.0",
"autoprefixer": "^10.4.16",
"postcss": "^8.4.31",
"supabase": "^2.107.0",
"tailwindcss": "^3.3.5",
"typescript": "^5.2.2",
"vite": "^5.0.0"
},
"scripts": {
"dev": "vite --mode public",
"dev:admin": "vite --mode admin",
"dev:api": "npm --workspace @tiku-saas/api run dev",
"build:api": "npm --workspace @tiku-saas/api run build",
"check:api": "npm --workspace @tiku-saas/api run check",
"check:importer": "npm --workspace @tiku-saas/import-pocketbase run check",
"check:refactor": "npm run check:api && npm run check:importer && npm run pb:import:validate && npm run test:api",
"docker:api:build": "docker compose -f docker-compose.api.yml build",
"docker:api:up": "docker compose -f docker-compose.api.yml up api",
"docker:api:down": "docker compose -f docker-compose.api.yml down",
"supabase:start": "supabase start",
"supabase:stop": "supabase stop",
"supabase:status": "supabase status",
"supabase:reset": "supabase db reset",
"db:smoke-seed": "node scripts/smoke-seed.js",
"smoke:core-api": "node scripts/smoke-core-api.js",
"test:api": "npm run db:smoke-seed && npm run build:api && node scripts/api-integration-test.js --start-server",
"test:api:remote": "node scripts/api-integration-test.js",
"pb:schema:summary": "npm --workspace @tiku-saas/import-pocketbase run schema:summary",
"pb:schema:risk": "npm --workspace @tiku-saas/import-pocketbase run schema:risk",
"pb:import:json": "npm --workspace @tiku-saas/import-pocketbase run import:json",
"pb:import:validate": "npm --workspace @tiku-saas/import-pocketbase run import:validate",
"build": "npm run build:public",
"build:public": "tsc && vite build --mode public",
"build:admin": "tsc && vite build --mode admin",
"build:all": "npm run build:public && npm run build:admin",
"preview": "vite preview"
}
}