{ "name": "@qipai/backend", "version": "0.1.0", "private": true, "type": "module", "engines": { "node": ">=20.0.0", "npm": ">=10.0.0" }, "scripts": { "dev": "tsx watch src/server.ts", "build": "tsc -p tsconfig.json", "start": "node dist/server.js", "start:worker": "node dist/tasks/worker.js", "db:migrate:plan": "npm run build && node dist/db/migrate-cli.js plan", "db:migrate:up": "npm run build && node dist/db/migrate-cli.js up", "db:migrate:verify": "npm run build && node dist/db/migrate-cli.js verify", "db:migrate:down": "npm run build && node dist/db/migrate-cli.js down", "test:mysql:migration": "npm run build && node tests/mysql-migration-roundtrip.test.mjs", "test": "npm run build && node tests/backend-contract.test.mjs && node tests/mqtt-service.test.mjs && node tests/migration-contract.test.mjs && node tests/mysql-pool-contract.test.mjs && node tests/migration-runner.test.mjs && node tests/legacy-money.test.mjs && node tests/legacy-read-repository.test.mjs && node tests/task-repository.test.mjs && node tests/platform-config-repository.test.mjs && node tests/auth.test.mjs && node tests/rbac.test.mjs && node tests/user-management.test.mjs && node tests/store-room.test.mjs && node tests/content-management.test.mjs && node tests/store-discovery.test.mjs && node tests/store-access.test.mjs && node tests/pricing.test.mjs && node tests/order-state.test.mjs && node tests/order-query.test.mjs && node tests/order-management.test.mjs && node tests/order-share.test.mjs && node tests/payment.test.mjs && node tests/wechat-pay.test.mjs && node tests/third-party.test.mjs && node tests/profit-sharing.test.mjs && node tests/device.test.mjs && node tests/iot-protocol.test.mjs && node tests/device-control.test.mjs && node tests/order-device-automation.test.mjs && node tests/hardware-smoke-runner.test.mjs && node tests/wallet-ledger.test.mjs && node tests/recharge-service.test.mjs && node tests/recharge-route.test.mjs && node tests/marketing-benefit-service.test.mjs && node tests/member-profile-service.test.mjs && node tests/member-profile-route.test.mjs && node tests/cleaning-payout-service.test.mjs && node tests/cleaning-route.test.mjs" }, "dependencies": { "@fastify/cors": "^11.2.0", "@fastify/rate-limit": "^11.0.0", "fastify": "^5.8.5", "mqtt": "^5.15.1", "mysql2": "^3.11.3", "pino": "^9.4.0", "sharp": "^0.34.0", "zod": "^3.23.8" }, "devDependencies": { "@types/node": "^20.17.6", "tsx": "^4.19.2", "typescript": "^5.6.3" }, "overrides": { "fast-uri": "3.1.2", "toad-cache": "3.7.0" } }