{
  "name": "typescript-express-starter",
  "version": "0.0.0",
  "description": "TypeScript + Knex + MySQL + Express API Server",
  "author": "",
  "license": "ISC",
  "scripts": {
    "start": "npm run build && cross-env NODE_ENV=production node dist/server.js",
    "dev": "cross-env NODE_ENV=development nodemon",
    "build": "swc src -d dist --source-maps --copy-files",
    "build:tsc": "tsc && tsc-alias",
    "test": "jest --forceExit --detectOpenHandles",
    "lint": "eslint --ignore-path .gitignore --ext .ts src/",
    "lint:fix": "npm run lint -- --fix",
    "seed": "knex seed:run --knexfile=knexfile.ts --verbose",
    "migrate": "knex migrate:latest --knexfile=knexfile.ts --verbose",
    "rollback": "knex migrate:rollback --knexfile=knexfile.ts --verbose",
    "make:seeder": "knex seed:make --knexfile=knexfile.ts -x ts --env development",
    "make:migration": "knex migrate:make --knexfile=knexfile.ts -x ts --env development",
    "deploy:prod": "npm run build && pm2 start ecosystem.config.js --only prod",
    "deploy:dev": "pm2 start ecosystem.config.js --only dev"
  },
  "dependencies": {
    "bcrypt": "^5.0.1",
    "class-transformer": "^0.5.1",
    "class-validator": "^0.13.2",
    "compression": "^1.7.4",
    "cookie-parser": "^1.4.6",
    "cors": "^2.8.5",
    "dotenv": "^16.0.1",
    "envalid": "^7.3.1",
    "express": "^4.18.1",
    "helmet": "^5.1.1",
    "hpp": "^0.2.3",
    "jsonwebtoken": "^8.5.1",
    "knex": "^2.2.0",
    "morgan": "^1.10.0",
    "mysql": "^2.18.1",
    "objection": "^3.0.1",
    "reflect-metadata": "^0.1.13",
    "swagger-jsdoc": "^6.2.1",
    "swagger-ui-express": "^4.5.0",
    "typedi": "^0.10.0",
    "winston": "^3.8.1",
    "winston-daily-rotate-file": "^4.7.1"
  },
  "devDependencies": {
    "@swc/cli": "^0.1.57",
    "@swc/core": "^1.2.220",
    "@types/bcrypt": "^5.0.0",
    "@types/compression": "^1.7.2",
    "@types/cookie-parser": "^1.4.3",
    "@types/cors": "^2.8.12",
    "@types/express": "^4.17.13",
    "@types/hpp": "^0.2.2",
    "@types/jest": "^28.1.6",
    "@types/jsonwebtoken": "^8.5.8",
    "@types/knex": "^0.16.1",
    "@types/morgan": "^1.9.3",
    "@types/node": "^17.0.45",
    "@types/supertest": "^2.0.12",
    "@types/swagger-jsdoc": "^6.0.1",
    "@types/swagger-ui-express": "^4.1.3",
    "@typescript-eslint/eslint-plugin": "^5.29.0",
    "@typescript-eslint/parser": "^5.29.0",
    "cross-env": "^7.0.3",
    "eslint": "^8.20.0",
    "eslint-config-prettier": "^8.5.0",
    "eslint-plugin-prettier": "^4.2.1",
    "husky": "^8.0.1",
    "jest": "^28.1.1",
    "lint-staged": "^13.0.3",
    "node-config": "^0.0.2",
    "node-gyp": "^9.1.0",
    "nodemon": "^2.0.19",
    "pm2": "^5.2.0",
    "prettier": "^2.7.1",
    "supertest": "^6.2.4",
    "ts-jest": "^28.0.7",
    "ts-node": "^10.9.1",
    "tsc-alias": "^1.7.0",
    "tsconfig-paths": "^4.0.0",
    "typescript": "^4.7.4"
  }
}
