{ "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" } }