8f2b9825a6
Task 6(Plan 4):validating 接真实门禁——五项产物检查(①内部死链 ②sitemap 一致 ③SEO 基线 ④大小写冲突 ⑤产物完整性),P0 阻断/P2 报告分级;validation_ runs/validation_issues 落库(severity/rule/url/evidence),任一 P0 → job failed (VALIDATION_FAILED + 产物清场),全过 → succeeded。HTML 解析用 htmlparser2 (sanitize-html 既有传递依赖,lock 已解析 12.0.0——apps/api 显式声明复用,零新 包版本),禁正则提标签。报告 json/html 双落盘且 HTML 先写(Plan 3 窄窗口修, html 转义模板)。顺手:build-snapshot 测试 spawn 缩减 7→2(六文件物化/bodyHtml 重写/ADR-010 改 materializeRenderSnapshot 直调;复用两场景并谱共享单次成功构建), 根套件 97.3s→75.8s;两测试文件清场补 validation 域反序(FK 链先行)。 Co-Authored-By: Claude Code <noreply@anthropic.com>
29 lines
830 B
JSON
29 lines
830 B
JSON
{
|
||
"name": "@sf/api",
|
||
"version": "0.1.0",
|
||
"description": "SiteForge API:NestJS 模块化单体骨架(本切片以 standalone context 供 CLI 使用,不监听端口)+ Drizzle/postgres.js 接入",
|
||
"type": "module",
|
||
"scripts": {
|
||
"build": "tsc -p tsconfig.build.json",
|
||
"typecheck": "tsc -p tsconfig.json --noEmit",
|
||
"db:generate": "drizzle-kit generate",
|
||
"db:migrate": "drizzle-kit migrate"
|
||
},
|
||
"dependencies": {
|
||
"@nestjs/common": "^10.4.22",
|
||
"@nestjs/core": "^10.4.22",
|
||
"@sf/adapter-wp": "workspace:*",
|
||
"drizzle-orm": "^0.45.4",
|
||
"htmlparser2": "12.0.0",
|
||
"postgres": "^3.4.9",
|
||
"reflect-metadata": "^0.2.2",
|
||
"rxjs": "^7.8.1"
|
||
},
|
||
"devDependencies": {
|
||
"@types/node": "^22",
|
||
"dotenv": "^18.0.8",
|
||
"drizzle-kit": "^0.31.11",
|
||
"typescript": "^5.6.0"
|
||
}
|
||
}
|