{
  "name": "qr-otenex",
  "version": "1.0.0",
  "description": "OTENEX dynamic QR code platform",
  "main": "app.js",
  "engines": { "node": ">=20" },
  "scripts": {
    "start": "node app.js",
    "dev": "node --watch app.js",
    "migrate": "node scripts/migrate.js",
    "superadmin": "node scripts/create-superadmin.js",
    "reset-password": "node scripts/reset-password.js",
    "rollup": "node scripts/rollup-scans.js",
    "recheck-safety": "node scripts/recheck-safety.js"
  },
  "dependencies": {
    "bcrypt": "^5.1.1",
    "compression": "^1.7.4",
    "dompurify": "^3.1.6",
    "dotenv": "^16.4.5",
    "ejs": "^3.1.10",
    "express": "^4.19.2",
    "express-mysql-session": "^3.0.3",
    "express-rate-limit": "^7.4.0",
    "express-session": "^1.18.0",
    "helmet": "^7.1.0",
    "jsdom": "^24.1.0",
    "maxmind": "^4.3.20",
    "multer": "^1.4.5-lts.1",
    "mysql2": "^3.11.0",
    "nanoid": "^3.3.7",
    "otplib": "^12.0.1",
    "qrcode": "^1.5.3",
    "sharp": "^0.33.4",
    "ua-parser-js": "^1.0.38"
  }
}
