- 注册 @fastify/rate-limit,默认每个来源 IP 每分钟 600 次,RATE_LIMIT_MAX 可调、0 关闭 - submit-baidu-urls 的 decodeXmlEntities 最后替换 &,避免二次解码 - 对应 CodeQL js/missing-rate-limiting 与 js/double-escaping 告警 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
81 lines
3.8 KiB
JSON
81 lines
3.8 KiB
JSON
{
|
|
"name": "@lindyson/api",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"license": "Apache-2.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "node --input-type=module --eval \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json",
|
|
"canary:prompt-wizard:local": "npm run build && node dist/tools/canaryPromptWizardV6.js",
|
|
"canary:prompt-wizard:local:prod": "node dist/tools/canaryPromptWizardV6.js",
|
|
"canary:prompt-wizard:legacy": "tsx src/tools/canaryPromptWizardProvider.ts",
|
|
"eval:prompt-wizard-v3": "tsx src/tools/evaluatePromptWizardV3BlindSet.ts",
|
|
"eval:prompt-wizard-v3:prod": "node dist/tools/evaluatePromptWizardV3BlindSet.js",
|
|
"canary:seedream": "tsx src/tools/canarySeedreamProvider.ts",
|
|
"canary:seedream:prod": "node dist/tools/canarySeedreamProvider.js",
|
|
"canary:seedance-25-shadow": "tsx src/tools/canarySeedance25Shadow.ts",
|
|
"canary:seedance-25-shadow:prod": "node dist/tools/canarySeedance25Shadow.js",
|
|
"backfill:image-thumbnails": "tsx src/tools/backfillImageThumbnails.ts",
|
|
"backfill:image-thumbnails:prod": "node dist/tools/backfillImageThumbnails.js",
|
|
"backfill:image-metadata": "tsx src/tools/backfillImageMetadata.ts",
|
|
"backfill:image-metadata:prod": "node dist/tools/backfillImageMetadata.js",
|
|
"backfill:uploaded-video-thumbnails": "tsx src/tools/backfillUploadedVideoThumbnails.ts",
|
|
"backfill:uploaded-video-thumbnails:prod": "node dist/tools/backfillUploadedVideoThumbnails.js",
|
|
"recover:generated-video-thumbnails": "tsx src/tools/backfillUploadedVideoThumbnails.ts --generated",
|
|
"recover:generated-video-thumbnails:prod": "node dist/tools/backfillUploadedVideoThumbnails.js --generated",
|
|
"import:provider-operational-usage": "tsx src/tools/importProviderOperationalUsage.ts",
|
|
"import:provider-operational-usage:prod": "node dist/tools/importProviderOperationalUsage.js",
|
|
"audit:provider-billing": "tsx src/tools/auditProviderBillingAttribution.ts",
|
|
"audit:provider-billing:prod": "node dist/tools/auditProviderBillingAttribution.js",
|
|
"check": "npm run typecheck && npm run test",
|
|
"db:migrate": "tsx src/db/migrate.ts",
|
|
"db:migrate:prod": "node dist/db/migrate.js",
|
|
"db:bootstrap-admin": "tsx src/db/bootstrapAdmin.ts",
|
|
"db:bootstrap-admin:prod": "node dist/db/bootstrapAdmin.js",
|
|
"db:seed": "tsx src/db/seed.ts",
|
|
"db:seed:prod": "node dist/db/seed.js",
|
|
"db:seed:dev": "tsx src/db/seedDevelopmentFixtures.ts",
|
|
"dev": "tsx watch src/server.ts",
|
|
"recover:seedance-task": "node dist/tools/recoverSeedanceTask.js",
|
|
"start": "node dist/server.js",
|
|
"test": "vitest run",
|
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
"worker:dev": "tsx watch src/worker/generationWorker.ts",
|
|
"worker:start": "node dist/worker/generationWorker.js"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "3.1150.0",
|
|
"@aws-sdk/s3-request-presigner": "3.1150.0",
|
|
"@fastify/cors": "^11.3.1",
|
|
"@fastify/formbody": "^8.0.2",
|
|
"@fastify/jwt": "^10.2.4",
|
|
"@fastify/middie": "9.3.5",
|
|
"@fastify/rate-limit": "^10.3.0",
|
|
"@lindyson/api-contracts": "0.1.0",
|
|
"@modelcontextprotocol/node": "2.1.1",
|
|
"@modelcontextprotocol/server": "2.3.1",
|
|
"bcryptjs": "^2.4.3",
|
|
"bullmq": "^5.35.1",
|
|
"fastify": "5.12.5",
|
|
"fastify-type-provider-zod": "4.0.1",
|
|
"file-type": "22.1.1",
|
|
"ipaddr.js": "2.5.0",
|
|
"nanoid": "^6.0.2",
|
|
"node-html-parser": "^9.0.4",
|
|
"oidc-provider": "9.12.2",
|
|
"pg": "^8.23.1",
|
|
"sharp": "0.35.5",
|
|
"zod": "^3.24.1",
|
|
"zod-to-json-schema": "3.25.2"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bcryptjs": "^2.4.6",
|
|
"@types/node": "^26.0.0",
|
|
"@types/oidc-provider": "9.12.1",
|
|
"@types/pg": "^8.23.1",
|
|
"tsx": "^4.23.15",
|
|
"typescript": "^6.0.3",
|
|
"vitest": "^4.1.9"
|
|
}
|
|
}
|