{ "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" } }