{
  "name": "genesiscoworkingspace-backend",
  "version": "0.1.0",
  "private": true,
  "description": "API service for genesiscoworkingspace.com.my — space gallery CMS + enquiries + admin portal",
  "type": "commonjs",
  "main": "dist/server.js",
  "engines": {
    "node": ">=22"
  },
  "overrides": {
    "qs": "6.16.0"
  },
  "scripts": {
    "build": "tsc",
    "start": "node dist/server.js",
    "dev": "tsx watch src/server.ts",
    "typecheck": "tsc --noEmit",
    "lint": "eslint .",
    "lint:fix": "eslint . --fix",
    "format": "prettier --write .",
    "format:check": "prettier --check .",
    "test": "vitest run",
    "test:watch": "vitest",
    "check:sharp": "tsx scripts/check-sharp.ts",
    "migrate": "tsx ./node_modules/knex/bin/cli.js migrate:latest --knexfile ./knexfile.ts",
    "migrate:make": "tsx ./node_modules/knex/bin/cli.js migrate:make --knexfile ./knexfile.ts -x ts",
    "migrate:rollback": "tsx ./node_modules/knex/bin/cli.js migrate:rollback --knexfile ./knexfile.ts",
    "seed": "tsx ./node_modules/knex/bin/cli.js seed:run --knexfile ./knexfile.ts",
    "seed:make": "tsx ./node_modules/knex/bin/cli.js seed:make --knexfile ./knexfile.ts -x ts",
    "seed:dev": "tsx scripts/seed-dev-media.ts",
    "create-admin": "tsx scripts/create-admin.ts",
    "reprocess-media": "tsx scripts/reprocess-media.ts",
    "prepare": "husky"
  },
  "lint-staged": {
    "*.{ts,js,json,md,yml,yaml}": "prettier --write",
    "*.ts": "eslint --fix"
  },
  "dependencies": {
    "bcryptjs": "^3.0.2",
    "cookie-parser": "^1.4.7",
    "cors": "^2.8.5",
    "dotenv": "^16.4.5",
    "express": "^4.19.2",
    "handlebars": "^4.7.8",
    "helmet": "^7.1.0",
    "jsonwebtoken": "^9.0.2",
    "knex": "^3.1.0",
    "libphonenumber-js": "^1.11.11",
    "multer": "^2.0.1",
    "mysql2": "^3.11.3",
    "nodemailer": "^9.0.6",
    "pino": "^9.4.0",
    "sharp": "^0.35.4",
    "ulid": "^2.3.0",
    "zod": "^3.23.8"
  },
  "devDependencies": {
    "@eslint/js": "^9.13.0",
    "@types/cookie-parser": "^1.4.7",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.21",
    "@types/jsonwebtoken": "^9.0.7",
    "@types/multer": "^1.4.12",
    "@types/node": "^22.7.4",
    "@types/nodemailer": "^6.4.16",
    "@types/supertest": "^6.0.2",
    "eslint": "^9.13.0",
    "eslint-config-prettier": "^9.1.0",
    "husky": "^9.1.6",
    "lint-staged": "^15.2.10",
    "prettier": "^3.3.3",
    "supertest": "^7.0.0",
    "tsx": "^4.19.1",
    "typescript": "^5.6.2",
    "typescript-eslint": "^8.11.0",
    "vitest": "^2.1.4"
  }
}
