{
  "name": "qr-restaurant-backend",
  "version": "1.0.0",
  "private": true,
  "description": "Restaurant QR Ordering & Payment SaaS - API server (Express + Socket.IO + MariaDB)",
  "main": "app.js",
  "engines": {
    "node": ">=18.18"
  },
  "scripts": {
    "dev": "tsx watch src/server.ts",
    "build": "tsc -p tsconfig.build.json",
    "start": "node app.js",
    "typecheck": "tsc --noEmit -p tsconfig.json",
    "db:migrate": "tsx src/db/migrate.ts",
    "db:seed": "tsx src/db/seed.ts",
    "db:migrate:prod": "node dist/db/migrate.js",
    "db:seed:prod": "node dist/db/seed.js"
  },
  "dependencies": {
    "bcryptjs": "^3.0.3",
    "compression": "^1.8.2",
    "cookie-parser": "^1.4.7",
    "cors": "^2.8.6",
    "dotenv": "^18.0.3",
    "exceljs": "^4.4.0",
    "express": "^5.2.1",
    "express-rate-limit": "^8.7.0",
    "helmet": "^8.3.0",
    "jsonwebtoken": "^9.0.3",
    "maxmind": "^5.1.0",
    "morgan": "^1.12.1",
    "multer": "^2.4.0",
    "mysql2": "^3.24.4",
    "socket.io": "^4.8.3",
    "zod": "^4.6.5"
  },
  "devDependencies": {
    "@types/compression": "^1.8.1",
    "@types/cookie-parser": "^1.4.10",
    "@types/cors": "^2.8.19",
    "@types/express": "^5.0.6",
    "@types/jsonwebtoken": "^9.0.10",
    "@types/morgan": "^1.9.10",
    "@types/multer": "^2.2.0",
    "@types/node": "^22.20.4",
    "tsx": "^4.23.15",
    "typescript": "^5.9.3"
  }
}
