{
  "name": "exam-infra",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "nodemon",
    "build:client": "vite build",
    "build:server": "vite build --config vite.config.server.ts",
    "build": "npm run build:client && npm run build:server",
    "migrate": "npx prisma migrate dev",
    "migrate:deploy": "npx prisma migrate deploy",
    "generate": "npx prisma generate",
    "start": "node dist/server/server.mjs",
    "typecheck": "tsc --noEmit",
    "prisma:seed:sequence": "ts-node ./prisma/seeds/seed-sequence.ts"
  },
  "prisma": {
    "seed": "node --loader ts-node/esm ./prisma/seed.ts"
  },
  "dependencies": {
    "@expo-google-fonts/noto-sans-devanagari": "^0.4.1",
    "@expo-google-fonts/noto-sans-tamil": "^0.4.3",
    "@google/genai": "^1.30.0",
    "@hookform/resolvers": "^5.2.2",
    "@prisma/client": "^6.19.2",
    "@tanstack/react-query": "^5.90.7",
    "antd": "^5.28.0",
    "axios": "^1.13.1",
    "bcrypt": "^6.0.0",
    "cors": "^2.8.5",
    "dayjs": "^1.11.19",
    "dotenv": "^17.2.3",
    "express": "^4.22.1",
    "express-async-handler": "^1.2.0",
    "firebase-admin": "^13.6.0",
    "framer-motion": "^12.23.24",
    "jsonwebtoken": "^9.0.2",
    "lucide-react": "0.548.0",
    "multer": "^2.0.2",
    "node-cron": "^4.2.1",
    "nodemailer": "^7.0.10",
    "p-limit": "^7.3.0",
    "pdfkit": "^0.18.0",
    "pdfkit-table": "^0.2.11",
    "prisma": "^6.19.2",
    "razorpay": "^2.9.6",
    "react": "^19.2.0",
    "react-dom": "^19.2.0",
    "react-easy-crop": "^5.5.6",
    "react-hook-form": "^7.66.0",
    "react-hot-toast": "^2.6.0",
    "react-router-dom": "^7.9.5",
    "recharts": "^3.3.0",
    "sharp": "^0.34.5",
    "styled-components": "^6.1.19",
    "ts-node": "^10.9.2",
    "uuid": "^13.0.0",
    "winston": "^3.19.0",
    "xlsx": "^0.18.5",
    "yup": "^1.7.1"
  },
  "devDependencies": {
    "@eslint/js": "^9.36.0",
    "@types/bcrypt": "^6.0.0",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.21",
    "@types/jsonwebtoken": "^9.0.10",
    "@types/multer": "^2.0.0",
    "@types/node": "^24.6.0",
    "@types/nodemailer": "^7.0.3",
    "@types/pdfkit": "^0.17.6",
    "@types/pg": "^8.16.0",
    "@types/react": "^19.1.16",
    "@types/react-dom": "^19.1.9",
    "@types/winston": "^2.4.4",
    "@vitejs/plugin-react": "^5.0.4",
    "autoprefixer": "^10.4.21",
    "eslint": "^9.36.0",
    "eslint-plugin-react-hooks": "^5.2.0",
    "eslint-plugin-react-refresh": "^0.4.22",
    "globals": "^16.4.0",
    "nodemon": "^3.1.0",
    "postcss": "^8.5.6",
    "rollup-plugin-visualizer": "^7.0.1",
    "tailwindcss": "^3.4.18",
    "typescript": "~5.9.3",
    "typescript-eslint": "^8.45.0",
    "vite": "^7.1.7"
  }
}
