豫言 / 宿主接口清单 @ 0.1.0
从版本化 MDN 兼容资料及 Webref IDL 解析结果生成可核对接口清单。
说明.汉语.md
# 宿主接口清单 本工具由豫言编写。从固定版本的 MDN Browser Compatibility Data `data.json` 中遍历 `api` 树所有 `__compat` 节点:默认输出路径;`兼容` 模式输出每项路径及完整兼容记录的 JSONL;`支持` 模式输出路径与 Chrome、Firefox、Safari 三列 `0/1`。`1` 仅表示 BCD 中存在未移除、无标志、无异名的支持语句,不核对当前浏览器版本,也不证明宿主库已经覆盖。 `规范` 模式读取固定版本 `@webref/idl` 经其相容版本 WebIDL2 解析所得的 AST JSON,输出规范、定义、成员类型与名称、是否为部分定义及显式 `Exposed` 注解。`Exposed` 为空不代表不可用:部分定义、mixin 和继承关系还需要合并。清单尚未与 BCD 路径对齐。 另可将 `对齐入口。豫` 编译为 `yy宿主接口对齐`,传入 Webref AST 和 BCD `data.json`,输出同名路径的第一轮配对。状态中的“直接命中”只表示 BCD 有相应 `__compat` 节点;“BCD无同名路径”不表示 API 不存在。mixin、includes、继承和别名仍待展开。 在仓库根编译为 `yy宿主接口清单` 后运行: ```sh node 豫言操作系统/宿主/节点/宿主.cjs yy宿主接口清单.wasm /路径/data.json > /路径/浏览器接口路径.txt node 豫言操作系统/宿主/节点/宿主.cjs yy宿主接口清单.wasm /路径/data.json 兼容 > /路径/浏览器接口兼容.jsonl node 豫言操作系统/宿主/节点/宿主.cjs yy宿主接口清单.wasm /路径/data.json 支持 > /路径/浏览器接口支持.tsv node 豫言操作系统/宿主/节点/宿主.cjs yy宿主接口清单.wasm /路径/webref-ast.json 规范 > /路径/规范成员.tsv node 豫言操作系统/宿主/节点/宿主.cjs yy宿主接口对齐.wasm /路径/webref-ast.json /路径/data.json > /路径/规范兼容对齐.tsv ``` 输入资料、WebIDL2 解析器版本及压缩包哈希应与结果一起记录。仓库中的 `规范成员来源.json` 固定了本次输入。后续需要把 IDL 与 BCD 路径合并,再按浏览器版本支持和真实行为测试为每项补全状态。
说明.文言.md
# 宿主接口清单 此器以豫言书之。取定版 MDN 兼容资料 `data.json`,逐 `api` 树寻 `__compat` 注。常式书诸接口路径;「兼容」式逐项书路径及兼容资料为 JSONL;「支持」式列 Chrome、Firefox、Safari 三家之零一位。一位唯言 BCD 有未移、无旗、无异名之支持记录,未核今版,亦非谓宿主库已备。 「规范」式取定版 `@webref/idl` 经相容 WebIDL2 所解之 AST 癸象,逐规范书定义、成员、部分之位及明注 `Exposed`。注空未必不可用:部分定义、混入与继承尚须合校。此册未与 BCD 诸径对齐。 `对齐入口。豫` 可成 `yy宿主接口对齐`,取 Webref AST 与 BCD `data.json`,按同名之径初配。「直接命中」唯谓 BCD 有兼容注;「BCD无同名路径」不谓浏览器无术。混入、包含、继承与别名尚须展开。 于仓根成 `yy宿主接口清单` 后,以资料路径为一参,重定常出为接口路径册;若以 Webref AST 为入,则再传「规范」。输入、解器版本及哈希当与果同记。后须合 IDL 与 BCD、浏览器实具版本及真行之验,逐项定其状态。