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