{
  "name": "vibe-academie-server",
  "private": true,
  "type": "module",
  "version": "1.0.0",
  "scripts": {
    "dev": "tsx watch dev.ts",
    "build": "node build.js",
    "build:simple": "tsc --project tsconfig.production.json",
    "start": "node start.js",
    "start:dev": "node dev.js",
    "typecheck": "tsc --noEmit",
    "prisma:generate": "node load-env.js && prisma generate --schema=prisma/schema.prisma",
    "prisma:migrate": "node load-env.js && prisma migrate dev --schema=prisma/schema.prisma",
    "prisma:studio": "node load-env.js && prisma studio --schema=prisma/schema.prisma",
    "prisma:push": "node load-env.js && prisma db push --schema=prisma/schema.prisma",
    "test:connection": "node test-connection.js",
    "migrate:vp-history": "tsx scripts/migrate-vp-history.ts",
    "cleanup:group-requests": "tsx scripts/cleanup-group-requests.ts"
  },
  "dependencies": {
    "@prisma/client": "^5.22.0",
    "bcryptjs": "^2.4.3",
    "cloudinary": "^2.0.0",
    "cors": "^2.8.5",
    "date-fns": "^4.1.0",
    "dotenv": "^17.2.1",
    "express": "^5.1.0",
    "jsonwebtoken": "^9.0.2",
    "multer": "^2.0.0",
    "node-cron": "^4.2.1",
    "nodemailer": "^6.9.16",
    "qrcode": "^1.5.4",
    "serverless-http": "^3.2.0",
    "socket.io": "^4.8.1",
    "speakeasy": "^2.0.0",
    "twilio": "^5.10.6",
    "zod": "^3.25.76"
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.6",
    "@types/cors": "^2.8.19",
    "@types/express": "^5.0.3",
    "@types/jsonwebtoken": "^9.0.7",
    "@types/multer": "^1.4.13",
    "@types/node": "^24.2.1",
    "@types/node-cron": "^3.0.11",
    "@types/nodemailer": "^6.4.17",
    "@types/qrcode": "^1.5.6",
    "@types/speakeasy": "^2.0.10",
    "bun-types": "^1.3.3",
    "prisma": "^5.22.0",
    "tsx": "^4.20.3",
    "typescript": "^5.9.2",
    "vite": "^7.1.2"
  }
}
