{
  "name": "@gala/server",
  "version": "1.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "tsx watch src/index.ts",
    "build": "tsup src/index.ts --format esm --target node20 --clean",
    "start": "node dist/index.js",
    "typecheck": "tsc --noEmit",
    "db:generate": "prisma generate",
    "db:migrate": "prisma migrate dev",
    "db:push": "prisma db push",
    "db:seed": "tsx src/scripts/seed.ts",
    "test": "vitest",
    "test:load": "artillery run load-test/vote-load-test.yaml -e standard",
    "test:load:smoke": "artillery run load-test/vote-load-test.yaml -e smoke",
    "test:load:peak": "artillery run load-test/vote-load-test.yaml -e peak",
    "test:load:stress": "artillery run load-test/vote-load-test.yaml -e stress",
    "test:load:report": "artillery run load-test/vote-load-test.yaml -e standard --output load-test/report.json && artillery report load-test/report.json"
  },
  "dependencies": {
    "@gala/shared": "workspace:*",
    "@prisma/client": "^6.2.1",
    "@socket.io/redis-adapter": "^8.3.0",
    "compression": "^1.7.5",
    "cors": "^2.8.5",
    "dotenv": "^16.4.7",
    "express": "^4.21.2",
    "helmet": "^8.0.0",
    "ioredis": "^5.4.2",
    "jsonwebtoken": "^9.0.3",
    "multer": "^2.0.2",
    "nanoid": "^5.0.9",
    "pino": "^9.6.0",
    "pino-pretty": "^13.0.0",
    "socket.io": "^4.8.1",
    "uuid": "^13.0.0",
    "xlsx": "^0.18.5",
    "zod": "^3.24.1"
  },
  "devDependencies": {
    "@types/compression": "^1.7.5",
    "@types/cors": "^2.8.17",
    "@types/express": "^5.0.0",
    "@types/jsonwebtoken": "^9.0.10",
    "@types/multer": "^2.0.0",
    "@types/uuid": "^11.0.0",
    "artillery": "^2.0.28",
    "prisma": "^6.2.1",
    "socket.io-client": "^4.8.1",
    "tsup": "^8.3.5",
    "tsx": "^4.19.2",
    "typescript": "^5.7.3",
    "vitest": "^2.1.8"
  }
}