{
  "name": "hr-system-backend",
  "version": "0.1.0",
  "private": true,
  "description": "HR Management System backend scaffold (Express + TypeScript + Knex/MySQL)",
  "main": "dist/server.js",
  "scripts": {
    "dev": "tsx watch src/server.ts",
    "build": "tsc -p tsconfig.json && node -e \"require('fs').cpSync('src/emails','dist/emails',{recursive:true})\"",
    "start": "node dist/server.js",
    "lint": "eslint .",
    "lint:fix": "eslint . --fix",
    "format": "prettier --write .",
    "test": "jest",
    "migrate": "tsx ./node_modules/.bin/knex --knexfile knexfile.ts migrate:latest",
    "migrate:rollback": "tsx ./node_modules/.bin/knex --knexfile knexfile.ts migrate:rollback",
    "seed": "tsx ./node_modules/.bin/knex --knexfile knexfile.ts seed:run"
  },
  "overrides": {
    "express-mysql-session": {
      "mysql2": "$mysql2"
    },
    "@types/express-mysql-session": {
      "mysql2": "$mysql2"
    }
  },
  "dependencies": {
    "bcrypt": "^6.0.0",
    "cors": "^2.8.5",
    "dotenv": "^16.4.5",
    "express": "^4.19.2",
    "express-mysql-session": "^3.0.3",
    "express-session": "^1.18.0",
    "handlebars": "^4.7.9",
    "helmet": "^7.1.0",
    "jsonwebtoken": "^9.0.2",
    "knex": "^3.1.0",
    "multer": "^2.4.0",
    "mysql2": "^3.10.1",
    "nodemailer": "^10.0.10",
    "winston": "^3.13.0",
    "zod": "^3.23.8"
  },
  "devDependencies": {
    "@eslint/js": "^9.5.0",
    "@types/bcrypt": "^5.0.2",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.21",
    "@types/express-mysql-session": "^3.0.8",
    "@types/express-session": "^1.18.0",
    "@types/jest": "^29.5.12",
    "@types/jsonwebtoken": "^9.0.6",
    "@types/multer": "^2.2.0",
    "@types/node": "^20.14.9",
    "@types/nodemailer": "^8.0.1",
    "@types/supertest": "^6.0.2",
    "eslint": "^9.5.0",
    "eslint-config-prettier": "^9.1.0",
    "jest": "^29.7.0",
    "prettier": "^3.3.2",
    "supertest": "^7.0.0",
    "ts-jest": "^29.1.5",
    "tsx": "^4.15.7",
    "typescript": "^5.5.2",
    "typescript-eslint": "^8.0.0"
  }
}
