{ "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" } }