fix(types): PKG-CHAPTER-04 preserve CJS ESM and legacy consumer contracts

This commit is contained in:
Harvey Zhao committed 2026-09-10 23:29:06 +08:00
1 parent 48660c4e12
commit bab80ff886
41 files changed
+1087 -119

No files matched your search

@@ -0,0 +1,767 @@
{
"task": "PKG-CHAPTER-04",
"capturedAt": "2026-09-10T15:28:48.036Z",
"packages": [
{
"name": "artplayer",
"version": "5.4.1",
"archive": "artplayer.tgz",
"sha256": "a6003dd79beef54ea8ce028455573382a63e89b0323ac564cda1432bbd14848c",
"files": {
"package/README.md": "9b432fbd3145a33757a93e3fd01b7bd1c3369f51243c5147bca04c6f662b55e1",
"package/dist/artplayer.js": "9ad044a601dafc24f449b690403fb1c343b40e99ffb31043272189fc3c1e7bfa",
"package/dist/artplayer.legacy.js": "71eebcca3192000c58e20f2e3cb76e86c05e33b5a1fab0add20436a5933a3e87",
"package/dist/artplayer.mjs": "ac72f41624383ba853474161affb72b5887644449bf7cb18f6d18edeb2f6f997",
"package/dist/i18n/ar.js": "61c43469ee95a00dc624583f418653e3dcbf48b24ae6a4c203ad986234852365",
"package/dist/i18n/ar.mjs": "68922fdc9f80d3321ea0654c8ff8f5875b6715103d2b14ffcf17f93738b39cf9",
"package/dist/i18n/cs.js": "ad7bbf8853204a6955ef84bfbd932cab3f141a7e73a8145f28ba7a5b2b83b7c0",
"package/dist/i18n/cs.mjs": "29a489be767fda9d46b59c9adbaad323f17a5e67daf7f7aa78b7ce8fb5b4d63c",
"package/dist/i18n/es.js": "aaa95cc9645b734c58fba06fdbcdda962c4cb3a0e7eb6206f06d6168208cd86b",
"package/dist/i18n/es.mjs": "331d2ef74da2eec8f3304fec0b5340c795d9c1eec24e08167c9a7b66bf30973b",
"package/dist/i18n/fa.js": "c998467261cbdfd2c3fb16c0ae4b2c48c409f42f41aea35ed94766f1e12819d5",
"package/dist/i18n/fa.mjs": "b4c98894b46975cebf5ea9088bcf0b5bdfd408bc3c82f4e2e9128133c7de2d4d",
"package/dist/i18n/fr.js": "6b06e16b1fb01c8695fb5c10b32a00421399180de5dc5d845ce17010f2fd3e66",
"package/dist/i18n/fr.mjs": "abe8e3548fa7304f302e2c74818a6176edee8c3b65e33cb6f62e96d130749ee5",
"package/dist/i18n/id.js": "a5832c4bfc03c7f16418bf4b324d9773895541dc823ece9114741794737aad74",
"package/dist/i18n/id.mjs": "a40a433be6ca1ac1ee1810fe805ee60784d349e59b9ad82ea80201d660db4e68",
"package/dist/i18n/pl.js": "2491487062bdfc91d60f17c6e9a83ee196c991216d15f525fe3536b98873da2c",
"package/dist/i18n/pl.mjs": "ad8ea2c03785edbfe1f35761bec21b8a04213f9fa88a794d850bb3973564930f",
"package/dist/i18n/ru.js": "2d3a9ee6533cb6fa961f0a24a25ce63cc76992fca17e1769b6fa75104f8a1529",
"package/dist/i18n/ru.mjs": "a89b8c36cfd7c181c2b31aa823deda3d7c37b56b2b81746338c52ea1c1d93352",
"package/dist/i18n/tr.js": "438b06a4c3f479a2901b0085eaa7bdba8eaef87bdb07ff3faa559c85403fe433",
"package/dist/i18n/tr.mjs": "cc96f9cbb9c1587d5cd8f25b0b9800678ad76e93de089ae42c38dee16e6fe8fa",
"package/dist/i18n/vi.js": "1ffbd62843a902ea2967eab46432d3fc548f5633e53eed104314b523cacc46a8",
"package/dist/i18n/vi.mjs": "7872ded84622bcda20e8c1d70c597c2ba071b50701900efa47cc4683ee17f1a2",
"package/dist/i18n/zh-tw.js": "2d43577f98456488196921e1ec721695a95e1b8c827077286b02ce3fb987e8ff",
"package/dist/i18n/zh-tw.mjs": "7ec638b4babe59d3ab1d3e64abdd74a96fefb260a50e2cd7240f8d50a1340925",
"package/package.json": "b343df9955df9ac0ea71ea775bd0743c6b26c06d3bb7699128f7eac484fa769f",
"package/types/README.md": "d38bb63f9e96f995273f9da6833a8b936a74718ef7b710dbd316530d41ccae07",
"package/types/artplayer.d.cts": "be67cbb6c352944741bca88f969ad1bafa9898049595930e2dc6693d5e7262f5",
"package/types/artplayer.d.mts": "87d1f0e2a7bf7b7bdf700875cb2c77dea8be34ba3ac943e5fd35e8daa99bf241",
"package/types/artplayer.d.ts": "98d3e7b65f9f81fba155da08fd47e4fb25f4c69279e3afd993c4a55070f8a850",
"package/types/component.d.ts": "facfa29d9092fe2c63a7d8357ce7d0faa5e32811d2fedeef6dc8b28ad5d04891",
"package/types/config.d.ts": "c4fd8681bf32b10c743e3e561c532520c8f32e43fd765524850b15e55cb91c72",
"package/types/cssVar.d.ts": "e027d82fb4f01c9ce7559cf679b2d5ee1962d3f7e5b4dd64ca21f472b933efb6",
"package/types/events.d.ts": "98c74aebb82455accc0b3523af5a1145bc9119da58c884200adc36e70a164b02",
"package/types/i18n.d.ts": "3e14759caf71f97f01650839248c8737c42d2c2979dabc43ad92b724da648708",
"package/types/icons.d.ts": "0d8e8e52e52130dd4a29bab551dd7a2a954797e42e92a6e068c85d583e23e6a4",
"package/types/language.d.cts": "1c9e0c47fae3c2d68c3e144d95a55071318a03bb31554dd049109efd3d0f95a4",
"package/types/language.d.mts": "c391e863012c77769e661afbf8fa949e9373aa88d17f58cbba7f5696edb8077f",
"package/types/legacy/language.d.ts": "c452ffd764ff9b29b819b3475c42395d2ea7a33560d8c186ef5df3844b9524c3",
"package/types/option.d.ts": "d4de53930c2fa9d59c77c4324d63f24b057bce6c4d0273c34a0ab06094dcea2c",
"package/types/player.d.ts": "986382bb6b4e82746fd2405092e69d0ef413988887a557a0fd4db85d64b78d54",
"package/types/quality.d.ts": "7ed6ed78cea52991b2f6ddd2bd3b7bd8c5146fdfff7486fe8b814c3e632f1567",
"package/types/setting.d.ts": "d12a75b656fff70cbb30be4bffec46d9c4273636e8722bce971a4d2b188712a1",
"package/types/subtitle.d.ts": "d25b470e47d6a9bd696d9c1ad8adb58e56a208f05695186d513bc8c43c2e8acf",
"package/types/template.d.ts": "68aed9e97d006d6be4fabb8504ca84dafab770b0925f4d6e7319e67c82f21b0d",
"package/types/utils.d.ts": "d3fb67b9187e1c81c6b3850694cf2627e927225ace160ae58c11631e9f673a98"
}
},
{
"name": "artplayer-plugin-chapter",
"version": "1.1.0",
"archive": "artplayer-plugin-chapter.tgz",
"sha256": "c44d129195028dcb527499d4bf47835ecde215e4d19565eba7f6eed6d6a74af7",
"files": {
"package/ARCHITECTURE.md": "20743bad87a174b0450e0d876b6aa6b2a9f47df296d479511ce7cc9298fdb57c",
"package/README.md": "b95400ff3d525621a15268bb56a2d353aacaaadefde7e735d7abd91a34edd96f",
"package/dist/artplayer-plugin-chapter.js": "6ac3dfe28f46084ac7caedd571b1a97dcee3cf9d708112f1b8bbd6566e1dc5c5",
"package/dist/artplayer-plugin-chapter.legacy.js": "6d9bff885412169e701670961aa00c2e46c4b42c9b9647ff4e6d198777d2a359",
"package/dist/artplayer-plugin-chapter.mjs": "26415cecab2c0198c566cef0232e20123413782d5bad7534a32939b3298617af",
"package/package.json": "24eec6907b3218439189adab6af3f932c1497c47c2d41209311c01042b07fd4f",
"package/types/artplayer-plugin-chapter.d.cts": "4f07514b37453cd6cea8e5aa28fa018ff31738e0d423c11a3b5eccd50ed30bcc",
"package/types/artplayer-plugin-chapter.d.mts": "610179754db36276e161a07bccf4eaba8b4480f053e716a2bcc5a1574871a171",
"package/types/artplayer-plugin-chapter.d.ts": "581aa2862e709601c87a23585f54a969ebd350be56a7469a31ff53f1311b578d"
}
}
],
"types": [
{
"compiler": "5.9.3",
"mode": "node10-commonjs",
"diagnostics": [],
"declarations": [
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.decorators.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.decorators.legacy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.dom.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.collection.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.core.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.generator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.proxy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.reflect.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.array.include.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.date.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.regexp.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.array.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.bigint.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.date.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.number.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es5.d.ts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.ts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/legacy/language.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
]
},
{
"compiler": "5.9.3",
"mode": "nodenext-cjs",
"diagnostics": [],
"declarations": [
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.decorators.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.decorators.legacy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.dom.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.collection.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.core.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.generator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.proxy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.reflect.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.array.include.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.date.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.regexp.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.array.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.bigint.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.date.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.number.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es5.d.ts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.cts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.ts",
"node_modules/artplayer/types/artplayer.d.cts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/language.d.cts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
]
},
{
"compiler": "5.9.3",
"mode": "bundler-esm",
"diagnostics": [],
"declarations": [
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.decorators.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.decorators.legacy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.dom.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.collection.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.core.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.generator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.proxy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.reflect.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.array.include.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.date.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.regexp.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.array.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.bigint.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.date.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.number.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es5.d.ts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.cts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.mts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.ts",
"node_modules/artplayer/types/artplayer.d.cts",
"node_modules/artplayer/types/artplayer.d.mts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/language.d.cts",
"node_modules/artplayer/types/language.d.mts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
]
},
{
"compiler": "4.3.5",
"mode": "node10-commonjs",
"diagnostics": [],
"declarations": [
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.dom.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.collection.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.core.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.generator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.iterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.proxy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.reflect.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2015.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2016.array.include.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2016.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2017.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2017.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2017.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2017.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2017.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2017.typedarrays.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2018.asyncgenerator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2018.asynciterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2018.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2018.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2018.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2018.regexp.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2019.array.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2019.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2019.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2019.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2019.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2020.bigint.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2020.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2020.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2020.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2020.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2020.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es2020.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript-compat/lib/lib.es5.d.ts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.ts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/legacy/language.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
]
},
{
"compiler": "5.9.3",
"mode": "nodenext-esm",
"diagnostics": [],
"declarations": [
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.decorators.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.decorators.legacy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.dom.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.collection.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.core.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.generator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.iterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.proxy.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.reflect.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.array.include.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2016.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.date.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2018.regexp.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.array.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.object.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2019.symbol.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.bigint.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.date.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.intl.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.number.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.promise.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.string.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts",
"D:/github/ArtPlayer/node_modules/typescript/lib/lib.es5.d.ts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.cts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.mts",
"node_modules/artplayer-plugin-chapter/types/artplayer-plugin-chapter.d.ts",
"node_modules/artplayer/types/artplayer.d.cts",
"node_modules/artplayer/types/artplayer.d.mts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/language.d.cts",
"node_modules/artplayer/types/language.d.mts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
]
}
],
"runtimeChecks": 23,
"knownTypeBlockers": 0,
"strictReleaseExit": 0,
"ciChecks": 62,
"browser": {
"startTime": "2026-09-10T15:21:32.399Z",
"duration": 28003.863999999998,
"expected": 54,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"tests": [
{
"title": "published-only observations: blank title, NaN and once-only metadata are historical defects",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "candidate clears titles on blank chapters, zero hover and replacement",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "candidate rejects NaN and can recover after an invalid update",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "candidate releases only its listeners and DOM across multiple instances and early destruction",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "candidate ignores pending metadata initialization after immediate destroy",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "candidate deduplicates stylesheet injection while the document is loading",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "published-only observations: blank title, NaN and once-only metadata are historical defects",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "candidate clears titles on blank chapters, zero hover and replacement",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "candidate rejects NaN and can recover after an invalid update",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "candidate releases only its listeners and DOM across multiple instances and early destruction",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "candidate ignores pending metadata initialization after immediate destroy",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "candidate deduplicates stylesheet injection while the document is loading",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "published-only observations: blank title, NaN and once-only metadata are historical defects",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "candidate clears titles on blank chapters, zero hover and replacement",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "candidate rejects NaN and can recover after an invalid update",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "candidate releases only its listeners and DOM across multiple instances and early destruction",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "candidate ignores pending metadata initialization after immediate destroy",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "candidate deduplicates stylesheet injection while the document is loading",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "factory, registration, input normalization and safe title text",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "progress bars, real hover, title edges and boundary seek",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "sync update, Infinity, object identity, empty lists and invalid data",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "explicit source update and core-owned destruction",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "factory, registration, input normalization and safe title text",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "progress bars, real hover, title edges and boundary seek",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "sync update, Infinity, object identity, empty lists and invalid data",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "explicit source update and core-owned destruction",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "factory, registration, input normalization and safe title text",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "progress bars, real hover, title edges and boundary seek",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "sync update, Infinity, object identity, empty lists and invalid data",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "explicit source update and core-owned destruction",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "factory, registration, input normalization and safe title text",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "progress bars, real hover, title edges and boundary seek",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "sync update, Infinity, object identity, empty lists and invalid data",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "explicit source update and core-owned destruction",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "factory, registration, input normalization and safe title text",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "progress bars, real hover, title edges and boundary seek",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "sync update, Infinity, object identity, empty lists and invalid data",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "explicit source update and core-owned destruction",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "factory, registration, input normalization and safe title text",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "progress bars, real hover, title edges and boundary seek",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "sync update, Infinity, object identity, empty lists and invalid data",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "explicit source update and core-owned destruction",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "published: real playback, pause, seek, switch and destroy",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "candidate: real playback, pause, seek, switch and destroy",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "controlled HTTP media failure emits a real video error",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "Range, media identity and docs candidate routes",
"project": "chromium",
"browser": "153.0.8010.12",
"status": "passed"
},
{
"title": "published: real playback, pause, seek, switch and destroy",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "candidate: real playback, pause, seek, switch and destroy",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "controlled HTTP media failure emits a real video error",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "Range, media identity and docs candidate routes",
"project": "firefox",
"browser": "155.0",
"status": "passed"
},
{
"title": "published: real playback, pause, seek, switch and destroy",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "candidate: real playback, pause, seek, switch and destroy",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "controlled HTTP media failure emits a real video error",
"project": "webkit",
"browser": "26.6",
"status": "passed"
},
{
"title": "Range, media identity and docs candidate routes",
"project": "webkit",
"browser": "26.6",
"status": "passed"
}
]
}
@@ -0,0 +1,41 @@
# PKG-CHAPTER-04:公开类型与新旧模块消费闭环
## 改动
chapter 公开 Chapters/Option/Result 类型,保留可选工厂、必填同步 update 和旧声明文件。
核心与 chapter 增加 .d.cts/.d.mts 桥接,按 import/require 条件选择声明,所有 runtime
目标仍是原文件;legacy 对应真实 CommonJS 导出,旧 TS 解析使用 typesVersions 回退。
桥接引用同一份 API 声明,不复制 Artplayer 类或要求旧用户升级编译器。
核心类型的最小配套修正是试点消费所需的构造器/语言入口,不是核心运行时重构。
language 值改用格式对应的默认导出,旧编译器回退文件从 I18n['en'] 推导现有字典值类型,
去掉原错误抑制和模块 augmentation。编辑器语言声明由 build:ts 生成独立全局文件并加入
libUris,核心/chapter 编辑器声明也重新生成;没有手写产物。
详见 [chapter 架构](../../packages/artplayer-plugin-chapter/ARCHITECTURE.md) 和
[核心声明说明](../../packages/artplayer/types/README.md)。采用的格式规则参考
[TypeScript 官方模块说明](https://www.typescriptlang.org/docs/handbook/modules/reference.html)。
## 验证
- TS 5.9.3 的 Node10 CommonJS、NodeNext CJS/ESM、Bundler ESM,以及 TS 4.3.5 Node10
全部通过:31 个消费场景,包含普通 API、章节参数/命名类型、语言值、legacy 和直接 CJS require。
- 新增反例验证 Result 字面量 name、必填 update、数字时间、语言值类型和非法字段仍拒绝;
不是使用 any、skipLibCheck 或宽泛索引消除错误。
- 实际 tarball 安装后的 23 项运行时与五组严格类型通过,已知诊断为 0;
`yarn test:package:release` 正常退出。历史 11 条候选已知错误全部移除,原发布基线保留。
- 安装产物三浏览器 54 项通过、无跳过/重试;最终重新打包后的 runtime 文件 SHA 与浏览器
实际加载的文件相同。报告、声明/入口指纹见 [执行记录](../baselines/chapter-types-validation.json)。
- `yarn ci:check` 62 项 Node/基线测试通过;新旧消费者正反例、严格源类型和 lint 通过。
`yarn build:ts` 成功,只有 core/chapter、语言声明和其加载清单发生实际生成内容变化。
补上类型回退后,旧 BASE-05 消费器检测到向上解析到 workspace 的错误:其临时目录原来在仓库
内。现在使用仓库外 OS 临时目录并验证清理边界,隔离断言保持不变;冻结发布结果逐项对照通过。
这证明旧版历史失败没有被新声明覆盖,未重新生成或放宽基线。
## 边界与接续
关闭 BASE-TYPE-01 和 BASE-TYPE-03;BASE-TYPE-04 等其余核心声明/运行时差异仍开放。
未改核心运行时代码、依赖或版本;没有推送/发布。严格打包通过不代表完成全部插件、完整编辑器、
真机/SDK 和远端 CI 验收。下一项按依赖推进试点汇总及 ENG-10,再进入核心源码拆分。
回退本任务独立提交即可恢复声明、manifest、测试与生成编辑器内容;chapter TS 运行时提交独立保留。
+2 -1
View File
@@ -33,7 +33,8 @@ Actions 固定完整 SHA,Node 来自 .node-version,Yarn 固定 1.22.22;安
ENG-07 将浏览器候选改为 `yarn test:package` 实际打包并安装后的文件,使用输出映射禁止
回退到源码。安装/构建日志、tarball、成员指纹和浏览器结果一并上传,构建快照的 node_modules
链接不上传。初始包范围为 core/chapter;精确历史类型诊断仍阻止严格发布检查通过。
链接不上传。初始包范围为 core/chapter;PKG-CHAPTER-04 已将这两个包的已知类型诊断清零,
严格打包检查现已通过,仍不等于整批发布准入或远端 CI 已通过。
见 [消费者说明](../test/package/README.md)。本地已验证,远端执行仍待 CI-04。
.github/workflows/pages.yml 仅支持手动运行,限定 master,且仓库变量 PAGES_DEPLOY_ENABLED 必须为 true。初始启用状态未经远端核实;没有修改该变量或其他 GitHub 设置。保留此门槛用于 CI-02 完成域名、路径和远端配置验收后再启用,不能直接自动部署 PR 产物。
+3 -2
View File
@@ -4,7 +4,7 @@
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 214 项,范围 22 个包及工作区/示例。
状态:todo 181 / doing 0 / blocked 0 / done 33 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
状态:todo 180 / doing 0 / blocked 0 / done 34 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
@@ -135,7 +135,7 @@
| PKG-CHAPTER-01 | artplayer-plugin-chapter<br>核对包契约与历史用法 | BASE-05 | chapters 时间区间、update、name 和进度 DOM 清单 | 源码/声明/README/demo/发布包差异已登记;公开形状和版本范围冻结 | M | done |
| PKG-CHAPTER-02 | artplayer-plugin-chapter<br>建立特有行为与错误测试 | PKG-CHAPTER-01, ENG-03, ENG-05 | 区间重叠/空列表/边界 seek、hover 标题和 update 用例 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言;修正 BASE-TYPE-02 的可选参数声明并补正反例 | M | done |
| PKG-CHAPTER-03 | artplayer-plugin-chapter<br>以 TypeScript 拆分内部职责与资源 | PKG-CHAPTER-02, ENG-07 | 以严格 TS 拆分区间计算、进度 DOM、事件生命周期与样式注入;公开声明消费在 04 闭环 | 不依赖新核心方法或大范围设置重构;旧 API/事件和资源通过,必要适配限包内 | M | done |
| PKG-CHAPTER-04 | artplayer-plugin-chapter<br>迁移自有源码和公开类型 | PKG-CHAPTER-03, ENG-04, ENG-06 | 承接 03 的自有源码 TS 化,完善公开 Chapters/Option/Result 与 update 推导,关闭声明模块解析和旧消费差异 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容;处理 BASE-TYPE-01/03,保持运行时和新旧 TS 模块解析消费 | M | todo |
| PKG-CHAPTER-04 | artplayer-plugin-chapter<br>迁移自有源码和公开类型 | PKG-CHAPTER-03, ENG-04, ENG-06 | 承接 03 的自有源码 TS 化,完善公开 Chapters/Option/Result 与 update 推导,关闭声明模块解析和旧消费差异 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容;处理 BASE-TYPE-01/03,保持运行时和新旧 TS 模块解析消费 | M | done |
| PKG-CHAPTER-05 | artplayer-plugin-chapter<br>验证新旧核心和组合 | PKG-CHAPTER-04, CORE-22 | chapter + quality/thumbnail、移动和全屏进度场景 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | todo |
| PKG-CHAPTER-06 | artplayer-plugin-chapter<br>验证分发并同步文档 | PKG-CHAPTER-05, ENG-07 | chapter.js 示例、产物和变更记录 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | todo |
@@ -436,3 +436,4 @@
- PKG-CHAPTER-01: [记录](changes/2026-09-10-PKG-CHAPTER-01-contract.md) [记录](baselines/chapter-contract.md)
- PKG-CHAPTER-02: [记录](changes/2026-09-10-PKG-CHAPTER-02-tests.md) [记录](baselines/chapter-validation.json)
- PKG-CHAPTER-03: [记录](changes/2026-09-10-PKG-CHAPTER-03-typescript-modules.md) [记录](baselines/chapter-migration-validation.json)
- PKG-CHAPTER-04: [记录](changes/2026-09-10-PKG-CHAPTER-04-public-types.md) [记录](baselines/chapter-types-validation.json)
+4
View File
@@ -1,5 +1,9 @@
# 进度与证据
## 当前实施:PKG-CHAPTER-04 类型消费闭环完成
chapter 公开命名类型、核心/插件 CJS/ESM 桥接及旧 legacy/language 回退通过五组编译模式(31 场景),实际 tarball 严格发布检查诊断为零;62 项 Node/基线测试和 54 项安装产物三浏览器检查通过。关闭 BASE-TYPE-01/03,旧发布基线不改。见 [交付](changes/2026-09-10-PKG-CHAPTER-04-public-types.md)。当前 214 项,34 完成、180 待办。生产运行时:chapter 已 TS 化,核心仍未迁移;本任务核心只修正类型入口。03 提交 48660c4e;下一项 ENG-10 接续现有风险/可靠性规则,然后 PILOT-01 汇总现有试点证据,进入 CORE-01。
## 当前实施:PKG-CHAPTER-03 首包 TS 源码拆分完成
chapter 已从单体 JS 入口改为五个 TS 文件,区间、DOM、生命周期和样式职责清楚;修复标题、NaN、销毁和重复样式问题。61 项 Node/基线检查、源码及安装产物各 54 项三浏览器测试通过;三格式产物已生成。见 [交付](changes/2026-09-10-PKG-CHAPTER-03-typescript-modules.md)。当前 214 项,33 完成、181 待办。生产迁移:chapter 自有运行时已 TS 化,核心尚未开始。ENG-07 提交 a0286c4e;下一项 PKG-CHAPTER-04 公开类型与消费者闭环。
+3
View File
@@ -4,6 +4,9 @@ BASE-07 将先前基线发现和第三方来源缺口纳入同一份责任台账
## 如何读取状态
PKG-CHAPTER-04 另关闭 BASE-TYPE-01/03:新旧编译器及实际 tarball 消费的默认导出、语言与
legacy 路径通过,严格打包诊断清零。完整证据与其余未关闭问题仍以 risks.json 为准。
BASE-07 初始登记 39 项;后续新增和关闭状态以 risks.json 为准。ENG-06 修复 BUILD-AMD-01,PKG-CHAPTER-02 修复 BASE-TYPE-02,均有独立回归证据。reproduced 表示已保存复现结果;source-observed 表示在源码、声明或产物中看到事实;unverified 表示来源、环境或行为仍需取证。证据等级与处理状态互相独立,不能把全部事项称为缺陷,也不能因建立了测试基线而自动接受旧缺陷。
其中 15 项来自生命周期、DOM/示例、消费者类型/分发和性能基线;其余包含发布来源、站点分发、素材来源、8 组内嵌资源和 12 个集成边界。每项都列出负责的任务 ID、证据路径、兼容处理路线与关闭条件。具体复现仍以原基线报告为准。
+2 -2
View File
@@ -13,9 +13,9 @@
| BASE-DOM-01 | open / 已复现 | 控件 Tab 不可达 | CORE-23, CORE-17 |
| BASE-DOM-02 | open / 已复现 | 窄容器中控件裁切 | CORE-13, CORE-14 |
| BASE-DEMO-01 | open / 源码/产物事实 | 旧 thumbnail 插件示例不对应当前 workspace 包 | SITE-01, EX-03 |
| BASE-TYPE-01 | open / 已复现 | NodeNext ESM 默认导出与声明互操作失配 | ENG-04, CORE-07, PKG-CHAPTER-04 |
| BASE-TYPE-01 | resolved / 已复现 | NodeNext ESM 默认导出与声明互操作失配 | ENG-04, CORE-07, PKG-CHAPTER-04 |
| BASE-TYPE-02 | resolved / 已复现 | chapter 可选运行时参数被声明为必填 | PKG-CHAPTER-02 |
| BASE-TYPE-03 | open / 已复现 | chapter legacy 缺旧模块解析的声明回退 | ENG-04, PKG-CHAPTER-04 |
| BASE-TYPE-03 | resolved / 已复现 | chapter legacy 缺旧模块解析的声明回退 | ENG-04, PKG-CHAPTER-04 |
| BASE-TYPE-04 | open / 源码/产物事实 | plugins.add / toggle 的旧声明返回值与运行时不同 | CORE-07 |
| BASE-DIST-01 | open / 源码/产物事实 | thumbnail tool 分发入口与类型文件缺失 | PKG-TOOL-THUMB-01, PKG-TOOL-THUMB-04 |
| BASE-PERF-01 | open / 已复现 | 销毁后的 resize 防抖重新创建 notice timer | CORE-17, CORE-04, CORE-18 |
+23 -5
View File
@@ -2,7 +2,7 @@
"schemaVersion": 1,
"task": "BASE-07",
"sourceCommit": "e01f39ff",
"updatedAt": "2026-09-10T14:41:52.219Z",
"updatedAt": "2026-09-10T15:27:41.538Z",
"note": "Open means closure evidence is outstanding; source-observed and unverified are not reproduced runtime bugs. A source issue already mitigated in the workspace still requires candidate regression evidence. No accepted-with-scope item is implied by baseline task completion.",
"items": [
{
@@ -147,7 +147,7 @@
"id": "BASE-TYPE-01",
"title": "NodeNext ESM 默认导出与声明互操作失配",
"confirmation": "reproduced",
"status": "open",
"status": "resolved",
"owners": [
"ENG-04",
"CORE-07",
@@ -157,7 +157,16 @@
"refactor/baselines/consumers.json"
],
"compatibleResolution": "分配 ESM/CJS 声明入口,保留旧解析模式,避免 any/skipLibCheck 掩盖。",
"closureCriteria": "四模式原合法消费通过,NodeNext ESM 对实际默认导出可构造/调用。"
"closureCriteria": "四模式原合法消费通过,NodeNext ESM 对实际默认导出可构造/调用。",
"resolutionEvidence": [
"refactor/changes/2026-09-10-PKG-CHAPTER-04-public-types.md",
"refactor/baselines/chapter-types-validation.json",
"test/types/chapter-exports.ts",
"test/types/language-value.ts",
"test/types/commonjs.cts",
"refactor/scripts/types.test.mjs"
],
"resolutionRationale": "格式匹配的 CJS/ESM 声明及旧 TS legacy/language 回退通过五组编译模式;实际安装 tarball 的已知诊断清零,运行时路径/导出不变,旧发布基线隔离重跑保持原失败。"
},
{
"id": "BASE-TYPE-02",
@@ -186,7 +195,7 @@
"id": "BASE-TYPE-03",
"title": "chapter legacy 缺旧模块解析的声明回退",
"confirmation": "reproduced",
"status": "open",
"status": "resolved",
"owners": [
"ENG-04",
"PKG-CHAPTER-04"
@@ -195,7 +204,16 @@
"refactor/baselines/consumers.json"
],
"compatibleResolution": "保留 legacy 文件和导入路径,补旧解析类型回退。",
"closureCriteria": "Node10 解析和 NodeNext/Bundler 消费均有正向证据。"
"closureCriteria": "Node10 解析和 NodeNext/Bundler 消费均有正向证据。",
"resolutionEvidence": [
"refactor/changes/2026-09-10-PKG-CHAPTER-04-public-types.md",
"refactor/baselines/chapter-types-validation.json",
"test/types/chapter-exports.ts",
"test/types/language-value.ts",
"test/types/commonjs.cts",
"refactor/scripts/types.test.mjs"
],
"resolutionRationale": "格式匹配的 CJS/ESM 声明及旧 TS legacy/language 回退通过五组编译模式;实际安装 tarball 的已知诊断清零,运行时路径/导出不变,旧发布基线隔离重跑保持原失败。"
},
{
"id": "BASE-TYPE-04",
+5 -4
View File
@@ -1,6 +1,7 @@
import assert from 'node:assert/strict'
import { execFileSync } from 'node:child_process'
import fs from 'node:fs'
import os from 'node:os'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
import ts from 'typescript'
@@ -8,7 +9,7 @@ import { ensureArchive, hash, readMember, refactorDir } from './releases.mjs'
const root = path.resolve(refactorDir, '..')
const fixtures = path.join(refactorDir, 'fixtures/consumers')
const parent = path.join(refactorDir, '.cache/consumers')
const parent = os.tmpdir()
const reportPath = path.join(refactorDir, 'baselines/consumers.json')
const fixtureNames = ['runtime.cjs', 'public.ts', 'language.ts', 'optional-chapter.ts', 'legacy-plugin.ts']
export const runtimeChecks = [
@@ -22,7 +23,7 @@ export const runtimeChecks = [
export async function runConsumers() {
const releases = JSON.parse(fs.readFileSync(path.join(refactorDir, 'baselines/releases.json'), 'utf8')).releases
fs.mkdirSync(parent, { recursive: true })
const dir = fs.mkdtempSync(path.join(parent, 'published-'))
const dir = fs.mkdtempSync(path.join(parent, 'artplayer-published-'))
try {
const provenance = []
for (const release of releases) {
@@ -68,8 +69,8 @@ export async function runConsumers() {
fixtureHashAlgorithm: 'sha256-lf', fixtures: Object.fromEntries(fixtureNames.map(name => [name, hash(fs.readFileSync(path.join(fixtures, name), 'utf8').replaceAll('\r\n', '\n'))])), runtime, types }
}
finally {
const resolved = path.resolve(dir)
assert(resolved.startsWith(path.resolve(parent) + path.sep) && path.basename(resolved).startsWith('published-'), 'Unsafe consumer cleanup')
const resolved = fs.realpathSync(dir)
assert(path.dirname(resolved) === fs.realpathSync(parent) && path.basename(resolved).startsWith('artplayer-published-'), 'Unsafe consumer cleanup')
fs.rmSync(resolved, { recursive: true, force: true })
}
}
+15
View File
@@ -46,3 +46,18 @@ test('Chapter optional factory parameters preserve strict update and data types
const diagnostics = checkConsumer(ts, 'bundler-esm', unguarded)
assert.equal(diagnostics.length, 3, 'Invalid update, title and null option must each fail')
})
test('Chapter named types and legacy aliases remain strict in modern and old consumers', () => {
const source = fs.readFileSync(path.join(refactorDir, '../test/types/chapter-exports.ts'), 'utf8')
const language = fs.readFileSync(path.join(refactorDir, '../test/types/language-value.ts'), 'utf8')
for (const [compiler, mode] of [[ts, 'nodenext-esm'], [ts, 'nodenext-cjs'], [compat, 'node10-commonjs']]) {
assert.deepEqual(checkConsumer(compiler, mode, source), [])
const invalid = source.replaceAll(/\/\/ @ts-expect-error[^\n]*\n/g, '')
assert.equal(checkConsumer(compiler, mode, invalid).length, 3)
assert.deepEqual(checkConsumer(compiler, mode, language), [])
assert.equal(checkConsumer(compiler, mode, language.replaceAll(/\/\/ @ts-expect-error[^\n]*\n/g, '')).length, 2)
}
const commonjs = fs.readFileSync(path.join(refactorDir, '../test/types/commonjs.cts'), 'utf8')
assert.deepEqual(checkConsumer(ts, 'nodenext-cjs', commonjs), [])
assert.equal(checkConsumer(ts, 'nodenext-cjs', commonjs.replaceAll(/\/\/ @ts-expect-error[^\n]*\n/g, '')).length, 1)
})
+5 -2
View File
@@ -1205,11 +1205,14 @@
"ENG-04",
"ENG-06"
],
"status": "todo",
"status": "done",
"risk": "M",
"deliverable": "承接 03 的自有源码 TS 化,完善公开 Chapters/Option/Result 与 update 推导,关闭声明模块解析和旧消费差异",
"acceptance": "严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容;处理 BASE-TYPE-01/03,保持运行时和新旧 TS 模块解析消费",
"evidence": []
"evidence": [
"changes/2026-09-10-PKG-CHAPTER-04-public-types.md",
"baselines/chapter-types-validation.json"
]
},
{
"id": "PKG-CHAPTER-05",
+6
View File
@@ -1,5 +1,11 @@
# 已实现的类型检查与迁移入口
PKG-CHAPTER-04 已修复核心/chapter 的条件类型入口、language 与 chapter legacy 回退。
当前五组编译模式均要求零诊断,覆盖默认/命名类型、legacy、语言与 CJS require 形式;
七条历史 NodeNext 诊断和打包额外四条诊断的候选豁免已移除,冻结发布基线不变。
旧编译器仍使用 TS 4.3.5 和原 .d.ts 文件。以下 ENG-04 说明保留初始建立时的历史背景,
当前实际入口以 scripts/typecheck.mjs、包内类型文档和任务变更记录为准。
ENG-04 使用开发编译器 TypeScript 5.9.3,并将 TypeScript 4.3.5 作为 npm alias typescript-compat 固定在根开发依赖。后者仅用于旧编译器消费回归,不进入播放器运行依赖或产物。Yarn 锁文件校验现在接受精确版本的 npm alias,仍拒绝范围和浮动版本。
## 命令及真实覆盖