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