{
  "name": "royal-enfield-onboarding-backend",
  "version": "1.0.0",
  "description": "Backend API for Royal Enfield Dealership Onboarding System",
  "type": "module",
  "main": "server.js",
  "scripts": {
    "start": "node dist/src/server.js",
    "dev": "tsx watch src/server.ts",
    "build": "tsc",
    "type-check": "tsc --noEmit",
    "migrate": "tsx scripts/migrate.ts",
    "reset:stable": "tsx scripts/reset_db_stable.ts",
    "seed": "tsx scripts/seed_normalized_data.ts",
    "seed:roles": "tsx scripts/seed-roles.ts",
    "seed:permissions": "tsx scripts/seed-permissions.ts",
    "seed:approval-policies": "tsx scripts/seed-approval-policies.ts",
    "seed:email-templates": "tsx src/scripts/seed-master-emails.ts",
    "seed:configs": "tsx scripts/seed-system-configs.ts",
    "seed:document-configs": "tsx scripts/seed-document-configs.ts",
    "seed:interview-configs": "tsx scripts/seed-interview-configs.ts",
    "seed:sla-configs": "tsx scripts/seed-sla-configs.ts",
    "seed:all": "npm run seed:permissions && npm run seed && npm run seed:approval-policies && npm run seed:questionnaire && npm run seed:email-templates && npm run seed:configs && npm run seed:document-configs && npm run seed:interview-configs && npm run seed:sla-configs",
    "setup:fresh": "npm run migrate && npm run seed:real-geo && npm run seed:all && npm run sync:hierarchy",
    "seed:real-geo": "tsx scripts/seed_real_locations.ts && npm run sync:hierarchy",
    "seed:state-district": "tsx scripts/seed-state-district-only.ts",
    "seed:minimal-admin": "tsx scripts/seed-minimal-admin.ts",
    "setup:fresh:minimal": "npm run migrate && npm run seed:roles && npm run seed:state-district && npm run seed:minimal-admin",
    "sync:hierarchy": "tsx scripts/sync-all-hierarchy.ts",
    "seed:questionnaire": "tsx src/scripts/seedQuestionnaire.ts",
    "test": "jest",
    "test:coverage": "jest --coverage",
    "clear-logs": "rm -rf logs/*.log"
  },
  "keywords": [
    "royal-enfield",
    "dealership",
    "onboarding",
    "api"
  ],
  "author": "Royal Enfield",
  "license": "PROPRIETARY",
  "dependencies": {
    "bcryptjs": "^3.0.3",
    "bullmq": "^5.73.4",
    "compression": "^1.8.1",
    "cors": "^2.8.5",
    "dotenv": "^17.2.3",
    "express": "^5.2.1",
    "express-rate-limit": "^8.2.1",
    "express-validator": "^7.3.1",
    "handlebars": "^4.7.8",
    "helmet": "^8.1.0",
    "ioredis": "^5.10.1",
    "jsonwebtoken": "^9.0.3",
    "multer": "^2.0.2",
    "nodemailer": "^7.0.12",
    "pg": "^8.18.0",
    "pg-hstore": "^2.3.4",
    "sanitize-html": "^2.17.3",
    "sequelize": "^6.37.7",
    "socket.io": "^4.8.3",
    "uuid": "^13.0.0",
    "web-push": "^3.6.7",
    "winston": "^3.19.0"
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.6",
    "@types/compression": "^1.8.1",
    "@types/cors": "^2.8.19",
    "@types/express": "^5.0.6",
    "@types/jest": "^30.0.0",
    "@types/jsonwebtoken": "^9.0.10",
    "@types/multer": "^2.0.0",
    "@types/node": "^25.0.9",
    "@types/nodemailer": "^7.0.5",
    "@types/pg": "^8.16.0",
    "@types/sanitize-html": "^2.16.1",
    "@types/supertest": "^6.0.3",
    "@types/uuid": "^10.0.0",
    "@types/validator": "^13.15.10",
    "@types/web-push": "^3.6.4",
    "jest": "^30.2.0",
    "nodemon": "^3.0.2",
    "supertest": "^7.2.2",
    "ts-node": "^10.9.2",
    "tsx": "^4.21.0",
    "typescript": "^5.9.3"
  },
  "engines": {
    "node": ">=18.0.0",
    "npm": ">=9.0.0"
  }
}
