{
  "name": "restaurant-pos-dashboard",
  "version": "1.0.0",
  "description": "Dashboard for restaurant POS sales data with OAuth 2.0 and role-based access",
  "main": "dist/app.js",
  "scripts": {
    "build": "tsc",
    "start": "node dist/app.js",
    "dev": "ts-node-dev --respawn --transpile-only src/app.ts",
    "lint": "eslint . --ext .ts",
    "test": "jest",
    "migrate": "knex migrate:latest --knexfile src/infrastructure/database/knexfile.ts",
    "seed": "knex seed:run --knexfile src/infrastructure/database/knexfile.ts"
  },
  "dependencies": {
    "bcryptjs": "^3.0.2",
    "compression": "^1.7.4",
    "cors": "^2.8.5",
    "dotenv": "^16.3.1",
    "express": "^5.1.0",
    "express-rate-limit": "^7.1.5",
    "express-validator": "^7.0.1",
    "helmet": "^8.1.0",
    "jsonwebtoken": "^9.0.2",
    "knex": "^3.1.0",
    "morgan": "^1.10.0",
    "oauth2-server": "^3.1.1",
    "passport": "^0.7.0",
    "passport-jwt": "^4.0.1",
    "passport-oauth2": "^1.7.0",
    "pg": "^8.11.3",
    "uuid": "^11.1.0",
    "winston": "^3.11.0"
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.6",
    "@types/compression": "^1.7.5",
    "@types/cors": "^2.8.17",
    "@types/express": "^5.0.1",
    "@types/jest": "^29.5.12",
    "@types/jsonwebtoken": "^9.0.5",
    "@types/morgan": "^1.9.9",
    "@types/node": "^22.14.1",
    "@types/oauth2-server": "^3.0.16",
    "@types/passport": "^1.0.16",
    "@types/passport-jwt": "^4.0.1",
    "@types/passport-oauth2": "^1.4.15",
    "@types/pg": "^8.10.9",
    "@types/supertest": "^6.0.2",
    "@typescript-eslint/eslint-plugin": "^8.31.0",
    "@typescript-eslint/parser": "^8.31.0",
    "eslint": "^9.25.1",
    "jest": "^29.7.0",
    "supertest": "^7.1.0",
    "ts-jest": "^29.1.2",
    "ts-node": "^10.9.2",
    "ts-node-dev": "^2.0.0",
    "typescript": "^5.3.3"
  },
  "engines": {
    "node": ">=18.0.0"
  }
}
