@mux/playback-core 0.25.2 → 0.26.0
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 +2 -2
- package/dist/index.cjs.js.map +3 -3
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +3 -3
- package/dist/playback-core.js +18 -18
- package/dist/playback-core.js.map +3 -3
- package/dist/playback-core.mjs +18 -18
- package/dist/playback-core.mjs.map +3 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +36 -17
- package/dist/types/preload.d.ts +1 -1
- package/dist/types/types.d.ts +2 -1
- package/dist/types/util.d.ts +1 -1
- package/dist/types-ts3.4/index.d.ts +36 -17
- package/dist/types-ts3.4/preload.d.ts +1 -1
- package/dist/types-ts3.4/types.d.ts +2 -1
- package/dist/types-ts3.4/util.d.ts +1 -1
- package/package.json +8 -7
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import z from"mux-embed";import Se from"hls.js";var T=Se;var v=class v extends Error{constructor(n,a=v.MEDIA_ERR_CUSTOM,r,o){var s;super(n);this.name="MediaError",this.code=a,this.context=o,this.fatal=r!=null?r:a>=v.MEDIA_ERR_NETWORK&&a<=v.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=v.defaultMessages[this.code])!=null?s:"")}};v.MEDIA_ERR_ABORTED=1,v.MEDIA_ERR_NETWORK=2,v.MEDIA_ERR_DECODE=3,v.MEDIA_ERR_SRC_NOT_SUPPORTED=4,v.MEDIA_ERR_ENCRYPTED=5,v.MEDIA_ERR_CUSTOM=100,v.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 x=v;var we=e=>e==null,N=(e,t)=>we(t)?!1:e in t,w={ANY:"any",MUTED:"muted"},g={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},_={MSE:"mse",NATIVE:"native"},h={HEADER:"header",QUERY:"query",NONE:"none"},dt=Object.values(h),b={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},D={HLS:b.M3U8},lt=Object.keys(D),pt=[...Object.values(b),"hls","HLS"],ft={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"},Tt={noLessThan480p:"480p",noLessThan540p:"540p",noLessThan720p:"720p",noLessThan1080p:"1080p",noLessThan1440p:"1440p",noLessThan2160p:"2160p"},yt={DESCENDING:"desc"};var y=(e,t,n,a,r=e)=>{r.addEventListener(t,n,a),e.addEventListener("teardown",()=>{r.removeEventListener(t,n)},{once:!0})};function Q(e,t,n){t&&n>t&&(n=t);for(let a=0;a<e.length;a++)if(e.start(a)<=n&&e.end(a)>=n)return!0;return!1}var Z=e=>{let t=e.indexOf("?");if(t<0)return[e];let n=e.slice(0,t),a=e.slice(t);return[n,a]},C=e=>{let t=e.type;if(t){let a=t.toUpperCase();return N(a,D)?D[a]:t}let{src:n}=e;return n?De(n):""},O=e=>e==="VOD"?g.ON_DEMAND:g.LIVE,V=e=>e==="EVENT"?Number.POSITIVE_INFINITY:e==="VOD"?Number.NaN:0,De=e=>{let t="";try{t=new URL(e).pathname}catch{console.error("invalid url")}let n=t.lastIndexOf(".");if(n<0)return"";let r=t.slice(n+1).toUpperCase();return N(r,b)?b[r]:""};var Ie=Object.values(w),ee=e=>typeof e=="boolean"||typeof e=="string"&&Ie.includes(e),te=(e,t,n)=>{let{autoplay:a}=e,r=!1,o=!1,s=ee(a)?a:!!a,i=()=>{r||y(t,"playing",()=>{r=!0},{once:!0})};if(i(),y(t,"loadstart",()=>{r=!1,i(),U(t,s)},{once:!0}),y(t,"loadstart",()=>{n||(e.streamType&&e.streamType!==g.UNKNOWN?o=e.streamType===g.LIVE:o=!Number.isFinite(t.duration)),U(t,s)},{once:!0}),n&&n.once(T.Events.LEVEL_LOADED,(u,d)=>{var c;e.streamType&&e.streamType!==g.UNKNOWN?o=e.streamType===g.LIVE:o=(c=d.details.live)!=null?c:!1}),!s){let u=()=>{!o||Number.isFinite(e.startTime)||(n!=null&&n.liveSyncPosition?t.currentTime=n.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};n&&y(t,"play",()=>{t.preload==="metadata"?n.once(T.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{r||(s=ee(u)?u:!!u,U(t,s))}},U=(e,t)=>{if(!t)return;let n=e.muted,a=()=>e.muted=n;switch(t){case w.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(a)});break;case w.MUTED:e.muted=!0,e.play().catch(a);break;default:e.play().catch(()=>{});break}};var ne=({preload:e,src:t},n,a)=>{let r=c=>{c!=null&&["","none","metadata","auto"].includes(c)?n.setAttribute("preload",c):n.removeAttribute("preload")};if(!a)return r(e),r;let o=!1,s=!1,i=a.config.maxBufferLength,l=a.config.maxBufferSize,u=c=>{r(c);let p=c!=null?c:n.preload;s||p==="none"||(p==="metadata"?(a.config.maxBufferLength=1,a.config.maxBufferSize=1):(a.config.maxBufferLength=i,a.config.maxBufferSize=l),d())},d=()=>{!o&&t&&(o=!0,a.loadSource(t))};return y(n,"play",()=>{s=!0,a.config.maxBufferLength=i,a.config.maxBufferSize=l,d()},{once:!0}),u(e),u};function re(e,t){var l;if(!("videoTracks"in e))return;let n=new WeakMap;t.on(T.Events.MANIFEST_PARSED,function(u,d){i();let c=e.addVideoTrack("main");c.selected=!0;for(let[p,f]of d.levels.entries()){let m=c.addRendition(f.url[0],f.width,f.height,f.videoCodec,f.bitrate);n.set(f,`${p}`),m.id=`${p}`}}),t.on(T.Events.AUDIO_TRACKS_UPDATED,function(u,d){s();for(let c of d.audioTracks){let p=c.default?"main":"alternative",f=e.addAudioTrack(p,c.name,c.lang);f.id=`${c.id}`,c.default&&(f.enabled=!0)}}),e.audioTracks.addEventListener("change",()=>{var c;let u=+((c=[...e.audioTracks].find(p=>p.enabled))==null?void 0:c.id),d=t.audioTracks.map(p=>p.id);u!=t.audioTrack&&d.includes(u)&&(t.audioTrack=u)}),t.on(T.Events.LEVELS_UPDATED,function(u,d){var f;let c=e.videoTracks[(f=e.videoTracks.selectedIndex)!=null?f:0];if(!c)return;let p=d.levels.map(m=>n.get(m));for(let m of e.videoRenditions)m.id&&!p.includes(m.id)&&c.removeRendition(m)});let a=u=>{let d=u.target.selectedIndex;d!=t.nextLevel&&r(d)},r=u=>{let d=e.currentTime,c=!1,p=(f,m)=>{c||(c=!Number.isFinite(m.endOffset))};t.on(T.Events.BUFFER_FLUSHING,p),t.nextLevel=u,t.off(T.Events.BUFFER_FLUSHING,p),c||t.trigger(T.Events.BUFFER_FLUSHING,{startOffset:d+10,endOffset:1/0,type:"video"})};(l=e.videoRenditions)==null||l.addEventListener("change",a);let o=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},s=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{o(),s()};t.once(T.Events.DESTROYING,i)}var F=e=>"time"in e?e.time:e.startTime;function ae(e,t){t.on(T.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(r,{tracks:o})=>{o.forEach(s=>{var u;let i=(u=s.subtitleTrack)!=null?u:s.closedCaptions,l=t.subtitleTracks.findIndex(({lang:d,name:c,type:p})=>d==(i==null?void 0:i.lang)&&c===s.label&&p.toLowerCase()===s.kind);W(e,s.kind,s.label,i==null?void 0:i.lang,`${s.kind}${l}`)})});let n=()=>{var s;if(!t.subtitleTracks.length)return;let r=Array.from(e.textTracks).find(i=>i.id&&i.mode==="showing"&&["subtitles","captions"].includes(i.kind)),o=`${(s=t.subtitleTracks[t.subtitleTrack])==null?void 0:s.type.toLowerCase()}${t.subtitleTrack}`;if(r&&(t.subtitleTrack<0||(r==null?void 0:r.id)!==o)){let i=t.subtitleTracks.findIndex(({lang:l,name:u,type:d})=>l==r.language&&u===r.label&&d.toLowerCase()===r.kind);t.subtitleTrack=i}r&&(r==null?void 0:r.id)===o&&r.cues&&Array.from(r.cues).forEach(i=>{r.addCue(i)})};e.textTracks.addEventListener("change",n),t.on(T.Events.CUES_PARSED,(r,{track:o,cues:s})=>{let i=e.textTracks.getTrackById(o);if(!i)return;let l=i.mode==="disabled";l&&(i.mode="hidden"),s.forEach(u=>{var d;(d=i.cues)!=null&&d.getCueById(u.id)||i.addCue(u)}),l&&(i.mode="disabled")}),t.once(T.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",n),e.querySelectorAll("track[data-removeondestroy]").forEach(o=>{o.remove()})});let a=()=>{Array.from(e.textTracks).forEach(r=>{var o,s;if(!["subtitles","caption"].includes(r.kind)&&r.label==="thumbnails"){if(!((o=r.cues)!=null&&o.length)){let i=e.querySelector('track[label="thumbnails"]'),l=(s=i==null?void 0:i.getAttribute("src"))!=null?s:"";i==null||i.removeAttribute("src"),setTimeout(()=>{i==null||i.setAttribute("src",l)},0)}r.mode!=="hidden"&&(r.mode="hidden")}})};t.once(T.Events.MANIFEST_LOADED,a),t.once(T.Events.MEDIA_ATTACHED,a)}function W(e,t,n,a,r){let o=document.createElement("track");return o.kind=t,o.label=n,a&&(o.srclang=a),r&&(o.id=r),o.track.mode=["subtitles","captions"].includes(t)?"disabled":"hidden",o.setAttribute("data-removeondestroy",""),e.append(o),o.track}function Re(e,t){let n=Array.prototype.find.call(e.querySelectorAll("track"),a=>a.track===t);n==null||n.remove()}function E(e,t,n){var a;return(a=Array.from(e.querySelectorAll("track")).find(r=>r.track.label===t&&r.track.kind===n))==null?void 0:a.track}async function oe(e,t,n,a){let r=E(e,n,a);return r||(r=W(e,a,n),r.mode="hidden",await new Promise(o=>setTimeout(()=>o(void 0),0))),r.mode!=="hidden"&&(r.mode="hidden"),[...t].sort((o,s)=>F(s)-F(o)).forEach(o=>{var l,u;let s=o.value,i=F(o);if("endTime"in o&&o.endTime!=null)r==null||r.addCue(new VTTCue(i,o.endTime,a==="chapters"?s:JSON.stringify(s!=null?s:null)));else{let d=Array.prototype.findIndex.call(r==null?void 0:r.cues,m=>m.startTime>=i),c=(l=r==null?void 0:r.cues)==null?void 0:l[d],p=c?c.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,f=(u=r==null?void 0:r.cues)==null?void 0:u[d-1];f&&(f.endTime=i),r==null||r.addCue(new VTTCue(i,p,a==="chapters"?s:JSON.stringify(s!=null?s:null)))}}),e.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),r}var K="cuepoints",se=Object.freeze({label:K});async function ie(e,t,n=se){return oe(e,t,n.label,"metadata")}var I=e=>({time:e.startTime,value:JSON.parse(e.text)});function He(e,t={label:K}){let n=E(e,t.label,"metadata");return n!=null&&n.cues?Array.from(n.cues,a=>I(a)):[]}function ce(e,t={label:K}){var o,s;let n=E(e,t.label,"metadata");if(!((o=n==null?void 0:n.activeCues)!=null&&o.length))return;if(n.activeCues.length===1)return I(n.activeCues[0]);let{currentTime:a}=e,r=Array.prototype.find.call((s=n.activeCues)!=null?s:[],({startTime:i,endTime:l})=>i<=a&&l>a);return I(r||n.activeCues[0])}async function ue(e,t=se){return new Promise(n=>{y(e,"loadstart",async()=>{let a=await ie(e,[],t);y(e,"cuechange",()=>{let r=ce(e);if(r){let o=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:r});e.dispatchEvent(o)}},{},a),n(a)})})}var B="chapters",de=Object.freeze({label:B}),R=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function le(e,t,n=de){return oe(e,t,n.label,"chapters")}function Ne(e,t={label:B}){var a;let n=E(e,t.label,"chapters");return(a=n==null?void 0:n.cues)!=null&&a.length?Array.from(n.cues,r=>R(r)):[]}function pe(e,t={label:B}){var o,s;let n=E(e,t.label,"chapters");if(!((o=n==null?void 0:n.activeCues)!=null&&o.length))return;if(n.activeCues.length===1)return R(n.activeCues[0]);let{currentTime:a}=e,r=Array.prototype.find.call((s=n.activeCues)!=null?s:[],({startTime:i,endTime:l})=>i<=a&&l>a);return R(r||n.activeCues[0])}async function fe(e,t=de){return new Promise(n=>{y(e,"loadstart",async()=>{let a=await le(e,[],t);y(e,"cuechange",()=>{let r=pe(e);if(r){let o=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:r});e.dispatchEvent(o)}},{},a),n(a)})})}function _e(e,t){if(t){let n=t.playingDate;if(n!=null)return new Date(n.getTime()-e.currentTime*1e3)}return typeof e.getStartDate=="function"?e.getStartDate():new Date(NaN)}function Oe(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate=="function"){let n=e.getStartDate();return new Date(n.getTime()+e.currentTime*1e3)}return new Date(NaN)}var Ve=async e=>fetch(e).then(t=>t.text()).then(t=>{let n=t.split(`
|
|
1
|
+
import X from"mux-embed";import Re from"hls.js";var y=Re;var b=class b extends Error{constructor(n,a=b.MEDIA_ERR_CUSTOM,r,o){var s;super(n);this.name="MediaError",this.code=a,this.context=o,this.fatal=r!=null?r:a>=b.MEDIA_ERR_NETWORK&&a<=b.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=b.defaultMessages[this.code])!=null?s:"")}};b.MEDIA_ERR_ABORTED=1,b.MEDIA_ERR_NETWORK=2,b.MEDIA_ERR_DECODE=3,b.MEDIA_ERR_SRC_NOT_SUPPORTED=4,b.MEDIA_ERR_ENCRYPTED=5,b.MEDIA_ERR_CUSTOM=100,b.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 L=b;var Ne=e=>e==null,_=(e,t)=>Ne(t)?!1:e in t,w={ANY:"any",MUTED:"muted"},g={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},O={MSE:"mse",NATIVE:"native"},C={HEADER:"header",QUERY:"query",NONE:"none"},mt=Object.values(C),v={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},S={HLS:v.M3U8},gt=Object.keys(S),Mt=[...Object.values(v),"hls","HLS"],bt={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"},vt={noLessThan480p:"480p",noLessThan540p:"540p",noLessThan720p:"720p",noLessThan1080p:"1080p",noLessThan1440p:"1440p",noLessThan2160p:"2160p"},Lt={DESCENDING:"desc"};var T=(e,t,n,a,r=e)=>{r.addEventListener(t,n,a),e.addEventListener("teardown",()=>{r.removeEventListener(t,n)},{once:!0})};function Z(e,t,n){t&&n>t&&(n=t);for(let a=0;a<e.length;a++)if(e.start(a)<=n&&e.end(a)>=n)return!0;return!1}var ee=e=>{let t=e.indexOf("?");if(t<0)return[e];let n=e.slice(0,t),a=e.slice(t);return[n,a]},h=e=>{let t=e.type;if(t){let a=t.toUpperCase();return _(a,S)?S[a]:t}let{src:n}=e;return n?He(n):""},V=e=>e==="VOD"?g.ON_DEMAND:g.LIVE,U=e=>e==="EVENT"?Number.POSITIVE_INFINITY:e==="VOD"?Number.NaN:0,He=e=>{let t="";try{t=new URL(e).pathname}catch{console.error("invalid url")}let n=t.lastIndexOf(".");if(n<0)return"";let r=t.slice(n+1).toUpperCase();return _(r,v)?v[r]:""};var _e=Object.values(w),te=e=>typeof e=="boolean"||typeof e=="string"&&_e.includes(e),ne=(e,t,n)=>{let{autoplay:a}=e,r=!1,o=!1,s=te(a)?a:!!a,i=()=>{r||T(t,"playing",()=>{r=!0},{once:!0})};if(i(),T(t,"loadstart",()=>{r=!1,i(),F(t,s)},{once:!0}),T(t,"loadstart",()=>{n||(e.streamType&&e.streamType!==g.UNKNOWN?o=e.streamType===g.LIVE:o=!Number.isFinite(t.duration)),F(t,s)},{once:!0}),n&&n.once(y.Events.LEVEL_LOADED,(u,d)=>{var c;e.streamType&&e.streamType!==g.UNKNOWN?o=e.streamType===g.LIVE:o=(c=d.details.live)!=null?c:!1}),!s){let u=()=>{!o||Number.isFinite(e.startTime)||(n!=null&&n.liveSyncPosition?t.currentTime=n.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};n&&T(t,"play",()=>{t.preload==="metadata"?n.once(y.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{r||(s=te(u)?u:!!u,F(t,s))}},F=(e,t)=>{if(!t)return;let n=e.muted,a=()=>e.muted=n;switch(t){case w.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(a)});break;case w.MUTED:e.muted=!0,e.play().catch(a);break;default:e.play().catch(()=>{});break}};var re=({preload:e,src:t},n,a)=>{let r=c=>{c!=null&&["","none","metadata","auto"].includes(c)?n.setAttribute("preload",c):n.removeAttribute("preload")};if(!a)return r(e),r;let o=!1,s=!1,i=a.config.maxBufferLength,l=a.config.maxBufferSize,u=c=>{r(c);let p=c!=null?c:n.preload;s||p==="none"||(p==="metadata"?(a.config.maxBufferLength=1,a.config.maxBufferSize=1):(a.config.maxBufferLength=i,a.config.maxBufferSize=l),d())},d=()=>{!o&&t&&(o=!0,a.loadSource(t))};return T(n,"play",()=>{s=!0,a.config.maxBufferLength=i,a.config.maxBufferSize=l,d()},{once:!0}),u(e),u};function ae(e,t){var l;if(!("videoTracks"in e))return;let n=new WeakMap;t.on(y.Events.MANIFEST_PARSED,function(u,d){i();let c=e.addVideoTrack("main");c.selected=!0;for(let[p,f]of d.levels.entries()){let m=c.addRendition(f.url[0],f.width,f.height,f.videoCodec,f.bitrate);n.set(f,`${p}`),m.id=`${p}`}}),t.on(y.Events.AUDIO_TRACKS_UPDATED,function(u,d){s();for(let c of d.audioTracks){let p=c.default?"main":"alternative",f=e.addAudioTrack(p,c.name,c.lang);f.id=`${c.id}`,c.default&&(f.enabled=!0)}}),e.audioTracks.addEventListener("change",()=>{var c;let u=+((c=[...e.audioTracks].find(p=>p.enabled))==null?void 0:c.id),d=t.audioTracks.map(p=>p.id);u!=t.audioTrack&&d.includes(u)&&(t.audioTrack=u)}),t.on(y.Events.LEVELS_UPDATED,function(u,d){var f;let c=e.videoTracks[(f=e.videoTracks.selectedIndex)!=null?f:0];if(!c)return;let p=d.levels.map(m=>n.get(m));for(let m of e.videoRenditions)m.id&&!p.includes(m.id)&&c.removeRendition(m)});let a=u=>{let d=u.target.selectedIndex;d!=t.nextLevel&&r(d)},r=u=>{let d=e.currentTime,c=!1,p=(f,m)=>{c||(c=!Number.isFinite(m.endOffset))};t.on(y.Events.BUFFER_FLUSHING,p),t.nextLevel=u,t.off(y.Events.BUFFER_FLUSHING,p),c||t.trigger(y.Events.BUFFER_FLUSHING,{startOffset:d+10,endOffset:1/0,type:"video"})};(l=e.videoRenditions)==null||l.addEventListener("change",a);let o=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},s=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{o(),s()};t.once(y.Events.DESTROYING,i)}var W=e=>"time"in e?e.time:e.startTime;function oe(e,t){t.on(y.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(r,{tracks:o})=>{o.forEach(s=>{var u;let i=(u=s.subtitleTrack)!=null?u:s.closedCaptions,l=t.subtitleTracks.findIndex(({lang:d,name:c,type:p})=>d==(i==null?void 0:i.lang)&&c===s.label&&p.toLowerCase()===s.kind);K(e,s.kind,s.label,i==null?void 0:i.lang,`${s.kind}${l}`)})});let n=()=>{var s;if(!t.subtitleTracks.length)return;let r=Array.from(e.textTracks).find(i=>i.id&&i.mode==="showing"&&["subtitles","captions"].includes(i.kind)),o=`${(s=t.subtitleTracks[t.subtitleTrack])==null?void 0:s.type.toLowerCase()}${t.subtitleTrack}`;if(r&&(t.subtitleTrack<0||(r==null?void 0:r.id)!==o)){let i=t.subtitleTracks.findIndex(({lang:l,name:u,type:d})=>l==r.language&&u===r.label&&d.toLowerCase()===r.kind);t.subtitleTrack=i}r&&(r==null?void 0:r.id)===o&&r.cues&&Array.from(r.cues).forEach(i=>{r.addCue(i)})};e.textTracks.addEventListener("change",n),t.on(y.Events.CUES_PARSED,(r,{track:o,cues:s})=>{let i=e.textTracks.getTrackById(o);if(!i)return;let l=i.mode==="disabled";l&&(i.mode="hidden"),s.forEach(u=>{var d;(d=i.cues)!=null&&d.getCueById(u.id)||i.addCue(u)}),l&&(i.mode="disabled")}),t.once(y.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",n),e.querySelectorAll("track[data-removeondestroy]").forEach(o=>{o.remove()})});let a=()=>{Array.from(e.textTracks).forEach(r=>{var o,s;if(!["subtitles","caption"].includes(r.kind)&&r.label==="thumbnails"){if(!((o=r.cues)!=null&&o.length)){let i=e.querySelector('track[label="thumbnails"]'),l=(s=i==null?void 0:i.getAttribute("src"))!=null?s:"";i==null||i.removeAttribute("src"),setTimeout(()=>{i==null||i.setAttribute("src",l)},0)}r.mode!=="hidden"&&(r.mode="hidden")}})};t.once(y.Events.MANIFEST_LOADED,a),t.once(y.Events.MEDIA_ATTACHED,a)}function K(e,t,n,a,r){let o=document.createElement("track");return o.kind=t,o.label=n,a&&(o.srclang=a),r&&(o.id=r),o.track.mode=["subtitles","captions"].includes(t)?"disabled":"hidden",o.setAttribute("data-removeondestroy",""),e.append(o),o.track}function Oe(e,t){let n=Array.prototype.find.call(e.querySelectorAll("track"),a=>a.track===t);n==null||n.remove()}function E(e,t,n){var a;return(a=Array.from(e.querySelectorAll("track")).find(r=>r.track.label===t&&r.track.kind===n))==null?void 0:a.track}async function se(e,t,n,a){let r=E(e,n,a);return r||(r=K(e,a,n),r.mode="hidden",await new Promise(o=>setTimeout(()=>o(void 0),0))),r.mode!=="hidden"&&(r.mode="hidden"),[...t].sort((o,s)=>W(s)-W(o)).forEach(o=>{var l,u;let s=o.value,i=W(o);if("endTime"in o&&o.endTime!=null)r==null||r.addCue(new VTTCue(i,o.endTime,a==="chapters"?s:JSON.stringify(s!=null?s:null)));else{let d=Array.prototype.findIndex.call(r==null?void 0:r.cues,m=>m.startTime>=i),c=(l=r==null?void 0:r.cues)==null?void 0:l[d],p=c?c.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,f=(u=r==null?void 0:r.cues)==null?void 0:u[d-1];f&&(f.endTime=i),r==null||r.addCue(new VTTCue(i,p,a==="chapters"?s:JSON.stringify(s!=null?s:null)))}}),e.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),r}var B="cuepoints",ie=Object.freeze({label:B});async function ce(e,t,n=ie){return se(e,t,n.label,"metadata")}var I=e=>({time:e.startTime,value:JSON.parse(e.text)});function Ve(e,t={label:B}){let n=E(e,t.label,"metadata");return n!=null&&n.cues?Array.from(n.cues,a=>I(a)):[]}function ue(e,t={label:B}){var o,s;let n=E(e,t.label,"metadata");if(!((o=n==null?void 0:n.activeCues)!=null&&o.length))return;if(n.activeCues.length===1)return I(n.activeCues[0]);let{currentTime:a}=e,r=Array.prototype.find.call((s=n.activeCues)!=null?s:[],({startTime:i,endTime:l})=>i<=a&&l>a);return I(r||n.activeCues[0])}async function de(e,t=ie){return new Promise(n=>{T(e,"loadstart",async()=>{let a=await ce(e,[],t);T(e,"cuechange",()=>{let r=ue(e);if(r){let o=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:r});e.dispatchEvent(o)}},{},a),n(a)})})}var $="chapters",le=Object.freeze({label:$}),R=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function pe(e,t,n=le){return se(e,t,n.label,"chapters")}function Ue(e,t={label:$}){var a;let n=E(e,t.label,"chapters");return(a=n==null?void 0:n.cues)!=null&&a.length?Array.from(n.cues,r=>R(r)):[]}function fe(e,t={label:$}){var o,s;let n=E(e,t.label,"chapters");if(!((o=n==null?void 0:n.activeCues)!=null&&o.length))return;if(n.activeCues.length===1)return R(n.activeCues[0]);let{currentTime:a}=e,r=Array.prototype.find.call((s=n.activeCues)!=null?s:[],({startTime:i,endTime:l})=>i<=a&&l>a);return R(r||n.activeCues[0])}async function ye(e,t=le){return new Promise(n=>{T(e,"loadstart",async()=>{let a=await pe(e,[],t);T(e,"cuechange",()=>{let r=fe(e);if(r){let o=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:r});e.dispatchEvent(o)}},{},a),n(a)})})}function Fe(e,t){if(t){let n=t.playingDate;if(n!=null)return new Date(n.getTime()-e.currentTime*1e3)}return typeof e.getStartDate=="function"?e.getStartDate():new Date(NaN)}function We(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate=="function"){let n=e.getStartDate();return new Date(n.getTime()+e.currentTime*1e3)}return new Date(NaN)}var N={FAIRPLAY:"fairplay",PLAYREADY:"playready",WIDEVINE:"widevine"},Ke=e=>{if(e.includes("fps"))return N.FAIRPLAY;if(e.includes("playready"))return N.PLAYREADY;if(e.includes("widevine"))return N.WIDEVINE},Be=async e=>fetch(e).then(t=>t.text()).then(t=>{let n=t.split(`
|
|
2
2
|
`).find((a,r,o)=>r&&o[r-1].startsWith("#EXT-X-STREAM-INF"));return fetch(n).then(a=>a.text()).then(a=>a.split(`
|
|
3
|
-
`))}),Ue=e=>{var s,i,l;let n=(i=((s=e.find(u=>u.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?s:"").split(":")[1])==null?void 0:i.trim(),a=O(n),r=V(n),o;if(a===g.LIVE){let u=e.find(c=>c.startsWith("#EXT-X-PART-INF"));if(!!u)o=+u.split(":")[1].split("=")[1]*2;else{let c=e.find(m=>m.startsWith("#EXT-X-TARGETDURATION")),p=(l=c==null?void 0:c.split(":"))==null?void 0:l[1];o=+(p!=null?p:6)*3}}return{streamType:a,targetLiveWindow:r,liveEdgeStartOffset:o}},Fe=async(e,t)=>{if(t===b.MP4)return{streamType:g.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0};if(t===b.M3U8){let n=await Ve(e);return Ue(n)}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0}},$=async(e,t,n=C({src:e}))=>{var s,i,l;let{streamType:a,targetLiveWindow:r,liveEdgeStartOffset:o}=await Fe(e,n);((s=M.get(t))!=null?s:{}).liveEdgeStartOffset=o,((i=M.get(t))!=null?i:{}).targetLiveWindow=r,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((l=M.get(t))!=null?l:{}).streamType=a,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},We=e=>{var s;let t=e.type,n=O(t),a=V(t),r,o=!!((s=e.partList)!=null&&s.length);return n===g.LIVE&&(r=o?e.partTarget*2:e.targetduration*3),{streamType:n,targetLiveWindow:a,liveEdgeStartOffset:r,lowLatency:o}},Ke=(e,t,n)=>{var i,l,u,d,c,p,f,m;let{streamType:a,targetLiveWindow:r,liveEdgeStartOffset:o,lowLatency:s}=We(e);if(a===g.LIVE){s?(n.config.backBufferLength=(i=n.userConfig.backBufferLength)!=null?i:4,n.config.maxFragLookUpTolerance=(l=n.userConfig.maxFragLookUpTolerance)!=null?l:.001,n.config.abrBandWidthUpFactor=(u=n.userConfig.abrBandWidthUpFactor)!=null?u:n.config.abrBandWidthFactor):n.config.backBufferLength=(d=n.userConfig.backBufferLength)!=null?d:8;let P=Object.freeze({get length(){return t.seekable.length},start(L){return t.seekable.start(L)},end(L){var A;return L>this.length||L<0||Number.isFinite(t.duration)?t.seekable.end(L):(A=n.liveSyncPosition)!=null?A:t.seekable.end(L)}});((c=M.get(t))!=null?c:{}).seekable=P}((p=M.get(t))!=null?p:{}).liveEdgeStartOffset=o,((f=M.get(t))!=null?f:{}).targetLiveWindow=r,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((m=M.get(t))!=null?m:{}).streamType=a,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},ye,me,Be=(me=(ye=globalThis==null?void 0:globalThis.navigator)==null?void 0:ye.userAgent)!=null?me:"",$e=Be.toLowerCase().indexOf("android")!==-1,M=new WeakMap,k="mux.com",ge,Me,ve=(Me=(ge=T).isSupported)==null?void 0:Me.call(ge),qe=$e,Xt=()=>z.utils.now(),Ye=z.utils.generateUUID,Gt=({playbackId:e,customDomain:t=k,maxResolution:n,minResolution:a,renditionOrder:r,programStartTime:o,programEndTime:s,tokens:{playback:i}={},extraSourceParams:l={}}={})=>{if(!e)return;let[u,d=""]=Z(e),c=new URL(`https://stream.${t}/${u}.m3u8${d}`);return i||c.searchParams.has("token")?(c.searchParams.forEach((p,f)=>{f!="token"&&c.searchParams.delete(f)}),i&&c.searchParams.set("token",i)):(n&&c.searchParams.set("max_resolution",n),a&&(c.searchParams.set("min_resolution",a),n&&+n.slice(0,-1)<+a.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",a,"maxResolution",n)),r&&c.searchParams.set("rendition_order",r),o&&c.searchParams.set("program_start_time",`${o}`),s&&c.searchParams.set("program_end_time",`${s}`),Object.entries(l).forEach(([p,f])=>{f!=null&&c.searchParams.set(p,f)})),c.toString()},ze=e=>{if(!e)return;let[t]=e.split("?");return t||void 0},be=e=>{if(!e||!e.startsWith("https://stream."))return;let[t]=new URL(e).pathname.slice(1).split(".m3u8");return t||void 0},Xe=e=>{var t,n,a;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:Ee(e)&&(a=(n=ze(e.playbackId))!=null?n:be(e.src))!=null?a:e.src},jt=e=>{var t;return(t=M.get(e))==null?void 0:t.error},Te=e=>{var t,n;return(n=(t=M.get(e))==null?void 0:t.streamType)!=null?n:g.UNKNOWN},Jt=e=>{var t,n;return(n=(t=M.get(e))==null?void 0:t.targetLiveWindow)!=null?n:Number.NaN},q=e=>{var t,n;return(n=(t=M.get(e))==null?void 0:t.seekable)!=null?n:e.seekable},Qt=e=>{var a;let t=(a=M.get(e))==null?void 0:a.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let n=q(e);return n.length?n.end(n.length-1)-t:Number.NaN},X=.034,Ge=(e,t,n=X)=>Math.abs(e-t)<=n,xe=(e,t,n=X)=>e>t||Ge(e,t,n),je=(e,t=X)=>e.paused&&xe(e.currentTime,e.duration,t),Le=(e,t)=>{var u,d,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let n=t.currentLevel>=0?(d=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:d.details:(c=t.levels.find(p=>!!p.details))==null?void 0:c.details;if(!n||n.live)return;let{fragments:a}=n;if(!(a!=null&&a.length))return;if(e.currentTime<e.duration-(n.targetduration+.5))return!1;let r=a[a.length-1];if(e.currentTime<=r.start)return!1;let o=r.start+r.duration/2,s=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return o>s&&o<i},Je=(e,t)=>e.ended||e.loop?e.ended:t&&Le(e,t)?!0:je(e),Zt=(e,t,n)=>{Qe(t,n);let{metadata:a={}}=e,{view_session_id:r=Ye()}=a,o=Xe(e);a.view_session_id=r,a.video_id=o,e.metadata=a,M.set(t,{});let s=Ze(e,t),i=ne(e,t,s);ot(e,t,s),st(e,t,s),ue(t),fe(t);let l=te(e,t,s);return{engine:s,setAutoplay:l,setPreload:i}},Qe=(e,t)=>{let n=t==null?void 0:t.engine;n&&(n.detachMedia(),n.destroy()),e!=null&&e.mux&&!e.mux.deleted&&(e.mux.destroy(),delete e.mux),e&&(e.removeAttribute("src"),e.load(),e.removeEventListener("error",Ce),e.removeEventListener("error",Y),e.removeEventListener("durationchange",he),M.delete(e),e.dispatchEvent(new Event("teardown")))};function ke(e,t){var u;let n=C(e);if(!(n===b.M3U8))return!0;let r=!n||((u=t.canPlayType(n))!=null?u:!0),{preferPlayback:o}=e,s=o===_.MSE,i=o===_.NATIVE;return r&&(i||!(ve&&(s||qe)))}var Ze=(e,t)=>{let{debug:n,streamType:a,startTime:r=-1,metadata:o,preferCmcd:s,_hlsConfig:i={}}=e,u=C(e)===b.M3U8,d=ke(e,t);if(u&&!d&&ve){let c={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelToPlayerSize:!0,capLevelOnFPSDrop:!0},p=et(a),f=tt(e),m=s!==h.NONE?{useHeaders:s===h.HEADER,sessionId:o==null?void 0:o.view_session_id,contentId:o==null?void 0:o.video_id}:void 0;return new T({debug:n,startPosition:r,cmcd:m,xhrSetup:(L,A)=>{var G,j;if(s&&s!==h.QUERY)return;let S=new URL(A);if(!S.searchParams.has("CMCD"))return;let Ae=((j=(G=S.searchParams.get("CMCD"))==null?void 0:G.split(","))!=null?j:[]).filter(J=>J.startsWith("sid")||J.startsWith("cid")).join(",");S.searchParams.set("CMCD",Ae),L.open("GET",S)},...c,...p,...f,...i})}},et=e=>e===g.LIVE?{backBufferLength:8}:{},tt=e=>{let{drmToken:t,src:n,playbackId:a=be(n)}=e;return!t||!a?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:H(e,"fairplay"),serverCertificateUrl:Pe(e,"fairplay")},"com.widevine.alpha":{licenseUrl:H(e,"widevine")},"com.microsoft.playready":{licenseUrl:H(e,"playready")}},requestMediaKeySystemAccessFunc:(r,o)=>(r==="com.widevine.alpha"&&(o=[...o.map(s=>{var l;let i=(l=s.videoCapabilities)==null?void 0:l.map(u=>({...u,robustness:"HW_SECURE_ALL"}));return{...s,videoCapabilities:i}}),...o]),navigator.requestMediaKeySystemAccess(r,o))}},nt=async e=>await(await fetch(e)).arrayBuffer(),rt=async(e,t)=>{let a=await(await fetch(t,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:e})).arrayBuffer();return new Uint8Array(a)},at=(e,t)=>{y(t,"encrypted",async a=>{try{let r=a.initDataType;if(r!=="skd"){console.error(`Received unexpected initialization data type "${r}"`);return}if(!t.mediaKeys){let d=await(await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[r],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}])).createMediaKeys(),c=await nt(Pe(e,"fairplay"));await d.setServerCertificate(c),await t.setMediaKeys(d)}let o=a.initData;if(o==null){console.error(`Could not start encrypted playback due to missing initData in ${a.type} event`);return}let s=t.mediaKeys.createSession();s.generateRequest(r,o);let i=await new Promise(u=>{s.addEventListener("message",d=>{u(d.message)},{once:!0})}),l=await rt(i,H(e,"fairplay"));return await s.update(l),s}catch(r){console.error(`Could not start encrypted playback due to exception "${r}"`)}})},H=({playbackId:e,drmToken:t,customDomain:n=k},a)=>`https://license.${n.toLocaleLowerCase().endsWith(k)?n:k}/license/${a}/${e}?token=${t}`,Pe=({playbackId:e,drmToken:t,customDomain:n=k},a)=>`https://license.${n.toLocaleLowerCase().endsWith(k)?n:k}/appcert/${a}/${e}?token=${t}`,Ee=({playbackId:e,src:t,customDomain:n})=>{if(e)return!0;if(typeof t!="string")return!1;let a=window==null?void 0:window.location.href,r=new URL(t,a).hostname.toLocaleLowerCase();return r.includes(k)||!!n&&r.includes(n.toLocaleLowerCase())},ot=(e,t,n)=>{var s;let{envKey:a,disableTracking:r}=e,o=Ee(e);if(!r&&(a||o)){let{playerInitTime:i,playerSoftwareName:l,playerSoftwareVersion:u,beaconCollectionDomain:d,debug:c,disableCookies:p}=e,f={...e.metadata,video_title:((s=e==null?void 0:e.metadata)==null?void 0:s.video_title)||void 0},m=P=>typeof P.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(P):P;z.monitor(t,{debug:c,beaconCollectionDomain:d,hlsjs:n,Hls:n?T:void 0,automaticErrorTracking:!1,errorTranslator:m,disableCookies:p,data:{...a?{env_key:a}:{},player_software_name:l,player_software:l,player_software_version:u,player_init_time:i,...f}})}},st=(e,t,n)=>{var u;let a=ke(e,t),{src:r}=e,o=()=>{t.ended||!Je(t,n)||(Le(t,n)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event("ended")))},s,i,l=()=>{var p,f;let d=(p=q(t))==null?void 0:p.start(0),c=(f=q(t))==null?void 0:f.end(0);(i!==c||s!==d)&&t.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),s=d,i=c};if(y(t,"durationchange",l),t&&a){let d=C(e);if(typeof r=="string"){let c=()=>{if(Te(t)!==g.LIVE||Number.isFinite(t.duration))return;let p=setInterval(l,1e3);t.addEventListener("teardown",()=>{clearInterval(p)},{once:!0}),y(t,"durationchange",()=>{Number.isFinite(t.duration)&&clearInterval(p)})};if(t.preload==="none"){let p=()=>{$(r,t,d).then(c),t.removeEventListener("loadedmetadata",f)},f=()=>{$(r,t,d).then(c),t.removeEventListener("play",p)};y(t,"play",p,{once:!0}),y(t,"loadedmetadata",f,{once:!0})}else $(r,t,d).then(c);e.drmToken&&at(e,t),t.setAttribute("src",r),e.startTime&&(((u=M.get(t))!=null?u:{}).startTime=e.startTime,t.addEventListener("durationchange",he,{once:!0}))}else t.removeAttribute("src");t.addEventListener("error",Ce),t.addEventListener("error",Y),t.addEventListener("emptied",()=>{t.querySelectorAll("track[data-removeondestroy]").forEach(p=>{p.remove()})},{once:!0}),y(t,"pause",o),y(t,"seeked",o),y(t,"play",()=>{t.ended||xe(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else n&&r?(n.once(T.Events.LEVEL_LOADED,(d,c)=>{Ke(c.details,t,n),l(),Te(t)===g.LIVE&&!Number.isFinite(t.duration)&&(n.on(T.Events.LEVEL_UPDATED,l),y(t,"durationchange",()=>{Number.isFinite(t.duration)&&n.off(T.Events.LEVELS_UPDATED,l)}))}),n.on(T.Events.ERROR,(d,c)=>{let p={[T.ErrorTypes.NETWORK_ERROR]:x.MEDIA_ERR_NETWORK,[T.ErrorTypes.MEDIA_ERROR]:x.MEDIA_ERR_DECODE},f=new x("",p[c.type]);f.fatal=c.fatal,f.data=c,t.dispatchEvent(new CustomEvent("error",{detail:f}))}),t.addEventListener("error",Y),y(t,"waiting",o),re(e,n),ae(t,n),n.attachMedia(t)):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 he(e){var a;let t=e.target,n=(a=M.get(t))==null?void 0:a.startTime;if(n&&Q(t.seekable,t.duration,n)){let r=t.preload==="auto";r&&(t.preload="none"),t.currentTime=n,r&&(t.preload="auto")}}async function Ce(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:n,code:a}=t.error,r=new x(n,a);if(t.src&&(a!==x.MEDIA_ERR_DECODE||a!==void 0))try{let{status:o}=await fetch(t.src);r.data={response:{code:o}}}catch{}t.dispatchEvent(new CustomEvent("error",{detail:r}))}function Y(e){var a,r;if(!(e instanceof CustomEvent)||!(e.detail instanceof x))return;let t=e.target,n=e.detail;!n||!n.fatal||(((a=M.get(t))!=null?a:{}).error=n,(r=t.mux)==null||r.emit("error",{player_error_code:n.code,player_error_message:n.message,player_error_context:n.context}))}export{w as AutoplayTypes,dt as CmcdTypeValues,h as CmcdTypes,b as ExtensionMimeTypeMap,T as Hls,ft as MaxResolution,x as MediaError,D as MimeTypeShorthandMap,Tt as MinResolution,_ as PlaybackTypes,yt as RenditionOrder,g as StreamTypes,le as addChapters,ie as addCuePoints,W as addTextTrack,pt as allMediaTypes,Xt as generatePlayerInitTime,Ye as generateUUID,pe as getActiveChapter,ce as getActiveCuePoint,nt as getAppCertificate,Ne as getChapters,He as getCuePoints,Oe as getCurrentPdt,tt as getDRMConfig,Je as getEnded,jt as getError,rt as getLicenseKey,Qt as getLiveEdgeStart,Ve as getMediaPlaylistLinesFromMultivariantPlaylistSrc,q as getSeekable,_e as getStartDate,We as getStreamInfoFromHlsjsLevelDetails,Ue as getStreamInfoFromPlaylistLines,Fe as getStreamInfoFromSrcAndType,Te as getStreamType,et as getStreamTypeConfig,Jt as getTargetLiveWindow,E as getTextTrack,Zt as initialize,N as isKeyOf,Ee as isMuxVideoSrc,je as isPseudoEnded,Le as isStuckOnLastFragment,st as loadMedia,z as mux,M as muxMediaState,Re as removeTextTrack,fe as setupChapters,ue as setupCuePoints,Ze as setupHls,ot as setupMux,at as setupNativeFairplayDRM,lt as shorthandKeys,Qe as teardown,Pe as toAppCertURL,H as toLicenseKeyURL,Gt as toMuxVideoURL,be as toPlaybackIdFromSrc,Ke as updateStreamInfoFromHlsjsLevelDetails,$ as updateStreamInfoFromSrc};
|
|
3
|
+
`))}),$e=e=>{var s,i,l;let n=(i=((s=e.find(u=>u.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?s:"").split(":")[1])==null?void 0:i.trim(),a=V(n),r=U(n),o;if(a===g.LIVE){let u=e.find(c=>c.startsWith("#EXT-X-PART-INF"));if(!!u)o=+u.split(":")[1].split("=")[1]*2;else{let c=e.find(m=>m.startsWith("#EXT-X-TARGETDURATION")),p=(l=c==null?void 0:c.split(":"))==null?void 0:l[1];o=+(p!=null?p:6)*3}}return{streamType:a,targetLiveWindow:r,liveEdgeStartOffset:o}},Ye=async(e,t)=>{if(t===v.MP4)return{streamType:g.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0};if(t===v.M3U8){let n=await Be(e);return $e(n)}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0}},Y=async(e,t,n=h({src:e}))=>{var s,i,l;let{streamType:a,targetLiveWindow:r,liveEdgeStartOffset:o}=await Ye(e,n);((s=M.get(t))!=null?s:{}).liveEdgeStartOffset=o,((i=M.get(t))!=null?i:{}).targetLiveWindow=r,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((l=M.get(t))!=null?l:{}).streamType=a,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},qe=e=>{var s;let t=e.type,n=V(t),a=U(t),r,o=!!((s=e.partList)!=null&&s.length);return n===g.LIVE&&(r=o?e.partTarget*2:e.targetduration*3),{streamType:n,targetLiveWindow:a,liveEdgeStartOffset:r,lowLatency:o}},ze=(e,t,n)=>{var i,l,u,d,c,p,f,m;let{streamType:a,targetLiveWindow:r,liveEdgeStartOffset:o,lowLatency:s}=qe(e);if(a===g.LIVE){s?(n.config.backBufferLength=(i=n.userConfig.backBufferLength)!=null?i:4,n.config.maxFragLookUpTolerance=(l=n.userConfig.maxFragLookUpTolerance)!=null?l:.001,n.config.abrBandWidthUpFactor=(u=n.userConfig.abrBandWidthUpFactor)!=null?u:n.config.abrBandWidthFactor):n.config.backBufferLength=(d=n.userConfig.backBufferLength)!=null?d:8;let P=Object.freeze({get length(){return t.seekable.length},start(x){return t.seekable.start(x)},end(x){var A;return x>this.length||x<0||Number.isFinite(t.duration)?t.seekable.end(x):(A=n.liveSyncPosition)!=null?A:t.seekable.end(x)}});((c=M.get(t))!=null?c:{}).seekable=P}((p=M.get(t))!=null?p:{}).liveEdgeStartOffset=o,((f=M.get(t))!=null?f:{}).targetLiveWindow=r,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((m=M.get(t))!=null?m:{}).streamType=a,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},me,ge,Xe=(ge=(me=globalThis==null?void 0:globalThis.navigator)==null?void 0:me.userAgent)!=null?ge:"",Me,be,ve,Ge=(ve=(be=(Me=globalThis==null?void 0:globalThis.navigator)==null?void 0:Me.userAgentData)==null?void 0:be.platform)!=null?ve:"",je=Xe.toLowerCase().includes("android")||["x11","android"].some(e=>Ge.toLowerCase().includes(e)),M=new WeakMap,k="mux.com",Le,xe,ke=(xe=(Le=y).isSupported)==null?void 0:xe.call(Le),Je=je,en=()=>X.utils.now(),Qe=X.utils.generateUUID,tn=({playbackId:e,customDomain:t=k,maxResolution:n,minResolution:a,renditionOrder:r,programStartTime:o,programEndTime:s,tokens:{playback:i}={},extraSourceParams:l={}}={})=>{if(!e)return;let[u,d=""]=ee(e),c=new URL(`https://stream.${t}/${u}.m3u8${d}`);return i||c.searchParams.has("token")?(c.searchParams.forEach((p,f)=>{f!="token"&&c.searchParams.delete(f)}),i&&c.searchParams.set("token",i)):(n&&c.searchParams.set("max_resolution",n),a&&(c.searchParams.set("min_resolution",a),n&&+n.slice(0,-1)<+a.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",a,"maxResolution",n)),r&&c.searchParams.set("rendition_order",r),o&&c.searchParams.set("program_start_time",`${o}`),s&&c.searchParams.set("program_end_time",`${s}`),Object.entries(l).forEach(([p,f])=>{f!=null&&c.searchParams.set(p,f)})),c.toString()},Ze=e=>{if(!e)return;let[t]=e.split("?");return t||void 0},Pe=e=>{if(!e||!e.startsWith("https://stream."))return;let[t]=new URL(e).pathname.slice(1).split(".m3u8");return t||void 0},et=e=>{var t,n,a;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:De(e)&&(a=(n=Ze(e.playbackId))!=null?n:Pe(e.src))!=null?a:e.src},nn=e=>{var t;return(t=M.get(e))==null?void 0:t.error},Te=e=>{var t,n;return(n=(t=M.get(e))==null?void 0:t.streamType)!=null?n:g.UNKNOWN},rn=e=>{var t,n;return(n=(t=M.get(e))==null?void 0:t.targetLiveWindow)!=null?n:Number.NaN},q=e=>{var t,n;return(n=(t=M.get(e))==null?void 0:t.seekable)!=null?n:e.seekable},an=e=>{var a;let t=(a=M.get(e))==null?void 0:a.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let n=q(e);return n.length?n.end(n.length-1)-t:Number.NaN},G=.034,tt=(e,t,n=G)=>Math.abs(e-t)<=n,Ee=(e,t,n=G)=>e>t||tt(e,t,n),nt=(e,t=G)=>e.paused&&Ee(e.currentTime,e.duration,t),Ce=(e,t)=>{var u,d,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let n=t.currentLevel>=0?(d=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:d.details:(c=t.levels.find(p=>!!p.details))==null?void 0:c.details;if(!n||n.live)return;let{fragments:a}=n;if(!(a!=null&&a.length))return;if(e.currentTime<e.duration-(n.targetduration+.5))return!1;let r=a[a.length-1];if(e.currentTime<=r.start)return!1;let o=r.start+r.duration/2,s=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return o>s&&o<i},rt=(e,t)=>e.ended||e.loop?e.ended:t&&Ce(e,t)?!0:nt(e),on=(e,t,n)=>{at(t,n);let{metadata:a={}}=e,{view_session_id:r=Qe()}=a,o=et(e);a.view_session_id=r,a.video_id=o,e.metadata=a;let s=d=>{var c;(c=t.mux)==null||c.emit("hb",{view_drm_type:d})};e.drmTypeCb=s,M.set(t,{});let i=ot(e,t),l=re(e,t,i);lt(e,t,i),pt(e,t,i),de(t),ye(t);let u=ne(e,t,i);return{engine:i,setAutoplay:u,setPreload:l}},at=(e,t)=>{let n=t==null?void 0:t.engine;n&&(n.detachMedia(),n.destroy()),e!=null&&e.mux&&!e.mux.deleted&&(e.mux.destroy(),delete e.mux),e&&(e.removeAttribute("src"),e.load(),e.removeEventListener("error",Se),e.removeEventListener("error",z),e.removeEventListener("durationchange",we),M.delete(e),e.dispatchEvent(new Event("teardown")))};function he(e,t){var u;let n=h(e);if(!(n===v.M3U8))return!0;let r=!n||((u=t.canPlayType(n))!=null?u:!0),{preferPlayback:o}=e,s=o===O.MSE,i=o===O.NATIVE;return r&&(i||!(ke&&(s||Je)))}var ot=(e,t)=>{let{debug:n,streamType:a,startTime:r=-1,metadata:o,preferCmcd:s,_hlsConfig:i={}}=e,u=h(e)===v.M3U8,d=he(e,t);if(u&&!d&&ke){let c={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelToPlayerSize:!0,capLevelOnFPSDrop:!0},p=st(a),f=it(e),m=s!==C.NONE?{useHeaders:s===C.HEADER,sessionId:o==null?void 0:o.view_session_id,contentId:o==null?void 0:o.video_id}:void 0;return new y({debug:n,startPosition:r,cmcd:m,xhrSetup:(x,A)=>{var j,J;if(s&&s!==C.QUERY)return;let D=new URL(A);if(!D.searchParams.has("CMCD"))return;let Ie=((J=(j=D.searchParams.get("CMCD"))==null?void 0:j.split(","))!=null?J:[]).filter(Q=>Q.startsWith("sid")||Q.startsWith("cid")).join(",");D.searchParams.set("CMCD",Ie),x.open("GET",D)},...c,...p,...f,...i})}},st=e=>e===g.LIVE?{backBufferLength:8}:{},it=e=>{let{drmToken:t,src:n,playbackId:a=Pe(n),drmTypeCb:r}=e;return!t||!a?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:H(e,"fairplay"),serverCertificateUrl:Ae(e,"fairplay")},"com.widevine.alpha":{licenseUrl:H(e,"widevine")},"com.microsoft.playready":{licenseUrl:H(e,"playready")}},requestMediaKeySystemAccessFunc:(o,s)=>(o==="com.widevine.alpha"&&(s=[...s.map(i=>{var u;let l=(u=i.videoCapabilities)==null?void 0:u.map(d=>({...d,robustness:"HW_SECURE_ALL"}));return{...i,videoCapabilities:l}}),...s]),navigator.requestMediaKeySystemAccess(o,s).then(i=>{let l=Ke(o);return r==null||r(l),i}))}},ct=async e=>await(await fetch(e)).arrayBuffer(),ut=async(e,t)=>{let a=await(await fetch(t,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:e})).arrayBuffer();return new Uint8Array(a)},dt=(e,t)=>{T(t,"encrypted",async a=>{try{let r=a.initDataType;if(r!=="skd"){console.error(`Received unexpected initialization data type "${r}"`);return}if(!t.mediaKeys){let d=await(await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[r],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}]).then(p=>{var f;return(f=e.drmTypeCb)==null||f.call(e,N.FAIRPLAY),p})).createMediaKeys(),c=await ct(Ae(e,"fairplay"));await d.setServerCertificate(c),await t.setMediaKeys(d)}let o=a.initData;if(o==null){console.error(`Could not start encrypted playback due to missing initData in ${a.type} event`);return}let s=t.mediaKeys.createSession();s.generateRequest(r,o);let i=await new Promise(u=>{s.addEventListener("message",d=>{u(d.message)},{once:!0})}),l=await ut(i,H(e,"fairplay"));return await s.update(l),s}catch(r){console.error(`Could not start encrypted playback due to exception "${r}"`)}})},H=({playbackId:e,drmToken:t,customDomain:n=k},a)=>`https://license.${n.toLocaleLowerCase().endsWith(k)?n:k}/license/${a}/${e}?token=${t}`,Ae=({playbackId:e,drmToken:t,customDomain:n=k},a)=>`https://license.${n.toLocaleLowerCase().endsWith(k)?n:k}/appcert/${a}/${e}?token=${t}`,De=({playbackId:e,src:t,customDomain:n})=>{if(e)return!0;if(typeof t!="string")return!1;let a=window==null?void 0:window.location.href,r=new URL(t,a).hostname.toLocaleLowerCase();return r.includes(k)||!!n&&r.includes(n.toLocaleLowerCase())},lt=(e,t,n)=>{var s;let{envKey:a,disableTracking:r}=e,o=De(e);if(!r&&(a||o)){let{playerInitTime:i,playerSoftwareName:l,playerSoftwareVersion:u,beaconCollectionDomain:d,debug:c,disableCookies:p}=e,f={...e.metadata,video_title:((s=e==null?void 0:e.metadata)==null?void 0:s.video_title)||void 0},m=P=>typeof P.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(P):P;X.monitor(t,{debug:c,beaconCollectionDomain:d,hlsjs:n,Hls:n?y:void 0,automaticErrorTracking:!1,errorTranslator:m,disableCookies:p,data:{...a?{env_key:a}:{},player_software_name:l,player_software:l,player_software_version:u,player_init_time:i,...f}})}},pt=(e,t,n)=>{var u;let a=he(e,t),{src:r}=e,o=()=>{t.ended||!rt(t,n)||(Ce(t,n)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event("ended")))},s,i,l=()=>{var p,f;let d=(p=q(t))==null?void 0:p.start(0),c=(f=q(t))==null?void 0:f.end(0);(i!==c||s!==d)&&t.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),s=d,i=c};if(T(t,"durationchange",l),t&&a){let d=h(e);if(typeof r=="string"){let c=()=>{if(Te(t)!==g.LIVE||Number.isFinite(t.duration))return;let p=setInterval(l,1e3);t.addEventListener("teardown",()=>{clearInterval(p)},{once:!0}),T(t,"durationchange",()=>{Number.isFinite(t.duration)&&clearInterval(p)})};if(t.preload==="none"){let p=()=>{Y(r,t,d).then(c),t.removeEventListener("loadedmetadata",f)},f=()=>{Y(r,t,d).then(c),t.removeEventListener("play",p)};T(t,"play",p,{once:!0}),T(t,"loadedmetadata",f,{once:!0})}else Y(r,t,d).then(c);e.drmToken&&dt(e,t),t.setAttribute("src",r),e.startTime&&(((u=M.get(t))!=null?u:{}).startTime=e.startTime,t.addEventListener("durationchange",we,{once:!0}))}else t.removeAttribute("src");t.addEventListener("error",Se),t.addEventListener("error",z),t.addEventListener("emptied",()=>{t.querySelectorAll("track[data-removeondestroy]").forEach(p=>{p.remove()})},{once:!0}),T(t,"pause",o),T(t,"seeked",o),T(t,"play",()=>{t.ended||Ee(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else n&&r?(n.once(y.Events.LEVEL_LOADED,(d,c)=>{ze(c.details,t,n),l(),Te(t)===g.LIVE&&!Number.isFinite(t.duration)&&(n.on(y.Events.LEVEL_UPDATED,l),T(t,"durationchange",()=>{Number.isFinite(t.duration)&&n.off(y.Events.LEVELS_UPDATED,l)}))}),n.on(y.Events.ERROR,(d,c)=>{let p={[y.ErrorTypes.NETWORK_ERROR]:L.MEDIA_ERR_NETWORK,[y.ErrorTypes.MEDIA_ERROR]:L.MEDIA_ERR_DECODE},f=new L("",p[c.type]);f.fatal=c.fatal,f.data=c,t.dispatchEvent(new CustomEvent("error",{detail:f}))}),t.addEventListener("error",z),T(t,"waiting",o),ae(e,n),oe(t,n),n.attachMedia(t)):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 we(e){var a;let t=e.target,n=(a=M.get(t))==null?void 0:a.startTime;if(n&&Z(t.seekable,t.duration,n)){let r=t.preload==="auto";r&&(t.preload="none"),t.currentTime=n,r&&(t.preload="auto")}}async function Se(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:n,code:a}=t.error,r=new L(n,a);if(t.src&&(a!==L.MEDIA_ERR_DECODE||a!==void 0))try{let{status:o}=await fetch(t.src);r.data={response:{code:o}}}catch{}t.dispatchEvent(new CustomEvent("error",{detail:r}))}function z(e){var a,r;if(!(e instanceof CustomEvent)||!(e.detail instanceof L))return;let t=e.target,n=e.detail;!n||!n.fatal||(((a=M.get(t))!=null?a:{}).error=n,(r=t.mux)==null||r.emit("error",{player_error_code:n.code,player_error_message:n.message,player_error_context:n.context}))}export{w as AutoplayTypes,mt as CmcdTypeValues,C as CmcdTypes,v as ExtensionMimeTypeMap,y as Hls,bt as MaxResolution,L as MediaError,S as MimeTypeShorthandMap,vt as MinResolution,O as PlaybackTypes,Lt as RenditionOrder,g as StreamTypes,pe as addChapters,ce as addCuePoints,K as addTextTrack,Mt as allMediaTypes,en as generatePlayerInitTime,Qe as generateUUID,fe as getActiveChapter,ue as getActiveCuePoint,ct as getAppCertificate,Ue as getChapters,Ve as getCuePoints,We as getCurrentPdt,it as getDRMConfig,rt as getEnded,nn as getError,ut as getLicenseKey,an as getLiveEdgeStart,Be as getMediaPlaylistLinesFromMultivariantPlaylistSrc,q as getSeekable,Fe as getStartDate,qe as getStreamInfoFromHlsjsLevelDetails,$e as getStreamInfoFromPlaylistLines,Ye as getStreamInfoFromSrcAndType,Te as getStreamType,st as getStreamTypeConfig,rn as getTargetLiveWindow,E as getTextTrack,on as initialize,_ as isKeyOf,De as isMuxVideoSrc,nt as isPseudoEnded,Ce as isStuckOnLastFragment,pt as loadMedia,X as mux,M as muxMediaState,Oe as removeTextTrack,ye as setupChapters,de as setupCuePoints,ot as setupHls,lt as setupMux,dt as setupNativeFairplayDRM,gt as shorthandKeys,at as teardown,Ae as toAppCertURL,Ke as toDRMTypeFromKeySystem,H as toLicenseKeyURL,tn as toMuxVideoURL,Pe as toPlaybackIdFromSrc,ze as updateStreamInfoFromHlsjsLevelDetails,Y as updateStreamInfoFromSrc};
|
|
4
4
|
//# sourceMappingURL=index.mjs.map
|