{ "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: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", "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", "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/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" } }