{
  "name": "assettrack-school-inventory",
  "version": "12.3.18",
  "description": "School Inventory & Asset Management System \u2014 Production MySQL Edition",
  "main": "server.js",
  "engines": {
    "node": ">=18.0.0"
  },
  "scripts": {
    "start": "node server.js",
    "seed": "node seed.js",
    "seed:blank": "node seed-blank.js",
    "test:pricing": "node tests/pricing.test.js",
    "test:pos": "node tests/pos.test.js",
    "test:charges": "node tests/pricing-charges.test.js",
    "test:orders": "node tests/order-logic.test.js",
    "test:qa": "bash tests/qa/run-all.sh",
    "test:qa:inventory": "node tests/qa/p1_inventory.js",
    "test:qa:pos": "node tests/qa/p2_pos.js",
    "test:qa:load": "node tests/qa/p3_load.js",
    "test:qa:races": "node tests/qa/p7_open_items.js",
    "test:hosting": "node tests/hosting.test.js",
    "healthcheck": "node -e \"require('http').get('http://127.0.0.1:'+(process.env.PORT||3000)+'/healthz',r=>{r.pipe(process.stdout);r.on('end',()=>process.exit(r.statusCode===200?0:1))}).on('error',e=>{console.error(e.message);process.exit(1)})\""
  },
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.20.2",
    "compression": "^1.7.4",
    "exceljs": "^4.4.0",
    "express": "^4.19.2",
    "express-mysql-session": "^3.0.3",
    "express-rate-limit": "^8.5.2",
    "express-session": "^1.18.0",
    "geoip-lite": "^1.4.10",
    "helmet": "^7.1.0",
    "multer": "^2.2.0",
    "mysql2": "^3.23.2",
    "nepali-date-converter": "^3.4.0",
    "nodemailer": "^6.9.14",
    "uuid": "^9.0.1"
  }
}
