Files
ArtPlayer/refactor/contract-policy.json
T

1138 lines
39 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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"
],
"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-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"
}
],
"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"
}
]
}