{ "name": "audio-book-server", "version": "1.0.0", "description": "AI有声书生成工具后端服务", "main": "dist/app.js", "scripts": { "dev": "tsx watch src/app.ts", "build": "tsc", "start": "node dist/app.js", "test:smoke": "npx playwright test --project=smoke --config=../tests/playwright.config.ts", "test:regression": "npx playwright test --project=regression --config=../tests/playwright.config.ts", "test:all": "npx playwright test --config=../tests/playwright.config.ts", "test:report": "npx playwright show-report ../tests/test-results/report", "deploy:check": "npm run test:smoke" }, "dependencies": { "@koa/bodyparser": "^6.1.0", "@koa/cors": "^5.0.0", "@koa/router": "^12.0.1", "@langchain/community": "^0.0.56", "@langchain/core": "^1.1.39", "@langchain/langgraph": "^1.2.8", "@prisma/client": "^6.19.3", "@sentry/node": "^10.49.0", "@sentry/profiling-node": "^10.49.0", "@types/ws": "^8.18.1", "ali-oss": "^6.23.0", "alipay-sdk": "^4.14.0", "axios": "^1.7.2", "bull": "^4.16.5", "crypto-js": "^4.2.0", "dotenv": "^16.4.5", "fluent-ffmpeg": "^2.1.2", "ioredis": "^5.10.1", "is-generator-function": "^1.1.2", "jsonwebtoken": "^9.0.2", "koa": "^3.1.2", "koa-body": "^7.0.1", "koa-mount": "^4.2.0", "koa-static": "^5.0.0", "langchain": "^0.1.36", "mysql2": "^3.20.0", "openai": "^6.34.0", "prisma": "^6.19.3", "rate-limiter-flexible": "^11.0.1", "uuid": "^9.0.1", "wechatpay-node-v3": "^2.2.1", "winston": "^3.19.0", "ws": "^8.20.0" }, "devDependencies": { "@playwright/test": "^1.60.0", "@types/crypto-js": "^4.2.2", "@types/fluent-ffmpeg": "^2.1.24", "@types/jsonwebtoken": "^9.0.6", "@types/koa": "^2.15.0", "@types/koa__cors": "^5.0.0", "@types/koa__router": "^12.0.4", "@types/node": "^20.14.2", "@types/uuid": "^9.0.8", "ts-node": "^10.9.2", "tsx": "^4.11.2", "typescript": "^5.4.5" } }