{
  "name": "vzzpr",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "ts-node src/server.ts",
    "build": "tsc",
    "serve": "node dist/server.js",
    "dev": "nodemon --exec ts-node src/server.ts",
    "seed": "ts-node src/seeder.ts",
    "worker:notification": "ts-node src/worker/notificationWorkerRunner.ts",
    "worker:video": "ts-node src/worker/videoProcessingWorkerRunner.ts",
    "worker:all": "ts-node src/workers.ts",
    "workers:start": "node scripts/start-workers.js",
    "docker:build": "docker build -t qtechdevexperts/vzzpr-backend:latest . && docker build -f Dockerfile.worker -t qtechdevexperts/vzzpr-backend-worker:latest . && docker push qtechdevexperts/vzzpr-backend:latest && docker push qtechdevexperts/vzzpr-backend-worker:latest",
    "docker:build:local": "docker build -t vzzpr-backend:latest . && docker build -f Dockerfile.worker -t vzzpr-backend-worker:latest .",
    "docker:build:backend": "docker build -t qtechdevexperts/vzzpr-backend:latest . && docker push qtechdevexperts/vzzpr-backend:latest",
    "docker:build:worker": "docker build -f Dockerfile.worker -t qtechdevexperts/vzzpr-backend-worker:latest . && docker push qtechdevexperts/vzzpr-backend-worker:latest",
    "k8s:deploy": "kubectl apply -f k8s/namespace.yaml && kubectl apply -f k8s/configmap-env.yaml && kubectl apply -f k8s/secret-env.yaml && kubectl apply -f k8s/redis.yaml && kubectl wait --for=condition=ready pod -l app=redis -n vzzpr-backend --timeout=300s && kubectl apply -f k8s/backend.yaml && kubectl apply -f k8s/backend-loadbalancer.yaml && kubectl apply -f k8s/ingress.yaml && kubectl apply -f k8s/notification-worker.yaml && kubectl apply -f k8s/video-worker.yaml && kubectl apply -f k8s/backend-hpa.yaml && kubectl apply -f k8s/notification-worker-hpa.yaml && kubectl apply -f k8s/video-worker-hpa.yaml && kubectl wait --for=condition=ready pod -l app=backend -n vzzpr-backend --timeout=300s",
    "k8s:update": "npm run docker:build && kubectl rollout restart deployment/backend -n vzzpr-backend && kubectl rollout restart deployment/notification-worker -n vzzpr-backend && kubectl rollout restart deployment/video-worker -n vzzpr-backend && kubectl rollout status deployment/backend -n vzzpr-backend && kubectl rollout status deployment/notification-worker -n vzzpr-backend && kubectl rollout status deployment/video-worker -n vzzpr-backend",
    "k8s:status": "kubectl get pods,services,ingress -n vzzpr-backend",
    "k8s:logs": "kubectl logs -f deployment/backend -n vzzpr-backend",
    "k8s:logs:worker:notification": "kubectl logs -f deployment/notification-worker -n vzzpr-backend",
    "k8s:logs:worker:video": "kubectl logs -f deployment/video-worker -n vzzpr-backend",
    "k8s:clean": "kubectl delete namespace vzzpr-backend",
    "k8s:port-forward": "kubectl port-forward service/backend 7440:7440 -n vzzpr-backend"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@aws-sdk/client-s3": "^3.830.0",
    "@types/multer-s3": "^3.0.3",
    "@types/ua-parser-js": "^0.7.39",
    "apple-signin-auth": "^2.0.0",
    "aws-sdk": "^2.1692.0",
    "axios": "^1.6.0",
    "bcrypt": "^6.0.0",
    "body-parser": "^2.2.0",
    "bullmq": "^5.56.0",
    "cors": "^2.8.5",
    "date-fns": "^4.1.0",
    "dotenv": "^16.5.0",
    "express": "^5.1.0",
    "express-rate-limit": "^7.4.0",
    "firebase-admin": "^13.4.0",
    "fluent-ffmpeg": "^2.1.3",
    "google-auth-library": "^10.2.1",
    "googleapis": "^148.0.0",
    "helmet": "^7.1.0",
    "ioredis": "^5.6.1",
    "jsonwebtoken": "^9.0.2",
    "mongoose": "^8.16.0",
    "morgan": "^1.10.0",
    "morgan-body": "^2.6.9",
    "multer": "^2.0.1",
    "multer-s3": "^3.0.1",
    "nodemailer": "^7.0.3",
    "otplib": "^12.0.1",
    "qrcode": "^1.5.3",
    "socket.io": "^4.8.1",
    "swagger-jsdoc": "^6.2.8",
    "swagger-ui-express": "^5.0.1",
    "twilio": "^5.10.4",
    "ua-parser-js": "^2.0.4",
    "uuid": "^11.1.0",
    "winston": "^3.17.0",
    "winston-daily-rotate-file": "^5.0.0",
    "zod": "^3.25.67"
  },
  "devDependencies": {
    "@types/aws-sdk": "^0.0.42",
    "@types/bcrypt": "^5.0.2",
    "@types/cors": "^2.8.19",
    "@types/express": "^5.0.3",
    "@types/fluent-ffmpeg": "^2.1.27",
    "@types/ioredis": "^4.28.10",
    "@types/jsonwebtoken": "^9.0.10",
    "@types/morgan": "^1.9.10",
    "@types/multer": "^1.4.13",
    "@types/node": "^24.0.10",
    "@types/nodemailer": "^6.4.17",
    "@types/qrcode": "^1.5.5",
    "@types/swagger-jsdoc": "^6.0.4",
    "@types/swagger-ui-express": "^4.1.8",
    "@types/uuid": "^10.0.0",
    "nodemon": "^3.1.10",
    "ts-node": "^10.9.2",
    "typescript": "^5.8.3"
  }
}
