{
  "name": "schoolchainmanager",
  "description": "School Chain Manager - template backend",
  "type": "module",
  "scripts": {
    "start": "npm run db:migrate && npm run db:seed && npm run watch",
    "start:prod": "node --enable-source-maps dist/index.js",
    "start:production": "npm run db:migrate:prod && npm run db:seed:prod && npm run start:prod",
    "db:migrate:prod": "node dist/db/umzug.js migrate:up",
    "db:seed:prod": "node dist/db/umzug.js seed:up",
    "lint": "eslint .",
    "typecheck": "tsc --noEmit",
    "test": "tsx --test 'src/**/*.test.ts'",
    "verify": "npm run typecheck && npm run lint && npm test",
    "build": "tsc -p tsconfig.build.json && tsc-alias -f && node scripts/copy-assets.mjs",
    "dev": "tsx watch src/index.ts",
    "db:migrate": "tsx src/db/umzug.ts migrate:up",
    "db:migrate:undo": "tsx src/db/umzug.ts migrate:down",
    "db:migrate:pending": "tsx src/db/umzug.ts migrate:pending",
    "db:seed": "tsx src/db/umzug.ts seed:up",
    "db:seed:undo": "tsx src/db/umzug.ts seed:down",
    "db:reset": "tsx src/db/reset.ts",
    "watch": "tsx watcher.ts"
  },
  "dependencies": {
    "@google-cloud/storage": "^7.19.0",
    "bcrypt": "6.0.0",
    "chokidar": "^5.0.0",
    "cors": "2.8.6",
    "csv-parser": "^3.2.1",
    "express": "5.2.1",
    "helmet": "8.2.0",
    "json-2-csv": "^5.5.11",
    "jsonwebtoken": "9.0.3",
    "moment": "2.30.1",
    "multer": "^2.1.1",
    "nodemailer": "8.0.10",
    "passport": "^0.7.0",
    "passport-google-oauth2": "^0.2.0",
    "passport-jwt": "^4.0.1",
    "passport-microsoft": "^2.1.0",
    "pg": "8.21.0",
    "pg-hstore": "2.3.4",
    "sequelize": "6.37.8",
    "swagger-jsdoc": "^6.3.0",
    "swagger-ui-express": "^5.0.1",
    "umzug": "^3.8.3",
    "uuid": "^14.0.0",
    "validator": "^13.15.35"
  },
  "engines": {
    "node": ">=24"
  },
  "private": true,
  "devDependencies": {
    "@eslint/js": "^10.0.1",
    "@types/bcrypt": "^6.0.0",
    "@types/cors": "^2.8.19",
    "@types/express": "^5.0.6",
    "@types/jsonwebtoken": "^9.0.10",
    "@types/multer": "^2.1.0",
    "@types/node": "^25.9.2",
    "@types/nodemailer": "^8.0.0",
    "@types/passport": "^1.0.17",
    "@types/passport-jwt": "^4.0.1",
    "@types/swagger-jsdoc": "^6.0.4",
    "@types/swagger-ui-express": "^4.1.8",
    "@types/validator": "^13.15.10",
    "cross-env": "10.1.0",
    "eslint": "^10.4.1",
    "eslint-plugin-import-x": "^4.16.2",
    "jiti": "^2.7.0",
    "nodemon": "3.1.14",
    "tsc-alias": "^1.8.17",
    "tsx": "^4.22.4",
    "typescript": "^6.0.3",
    "typescript-eslint": "^8.61.0"
  }
}
