Files
ArtPlayer/refactor/changes/2026-09-14-PKG-VAST-03-compatibility.md
T

4.7 KiB

PKG-VAST-03:按已确认决策完成运行时兼容与资源整理

基线314a1c3163e4c5bc8d1a9f1432726824ea3af7dc;本记录完成早期 03检查点的剩余初始化兼容任务。 2026-09-14用户明确接受“保留 npm 默认行为,显式选择工作区惰性模式”, 具体决策与迁移示例现在是实现依据。

实现及兼容边界

五个TS模块已分离工厂/异步注册、SDK边界、会话资源、DOM样式和内部类型。 默认工厂在callback前创建Player,恢复实际npm1.0.0的id/$container/imaPlayer 可写数据属性与SDK默认设置。默认包装层不添加工作区四事件显隐或活动请求抑制, 透明容器保留发布样式,显式请求继续逐次转发;没有把SDK行为复制到包装层。

可选第二参数{ compatibility: 'workspace-1.2' }保留未发布工作区的惰性初始化、 设置/选项原对象、两个默认flags、黑色overlay、四事件显隐、活动广告抑制和资源 实时getter。模式在工厂创建时快照一次,未知值在加载SDK前抛TypeError。 普通已发布JS调用无需变化;依赖未发布默认惰性的代码必须按已批准方案增加选项。

两种模式共享早期修复的core销毁终止、晚到SDK/回调取消、失败回滚、会话身份隔离、 重复清理与显式重建。默认发布数据字段保留已释放资源快照,扩展container getter归零; 后续显式重建更新数据字段,core销毁禁止重建。工作区资源getter随当前会话归零。 ID保留各自art-/art-vast-前缀并增加递增后缀,保留已复现同毫秒碰撞的修复。

公开声明没有在本任务完成:04仍须协调历史同步误声明、回调字段、第二参数和准确 类型入口;本次运行时授权不自动授权其他类型取舍。实际Google IMA由05验收,最终 安装分发由06验收。README明确JS示例及当前声明门槛;未改变包版本或依赖/lockfile。 现有docs/assets/example/vast.js使用默认回调和playUrl,符合npm模式,不需改写。

验证与失败记录

完整输入/日志/产物指纹见验证索引。

  • 新兼容文件初始7项:旧候选2通过5失败,包含默认初始化、旧字段与提前构造失败。 修复后7通过,再补回调失败的二次清理异常、显式重建和选项快照/非法值,最终10通过。
  • 当前完整yarn test:vast82通过、零跳过;包括旧发布/冻结工作区观察、显式模式及默认 生命周期。该文件进入test:vast/test:unit;工程脚本相关12项测试通过。
  • 三桌面引擎×三个核心×四种实现/模式162通过:99候选、63历史。核验异步注册门控、 回调开始前资源、字段描述符、默认值、真实DOM显隐/清理、主片解码及切源。 候选两模式执行同一份编译源码,以选项区分;第三方SDK为明确标记的受控记录器。 本次报告确认核心实际为npm5.1.7、npm5.4.0、候选5.4.1;早期文档将published路径 写成5.4.1不准确,以附件中的来源哈希和实际coreVersion为准,本次更正维护说明。
  • 首轮153通过9失败:旧candidate显隐用例沿用工作区art-vast-选择器与四事件显隐, 和已确认的npm默认语义不符。保留原日志/trace;按两种历史行为验证实际容器数、 0/4监听、显隐,再验证重建/销毁。回调失败也按实际容器前缀检测,避免虚假零残留。 增加回调开始时字段/时机断言后162通过;源码lint整理后最终162再次通过。
  • 严格TS5.9.3及源/测试lint通过。初次lint6项格式/声明顺序错误已修正并保留日志; 没有引入禁用规则。严格固定工具链检查通过。
  • 正常VAST构建三格式成功,dist与docs/compiled对应文件哈希一致。实际main+ESM和 legacy+ESM分别4项导出用例通过:CommonJS/global/AMD和原生ESM,均验证default别名。 这些产物用例使用已销毁宿主,不执行IMA;不能把它们解释为正式SDK广告播放通过。

任务边界及回退

PKG-VAST-03完成运行时结构/资源/初始化协调,VAST-CONTEXT-01按用户决策接受限定范围。 VAST-LIFE-01保留实际供应商恢复验证门槛;VAST-TYPE/DIST及04/05/06仍开放。 没有使用VPN例外、模拟广告成功、远端CI或npm发布声明。

本任务独立本地commit包含源、测试、构建、文档、任务及风险索引,提交后核验审计。 回退本提交并重建VAST会恢复此前默认工作区初始化,也撤销本次兼容选择;旧已发布 默认调用的失败将重现。早期资源修复检查点不随本提交回退而消失。