refactor(vtt-thumbnail): [PKG-VTT-THUMB-04] type runtime data and resource boundaries

This commit is contained in:
Harvey Zhao committed 2026-09-13 09:03:20 +08:00
1 parent 80588a3046
commit 7f2906ae52
22 files changed
+2940 -75

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,22 @@
# PKG-VTT-THUMB-04 严格运行时类型检查点
六个 JS 实现迁为 TS,并增加 types.ts,明确 Option/Result、字符串矩形和 Thumbnail、
资源生命周期、事件元组与最小预览输入。分包 allowJs=false,继承 strict、
noUncheckedIndexedAccess、skipLibCheck=false、types=[],不引入 any 或忽略检查。
运行时注册准确返回 Promise<Result>,取消分支为 void;parser 输入用 unknown 并先验证。
新增由分包 tsconfig 检查的正反例,覆盖 URL/CSS、必传参数、异步结果、关闭状态、
事件元组和矩形字段。非空/类型断言仅用于已校验正则/数组边界、四键对象构造、
真实 Artplayer constructor 和关闭检查后的原生 Response;包内架构说明具体不变量。
数值计算显式 Number 转换,保留正常坐标/进度样式及零值写入。
公开声明、package exports、版本、依赖保持原样。类型用例明确复现旧声明返回同步
对象与实际 Promise 的冲突,没有靠给 Promise 增加 name 属性或类型断言伪造同步结果。
04 继续 doing,下一步验证旧编译器/消费形式、异步类型视图、CJS default 兼容、
模块声明和编辑器;不能将严格内部类型通过等同于公开声明已完成。
本次沿用 246 项本包契约/错误/候选测试,并验证正式构建和真实浏览器。
准确入口、类型和 CI 结果见 [验证记录](../baselines/vtt-thumbnail-runtime-types.json)。
正常构建生成 dist 与 docs 副本;无新依赖。内部源码路径从 .js 迁至 .ts,历史
源码深导入仍归 06 分发审查,当前不能声称所有深路径已验收。
独立本地检查点提交;回退可恢复前次 JS 实现,不影响历史冻结测试。不推送或发布。
+3 -2
View File
@@ -4,7 +4,7 @@
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 222 项,范围 22 个包及工作区/示例。
状态:todo 93 / doing 12 / blocked 0 / done 117 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
状态:todo 92 / doing 13 / blocked 0 / done 117 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
@@ -185,7 +185,7 @@
| PKG-VTT-THUMB-01 | artplayer-plugin-vtt-thumbnail<br>核对包契约与历史用法 | BASE-05 | vtt/style、异步返回、预览控件名与样式契约 | 源码/声明/README/demo/发布包差异已登记;公开形状和版本范围冻结 | M | done |
| PKG-VTT-THUMB-02 | artplayer-plugin-vtt-thumbnail<br>建立特有行为与错误测试 | PKG-VTT-THUMB-01, ENG-03, ENG-05 | VTT 解析、xywh、相对 URL、时间边界、请求失败和定位 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | M | done |
| PKG-VTT-THUMB-03 | artplayer-plugin-vtt-thumbnail<br>整理内部职责与资源 | PKG-VTT-THUMB-02, CORE-09, CORE-19 | 纯解析/区间查找与 DOM、请求/定时器生命周期分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | M | done |
| PKG-VTT-THUMB-04 | artplayer-plugin-vtt-thumbnail<br>迁移自有源码和公开类型 | PKG-VTT-THUMB-03, ENG-04, ENG-06, CORE-07 | cue/rect/result 和参数可选性保持兼容 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | M | todo |
| PKG-VTT-THUMB-04 | artplayer-plugin-vtt-thumbnail<br>迁移自有源码和公开类型 | PKG-VTT-THUMB-03, ENG-04, ENG-06, CORE-07 | cue/rect/result 和参数可选性保持兼容 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | M | doing |
| PKG-VTT-THUMB-05 | artplayer-plugin-vtt-thumbnail<br>验证新旧核心和组合 | PKG-VTT-THUMB-04, CORE-22 | 鼠标和移动进度、全屏、切源、chapter 组合 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | todo |
| PKG-VTT-THUMB-06 | artplayer-plugin-vtt-thumbnail<br>验证分发并同步文档 | PKG-VTT-THUMB-05, ENG-07 | vtt.thumbnail.js、VTT/图片资源解析和产物验证 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | todo |
@@ -500,6 +500,7 @@
- PKG-VTT-THUMB-01: [记录](baselines/vtt-thumbnail-release.json) [记录](baselines/vtt-thumbnail-contract.md) [记录](changes/2026-09-13-PKG-VTT-THUMB-01-contract.md)
- PKG-VTT-THUMB-02: [记录](baselines/vtt-thumbnail-failures.json) [记录](changes/2026-09-13-PKG-VTT-THUMB-02-failures.md)
- PKG-VTT-THUMB-03: [记录](changes/2026-09-13-PKG-VTT-THUMB-03-resources.md) [记录](baselines/vtt-thumbnail-resources.json) [记录](changes/2026-09-13-PKG-VTT-THUMB-03-parser.md) [记录](baselines/vtt-thumbnail-parser.json)
- PKG-VTT-THUMB-04: [记录](changes/2026-09-13-PKG-VTT-THUMB-04-runtime-types.md) [记录](baselines/vtt-thumbnail-runtime-types.json)
- PKG-HLS-01: [记录](baselines/hls-control-contract.md) [记录](baselines/hls-control-release.json) [记录](changes/2026-09-11-PKG-HLS-01-contract.md)
- PKG-HLS-02: [记录](hls-validation.md) [记录](baselines/hls-sdk.json) [记录](baselines/hls-validation.json) [记录](changes/2026-09-11-PKG-HLS-02-tests.md)
- PKG-HLS-03: [记录](changes/2026-09-12-PKG-HLS-03-modules.md) [记录](baselines/hls-modules-validation.json) [记录](hls-validation.md)
+12
View File
@@ -1,5 +1,17 @@
# 进度与证据
## PKG-VTT-THUMB-04 严格运行时 TS 检查点(doing)
六个 JS 实现迁为 TS,另有明确数据/资源类型模块,分包 allowJs=false。TS 5.9.3/5.1.6
严格检查及正反例通过,移除 expect-error 后各复现 8 个预期类型错误。内部注册准确为
Promise<Result>,公开旧同步声明保持原样,旧消费者/类型视图和导出兼容仍待 04。
源码/main/legacy 的解析与生命周期各 47 通过,原生三入口各 18 通过,共 54 项;
实际 ESM 和完整 CI 2064 项通过,全仓严格生产 TS 增至 346 文件。包内架构和构建同步。
见[变更](changes/2026-09-13-PKG-VTT-THUMB-04-runtime-types.md)和
[验证](baselines/vtt-thumbnail-runtime-types.json)。222 项:117 done、13 doing、92 todo。
本次为独立本地检查点提交,不推送、不发布。
## PKG-VTT-THUMB-03 内部模块与解析修复完成
在资源检查点上完成纯解析/首个区间查找,支持 cue ID、注释/元数据块和 timing settings,
+3 -1
View File
@@ -4200,7 +4200,9 @@
"evidence": [
"refactor/baselines/vtt-thumbnail-release.json",
"refactor/baselines/vtt-thumbnail-contract.md",
"refactor/scripts/vtt-thumbnail-contract.test.mjs"
"refactor/scripts/vtt-thumbnail-contract.test.mjs",
"test/types/vtt-thumbnail-runtime.ts",
"refactor/baselines/vtt-thumbnail-runtime-types.json"
],
"compatibleResolution": "Preserve valid consumers and actual async runtime, with explicit decisions for irreconcilable inference changes.",
"closureCriteria": "Isolated old/new compiler and installed consumers verify options, styles, callback and result forms."
+5 -2
View File
@@ -1921,11 +1921,14 @@
"ENG-06",
"CORE-07"
],
"status": "todo",
"status": "doing",
"risk": "M",
"deliverable": "cue/rect/result 和参数可选性保持兼容",
"acceptance": "严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容",
"evidence": []
"evidence": [
"changes/2026-09-13-PKG-VTT-THUMB-04-runtime-types.md",
"baselines/vtt-thumbnail-runtime-types.json"
]
},
{
"id": "PKG-VTT-THUMB-05",