{
  "name": "server",
  "scripts": {
    "start": "cd src/ && NODE_ENV=production ts-node server.ts",
    "build": "npm run build-ts",
    "serve": "NODE_ENV=development nodemon",
    "test": "jest",
    "watch": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"cyan.bold,green.bold\" \"npm run watch-ts\" \"npm run watch-node\"",
    "watch-node": "nodemon dist/server.js",
    "build-ts": "tsc",
    "watch-ts": "tsc -w",
    "lint": "yarn lint --fix",
    "debug": "npm run build && npm run watch-debug",
    "serve-debug": "nodemon --inspect dist/server.js",
    "watch-debug": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"cyan.bold,green.bold\" \"npm run watch-ts\" \"npm run serve-debug\"",
    "type-check": "tsc --noEmit"
  },
  "dependencies": {
    "express": "^5.0.0",
    "bcrypt": "^6.0.0",
    "cookie": "^1.0.2",
    "cookie-parser": "^1.4.7",
    "cors": "^2.8.5",
    "dotenv": "^17.0.0",
    "jsonwebtoken": "^9.0.2",
    "express-rate-limit": "^7.5.0",
    "express-validator": "^7.2.1",
    "helmet": "^8.1.0",
    "http-errors": "^2.0.0",
    "mongoose": "^8.12.1",
    "morgan": "^1.9.1",
    "pug": "^3.0.1",
    "socket.io": "^4.8.1",
    "tau-prolog": "^0.3.4"
  },
  "devDependencies": {
    "@types/express": "5.0.3",
    "@types/http-errors": "2.0.5",
    "@types/jest": "30.0.0",
    "@types/morgan": "1.9.10",
    "@types/node": "22.16.3",
    "@types/supertest": "6.0.3",
    "@typescript-eslint/eslint-plugin": "8.36.0",
    "@typescript-eslint/parser": "8.36.0",
    "concurrently": "9.2.0",
    "eslint": "9.31.0",
    "eslint-config-prettier": "10.1.5",
    "eslint-plugin-import": "2.32.0",
    "jest": "^29.0.0",
    "@types/cookie-parser": "^1.4.8",
    "@babel/preset-typescript": "^7.27.0",
    "@types/bcrypt": "^5.0.2",
    "@types/jsonwebtoken": "^9.0.9",
    "nodemon": "^3.1.9",
    "prettier": "3.6.2",
    "supertest": "7.1.3",
    "ts-jest": "^29.3.0",
    "ts-node": "^10.9.2",
    "typedoc": "^0.28.0",
    "typescript": "^5.0.0"
  }
}
