build(site): [SITE-07] bind Monaco DOM adaptations and WinJS reference notices

This commit is contained in:
Harvey Zhao committed 2026-09-15 13:26:55 +08:00
1 parent 3eb5500525
commit 1fed96a909
25 files changed
+6931 -7

No files matched your search

@@ -0,0 +1,51 @@
# SITE-07 Monaco DOM 改编来源与通知交付
来源 HEAD:`3eb550052531094753207bdadf4b0e32687792de`。SITE-07 继续 doing,
VENDOR-06 继续 open;本次没有更改编辑器脚本、CSS、worker 或播放器运行字节。
## 已核实范围
固定 VS Code `829382514cb1065f5ebb90f436e1c6103e153953` 的 dom.ts 五处明确注明
WinJS 改编。六个完整声明块——SizeUtils、getTopLeftOffset、getTotalWidth、
getContentWidth、getContentHeight、getTotalHeight——与 Monaco 0.30.1 原始
source map 的对应内容精确相同;当前 editor.main.js 与固定 npm 归档逐字节一致。
这不是完整 DOM 模块的编译证明,也不把 reference 注释等同于特定上游版本证据。
原注释没有 WinJS 版本。本批固定 WinJS 4.4.5 提交
`4329b1133b243d9ded3b5a1f98d096ee8e80e889` 的 `_ElementUtilities.js` 和完整
Microsoft MIT 许可作比较,保留 `originalWinjsVersion: null`。参考源码与 VS Code
改编存在像素转换、CSS 属性读取、尺寸助手、边框/RTL/ShadowRoot 位置处理等差异,
没有把两套实现强行判为完全相同,也没有声称添加前必然缺少 Microsoft 的许可授权。
完整参考许可和说明作为补充交付,原 Monaco 许可及 ThirdPartyNotices 均保留。
固定远端文件同时校验 SHA-256 和 Git blob SHA;两个 npm archive 校验 SHA-512/
SHA-256。源码保存在 `baselines/site-vendor/monaco-dom/`,保留原始字节,不经
Git 自动换行转换。说明明确标注参考版本和未知原始版本,后续 AI 不应把它改写为
“Monaco 内含原版 WinJS 4.4.5”。
## 实现与维护
- `scripts/site-vendor/monaco/dom-origins.ts` 管理声明边界及来源/通知绑定;以现有
TypeScript 5.9.3 parser 识别完整顶层节点,不执行下载的 WinJS 代码。
- `reproduce-dom-origins.ts` 校验冻结来源、源码片段与原 map、交付脚本归档身份;
新增 `yarn verify:monaco-dom-origins [--fetch]`,没有新依赖或锁文件变化。
- 正常 `build:site-notices` 增加 core-dom 完整许可/说明及索引,合计 88 份 notice
加索引 89 outputs;校验器拒绝遗漏编辑器归属、条款或来源声明。
- 测试覆盖缺少/重复声明、同名字符串冒充声明、遗漏条款和错误资产归属。真实
浏览器直接调用现有 Monaco 模块,在 padding/border/margin/嵌套滚动前后检查
尺寸和原生页面位置;不是测试自造 DOM 工具的替代实现。
维护入口与复跑命令见 [Monaco README](../../scripts/site-vendor/monaco/README.md)。
## 验证与限制
Node 24.21.0、Yarn 1.22.22;30/30 单测,严格 docs-tools 类型与定向只读 lint
通过。联网/离线来源核验、正常通知生成及只读检查分别执行并记录。
Chromium 153.0.8010.12、Firefox 155.0、WebKit 26.6 的 DOM 检查和移动页面实际
播放/全部 notice HTTP/新增相对链接共 6/6,零跳过/重试;原始网络诊断保留在
[机器证据](../baselines/monaco-dom-origins-validation.json),不宣称所有请求无取消。
原始 WinJS 改编版本仍未知;Unicode 数据、其他内嵌来源、完整 core TS 编译及
SITE-07 其他范围继续开放。没有在本轮补证据时悄悄放宽这些验收条件;202/266
完成数不变。回退本批时一并撤销通知绑定/新增文件并重建索引,不触碰原编辑器
资产。未推送、部署或发布。