{
  "name": "server",
  "version": "1.0.0",
  "description": "Incudal 后端服务",
  "type": "module",
  "main": "dist/app.js",
  "types": "dist/app.d.ts",
  "scripts": {
    "postinstall": "prisma generate",
    "dev": "cross-env NODE_ENV=development JWT_SECRET=dev-secret-12345678 PORT=8888 tsx watch src/app.ts",
    "start": "node dist/app.js",
    "build": "tsc",
    "type-check": "tsc --noEmit",
    "migrate:data": "tsx scripts/migrate-data.ts",
    "backfill:instance-network": "tsx scripts/backfill-instance-network-addresses.ts",
    "fix:migrated-billing": "tsx scripts/fix-migrated-instance-billing.ts",
    "reset:db": "tsx scripts/reset-db.ts",
    "seed:test-data": "tsx scripts/seed-test-data.ts",
    "seed:bulk-local-data": "tsx scripts/seed-bulk-local-data.ts",
    "update:admin-quota": "tsx scripts/update-admin-quota.ts",
    "test:prisma": "tsx scripts/test-prisma.ts",
    "test:app": "tsx scripts/test-app-start.ts",
    "test:agent-auth": "tsx scripts/test-agent-auth.ts",
    "test:security-config": "tsx scripts/test-security-config.ts",
    "test:api": "tsx scripts/test-api.ts",
    "analyze:queries": "tsx scripts/analyze-queries.ts"
  },
  "dependencies": {
    "@fastify/cookie": "^11.0.2",
    "@fastify/cors": "^10.0.1",
    "@fastify/helmet": "^13.0.2",
    "@fastify/jwt": "^9.0.1",
    "@fastify/multipart": "^9.0.3",
    "@fastify/rate-limit": "^10.3.0",
    "@fastify/static": "^8.0.3",
    "@fastify/websocket": "^11.0.1",
    "@libsql/client": "^0.14.0",
    "@prisma/adapter-pg": "^7.1.0",
    "@prisma/client": "^7.1.0",
    "@types/ws": "^8.18.1",
    "basic-ftp": "^5.0.5",
    "bcryptjs": "^2.4.3",
    "dotenv": "^17.2.3",
    "drizzle-orm": "^0.38.2",
    "fastify": "^5.1.0",
    "fastify-cloudflare-turnstile": "^2.0.2",
    "ip-address": "^10.1.0",
    "jsonwebtoken": "^9.0.3",
    "nanoid": "^5.1.6",
    "node-cron": "^4.2.1",
    "nodemailer": "^7.0.11",
    "otplib": "^12.0.1",
    "p-limit": "^7.2.0",
    "pg": "^8.16.3",
    "pino-pretty": "^13.0.0",
    "qrcode": "^1.5.4",
    "ssh2-sftp-client": "^11.0.0",
    "undici": "^7.1.0",
    "webdav": "^5.8.0",
    "ws": "^8.18.3"
  },
  "devDependencies": {
    "@types/node": "^24.10.1",
    "@types/node-cron": "^3.0.11",
    "@types/nodemailer": "^7.0.4",
    "@types/pg": "^8.15.6",
    "@types/qrcode": "^1.5.6",
    "@types/ssh2-sftp-client": "^9.0.4",
    "@typescript-eslint/eslint-plugin": "^8.48.1",
    "@typescript-eslint/parser": "^8.48.1",
    "cross-env": "^10.1.0",
    "drizzle-kit": "^0.30.1",
    "prisma": "^7.1.0",
    "tsx": "^4.21.0",
    "typescript": "^5.9.3"
  }
}
