@mux/playback-core 0.35.4 → 0.35.5-canary.1
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.
- package/dist/index.cjs.js +4 -4
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.map +4 -4
- package/dist/playback-core.js +32 -32
- package/dist/playback-core.js.map +4 -4
- package/dist/playback-core.mjs +33 -33
- package/dist/playback-core.mjs.map +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/chapters.d.ts +2 -0
- package/dist/types/index.d.ts +15 -4
- package/dist/types/text-tracks.d.ts +7 -10
- package/dist/types/util.d.ts +1 -0
- package/dist/types-ts3.4/chapters.d.ts +2 -0
- package/dist/types-ts3.4/index.d.ts +15 -4
- package/dist/types-ts3.4/text-tracks.d.ts +7 -10
- package/dist/types-ts3.4/util.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
`).find((t,r,n)=>r>0&&n[r-1].startsWith("#EXT-X-STREAM-INF")),Q=(e,t)=>{var o;if(!z(e))return new URL(e);let r=(o=window==null?void 0:window.location)==null?void 0:o.href,n=t!=null?t:r;return t&&z(t.toString())&&(n=new URL(t,r)),new URL(e,n)},Ct="mux.com",vt=({src:e,customDomain:t=Ct})=>{let r;try{r=new URL(`${e}`)}catch{return!1}let n=r.protocol==="https:",o=r.hostname===`stream.${t}`.toLowerCase(),s=r.pathname.split("/"),a=s.length===2,i=!(s!=null&&s[1].includes("."));return n&&o&&a&&i},ue=e=>{let t=(e!=null?e:"").split(".")[1];if(t)try{let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(r).split("").map(function(o){return"%"+("00"+o.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(n)}catch{return}},he=({exp:e},t=Date.now())=>!e||e*1e3<t,_e=({sub:e},t)=>e!==t,we=({aud:e},t)=>!e,Ae=({aud:e},t)=>e!==t,Se="en";function v(e,t=!0){var o,s;let r=t&&(s=(o=q)==null?void 0:o[e])!=null?s:e,n=t?q.code:Se;return new se(r,n)}var se=class{constructor(t,r=(n=>(n=q)!=null?n:Se)()){this.message=t,this.locale=r}format(t){return this.message.replace(/\{(\w+)\}/g,(r,n)=>{var o;return(o=t[n])!=null?o:""})}toString(){return this.message}};var kt=Object.values(G),Ne=e=>typeof e=="boolean"||typeof e=="string"&&kt.includes(e),Ie=(e,t,r)=>{let{autoplay:n}=e,o=!1,s=!1,a=Ne(n)?n:!!n,i=()=>{o||h(t,"playing",()=>{o=!0},{once:!0})};if(i(),h(t,"loadstart",()=>{o=!1,i(),le(t,a)},{once:!0}),h(t,"loadstart",()=>{r||(e.streamType&&e.streamType!==_.UNKNOWN?s=e.streamType===_.LIVE:s=!Number.isFinite(t.duration)),le(t,a)},{once:!0}),r&&r.once(b.Events.LEVEL_LOADED,(u,p)=>{var c;e.streamType&&e.streamType!==_.UNKNOWN?s=e.streamType===_.LIVE:s=(c=p.details.live)!=null?c:!1}),!a){let u=()=>{!s||Number.isFinite(e.startTime)||(r!=null&&r.liveSyncPosition?t.currentTime=r.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};r&&h(t,"play",()=>{t.preload==="metadata"?r.once(b.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{o||(a=Ne(u)?u:!!u,le(t,a))}},le=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case G.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(n)});break;case G.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var Oe=({preload:e,src:t},r,n)=>{let o=c=>{c!=null&&["","none","metadata","auto"].includes(c)?r.setAttribute("preload",c):r.removeAttribute("preload")};if(!n)return o(e),o;let s=!1,a=!1,i=n.config.maxBufferLength,l=n.config.maxBufferSize,u=c=>{o(c);let T=c!=null?c:r.preload;a||T==="none"||(T==="metadata"?(n.config.maxBufferLength=1,n.config.maxBufferSize=1):(n.config.maxBufferLength=i,n.config.maxBufferSize=l),p())},p=()=>{!s&&t&&(s=!0,n.loadSource(t))};return h(r,"play",()=>{a=!0,n.config.maxBufferLength=i,n.config.maxBufferSize=l,p()},{once:!0}),u(e),u};var Ue=(e,t,r)=>{let{minPreloadSegments:n}=e;if(n==null||n<=0||!r)return;let o=0,s=!1,a=t.playbackRate||1,i=()=>{t.playbackRate!==0&&(a=t.playbackRate,t.playbackRate=0)};t.playbackRate=0,h(t,"ratechange",i);let l=(u,{frag:p})=>{s||p.type!=="main"||(o++,o>=n&&(s=!0,t.removeEventListener("ratechange",i),t.playbackRate=a))};r.on(b.Events.FRAG_BUFFERED,l),t.addEventListener("teardown",()=>{s||(s=!0,r.off(b.Events.FRAG_BUFFERED,l),t.playbackRate=a)},{once:!0})},He=(e,t,r)=>{let{initialEstimateSegments:n}=e;if(n==null||n<=0||!r)return;let o=0;r.on(b.Events.FRAG_BUFFERED,(s,{frag:a})=>{a.type==="main"&&(o++,o<n&&r.abrController.resetEstimator(r.config.abrEwmaDefaultEstimate))})};function Ke(e,t){var l;if(!("videoTracks"in e))return;let r=new WeakMap;t.on(b.Events.MANIFEST_PARSED,function(u,p){i();let c=e.addVideoTrack("main");c.selected=!0;for(let[T,d]of p.levels.entries()){let f=c.addRendition(d.url[0],d.width,d.height,d.videoCodec,d.bitrate);r.set(d,`${T}`),f.id=`${T}`}}),t.on(b.Events.AUDIO_TRACKS_UPDATED,function(u,p){a();for(let c of p.audioTracks){let T=c.default?"main":"alternative",d=e.addAudioTrack(T,c.name,c.lang);d.id=`${c.id}`,c.default&&(d.enabled=!0)}});let n=()=>{var c;let u=+((c=[...e.audioTracks].find(T=>T.enabled))==null?void 0:c.id),p=t.audioTracks.map(T=>T.id);u!=t.audioTrack&&p.includes(u)&&(t.audioTrack=u)};e.audioTracks.addEventListener("change",n),t.on(b.Events.LEVELS_UPDATED,function(u,p){var d;let c=e.videoTracks[(d=e.videoTracks.selectedIndex)!=null?d:0];if(!c)return;let T=p.levels.map(f=>r.get(f));for(let f of e.videoRenditions)f.id&&!T.includes(f.id)&&c.removeRendition(f)});let o=u=>{let p=u.target.selectedIndex;p!=t.nextLevel&&(t.nextLevel=p)};(l=e.videoRenditions)==null||l.addEventListener("change",o);let s=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},a=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{s(),a()};t.once(b.Events.DESTROYING,()=>{var u,p;i(),(u=e.audioTracks)==null||u.removeEventListener("change",n),(p=e.videoRenditions)==null||p.removeEventListener("change",o)})}var de=e=>"time"in e?e.time:e.startTime;function We(e,t){t.on(b.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:s})=>{s.forEach(a=>{var p,c;let i=(p=a.subtitleTrack)!=null?p:a.closedCaptions,l=t.subtitleTracks.findIndex(({lang:T,name:d,type:f})=>T==(i==null?void 0:i.lang)&&d===a.label&&f.toLowerCase()===a.kind),u=((c=a._id)!=null?c:a.default)?"default":`${a.kind}${l}`;pe(e,a.kind,a.label,i==null?void 0:i.lang,u,a.default)})});let r=()=>{if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(i=>i.id&&i.mode==="showing"&&["subtitles","captions"].includes(i.kind));if(!o)return;let s=t.subtitleTracks[t.subtitleTrack],a=s?s.default?"default":`${t.subtitleTracks[t.subtitleTrack].type.toLowerCase()}${t.subtitleTrack}`:void 0;if(t.subtitleTrack<0||(o==null?void 0:o.id)!==a){let i=t.subtitleTracks.findIndex(({lang:l,name:u,type:p,default:c})=>o.id==="default"&&c||l==o.language&&u===o.label&&p.toLowerCase()===o.kind);t.subtitleTrack=i}(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(i=>{o.addCue(i)})};e.textTracks.addEventListener("change",r),t.on(b.Events.CUES_PARSED,(o,{track:s,cues:a})=>{let i=e.textTracks.getTrackById(s);if(!i)return;let l=i.mode==="disabled";l&&(i.mode="hidden"),a.forEach(u=>{var p;(p=i.cues)!=null&&p.getCueById(u.id)||i.addCue(u)}),l&&(i.mode="disabled")}),t.once(b.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",r),e.querySelectorAll("track[data-removeondestroy]").forEach(s=>{s.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var s,a;if(!["subtitles","caption"].includes(o.kind)&&(o.label==="thumbnails"||o.kind==="chapters")){if(!((s=o.cues)!=null&&s.length)){let i="track";o.kind&&(i+=`[kind="${o.kind}"]`),o.label&&(i+=`[label="${o.label}"]`);let l=e.querySelector(i),u=(a=l==null?void 0:l.getAttribute("src"))!=null?a:"";l==null||l.removeAttribute("src"),setTimeout(()=>{l==null||l.setAttribute("src",u)},0)}o.mode!=="hidden"&&(o.mode="hidden")}})};t.once(b.Events.MANIFEST_LOADED,n),t.once(b.Events.MEDIA_ATTACHED,n)}function pe(e,t,r,n,o,s){let a=document.createElement("track");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),s&&(a.default=!0),a.track.mode=["subtitles","captions"].includes(t)?"disabled":"hidden",a.setAttribute("data-removeondestroy",""),e.append(a),a.track}function Dt(e,t){let r=Array.prototype.find.call(e.querySelectorAll("track"),n=>n.track===t);r==null||r.remove()}function F(e,t,r){var n;return(n=Array.from(e.querySelectorAll("track")).find(o=>o.track.label===t&&o.track.kind===r))==null?void 0:n.track}async function Fe(e,t,r,n){let o=F(e,r,n);return o||(o=pe(e,n,r),o.mode="hidden",await new Promise(s=>setTimeout(()=>s(void 0),0))),o.mode!=="hidden"&&(o.mode="hidden"),[...t].sort((s,a)=>de(a)-de(s)).forEach(s=>{var l,u;let a=s.value,i=de(s);if("endTime"in s&&s.endTime!=null)o==null||o.addCue(new VTTCue(i,s.endTime,n==="chapters"?a:JSON.stringify(a!=null?a:null)));else{let p=Array.prototype.findIndex.call(o==null?void 0:o.cues,f=>f.startTime>=i),c=(l=o==null?void 0:o.cues)==null?void 0:l[p],T=c?c.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,d=(u=o==null?void 0:o.cues)==null?void 0:u[p-1];d&&(d.endTime=i),o==null||o.addCue(new VTTCue(i,T,n==="chapters"?a:JSON.stringify(a!=null?a:null)))}}),e.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),o}var fe="cuepoints",Ve=Object.freeze({label:fe});async function Ye(e,t,r=Ve){return Fe(e,t,r.label,"metadata")}var Z=e=>({time:e.startTime,value:JSON.parse(e.text)});function Pt(e,t={label:fe}){let r=F(e,t.label,"metadata");return r!=null&&r.cues?Array.from(r.cues,n=>Z(n)):[]}function Be(e,t={label:fe}){var s,a;let r=F(e,t.label,"metadata");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return Z(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:l})=>i<=n&&l>n);return Z(o||r.activeCues[0])}async function $e(e,t=Ve){return new Promise(r=>{h(e,"loadstart",async()=>{let n=await Ye(e,[],t);h(e,"cuechange",()=>{let o=Be(e);if(o){let s=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}var ye="chapters",je=Object.freeze({label:ye}),ee=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function Ge(e,t,r=je){return Fe(e,t,r.label,"chapters")}function Lt(e,t={label:ye}){var n;let r=F(e,t.label,"chapters");return(n=r==null?void 0:r.cues)!=null&&n.length?Array.from(r.cues,o=>ee(o)):[]}function Je(e,t={label:ye}){var s,a;let r=F(e,t.label,"chapters");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return ee(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:l})=>i<=n&&l>n);return ee(o||r.activeCues[0])}async function qe(e,t=je){return new Promise(r=>{h(e,"loadstart",async()=>{let n=await Ge(e,[],t);h(e,"cuechange",()=>{let o=Je(e);if(o){let s=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}function ht(e,t){if(t){let r=t.playingDate;if(r!=null)return new Date(r.getTime()-e.currentTime*1e3)}return typeof e.getStartDate=="function"?e.getStartDate():new Date(NaN)}function _t(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate=="function"){let r=e.getStartDate();return new Date(r.getTime()+e.currentTime*1e3)}return new Date(NaN)}var Te={VIDEO:"v",THUMBNAIL:"t",STORYBOARD:"s",DRM:"d"},wt=e=>{if(e===P.VIDEO)return Te.VIDEO;if(e===P.DRM)return Te.DRM},At=(e,t)=>{var o,s;let r=j(e),n=`${r}Token`;return(o=t.tokens)!=null&&o[r]?(s=t.tokens)==null?void 0:s[r]:Y(n,t)?t[n]:void 0},$=(e,t,r,n,o=!1,s=!(a=>(a=globalThis.navigator)==null?void 0:a.onLine)())=>{var m,R;if(s){let g=v("Your device appears to be offline",o),x=void 0,E=y.MEDIA_ERR_NETWORK,D=new y(g,E,!1,x);return D.errorCategory=t,D.muxCode=k.NETWORK_OFFLINE,D.data=e,D}let i="status"in e?e.status:e.code,l=Date.now(),u=y.MEDIA_ERR_NETWORK;if(i===200)return;let p=j(t),c=At(t,r),T=wt(t),[d]=X((m=r.playbackId)!=null?m:"");if(!i||!d)return;let f=ue(c);if(c&&!f){let g=v("The {tokenNamePrefix}-token provided is invalid or malformed.",o).format({tokenNamePrefix:p}),x=v("Compact JWT string: {token}",o).format({token:c}),E=new y(g,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_MALFORMED,E.data=e,E}if(i>=500){let g=new y("",u,n!=null?n:!0);return g.errorCategory=t,g.muxCode=k.NETWORK_UNKNOWN_ERROR,g}if(i===403)if(f){if(he(f,l)){let g={timeStyle:"medium",dateStyle:"medium"},x=v("The video\u2019s secured {tokenNamePrefix}-token has expired.",o).format({tokenNamePrefix:p}),E=v("Expired at: {expiredDate}. Current time: {currentDate}.",o).format({expiredDate:new Intl.DateTimeFormat("en",g).format((R=f.exp)!=null?R:0*1e3),currentDate:new Intl.DateTimeFormat("en",g).format(l)}),D=new y(x,u,!0,E);return D.errorCategory=t,D.muxCode=k.NETWORK_TOKEN_EXPIRED,D.data=e,D}if(_e(f,d)){let g=v("The video\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.",o).format({tokenNamePrefix:p}),x=v("Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}",o).format({tokenNamePrefix:p,playbackId:d,tokenPlaybackId:f.sub}),E=new y(g,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_SUB_MISMATCH,E.data=e,E}if(we(f,T)){let g=v("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:p}),x=v("The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.",o).format({tokenNamePrefix:p,expectedAud:T}),E=new y(g,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_AUD_MISSING,E.data=e,E}if(Ae(f,T)){let g=v("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:p}),x=v("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.",o).format({tokenNamePrefix:p,expectedAud:T,aud:f.aud}),E=new y(g,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_AUD_MISMATCH,E.data=e,E}}else{let g=v("Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.",o).format({tokenNamePrefix:p,category:t}),x=v("Specified playback ID: {playbackId}",o).format({playbackId:d}),E=new y(g,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_MISSING,E.data=e,E}if(i===412){let g=v("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",o),x=v("Specified playback ID: {playbackId}",o).format({playbackId:d}),E=new y(g,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_NOT_READY,E.streamType=r.streamType===_.LIVE?"live":r.streamType===_.ON_DEMAND?"on-demand":"unknown",E.data=e,E}if(i===404){let g=v("This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",o),x=v("Specified playback ID: {playbackId}",o).format({playbackId:d}),E=new y(g,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_NOT_FOUND,E.data=e,E}if(i===400){let g=v("The URL or playback-id was invalid. You may have used an invalid value as a playback-id."),x=v("Specified playback ID: {playbackId}",o).format({playbackId:d}),E=new y(g,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_INVALID_URL,E.data=e,E}let M=new y("",u,n!=null?n:!0);return M.errorCategory=t,M.muxCode=k.NETWORK_UNKNOWN_ERROR,M.data=e,M};var me=b.DefaultConfig.capLevelController;me||console.error("MinCapLevelController - hls.js DefaultConfig.capLevelController is unavailable");var St={"720p":921600,"1080p":2073600,"1440p":4194304,"2160p":8294400};function Nt(e){let t=e.toLowerCase().trim();return St[t]}var U=class U extends me{constructor(t){super(t)}static setMaxAutoResolution(t,r){r?U.maxAutoResolution.set(t,r):U.maxAutoResolution.delete(t)}getMaxAutoResolution(){var r;let t=this.hls;return(r=U.maxAutoResolution.get(t))!=null?r:void 0}get levels(){var t;return(t=this.hls.levels)!=null?t:[]}getValidLevels(t){return this.levels.filter((r,n)=>this.isLevelAllowed(r)&&n<=t)}getMaxLevelCapped(t){let r=this.getValidLevels(t),n=this.getMaxAutoResolution();if(!n)return super.getMaxLevel(t);let o=Nt(n);if(!o)return super.getMaxLevel(t);let s=r.filter(l=>l.width*l.height<=o),a=s.findIndex(l=>l.width*l.height===o);if(a!==-1){let l=s[a];return r.findIndex(u=>u===l)}if(s.length===0)return 0;let i=s[s.length-1];return r.findIndex(l=>l===i)}getMaxLevel(t){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(t);let r=super.getMaxLevel(t),n=this.getValidLevels(t);if(!n[r])return r;let o=Math.min(n[r].width,n[r].height),s=U.minMaxResolution;return o>=s?r:me.getMaxLevelByMediaSize(n,s*(16/9),s)}};U.minMaxResolution=720,U.maxAutoResolution=new WeakMap;var Ee=U,te=Ee;var It="com.apple.fps.1_0",Ot="application/vnd.apple.mpegurl",ze=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o})=>{if(!window.WebKitMediaKeys||!("onwebkitneedkey"in e)){console.error("No WebKitMediaKeys. FairPlay may not be supported");let T=v("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),d=new y(T,y.MEDIA_ERR_ENCRYPTED,!0);return d.errorCategory=P.DRM,d.muxCode=k.ENCRYPTED_CDM_ERROR,n(e,d),()=>{}}let s=e,a=t(),i=null,l=T=>{(async()=>{try{s.webkitKeys||u();let f=await a;if(T.initData===null||f==null)return;let M=Ut(T.initData,f);p(M)}catch(f){console.error("Could not start encrypted playback due to exception",f),n(s,f)}})()},u=()=>{try{let T=new WebKitMediaKeys(It);s.webkitSetMediaKeys(T),o()}catch{let T="Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.",d=new y(T,y.MEDIA_ERR_ENCRYPTED,!0);throw d.errorCategory=P.DRM,d.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,d}},p=T=>{let d=s.webkitKeys.createSession(Ot,T),f=async R=>{try{let g=R.message,x=await r(g);d.update(x)}catch(g){console.error("Error on FairPlay session message",g),n(e,g)}},M=R=>{let g=R.target.error;if(!g)return;console.error(`Internal Webkit Key Session Error - sysCode: ${g.systemCode} code: ${g.code}`);let x=v("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser."),E=new y(x,y.MEDIA_ERR_ENCRYPTED,!0);E.errorCategory=P.DRM,E.muxCode=k.ENCRYPTED_CDM_ERROR,n(e,E)},m=()=>{d.removeEventListener("webkitkeymessage",f),d.removeEventListener("webkitkeyerror",M),e.removeEventListener("teardown",m),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",m),i=null;try{d.close()}catch{}};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",m,{once:!0}),d.addEventListener("webkitkeymessage",f),d.addEventListener("webkitkeyerror",M),e.addEventListener("teardown",m),i=m},c=()=>{e.removeEventListener("webkitneedkey",l),e.removeEventListener("teardown",c),i==null||i();try{s.webkitSetMediaKeys(null)}catch{}};return e.addEventListener("webkitneedkey",l),e.addEventListener("teardown",c,{once:!0}),c},Ut=(e,t)=>{let r=Kt(Ht(e)),n=new Uint8Array(e),o=new Uint8Array(r),s=new Uint8Array(t),a=n.byteLength+4+s.byteLength+4+o.byteLength,i=new Uint8Array(a),l=0,u=c=>{i.set(c,l),l+=c.byteLength},p=c=>{let T=new DataView(i.buffer),d=c.byteLength;T.setUint32(l,d,!0),l+=4,u(c)};return u(n),p(o),p(s),i},Ht=e=>new TextDecoder("utf-16le").decode(e).replace("skd://","").slice(1);function Kt(e){let t=new ArrayBuffer(e.length*2),r=new DataView(t);for(let n=0;n<e.length;n++)r.setUint16(n*2,e.charCodeAt(n),!0);return t}var Xe=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o,fallbackToWebkitFairplay:s})=>{let a=null,i=async c=>{try{let T=c.initDataType;if(T!=="skd"){console.error(`Received unexpected initialization data type "${T}"`);return}e.mediaKeys||await l(T);let d=c.initData;if(d==null){console.error(`Could not start encrypted playback due to missing initData in ${c.type} event`);return}await u(T,d)}catch(T){n(e,T);return}},l=async c=>{let T=await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[c],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}]).then(f=>(o(),f)).catch(()=>{let f=v("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),M=new y(f,y.MEDIA_ERR_ENCRYPTED,!0);M.errorCategory=P.DRM,M.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,n(e,M)});if(!T)return;let d=await T.createMediaKeys();try{let f=await t();await d.setServerCertificate(f).catch(()=>{let M=v("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate."),m=new y(M,y.MEDIA_ERR_ENCRYPTED,!0);return m.errorCategory=P.DRM,m.muxCode=k.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(m)})}catch(f){n(e,f);return}await e.setMediaKeys(d)},u=async(c,T)=>{let d=e.mediaKeys.createSession(),f=async R=>{let g=R.message,x=await r(g);try{await d.update(x)}catch{let E=v("Failed to update DRM license. This may be an issue with the player or your protected content."),D=new y(E,y.MEDIA_ERR_ENCRYPTED,!0);D.errorCategory=P.DRM,D.muxCode=k.ENCRYPTED_UPDATE_LICENSE_FAILED,n(e,D)}},M=()=>{let R=g=>{let x;if(g==="internal-error"){let E=v("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");x=new y(E,y.MEDIA_ERR_ENCRYPTED,!0),x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_CDM_ERROR}else if(g==="output-restricted"||g==="output-downscaled"){let E=v("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");x=new y(E,y.MEDIA_ERR_ENCRYPTED,!1),x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_OUTPUT_RESTRICTED}x&&n(e,x)};d.keyStatuses.forEach(g=>R(g))};d.addEventListener("keystatuseschange",M),d.addEventListener("message",f);let m=async()=>{d.removeEventListener("keystatuseschange",M),d.removeEventListener("message",f),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",m),e.removeEventListener("teardown",m),await d.close().catch(R=>{console.warn("There was an error when closing EME session",R)}),a=null};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",m,{once:!0}),e.addEventListener("teardown",m,{once:!0}),a=m,await d.generateRequest(c,T).catch(async R=>{if(R.name==="NotSupportedError"&&"webkitCurrentPlaybackTargetIsWireless"in e&&e.webkitCurrentPlaybackTargetIsWireless)console.warn("Failed to generate a DRM license request. Attempting to fallback to Webkit DRM"),s==null||s();else{let g=v("Failed to generate a DRM license request. This may be an issue with the player or your protected content."),x=new y(g,y.MEDIA_ERR_ENCRYPTED,!0);return x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_GENERATE_REQUEST_FAILED,console.error("Failed to generate license request",R),Promise.reject(x)}})},p=async()=>{e.removeEventListener("encrypted",i),e.removeEventListener("teardown",p),a&&await a(),await e.setMediaKeys(null).catch(()=>{})};return e.addEventListener("encrypted",i),e.addEventListener("teardown",p,{once:!0}),p};var Qe=({hls:e,mediaEl:t,src:r,muxMediaState:n,saveAndDispatchError:o,maxRetries:s})=>{var Ce;let l,u=0,p=!1,c=!1,T=!1,d=()=>{l!=null&&(clearTimeout(l),l=void 0)},f=C=>(C==null?void 0:C.muxCode)===k.NETWORK_RECONNECTING,M=()=>!t.paused&&t.readyState<HTMLMediaElement.HAVE_FUTURE_DATA,m=()=>{let C=n.get(t);if(f(C==null?void 0:C.error))return;let K=new y(v("Attempting to reconnect..."),y.MEDIA_ERR_NETWORK,!1);K.errorCategory=P.VIDEO,K.muxCode=k.NETWORK_RECONNECTING,C&&(C.error=K),t.dispatchEvent(new CustomEvent("error",{detail:K}))},R=()=>{if(!T&&r){e.loadSource(r);return}e.startLoad(t.currentTime)},g=()=>{p=!1,c=!0,d();let C=new y(v("Network error, try reloading."),y.MEDIA_ERR_NETWORK,!0);C.errorCategory=P.VIDEO,C.reload=!0,o(t,C)},x=()=>{if(l!=null||p)return;if(u>=s){g();return}p=!0;let C=Math.min(1e3*2**u,3e4);l=setTimeout(()=>{l=void 0,u+=1,R()},C)},E=()=>{let C=n.get(t);!(C!=null&&C.networkError)||c||M()&&(m(),x())},D=()=>{let C=n.get(t);C&&(C.networkError=!0),p=!1,E()},S=()=>{let C=n.get(t);C!=null&&C.networkError&&(u=0,c=!1,d(),p=!0,R())};(Ce=globalThis.addEventListener)==null||Ce.call(globalThis,"online",S);let w=()=>{let C=n.get(t);C&&(!C.networkError&&!f(C.error)||(C.networkError=!1,p=!1,u=0,c=!1,d(),C.error&&(C.error=null,t.dispatchEvent(new Event("emptied")))))};return e.on(b.Events.FRAG_BUFFERED,w),h(t,"playing",()=>{let C=n.get(t);C!=null&&C.networkError&&(p=!1,u=0,c=!1,d(),C.error&&(C.error=null))}),h(t,"waiting",E),t.addEventListener("teardown",()=>{var C;(C=globalThis.removeEventListener)==null||C.call(globalThis,"online",S),d()},{once:!0}),{handleHlsError:(C,K)=>{var ke,De;if(C.type!==b.ErrorTypes.NETWORK_ERROR)return!1;let ve=(De=(ke=C.response)==null?void 0:ke.code)!=null?De:0;return(K.muxCode===k.NETWORK_OFFLINE||ve===0||ve>=500)&&C.fatal?(D(),!0):!1},onManifestLoaded:()=>{T=!0,p=!1,d()}}};var re={FAIRPLAY:"fairplay",PLAYREADY:"playready",WIDEVINE:"widevine"},Ft=e=>{if(e.includes("fps"))return re.FAIRPLAY;if(e.includes("playready"))return re.PLAYREADY;if(e.includes("widevine"))return re.WIDEVINE},Vt=(e,t)=>{let r=Le(e);if(!r)return Promise.reject(new Error("No media playlist URL found in multivariant playlist"));if(z(r)&&!t)return Promise.reject(new Error("masterPlaylistUrl is required to resolve relative media playlist URL"));let n;try{n=Q(r,t)}catch(o){return Promise.reject(o)}return fetch(n).then(o=>o.status!==200?Promise.reject(o):o.text())},Yt=e=>{let t=e.split(`
|
|
3
|
-
`).filter(n=>n.startsWith("#EXT-X-SESSION-DATA"));if(!t.length)return{};let r={};for(let n of t){let o
|
|
4
|
-
`),n=(l=((i=t.find(p=>p.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?i:"").split(":")[1])==null?void 0:l.trim(),o=ie(n),s=ce(n),a;if(o===_.LIVE){let p=t.find(T=>T.startsWith("#EXT-X-PART-INF"));if(!!p)a=+p.split(":")[1].split("=")[1]*2;else{let T=t.find(M=>M.startsWith("#EXT-X-TARGETDURATION")),d=(u=T==null?void 0:T.split(":"))==null?void 0:u[1];a=+(d!=null?d:6)*3}}return{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a}},Gt=async(e,t)=>{if(t===N.MP4)return{streamType:_.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0};if(t===N.M3U8){let r=await fetch(e);if(!r.ok)return Promise.reject(r);let n=await r.text(),o=await Vt(n,r.url);return{...Yt(n),...jt(o)}}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0}},Jt=async(e,t,r=B({src:e}))=>{var l,u,p,c;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,sessionData:a}=await Gt(e,r),i=a==null?void 0:a["com.apple.hls.chapters"];(i!=null&&i.URI||i!=null&&i.VALUE.toLocaleLowerCase().startsWith("http"))&&be((l=i.URI)!=null?l:i.VALUE,t),((u=L.get(t))!=null?u:{}).liveEdgeStartOffset=s,((p=L.get(t))!=null?p:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((c=L.get(t))!=null?c:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},be=async(e,t)=>{var r,n;try{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch Mux metadata: ${o.status} ${o.statusText}`);let s=await o.json(),a={};if(!((r=s==null?void 0:s[0])!=null&&r.metadata))return;for(let l of s[0].metadata)l.key&&l.value&&(a[l.key]=l.value);((n=L.get(t))!=null?n:{}).metadata=a;let i=new CustomEvent("muxmetadata");t.dispatchEvent(i)}catch(o){console.error(o)}},qt=e=>{var a;let t=e.type,r=ie(t),n=ce(t),o,s=!!((a=e.partList)!=null&&a.length);return r===_.LIVE&&(o=s?e.partTarget*2:e.targetduration*3),{streamType:r,targetLiveWindow:n,liveEdgeStartOffset:o,lowLatency:s}},zt=(e,t,r)=>{var i,l,u,p,c,T,d,f;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,lowLatency:a}=qt(e);if(n===_.LIVE){a?(r.config.backBufferLength=(i=r.userConfig.backBufferLength)!=null?i:4,r.config.maxFragLookUpTolerance=(l=r.userConfig.maxFragLookUpTolerance)!=null?l:.001,r.config.abrBandWidthUpFactor=(u=r.userConfig.abrBandWidthUpFactor)!=null?u:r.config.abrBandWidthFactor):r.config.backBufferLength=(p=r.userConfig.backBufferLength)!=null?p:8;let M=Object.freeze({get length(){return t.seekable.length},start(m){return t.seekable.start(m)},end(m){var R;return m>this.length||m<0||Number.isFinite(t.duration)?t.seekable.end(m):(R=r.liveSyncPosition)!=null?R:t.seekable.end(m)}});((c=L.get(t))!=null?c:{}).seekable=M}((T=L.get(t))!=null?T:{}).liveEdgeStartOffset=s,((d=L.get(t))!=null?d:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((f=L.get(t))!=null?f:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},et,tt,it=(tt=(et=globalThis==null?void 0:globalThis.navigator)==null?void 0:et.userAgent)!=null?tt:"",rt,nt,ot,Xt=(ot=(nt=(rt=globalThis==null?void 0:globalThis.navigator)==null?void 0:rt.userAgentData)==null?void 0:nt.platform)!=null?ot:"",Qt=it.toLowerCase().includes("android")||["x11","android"].some(e=>Xt.toLowerCase().includes(e)),Zt=e=>/^((?!chrome|android).)*safari/i.test(it)&&!!e.canPlayType("application/vnd.apple.mpegurl"),L=new WeakMap,O="mux.com",at,st,ct=(st=(at=b).isSupported)==null?void 0:st.call(at),er=e=>Qt||!Zt(e),Vn=()=>{if(typeof window!="undefined")return Re.utils.now()},tr=Re.utils.generateUUID,Yn=({playbackId:e,customDomain:t=O,maxResolution:r,minResolution:n,renditionOrder:o,programStartTime:s,programEndTime:a,assetStartTime:i,assetEndTime:l,playbackToken:u,tokens:{playback:p=u}={},extraSourceParams:c={}}={})=>{if(!e)return;let[T,d=""]=X(e),f=new URL(`https://stream.${t}/${T}.m3u8${d}`);return p||f.searchParams.has("token")?(f.searchParams.forEach((M,m)=>{m!="token"&&f.searchParams.delete(m)}),p&&f.searchParams.set("token",p)):(r&&f.searchParams.set("max_resolution",r),n&&(f.searchParams.set("min_resolution",n),r&&+r.slice(0,-1)<+n.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",n,"maxResolution",r)),o&&f.searchParams.set("rendition_order",o),s&&f.searchParams.set("program_start_time",`${s}`),a&&f.searchParams.set("program_end_time",`${a}`),i&&f.searchParams.set("asset_start_time",`${i}`),l&&f.searchParams.set("asset_end_time",`${l}`),Object.entries(c).forEach(([M,m])=>{m!=null&&f.searchParams.set(M,m)})),f.toString()},oe=e=>{if(!e)return;let[t]=e.split("?");return t||void 0},ut=e=>{if(!e||!e.startsWith("https://stream."))return;let[t]=new URL(e).pathname.slice(1).split(/\.m3u8|\//);return t||void 0},rr=e=>{var t,r,n;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:Tt(e)&&(n=(r=oe(e.playbackId))!=null?r:ut(e.src))!=null?n:e.src},nr=e=>{var t;return(t=L.get(e))==null?void 0:t.error},Bn=e=>{var t;return(t=L.get(e))==null?void 0:t.metadata},Ze=e=>{var t,r;return(r=(t=L.get(e))==null?void 0:t.streamType)!=null?r:_.UNKNOWN},$n=e=>{var t,r;return(r=(t=L.get(e))==null?void 0:t.targetLiveWindow)!=null?r:Number.NaN},lt=e=>{var t,r;return(r=(t=L.get(e))==null?void 0:t.seekable)!=null?r:e.seekable},jn=e=>{var n;let t=(n=L.get(e))==null?void 0:n.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let r=lt(e);return r.length?r.end(r.length-1)-t:Number.NaN},Gn=e=>{var t;return(t=L.get(e))==null?void 0:t.coreReference},xe=.034,or=(e,t,r=xe)=>Math.abs(e-t)<=r,dt=(e,t,r=xe)=>e>t||or(e,t,r),ar=(e,t=xe)=>e.paused&&dt(e.currentTime,e.duration,t),pt=(e,t)=>{var u,p,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let r=t.currentLevel>=0?(p=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:p.details:(c=t.levels.find(T=>!!T.details))==null?void 0:c.details;if(!r||r.live)return;let{fragments:n}=r;if(!(n!=null&&n.length))return;if(e.currentTime<e.duration-(r.targetduration+.5))return!1;let o=n[n.length-1];if(e.currentTime<=o.start)return!1;let s=o.start+o.duration/2,a=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return s>a&&s<i},sr=(e,t)=>e.ended||e.loop?e.ended:t&&pt(e,t)?!0:ar(e),ir=(e,t,r)=>{lr(t,r,e);let{metadata:n={}}=e,{view_session_id:o=tr()}=n,s=rr(e);n.view_session_id=o,n.video_id=s,e.metadata=n;let a=T=>{var d;(d=t.mux)==null||d.emit("hb",{view_drm_type:T})};e.drmTypeCb=a,e.fallbackToWebkitFairplay=async()=>{var m;let T=!t.paused,d=t.currentTime;e.useWebkitFairplay=!0;let f=e.muxDataKeepSession;e.muxDataKeepSession=!0;let M=(m=L.get(t))==null?void 0:m.coreReference;ir(e,t,M),e.muxDataKeepSession=f,e.useWebkitFairplay=!1,T&&await t.play().then(()=>{t.currentTime=d}).catch(()=>{}),t.currentTime=d},L.set(t,{retryCount:0});let i=dr(e,t),l=Oe(e,t,i);e!=null&&e.muxDataKeepSession&&(t!=null&&t.mux)&&!t.mux.deleted?i&&t.mux.addHLSJS({hlsjs:i,Hls:i?b:void 0}):mt(e,t,i),gr(e,t,i),$e(t),qe(t);let u=Ie(e,t,i);Ue(e,t,i),He(e,t,i);let p={engine:i,setAutoplay:u,setPreload:l},c=L.get(t);return c&&(c.coreReference=p),p},cr=()=>{let e=new Date(0).toUTCString(),t=new Set(["muxData"]);document.cookie.split(";").forEach(r=>{let n=r.split("=")[0].trim();n.startsWith("muxData")&&t.add(n)}),t.forEach(r=>{document.cookie=`${r}=;expires=${e};path=/`})},ge=new WeakMap,ur=(e,t,r)=>{t&&(t.mux&&(t.mux.deleted||t.mux.destroy(),delete t.mux),!ge.has(t)&&ge.set(t,Promise.resolve().then(()=>{var s,a;ge.delete(t);let n=L.get(t);if(!n||t.mux&&!t.mux.deleted)return;let o=(a=(s=n.coreReference)!=null?s:r)==null?void 0:a.engine;mt(e,t,o)})))},Jn=(e,t,r)=>{if(!t)return;let n=!!e.disableCookies,o=L.get(t);!o||o.muxDataDisableCookies===n||(ur(e,t,r),n&&Promise.resolve().then(()=>{e.disableCookies&&cr()}))},lr=(e,t,r)=>{let n=t==null?void 0:t.engine;e!=null&&e.mux&&!e.mux.deleted&&(r!=null&&r.muxDataKeepSession?n&&e.mux.removeHLSJS():(e.mux.destroy(),delete e.mux)),n&&(n.detachMedia(),n.destroy()),e&&(e.hasAttribute("src")&&(e.removeAttribute("src"),e.load()),e.removeEventListener("error",gt),e.removeEventListener("error",Me),e.removeEventListener("durationchange",Et),L.delete(e),e.dispatchEvent(new Event("teardown")))};function ft(e,t){var u;let r=B(e);if(!(r===N.M3U8))return!0;let o=!r||((u=t.canPlayType(r))!=null?u:!0),{preferPlayback:s}=e,a=s===ae.MSE,i=s===ae.NATIVE,l=ct&&(a||er(t));return o&&(i||!l)}var dr=(e,t)=>{let{debug:r,streamType:n,startTime:o=-1,metadata:s,preferCmcd:a,_hlsConfig:i={},maxAutoResolution:l,initialBandwidthEstimateKbps:u}=e,c=B(e)===N.M3U8,T=ft(e,t);if(c&&!T&&ct){let d={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelOnFPSDrop:!0,...u!=null?{abrEwmaDefaultEstimate:u*1e3}:{}},f=pr(n),M=fr(e),m=[W.QUERY,W.HEADER].includes(a)?{useHeaders:a===W.HEADER,sessionId:s==null?void 0:s.view_session_id,contentId:s==null?void 0:s.video_id}:void 0,R=Er(e,i),g=new b({debug:r,startPosition:o,cmcd:m,xhrSetup:(x,E)=>{var w,H;if(a&&a!==W.QUERY)return;let D=Q(E);if(!D.searchParams.has("CMCD"))return;let S=((H=(w=D.searchParams.get("CMCD"))==null?void 0:w.split(","))!=null?H:[]).filter(V=>V.startsWith("sid")||V.startsWith("cid")).join(",");D.searchParams.set("CMCD",S),x.open("GET",D)},...d,...R,...f,...M,...i});return R.capLevelController===te&&l!==void 0&&te.setMaxAutoResolution(g,l),g.on(b.Events.MANIFEST_PARSED,async function(x,E){var S,w;let D=(S=E.sessionData)==null?void 0:S["com.apple.hls.chapters"];(D!=null&&D.URI||D!=null&&D.VALUE.toLocaleLowerCase().startsWith("http"))&&be((w=D==null?void 0:D.URI)!=null?w:D==null?void 0:D.VALUE,t)}),g}},pr=e=>e===_.LIVE?{backBufferLength:8}:{},fr=e=>{let{tokens:{drm:t}={},playbackId:r,drmTypeCb:n}=e,o=oe(r);return!t||!o?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:ne(e,"fairplay"),serverCertificateUrl:yt(e,"fairplay")},"com.widevine.alpha":{licenseUrl:ne(e,"widevine")},"com.microsoft.playready":{licenseUrl:ne(e,"playready")}},requestMediaKeySystemAccessFunc:(s,a)=>(s==="com.widevine.alpha"&&(a=[...a.map(i=>{var u;let l=(u=i.videoCapabilities)==null?void 0:u.map(p=>({...p,robustness:"HW_SECURE_ALL"}));return{...i,videoCapabilities:l}}),...a]),navigator.requestMediaKeySystemAccess(s,a).then(i=>{let l=Ft(s);return n==null||n(l),i}))}},yr=async e=>{let t=await fetch(e);return t.status!==200?Promise.reject(t):await t.arrayBuffer()},Tr=async(e,t)=>{let r=await fetch(t,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:e});if(r.status!==200)return Promise.reject(r);let n=await r.arrayBuffer();return new Uint8Array(n)},mr=(e,t)=>{let o={mediaEl:t,getAppCertificate:()=>yr(yt(e,"fairplay")).catch(s=>{if(s instanceof Response){let a=$(s,P.DRM,e);return console.error("mediaError",a==null?void 0:a.message,a==null?void 0:a.context),a?Promise.reject(a):Promise.reject(new Error("Unexpected error in app cert request"))}return Promise.reject(s)}),getLicenseKey:s=>Tr(s,ne(e,"fairplay")).catch(a=>{if(a instanceof Response){let i=$(a,P.DRM,e);return console.error("mediaError",i==null?void 0:i.message,i==null?void 0:i.context),i?Promise.reject(i):Promise.reject(new Error("Unexpected error in license key request"))}return Promise.reject(a)}),saveAndDispatchError:I,drmTypeCb:()=>{var s;(s=e.drmTypeCb)==null||s.call(e,re.FAIRPLAY)}};if(e.useWebkitFairplay)ze(o);else{let s={fallbackToWebkitFairplay:async()=>{var i;await a(),(i=e.fallbackToWebkitFairplay)==null||i.call(e)},...o},a=Xe(s)}},ne=({playbackId:e,tokens:{drm:t}={},customDomain:r=O},n)=>{let o=oe(e);return`https://license.${r.toLocaleLowerCase().endsWith(O)?r:O}/license/${n}/${o}?token=${t}`},yt=({playbackId:e,tokens:{drm:t}={},customDomain:r=O},n)=>{let o=oe(e);return`https://license.${r.toLocaleLowerCase().endsWith(O)?r:O}/appcert/${n}/${o}?token=${t}`},Tt=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!="string")return!1;let n=window==null?void 0:window.location.href,o=new URL(t,n).hostname.toLocaleLowerCase();return o.includes(O)||!!r&&o.includes(r.toLocaleLowerCase())},Er=(e,t)=>{let r={};return r.capLevelToPlayerSize=e.capRenditionToPlayerSize,r.capLevelToPlayerSize==null?(r.capLevelController=te,r.capLevelToPlayerSize=!0):r.capLevelController=Wt,r},mt=(e,t,r)=>{var u;let{envKey:n,disableTracking:o,muxDataSDK:s=Re,muxDataSDKOptions:a={}}=e,i=Tt(e),l=L.get(t);if(l&&(l.muxDataDisableCookies=!!e.disableCookies),!o&&(n||i)){let{playerInitTime:p,playerSoftwareName:c,playerSoftwareVersion:T,beaconCollectionDomain:d,debug:f,disableCookies:M}=e,m={...e.metadata,video_title:((u=e==null?void 0:e.metadata)==null?void 0:u.video_title)||void 0},R=g=>typeof g.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(g):g;s.monitor(t,{debug:f,beaconCollectionDomain:d,hlsjs:r,Hls:r?b:void 0,automaticErrorTracking:!1,errorTranslator:R,disableCookies:M,...a,data:{...n?{env_key:n}:{},player_software_name:c,player_software:c,player_software_version:T,player_init_time:p,...m}})}},gr=(e,t,r)=>{var p,c,T;let n=ft(e,t),{src:o,customDomain:s=O}=e,a=()=>{t.ended||e.disablePseudoEnded||!sr(t,r)||(pt(t,r)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event("ended")))},i,l,u=()=>{let d=lt(t),f,M;d.length>0&&(f=d.start(0),M=d.end(0)),(l!==M||i!==f)&&t.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),i=f,l=M};if(h(t,"durationchange",u),t&&n){let d=B(e);if(typeof o=="string"){if(o.endsWith(".mp4")&&o.includes(s)){let m=ut(o),R=new URL(`https://stream.${s}/${m}/metadata.json`);be(R.toString(),t)}let f=()=>{if(Ze(t)!==_.LIVE||Number.isFinite(t.duration))return;let m=setInterval(u,1e3);t.addEventListener("teardown",()=>{clearInterval(m)},{once:!0}),h(t,"durationchange",()=>{Number.isFinite(t.duration)&&clearInterval(m)})},M=async()=>Jt(o,t,d).then(f).catch(m=>{if(m instanceof Response){let R=$(m,P.VIDEO,e);if(R){I(t,R);return}}else m instanceof Error});if(t.preload==="none"){let m=()=>{M(),t.removeEventListener("loadedmetadata",R)},R=()=>{M(),t.removeEventListener("play",m)};h(t,"play",m,{once:!0}),h(t,"loadedmetadata",R,{once:!0})}else M();(p=e.tokens)!=null&&p.drm?mr(e,t):h(t,"encrypted",()=>{let m=v("Attempting to play DRM-protected content without providing a DRM token."),R=new y(m,y.MEDIA_ERR_ENCRYPTED,!0);R.errorCategory=P.DRM,R.muxCode=k.ENCRYPTED_MISSING_TOKEN,I(t,R)},{once:!0}),t.setAttribute("src",o),e.startTime&&(((c=L.get(t))!=null?c:{}).startTime=e.startTime,t.addEventListener("durationchange",Et,{once:!0}))}else t.removeAttribute("src");t.addEventListener("error",gt),t.addEventListener("error",Me),t.addEventListener("emptied",()=>{t.querySelectorAll("track[data-removeondestroy]").forEach(M=>{M.remove()})},{once:!0}),h(t,"pause",a),h(t,"seeked",a),h(t,"play",()=>{t.ended||dt(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else if(r&&o){r.once(b.Events.LEVEL_LOADED,(M,m)=>{zt(m.details,t,r),u(),Ze(t)===_.LIVE&&!Number.isFinite(t.duration)&&(r.on(b.Events.LEVEL_UPDATED,u),h(t,"durationchange",()=>{Number.isFinite(t.duration)&&r.off(b.Events.LEVELS_UPDATED,u)}))});let d=(T=e.maxReconnectRetries)!=null?T:0,f=d>0?Qe({hls:r,mediaEl:t,src:o,muxMediaState:L,saveAndDispatchError:I,maxRetries:d}):void 0;r.on(b.Events.ERROR,(M,m)=>{var g,x;let R=Mr(m,e);if(R.muxCode===k.NETWORK_NOT_READY){let D=(g=L.get(t))!=null?g:{},S=(x=D.retryCount)!=null?x:0;if(S<6){let w=S===0?5e3:6e4,H=new y(`Retrying in ${w/1e3} seconds...`,R.code,R.fatal);Object.assign(H,R),I(t,H);let V=setTimeout(()=>{D.retryCount=S+1,m.details==="manifestLoadError"&&m.url&&r.loadSource(m.url)},w);t.addEventListener("teardown",()=>clearTimeout(V),{once:!0});return}else{D.retryCount=0;let w=new y("Network error, try reloading.",R.code,R.fatal);Object.assign(w,R),w.reload=!0,I(t,w);return}}f!=null&&f.handleHlsError(m,R)||I(t,R)}),r.on(b.Events.MANIFEST_LOADED,()=>{f==null||f.onManifestLoaded();let M=L.get(t);M!=null&&M.networkError||M&&M.error&&(M.error=null,M.retryCount=0,t.dispatchEvent(new Event("emptied")),t.dispatchEvent(new Event("loadstart")))}),t.addEventListener("error",Me),h(t,"waiting",a),Ke(e,r),We(t,r),r.attachMedia(t)}else console.error("It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.")};function Et(e){var n;let t=e.target,r=(n=L.get(t))==null?void 0:n.startTime;if(r&&Pe(t.seekable,t.duration,r)){let o=t.preload==="auto";o&&(t.preload="none"),t.currentTime=r,o&&(t.preload="auto")}}async function gt(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:r,code:n}=t.error,o=new y(r,n);if(t.src&&n===y.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var a;let s=(a=nr(t))!=null?a:t.error;(s==null?void 0:s.code)===y.MEDIA_ERR_SRC_NOT_SUPPORTED&&I(t,o)},500);return}if(t.src&&(n!==y.MEDIA_ERR_DECODE||n!==void 0))try{let{status:s}=await fetch(t.src);o.data={response:{code:s}}}catch{}I(t,o)}function I(e,t){var r;t.fatal&&(((r=L.get(e))!=null?r:{}).error=t,e.dispatchEvent(new CustomEvent("error",{detail:t})))}function Me(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof y))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=L.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit("error",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var Mr=(e,t)=>{var l,u,p;!e.fatal?t.debug&&console.warn("getErrorFromHlsErrorData() (non-fatal)",e):console.error("getErrorFromHlsErrorData()",e);let n={[b.ErrorTypes.NETWORK_ERROR]:y.MEDIA_ERR_NETWORK,[b.ErrorTypes.MEDIA_ERROR]:y.MEDIA_ERR_DECODE,[b.ErrorTypes.KEY_SYSTEM_ERROR]:y.MEDIA_ERR_ENCRYPTED},o=c=>[b.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,b.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(c.details)?y.MEDIA_ERR_NETWORK:n[c.type],s=c=>{if(c.type===b.ErrorTypes.KEY_SYSTEM_ERROR)return P.DRM;if(c.type===b.ErrorTypes.NETWORK_ERROR)return P.VIDEO},a,i=o(e);if(i===y.MEDIA_ERR_NETWORK&&e.response){let c=(l=s(e))!=null?l:P.VIDEO;a=(u=$(e.response,c,t,e.fatal))!=null?u:new y("",i,e.fatal)}else if(i===y.MEDIA_ERR_ENCRYPTED)if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let c=v("Attempting to play DRM-protected content without providing a DRM token.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_MISSING_TOKEN}else if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let c=v("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_SESSION){let c=v("Failed to generate a DRM license request. This may be an issue with the player or your protected content.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,!0),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let c=v("Failed to update DRM license. This may be an issue with the player or your protected content.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let c=v("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let c=v("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_CDM_ERROR}else if(e.details===b.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let c=v("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,!1),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_OUTPUT_RESTRICTED}else a=new y(e.error.message,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_ERROR;else a=new y("",i,e.fatal);return a.context||(a.context=`${e.url?`url: ${e.url}
|
|
1
|
+
import De from"mux-embed";import St from"hls.js";var R=St;import{CapLevelController as or}from"hls.js";var h={VIDEO:"video",THUMBNAIL:"thumbnail",STORYBOARD:"storyboard",DRM:"drm"},k={NOT_AN_ERROR:0,NETWORK_OFFLINE:2000002,NETWORK_RECONNECTING:2000003,NETWORK_UNKNOWN_ERROR:2e6,NETWORK_NO_STATUS:2000001,NETWORK_INVALID_URL:24e5,NETWORK_NOT_FOUND:2404e3,NETWORK_NOT_READY:2412e3,NETWORK_GENERIC_SERVER_FAIL:25e5,NETWORK_TOKEN_MISSING:2403201,NETWORK_TOKEN_MALFORMED:2412202,NETWORK_TOKEN_EXPIRED:2403210,NETWORK_TOKEN_AUD_MISSING:2403221,NETWORK_TOKEN_AUD_MISMATCH:2403222,NETWORK_TOKEN_SUB_MISMATCH:2403232,ENCRYPTED_ERROR:5e6,ENCRYPTED_UNSUPPORTED_KEY_SYSTEM:5000001,ENCRYPTED_GENERATE_REQUEST_FAILED:5000002,ENCRYPTED_UPDATE_LICENSE_FAILED:5000003,ENCRYPTED_UPDATE_SERVER_CERT_FAILED:5000004,ENCRYPTED_CDM_ERROR:5000005,ENCRYPTED_OUTPUT_RESTRICTED:5000006,ENCRYPTED_MISSING_TOKEN:5000002},j=e=>e===h.VIDEO?"playback":e,w=class w extends Error{constructor(t,r=w.MEDIA_ERR_CUSTOM,n,o){var s;super(t),this.name="MediaError",this.code=r,this.context=o,this.fatal=n!=null?n:r>=w.MEDIA_ERR_NETWORK&&r<=w.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=w.defaultMessages[this.code])!=null?s:"")}};w.MEDIA_ERR_ABORTED=1,w.MEDIA_ERR_NETWORK=2,w.MEDIA_ERR_DECODE=3,w.MEDIA_ERR_SRC_NOT_SUPPORTED=4,w.MEDIA_ERR_ENCRYPTED=5,w.MEDIA_ERR_CUSTOM=100,w.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail.",3:"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.",4:"An unsupported error occurred. The server or network failed, or your browser does not support this format.",5:"The media is encrypted and there are no keys to decrypt it."};var T=w;var Nt=e=>e==null,Y=(e,t)=>Nt(t)?!1:e in t,G={ANY:"any",MUTED:"muted"},_={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},ie={MSE:"mse",NATIVE:"native"},W={HEADER:"header",QUERY:"query",NONE:"none"},$r=Object.values(W),N={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},q={HLS:N.M3U8},Br=Object.keys(q),Jr=[...Object.values(N),"hls","HLS"],jr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"},Gr={noLessThan480p:"480p",noLessThan540p:"540p",noLessThan720p:"720p",noLessThan1080p:"1080p",noLessThan1440p:"1440p",noLessThan2160p:"2160p"},qr={DESCENDING:"desc"},zr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"};var It="en",z={code:It};var Ot=e=>{let t=e;for(;t;){if(t.hasAttribute("lang"))return t.getAttribute("lang")||void 0;let r=t.getRootNode();t=r instanceof ShadowRoot?r.host:void 0}},Se=e=>{var r,n,o;let t=(o=(r=globalThis.navigator)==null?void 0:r.languages)!=null?o:[(n=globalThis.navigator)==null?void 0:n.language];return[Ot(e),...t].filter(s=>!!s)},P=(e,t,r,n,o=e)=>{o.addEventListener(t,r,n),e.addEventListener("teardown",()=>{o.removeEventListener(t,r)},{once:!0})};function Ne(e,t,r){t&&r>t&&(r=t);for(let n=0;n<e.length;n++)if(e.start(n)<=r&&e.end(n)>=r)return!0;return!1}var Q=e=>{let t=e.indexOf("?");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},$=e=>{let{type:t}=e;if(t){let r=t.toUpperCase();return Y(r,q)?q[r]:t}return Ut(e)},ue=e=>e==="VOD"?_.ON_DEMAND:_.LIVE,le=e=>e==="EVENT"?Number.POSITIVE_INFINITY:e==="VOD"?Number.NaN:0,Ut=e=>{let{src:t}=e;if(!t)return"";let r="";try{r=B(t).pathname}catch{console.error("Invalid url when trying to infer mime type",t)}let n=r.lastIndexOf(".");if(n<0)return Kt(e)?N.M3U8:"";let s=r.slice(n+1).toUpperCase();return Y(s,N)?N[s]:""},X=e=>{try{return new URL(e),!1}catch{return!0}},Ie=e=>e.split(`
|
|
2
|
+
`).find((t,r,n)=>r>0&&n[r-1].startsWith("#EXT-X-STREAM-INF")),B=(e,t)=>{var o;if(!X(e))return new URL(e);let r=(o=window==null?void 0:window.location)==null?void 0:o.href,n=t!=null?t:r;return t&&X(t.toString())&&(n=new URL(t,r)),new URL(e,n)},Ht="mux.com",Kt=({src:e,customDomain:t=Ht})=>{let r;try{r=new URL(`${e}`)}catch{return!1}let n=r.protocol==="https:",o=r.hostname===`stream.${t}`.toLowerCase(),s=r.pathname.split("/"),a=s.length===2,i=!(s!=null&&s[1].includes("."));return n&&o&&a&&i},de=e=>{let t=(e!=null?e:"").split(".")[1];if(t)try{let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(r).split("").map(function(o){return"%"+("00"+o.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(n)}catch{return}},Oe=({exp:e},t=Date.now())=>!e||e*1e3<t,Ue=({sub:e},t)=>e!==t,He=({aud:e},t)=>!e,Ke=({aud:e},t)=>e!==t,We="en";function v(e,t=!0){var o,s;let r=t&&(s=(o=z)==null?void 0:o[e])!=null?s:e,n=t?z.code:We;return new ce(r,n)}var ce=class{constructor(t,r=(n=>(n=z)!=null?n:We)()){this.message=t,this.locale=r}format(t){return this.message.replace(/\{(\w+)\}/g,(r,n)=>{var o;return(o=t[n])!=null?o:""})}toString(){return this.message}};var Wt=Object.values(G),Fe=e=>typeof e=="boolean"||typeof e=="string"&&Wt.includes(e),Ve=(e,t,r)=>{let{autoplay:n}=e,o=!1,s=!1,a=Fe(n)?n:!!n,i=()=>{o||P(t,"playing",()=>{o=!0},{once:!0})};if(i(),P(t,"loadstart",()=>{o=!1,i(),pe(t,a)},{once:!0}),P(t,"loadstart",()=>{r||(e.streamType&&e.streamType!==_.UNKNOWN?s=e.streamType===_.LIVE:s=!Number.isFinite(t.duration)),pe(t,a)},{once:!0}),r&&r.once(R.Events.LEVEL_LOADED,(u,p)=>{var c;e.streamType&&e.streamType!==_.UNKNOWN?s=e.streamType===_.LIVE:s=(c=p.details.live)!=null?c:!1}),!a){let u=()=>{!s||Number.isFinite(e.startTime)||(r!=null&&r.liveSyncPosition?t.currentTime=r.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};r&&P(t,"play",()=>{t.preload==="metadata"?r.once(R.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{o||(a=Fe(u)?u:!!u,pe(t,a))}},pe=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case G.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(n)});break;case G.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var Ye=({preload:e,src:t},r,n)=>{let o=c=>{c!=null&&["","none","metadata","auto"].includes(c)?r.setAttribute("preload",c):r.removeAttribute("preload")};if(!n)return o(e),o;let s=!1,a=!1,i=n.config.maxBufferLength,l=n.config.maxBufferSize,u=c=>{o(c);let y=c!=null?c:r.preload;a||y==="none"||(y==="metadata"?(n.config.maxBufferLength=1,n.config.maxBufferSize=1):(n.config.maxBufferLength=i,n.config.maxBufferSize=l),p())},p=()=>{!s&&t&&(s=!0,n.loadSource(t))};return P(r,"play",()=>{a=!0,n.config.maxBufferLength=i,n.config.maxBufferSize=l,p()},{once:!0}),u(e),u};var $e=(e,t,r)=>{let{minPreloadSegments:n}=e;if(n==null||n<=0||!r)return;let o=0,s=!1,a=t.playbackRate||1,i=()=>{t.playbackRate!==0&&(a=t.playbackRate,t.playbackRate=0)};t.playbackRate=0,P(t,"ratechange",i);let l=(u,{frag:p})=>{s||p.type!=="main"||(o++,o>=n&&(s=!0,t.removeEventListener("ratechange",i),t.playbackRate=a))};r.on(R.Events.FRAG_BUFFERED,l),t.addEventListener("teardown",()=>{s||(s=!0,r.off(R.Events.FRAG_BUFFERED,l),t.playbackRate=a)},{once:!0})},Be=(e,t,r)=>{let{initialEstimateSegments:n}=e;if(n==null||n<=0||!r)return;let o=0;r.on(R.Events.FRAG_BUFFERED,(s,{frag:a})=>{a.type==="main"&&(o++,o<n&&r.abrController.resetEstimator(r.config.abrEwmaDefaultEstimate))})};function Je(e,t){var l;if(!("videoTracks"in e))return;let r=new WeakMap;t.on(R.Events.MANIFEST_PARSED,function(u,p){i();let c=e.addVideoTrack("main");c.selected=!0;for(let[y,d]of p.levels.entries()){let f=c.addRendition(d.url[0],d.width,d.height,d.videoCodec,d.bitrate);r.set(d,`${y}`),f.id=`${y}`}}),t.on(R.Events.AUDIO_TRACKS_UPDATED,function(u,p){a();for(let c of p.audioTracks){let y=c.default?"main":"alternative",d=e.addAudioTrack(y,c.name,c.lang);d.id=`${c.id}`,c.default&&(d.enabled=!0)}});let n=()=>{var c;let u=+((c=[...e.audioTracks].find(y=>y.enabled))==null?void 0:c.id),p=t.audioTracks.map(y=>y.id);u!=t.audioTrack&&p.includes(u)&&(t.audioTrack=u)};e.audioTracks.addEventListener("change",n),t.on(R.Events.LEVELS_UPDATED,function(u,p){var d;let c=e.videoTracks[(d=e.videoTracks.selectedIndex)!=null?d:0];if(!c)return;let y=p.levels.map(f=>r.get(f));for(let f of e.videoRenditions)f.id&&!y.includes(f.id)&&c.removeRendition(f)});let o=u=>{let p=u.target.selectedIndex;p!=t.nextLevel&&(t.nextLevel=p)};(l=e.videoRenditions)==null||l.addEventListener("change",o);let s=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},a=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{s(),a()};t.once(R.Events.DESTROYING,()=>{var u,p;i(),(u=e.audioTracks)==null||u.removeEventListener("change",n),(p=e.videoRenditions)==null||p.removeEventListener("change",o)})}var je=e=>e.split("-")[0],Z=({language:e})=>typeof e=="string"?e.toLowerCase():void 0;function Ft(e,t){var o,s;let r=t.toLowerCase(),n=je(r);return(s=(o=e.find(a=>Z(a)===r))!=null?o:e.find(a=>Z(a)===n))!=null?s:e.find(a=>{let i=Z(a);return i!==void 0&&je(i)===n})}function Vt(e,t){var n;let r=(Array.isArray(e)?e:[]).filter(o=>typeof(o==null?void 0:o.title)=="string"&&o.title!=="");if(!r.length)return"";for(let o of t){let s=Ft(r,o);if(s)return s.title}return((n=r.find(o=>Z(o)==="und"))!=null?n:r[0]).title}function Ge(e,t=[]){return Array.isArray(e)?e.filter(r=>typeof(r==null?void 0:r["start-time"])=="number").map((r,n,o)=>{var l;let s=r["start-time"],a=(l=o[n+1])==null?void 0:l["start-time"],i=typeof r.duration=="number"?s+r.duration:typeof a=="number"?a:void 0;return{startTime:s,...i!=null?{endTime:i}:{},value:Vt(r.titles,t)}}).filter(r=>r.value!==""):[]}var qe=Number.MAX_SAFE_INTEGER,fe=e=>"time"in e?e.time:e.startTime;function ze(e,t){t.on(R.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:s})=>{s.forEach(a=>{var p,c;let i=(p=a.subtitleTrack)!=null?p:a.closedCaptions,l=t.subtitleTracks.findIndex(({lang:y,name:d,type:f})=>y==(i==null?void 0:i.lang)&&d===a.label&&f.toLowerCase()===a.kind),u=((c=a._id)!=null?c:a.default)?"default":`${a.kind}${l}`;me(e,a.kind,a.label,i==null?void 0:i.lang,u,a.default)})});let r=()=>{if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(i=>i.id&&i.mode==="showing"&&["subtitles","captions"].includes(i.kind));if(!o)return;let s=t.subtitleTracks[t.subtitleTrack],a=s?s.default?"default":`${t.subtitleTracks[t.subtitleTrack].type.toLowerCase()}${t.subtitleTrack}`:void 0;if(t.subtitleTrack<0||(o==null?void 0:o.id)!==a){let i=t.subtitleTracks.findIndex(({lang:l,name:u,type:p,default:c})=>o.id==="default"&&c||l==o.language&&u===o.label&&p.toLowerCase()===o.kind);t.subtitleTrack=i}(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(i=>{o.addCue(i)})};e.textTracks.addEventListener("change",r),t.on(R.Events.CUES_PARSED,(o,{track:s,cues:a})=>{let i=e.textTracks.getTrackById(s);if(!i)return;let l=i.mode==="disabled";l&&(i.mode="hidden"),a.forEach(u=>{var p;(p=i.cues)!=null&&p.getCueById(u.id)||i.addCue(u)}),l&&(i.mode="disabled")}),t.once(R.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",r),e.querySelectorAll("track[data-removeondestroy]").forEach(s=>{s.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var s;if(!["subtitles","caption"].includes(o.kind)&&(o.label==="thumbnails"||o.kind==="chapters")){if(!((s=o.cues)!=null&&s.length)){let a="track";o.kind&&(a+=`[kind="${o.kind}"]`),o.label&&(a+=`[label="${o.label}"]`);let i=e.querySelector(a),l=i==null?void 0:i.getAttribute("src");i&&l&&(i.removeAttribute("src"),setTimeout(()=>{i.setAttribute("src",l)},0))}o.mode!=="hidden"&&(o.mode="hidden")}})};t.once(R.Events.MANIFEST_LOADED,n),t.once(R.Events.MEDIA_ATTACHED,n)}function me(e,t,r,n,o,s){let a=document.createElement("track");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),s&&(a.default=!0),a.track.mode=["subtitles","captions"].includes(t)?"disabled":"hidden",a.setAttribute("data-removeondestroy",""),e.append(a),a.track}function Yt(e,t){let r=Array.prototype.find.call(e.querySelectorAll("track"),n=>n.track===t);r==null||r.remove()}function F(e,t,r){var n;return(n=Array.from(e.querySelectorAll("track")).find(o=>o.track.label===t&&o.track.kind===r))==null?void 0:n.track}var ye=new WeakMap;async function ge(e,t,r){let n=F(e,t,r);if(n){let a=ye.get(n);return a&&await a,n}let o=me(e,r,t);o.mode="hidden";let s=new Promise(a=>setTimeout(a,0));return ye.set(o,s),await s,ye.delete(o),o}async function $t(e,t,r,n){let o=await ge(e,r,n);return Ee(e,o,t,n),o}function Ee(e,t,r,n){t.mode!=="hidden"&&(t.mode="hidden"),[...r].sort((o,s)=>fe(s)-fe(o)).forEach(o=>{var i,l;let s=o.value,a=fe(o);if("endTime"in o&&o.endTime!=null&&Number.isFinite(o.endTime))t==null||t.addCue(new VTTCue(a,o.endTime,n==="chapters"?s:JSON.stringify(s!=null?s:null)));else{let u=Array.prototype.findIndex.call(t==null?void 0:t.cues,d=>d.startTime>=a),p=(i=t==null?void 0:t.cues)==null?void 0:i[u],c=p?p.startTime:Number.isFinite(e.duration)&&e.duration>0?e.duration:qe,y=(l=t==null?void 0:t.cues)==null?void 0:l[u-1];y&&(y.endTime=a),t==null||t.addCue(new VTTCue(a,c,n==="chapters"?s:JSON.stringify(s!=null?s:null)))}}),e.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))}var Me="cuepoints",Xe=Object.freeze({label:Me});async function Qe(e,t,r=Xe){return $t(e,t,r.label,"metadata")}var ee=e=>({time:e.startTime,value:JSON.parse(e.text)});function Bt(e,t={label:Me}){let r=F(e,t.label,"metadata");return r!=null&&r.cues?Array.from(r.cues,n=>ee(n)):[]}function Ze(e,t={label:Me}){var s,a;let r=F(e,t.label,"metadata");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return ee(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:l})=>i<=n&&l>n);return ee(o||r.activeCues[0])}async function et(e,t=Xe){return new Promise(r=>{P(e,"loadstart",async()=>{let n=await Qe(e,[],t);P(e,"cuechange",()=>{let o=Ze(e);if(o){let s=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}var be="chapters",Re=Object.freeze({label:be}),te=(e,t)=>{let{duration:r}=t,o=Number.isFinite(r)&&r>0?Math.min(e.endTime,r):e.endTime>=qe?1/0:e.endTime;return{startTime:e.startTime,endTime:o,value:e.text}},Te=new WeakSet;function tt(e){var t;Array.from((t=e.cues)!=null?t:[]).filter(r=>Te.has(r)).forEach(r=>e.removeCue(r))}async function rt(e,t,r=Re){let n=await ge(e,r.label,"chapters");return t.length&&tt(n),Ee(e,n,t,"chapters"),n}async function nt(e,t,r,n=Re){var s,a;let o=await ge(e,n.label,"chapters");return r!=null&&r.aborted||Array.from((s=o.cues)!=null?s:[]).some(i=>!Te.has(i))||(tt(o),Ee(e,o,t,"chapters"),Array.from((a=o.cues)!=null?a:[]).forEach(i=>Te.add(i))),o}function Jt(e,t={label:be}){var n;let r=F(e,t.label,"chapters");return(n=r==null?void 0:r.cues)!=null&&n.length?Array.from(r.cues,o=>te(o,e)):[]}function ot(e,t={label:be}){var s,a;let r=F(e,t.label,"chapters");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return te(r.activeCues[0],e);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:l})=>i<=n&&l>n);return te(o||r.activeCues[0],e)}async function at(e,t=Re){return new Promise(r=>{P(e,"loadstart",async()=>{let n=await rt(e,[],t);P(e,"cuechange",()=>{let o=ot(e);if(o){let s=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}function jt(e,t){if(t){let r=t.playingDate;if(r!=null)return new Date(r.getTime()-e.currentTime*1e3)}return typeof e.getStartDate=="function"?e.getStartDate():new Date(NaN)}function Gt(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate=="function"){let r=e.getStartDate();return new Date(r.getTime()+e.currentTime*1e3)}return new Date(NaN)}var xe={VIDEO:"v",THUMBNAIL:"t",STORYBOARD:"s",DRM:"d"},qt=e=>{if(e===h.VIDEO)return xe.VIDEO;if(e===h.DRM)return xe.DRM},zt=(e,t)=>{var o,s;let r=j(e),n=`${r}Token`;return(o=t.tokens)!=null&&o[r]?(s=t.tokens)==null?void 0:s[r]:Y(n,t)?t[n]:void 0},J=(e,t,r,n,o=!1,s=!(a=>(a=globalThis.navigator)==null?void 0:a.onLine)())=>{var g,b;if(s){let E=v("Your device appears to be offline",o),x=void 0,m=T.MEDIA_ERR_NETWORK,L=new T(E,m,!1,x);return L.errorCategory=t,L.muxCode=k.NETWORK_OFFLINE,L.data=e,L}let i="status"in e?e.status:e.code,l=Date.now(),u=T.MEDIA_ERR_NETWORK;if(i===200)return;let p=j(t),c=zt(t,r),y=qt(t),[d]=Q((g=r.playbackId)!=null?g:"");if(!i||!d)return;let f=de(c);if(c&&!f){let E=v("The {tokenNamePrefix}-token provided is invalid or malformed.",o).format({tokenNamePrefix:p}),x=v("Compact JWT string: {token}",o).format({token:c}),m=new T(E,u,!0,x);return m.errorCategory=t,m.muxCode=k.NETWORK_TOKEN_MALFORMED,m.data=e,m}if(i>=500){let E=new T("",u,n!=null?n:!0);return E.errorCategory=t,E.muxCode=k.NETWORK_UNKNOWN_ERROR,E}if(i===403)if(f){if(Oe(f,l)){let E={timeStyle:"medium",dateStyle:"medium"},x=v("The video\u2019s secured {tokenNamePrefix}-token has expired.",o).format({tokenNamePrefix:p}),m=v("Expired at: {expiredDate}. Current time: {currentDate}.",o).format({expiredDate:new Intl.DateTimeFormat("en",E).format((b=f.exp)!=null?b:0*1e3),currentDate:new Intl.DateTimeFormat("en",E).format(l)}),L=new T(x,u,!0,m);return L.errorCategory=t,L.muxCode=k.NETWORK_TOKEN_EXPIRED,L.data=e,L}if(Ue(f,d)){let E=v("The video\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.",o).format({tokenNamePrefix:p}),x=v("Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}",o).format({tokenNamePrefix:p,playbackId:d,tokenPlaybackId:f.sub}),m=new T(E,u,!0,x);return m.errorCategory=t,m.muxCode=k.NETWORK_TOKEN_SUB_MISMATCH,m.data=e,m}if(He(f,y)){let E=v("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:p}),x=v("The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.",o).format({tokenNamePrefix:p,expectedAud:y}),m=new T(E,u,!0,x);return m.errorCategory=t,m.muxCode=k.NETWORK_TOKEN_AUD_MISSING,m.data=e,m}if(Ke(f,y)){let E=v("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:p}),x=v("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.",o).format({tokenNamePrefix:p,expectedAud:y,aud:f.aud}),m=new T(E,u,!0,x);return m.errorCategory=t,m.muxCode=k.NETWORK_TOKEN_AUD_MISMATCH,m.data=e,m}}else{let E=v("Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.",o).format({tokenNamePrefix:p,category:t}),x=v("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(E,u,n!=null?n:!0,x);return m.errorCategory=t,m.muxCode=k.NETWORK_TOKEN_MISSING,m.data=e,m}if(i===412){let E=v("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",o),x=v("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(E,u,n!=null?n:!0,x);return m.errorCategory=t,m.muxCode=k.NETWORK_NOT_READY,m.streamType=r.streamType===_.LIVE?"live":r.streamType===_.ON_DEMAND?"on-demand":"unknown",m.data=e,m}if(i===404){let E=v("This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",o),x=v("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(E,u,n!=null?n:!0,x);return m.errorCategory=t,m.muxCode=k.NETWORK_NOT_FOUND,m.data=e,m}if(i===400){let E=v("The URL or playback-id was invalid. You may have used an invalid value as a playback-id."),x=v("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(E,u,n!=null?n:!0,x);return m.errorCategory=t,m.muxCode=k.NETWORK_INVALID_URL,m.data=e,m}let M=new T("",u,n!=null?n:!0);return M.errorCategory=t,M.muxCode=k.NETWORK_UNKNOWN_ERROR,M.data=e,M};var Ce=R.DefaultConfig.capLevelController;Ce||console.error("MinCapLevelController - hls.js DefaultConfig.capLevelController is unavailable");var Xt={"720p":921600,"1080p":2073600,"1440p":4194304,"2160p":8294400};function Qt(e){let t=e.toLowerCase().trim();return Xt[t]}var U=class U extends Ce{constructor(t){super(t)}static setMaxAutoResolution(t,r){r?U.maxAutoResolution.set(t,r):U.maxAutoResolution.delete(t)}getMaxAutoResolution(){var r;let t=this.hls;return(r=U.maxAutoResolution.get(t))!=null?r:void 0}get levels(){var t;return(t=this.hls.levels)!=null?t:[]}getValidLevels(t){return this.levels.filter((r,n)=>this.isLevelAllowed(r)&&n<=t)}getMaxLevelCapped(t){let r=this.getValidLevels(t),n=this.getMaxAutoResolution();if(!n)return super.getMaxLevel(t);let o=Qt(n);if(!o)return super.getMaxLevel(t);let s=r.filter(l=>l.width*l.height<=o),a=s.findIndex(l=>l.width*l.height===o);if(a!==-1){let l=s[a];return r.findIndex(u=>u===l)}if(s.length===0)return 0;let i=s[s.length-1];return r.findIndex(l=>l===i)}getMaxLevel(t){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(t);let r=super.getMaxLevel(t),n=this.getValidLevels(t);if(!n[r])return r;let o=Math.min(n[r].width,n[r].height),s=U.minMaxResolution;return o>=s?r:Ce.getMaxLevelByMediaSize(n,s*(16/9),s)}};U.minMaxResolution=720,U.maxAutoResolution=new WeakMap;var ve=U,re=ve;var Zt="com.apple.fps.1_0",er="application/vnd.apple.mpegurl",st=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o})=>{if(!window.WebKitMediaKeys||!("onwebkitneedkey"in e)){console.error("No WebKitMediaKeys. FairPlay may not be supported");let y=v("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),d=new T(y,T.MEDIA_ERR_ENCRYPTED,!0);return d.errorCategory=h.DRM,d.muxCode=k.ENCRYPTED_CDM_ERROR,n(e,d),()=>{}}let s=e,a=t(),i=null,l=y=>{(async()=>{try{s.webkitKeys||u();let f=await a;if(y.initData===null||f==null)return;let M=tr(y.initData,f);p(M)}catch(f){console.error("Could not start encrypted playback due to exception",f),n(s,f)}})()},u=()=>{try{let y=new WebKitMediaKeys(Zt);s.webkitSetMediaKeys(y),o()}catch{let y="Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.",d=new T(y,T.MEDIA_ERR_ENCRYPTED,!0);throw d.errorCategory=h.DRM,d.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,d}},p=y=>{let d=s.webkitKeys.createSession(er,y),f=async b=>{try{let E=b.message,x=await r(E);d.update(x)}catch(E){console.error("Error on FairPlay session message",E),n(e,E)}},M=b=>{let E=b.target.error;if(!E)return;console.error(`Internal Webkit Key Session Error - sysCode: ${E.systemCode} code: ${E.code}`);let x=v("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser."),m=new T(x,T.MEDIA_ERR_ENCRYPTED,!0);m.errorCategory=h.DRM,m.muxCode=k.ENCRYPTED_CDM_ERROR,n(e,m)},g=()=>{d.removeEventListener("webkitkeymessage",f),d.removeEventListener("webkitkeyerror",M),e.removeEventListener("teardown",g),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",g),i=null;try{d.close()}catch{}};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",g,{once:!0}),d.addEventListener("webkitkeymessage",f),d.addEventListener("webkitkeyerror",M),e.addEventListener("teardown",g),i=g},c=()=>{e.removeEventListener("webkitneedkey",l),e.removeEventListener("teardown",c),i==null||i();try{s.webkitSetMediaKeys(null)}catch{}};return e.addEventListener("webkitneedkey",l),e.addEventListener("teardown",c,{once:!0}),c},tr=(e,t)=>{let r=nr(rr(e)),n=new Uint8Array(e),o=new Uint8Array(r),s=new Uint8Array(t),a=n.byteLength+4+s.byteLength+4+o.byteLength,i=new Uint8Array(a),l=0,u=c=>{i.set(c,l),l+=c.byteLength},p=c=>{let y=new DataView(i.buffer),d=c.byteLength;y.setUint32(l,d,!0),l+=4,u(c)};return u(n),p(o),p(s),i},rr=e=>new TextDecoder("utf-16le").decode(e).replace("skd://","").slice(1);function nr(e){let t=new ArrayBuffer(e.length*2),r=new DataView(t);for(let n=0;n<e.length;n++)r.setUint16(n*2,e.charCodeAt(n),!0);return t}var it=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o,fallbackToWebkitFairplay:s})=>{let a=null,i=async c=>{try{let y=c.initDataType;if(y!=="skd"){console.error(`Received unexpected initialization data type "${y}"`);return}e.mediaKeys||await l(y);let d=c.initData;if(d==null){console.error(`Could not start encrypted playback due to missing initData in ${c.type} event`);return}await u(y,d)}catch(y){n(e,y);return}},l=async c=>{let y=await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[c],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}]).then(f=>(o(),f)).catch(()=>{let f=v("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),M=new T(f,T.MEDIA_ERR_ENCRYPTED,!0);M.errorCategory=h.DRM,M.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,n(e,M)});if(!y)return;let d=await y.createMediaKeys();try{let f=await t();await d.setServerCertificate(f).catch(()=>{let M=v("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate."),g=new T(M,T.MEDIA_ERR_ENCRYPTED,!0);return g.errorCategory=h.DRM,g.muxCode=k.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(g)})}catch(f){n(e,f);return}await e.setMediaKeys(d)},u=async(c,y)=>{let d=e.mediaKeys.createSession(),f=async b=>{let E=b.message,x=await r(E);try{await d.update(x)}catch{let m=v("Failed to update DRM license. This may be an issue with the player or your protected content."),L=new T(m,T.MEDIA_ERR_ENCRYPTED,!0);L.errorCategory=h.DRM,L.muxCode=k.ENCRYPTED_UPDATE_LICENSE_FAILED,n(e,L)}},M=()=>{let b=E=>{let x;if(E==="internal-error"){let m=v("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");x=new T(m,T.MEDIA_ERR_ENCRYPTED,!0),x.errorCategory=h.DRM,x.muxCode=k.ENCRYPTED_CDM_ERROR}else if(E==="output-restricted"||E==="output-downscaled"){let m=v("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");x=new T(m,T.MEDIA_ERR_ENCRYPTED,!1),x.errorCategory=h.DRM,x.muxCode=k.ENCRYPTED_OUTPUT_RESTRICTED}x&&n(e,x)};d.keyStatuses.forEach(E=>b(E))};d.addEventListener("keystatuseschange",M),d.addEventListener("message",f);let g=async()=>{d.removeEventListener("keystatuseschange",M),d.removeEventListener("message",f),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",g),e.removeEventListener("teardown",g),await d.close().catch(b=>{console.warn("There was an error when closing EME session",b)}),a=null};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",g,{once:!0}),e.addEventListener("teardown",g,{once:!0}),a=g,await d.generateRequest(c,y).catch(async b=>{if(b.name==="NotSupportedError"&&"webkitCurrentPlaybackTargetIsWireless"in e&&e.webkitCurrentPlaybackTargetIsWireless)console.warn("Failed to generate a DRM license request. Attempting to fallback to Webkit DRM"),s==null||s();else{let E=v("Failed to generate a DRM license request. This may be an issue with the player or your protected content."),x=new T(E,T.MEDIA_ERR_ENCRYPTED,!0);return x.errorCategory=h.DRM,x.muxCode=k.ENCRYPTED_GENERATE_REQUEST_FAILED,console.error("Failed to generate license request",b),Promise.reject(x)}})},p=async()=>{e.removeEventListener("encrypted",i),e.removeEventListener("teardown",p),a&&await a(),await e.setMediaKeys(null).catch(()=>{})};return e.addEventListener("encrypted",i),e.addEventListener("teardown",p,{once:!0}),p};var ct=({hls:e,mediaEl:t,src:r,muxMediaState:n,saveAndDispatchError:o,maxRetries:s})=>{var Le;let l,u=0,p=!1,c=!1,y=!1,d=()=>{l!=null&&(clearTimeout(l),l=void 0)},f=C=>(C==null?void 0:C.muxCode)===k.NETWORK_RECONNECTING,M=()=>!t.paused&&t.readyState<HTMLMediaElement.HAVE_FUTURE_DATA,g=()=>{let C=n.get(t);if(f(C==null?void 0:C.error))return;let K=new T(v("Attempting to reconnect..."),T.MEDIA_ERR_NETWORK,!1);K.errorCategory=h.VIDEO,K.muxCode=k.NETWORK_RECONNECTING,C&&(C.error=K),t.dispatchEvent(new CustomEvent("error",{detail:K}))},b=()=>{if(!y&&r){e.loadSource(r);return}e.startLoad(t.currentTime)},E=()=>{p=!1,c=!0,d();let C=new T(v("Network error, try reloading."),T.MEDIA_ERR_NETWORK,!0);C.errorCategory=h.VIDEO,C.reload=!0,o(t,C)},x=()=>{if(l!=null||p)return;if(u>=s){E();return}p=!0;let C=Math.min(1e3*2**u,3e4);l=setTimeout(()=>{l=void 0,u+=1,b()},C)},m=()=>{let C=n.get(t);!(C!=null&&C.networkError)||c||M()&&(g(),x())},L=()=>{let C=n.get(t);C&&(C.networkError=!0),p=!1,m()},A=()=>{let C=n.get(t);C!=null&&C.networkError&&(u=0,c=!1,d(),p=!0,b())};(Le=globalThis.addEventListener)==null||Le.call(globalThis,"online",A);let S=()=>{let C=n.get(t);C&&(!C.networkError&&!f(C.error)||(C.networkError=!1,p=!1,u=0,c=!1,d(),C.error&&(C.error=null,t.dispatchEvent(new Event("emptied")))))};return e.on(R.Events.FRAG_BUFFERED,S),P(t,"playing",()=>{let C=n.get(t);C!=null&&C.networkError&&(p=!1,u=0,c=!1,d(),C.error&&(C.error=null))}),P(t,"waiting",m),t.addEventListener("teardown",()=>{var C;(C=globalThis.removeEventListener)==null||C.call(globalThis,"online",A),d()},{once:!0}),{handleHlsError:(C,K)=>{var we,Ae;if(C.type!==R.ErrorTypes.NETWORK_ERROR)return!1;let _e=(Ae=(we=C.response)==null?void 0:we.code)!=null?Ae:0;return(K.muxCode===k.NETWORK_OFFLINE||_e===0||_e>=500)&&C.fatal?(L(),!0):!1},onManifestLoaded:()=>{y=!0,p=!1,d()}}};var ne={FAIRPLAY:"fairplay",PLAYREADY:"playready",WIDEVINE:"widevine"},ar=e=>{if(e.includes("fps"))return ne.FAIRPLAY;if(e.includes("playready"))return ne.PLAYREADY;if(e.includes("widevine"))return ne.WIDEVINE},sr=(e,t,r)=>{let n=Ie(e);if(!n)return Promise.reject(new Error("No media playlist URL found in multivariant playlist"));if(X(n)&&!t)return Promise.reject(new Error("masterPlaylistUrl is required to resolve relative media playlist URL"));let o;try{o=B(n,t)}catch(s){return Promise.reject(s)}return fetch(o,{signal:r}).then(s=>s.status!==200?Promise.reject(s):s.text())},ir=e=>{let t=e.split(`
|
|
3
|
+
`).filter(n=>n.startsWith("#EXT-X-SESSION-DATA"));if(!t.length)return{};let r={};for(let n of t){let o=ur(n),s=o["DATA-ID"];s&&(r[s]={...o})}return{sessionData:r}},cr=/([A-Z0-9-]+)="?(.*?)"?(?:,|$)/g;function ur(e){let t=[...e.matchAll(cr)];return Object.fromEntries(t.map(([,r,n])=>[r,n]))}var lr=e=>{var i,l,u;let t=e.split(`
|
|
4
|
+
`),n=(l=((i=t.find(p=>p.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?i:"").split(":")[1])==null?void 0:l.trim(),o=ue(n),s=le(n),a;if(o===_.LIVE){let p=t.find(y=>y.startsWith("#EXT-X-PART-INF"));if(!!p)a=+p.split(":")[1].split("=")[1]*2;else{let y=t.find(M=>M.startsWith("#EXT-X-TARGETDURATION")),d=(u=y==null?void 0:y.split(":"))==null?void 0:u[1];a=+(d!=null?d:6)*3}}return{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a}},dr=async(e,t,r)=>{if(t===N.MP4)return{streamType:_.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0,playlistUrl:void 0};if(t===N.M3U8){let n=await fetch(e,{signal:r});if(!n.ok)return Promise.reject(n);let o=await n.text(),s=n.url||e,a=await sr(o,s,r);return{...ir(o),...lr(a),playlistUrl:s}}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0,playlistUrl:void 0}},pr=async(e,t,r=$({src:e}),n=ae(t))=>{var p,c,y;let{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a,sessionData:i,playlistUrl:l}=await dr(e,r,n);if(n.aborted)return;let u=gt(i==null?void 0:i["com.apple.hls.chapters"],l!=null?l:e);u&&bt(u,t,n),((p=D.get(t))!=null?p:{}).liveEdgeStartOffset=a,((c=D.get(t))!=null?c:{}).targetLiveWindow=s,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((y=D.get(t))!=null?y:{}).streamType=o,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},gt=(e,t)=>{var n;let r=(e==null?void 0:e.URI)||((n=e==null?void 0:e.VALUE)!=null&&n.toLocaleLowerCase().startsWith("http")?e.VALUE:void 0);if(r)try{return B(r,t).toString()}catch{return}},ae=e=>{let t=new AbortController;return e.addEventListener("teardown",()=>t.abort(),{once:!0}),t.signal},Et=async(e,t)=>{try{let r=await fetch(e,{signal:t});if(!r.ok)throw new Error(`Failed to fetch ${e}: ${r.status} ${r.statusText}`);let n=await r.json();return t.aborted?void 0:n}catch(r){t.aborted||console.error(r);return}},Mt=(e,t)=>{var o,s;if(!Array.isArray((o=e==null?void 0:e[0])==null?void 0:o.metadata))return;let r={};for(let a of e[0].metadata)a!=null&&a.key&&(a!=null&&a.value)&&(r[a.key]=a.value);((s=D.get(t))!=null?s:{}).metadata=r;let n=new CustomEvent("muxmetadata");t.dispatchEvent(n)},fr=async(e,t,r=ae(t))=>{let n=await Et(e,r);n!==void 0&&Mt(n,t)},bt=async(e,t,r=ae(t))=>{let n=await Et(e,r);n!==void 0&&(Mt(n,t),await nt(t,Ge(n,Se(t)),r))},yr=e=>{var a;let t=e.type,r=ue(t),n=le(t),o,s=!!((a=e.partList)!=null&&a.length);return r===_.LIVE&&(o=s?e.partTarget*2:e.targetduration*3),{streamType:r,targetLiveWindow:n,liveEdgeStartOffset:o,lowLatency:s}},Tr=(e,t,r)=>{var i,l,u,p,c,y,d,f;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,lowLatency:a}=yr(e);if(n===_.LIVE){a?(r.config.backBufferLength=(i=r.userConfig.backBufferLength)!=null?i:4,r.config.maxFragLookUpTolerance=(l=r.userConfig.maxFragLookUpTolerance)!=null?l:.001,r.config.abrBandWidthUpFactor=(u=r.userConfig.abrBandWidthUpFactor)!=null?u:r.config.abrBandWidthFactor):r.config.backBufferLength=(p=r.userConfig.backBufferLength)!=null?p:8;let M=Object.freeze({get length(){return t.seekable.length},start(g){return t.seekable.start(g)},end(g){var b;return g>this.length||g<0||Number.isFinite(t.duration)?t.seekable.end(g):(b=r.liveSyncPosition)!=null?b:t.seekable.end(g)}});((c=D.get(t))!=null?c:{}).seekable=M}((y=D.get(t))!=null?y:{}).liveEdgeStartOffset=s,((d=D.get(t))!=null?d:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((f=D.get(t))!=null?f:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},lt,dt,Rt=(dt=(lt=globalThis==null?void 0:globalThis.navigator)==null?void 0:lt.userAgent)!=null?dt:"",pt,ft,yt,mr=(yt=(ft=(pt=globalThis==null?void 0:globalThis.navigator)==null?void 0:pt.userAgentData)==null?void 0:ft.platform)!=null?yt:"",gr=Rt.toLowerCase().includes("android")||["x11","android"].some(e=>mr.toLowerCase().includes(e)),Er=e=>/^((?!chrome|android).)*safari/i.test(Rt)&&!!e.canPlayType("application/vnd.apple.mpegurl"),D=new WeakMap,O="mux.com",Tt,mt,xt=(mt=(Tt=R).isSupported)==null?void 0:mt.call(Tt),Mr=e=>gr||!Er(e),uo=()=>{if(typeof window!="undefined")return De.utils.now()},br=De.utils.generateUUID,lo=({playbackId:e,customDomain:t=O,maxResolution:r,minResolution:n,renditionOrder:o,programStartTime:s,programEndTime:a,assetStartTime:i,assetEndTime:l,playbackToken:u,tokens:{playback:p=u}={},extraSourceParams:c={}}={})=>{if(!e)return;let[y,d=""]=Q(e),f=new URL(`https://stream.${t}/${y}.m3u8${d}`);return p||f.searchParams.has("token")?(f.searchParams.forEach((M,g)=>{g!="token"&&f.searchParams.delete(g)}),p&&f.searchParams.set("token",p)):(r&&f.searchParams.set("max_resolution",r),n&&(f.searchParams.set("min_resolution",n),r&&+r.slice(0,-1)<+n.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",n,"maxResolution",r)),o&&f.searchParams.set("rendition_order",o),s&&f.searchParams.set("program_start_time",`${s}`),a&&f.searchParams.set("program_end_time",`${a}`),i&&f.searchParams.set("asset_start_time",`${i}`),l&&f.searchParams.set("asset_end_time",`${l}`),Object.entries(c).forEach(([M,g])=>{g!=null&&f.searchParams.set(M,g)})),f.toString()},se=e=>{if(!e)return;let[t]=e.split("?");return t||void 0},Ct=e=>{if(!e||!e.startsWith("https://stream."))return;let[t]=new URL(e).pathname.slice(1).split(/\.m3u8|\//);return t||void 0},Rr=e=>{var t,r,n;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:Lt(e)&&(n=(r=se(e.playbackId))!=null?r:Ct(e.src))!=null?n:e.src},xr=e=>{var t;return(t=D.get(e))==null?void 0:t.error},po=e=>{var t;return(t=D.get(e))==null?void 0:t.metadata},ut=e=>{var t,r;return(r=(t=D.get(e))==null?void 0:t.streamType)!=null?r:_.UNKNOWN},fo=e=>{var t,r;return(r=(t=D.get(e))==null?void 0:t.targetLiveWindow)!=null?r:Number.NaN},vt=e=>{var t,r;return(r=(t=D.get(e))==null?void 0:t.seekable)!=null?r:e.seekable},yo=e=>{var n;let t=(n=D.get(e))==null?void 0:n.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let r=vt(e);return r.length?r.end(r.length-1)-t:Number.NaN},To=e=>{var t;return(t=D.get(e))==null?void 0:t.coreReference},Pe=.034,Cr=(e,t,r=Pe)=>Math.abs(e-t)<=r,kt=(e,t,r=Pe)=>e>t||Cr(e,t,r),vr=(e,t=Pe)=>e.paused&&kt(e.currentTime,e.duration,t),ht=(e,t)=>{var u,p,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let r=t.currentLevel>=0?(p=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:p.details:(c=t.levels.find(y=>!!y.details))==null?void 0:c.details;if(!r||r.live)return;let{fragments:n}=r;if(!(n!=null&&n.length))return;if(e.currentTime<e.duration-(r.targetduration+.5))return!1;let o=n[n.length-1];if(e.currentTime<=o.start)return!1;let s=o.start+o.duration/2,a=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return s>a&&s<i},kr=(e,t)=>e.ended||e.loop?e.ended:t&&ht(e,t)?!0:vr(e),hr=(e,t,r)=>{Lr(t,r,e);let{metadata:n={}}=e,{view_session_id:o=br()}=n,s=Rr(e);n.view_session_id=o,n.video_id=s,e.metadata=n;let a=y=>{var d;(d=t.mux)==null||d.emit("hb",{view_drm_type:y})};e.drmTypeCb=a,e.fallbackToWebkitFairplay=async()=>{var g;let y=!t.paused,d=t.currentTime;e.useWebkitFairplay=!0;let f=e.muxDataKeepSession;e.muxDataKeepSession=!0;let M=(g=D.get(t))==null?void 0:g.coreReference;hr(e,t,M),e.muxDataKeepSession=f,e.useWebkitFairplay=!1,y&&await t.play().then(()=>{t.currentTime=d}).catch(()=>{}),t.currentTime=d},D.set(t,{retryCount:0});let i=_r(e,t),l=Ye(e,t,i);e!=null&&e.muxDataKeepSession&&(t!=null&&t.mux)&&!t.mux.deleted?i&&t.mux.addHLSJS({hlsjs:i,Hls:i?R:void 0}):_t(e,t,i),Ur(e,t,i),et(t),at(t);let u=Ve(e,t,i);$e(e,t,i),Be(e,t,i);let p={engine:i,setAutoplay:u,setPreload:l},c=D.get(t);return c&&(c.coreReference=p),p},Dr=()=>{let e=new Date(0).toUTCString(),t=new Set(["muxData"]);document.cookie.split(";").forEach(r=>{let n=r.split("=")[0].trim();n.startsWith("muxData")&&t.add(n)}),t.forEach(r=>{document.cookie=`${r}=;expires=${e};path=/`})},ke=new WeakMap,Pr=(e,t,r)=>{t&&(t.mux&&(t.mux.deleted||t.mux.destroy(),delete t.mux),!ke.has(t)&&ke.set(t,Promise.resolve().then(()=>{var s,a;ke.delete(t);let n=D.get(t);if(!n||t.mux&&!t.mux.deleted)return;let o=(a=(s=n.coreReference)!=null?s:r)==null?void 0:a.engine;_t(e,t,o)})))},mo=(e,t,r)=>{if(!t)return;let n=!!e.disableCookies,o=D.get(t);!o||o.muxDataDisableCookies===n||(Pr(e,t,r),n&&Promise.resolve().then(()=>{e.disableCookies&&Dr()}))},Lr=(e,t,r)=>{let n=t==null?void 0:t.engine;e!=null&&e.mux&&!e.mux.deleted&&(r!=null&&r.muxDataKeepSession?n&&e.mux.removeHLSJS():(e.mux.destroy(),delete e.mux)),n&&(n.detachMedia(),n.destroy()),e&&(e.hasAttribute("src")&&(e.removeAttribute("src"),e.load()),e.removeEventListener("error",At),e.removeEventListener("error",he),e.removeEventListener("durationchange",wt),D.delete(e),e.dispatchEvent(new Event("teardown")))};function Dt(e,t){var u;let r=$(e);if(!(r===N.M3U8))return!0;let o=!r||((u=t.canPlayType(r))!=null?u:!0),{preferPlayback:s}=e,a=s===ie.MSE,i=s===ie.NATIVE,l=xt&&(a||Mr(t));return o&&(i||!l)}var _r=(e,t)=>{let{debug:r,streamType:n,startTime:o=-1,metadata:s,preferCmcd:a,_hlsConfig:i={},maxAutoResolution:l,initialBandwidthEstimateKbps:u}=e,c=$(e)===N.M3U8,y=Dt(e,t);if(c&&!y&&xt){let d={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelOnFPSDrop:!0,...u!=null?{abrEwmaDefaultEstimate:u*1e3}:{}},f=wr(n),M=Ar(e),g=[W.QUERY,W.HEADER].includes(a)?{useHeaders:a===W.HEADER,sessionId:s==null?void 0:s.view_session_id,contentId:s==null?void 0:s.video_id}:void 0,b=Or(e,i),E=new R({debug:r,startPosition:o,cmcd:g,xhrSetup:(x,m)=>{var S,H;if(a&&a!==W.QUERY)return;let L=B(m);if(!L.searchParams.has("CMCD"))return;let A=((H=(S=L.searchParams.get("CMCD"))==null?void 0:S.split(","))!=null?H:[]).filter(V=>V.startsWith("sid")||V.startsWith("cid")).join(",");L.searchParams.set("CMCD",A),x.open("GET",L)},...d,...b,...f,...M,...i});return b.capLevelController===re&&l!==void 0&&re.setMaxAutoResolution(E,l),E.on(R.Events.MANIFEST_LOADED,async function(x,m){var A;let L=gt((A=m.sessionData)==null?void 0:A["com.apple.hls.chapters"],m.url);L&&bt(L,t)}),E}},wr=e=>e===_.LIVE?{backBufferLength:8}:{},Ar=e=>{let{tokens:{drm:t}={},playbackId:r,drmTypeCb:n}=e,o=se(r);return!t||!o?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:oe(e,"fairplay"),serverCertificateUrl:Pt(e,"fairplay")},"com.widevine.alpha":{licenseUrl:oe(e,"widevine")},"com.microsoft.playready":{licenseUrl:oe(e,"playready")}},requestMediaKeySystemAccessFunc:(s,a)=>(s==="com.widevine.alpha"&&(a=[...a.map(i=>{var u;let l=(u=i.videoCapabilities)==null?void 0:u.map(p=>({...p,robustness:"HW_SECURE_ALL"}));return{...i,videoCapabilities:l}}),...a]),navigator.requestMediaKeySystemAccess(s,a).then(i=>{let l=ar(s);return n==null||n(l),i}))}},Sr=async e=>{let t=await fetch(e);return t.status!==200?Promise.reject(t):await t.arrayBuffer()},Nr=async(e,t)=>{let r=await fetch(t,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:e});if(r.status!==200)return Promise.reject(r);let n=await r.arrayBuffer();return new Uint8Array(n)},Ir=(e,t)=>{let o={mediaEl:t,getAppCertificate:()=>Sr(Pt(e,"fairplay")).catch(s=>{if(s instanceof Response){let a=J(s,h.DRM,e);return console.error("mediaError",a==null?void 0:a.message,a==null?void 0:a.context),a?Promise.reject(a):Promise.reject(new Error("Unexpected error in app cert request"))}return Promise.reject(s)}),getLicenseKey:s=>Nr(s,oe(e,"fairplay")).catch(a=>{if(a instanceof Response){let i=J(a,h.DRM,e);return console.error("mediaError",i==null?void 0:i.message,i==null?void 0:i.context),i?Promise.reject(i):Promise.reject(new Error("Unexpected error in license key request"))}return Promise.reject(a)}),saveAndDispatchError:I,drmTypeCb:()=>{var s;(s=e.drmTypeCb)==null||s.call(e,ne.FAIRPLAY)}};if(e.useWebkitFairplay)st(o);else{let s={fallbackToWebkitFairplay:async()=>{var i;await a(),(i=e.fallbackToWebkitFairplay)==null||i.call(e)},...o},a=it(s)}},oe=({playbackId:e,tokens:{drm:t}={},customDomain:r=O},n)=>{let o=se(e);return`https://license.${r.toLocaleLowerCase().endsWith(O)?r:O}/license/${n}/${o}?token=${t}`},Pt=({playbackId:e,tokens:{drm:t}={},customDomain:r=O},n)=>{let o=se(e);return`https://license.${r.toLocaleLowerCase().endsWith(O)?r:O}/appcert/${n}/${o}?token=${t}`},Lt=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!="string")return!1;let n=window==null?void 0:window.location.href,o=new URL(t,n).hostname.toLocaleLowerCase();return o.includes(O)||!!r&&o.includes(r.toLocaleLowerCase())},Or=(e,t)=>{let r={};return r.capLevelToPlayerSize=e.capRenditionToPlayerSize,r.capLevelToPlayerSize==null?(r.capLevelController=re,r.capLevelToPlayerSize=!0):r.capLevelController=or,r},_t=(e,t,r)=>{var u;let{envKey:n,disableTracking:o,muxDataSDK:s=De,muxDataSDKOptions:a={}}=e,i=Lt(e),l=D.get(t);if(l&&(l.muxDataDisableCookies=!!e.disableCookies),!o&&(n||i)){let{playerInitTime:p,playerSoftwareName:c,playerSoftwareVersion:y,beaconCollectionDomain:d,debug:f,disableCookies:M}=e,g={...e.metadata,video_title:((u=e==null?void 0:e.metadata)==null?void 0:u.video_title)||void 0},b=E=>typeof E.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(E):E;s.monitor(t,{debug:f,beaconCollectionDomain:d,hlsjs:r,Hls:r?R:void 0,automaticErrorTracking:!1,errorTranslator:b,disableCookies:M,...a,data:{...n?{env_key:n}:{},player_software_name:c,player_software:c,player_software_version:y,player_init_time:p,...g}})}},Ur=(e,t,r)=>{var p,c,y;let n=Dt(e,t),{src:o,customDomain:s=O}=e,a=()=>{t.ended||e.disablePseudoEnded||!kr(t,r)||(ht(t,r)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event("ended")))},i,l,u=()=>{let d=vt(t),f,M;d.length>0&&(f=d.start(0),M=d.end(0)),(l!==M||i!==f)&&t.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),i=f,l=M};if(P(t,"durationchange",u),t&&n){let d=$(e);if(typeof o=="string"){if(o.endsWith(".mp4")&&o.includes(s)){let g=Ct(o),b=new URL(`https://stream.${s}/${g}/metadata.json`);fr(b.toString(),t)}let f=()=>{if(ut(t)!==_.LIVE||Number.isFinite(t.duration))return;let g=setInterval(u,1e3);t.addEventListener("teardown",()=>{clearInterval(g)},{once:!0}),P(t,"durationchange",()=>{Number.isFinite(t.duration)&&clearInterval(g)})},M=async()=>{let g=ae(t);return pr(o,t,d,g).then(()=>{g.aborted||f()}).catch(b=>{if(b instanceof Response){let E=J(b,h.VIDEO,e);if(E){I(t,E);return}}else b instanceof Error})};if(t.preload==="none"){let g=()=>{M(),t.removeEventListener("loadedmetadata",b)},b=()=>{M(),t.removeEventListener("play",g)};P(t,"play",g,{once:!0}),P(t,"loadedmetadata",b,{once:!0})}else M();(p=e.tokens)!=null&&p.drm?Ir(e,t):P(t,"encrypted",()=>{let g=v("Attempting to play DRM-protected content without providing a DRM token."),b=new T(g,T.MEDIA_ERR_ENCRYPTED,!0);b.errorCategory=h.DRM,b.muxCode=k.ENCRYPTED_MISSING_TOKEN,I(t,b)},{once:!0}),t.setAttribute("src",o),e.startTime&&(((c=D.get(t))!=null?c:{}).startTime=e.startTime,t.addEventListener("durationchange",wt,{once:!0}))}else t.removeAttribute("src");t.addEventListener("error",At),t.addEventListener("error",he),t.addEventListener("emptied",()=>{t.querySelectorAll("track[data-removeondestroy]").forEach(M=>{M.remove()})},{once:!0}),P(t,"pause",a),P(t,"seeked",a),P(t,"play",()=>{t.ended||kt(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else if(r&&o){r.once(R.Events.LEVEL_LOADED,(M,g)=>{Tr(g.details,t,r),u(),ut(t)===_.LIVE&&!Number.isFinite(t.duration)&&(r.on(R.Events.LEVEL_UPDATED,u),P(t,"durationchange",()=>{Number.isFinite(t.duration)&&r.off(R.Events.LEVELS_UPDATED,u)}))});let d=(y=e.maxReconnectRetries)!=null?y:0,f=d>0?ct({hls:r,mediaEl:t,src:o,muxMediaState:D,saveAndDispatchError:I,maxRetries:d}):void 0;r.on(R.Events.ERROR,(M,g)=>{var E,x;let b=Hr(g,e);if(b.muxCode===k.NETWORK_NOT_READY){let L=(E=D.get(t))!=null?E:{},A=(x=L.retryCount)!=null?x:0;if(A<6){let S=A===0?5e3:6e4,H=new T(`Retrying in ${S/1e3} seconds...`,b.code,b.fatal);Object.assign(H,b),I(t,H);let V=setTimeout(()=>{L.retryCount=A+1,g.details==="manifestLoadError"&&g.url&&r.loadSource(g.url)},S);t.addEventListener("teardown",()=>clearTimeout(V),{once:!0});return}else{L.retryCount=0;let S=new T("Network error, try reloading.",b.code,b.fatal);Object.assign(S,b),S.reload=!0,I(t,S);return}}f!=null&&f.handleHlsError(g,b)||I(t,b)}),r.on(R.Events.MANIFEST_LOADED,()=>{f==null||f.onManifestLoaded();let M=D.get(t);M!=null&&M.networkError||M&&M.error&&(M.error=null,M.retryCount=0,t.dispatchEvent(new Event("emptied")),t.dispatchEvent(new Event("loadstart")))}),t.addEventListener("error",he),P(t,"waiting",a),Je(e,r),ze(t,r),r.attachMedia(t)}else console.error("It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.")};function wt(e){var n;let t=e.target,r=(n=D.get(t))==null?void 0:n.startTime;if(r&&Ne(t.seekable,t.duration,r)){let o=t.preload==="auto";o&&(t.preload="none"),t.currentTime=r,o&&(t.preload="auto")}}async function At(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:r,code:n}=t.error,o=new T(r,n);if(t.src&&n===T.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var a;let s=(a=xr(t))!=null?a:t.error;(s==null?void 0:s.code)===T.MEDIA_ERR_SRC_NOT_SUPPORTED&&I(t,o)},500);return}if(t.src&&(n!==T.MEDIA_ERR_DECODE||n!==void 0))try{let{status:s}=await fetch(t.src);o.data={response:{code:s}}}catch{}I(t,o)}function I(e,t){var r;t.fatal&&(((r=D.get(e))!=null?r:{}).error=t,e.dispatchEvent(new CustomEvent("error",{detail:t})))}function he(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof T))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=D.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit("error",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var Hr=(e,t)=>{var l,u,p;!e.fatal?t.debug&&console.warn("getErrorFromHlsErrorData() (non-fatal)",e):console.error("getErrorFromHlsErrorData()",e);let n={[R.ErrorTypes.NETWORK_ERROR]:T.MEDIA_ERR_NETWORK,[R.ErrorTypes.MEDIA_ERROR]:T.MEDIA_ERR_DECODE,[R.ErrorTypes.KEY_SYSTEM_ERROR]:T.MEDIA_ERR_ENCRYPTED},o=c=>[R.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,R.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(c.details)?T.MEDIA_ERR_NETWORK:n[c.type],s=c=>{if(c.type===R.ErrorTypes.KEY_SYSTEM_ERROR)return h.DRM;if(c.type===R.ErrorTypes.NETWORK_ERROR)return h.VIDEO},a,i=o(e);if(i===T.MEDIA_ERR_NETWORK&&e.response){let c=(l=s(e))!=null?l:h.VIDEO;a=(u=J(e.response,c,t,e.fatal))!=null?u:new T("",i,e.fatal)}else if(i===T.MEDIA_ERR_ENCRYPTED)if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let c=v("Attempting to play DRM-protected content without providing a DRM token.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=h.DRM,a.muxCode=k.ENCRYPTED_MISSING_TOKEN}else if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let c=v("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=h.DRM,a.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_SESSION){let c=v("Failed to generate a DRM license request. This may be an issue with the player or your protected content.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,!0),a.errorCategory=h.DRM,a.muxCode=k.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let c=v("Failed to update DRM license. This may be an issue with the player or your protected content.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=h.DRM,a.muxCode=k.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let c=v("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=h.DRM,a.muxCode=k.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let c=v("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=h.DRM,a.muxCode=k.ENCRYPTED_CDM_ERROR}else if(e.details===R.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let c=v("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,!1),a.errorCategory=h.DRM,a.muxCode=k.ENCRYPTED_OUTPUT_RESTRICTED}else a=new T(e.error.message,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=h.DRM,a.muxCode=k.ENCRYPTED_ERROR;else a=new T("",i,e.fatal);return a.context||(a.context=`${e.url?`url: ${e.url}
|
|
5
5
|
`:""}${e.response&&(e.response.code||e.response.text)?`response: ${e.response.code}, ${e.response.text}
|
|
6
6
|
`:""}${e.reason?`failure reason: ${e.reason}
|
|
7
7
|
`:""}${e.level?`level: ${e.level}
|
|
@@ -10,5 +10,5 @@ import Re from"mux-embed";import Mt from"hls.js";var b=Mt;import{CapLevelControl
|
|
|
10
10
|
`:""}${e.error?`error: ${e.error}
|
|
11
11
|
`:""}${e.event?`event: ${e.event}
|
|
12
12
|
`:""}${e.err?`error message: ${(p=e.err)==null?void 0:p.message}
|
|
13
|
-
`:""}`),a.data=e,a};export{G as AutoplayTypes
|
|
13
|
+
`:""}`),a.data=e,a};export{G as AutoplayTypes,$r as CmcdTypeValues,W as CmcdTypes,N as ExtensionMimeTypeMap,R as Hls,zr as MaxAutoResolution,jr as MaxResolution,T as MediaError,q as MimeTypeShorthandMap,re as MinCapLevelController,Gr as MinResolution,h as MuxErrorCategory,k as MuxErrorCode,xe as MuxJWTAud,ie as PlaybackTypes,qr as RenditionOrder,_ as StreamTypes,rt as addChapters,Qe as addCuePoints,me as addTextTrack,Jr as allMediaTypes,mo as applyDisableCookies,Dr as clearMuxDataCookies,j as errorCategoryToTokenNameOrPrefix,bt as fetchAndApplyChaptersSessionData,fr as fetchAndDispatchMuxMetadata,uo as generatePlayerInitTime,br as generateUUID,ot as getActiveChapter,Ze as getActiveCuePoint,Sr as getAppCertificate,Or as getCapLevelControllerConfig,Jt as getChapters,To as getCoreReference,Bt as getCuePoints,Gt as getCurrentPdt,Ar as getDRMConfig,kr as getEnded,xr as getError,Nr as getLicenseKey,yo as getLiveEdgeStart,sr as getMediaPlaylistFromMultivariantPlaylist,po as getMetadata,ir as getMultivariantPlaylistSessionData,vt as getSeekable,jt as getStartDate,yr as getStreamInfoFromHlsjsLevelDetails,lr as getStreamInfoFromPlaylist,dr as getStreamInfoFromSrcAndType,ut as getStreamType,wr as getStreamTypeConfig,fo as getTargetLiveWindow,F as getTextTrack,v as i18n,hr as initialize,Y as isKeyOf,Lt as isMuxVideoSrc,vr as isPseudoEnded,ht as isStuckOnLastFragment,Ur as loadMedia,De as mux,D as muxMediaState,de as parseJwt,ur as parseTagAttributes,Pr as reinitMuxData,Yt as removeTextTrack,at as setupChapters,et as setupCuePoints,_r as setupHls,_t as setupMux,Ir as setupNativeFairplayDRM,Br as shorthandKeys,Lr as teardown,Pt as toAppCertURL,gt as toChaptersSessionDataUrl,ar as toDRMTypeFromKeySystem,oe as toLicenseKeyURL,lo as toMuxVideoURL,Ct as toPlaybackIdFromSrc,Q as toPlaybackIdParts,Tr as updateStreamInfoFromHlsjsLevelDetails,pr as updateStreamInfoFromSrc};
|
|
14
14
|
//# sourceMappingURL=index.mjs.map
|