@mux/playback-core 0.35.1-canary.2 → 0.35.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2020.full.d.ts","../src/vendor/mux-embed.ts","../src/errors.ts","../node_modules/hls.js/dist/hls.d.mts","../src/types.ts","../lang/en.json","../src/util.ts","../src/hls.ts","../src/autoplay.ts","../src/eme-fairplay.ts","../src/preload.ts","../src/min-preload.ts","../src/media-tracks.ts","../src/text-tracks.ts","../src/pdt.ts","../src/request-errors.ts","../src/min-cap-level-controller.ts","../src/webkit-fairplay.d.ts","../src/webkit-fairplay.ts","../src/index.ts","../../../node_modules/media-tracks/dist/video-rendition.d.ts","../../../node_modules/media-tracks/dist/video-track.d.ts","../../../node_modules/media-tracks/dist/video-track-list.d.ts","../../../node_modules/media-tracks/dist/audio-rendition.d.ts","../../../node_modules/media-tracks/dist/audio-track.d.ts","../../../node_modules/media-tracks/dist/audio-track-list.d.ts","../../../node_modules/media-tracks/dist/video-rendition-list.d.ts","../../../node_modules/media-tracks/dist/audio-rendition-list.d.ts","../../../node_modules/media-tracks/dist/global.d.ts"],"fileIdsList":[[74,75],[75],[74],[72,73,75,76,77,78],[71,72],[72],[71],[55,57,58],[53,57],[54],[52,53,54,55,57,58,59,60,61,62,63,64,65,66,67,69],[58],[54,55,58],[55],[55,57],[53,54,55,57],[52,53,54],[55,56],[53,57,60,68]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"7973d3c1a1c036dbc656a8b6a514ca7349dcc6d039a1dfb6b102efd0b8cf85c6","signature":"9632e3ccd357b6c526182a6983e57d1fc2c64fc4dc55e86611016a9c418879cd","affectsGlobalScope":true},{"version":"d0ebbdc27c1a71604ac47a77457479b0b04a30270259519f8ca5f4c4a5082b40","signature":"c757b1b4e1ff177d5e8e3629822474c82bf4146156520876b6e3f706f9738eda","affectsGlobalScope":true},{"version":"853bece6815b265980b443f83d4ed245ffcccce293aa60dc1bce18aeaec827c8","impliedFormat":99},{"version":"b8006498bb0b0c4a6edd7f97048dfc2e31726a2ca75bb754de24dd8237c8d828","signature":"0ca6ddd81f2ff3b5eafbb5536e66ea796f151da98bfb07fcdd0588f071f499ed"},"5a1d054cc0ec9e4cf5e74331d6c39156d3d71338e9b6292cae936786a1f45b20",{"version":"a2258ca3cb3f2116a55a2526577f8b9a7e0584a09566642e68ac4a7221cf5cd1","signature":"f4a1a1d2de66d3a4afe8cb40d917010772f9d9c32483ad59fcd11003cb0133b8"},"c13fb8c7fdb84f3c59470c672220c380ac26ffb099721ccebba3c53971cb700d",{"version":"89b90951a374603ba2102d1eeef328c9e6726f694698eb1ebba7ffebf639b463","signature":"cc64cc2b871c6127ae5841dc6f8a2aa2064d73569f707d913ed76de3ebfc97e5"},{"version":"68e72a04d58a6543c7fd5886ab95599a127a10c0c4e8d1b9a7ce7a30f688671a","signature":"8955872513ccce0115890f60b94a1f3535f41230ea25938e592f4d2de2f3180a"},{"version":"33a7c8c6e9c79e94f4b71eddf5466737a12026eb1215daa85621b5c4f3524193","signature":"bec076d074f786e91c7f1787c871e5eeb951c72e0415df4f6f1041cc540058b8"},{"version":"9b0b9298021456d58c71dc29f5aa2bcef72225b658ea6a8e84d0b5cb28e1cb53","signature":"6bfeba80fa7f841d014cb7e7160e5f464efbd337f866f0b7767a35123b67a42c"},{"version":"a995bd7c285ddd8b001ffd32209b2c97a4aaa6de4e152b85b38460ebf0bf6711","signature":"f9416c803360f1b7d50d5005aa62780607533c0f446f164f373711038b000b5f"},{"version":"62be64bc107031515053bb80c80c6585e428ba528d1f2b2e4710ff3ad071839a","signature":"3be94ff5800bf4567d511f1d716237ef30f753ef916bf855209a7f4c2cd741e1"},{"version":"0357e4c609f9e3a89903899e8334cbcd44530e1b077329051846e6a1754eed93","signature":"dccea7b665fe08ed006acd191a7e68123ba7ec49848ac7c28a164962bf21254e"},{"version":"b8a696e6d4b719b00d3a0d62383077d9ad529eb16b9e4704779d4a38e2f27cba","signature":"b00bb60d069436e8d5ed514413e95ec8b0cf31a3ac3132ed8e4e95571b4e78f9"},{"version":"341e6b5e827293044cb106daa2d5b6ab8861094aa0d6e33b6fa4ce0e56d8176e","signature":"7040fa063b8228f94bcef292b268c3036f56995098cd1837414b756555a6e45f"},{"version":"922d3d5d3ddef7dd0c9cb0ccb870a095a145b535489b50bdfc12c90686f725d4","affectsGlobalScope":true},{"version":"4999a70d59a5a62fe3a5c576bd6648a0ba10317cc334a336fad475ec66284e73","signature":"cbe583e9152673bdd81157152f92948cd2568aa9efb426eb0fa40a746808539c"},{"version":"d29069fc91950486cfb46a23bc0ad963fa4a84c6e63f431be17a7a3ad614889d","signature":"ca11c2e27be468ee672dce0e26ef4707ea5aa916b6eaa43b0caca44be2c8d072","affectsGlobalScope":true},{"version":"2ed351b90f48ecae9c627d41e2614c6a4fe670f958e8a5a5d3bb4bc21980bdb6","impliedFormat":99},{"version":"8f358619bbe2b132a373c5e8381018bb1f11f55dbac8cb84c380d5279f18eb75","impliedFormat":99},{"version":"ba0b6859e73b5fb85f18160a3b0d741968b1c4122fdd3436398dc99a6a9736c9","impliedFormat":99},{"version":"9979bad516454ac2aaff1756fc7f664ca6ccfdd9b4077f306e99df3033edf0a2","impliedFormat":99},{"version":"323cfa8826348d6f5269abeed193b53c1ee351a9c178858bce4dee6e9b6c3ac9","impliedFormat":99},{"version":"24354cb3bc1d897f8321bce628352612d35d92a79dba42e6609f7f5ec7d3a697","impliedFormat":99},{"version":"03835f80c63304658099d429a9f165a6a1d481a5050d74c7be05523c3b46f406","impliedFormat":99},{"version":"2811b69d59d0ccb820cef1c6b751ef9625bcba7cc71d438b4ba8f1a15901a8eb","impliedFormat":99},{"version":"2c512f7b30f704093ae23b2591a6e9e9cc852006be0bf8e4f770788d88b17796","affectsGlobalScope":true,"impliedFormat":99}],"root":[52,53,55,[57,67],69,70,79],"options":{"composite":true,"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":5,"noImplicitAny":true,"outDir":"./types","rootDir":"../src","skipLibCheck":false,"sourceMap":true,"strict":true,"target":7},"referencedMap":[[78,1],[76,2],[75,3],[79,4],[77,5],[73,6],[72,7],[59,8],[60,9],[58,10],[70,11],[63,12],[67,13],[62,8],[65,14],[61,15],[66,16],[64,8],[55,17],[57,18],[69,19]],"latestChangedDtsFile":"./types/index.d.ts","version":"5.8.3"}
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2020.full.d.ts","../src/vendor/mux-embed.ts","../src/errors.ts","../node_modules/hls.js/dist/hls.d.mts","../src/types.ts","../lang/en.json","../src/util.ts","../src/hls.ts","../src/autoplay.ts","../src/eme-fairplay.ts","../src/preload.ts","../src/min-preload.ts","../src/media-tracks.ts","../src/text-tracks.ts","../src/pdt.ts","../src/request-errors.ts","../src/min-cap-level-controller.ts","../src/webkit-fairplay.d.ts","../src/webkit-fairplay.ts","../src/network-recovery.ts","../src/index.ts","../../../node_modules/media-tracks/dist/video-rendition.d.ts","../../../node_modules/media-tracks/dist/video-track.d.ts","../../../node_modules/media-tracks/dist/video-track-list.d.ts","../../../node_modules/media-tracks/dist/audio-rendition.d.ts","../../../node_modules/media-tracks/dist/audio-track.d.ts","../../../node_modules/media-tracks/dist/audio-track-list.d.ts","../../../node_modules/media-tracks/dist/video-rendition-list.d.ts","../../../node_modules/media-tracks/dist/audio-rendition-list.d.ts","../../../node_modules/media-tracks/dist/global.d.ts"],"fileIdsList":[[75,76],[76],[75],[73,74,76,77,78,79],[72,73],[73],[72],[55,57,58],[53,57],[54],[52,53,54,55,57,58,59,60,61,62,63,64,65,66,67,69,70],[58],[54,55,58],[53,54,55,57,58],[55],[55,57],[53,54,55,57],[52,53,54],[55,56],[53,57,60,68]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"7973d3c1a1c036dbc656a8b6a514ca7349dcc6d039a1dfb6b102efd0b8cf85c6","signature":"9632e3ccd357b6c526182a6983e57d1fc2c64fc4dc55e86611016a9c418879cd","affectsGlobalScope":true},{"version":"d74c95d91c0acdae14c192323cb012865112699672b0ccfaed7a3afd7bfff6ea","signature":"61247a50f2bb4ff64d1ff5dfb79243643cec290494e39123dd10600b4bd4d6f6","affectsGlobalScope":true},{"version":"853bece6815b265980b443f83d4ed245ffcccce293aa60dc1bce18aeaec827c8","impliedFormat":99},{"version":"78a33a8d98196011bcd5450c435448e28213e12449b13565fcaccbf6d1073cd2","signature":"c84017a35db57b94b314cd47b7dffc3cebb8ecb2929e1e360789760c2b27bd70"},"4852b67eeea2a12e7383b830bc91084c720bf4046de14d3db0e10087a676247a",{"version":"a2258ca3cb3f2116a55a2526577f8b9a7e0584a09566642e68ac4a7221cf5cd1","signature":"f4a1a1d2de66d3a4afe8cb40d917010772f9d9c32483ad59fcd11003cb0133b8"},"c13fb8c7fdb84f3c59470c672220c380ac26ffb099721ccebba3c53971cb700d",{"version":"89b90951a374603ba2102d1eeef328c9e6726f694698eb1ebba7ffebf639b463","signature":"cc64cc2b871c6127ae5841dc6f8a2aa2064d73569f707d913ed76de3ebfc97e5"},{"version":"68e72a04d58a6543c7fd5886ab95599a127a10c0c4e8d1b9a7ce7a30f688671a","signature":"8955872513ccce0115890f60b94a1f3535f41230ea25938e592f4d2de2f3180a"},{"version":"33a7c8c6e9c79e94f4b71eddf5466737a12026eb1215daa85621b5c4f3524193","signature":"bec076d074f786e91c7f1787c871e5eeb951c72e0415df4f6f1041cc540058b8"},{"version":"9b0b9298021456d58c71dc29f5aa2bcef72225b658ea6a8e84d0b5cb28e1cb53","signature":"6bfeba80fa7f841d014cb7e7160e5f464efbd337f866f0b7767a35123b67a42c"},{"version":"a995bd7c285ddd8b001ffd32209b2c97a4aaa6de4e152b85b38460ebf0bf6711","signature":"f9416c803360f1b7d50d5005aa62780607533c0f446f164f373711038b000b5f"},{"version":"62be64bc107031515053bb80c80c6585e428ba528d1f2b2e4710ff3ad071839a","signature":"3be94ff5800bf4567d511f1d716237ef30f753ef916bf855209a7f4c2cd741e1"},{"version":"0357e4c609f9e3a89903899e8334cbcd44530e1b077329051846e6a1754eed93","signature":"dccea7b665fe08ed006acd191a7e68123ba7ec49848ac7c28a164962bf21254e"},{"version":"b8a696e6d4b719b00d3a0d62383077d9ad529eb16b9e4704779d4a38e2f27cba","signature":"b00bb60d069436e8d5ed514413e95ec8b0cf31a3ac3132ed8e4e95571b4e78f9"},{"version":"341e6b5e827293044cb106daa2d5b6ab8861094aa0d6e33b6fa4ce0e56d8176e","signature":"7040fa063b8228f94bcef292b268c3036f56995098cd1837414b756555a6e45f"},{"version":"922d3d5d3ddef7dd0c9cb0ccb870a095a145b535489b50bdfc12c90686f725d4","affectsGlobalScope":true},{"version":"4999a70d59a5a62fe3a5c576bd6648a0ba10317cc334a336fad475ec66284e73","signature":"cbe583e9152673bdd81157152f92948cd2568aa9efb426eb0fa40a746808539c"},{"version":"aab6153e4a73b29c64d00d09278dcc436fc74c2f07cf37946ef348cd89c591d9","signature":"fd3fe4c47a157cf2222ce11b08c150df327c87170327aced9e36082ca34c2bb7"},{"version":"081b5c3b2f9ad16a2af57d69b2ae3a4c65425cf463aa2854ccbd1b3cc70ddd40","signature":"e071d00aee34eb6cddad7202536a21c837826207fdd5b13eeb2ec5396e94f34f","affectsGlobalScope":true},{"version":"2ed351b90f48ecae9c627d41e2614c6a4fe670f958e8a5a5d3bb4bc21980bdb6","impliedFormat":99},{"version":"8f358619bbe2b132a373c5e8381018bb1f11f55dbac8cb84c380d5279f18eb75","impliedFormat":99},{"version":"ba0b6859e73b5fb85f18160a3b0d741968b1c4122fdd3436398dc99a6a9736c9","impliedFormat":99},{"version":"9979bad516454ac2aaff1756fc7f664ca6ccfdd9b4077f306e99df3033edf0a2","impliedFormat":99},{"version":"323cfa8826348d6f5269abeed193b53c1ee351a9c178858bce4dee6e9b6c3ac9","impliedFormat":99},{"version":"24354cb3bc1d897f8321bce628352612d35d92a79dba42e6609f7f5ec7d3a697","impliedFormat":99},{"version":"03835f80c63304658099d429a9f165a6a1d481a5050d74c7be05523c3b46f406","impliedFormat":99},{"version":"2811b69d59d0ccb820cef1c6b751ef9625bcba7cc71d438b4ba8f1a15901a8eb","impliedFormat":99},{"version":"2c512f7b30f704093ae23b2591a6e9e9cc852006be0bf8e4f770788d88b17796","affectsGlobalScope":true,"impliedFormat":99}],"root":[52,53,55,[57,67],[69,71],80],"options":{"composite":true,"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":5,"noImplicitAny":true,"outDir":"./types","rootDir":"../src","skipLibCheck":false,"sourceMap":true,"strict":true,"target":7},"referencedMap":[[79,1],[77,2],[76,3],[80,4],[78,5],[74,6],[73,7],[59,8],[60,9],[58,10],[71,11],[63,12],[67,13],[62,8],[70,14],[65,15],[61,16],[66,17],[64,8],[55,18],[57,19],[69,20]],"latestChangedDtsFile":"./types/index.d.ts","version":"5.8.3"}
@@ -7,6 +7,7 @@ export declare const MuxErrorCategory: {
7
7
  export declare const MuxErrorCode: {
8
8
  readonly NOT_AN_ERROR: 0;
9
9
  readonly NETWORK_OFFLINE: 2000002;
10
+ readonly NETWORK_RECONNECTING: 2000003;
10
11
  readonly NETWORK_UNKNOWN_ERROR: 2000000;
11
12
  readonly NETWORK_NO_STATUS: 2000001;
12
13
  readonly NETWORK_INVALID_URL: 2400000;
@@ -59,6 +60,7 @@ export declare class MediaError extends Error {
59
60
  fatal: boolean;
60
61
  data?: any;
61
62
  streamType?: 'live' | 'on-demand' | 'unknown';
63
+ reload?: boolean;
62
64
  constructor(message?: Stringable, code?: number, fatal?: boolean, context?: string);
63
65
  }
64
66
  export {};
@@ -1,4 +1,4 @@
1
- import type { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes } from './types';
1
+ import type { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes, MuxMediaState } from './types';
2
2
  import mux from 'mux-embed';
3
3
  import Hls from './hls';
4
4
  import type { HlsInterface } from './hls';
@@ -86,12 +86,7 @@ declare global {
86
86
  userAgentData?: NavigatorUAData;
87
87
  }
88
88
  }
89
- export declare const muxMediaState: WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
90
- seekable?: TimeRanges;
91
- liveEdgeStartOffset?: number;
92
- retryCount?: number;
93
- coreReference?: PlaybackCore;
94
- }>;
89
+ export declare const muxMediaState: MuxMediaState;
95
90
  export declare const generatePlayerInitTime: () => number | undefined;
96
91
  export declare const generateUUID: () => string;
97
92
  type MuxVideoURLProps = Partial<Pick<MuxMediaPropTypes, 'playbackId' | 'customDomain' | 'maxResolution' | 'minResolution' | 'renditionOrder' | 'programStartTime' | 'programEndTime' | 'assetStartTime' | 'assetEndTime' | 'tokens' | 'playbackToken' | 'extraSourceParams'>>;
@@ -128,4 +123,4 @@ export declare const toAppCertURL: ({ playbackId: playbackIdWithParams, tokens:
128
123
  export declare const isMuxVideoSrc: ({ playbackId, src, customDomain, }: Partial<Pick<MuxMediaPropsInternal, "playbackId" | "src" | "customDomain">>) => boolean;
129
124
  export declare const getCapLevelControllerConfig: (props: Pick<MuxMediaPropsInternal, "capRenditionToPlayerSize">, _hlsConfig: Partial<HlsConfig>) => Partial<Pick<HlsConfig, "capLevelController" | "capLevelToPlayerSize">>;
130
125
  export declare const setupMux: (props: Partial<Pick<MuxMediaPropsInternal, "envKey" | "playerInitTime" | "beaconCollectionDomain" | "errorTranslator" | "metadata" | "debug" | "playerSoftwareName" | "playerSoftwareVersion" | "playbackId" | "src" | "customDomain" | "disableCookies" | "disableTracking" | "muxDataSDK" | "muxDataSDKOptions">>, mediaEl: HTMLMediaElement, hlsjs?: HlsInterface) => void;
131
- export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
126
+ export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "maxReconnectRetries" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
@@ -0,0 +1,49 @@
1
+ import Hls from './hls';
2
+ import type { ErrorData } from 'hls.js';
3
+ import { MediaError } from './errors';
4
+ import type { MuxMediaState } from './types';
5
+ export interface NetworkRecoveryConfig {
6
+ hls: Pick<Hls, 'on' | 'loadSource' | 'startLoad'>;
7
+ mediaEl: HTMLMediaElement;
8
+ /** The current source, used to re-request the manifest if it never loaded. */
9
+ src: string | undefined;
10
+ muxMediaState: MuxMediaState;
11
+ saveAndDispatchError: (mediaEl: HTMLMediaElement, error: MediaError) => void;
12
+ /** Max reconnect attempts per stall episode before surfacing a terminal error and stopping. */
13
+ maxRetries: number;
14
+ }
15
+ export interface NetworkRecovery {
16
+ /**
17
+ * Call from the hls ERROR handler. Returns true when recovery has taken over the error (the
18
+ * caller should stop processing it, i.e. not dispatch it as a fatal error).
19
+ */
20
+ handleHlsError: (data: ErrorData, error: MediaError) => boolean;
21
+ /**
22
+ * Call from the hls MANIFEST_LOADED handler. Records that the manifest has loaded and stops any
23
+ * pending retry, but does NOT end recovery as fragments could still fail.
24
+ * Defers loading to engine.
25
+ */
26
+ onManifestLoaded: () => void;
27
+ }
28
+ /**
29
+ * --- Network interruption recovery ---
30
+ * hls.js retries non-fatal network errors itself; once it gives up (fatal) it stops loading and
31
+ * won't resume - including on flaky networks where the browser never fires `offline`/`online`
32
+ * (navigator.onLine only reflects a network link, not whether requests succeed).
33
+ *
34
+ * When playback stalls during an outage we let hls.js run (and give up on) its own internal
35
+ * retries, and *after* it reports a fatal error we wait a backoff delay and call startLoad() to make
36
+ * it try again.
37
+ * Each fatal drives the next attempt, up to maxRetries, then we surface a terminal error and stop
38
+ * (bounded - no infinite polling).
39
+ *
40
+ * Backoff before each attempt, e.g. maxRetries=6 -> ~1s + 2s + 4s + 8s + 16s + 30s (plus however
41
+ * long hls.js's own internal retries take in between).
42
+ *
43
+ * The retry loop and its "Reconnecting..." UI are tied to the stall (same condition as the loading
44
+ * spinner): while there's still playable buffer, hls.js's own retry handles refilling and we stay
45
+ * silent.
46
+ *
47
+ * `online` is a fast path that retries immediately with a fresh budget.
48
+ */
49
+ export declare const setupNetworkRecovery: ({ hls, mediaEl, src, muxMediaState, saveAndDispatchError, maxRetries, }: NetworkRecoveryConfig) => NetworkRecovery;
@@ -111,6 +111,13 @@ export type MuxMediaPropTypes = {
111
111
  disableCookies: Options['disableCookies'];
112
112
  disableTracking: boolean;
113
113
  disablePseudoEnded: boolean;
114
+ /**
115
+ * Max reconnect attempts per stall episode before surfacing a terminal error and stopping.
116
+ * Distinct from hls.js's own per-request `maxNumRetry`.
117
+ *
118
+ * Default: 0
119
+ */
120
+ maxReconnectRetries: number;
114
121
  drmToken?: string;
115
122
  playbackToken?: string;
116
123
  envKey: MetaData['env_key'];
@@ -153,6 +160,13 @@ export type MuxMediaPropsInternal = MuxMediaProps & {
153
160
  muxDataKeepSession?: boolean;
154
161
  drmTypeCb?: (drmType: Metadata['view_drm_type']) => void;
155
162
  };
163
+ export type MuxMediaState = WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
164
+ seekable?: TimeRanges;
165
+ liveEdgeStartOffset?: number;
166
+ retryCount?: number;
167
+ networkError?: boolean;
168
+ coreReference?: PlaybackCore;
169
+ }>;
156
170
  export type MuxMediaEventsMap = {
157
171
  cuepointchange: CustomEvent<{
158
172
  composed: true;
@@ -7,6 +7,7 @@ export declare const MuxErrorCategory: {
7
7
  export declare const MuxErrorCode: {
8
8
  readonly NOT_AN_ERROR: 0;
9
9
  readonly NETWORK_OFFLINE: 2000002;
10
+ readonly NETWORK_RECONNECTING: 2000003;
10
11
  readonly NETWORK_UNKNOWN_ERROR: 2000000;
11
12
  readonly NETWORK_NO_STATUS: 2000001;
12
13
  readonly NETWORK_INVALID_URL: 2400000;
@@ -59,6 +60,7 @@ export declare class MediaError extends Error {
59
60
  fatal: boolean;
60
61
  data?: any;
61
62
  streamType?: 'live' | 'on-demand' | 'unknown';
63
+ reload?: boolean;
62
64
  constructor(message?: Stringable, code?: number, fatal?: boolean, context?: string);
63
65
  }
64
66
  export {};
@@ -1,4 +1,4 @@
1
- import { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes } from './types';
1
+ import { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes, MuxMediaState } from './types';
2
2
  import mux from 'mux-embed';
3
3
  import Hls from './hls';
4
4
  import { HlsInterface } from './hls';
@@ -86,12 +86,7 @@ declare global {
86
86
  userAgentData?: NavigatorUAData;
87
87
  }
88
88
  }
89
- export declare const muxMediaState: WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
90
- seekable?: TimeRanges;
91
- liveEdgeStartOffset?: number;
92
- retryCount?: number;
93
- coreReference?: PlaybackCore;
94
- }>;
89
+ export declare const muxMediaState: MuxMediaState;
95
90
  export declare const generatePlayerInitTime: () => number | undefined;
96
91
  export declare const generateUUID: () => string;
97
92
  type MuxVideoURLProps = Partial<Pick<MuxMediaPropTypes, 'playbackId' | 'customDomain' | 'maxResolution' | 'minResolution' | 'renditionOrder' | 'programStartTime' | 'programEndTime' | 'assetStartTime' | 'assetEndTime' | 'tokens' | 'playbackToken' | 'extraSourceParams'>>;
@@ -128,4 +123,4 @@ export declare const toAppCertURL: ({ playbackId: playbackIdWithParams, tokens:
128
123
  export declare const isMuxVideoSrc: ({ playbackId, src, customDomain, }: Partial<Pick<MuxMediaPropsInternal, "playbackId" | "src" | "customDomain">>) => boolean;
129
124
  export declare const getCapLevelControllerConfig: (props: Pick<MuxMediaPropsInternal, "capRenditionToPlayerSize">, _hlsConfig: Partial<HlsConfig>) => Partial<Pick<HlsConfig, "capLevelController" | "capLevelToPlayerSize">>;
130
125
  export declare const setupMux: (props: Partial<Pick<MuxMediaPropsInternal, "envKey" | "playerInitTime" | "beaconCollectionDomain" | "errorTranslator" | "metadata" | "debug" | "playerSoftwareName" | "playerSoftwareVersion" | "playbackId" | "src" | "customDomain" | "disableCookies" | "disableTracking" | "muxDataSDK" | "muxDataSDKOptions">>, mediaEl: HTMLMediaElement, hlsjs?: HlsInterface) => void;
131
- export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
126
+ export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "maxReconnectRetries" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
@@ -0,0 +1,49 @@
1
+ import Hls from './hls';
2
+ import { ErrorData } from 'hls.js';
3
+ import { MediaError } from './errors';
4
+ import { MuxMediaState } from './types';
5
+ export interface NetworkRecoveryConfig {
6
+ hls: Pick<Hls, 'on' | 'loadSource' | 'startLoad'>;
7
+ mediaEl: HTMLMediaElement;
8
+ /** The current source, used to re-request the manifest if it never loaded. */
9
+ src: string | undefined;
10
+ muxMediaState: MuxMediaState;
11
+ saveAndDispatchError: (mediaEl: HTMLMediaElement, error: MediaError) => void;
12
+ /** Max reconnect attempts per stall episode before surfacing a terminal error and stopping. */
13
+ maxRetries: number;
14
+ }
15
+ export interface NetworkRecovery {
16
+ /**
17
+ * Call from the hls ERROR handler. Returns true when recovery has taken over the error (the
18
+ * caller should stop processing it, i.e. not dispatch it as a fatal error).
19
+ */
20
+ handleHlsError: (data: ErrorData, error: MediaError) => boolean;
21
+ /**
22
+ * Call from the hls MANIFEST_LOADED handler. Records that the manifest has loaded and stops any
23
+ * pending retry, but does NOT end recovery as fragments could still fail.
24
+ * Defers loading to engine.
25
+ */
26
+ onManifestLoaded: () => void;
27
+ }
28
+ /**
29
+ * --- Network interruption recovery ---
30
+ * hls.js retries non-fatal network errors itself; once it gives up (fatal) it stops loading and
31
+ * won't resume - including on flaky networks where the browser never fires `offline`/`online`
32
+ * (navigator.onLine only reflects a network link, not whether requests succeed).
33
+ *
34
+ * When playback stalls during an outage we let hls.js run (and give up on) its own internal
35
+ * retries, and *after* it reports a fatal error we wait a backoff delay and call startLoad() to make
36
+ * it try again.
37
+ * Each fatal drives the next attempt, up to maxRetries, then we surface a terminal error and stop
38
+ * (bounded - no infinite polling).
39
+ *
40
+ * Backoff before each attempt, e.g. maxRetries=6 -> ~1s + 2s + 4s + 8s + 16s + 30s (plus however
41
+ * long hls.js's own internal retries take in between).
42
+ *
43
+ * The retry loop and its "Reconnecting..." UI are tied to the stall (same condition as the loading
44
+ * spinner): while there's still playable buffer, hls.js's own retry handles refilling and we stay
45
+ * silent.
46
+ *
47
+ * `online` is a fast path that retries immediately with a fresh budget.
48
+ */
49
+ export declare const setupNetworkRecovery: ({ hls, mediaEl, src, muxMediaState, saveAndDispatchError, maxRetries, }: NetworkRecoveryConfig) => NetworkRecovery;
@@ -111,6 +111,13 @@ export type MuxMediaPropTypes = {
111
111
  disableCookies: Options['disableCookies'];
112
112
  disableTracking: boolean;
113
113
  disablePseudoEnded: boolean;
114
+ /**
115
+ * Max reconnect attempts per stall episode before surfacing a terminal error and stopping.
116
+ * Distinct from hls.js's own per-request `maxNumRetry`.
117
+ *
118
+ * Default: 0
119
+ */
120
+ maxReconnectRetries: number;
114
121
  drmToken?: string;
115
122
  playbackToken?: string;
116
123
  envKey: MetaData['env_key'];
@@ -153,6 +160,13 @@ export type MuxMediaPropsInternal = MuxMediaProps & {
153
160
  muxDataKeepSession?: boolean;
154
161
  drmTypeCb?: (drmType: Metadata['view_drm_type']) => void;
155
162
  };
163
+ export type MuxMediaState = WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
164
+ seekable?: TimeRanges;
165
+ liveEdgeStartOffset?: number;
166
+ retryCount?: number;
167
+ networkError?: boolean;
168
+ coreReference?: PlaybackCore;
169
+ }>;
156
170
  export type MuxMediaEventsMap = {
157
171
  cuepointchange: CustomEvent<{
158
172
  composed: true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mux/playback-core",
3
- "version": "0.35.1-canary.2",
3
+ "version": "0.35.2",
4
4
  "description": "Core library for media playback in the browser shared by mux elements",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.mjs",