New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@mux/playback-core

Package Overview
Dependencies
Maintainers
1
Versions
592
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mux/playback-core - npm Package Compare versions

Comparing version 0.9.1-canary.6-485423a to 0.9.1-canary.60-186b915

dist/cjs.json

26

CHANGELOG.md

@@ -6,2 +6,28 @@ # Change Log

# [0.11.0](https://github.com/muxinc/elements/compare/@mux/playback-core@0.10.0...@mux/playback-core@0.11.0) (2022-09-16)
### Bug Fixes
- **playback-core:** Make sure event handlers and other references are cleaned up to avoid memory leaks. ([def9853](https://github.com/muxinc/elements/commit/def9853483aa45fdc1f958dfb9ff9b690b30f8eb))
- **playback-core:** Set both player_software (old key) and player_software_name (new key) in mux data options to sidestep inconsistencies in Mux Data views. ([fbeb5a9](https://github.com/muxinc/elements/commit/fbeb5a9c817fba550ad0662b92a5578db7421fe6))
- **playback-core:** Use custom teardown event type instead of emptied due to pre-emptive emptied. ([ce8fba8](https://github.com/muxinc/elements/commit/ce8fba810210578fb74615502cf5205222586584))
- startTime on iOS when preload=auto ([#368](https://github.com/muxinc/elements/issues/368)) ([0f511d4](https://github.com/muxinc/elements/commit/0f511d43474454b683dd7e041bdc3a99937a936e))
- update to hls.js 1.2.3 ([#386](https://github.com/muxinc/elements/issues/386)) ([a0acfd5](https://github.com/muxinc/elements/commit/a0acfd5ed1fa04390f616ea194fb3972ffe81716))
- update to hls.js@1.2.1 ([08ed065](https://github.com/muxinc/elements/commit/08ed0652961d140d0db6907f1855847917ee1cd2))
- update to hls.js@1.2.2 ([b10ee22](https://github.com/muxinc/elements/commit/b10ee221bb9f00e53b6ab25c2e9b57de8e2ae791))
### Features
- always prefer MSE on android ([ad43416](https://github.com/muxinc/elements/commit/ad43416077c27b15a8ccda5279d08babdde6a90d)), closes [#325](https://github.com/muxinc/elements/issues/325)
# [0.10.0](https://github.com/muxinc/elements/compare/@mux/playback-core@0.9.0...@mux/playback-core@0.10.0) (2022-08-31)
### Bug Fixes
- polyfills mutating global ([#355](https://github.com/muxinc/elements/issues/355)) ([71d18a4](https://github.com/muxinc/elements/commit/71d18a427f0171bb214a0df7c1425d3d1bddc47a))
### Features
- **playback-core:** Always prefer mse on android. ([05855a4](https://github.com/muxinc/elements/commit/05855a43cb9f87602203fab896e6e6876d7a1b12))
# [0.9.0](https://github.com/muxinc/elements/compare/@mux/playback-core@0.8.0...@mux/playback-core@0.9.0) (2022-07-21)

@@ -8,0 +34,0 @@

2

dist/index.cjs.js

@@ -1,2 +0,2 @@

var ie=Object.create;var h=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty;var K=e=>h(e,"__esModule",{value:!0});var pe=(e,t)=>{K(e);for(var r in t)h(e,r,{get:t[r],enumerable:!0})},ye=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ue(t))!de.call(e,n)&&n!=="default"&&h(e,n,{get:()=>t[n],enumerable:!(r=ce(t,n))||r.enumerable});return e},P=e=>ye(K(h(e!=null?ie(le(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var B=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var F=(e,t,r)=>(B(e,t,"read from private field"),r?r.call(e):t.get(e)),q=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},Y=(e,t,r,n)=>(B(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);pe(exports,{ExtensionMimeTypeMap:()=>g,Hls:()=>T.default,MediaError:()=>u,MimeTypeShorthandMap:()=>R,StreamTypes:()=>L,addTextTrack:()=>C,allMediaTypes:()=>Me,generatePlayerInitTime:()=>Te,getError:()=>Ee,getStreamTypeConfig:()=>ee,getType:()=>N,inferMimeTypeFromURL:()=>j,initialize:()=>xe,isMuxVideoSrc:()=>ne,loadMedia:()=>ae,mux:()=>D.default,removeTextTrack:()=>J,setupAutoplay:()=>X,setupHls:()=>re,setupMux:()=>oe,shorthandKeys:()=>me,teardown:()=>te,toMuxVideoURL:()=>ge,toPlaybackIdParts:()=>Z});if(typeof DocumentFragment=="undefined"){class e{}globalThis.DocumentFragment=e}globalThis.customElements||(globalThis.customElements={get(e){},define(e,t,r){},upgrade(e){},whenDefined(e){return Promise.resolve(globalThis.HTMLElement)}});var k;if(!globalThis.CustomEvent){class e{constructor(r,n={}){q(this,k,void 0);Y(this,k,n==null?void 0:n.detail)}get detail(){F(this,k)}initCustomEvent(r,n,o,a){}}k=new WeakMap,globalThis.CustomEvent=e}if(!globalThis.EventTarget){class e{addEventListener(){}removeEventListener(){}dispatchEvent(r){return!0}}globalThis.EventTarget=e}if(!globalThis.HTMLElement){class e extends EventTarget{}globalThis.HTMLElement=e}if(!globalThis.HTMLVideoElement){class e extends EventTarget{}globalThis.HTMLVideoElement=e}var $,z;if(!(($=globalThis.document)==null?void 0:$.createElement)){let e=(z=globalThis.document)!=null?z:{};e.createElement=function(r,n){return new HTMLElement},globalThis.document=e}var D=P(require("mux-embed")),T=P(require("hls.js"));var w=P(require("hls.js")),I={ANY:"any",MUTED:"muted"},fe=Object.values(I),W=e=>typeof e=="boolean"||typeof e=="string"&&fe.includes(e),X=(e,t,r)=>{let n=!1,o=!1,a=W(t)?t:!!t,c=()=>{e.addEventListener("playing",()=>{n=!0},{once:!0})};if(c(),e.addEventListener("loadstart",()=>{n=!1,c(),O(e,a)},{once:!0}),e.addEventListener("loadedmetadata",()=>{r||(o=!Number.isFinite(e.duration)),O(e,a)},{once:!0}),r&&r.once(w.default.Events.LEVEL_LOADED,(i,l)=>{var d;o=(d=l.details.live)!=null?d:!1}),!a){let i=()=>{!o||((r==null?void 0:r.liveSyncPosition)?e.currentTime=r.liveSyncPosition:Number.isFinite(e.seekable.end(0))&&(e.currentTime=e.seekable.end(0)))};e.addEventListener("play",()=>{r&&e.preload==="metadata"?r.once(w.default.Events.LEVEL_UPDATED,i):r&&i()},{once:!0})}return i=>{n||(a=W(i)?i:!!i,O(e,a))}},O=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case I.ANY:e.play().catch(o=>{e.muted=!0,e.play().catch(n)});break;case I.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var E=class extends Error{constructor(t,r=E.MEDIA_ERR_CUSTOM,n){super(t);var o;this.name="MediaError",this.code=r,this.fatal=n!=null?n:r>=E.MEDIA_ERR_NETWORK&&r<=E.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(o=E.defaultMessages[this.code])!=null?o:"")}},u=E;u.MEDIA_ERR_ABORTED=1,u.MEDIA_ERR_NETWORK=2,u.MEDIA_ERR_DECODE=3,u.MEDIA_ERR_SRC_NOT_SUPPORTED=4,u.MEDIA_ERR_ENCRYPTED=5,u.MEDIA_ERR_CUSTOM=100,u.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=P(require("hls.js"));function G(e,t){t.on(x.default.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:a})=>{a.forEach(c=>{var l;let s=(l=c.subtitleTrack)!=null?l:c.closedCaptions,i=t.subtitleTracks.findIndex(({lang:d,name:y,type:f})=>d==(s==null?void 0:s.lang)&&y===c.label&&f.toLowerCase()===c.kind);C(e,c.kind,c.label,s==null?void 0:s.lang,`${c.kind}${i}`)})});let r=()=>{var c;if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(s=>s.id&&s.mode==="showing"&&["subtitles","captions"].includes(s.kind)),a=`${(c=t.subtitleTracks[t.subtitleTrack])==null?void 0:c.type.toLowerCase()}${t.subtitleTrack}`;if(o&&(t.subtitleTrack<0||(o==null?void 0:o.id)!==a)){let s=t.subtitleTracks.findIndex(({lang:i,name:l,type:d})=>i==o.language&&l===o.label&&d.toLowerCase()===o.kind);t.subtitleTrack=s}o&&(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(s=>{o.addCue(s)})};e.textTracks.addEventListener("change",r),t.on(x.default.Events.CUES_PARSED,(o,{track:a,type:c,cues:s})=>{let i=e.textTracks.getTrackById(a);if(!i)return;let l=i.mode==="disabled";l&&(i.mode="hidden"),s.forEach(d=>{var y;((y=i.cues)==null?void 0:y.getCueById(d.id))||i.addCue(d)}),l&&(i.mode="disabled")}),t.on(x.default.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",r),e.querySelectorAll("track[data-removeondestroy]").forEach(a=>{a.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var a,c;if(!["subtitles","caption"].includes(o.kind)&&o.label==="thumbnails"){if(!((a=o.cues)==null?void 0:a.length)){let s=e.querySelector('track[label="thumbnails"]'),i=(c=s==null?void 0:s.getAttribute("src"))!=null?c:"";s==null||s.removeAttribute("src"),setTimeout(()=>{s==null||s.setAttribute("src",i)},0)}o.mode!=="hidden"&&(o.mode="hidden")}})};t.once(x.default.Events.MANIFEST_LOADED,n),t.once(x.default.Events.MEDIA_ATTACHED,n)}function C(e,t,r,n,o){let a=document.createElement("track");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),a.track.mode="disabled",a.setAttribute("data-removeondestroy",""),e.append(a),a.track}function J(e,t){let r=Array.prototype.find.call(e.querySelectorAll("track"),n=>n.track===t);r==null||r.remove()}var V=(e,t)=>e in t;var Q="mux.com",Te=()=>D.default.utils.now(),L={VOD:"on-demand",ON_DEMAND:"on-demand",LIVE:"live",LL_LIVE:"ll-live",DVR:"live:dvr",LL_DVR:"ll-live:dvr"},g={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},R={HLS:g.M3U8},me=Object.keys(R),Me=[...Object.values(g),"hls","HLS"],Z=e=>{let t=e.indexOf("?");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},ge=(e,{domain:t=Q}={})=>{if(!e)return;let[r,n=""]=Z(e);return`https://stream.${t}/${r}.m3u8${n}`},j=e=>{let t="";try{t=new URL(e).pathname}catch{console.error("invalid url")}let r=t.lastIndexOf(".");if(r<0)return"";let o=t.slice(r+1).toUpperCase();return V(o,g)?g[o]:""},N=e=>{let t=e.type;if(t){let n=t.toUpperCase();return V(n,R)?R[n]:t}let{src:r}=e;return r?j(r):""},ee=e=>{if([L.LIVE,L.LL_LIVE].includes(e)){let t={backBufferLength:12};return e===L.LL_LIVE?{...t,maxFragLookUpTolerance:.001}:t}return{}},H=new WeakMap,Ee=e=>{var t;return(t=H.get(e))==null?void 0:t.error},te=(e,t)=>{t&&(t.detachMedia(),t.destroy()),(e==null?void 0:e.mux)&&!e.mux.deleted&&(e.mux.destroy(),e.mux),e&&(e.removeEventListener("error",se),e.removeEventListener("error",U),H.delete(e))},re=(e,t)=>{var b,v,A;let{debug:r,preferMse:n,streamType:o,startTime:a=-1}=e,c=N(e),s=c===g.M3U8,i=!c||((b=t==null?void 0:t.canPlayType(c))!=null?b:!0),l=T.default.isSupported(),f=((A=(v=window==null?void 0:window.navigator)==null?void 0:v.userAgent)!=null?A:"").toLowerCase().indexOf("android")!==-1&&o===L.LL_LIVE;if(s&&!(!s||i&&!((n||f)&&l))&&l){let M={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0},p=ee(o);return new T.default({debug:r,startPosition:a,...M,...p})}},ne=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!="string")return!1;let n=new URL(t).hostname.toLocaleLowerCase();return n.includes(Q)||!!r&&n.includes(r.toLocaleLowerCase())},oe=(e,t,r)=>{let{envKey:n}=e,o=ne(e);if((n||o)&&t){let{playerInitTime:a,playerSoftwareName:c,playerSoftwareVersion:s,beaconCollectionDomain:i,metadata:l,debug:d}=e,y=f=>typeof f.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(f):f;D.default.monitor(t,{debug:d,beaconCollectionDomain:i,hlsjs:r,Hls:r?T.default:void 0,automaticErrorTracking:!1,errorTranslator:y,data:{...n?{env_key:n}:{},player_software_name:c,player_software_version:s,player_init_time:a,...l}})}},ae=(e,t,r)=>{var b,v,A;if(!t){console.warn("attempting to load media before mediaEl exists");return}let{preferMse:n,streamType:o}=e,a=N(e),c=a===g.M3U8,s=!a||((b=t==null?void 0:t.canPlayType(a))!=null?b:!0),i=T.default.isSupported(),y=((A=(v=window==null?void 0:window.navigator)==null?void 0:v.userAgent)!=null?A:"").toLowerCase().indexOf("android")!==-1&&o===L.LL_LIVE,f=!c||s&&!((n||y)&&i),{src:m}=e;if(t&&s&&f){if(typeof m=="string"){let{startTime:M}=e;if(t.setAttribute("src",m),M){let p=({target:_})=>{_.currentTime=M,_.removeEventListener("loadedmetadata",p)};t.addEventListener("loadedmetadata",p)}}else t.removeAttribute("src");t.addEventListener("error",se),t.addEventListener("error",U)}else if(r&&m){switch(r.on(T.default.Events.ERROR,(M,p)=>{let _={[T.default.ErrorTypes.NETWORK_ERROR]:u.MEDIA_ERR_NETWORK,[T.default.ErrorTypes.MEDIA_ERROR]:u.MEDIA_ERR_DECODE},S=new u("",_[p.type]);S.fatal=p.fatal,S.data=p,t.dispatchEvent(new CustomEvent("error",{detail:S}))}),t.addEventListener("error",U),G(t,r),t.preload){case"none":t.addEventListener("play",()=>r.loadSource(m),{once:!0});break;case"metadata":let M=r.config.maxBufferLength,p=r.config.maxBufferSize;r.config.maxBufferLength=1,r.config.maxBufferSize=1,t.addEventListener("play",()=>{r.config.maxBufferLength=M,r.config.maxBufferSize=p},{once:!0}),r.loadSource(m);break;default:r.loadSource(m)}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.")};async function se(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t==null?void 0:t.error))return;let{message:r,code:n}=t.error,o=new u(r,n);if(t.src&&(n!==u.MEDIA_ERR_DECODE||n!==void 0)){let{status:a}=await fetch(t.src);o.data={response:{code:a}}}t.dispatchEvent(new CustomEvent("error",{detail:o}))}function U(e){var o;if(!(e instanceof CustomEvent)||!(e.detail instanceof u))return;let t=e.target,r=e.detail;if(!r||!r.fatal)return;let n=H.get(t);n&&(n.error=r),(o=t.mux)==null||o.emit("error",{player_error_code:r.code,player_error_message:r.message})}var xe=(e,t,r)=>{te(t,r),H.set(t,{});let n=re(e,t);return oe(e,t,n),ae(e,t,n),n};
"use strict";var oe=Object.create;var E=Object.defineProperty;var ae=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var ie=Object.getPrototypeOf,ce=Object.prototype.hasOwnProperty;var ue=(e,t)=>{for(var r in t)E(e,r,{get:t[r],enumerable:!0})},O=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of se(t))!ce.call(e,o)&&o!==r&&E(e,o,{get:()=>t[o],enumerable:!(n=ae(t,o))||n.enumerable});return e};var L=(e,t,r)=>(r=e!=null?oe(ie(e)):{},O(t||!e||!e.__esModule?E(r,"default",{value:e,enumerable:!0}):r,e)),pe=e=>O(E({},"__esModule",{value:!0}),e);var ve={};ue(ve,{ExtensionMimeTypeMap:()=>M,Hls:()=>T.default,MediaError:()=>d,MimeTypeShorthandMap:()=>k,StreamTypes:()=>b,addTextTrack:()=>S,allMediaTypes:()=>Me,generatePlayerInitTime:()=>fe,getError:()=>xe,getStreamTypeConfig:()=>G,getType:()=>w,inferMimeTypeFromURL:()=>X,initialize:()=>ge,isMuxVideoSrc:()=>Z,loadMedia:()=>ee,mux:()=>A.default,removeTextTrack:()=>K,setupAutoplay:()=>N,setupHls:()=>Q,setupMux:()=>j,shorthandKeys:()=>Te,teardown:()=>J,toMuxVideoURL:()=>me,toPlaybackIdParts:()=>z});module.exports=pe(ve);var A=L(require("mux-embed")),T=L(require("hls.js"));var D=L(require("hls.js"));var f=(e,t,r,n)=>{e.addEventListener(t,r,n),e.addEventListener("teardown",()=>{e.removeEventListener(t,r)},{once:!0})},P=(e,t)=>e in t;function C(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 h={ANY:"any",MUTED:"muted"},de=Object.values(h),V=e=>typeof e=="boolean"||typeof e=="string"&&de.includes(e),N=(e,t,r)=>{let n=!1,o=!1,a=V(t)?t:!!t,i=()=>{n||f(e,"playing",()=>{n=!0},{once:!0})};if(i(),f(e,"loadstart",()=>{n=!1,i(),R(e,a)},{once:!0}),f(e,"loadstart",()=>{r||(o=!Number.isFinite(e.duration)),R(e,a)},{once:!0}),r&&r.once(D.default.Events.LEVEL_LOADED,(c,u)=>{var p;o=(p=u.details.live)!=null?p:!1}),!a){let c=()=>{!o||(r!=null&&r.liveSyncPosition?e.currentTime=r.liveSyncPosition:Number.isFinite(e.seekable.end(0))&&(e.currentTime=e.seekable.end(0)))};r&&f(e,"play",()=>{e.preload==="metadata"?r.once(D.default.Events.LEVEL_UPDATED,c):c()},{once:!0})}return c=>{n||(a=V(c)?c:!!c,R(e,a))}},R=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case h.ANY:e.play().catch(o=>{e.muted=!0,e.play().catch(n)});break;case h.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var x=class extends Error{constructor(r,n=x.MEDIA_ERR_CUSTOM,o){var a;super(r);this.name="MediaError",this.code=n,this.fatal=o!=null?o:n>=x.MEDIA_ERR_NETWORK&&n<=x.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(a=x.defaultMessages[this.code])!=null?a:"")}},d=x;d.MEDIA_ERR_ABORTED=1,d.MEDIA_ERR_NETWORK=2,d.MEDIA_ERR_DECODE=3,d.MEDIA_ERR_SRC_NOT_SUPPORTED=4,d.MEDIA_ERR_ENCRYPTED=5,d.MEDIA_ERR_CUSTOM=100,d.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 g=L(require("hls.js"));function U(e,t){t.on(g.default.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:a})=>{a.forEach(i=>{var u;let s=(u=i.subtitleTrack)!=null?u:i.closedCaptions,c=t.subtitleTracks.findIndex(({lang:p,name:l,type:y})=>p==(s==null?void 0:s.lang)&&l===i.label&&y.toLowerCase()===i.kind);S(e,i.kind,i.label,s==null?void 0:s.lang,`${i.kind}${c}`)})});let r=()=>{var i;if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(s=>s.id&&s.mode==="showing"&&["subtitles","captions"].includes(s.kind)),a=`${(i=t.subtitleTracks[t.subtitleTrack])==null?void 0:i.type.toLowerCase()}${t.subtitleTrack}`;if(o&&(t.subtitleTrack<0||(o==null?void 0:o.id)!==a)){let s=t.subtitleTracks.findIndex(({lang:c,name:u,type:p})=>c==o.language&&u===o.label&&p.toLowerCase()===o.kind);t.subtitleTrack=s}o&&(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(s=>{o.addCue(s)})};e.textTracks.addEventListener("change",r),t.on(g.default.Events.CUES_PARSED,(o,{track:a,type:i,cues:s})=>{let c=e.textTracks.getTrackById(a);if(!c)return;let u=c.mode==="disabled";u&&(c.mode="hidden"),s.forEach(p=>{var l;(l=c.cues)!=null&&l.getCueById(p.id)||c.addCue(p)}),u&&(c.mode="disabled")}),t.once(g.default.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",r),e.querySelectorAll("track[data-removeondestroy]").forEach(a=>{a.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var a,i;if(!["subtitles","caption"].includes(o.kind)&&o.label==="thumbnails"){if(!((a=o.cues)!=null&&a.length)){let s=e.querySelector('track[label="thumbnails"]'),c=(i=s==null?void 0:s.getAttribute("src"))!=null?i:"";s==null||s.removeAttribute("src"),setTimeout(()=>{s==null||s.setAttribute("src",c)},0)}o.mode!=="hidden"&&(o.mode="hidden")}})};t.once(g.default.Events.MANIFEST_LOADED,n),t.once(g.default.Events.MEDIA_ATTACHED,n)}function S(e,t,r,n,o){let a=document.createElement("track");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),a.track.mode="disabled",a.setAttribute("data-removeondestroy",""),e.append(a),a.track}function K(e,t){let r=Array.prototype.find.call(e.querySelectorAll("track"),n=>n.track===t);r==null||r.remove()}var B,W,le=(W=(B=globalThis==null?void 0:globalThis.navigator)==null?void 0:B.userAgent)!=null?W:"",ye=le.toLowerCase().indexOf("android")!==-1,Y="mux.com",F,q,H=(q=(F=T.default).isSupported)==null?void 0:q.call(F),$=ye,fe=()=>A.default.utils.now(),b={VOD:"on-demand",ON_DEMAND:"on-demand",LIVE:"live",LL_LIVE:"ll-live",DVR:"live:dvr",LL_DVR:"ll-live:dvr"},M={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},k={HLS:M.M3U8},Te=Object.keys(k),Me=[...Object.values(M),"hls","HLS"],z=e=>{let t=e.indexOf("?");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},me=(e,{domain:t=Y}={})=>{if(!e)return;let[r,n=""]=z(e);return`https://stream.${t}/${r}.m3u8${n}`},X=e=>{let t="";try{t=new URL(e).pathname}catch{console.error("invalid url")}let r=t.lastIndexOf(".");if(r<0)return"";let o=t.slice(r+1).toUpperCase();return P(o,M)?M[o]:""},w=e=>{let t=e.type;if(t){let n=t.toUpperCase();return P(n,k)?k[n]:t}let{src:r}=e;return r?X(r):""},G=e=>{if([b.LIVE,b.LL_LIVE].includes(e)){let t={backBufferLength:12};return e===b.LL_LIVE?{...t,maxFragLookUpTolerance:.001}:t}return{}},v=new WeakMap,xe=e=>{var t;return(t=v.get(e))==null?void 0:t.error},J=(e,t)=>{t&&(t.detachMedia(),t.destroy()),(e==null?void 0:e.mux)&&!e.mux.deleted&&(e.mux.destroy(),delete e.mux),e&&(e.removeAttribute("src"),e.load(),e.removeEventListener("error",re),e.removeEventListener("error",I),e.removeEventListener("durationchange",te),v.delete(e),e.dispatchEvent(new Event("teardown")))},Q=(e,t)=>{var p;let{debug:r,preferMse:n,streamType:o,startTime:a=-1}=e,i=w(e),s=i===M.M3U8,c=!i||((p=t==null?void 0:t.canPlayType(i))!=null?p:!0);if(s&&!(!s||c&&!((n||$)&&H))&&H){let l={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0},y=G(o);return new T.default({debug:r,startPosition:a,...l,...y})}},Z=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!="string")return!1;let n=new URL(t).hostname.toLocaleLowerCase();return n.includes(Y)||!!r&&n.includes(r.toLocaleLowerCase())},j=(e,t,r)=>{let{envKey:n}=e,o=Z(e);if((n||o)&&t){let{playerInitTime:a,playerSoftwareName:i,playerSoftwareVersion:s,beaconCollectionDomain:c,metadata:u,debug:p}=e,l=y=>typeof y.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(y):y;A.default.monitor(t,{debug:p,beaconCollectionDomain:c,hlsjs:r,Hls:r?T.default:void 0,automaticErrorTracking:!1,errorTranslator:l,data:{...n?{env_key:n}:{},player_software_name:i,player_software:i,player_software_version:s,player_init_time:a,...u}})}},ee=(e,t,r)=>{var p,l;if(!t){console.warn("attempting to load media before mediaEl exists");return}let{preferMse:n,streamType:o}=e,a=w(e),i=a===M.M3U8,s=!a||((p=t==null?void 0:t.canPlayType(a))!=null?p:!0),c=!i||s&&!((n||$)&&H),{src:u}=e;if(t&&s&&c)typeof u=="string"?(t.setAttribute("src",u),e.startTime&&(((l=v.get(t))!=null?l:{}).startTime=e.startTime,t.addEventListener("durationchange",te,{once:!0}))):t.removeAttribute("src"),t.addEventListener("error",re),t.addEventListener("error",I);else if(r&&u){switch(r.on(T.default.Events.ERROR,(y,m)=>{let ne={[T.default.ErrorTypes.NETWORK_ERROR]:d.MEDIA_ERR_NETWORK,[T.default.ErrorTypes.MEDIA_ERROR]:d.MEDIA_ERR_DECODE},_=new d("",ne[m.type]);_.fatal=m.fatal,_.data=m,t.dispatchEvent(new CustomEvent("error",{detail:_}))}),t.addEventListener("error",I),U(t,r),t.preload){case"none":f(t,"play",()=>r.loadSource(u),{once:!0});break;case"metadata":let y=r.config.maxBufferLength,m=r.config.maxBufferSize;r.config.maxBufferLength=1,r.config.maxBufferSize=1,f(t,"play",()=>{r.config.maxBufferLength=y,r.config.maxBufferSize=m},{once:!0}),r.loadSource(u);break;default:r.loadSource(u)}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 te(e){var n;let t=e.target,r=(n=v.get(t))==null?void 0:n.startTime;if(!!r&&C(t.seekable,t.duration,r)){let o=t.preload==="auto";o&&(t.preload="none"),t.currentTime=r,o&&(t.preload="auto")}}async function re(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 d(r,n);if(t.src&&(n!==d.MEDIA_ERR_DECODE||n!==void 0)){let{status:a}=await fetch(t.src);o.data={response:{code:a}}}t.dispatchEvent(new CustomEvent("error",{detail:o}))}function I(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof d))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=v.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit("error",{player_error_code:r.code,player_error_message:r.message}))}var ge=(e,t,r)=>{J(t,r),v.set(t,{});let n=Q(e,t);return j(e,t,n),ee(e,t,n),n};
//# sourceMappingURL=index.cjs.js.map

@@ -1,2 +0,1 @@

import '@mux/polyfills';
import mux, { Options } from 'mux-embed';

@@ -3,0 +2,0 @@ import Hls, { HlsConfig } from 'hls.js';

declare type KeyTypes = string | number | symbol;
declare type addEventListenerWithTeardown = <K extends keyof HTMLMediaElementEventMap>(mediaEl: HTMLMediaElement, type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions) => void;
export declare const addEventListenerWithTeardown: addEventListenerWithTeardown;
export declare const isKeyOf: <T = any>(k: KeyTypes, o: T) => k is keyof T;
export declare function inSeekableRange(seekable: TimeRanges, duration: number, time: number): boolean;
export {};

@@ -1,2 +0,1 @@

import '@mux/polyfills';
import mux, { Options } from 'mux-embed';

@@ -3,0 +2,0 @@ import Hls, { HlsConfig } from 'hls.js';

declare type KeyTypes = string | number | symbol;
declare type addEventListenerWithTeardown = <K extends keyof HTMLMediaElementEventMap>(mediaEl: HTMLMediaElement, type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions) => void;
export declare const addEventListenerWithTeardown: addEventListenerWithTeardown;
export declare const isKeyOf: <T = any>(k: KeyTypes, o: T) => k is keyof T;
export declare function inSeekableRange(seekable: TimeRanges, duration: number, time: number): boolean;
export {};
{
"name": "@mux/playback-core",
"version": "0.9.1-canary.6-485423a",
"version": "0.9.1-canary.60-186b915",
"description": "Core library for media playback in the browser shared by mux elements",

@@ -31,6 +31,6 @@ "main": "./dist/index.cjs.js",

"clean": "shx rm -rf dist/",
"dev:cjs": "open-process | yarn build:cjs --watch",
"dev:esm": "open-process | yarn build:esm --watch",
"dev:esm-module": "open-process | yarn build:esm-module --watch",
"dev:iife": "open-process | yarn build:iife --watch",
"dev:cjs": "yarn build:cjs --watch=forever",
"dev:esm": "yarn build:esm --watch=forever",
"dev:esm-module": "yarn build:esm-module --watch=forever",
"dev:iife": "yarn build:iife --watch=forever",
"dev:types": "yarn build:types -w",

@@ -42,6 +42,6 @@ "dev": "npm-run-all --parallel dev:types dev:cjs dev:esm dev:iife dev:esm-module",

"build:iife": "esbuild --metafile=./dist/iife.json src/index.ts --target=es2019 --bundle --sourcemap --format=iife --outfile=./dist/playback-core.js",
"build:types": "tsc --declaration --emitDeclarationOnly --outDir './dist/types' && downlevel-dts ./dist/types ./dist/types-ts3.4 --to=3.4",
"build:types": "tsc --declaration --emitDeclarationOnly --outDir './dist/types'",
"postbuild:types": "downlevel-dts ./dist/types ./dist/types-ts3.4 --to=3.4",
"build": "npm-run-all --parallel build:types 'build:esm -- --minify' 'build:iife -- --minify' 'build:cjs -- --minify' 'build:esm-module -- --minify'",
"prebuild": "yarn clean",
"prepublishOnly": "yarn build",
"create-release-notes": "create-release-notes ./CHANGELOG.md",

@@ -51,11 +51,10 @@ "publish-release": "../../scripts/publish.sh"

"dependencies": {
"hls.js": "1.1.5",
"hls.js": "1.2.3",
"mux-embed": "^4.7.0"
},
"devDependencies": {
"@mux/open-process": "0.1.0",
"@mux/polyfills": "0.1.0",
"downlevel-dts": "^0.9.0",
"esbuild": "^0.13.13",
"esbuild": "^0.15.7",
"npm-run-all": "^4.1.5",
"shared-polyfills": "0.1.0",
"shx": "^0.3.4",

@@ -62,0 +61,0 @@ "typescript": "^4.5.2"

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc