Files
cms-website/packages/adapter-wordpress/package.json
T
浅念 4c4c43f7d9 fix(adapter-wp): 原型键防御与对抗测试;meta 冲突策略统一(单值先者+issue/phpRaw 清理);extras 原型污染防御;config 校验;prebuild 依赖固化
- Fix 1:routes/STATUS_MAP 查键一律 Object.hasOwn 守卫('constructor'/
  'valueOf' 等继承键裸索引命中函数值绕过 undefined 检查)+ 对抗测试
- Fix 2:prebuild 脚本先建 contracts dist(fresh-clone build 不再 TS2307,
  亦防 stale dist 静默编译;已实测 rm -rf dist 后全链成功)
- Fix 3:单值 meta(thumbnail/seo×2)重复→先者胜出+issue(WP 单值语义,
  首个占位即便值非法不被顶替);wppop 重复→最后一次决定终态(成功清
  phpRaw/失败清 wppop_sections,两键互斥);三方策略 JSDoc 冻结
- Fix 4:extras 改 null 原型字典——'__proto__' meta 不再被 setter 静默
  吞掉(测试钉死自有键+JSON 往返);gallery 累积语义明确
- Fix 5:typeRoutes 空字符串路由值 → TypeError fail fast
- 173→184 测试全绿;typecheck/lint/build 绿

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

24 lines
615 B
JSON

{
"name": "@sf/adapter-wp",
"version": "0.1.0",
"description": "SiteForge WordPress WXR 适配器:流式解析 + UniversalRow 映射(纯函数包)",
"type": "module",
"main": "./dist/src/index.js",
"types": "./dist/src/index.d.ts",
"exports": {
".": {
"types": "./dist/src/index.d.ts",
"default": "./dist/src/index.js"
}
},
"scripts": {
"prebuild": "pnpm --filter @sf/contracts build",
"build": "tsc -p tsconfig.build.json",
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"dependencies": {
"@sf/contracts": "workspace:*",
"saxes": "^6.0.0"
}
}