feat(adapter-wp): WXR→UniversalRow 映射器(status 值域/悬空保留/unsupported 分流)

- mapItem 纯函数:WxrItem → MappedResult 三分支(row/unsupported/error),
  DEFAULT_TYPE_ROUTES/STATUS_MAP/META_KEYS 三冻结表导出
- Plan 1 移交落实:status 值域表驱动(未知→unknown+issue);property 断言
  (isUniversalRow+refs 形状非空)测试钉死
- Task 3 审查移交:postId null→error(不产 row 不猜);-7 原样;-0 归一 '0'
- taxonomyRefs 锚点=category @nicename(=term slug,Task 8 实数据核对后冻结)
- 悬空 gallery 203/204 原样保留;wppop 解析失败→extras.phpRaw+issue(不崩不丢)
- Task 2 审查移交补测四例:d: 键拒绝/NUL 往返/s:1:"0"→Map/1MB<50ms 烟雾
- tsconfig.build.json:src 首次引 @sf/contracts 后 build 经 contracts dist
  声明解析(rootDir TS6059;typecheck/vitest/tsx 仍 src 直连,ADR-016 归口)
- 142→173 测试全绿;typecheck/lint 绿

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-10-21 09:45:34 +08:00
parent f4971a943b
commit c99bbbb29e
5 changed files with 592 additions and 1 deletions
@@ -2,7 +2,15 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"rootDir": ".",
"noEmit": false // 根 tsconfig 经 extends 链漏下 noEmit:true,build 须翻回
"noEmit": false, // 根 tsconfig 经 extends 链漏下 noEmit:true,build 须翻回
// Task 4 起 src 引用 @sf/contracts(type-only):emit 程序不得含包外源文件
// (rootDir 下 TS6059),故 build 侧改经 contracts 预构建 dist 声明解析(先
// `pnpm --filter @sf/contracts build`);typecheck/vitest/tsx 仍走根 paths 的
// src 直连。src-vs-dist 的最终统一归 ADR-016(Task 9)。paths 相对继承的根
// baseUrl(仓库根)解析。
"paths": {
"@sf/contracts": ["./packages/contracts/dist/src/index.d.ts"]
}
},
"exclude": ["test"]
}