{
  "name": "betting-signals-backend",
  "version": "0.1.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "tsx watch src/index.ts",
    "build": "tsc -p tsconfig.json",
    "start": "node dist/src/index.js",
    "start:api": "node dist/src/index.js",
    "start:signals-worker": "node dist/src/workers/signals.worker.js",
    "start:push-worker": "node dist/src/workers/push.worker.js",
    "start:with-db-url": "node scripts/with-db-url.mjs node dist/src/index.js",
    "start:api:with-db-url": "node scripts/with-db-url.mjs node dist/src/index.js",
    "start:signals-worker:with-db-url": "node scripts/with-db-url.mjs node dist/src/workers/signals.worker.js",
    "start:push-worker:with-db-url": "node scripts/with-db-url.mjs node dist/src/workers/push.worker.js",
    "prisma:generate": "prisma generate",
    "prisma:migrate": "prisma migrate dev",
    "prisma:db-push:with-db-url": "node scripts/with-db-url.mjs npx prisma db push",
    "prisma:seed:with-db-url": "node scripts/with-db-url.mjs tsx prisma/seed.ts",
    "prisma:seed": "tsx prisma/seed.ts",
    "smtp:test": "node scripts/with-db-url.mjs tsx scripts/test-smtp.mjs"
  },
  "dependencies": {
    "@prisma/client": "^6.6.0",
    "bcryptjs": "^2.4.3",
    "bullmq": "^5.71.1",
    "cookie-parser": "^1.4.7",
    "cors": "^2.8.5",
    "dotenv": "^16.4.5",
    "express": "^4.21.2",
    "express-rate-limit": "^8.3.1",
    "firebase-admin": "^13.5.0",
    "helmet": "^8.1.0",
    "ioredis": "^5.10.1",
    "jsonwebtoken": "^9.0.2",
    "morgan": "^1.10.0",
    "nodemailer": "^8.0.4",
    "web-push": "^3.6.7",
    "zod": "^3.24.2"
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.6",
    "@types/cookie-parser": "^1.4.8",
    "@types/cors": "^2.8.17",
    "@types/express": "^5.0.1",
    "@types/jsonwebtoken": "^9.0.9",
    "@types/morgan": "^1.9.9",
    "@types/node": "^22.13.13",
    "@types/nodemailer": "^7.0.11",
    "@types/web-push": "^3.6.4",
    "prisma": "^6.6.0",
    "tsx": "^4.19.3",
    "typescript": "^5.8.2"
  }
}
