{ "name": "educlean", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview", "dev:api": "tsx watch server/src/index.ts", "start:api": "tsx server/src/index.ts", "db:migrate": "tsx server/src/db/migrate.ts", "db:bootstrap-admin": "tsx server/src/db/bootstrap-admin.ts", "db:seed-demo-content": "tsx server/src/db/seed-demo-content.ts", "typecheck:client": "tsc --project tsconfig.json", "typecheck:api": "tsc --project server/tsconfig.json", "typecheck": "npm run typecheck:client && npm run typecheck:api" }, "dependencies": { "@fastify/cors": "^11.0.0", "@fastify/jwt": "^9.1.0", "dotenv": "^16.6.1", "fastify": "^5.3.2", "fastify-plugin": "^5.0.1", "lucide-react": "0.344.0", "pg": "^8.16.3", "react": "18.2.0", "react-dom": "18.2.0", "react-router-dom": "6.22.3", "zod": "^3.24.4" }, "devDependencies": { "@types/node": "^22.14.0", "@types/pg": "^8.15.4", "@vitejs/plugin-react": "^5.0.0", "tsx": "^4.19.4", "typescript": "~5.8.2", "vite": "^6.2.0" } }