Files
cms-website/packages
浅念 6573b8b326 feat(adapter-wp): 全链组装与导入前报告
- src/versions.ts:ADAPTER/MAPPING/SANITIZER_VERSION 三常量(bump 语义 JSDoc 冻结:
  映射表/清洗白名单实质变更才 bump 对应项,三者独立演进)+ PARSER_VERSION(saxes 硬编码)
- src/adapter.ts:runWxrAdapter 串联 parseWxrStream→mapItem→sanitizeBodyHtml 为
  AsyncGenerator<AdapterEvent>;term 旁路直通;bodyHtml 为空跳过清洗零 diff;
  changed 用 html!==input(Task 5 移交:diffs.length===0 ≠ 未变更);validateUniversalRow
  加法式契约复检(不动 contracts);解析/清洗分段计时(parser.next() await 窗口归属解析)
- src/report.ts:runWxrAdapterReport 聚合(首条版本块/按 sourceType Created-Skipped(无
  变化)-Failed-Unsupported/清洗统计按 diff.type+changedRows/行级错误 rawLocation+message
  +excerpt/致命 WxrError 记 fatalError 不上抛——wxr:probe 消费通道);renderReportHtml
  所有动态文本经 escapeHtml(<>&"',Task 5 移交的标记注入面防线)
- test/adapter.test.ts:19 用例(mini 全链/changed 语义/报告结构/恶意样本转义/
  unsupported-error 汇聚/wppop 失败贯通/JSON 可序列化/致命解析错误交付确定性)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-21 11:44:55 +08:00
..