{ "schemaVersion": 1, "families": [ { "id": "API-01", "name": "构造与配置" }, { "id": "API-02", "name": "属性与方法" }, { "id": "API-03", "name": "属性描述符" }, { "id": "API-04", "name": "事件" }, { "id": "API-05", "name": "生命周期" }, { "id": "API-06", "name": "插件注册" }, { "id": "API-07", "name": "生态集成" }, { "id": "API-08", "name": "DOM/CSS" }, { "id": "API-09", "name": "包分发" }, { "id": "API-10", "name": "浏览器能力" }, { "id": "API-11", "name": "TypeScript" }, { "id": "API-12", "name": "持久状态与协议" } ], "packages": [ { "name": "artplayer", "owners": { "API-01": "REVIEW-02", "API-02": "REVIEW-02", "API-03": "REVIEW-02", "API-04": "REVIEW-02", "API-05": "REVIEW-02", "API-06": "REVIEW-02", "API-07": "REVIEW-02", "API-08": "REVIEW-02", "API-09": "REVIEW-02", "API-10": "REL-03", "API-11": "REVIEW-02", "API-12": "REVIEW-02" }, "versionIds": [ "WS-artplayer", "PUB-artplayer-5.4.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-ads", "owners": { "API-01": "PKG-ADS-02", "API-02": "PKG-ADS-02", "API-03": "PKG-ADS-02", "API-04": "PKG-ADS-02", "API-05": "PKG-ADS-02", "API-06": "PKG-ADS-02", "API-07": "PKG-ADS-02", "API-08": "PKG-ADS-02", "API-09": "PKG-ADS-06", "API-10": "REL-03", "API-11": "PKG-ADS-04", "API-12": "PKG-ADS-02" }, "versionIds": [ "WS-artplayer-plugin-ads", "PUB-artplayer-plugin-ads-1.0.6" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-ambilight", "owners": { "API-01": "PKG-AMBILIGHT-02", "API-02": "PKG-AMBILIGHT-02", "API-03": "PKG-AMBILIGHT-02", "API-04": "PKG-AMBILIGHT-02", "API-05": "PKG-AMBILIGHT-02", "API-06": "PKG-AMBILIGHT-02", "API-07": "PKG-AMBILIGHT-02", "API-08": "PKG-AMBILIGHT-02", "API-09": "PKG-AMBILIGHT-06", "API-10": "REL-03", "API-11": "PKG-AMBILIGHT-04", "API-12": "PKG-AMBILIGHT-02" }, "versionIds": [ "WS-artplayer-plugin-ambilight", "PUB-artplayer-plugin-ambilight-1.1.0", "PUB-artplayer-plugin-ambilight-1.0.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-asr", "owners": { "API-01": "PKG-ASR-02", "API-02": "PKG-ASR-02", "API-03": "PKG-ASR-02", "API-04": "PKG-ASR-02", "API-05": "PKG-ASR-02", "API-06": "PKG-ASR-02", "API-07": "PKG-ASR-02", "API-08": "PKG-ASR-02", "API-09": "PKG-ASR-06", "API-10": "REL-03", "API-11": "PKG-ASR-04", "API-12": "PKG-ASR-02" }, "versionIds": [ "WS-artplayer-plugin-asr" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-audio-track", "owners": { "API-01": "PKG-AUDIO-02", "API-02": "PKG-AUDIO-02", "API-03": "PKG-AUDIO-02", "API-04": "PKG-AUDIO-02", "API-05": "PKG-AUDIO-02", "API-06": "PKG-AUDIO-02", "API-07": "PKG-AUDIO-02", "API-08": "PKG-AUDIO-02", "API-09": "PKG-AUDIO-06", "API-10": "REL-03", "API-11": "PKG-AUDIO-04", "API-12": "PKG-AUDIO-02" }, "versionIds": [ "WS-artplayer-plugin-audio-track", "PUB-artplayer-plugin-audio-track-1.1.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-auto-thumbnail", "owners": { "API-01": "PKG-AUTO-THUMB-02", "API-02": "PKG-AUTO-THUMB-02", "API-03": "PKG-AUTO-THUMB-02", "API-04": "PKG-AUTO-THUMB-02", "API-05": "PKG-AUTO-THUMB-02", "API-06": "PKG-AUTO-THUMB-02", "API-07": "PKG-AUTO-THUMB-02", "API-08": "PKG-AUTO-THUMB-02", "API-09": "PKG-AUTO-THUMB-06", "API-10": "REL-03", "API-11": "PKG-AUTO-THUMB-04", "API-12": "PKG-AUTO-THUMB-02" }, "versionIds": [ "WS-artplayer-plugin-auto-thumbnail", "PUB-artplayer-plugin-auto-thumbnail-1.1.0", "PUB-artplayer-plugin-auto-thumbnail-1.0.1", "PUB-artplayer-plugin-auto-thumbnail-1.0.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Three verified npm archives and a separate workspace snapshot. 1.0.0 lacks main/legacy and is not runnable through its declared entries. See auto-thumbnail-contract.md; source-only tests and Git core associations do not establish a supported range." }, { "name": "artplayer-plugin-chapter", "owners": { "API-01": "PKG-CHAPTER-02", "API-02": "PKG-CHAPTER-02", "API-03": "PKG-CHAPTER-02", "API-04": "PKG-CHAPTER-02", "API-05": "PKG-CHAPTER-02", "API-06": "PKG-CHAPTER-02", "API-07": "PKG-CHAPTER-02", "API-08": "PKG-CHAPTER-02", "API-09": "PKG-CHAPTER-06", "API-10": "REL-03", "API-11": "PKG-CHAPTER-04", "API-12": "PKG-CHAPTER-02" }, "versionIds": [ "WS-artplayer-plugin-chapter", "PUB-artplayer-plugin-chapter-1.1.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-chromecast", "owners": { "API-01": "PKG-CAST-02", "API-02": "PKG-CAST-02", "API-03": "PKG-CAST-02", "API-04": "PKG-CAST-02", "API-05": "PKG-CAST-02", "API-06": "PKG-CAST-02", "API-07": "PKG-CAST-02", "API-08": "PKG-CAST-02", "API-09": "PKG-CAST-06", "API-10": "REL-03", "API-11": "PKG-CAST-04", "API-12": "PKG-CAST-02" }, "versionIds": [ "WS-artplayer-plugin-chromecast" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-danmuku", "owners": { "API-01": "PKG-DANMUKU-02", "API-02": "PKG-DANMUKU-02", "API-03": "PKG-DANMUKU-02", "API-04": "PKG-DANMUKU-02", "API-05": "PKG-DANMUKU-02", "API-06": "PKG-DANMUKU-02", "API-07": "PKG-DANMUKU-02", "API-08": "PKG-DANMUKU-02", "API-09": "PKG-DANMUKU-06", "API-10": "REL-03", "API-11": "PKG-DANMUKU-04", "API-12": "PKG-DANMUKU-02" }, "versionIds": [ "WS-artplayer-plugin-danmuku" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-danmuku-mask", "owners": { "API-01": "PKG-MASK-02", "API-02": "PKG-MASK-02", "API-03": "PKG-MASK-02", "API-04": "PKG-MASK-02", "API-05": "PKG-MASK-02", "API-06": "PKG-MASK-02", "API-07": "PKG-MASK-02", "API-08": "PKG-MASK-02", "API-09": "PKG-MASK-06", "API-10": "REL-03", "API-11": "PKG-MASK-04", "API-12": "PKG-MASK-02" }, "versionIds": [ "WS-artplayer-plugin-danmuku-mask" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-dash-control", "owners": { "API-01": "PKG-DASH-02", "API-02": "PKG-DASH-02", "API-03": "PKG-DASH-02", "API-04": "PKG-DASH-02", "API-05": "PKG-DASH-02", "API-06": "PKG-DASH-02", "API-07": "PKG-DASH-02", "API-08": "PKG-DASH-02", "API-09": "PKG-DASH-06", "API-10": "REL-03", "API-11": "PKG-DASH-04", "API-12": "PKG-DASH-02" }, "versionIds": [ "WS-artplayer-plugin-dash-control", "PUB-artplayer-plugin-dash-control-1.1.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-document-pip", "owners": { "API-01": "PKG-DPIP-02", "API-02": "PKG-DPIP-02", "API-03": "PKG-DPIP-02", "API-04": "PKG-DPIP-02", "API-05": "PKG-DPIP-02", "API-06": "PKG-DPIP-02", "API-07": "PKG-DPIP-02", "API-08": "PKG-DPIP-02", "API-09": "PKG-DPIP-06", "API-10": "REL-03", "API-11": "PKG-DPIP-04", "API-12": "PKG-DPIP-02" }, "versionIds": [ "WS-artplayer-plugin-document-pip", "PUB-artplayer-plugin-document-pip-1.1.0", "PUB-artplayer-plugin-document-pip-1.0.2", "PUB-artplayer-plugin-document-pip-1.0.1", "PUB-artplayer-plugin-document-pip-1.0.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-hls-control", "owners": { "API-01": "PKG-HLS-02", "API-02": "PKG-HLS-02", "API-03": "PKG-HLS-02", "API-04": "PKG-HLS-02", "API-05": "PKG-HLS-02", "API-06": "PKG-HLS-02", "API-07": "PKG-HLS-02", "API-08": "PKG-HLS-02", "API-09": "PKG-HLS-06", "API-10": "REL-03", "API-11": "PKG-HLS-04", "API-12": "PKG-HLS-02" }, "versionIds": [ "WS-artplayer-plugin-hls-control", "PUB-artplayer-plugin-hls-control-1.1.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-jassub", "owners": { "API-01": "PKG-JASSUB-02", "API-02": "PKG-JASSUB-02", "API-03": "PKG-JASSUB-02", "API-04": "PKG-JASSUB-02", "API-05": "PKG-JASSUB-02", "API-06": "PKG-JASSUB-02", "API-07": "PKG-JASSUB-02", "API-08": "PKG-JASSUB-02", "API-09": "PKG-JASSUB-06", "API-10": "REL-03", "API-11": "PKG-JASSUB-04", "API-12": "PKG-JASSUB-02" }, "versionIds": [ "WS-artplayer-plugin-jassub" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-multiple-subtitles", "owners": { "API-01": "PKG-MULTI-SUB-02", "API-02": "PKG-MULTI-SUB-02", "API-03": "PKG-MULTI-SUB-02", "API-04": "PKG-MULTI-SUB-02", "API-05": "PKG-MULTI-SUB-02", "API-06": "PKG-MULTI-SUB-02", "API-07": "PKG-MULTI-SUB-02", "API-08": "PKG-MULTI-SUB-02", "API-09": "PKG-MULTI-SUB-06", "API-10": "REL-03", "API-11": "PKG-MULTI-SUB-04", "API-12": "PKG-MULTI-SUB-02" }, "versionIds": [ "WS-artplayer-plugin-multiple-subtitles", "PUB-artplayer-plugin-multiple-subtitles-1.2.0", "PUB-artplayer-plugin-multiple-subtitles-1.1.0", "PUB-artplayer-plugin-multiple-subtitles-1.0.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Three actual npm archives frozen with 20 members and Git core associations. 1.0.0 merges by cue index; 1.1.0+ concatenates tracks. Async methods and onParser declaration mismatches remain explicit. Pinned WebVTT upstream comparison is not evidence of historical acquisition or all core/device support." }, { "name": "artplayer-plugin-vast", "owners": { "API-01": "PKG-VAST-02", "API-02": "PKG-VAST-02", "API-03": "PKG-VAST-02", "API-04": "PKG-VAST-02", "API-05": "PKG-VAST-02", "API-06": "PKG-VAST-02", "API-07": "PKG-VAST-02", "API-08": "PKG-VAST-02", "API-09": "PKG-VAST-06", "API-10": "REL-03", "API-11": "PKG-VAST-04", "API-12": "PKG-VAST-02" }, "versionIds": [ "WS-artplayer-plugin-vast", "PUB-artplayer-plugin-vast-1.0.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-plugin-vtt-thumbnail", "owners": { "API-01": "PKG-VTT-THUMB-02", "API-02": "PKG-VTT-THUMB-02", "API-03": "PKG-VTT-THUMB-02", "API-04": "PKG-VTT-THUMB-02", "API-05": "PKG-VTT-THUMB-02", "API-06": "PKG-VTT-THUMB-02", "API-07": "PKG-VTT-THUMB-02", "API-08": "PKG-VTT-THUMB-02", "API-09": "PKG-VTT-THUMB-06", "API-10": "REL-03", "API-11": "PKG-VTT-THUMB-04", "API-12": "PKG-VTT-THUMB-02" }, "versionIds": [ "WS-artplayer-plugin-vtt-thumbnail", "PUB-artplayer-plugin-vtt-thumbnail-1.1.0", "PUB-artplayer-plugin-vtt-thumbnail-1.0.0", "PUB-artplayer-plugin-vtt-thumbnail-1.0.1", "PUB-artplayer-plugin-vtt-thumbnail-1.0.2", "PUB-artplayer-plugin-vtt-thumbnail-1.0.3" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Five verified actual npm archives; 1.0.0 main/legacy cannot parse, and 1.0.1–1.0.3 compiled timestamp parsing differs from their shipped source. Source-only fixtures and Git core associations are not installed or browser support evidence. See vtt-thumbnail-contract.md." }, { "name": "artplayer-proxy-canvas", "owners": { "API-01": "PKG-CANVAS-02", "API-02": "PKG-CANVAS-02", "API-03": "PKG-CANVAS-02", "API-04": "PKG-CANVAS-02", "API-05": "PKG-CANVAS-02", "API-06": "PKG-CANVAS-02", "API-07": "PKG-CANVAS-02", "API-08": "PKG-CANVAS-02", "API-09": "PKG-CANVAS-06", "API-10": "REL-03", "API-11": "PKG-CANVAS-04", "API-12": "PKG-CANVAS-02" }, "versionIds": [ "WS-artplayer-proxy-canvas", "PUB-artplayer-proxy-canvas-1.1.0", "PUB-artplayer-proxy-canvas-1.0.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-proxy-mediabunny", "owners": { "API-01": "PKG-MB-02", "API-02": "PKG-MB-02", "API-03": "PKG-MB-02", "API-04": "PKG-MB-02", "API-05": "PKG-MB-02", "API-06": "PKG-MB-02", "API-07": "PKG-MB-02", "API-08": "PKG-MB-02", "API-09": "PKG-MB-10", "API-10": "REL-03", "API-11": "PKG-MB-08", "API-12": "PKG-MB-02" }, "versionIds": [ "WS-artplayer-proxy-mediabunny", "PUB-artplayer-proxy-mediabunny-1.2.0", "PUB-artplayer-proxy-mediabunny-1.0.0" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-tool-iframe", "owners": { "API-01": "PKG-IFRAME-02", "API-02": "PKG-IFRAME-02", "API-03": "PKG-IFRAME-02", "API-04": "PKG-IFRAME-02", "API-05": "PKG-IFRAME-02", "API-06": "PKG-IFRAME-02", "API-07": "PKG-IFRAME-02", "API-08": "PKG-IFRAME-02", "API-09": "PKG-IFRAME-06", "API-10": "REL-03", "API-11": "PKG-IFRAME-04", "API-12": "PKG-IFRAME-02" }, "versionIds": [ "WS-artplayer-tool-iframe" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-tool-thumbnail", "owners": { "API-01": "PKG-TOOL-THUMB-02", "API-02": "PKG-TOOL-THUMB-02", "API-03": "PKG-TOOL-THUMB-02", "API-04": "PKG-TOOL-THUMB-02", "API-05": "PKG-TOOL-THUMB-02", "API-06": "PKG-TOOL-THUMB-02", "API-07": "PKG-TOOL-THUMB-02", "API-08": "PKG-TOOL-THUMB-02", "API-09": "PKG-TOOL-THUMB-06", "API-10": "REL-03", "API-11": "PKG-TOOL-THUMB-04", "API-12": "PKG-TOOL-THUMB-02" }, "versionIds": [ "WS-artplayer-tool-thumbnail" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "Each public member, callback, option, event and capability requires package contract review; family ownership alone is not exhaustive coverage" }, { "name": "artplayer-vitepress", "owners": { "API-01": "SITE-06", "API-02": "SITE-06", "API-03": "SITE-06", "API-04": "SITE-06", "API-05": "SITE-06", "API-06": "SITE-06", "API-07": "SITE-06", "API-08": "SITE-06", "API-09": "SITE-06", "API-10": "SITE-06", "API-11": "SITE-06", "API-12": "SITE-06" }, "versionIds": [ "WS-artplayer-vitepress" ], "supportWindow": "not-inferred-from-baseline", "scopeReview": "SITE-01/06 must distinguish website behavior from npm library APIs; all families retain review ownership, no invented player constructor" } ], "versions": [ { "id": "WS-artplayer", "package": "artplayer", "kind": "workspace-baseline", "version": "5.4.1", "file": "refactor/package-inventory.json", "pointer": "/packages/0" }, { "id": "WS-artplayer-plugin-ads", "package": "artplayer-plugin-ads", "kind": "workspace-baseline", "version": "2.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/1" }, { "id": "WS-artplayer-plugin-ambilight", "package": "artplayer-plugin-ambilight", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/2" }, { "id": "WS-artplayer-plugin-asr", "package": "artplayer-plugin-asr", "kind": "workspace-baseline", "version": "2.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/3" }, { "id": "WS-artplayer-plugin-audio-track", "package": "artplayer-plugin-audio-track", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/4" }, { "id": "WS-artplayer-plugin-auto-thumbnail", "package": "artplayer-plugin-auto-thumbnail", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/5" }, { "id": "WS-artplayer-plugin-chapter", "package": "artplayer-plugin-chapter", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/6" }, { "id": "WS-artplayer-plugin-chromecast", "package": "artplayer-plugin-chromecast", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/7" }, { "id": "WS-artplayer-plugin-danmuku", "package": "artplayer-plugin-danmuku", "kind": "workspace-baseline", "version": "5.3.0", "file": "refactor/package-inventory.json", "pointer": "/packages/8" }, { "id": "WS-artplayer-plugin-danmuku-mask", "package": "artplayer-plugin-danmuku-mask", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/9" }, { "id": "WS-artplayer-plugin-dash-control", "package": "artplayer-plugin-dash-control", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/10" }, { "id": "WS-artplayer-plugin-document-pip", "package": "artplayer-plugin-document-pip", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/11" }, { "id": "WS-artplayer-plugin-hls-control", "package": "artplayer-plugin-hls-control", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/12" }, { "id": "WS-artplayer-plugin-jassub", "package": "artplayer-plugin-jassub", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/13" }, { "id": "WS-artplayer-plugin-multiple-subtitles", "package": "artplayer-plugin-multiple-subtitles", "kind": "workspace-baseline", "version": "1.2.0", "file": "refactor/package-inventory.json", "pointer": "/packages/14" }, { "id": "WS-artplayer-plugin-vast", "package": "artplayer-plugin-vast", "kind": "workspace-baseline", "version": "1.2.0", "file": "refactor/package-inventory.json", "pointer": "/packages/15" }, { "id": "WS-artplayer-plugin-vtt-thumbnail", "package": "artplayer-plugin-vtt-thumbnail", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/16" }, { "id": "WS-artplayer-proxy-canvas", "package": "artplayer-proxy-canvas", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/17" }, { "id": "WS-artplayer-proxy-mediabunny", "package": "artplayer-proxy-mediabunny", "kind": "workspace-baseline", "version": "1.2.0", "file": "refactor/package-inventory.json", "pointer": "/packages/18" }, { "id": "WS-artplayer-tool-iframe", "package": "artplayer-tool-iframe", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/19" }, { "id": "WS-artplayer-tool-thumbnail", "package": "artplayer-tool-thumbnail", "kind": "workspace-baseline", "version": "4.4.0", "file": "refactor/package-inventory.json", "pointer": "/packages/20" }, { "id": "WS-artplayer-vitepress", "package": "artplayer-vitepress", "kind": "workspace-baseline", "version": "1.1.0", "file": "refactor/package-inventory.json", "pointer": "/packages/21" }, { "id": "PUB-artplayer-5.4.0", "package": "artplayer", "kind": "published-baseline", "version": "5.4.0", "file": "refactor/baselines/releases.json", "pointer": "/releases/0", "archiveSha256": "42b269a66b9658d53f9a92572bb36d656ea9af56254a387b3a69c7ddea43979e" }, { "id": "PUB-artplayer-plugin-chapter-1.1.0", "package": "artplayer-plugin-chapter", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/releases.json", "pointer": "/releases/1", "archiveSha256": "4c3173661854ff96f643a479c0f1c2db7ce9e54681523bd059a7dd9bd77eeada" }, { "id": "PUB-artplayer-plugin-audio-track-1.1.0", "package": "artplayer-plugin-audio-track", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/audio-track-release.json", "pointer": "/release", "archiveSha256": "7e84f6a2f4bfada428a77ef04b749bf3db53e0149fa1afe7bf5749d925e801ff" }, { "id": "PUB-artplayer-plugin-hls-control-1.1.0", "package": "artplayer-plugin-hls-control", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/hls-control-release.json", "pointer": "/release", "archiveSha256": "598c354d78d3cb77965136fa61dfc0f94cdea6906a91a30781c1acef2b0c3e8b" }, { "id": "PUB-artplayer-plugin-dash-control-1.1.0", "package": "artplayer-plugin-dash-control", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/dash-control-release.json", "pointer": "/release", "archiveSha256": "f4047a569d99b6a7de57b3719b7ad40109f2a1d360566a840f50ab32aacefcd9" }, { "id": "PUB-artplayer-plugin-ads-1.0.6", "package": "artplayer-plugin-ads", "kind": "published-baseline", "version": "1.0.6", "file": "refactor/baselines/ads-release.json", "pointer": "/release", "archiveSha256": "ff132ff8a7108d8b26421621e4aac1d7edf8c99099a5ab4fd2190bd79b8636cd" }, { "id": "PUB-artplayer-plugin-vast-1.0.0", "package": "artplayer-plugin-vast", "kind": "published-baseline", "version": "1.0.0", "file": "refactor/baselines/vast-release.json", "pointer": "/release", "archiveSha256": "35681d60fa3fa09b92f0f30887e39c73cf55e7b14d51a1c38fccbc6c1f253bab" }, { "id": "PUB-artplayer-plugin-ambilight-1.1.0", "package": "artplayer-plugin-ambilight", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/ambilight-release.json", "pointer": "/release", "archiveSha256": "e95bd60fd7bce52142cf0041bad811452305029cbe1129c7d89246eb260c5c86" }, { "id": "PUB-artplayer-plugin-ambilight-1.0.0", "package": "artplayer-plugin-ambilight", "kind": "published-baseline", "version": "1.0.0", "file": "refactor/baselines/ambilight-release.json", "pointer": "/previous/0", "archiveSha256": "a95aa8c232ab48493e6b4d46b36edc8091230cbde5d18d7ec41912a4fa2b8956" }, { "id": "PUB-artplayer-proxy-canvas-1.1.0", "package": "artplayer-proxy-canvas", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/canvas-release.json", "pointer": "/release", "archiveSha256": "348c1d6671f79d0e0dbf2bb15875a1e6d60d00b73cde833c018bec7e4be96c8e" }, { "id": "PUB-artplayer-proxy-canvas-1.0.0", "package": "artplayer-proxy-canvas", "kind": "published-baseline", "version": "1.0.0", "file": "refactor/baselines/canvas-release.json", "pointer": "/previous/0", "archiveSha256": "728ba39534b3b8139bdc404ef15fe1ac5f76a95562a14e78c6973db2dcfa6f4f" }, { "id": "PUB-artplayer-plugin-document-pip-1.1.0", "package": "artplayer-plugin-document-pip", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/dpip-release.json", "pointer": "/release", "archiveSha256": "b864befea9aff84b3352782a9670ebe72ff073606fec7cdc31d31e92a5ad6d8a" }, { "id": "PUB-artplayer-plugin-document-pip-1.0.2", "package": "artplayer-plugin-document-pip", "kind": "published-baseline", "version": "1.0.2", "file": "refactor/baselines/dpip-release.json", "pointer": "/previous/0", "archiveSha256": "0657a1b2e3e82ccfd29dea824baca7f93748d0107942d4befd360be7bf4efd68" }, { "id": "PUB-artplayer-plugin-document-pip-1.0.1", "package": "artplayer-plugin-document-pip", "kind": "published-baseline", "version": "1.0.1", "file": "refactor/baselines/dpip-release.json", "pointer": "/previous/1", "archiveSha256": "dcf611aa5c4247858cb61e197f073db719a4806dc97da2d927394169d428316f" }, { "id": "PUB-artplayer-plugin-document-pip-1.0.0", "package": "artplayer-plugin-document-pip", "kind": "published-baseline", "version": "1.0.0", "file": "refactor/baselines/dpip-release.json", "pointer": "/previous/2", "archiveSha256": "3b0164391171c817ab511f740205732e65db0e8f1d65d63f0d24d8eef4251573" }, { "id": "PUB-artplayer-proxy-mediabunny-1.2.0", "package": "artplayer-proxy-mediabunny", "kind": "published-baseline", "version": "1.2.0", "file": "refactor/baselines/mb-release.json", "pointer": "/release", "archiveSha256": "acb016166059183917a6de2e03a65ad77b09997fc9fb62513d751a24467ca76c" }, { "id": "PUB-artplayer-proxy-mediabunny-1.0.0", "package": "artplayer-proxy-mediabunny", "kind": "published-baseline", "version": "1.0.0", "file": "refactor/baselines/mb-release.json", "pointer": "/previous/0", "archiveSha256": "d62f3ad75d07abbc8ca597846e213f34abd15b3742f7e87f294800fdef2e8962" }, { "id": "PUB-artplayer-plugin-auto-thumbnail-1.1.0", "package": "artplayer-plugin-auto-thumbnail", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/auto-thumbnail-release.json", "pointer": "/release", "archiveSha256": "5ea83d4e45d42fdaf42d3e37b6c666857872adaa276ab329c74edcdaa3c1a978" }, { "id": "PUB-artplayer-plugin-auto-thumbnail-1.0.1", "package": "artplayer-plugin-auto-thumbnail", "kind": "published-baseline", "version": "1.0.1", "file": "refactor/baselines/auto-thumbnail-release.json", "pointer": "/previous/0", "archiveSha256": "e7e0e09865cf4b46350097137ec292a64e6feedece2c90f724f0498993bfa812" }, { "id": "PUB-artplayer-plugin-auto-thumbnail-1.0.0", "package": "artplayer-plugin-auto-thumbnail", "kind": "published-baseline", "version": "1.0.0", "file": "refactor/baselines/auto-thumbnail-release.json", "pointer": "/previous/1", "archiveSha256": "0a907bc8dbf2ef773764645730309b2c95592f84b31f5c4f9cec636d29c0263e" }, { "id": "PUB-artplayer-plugin-vtt-thumbnail-1.1.0", "package": "artplayer-plugin-vtt-thumbnail", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/vtt-thumbnail-release.json", "pointer": "/release", "archiveSha256": "e2df36283538bbffc2c37fe28a8af0fe6fc0fa68a5f6cf93042929ee64d55765" }, { "id": "PUB-artplayer-plugin-vtt-thumbnail-1.0.0", "package": "artplayer-plugin-vtt-thumbnail", "kind": "published-baseline", "version": "1.0.0", "file": "refactor/baselines/vtt-thumbnail-release.json", "pointer": "/previous/0", "archiveSha256": "18440510636529d76d97cd653433e65f795173e2e134d24caf0612845328dca1" }, { "id": "PUB-artplayer-plugin-vtt-thumbnail-1.0.1", "package": "artplayer-plugin-vtt-thumbnail", "kind": "published-baseline", "version": "1.0.1", "file": "refactor/baselines/vtt-thumbnail-release.json", "pointer": "/previous/1", "archiveSha256": "2827599516c48fa17c3e8c917164df8ea3f9a3a5ef2643e079fd0df73a171175" }, { "id": "PUB-artplayer-plugin-vtt-thumbnail-1.0.2", "package": "artplayer-plugin-vtt-thumbnail", "kind": "published-baseline", "version": "1.0.2", "file": "refactor/baselines/vtt-thumbnail-release.json", "pointer": "/previous/2", "archiveSha256": "a2230637d991731cef5f5f133bcb93a2e41bacb8a1a361b60b5c901a267fcbf1" }, { "id": "PUB-artplayer-plugin-vtt-thumbnail-1.0.3", "package": "artplayer-plugin-vtt-thumbnail", "kind": "published-baseline", "version": "1.0.3", "file": "refactor/baselines/vtt-thumbnail-release.json", "pointer": "/previous/3", "archiveSha256": "286ba11db6adaeb85a4b3fef198af9a10ed0a548566d57ef7efa77c4b4f05f83" }, { "id": "PUB-artplayer-plugin-multiple-subtitles-1.2.0", "package": "artplayer-plugin-multiple-subtitles", "kind": "published-baseline", "version": "1.2.0", "file": "refactor/baselines/multiple-subtitles-release.json", "pointer": "/release", "archiveSha256": "a013fbe0772bf560d177449fc80e848c41f16ae2f72ace86f8fb0d5b1000a54e" }, { "id": "PUB-artplayer-plugin-multiple-subtitles-1.1.0", "package": "artplayer-plugin-multiple-subtitles", "kind": "published-baseline", "version": "1.1.0", "file": "refactor/baselines/multiple-subtitles-release.json", "pointer": "/previous/0", "archiveSha256": "b5e8cfa9671496b08a6f1377bace4ce557c865335dc2f746156707c03c8d9d16" }, { "id": "PUB-artplayer-plugin-multiple-subtitles-1.0.0", "package": "artplayer-plugin-multiple-subtitles", "kind": "published-baseline", "version": "1.0.0", "file": "refactor/baselines/multiple-subtitles-release.json", "pointer": "/previous/1", "archiveSha256": "9b584f27287dbda1722315c07d05e1d7391453130b8fd9f952669e809e662ef5" } ], "cases": [ { "id": "CT-CORE-OPTIONS-001", "package": "artplayer", "contracts": [ "API-01" ], "runner": "node", "command": "yarn test:contracts", "file": "test/options.test.js", "title": "default values, keys and nested order match the published getter", "versionIds": [ "WS-artplayer", "PUB-artplayer-5.4.0" ], "scope": "Current option getter compared with archived published 5.4.0", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CORE-OPTIONS-002", "package": "artplayer", "contracts": [ "API-01" ], "runner": "node", "command": "yarn test:contracts", "file": "test/options.test.js", "title": "invalid JS input keeps the published validation path, first error and thrown kind", "versionIds": [ "WS-artplayer", "PUB-artplayer-5.4.0" ], "scope": "Nine invalid input patches compare first error name/message with published 5.4.0", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CORE-PLUGINS-001", "package": "artplayer", "contracts": [ "API-03", "API-06" ], "runner": "node", "command": "yarn test:contracts", "file": "test/plugins.test.js", "title": "plugin registration keeps receiver, arguments, id, descriptors and naming precedence", "versionIds": [ "WS-artplayer" ], "scope": "Controlled registry checks receiver, identity, hidden nonwritable descriptor and naming conflicts", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CORE-PLUGINS-002", "package": "artplayer", "contracts": [ "API-02", "API-06" ], "runner": "node", "command": "yarn test:contracts", "file": "test/plugins.test.js", "title": "async factories preserve pending visibility, completion-time fallback and registry fulfillment", "versionIds": [ "WS-artplayer" ], "scope": "Controlled asynchronous factory visibility and returned registry", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CORE-PLUGINS-003", "package": "artplayer", "contracts": [ "API-05", "API-06" ], "runner": "node", "command": "yarn test:contracts", "file": "test/plugins.test.js", "title": "closed registries ignore late results without inspecting or destroying them and reject new factories", "versionIds": [ "WS-artplayer" ], "scope": "Disposed scope suppresses late result getters and disallows further factory execution", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CORE-EVENTS-001", "package": "artplayer", "contracts": [ "API-04" ], "runner": "node", "command": "yarn test:contracts", "file": "test/public-behavior.test.js", "title": "EVENT.once-nested-snapshot: candidate consumes a once registration across nested dispatch snapshots", "versionIds": [ "WS-artplayer", "PUB-artplayer-5.4.0" ], "scope": "Published duplicate nested once dispatch is reproduced; current consumes once exactly once", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CORE-STORAGE-001", "package": "artplayer", "contracts": [ "API-02", "API-12" ], "runner": "node", "command": "yarn test:contracts", "file": "test/storage.test.js", "title": "storage preserves envelope, mutable name/settings fields and synchronous returns", "versionIds": [ "WS-artplayer" ], "scope": "Controlled localStorage verifies exact key/envelope and synchronous returns", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CORE-STORAGE-002", "package": "artplayer", "contracts": [ "API-12" ], "runner": "node", "command": "yarn test:contracts", "file": "test/storage.test.js", "title": "storage retains truthy key selection and historical JSON payload shapes", "versionIds": [ "WS-artplayer" ], "scope": "Array/scalar/null/malformed JSON cases retain historical fallback semantics", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CHAPTER-NORMALIZE-001", "package": "artplayer-plugin-chapter", "contracts": [ "API-01", "API-02" ], "runner": "node", "command": "yarn test:contracts", "file": "test/chapter.test.js", "title": "Chapter normalization preserves caller array and objects while filling every gap", "versionIds": [ "WS-artplayer-plugin-chapter" ], "scope": "Current normalizer retains caller array and chapter identity across repeated normalization", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" }, { "id": "CT-CHAPTER-NORMALIZE-002", "package": "artplayer-plugin-chapter", "contracts": [ "API-02" ], "runner": "node", "command": "yarn test:contracts", "file": "test/chapter.test.js", "title": "Chapter endpoints, adjacency and Infinity normalization retain historical behavior", "versionIds": [ "WS-artplayer-plugin-chapter" ], "scope": "Current normalizer retains adjacent endpoints and resolves Infinity against duration", "limitations": "Source/controlled-host assertions only; no whole-family acceptance, installed tarball, browser, device or continuous support-range claim" } ] }