{
  "name": "hotel-staff-erp-v2",
  "version": "1.0.0",
  "description": "Hotel Staff ERP system with Vue 3 (FSD) and Fastify (VSA)",
  "main": "dist/server/app.js",
  "type": "module",
  "scripts": {
    "dev": "concurrently \"npm run dev:server\" \"npm run dev:client\"",
    "dev:server": "tsx watch src/server/app.ts",
    "dev:client": "vite --host",
    "build": "npm run build:server && npm run build:client",
    "build:server": "tsc -p tsconfig.server.json && tsc-alias -p tsconfig.server.json -f",
    "build:client": "vite build",
    "start:prod": "node --es-module-specifier-resolution=node dist/server/app.js",
    "start:all": "concurrently -k -n \"SERVER,CLIENT\" -c \"cyan.bold,green.bold\" \"NODE_ENV=production npx tsx src/server/app.ts\" \"npm run dev:client -- --host\"",
    "db:generate": "drizzle-kit generate",
    "db:migrate": "drizzle-kit migrate",
    "db:push": "drizzle-kit push",
    "db:seed": "tsx src/server/scripts/seed.ts",
    "db:studio": "drizzle-kit studio",
    "lint": "eslint . --ext .ts,.vue",
    "typecheck": "tsc --noEmit",
    "gen:context": "node scripts/gen_context_and_git.js",
    "update:map": "node scripts/update-map.mjs"
  },
  "keywords": [
    "hotel",
    "erp",
    "vue",
    "fastify"
  ],
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@fastify/cookie": "^11.0.2",
    "@fastify/cors": "^11.2.0",
    "@fastify/jwt": "^10.0.0",
    "@fastify/websocket": "^11.2.0",
    "@tailwindcss/postcss": "^4.1.18",
    "@types/node-cron": "^3.0.11",
    "argon2": "^0.44.0",
    "axios": "^1.13.5",
    "dayjs": "^1.11.19",
    "dotenv": "^17.2.4",
    "drizzle-orm": "^0.45.1",
    "drizzle-zod": "^0.8.3",
    "fastify": "^5.7.4",
    "fastify-type-provider-zod": "^6.1.0",
    "floating-vue": "^5.2.2",
    "grid-layout-plus": "^1.1.1",
    "lodash-es": "^4.17.23",
    "lucide-vue-next": "^0.563.0",
    "mysql2": "^3.16.3",
    "node-cron": "^4.2.1",
    "pinia": "^3.0.4",
    "pinia-plugin-persistedstate": "^4.7.1",
    "pino": "^10.3.0",
    "pino-pretty": "^13.1.3",
    "socket.io": "^4.8.3",
    "socket.io-client": "^4.8.3",
    "vue-router": "^5.0.2",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "@types/node": "^25.2.2",
    "@typescript-eslint/eslint-plugin": "^8.54.0",
    "@typescript-eslint/parser": "^8.54.0",
    "@vitejs/plugin-vue": "^6.0.4",
    "autoprefixer": "^10.4.24",
    "concurrently": "^9.2.1",
    "drizzle-kit": "^0.31.9",
    "eslint": "^9.20.0",
    "postcss": "^8.5.6",
    "tailwindcss": "^4.1.18",
    "tsc-alias": "^1.8.16",
    "tsx": "^4.21.0",
    "typescript": "^5.9.3",
    "vite": "^7.3.1",
    "vue": "^3.5.28",
    "vue-tsc": "^3.2.4"
  },
  "overrides": {
    "esbuild": "0.25.0"
  }
}
