diff --git a/packages/artplayer-plugin-hls-control/.npmignore b/packages/artplayer-plugin-hls-control/.npmignore index 4439c6874..2b272d565 100644 --- a/packages/artplayer-plugin-hls-control/.npmignore +++ b/packages/artplayer-plugin-hls-control/.npmignore @@ -2,4 +2,5 @@ node_modules .DS_Store yarn.lock package-lock.json -src \ No newline at end of file +src +tsconfig.json diff --git a/packages/artplayer-plugin-hls-control/ARCHITECTURE.md b/packages/artplayer-plugin-hls-control/ARCHITECTURE.md index dd34c2957..a46eb5bed 100644 --- a/packages/artplayer-plugin-hls-control/ARCHITECTURE.md +++ b/packages/artplayer-plugin-hls-control/ARCHITECTURE.md @@ -134,3 +134,11 @@ it adds an evaluate and may change timing, so it is off by default. Direct ordin HTTP without ArtPlayer/plugin or a Worker observer still reproduced crashes with both reset-first and SDK-first teardown. A passing no-worker control does not replace worker acceptance. See the 2026-09-14 HTTP teardown checkpoint in refactor. + +## Package file boundary + +The package .npmignore excludes src and tsconfig.json. The implementation config +extends the repository root and must not ship to consumers. PKG-HLS-PACK-01 +compares real Yarn archives before/after the exclusion: all distribution and +declaration bytes must remain identical, with every historical entry retained. +See ../../refactor/changes/2026-09-15-PKG-HLS-PACK-01-config.md. diff --git a/refactor/baselines/hls-pack-config-validation.json b/refactor/baselines/hls-pack-config-validation.json new file mode 100644 index 000000000..c135fb082 --- /dev/null +++ b/refactor/baselines/hls-pack-config-validation.json @@ -0,0 +1,88 @@ +{ + "task": "PKG-HLS-PACK-01", + "capturedAt": "2026-09-14T18:19:43.946Z", + "sourceHead": "2d45135873595ce18bdb8ea643da8c6e089ff6fc", + "node": "24.21.0", + "yarn": "1.22.22", + "before": { + "path": "refactor/.cache/packages/run-5SF5jI/artplayer-plugin-hls-control.tgz", + "sha256": "acde688170f089952c94399aa0caf1fcde6d4e0ad508de789364811340b4d7d4", + "files": [ + "package/ARCHITECTURE.md", + "package/README.md", + "package/dist/artplayer-plugin-hls-control.js", + "package/dist/artplayer-plugin-hls-control.legacy.js", + "package/dist/artplayer-plugin-hls-control.mjs", + "package/package.json", + "package/tsconfig.json", + "package/types/artplayer-plugin-hls-control.d.cts", + "package/types/artplayer-plugin-hls-control.d.mts", + "package/types/artplayer-plugin-hls-control.d.ts" + ], + "rejected": "Implementation tsconfig leaked into package" + }, + "interim": { + "path": "refactor/.cache/hls-pack-fix/artplayer-plugin-hls-control.tgz", + "sha256": "4657a8b8554ce262affbbd637a3f10ad4f8d085dce305d4a466520e4cc5d6c4d", + "rejected": "Source/dependencies leaked into package", + "reason": "Original ignore file had no final newline; first append joined src and tsconfig. Corrected with two explicit lines; interim archive retained." + }, + "after": { + "path": "refactor/.cache/hls-pack-fix/artplayer-plugin-hls-control-fixed.tgz", + "sha256": "3358eb2dd4c46958b5bbc23c2a0a571266dcee905b594f1666c29f5f5b14bd93", + "files": [ + "package/ARCHITECTURE.md", + "package/README.md", + "package/dist/artplayer-plugin-hls-control.js", + "package/dist/artplayer-plugin-hls-control.legacy.js", + "package/dist/artplayer-plugin-hls-control.mjs", + "package/package.json", + "package/types/artplayer-plugin-hls-control.d.cts", + "package/types/artplayer-plugin-hls-control.d.mts", + "package/types/artplayer-plugin-hls-control.d.ts" + ], + "passed": true + }, + "removed": [ + "package/tsconfig.json" + ], + "byteEqual": [ + { + "file": "package/dist/artplayer-plugin-hls-control.js", + "sha256": "8e163d4ab6734cbc45e7f539de7db644c7faf36d0318469a86d300bf6365cca6" + }, + { + "file": "package/dist/artplayer-plugin-hls-control.legacy.js", + "sha256": "fd7be1c5bf8f994b61fc040ff96eb628fc442568d99f4b5fee4f611bac1d28c0" + }, + { + "file": "package/dist/artplayer-plugin-hls-control.mjs", + "sha256": "64286498c1e90c3927236318383db193698a9dcbf39f91e93fc2b4ea2239e786" + }, + { + "file": "package/types/artplayer-plugin-hls-control.d.cts", + "sha256": "ad4c3e7f7d2ba6b8371108bf08dfa13cccf78a1add846ba53cab8774c8fff0b6" + }, + { + "file": "package/types/artplayer-plugin-hls-control.d.mts", + "sha256": "27a3a17a48f0bc92c3c50783be253730d87d01e9be627ab2726bdc552fecf1f3" + }, + { + "file": "package/types/artplayer-plugin-hls-control.d.ts", + "sha256": "3bce772f8f7cb7b6421b2c2dc4a1ea22987f3f1483f1dca7ca4ab08f75cf7a9d" + } + ], + "manifestUnchanged": true, + "historicalFiles": [ + "package/README.md", + "package/dist/artplayer-plugin-hls-control.js", + "package/dist/artplayer-plugin-hls-control.legacy.js", + "package/dist/artplayer-plugin-hls-control.mjs", + "package/package.json", + "package/types/artplayer-plugin-hls-control.d.ts" + ], + "limitations": [ + "Normal Yarn pack on the same isolated source-build snapshot, replacing only ignore and architecture files. No playback or full release approval claim.", + "Architecture documentation changes intentionally; all dist/types and package.json bytes remain unchanged." + ] +} diff --git a/refactor/changes/2026-09-15-PKG-HLS-PACK-01-config.md b/refactor/changes/2026-09-15-PKG-HLS-PACK-01-config.md new file mode 100644 index 000000000..e8890d421 --- /dev/null +++ b/refactor/changes/2026-09-15-PKG-HLS-PACK-01-config.md @@ -0,0 +1,18 @@ +# PKG-HLS-PACK-01 排除 npm 包中的内部 tsconfig + +CI-01 的十二包真实打包在 HLS Control 被现有 checkFiles 拒绝:.npmignore 排除了 +src,却遗漏 tsconfig.json。该内部配置引用仓库根目录,不属于公开消费者入口。 +给排除规则单独添加 tsconfig.json;公开 JS、声明、导出和运行时行为不变。 + +使用同一隔离源码构建快照,以固定 Node 24.21.0 / Yarn 1.22.22 实际 pack 比较: +旧归档准确复现 Implementation tsconfig leaked,新归档完整文件校验通过,仅移除 +package/tsconfig.json;六个 dist/types 文件和 package.json 精确字节不变,实际旧版 +全部分发文件保留。现有泄漏负例与实际归档校验组成回归证据,不增加镜像测试。 + +实施中首次追加遇到旧 ignore 文件无末尾换行,导致 src 与新规则拼接;实际包检查 +又正确拒绝 src 泄漏。已改为两条明确规则,中间失败归档保留,没有覆盖首轮错误。 +见 [机器证据](../baselines/hls-pack-config-validation.json)。这不代表重新验证播放、 +全包模块消费或完整十二包安装。CI-01 接续实际安装与浏览器验证,HLS-06 仍开放。 + +包内 ARCHITECTURE.md 记录产物边界。没有更换依赖、锁文件或生成 JS;撤销本任务 +会恢复内部配置泄漏。未推送或发布。 diff --git a/refactor/plan.md b/refactor/plan.md index 3905db857..bc38fb5ff 100644 --- a/refactor/plan.md +++ b/refactor/plan.md @@ -2,9 +2,9 @@ > 由 tasks.json 生成。请修改数据后运行 `node refactor/scripts/plan.mjs --write`,不要手改本表。 -基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 262 项,范围 22 个包及工作区/示例。 +基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 263 项,范围 22 个包及工作区/示例。 -状态:todo 44 / doing 22 / blocked 0 / done 196 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 +状态:todo 44 / doing 22 / blocked 0 / done 197 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。 @@ -26,7 +26,7 @@ | artplayer-plugin-danmuku-mask | 1.1.0 | PKG-MASK-01, PKG-MASK-02, PKG-MASK-03, PKG-MASK-04, PKG-MASK-05, PKG-MASK-06, ENG-LINT-01, PKG-DANMUKU-MASK-LOAD-01 | | artplayer-plugin-dash-control | 1.1.0 | PKG-DASH-01, PKG-DASH-02, PKG-DASH-03, PKG-DASH-04, PKG-DASH-SEEK-01, PKG-DASH-MENU-01, PKG-DASH-05, PKG-DASH-06 | | artplayer-plugin-document-pip | 1.1.0 | PKG-DPIP-01, PKG-DPIP-02, PKG-DPIP-03, PKG-DPIP-04, PKG-DPIP-05, PKG-DPIP-06 | -| artplayer-plugin-hls-control | 1.1.0 | PKG-HLS-01, PKG-HLS-02, PKG-HLS-03, PKG-HLS-04, PKG-HLS-SDK-01, PKG-HLS-05, PKG-HLS-06 | +| artplayer-plugin-hls-control | 1.1.0 | PKG-HLS-01, PKG-HLS-02, PKG-HLS-03, PKG-HLS-04, PKG-HLS-SDK-01, PKG-HLS-05, PKG-HLS-06, PKG-HLS-PACK-01 | | artplayer-plugin-jassub | 1.1.0 | PKG-JASSUB-01, PKG-JASSUB-02, PKG-JASSUB-03, PKG-JASSUB-04, PKG-JASSUB-05, PKG-JASSUB-06, PKG-JASSUB-07, PKG-JASSUB-08, PKG-JASSUB-09, PKG-JASSUB-10 | | artplayer-plugin-multiple-subtitles | 1.2.0 | PKG-MULTI-SUB-01, PKG-MULTI-SUB-02, PKG-MULTI-SUB-03, PKG-MULTI-SUB-04, PKG-MULTI-SUB-07, PKG-MULTI-SUB-08, PKG-MULTI-SUB-05, PKG-MULTI-SUB-06, PKG-MULTI-SUB-09, PKG-MULTI-SUB-10, PKG-MULTI-SUB-11 | | artplayer-plugin-vast | 1.2.0 | PKG-VAST-01, PKG-VAST-02, PKG-VAST-03, PKG-VAST-04, PKG-VAST-05, PKG-VAST-06, PKG-VAST-07 | @@ -208,7 +208,8 @@ | PKG-HLS-04 | artplayer-plugin-hls-control
迁移自有源码和公开类型 | PKG-HLS-03, ENG-04, ENG-06, CORE-07 | HLS 能力适配类型、回调上下文和旧 getName 参数 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | done | | PKG-HLS-SDK-01 | artplayer-plugin-hls-control
验证真实 SDK worker 与分组轨道组合 | PKG-HLS-04, CORE-22 | 固定历史及当前 SDK 归档、真实 worker/多音轨组、外部选择与重绑定浏览器证据 | 受支持桌面 MSE 引擎与新旧核心通过;无 worker 回退伪通过,设备缺口仍由 PKG-HLS-05 保持未完成 | H | doing | | PKG-HLS-05 | artplayer-plugin-hls-control
验证新旧核心和组合 | PKG-HLS-04, CORE-22, PKG-HLS-SDK-01 | 本地多码率 HLS、换成无轨道来源、旧核心和最终核心 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | todo | -| PKG-HLS-06 | artplayer-plugin-hls-control
验证分发并同步文档 | PKG-HLS-05, ENG-07 | hls.control.js、依赖范围与回退记录 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-HLS-06 | artplayer-plugin-hls-control
验证分发并同步文档 | PKG-HLS-05, ENG-07, PKG-HLS-PACK-01 | hls.control.js、依赖范围与回退记录 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo | +| PKG-HLS-PACK-01 | artplayer-plugin-hls-control
排除发布包内的实现 TypeScript 配置 | PKG-HLS-04, ENG-07 | 修正 npm 排除规则,真实打包核验公开入口与声明不变 | 旧归档复现 tsconfig 泄漏,新归档排除内部配置,全部历史 dist/types 保留且 JS/声明字节相同;正常 Yarn 打包与通用包校验通过 | M | done | ## 5 包迁移:artplayer-plugin-dash-control @@ -689,3 +690,4 @@ - PKG-CHAPTER-HOVER-01: [记录](changes/2026-09-14-PKG-CHAPTER-HOVER-01-geometry.md) [记录](baselines/chapter-hover-validation.json) - PKG-CANVAS-SUBTITLE-01: [记录](changes/2026-09-14-PKG-CANVAS-SUBTITLE-01-track.md) [记录](baselines/canvas-subtitles-validation.json) - PKG-DANMUKU-MASK-LOAD-01: [记录](changes/2026-09-14-PKG-DANMUKU-08-combined-load.md) [记录](baselines/danmuku-combined-load-validation.json) [记录](changes/2026-09-14-PKG-DANMUKU-MASK-LOAD-01-scheduling.md) [记录](baselines/danmuku-mask-load-validation.json) +- PKG-HLS-PACK-01: [记录](changes/2026-09-15-PKG-HLS-PACK-01-config.md) [记录](baselines/hls-pack-config-validation.json) diff --git a/refactor/progress.md b/refactor/progress.md index f3de1aa42..b106253f1 100644 --- a/refactor/progress.md +++ b/refactor/progress.md @@ -1,5 +1,12 @@ # 进度与证据 +## PKG-HLS-PACK-01 修正实现配置进入 npm 包 + +十二包安装准备发现 HLS 的内部 tsconfig 未排除。已修正 .npmignore,实际旧包 +拒绝/新包通过,六个公开 JS/声明文件与 package.json 字节不变;中间换行拼接 +错误也被校验拦截并保留归档。见[记录](changes/2026-09-15-PKG-HLS-PACK-01-config.md)。 +此任务独立完成,263 项现为 197 done、22 doing、44 todo;CI-01 接续安装与浏览器。 + ## CI-01 音频、缩略图和多字幕接入安装矩阵 九包安装与完整文件核验通过,统一安装清单扩展到 25 文件/762 项。本轮新增 diff --git a/refactor/tasks.json b/refactor/tasks.json index eac6cf312..6c32eebf6 100644 --- a/refactor/tasks.json +++ b/refactor/tasks.json @@ -2150,7 +2150,8 @@ ], "dependsOn": [ "PKG-HLS-05", - "ENG-07" + "ENG-07", + "PKG-HLS-PACK-01" ], "status": "todo", "risk": "H", @@ -5524,6 +5525,26 @@ "changes/2026-09-14-PKG-DANMUKU-MASK-LOAD-01-scheduling.md", "baselines/danmuku-mask-load-validation.json" ] + }, + { + "id": "PKG-HLS-PACK-01", + "phase": "5 包迁移:artplayer-plugin-hls-control", + "title": "排除发布包内的实现 TypeScript 配置", + "scope": [ + "artplayer-plugin-hls-control" + ], + "dependsOn": [ + "PKG-HLS-04", + "ENG-07" + ], + "status": "done", + "risk": "M", + "deliverable": "修正 npm 排除规则,真实打包核验公开入口与声明不变", + "acceptance": "旧归档复现 tsconfig 泄漏,新归档排除内部配置,全部历史 dist/types 保留且 JS/声明字节相同;正常 Yarn 打包与通用包校验通过", + "evidence": [ + "changes/2026-09-15-PKG-HLS-PACK-01-config.md", + "baselines/hls-pack-config-validation.json" + ] } ] }