@mux/mux-audio 0.10.2 → 0.10.3

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 CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Y=Object.defineProperty;var at=Object.getOwnPropertyDescriptor;var ot=Object.getOwnPropertyNames;var ut=Object.prototype.hasOwnProperty;var lt=(i,e,t)=>e in i?Y(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var dt=(i,e)=>{for(var t in e)Y(i,t,{get:e[t],enumerable:!0})},ct=(i,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of ot(e))!ut.call(i,u)&&u!==t&&Y(i,u,{get:()=>e[u],enumerable:!(a=at(e,u))||a.enumerable});return i};var ht=i=>ct(Y({},"__esModule",{value:!0}),i);var F=(i,e,t)=>(lt(i,typeof e!="symbol"?e+"":e,t),t),H=(i,e,t)=>{if(!e.has(i))throw TypeError("Cannot "+t)};var c=(i,e,t)=>(H(i,e,"read from private field"),t?t.call(i):e.get(i)),h=(i,e,t)=>{if(e.has(i))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(i):e.set(i,t)},b=(i,e,t,a)=>(H(i,e,"write to private field"),a?a.call(i,t):e.set(i,t),t);var g=(i,e,t)=>(H(i,e,"access private method"),t);var Ct={};dt(Ct,{AudioEvents:()=>W,MediaError:()=>d.MediaError,default:()=>Tt});module.exports=ht(Ct);var _=class{addEventListener(){}removeEventListener(){}dispatchEvent(e){return!0}};if(typeof DocumentFragment=="undefined"){class i extends _{}globalThis.DocumentFragment=i}var I=class extends _{},V=class extends _{},mt={get(i){},define(i,e,t){},upgrade(i){},whenDefined(i){return Promise.resolve(I)}},N,q=class{constructor(e,t={}){h(this,N,void 0);b(this,N,t==null?void 0:t.detail)}get detail(){return c(this,N)}initCustomEvent(){}};N=new WeakMap;function pt(i,e){return new I}var Q={document:{createElement:pt},DocumentFragment,customElements:mt,CustomEvent:q,EventTarget:_,HTMLElement:I,HTMLVideoElement:V},X=typeof window=="undefined"||typeof globalThis.customElements=="undefined",U=X?Q:globalThis,_t=X?Q.document:globalThis.document;var d=require("@mux/playback-core");var bt=()=>{try{return"0.10.2"}catch{}return"UNKNOWN"},ft=bt(),Z=()=>ft;var W=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"],tt,$=(tt=globalThis.document)==null?void 0:tt.createElement("template");$&&($.innerHTML=`
1
+ "use strict";var Y=Object.defineProperty;var at=Object.getOwnPropertyDescriptor;var ot=Object.getOwnPropertyNames;var ut=Object.prototype.hasOwnProperty;var lt=(i,e,t)=>e in i?Y(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var dt=(i,e)=>{for(var t in e)Y(i,t,{get:e[t],enumerable:!0})},ct=(i,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of ot(e))!ut.call(i,u)&&u!==t&&Y(i,u,{get:()=>e[u],enumerable:!(a=at(e,u))||a.enumerable});return i};var ht=i=>ct(Y({},"__esModule",{value:!0}),i);var F=(i,e,t)=>(lt(i,typeof e!="symbol"?e+"":e,t),t),H=(i,e,t)=>{if(!e.has(i))throw TypeError("Cannot "+t)};var c=(i,e,t)=>(H(i,e,"read from private field"),t?t.call(i):e.get(i)),h=(i,e,t)=>{if(e.has(i))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(i):e.set(i,t)},b=(i,e,t,a)=>(H(i,e,"write to private field"),a?a.call(i,t):e.set(i,t),t);var g=(i,e,t)=>(H(i,e,"access private method"),t);var Ct={};dt(Ct,{AudioEvents:()=>W,MediaError:()=>d.MediaError,default:()=>Tt});module.exports=ht(Ct);var _=class{addEventListener(){}removeEventListener(){}dispatchEvent(e){return!0}};if(typeof DocumentFragment=="undefined"){class i extends _{}globalThis.DocumentFragment=i}var I=class extends _{},V=class extends _{},mt={get(i){},define(i,e,t){},upgrade(i){},whenDefined(i){return Promise.resolve(I)}},N,q=class{constructor(e,t={}){h(this,N,void 0);b(this,N,t==null?void 0:t.detail)}get detail(){return c(this,N)}initCustomEvent(){}};N=new WeakMap;function pt(i,e){return new I}var Q={document:{createElement:pt},DocumentFragment,customElements:mt,CustomEvent:q,EventTarget:_,HTMLElement:I,HTMLVideoElement:V},X=typeof window=="undefined"||typeof globalThis.customElements=="undefined",U=X?Q:globalThis,_t=X?Q.document:globalThis.document;var d=require("@mux/playback-core");var bt=()=>{try{return"0.10.3"}catch{}return"UNKNOWN"},ft=bt(),Z=()=>ft;var W=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"],tt,$=(tt=globalThis.document)==null?void 0:tt.createElement("template");$&&($.innerHTML=`
2
2
  <style>
3
3
  :host {
4
4
  display: inline-block;
@@ -35,5 +35,5 @@
35
35
  }
36
36
  </style>
37
37
  <slot></slot>
38
- `);var it=(i,{tag:e,is:t})=>{var M,f,T,m,st,x,L,C,P,B,rt,K,nt;let a=(M=globalThis.document)==null?void 0:M.createElement(e,{is:t}),u=a?gt(a):[];return f=class extends i{constructor(){super();h(this,C);h(this,B);h(this,K);h(this,x,void 0);h(this,L,void 0);this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.append(this.constructor.template.content.cloneNode(!0)))}static get observedAttributes(){var r,E,p;return g(r=f,m,st).call(r),[...(p=(E=a==null?void 0:a.constructor)==null?void 0:E.observedAttributes)!=null?p:[],"autopictureinpicture","disablepictureinpicture","disableremoteplayback","autoplay","controls","controlslist","crossorigin","loop","muted","playsinline","poster","preload","src"]}get nativeEl(){var s,r;return(r=(s=c(this,L))!=null?s:this.shadowRoot.querySelector(e))!=null?r:this.querySelector(e)}set nativeEl(s){b(this,L,s)}get defaultMuted(){return this.hasAttribute("muted")}set defaultMuted(s){this.toggleAttribute("muted",Boolean(s))}get src(){return this.getAttribute("src")}set src(s){this.setAttribute("src",`${s}`)}get preload(){var s,r;return(r=this.getAttribute("preload"))!=null?r:(s=this.nativeEl)==null?void 0:s.preload}set preload(s){this.setAttribute("preload",`${s}`)}attributeChangedCallback(s,r,E){g(this,C,P).call(this),g(this,K,nt).call(this,s,r,E)}connectedCallback(){g(this,C,P).call(this)}},T=new WeakMap,m=new WeakSet,st=function(){if(c(this,T))return;b(this,T,!0);let s=new Set(this.observedAttributes);s.delete("muted");for(let r of u){if(r in this.prototype)continue;if(typeof a[r]=="function")this.prototype[r]=function(...p){return g(this,C,P).call(this),(()=>this.call?this.call(r,...p):this.nativeEl[r].apply(this.nativeEl,p))()};else{let p={get(){var l,A,S;g(this,C,P).call(this);let o=r.toLowerCase();if(s.has(o)){let k=this.getAttribute(o);return k===null?!1:k===""?!0:k}return(S=(l=this.get)==null?void 0:l.call(this,r))!=null?S:(A=this.nativeEl)==null?void 0:A[r]}};r!==r.toUpperCase()&&(p.set=function(o){g(this,C,P).call(this);let l=r.toLowerCase();if(s.has(l)){o===!0||o===!1||o==null?this.toggleAttribute(l,Boolean(o)):this.setAttribute(l,o);return}if(this.set){this.set(r,o);return}this.nativeEl[r]=o}),Object.defineProperty(this.prototype,r,p)}}},x=new WeakMap,L=new WeakMap,C=new WeakSet,P=function(){var E,p;if(c(this,x))return;if(b(this,x,!0),!this.nativeEl){let o=document.createElement(e,{is:t});o.part=e,this.shadowRoot.append(o)}this.nativeEl.muted=this.hasAttribute("muted");for(let o of u)g(this,B,rt).call(this,o);let s=new Map,r=this.shadowRoot.querySelector("slot:not([name])");r==null||r.addEventListener("slotchange",()=>{let o=new Map(s);r.assignedElements().filter(l=>["track","source"].includes(l.localName)).forEach(l=>{var S,k;o.delete(l);let A=s.get(l);A||(A=l.cloneNode(),s.set(l,A)),(k=(S=this.nativeEl).append)==null||k.call(S,A)}),o.forEach(l=>l.remove())});for(let o of this.constructor.Events)(p=(E=this.shadowRoot).addEventListener)==null||p.call(E,o,l=>{l.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(l.type,{detail:l.detail}))},!0)},B=new WeakSet,rt=function(s){if(Object.prototype.hasOwnProperty.call(this,s)){let r=this[s];delete this[s],this[s]=r}},K=new WeakSet,nt=function(s,r,E){var p,o,l,A;["id","class"].includes(s)||(E===null?(o=(p=this.nativeEl).removeAttribute)==null||o.call(p,s):(A=(l=this.nativeEl).setAttribute)==null||A.call(l,s,E))},h(f,m),F(f,"Events",W),F(f,"template",e.endsWith("audio")?$:z),h(f,T,void 0),f};function gt(i){let e=[];for(let t=Object.getPrototypeOf(i);t&&t!==HTMLElement.prototype;t=Object.getPrototypeOf(t))e.push(...Object.getOwnPropertyNames(t));return e}var xt=globalThis.document?it(HTMLElement,{tag:"video"}):class{},j=globalThis.document?it(HTMLElement,{tag:"audio"}):class{};var n={ENV_KEY:"env-key",DEBUG:"debug",PLAYBACK_ID:"playback-id",METADATA_URL:"metadata-url",PREFER_PLAYBACK:"prefer-playback",BEACON_COLLECTION_DOMAIN:"beacon-collection-domain",DISABLE_COOKIES:"disable-cookies",TYPE:"type",STREAM_TYPE:"stream-type",START_TIME:"start-time"},Et=Object.values(n),At=Z(),yt="mux-audio",y,v,D,O,w,J,R=class extends j{constructor(){super();h(this,w);h(this,y,void 0);h(this,v,void 0);h(this,D,void 0);h(this,O,{});b(this,D,(0,d.generatePlayerInitTime)())}static get observedAttributes(){var t;return[...Et,...(t=j.observedAttributes)!=null?t:[]]}get playerInitTime(){return c(this,D)}get playerSoftwareName(){return yt}get playerSoftwareVersion(){return At}get _hls(){var t;return(t=c(this,y))==null?void 0:t.engine}get mux(){return this.nativeEl.mux}get src(){return this.getAttribute("src")}set src(t){t!==this.src&&(t==null?this.removeAttribute("src"):this.setAttribute("src",t))}get preload(){let t=this.getAttribute("preload");return t===""?"auto":["none","metadata","auto"].includes(t)?t:super.preload}set preload(t){t!=this.getAttribute("preload")&&(["","none","metadata","auto"].includes(t)?this.setAttribute("preload",t):this.removeAttribute("preload"))}get debug(){return this.getAttribute(n.DEBUG)!=null}set debug(t){t!==this.debug&&(t?this.setAttribute(n.DEBUG,""):this.removeAttribute(n.DEBUG))}get disableCookies(){return this.hasAttribute(n.DISABLE_COOKIES)}set disableCookies(t){t!==this.disableCookies&&(t?this.setAttribute(n.DISABLE_COOKIES,""):this.removeAttribute(n.DISABLE_COOKIES))}get startTime(){let t=this.getAttribute(n.START_TIME);if(t==null)return;let a=+t;return Number.isNaN(a)?void 0:a}set startTime(t){t!==this.startTime&&(t==null?this.removeAttribute(n.START_TIME):this.setAttribute(n.START_TIME,`${t}`))}get playbackId(){var t;return(t=this.getAttribute(n.PLAYBACK_ID))!=null?t:void 0}set playbackId(t){t!==this.playbackId&&(t?this.setAttribute(n.PLAYBACK_ID,t):this.removeAttribute(n.PLAYBACK_ID))}get envKey(){var t;return(t=this.getAttribute(n.ENV_KEY))!=null?t:void 0}set envKey(t){t!==this.envKey&&(t?this.setAttribute(n.ENV_KEY,t):this.removeAttribute(n.ENV_KEY))}get beaconCollectionDomain(){var t;return(t=this.getAttribute(n.BEACON_COLLECTION_DOMAIN))!=null?t:void 0}set beaconCollectionDomain(t){t!==this.beaconCollectionDomain&&(t?this.setAttribute(n.BEACON_COLLECTION_DOMAIN,t):this.removeAttribute(n.BEACON_COLLECTION_DOMAIN))}get streamType(){var t;return(t=this.getAttribute(n.STREAM_TYPE))!=null?t:void 0}set streamType(t){t!==this.streamType&&(t?this.setAttribute(n.STREAM_TYPE,t):this.removeAttribute(n.STREAM_TYPE))}getStartDate(){return(0,d.getStartDate)(this.nativeEl,this._hls)}get currentPdt(){return(0,d.getCurrentPdt)(this.nativeEl,this._hls)}get preferPlayback(){let t=this.getAttribute(n.PREFER_PLAYBACK);if(t===d.PlaybackTypes.MSE||t===d.PlaybackTypes.NATIVE)return t}set preferPlayback(t){t!==this.preferPlayback&&(t===d.PlaybackTypes.MSE||t===d.PlaybackTypes.NATIVE?this.setAttribute(n.PREFER_PLAYBACK,t):this.removeAttribute(n.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter(a=>a.startsWith("metadata-")&&![n.METADATA_URL].includes(a)).reduce((a,u)=>{let M=this.getAttribute(u);return M!=null&&(a[u.replace(/^metadata-/,"").replace(/-/g,"_")]=M),a},{}),...c(this,O)}}set metadata(t){b(this,O,t!=null?t:{}),this.mux&&(console.info("Some metadata values may not be overridable at this time. Make sure you set all metadata to override before setting the src."),this.mux.emit("hb",c(this,O)))}load(){b(this,y,(0,d.initialize)(this,this.nativeEl,c(this,y)))}unload(){(0,d.teardown)(this.nativeEl,c(this,y)),b(this,y,void 0)}attributeChangedCallback(t,a,u){var f,T;switch(j.observedAttributes.includes(t)&&!["src","autoplay","preload"].includes(t)&&super.attributeChangedCallback(t,a,u),t){case"src":{let m=!!a,G=!!u;!m&&G?g(this,w,J).call(this):m&&!G?this.unload():m&&G&&(this.unload(),g(this,w,J).call(this));break}case"autoplay":if(u===a)break;(f=c(this,y))==null||f.setAutoplay(this.autoplay);break;case"preload":if(u===a)break;(T=c(this,y))==null||T.setPreload(u);break;case n.PLAYBACK_ID:this.src=(0,d.toMuxVideoURL)(u!=null?u:void 0);break;case n.DEBUG:{let m=this.debug;this.mux&&console.info("Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src."),this._hls&&(this._hls.config.debug=m);break}case n.METADATA_URL:u&&fetch(u).then(m=>m.json()).then(m=>this.metadata=m).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${u}!`));break;default:break}}disconnectedCallback(){this.unload()}};y=new WeakMap,v=new WeakMap,D=new WeakMap,O=new WeakMap,w=new WeakSet,J=async function(){c(this,v)||(await b(this,v,Promise.resolve()),b(this,v,null),this.load())};U.customElements.get("mux-audio")||(U.customElements.define("mux-audio",R),U.MuxAudioElement=R);var Tt=R;
38
+ `);var it=(i,{tag:e,is:t})=>{var M,f,T,m,st,x,L,C,P,B,rt,K,nt;let a=(M=globalThis.document)==null?void 0:M.createElement(e,{is:t}),u=a?gt(a):[];return f=class extends i{constructor(){super();h(this,C);h(this,B);h(this,K);h(this,x,void 0);h(this,L,void 0);this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.append(this.constructor.template.content.cloneNode(!0)))}static get observedAttributes(){var r,E,p;return g(r=f,m,st).call(r),[...(p=(E=a==null?void 0:a.constructor)==null?void 0:E.observedAttributes)!=null?p:[],"autopictureinpicture","disablepictureinpicture","disableremoteplayback","autoplay","controls","controlslist","crossorigin","loop","muted","playsinline","poster","preload","src"]}get nativeEl(){var s,r;return(r=(s=c(this,L))!=null?s:this.shadowRoot.querySelector(e))!=null?r:this.querySelector(e)}set nativeEl(s){b(this,L,s)}get defaultMuted(){return this.hasAttribute("muted")}set defaultMuted(s){this.toggleAttribute("muted",Boolean(s))}get src(){return this.getAttribute("src")}set src(s){this.setAttribute("src",`${s}`)}get preload(){var s,r;return(r=this.getAttribute("preload"))!=null?r:(s=this.nativeEl)==null?void 0:s.preload}set preload(s){this.setAttribute("preload",`${s}`)}attributeChangedCallback(s,r,E){g(this,C,P).call(this),g(this,K,nt).call(this,s,r,E)}connectedCallback(){g(this,C,P).call(this)}},T=new WeakMap,m=new WeakSet,st=function(){if(c(this,T))return;b(this,T,!0);let s=new Set(this.observedAttributes);s.delete("muted");for(let r of u){if(r in this.prototype)continue;if(typeof a[r]=="function")this.prototype[r]=function(...p){return g(this,C,P).call(this),(()=>this.call?this.call(r,...p):this.nativeEl[r].apply(this.nativeEl,p))()};else{let p={get(){var l,A,S;g(this,C,P).call(this);let o=r.toLowerCase();if(s.has(o)){let k=this.getAttribute(o);return k===null?!1:k===""?!0:k}return(S=(l=this.get)==null?void 0:l.call(this,r))!=null?S:(A=this.nativeEl)==null?void 0:A[r]}};r!==r.toUpperCase()&&(p.set=function(o){g(this,C,P).call(this);let l=r.toLowerCase();if(s.has(l)){o===!0||o===!1||o==null?this.toggleAttribute(l,Boolean(o)):this.setAttribute(l,o);return}if(this.set){this.set(r,o);return}this.nativeEl[r]=o}),Object.defineProperty(this.prototype,r,p)}}},x=new WeakMap,L=new WeakMap,C=new WeakSet,P=function(){var E,p;if(c(this,x))return;if(b(this,x,!0),!this.nativeEl){let o=document.createElement(e,{is:t});o.part=e,this.shadowRoot.append(o)}this.nativeEl.muted=this.hasAttribute("muted");for(let o of u)g(this,B,rt).call(this,o);let s=new Map,r=this.shadowRoot.querySelector("slot:not([name])");r==null||r.addEventListener("slotchange",()=>{let o=new Map(s);r.assignedElements().filter(l=>["track","source"].includes(l.localName)).forEach(l=>{var S,k;o.delete(l);let A=s.get(l);A||(A=l.cloneNode(),s.set(l,A)),(k=(S=this.nativeEl).append)==null||k.call(S,A)}),o.forEach(l=>l.remove())});for(let o of this.constructor.Events)(p=(E=this.shadowRoot).addEventListener)==null||p.call(E,o,l=>{l.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(l.type,{detail:l.detail}))},!0)},B=new WeakSet,rt=function(s){if(Object.prototype.hasOwnProperty.call(this,s)){let r=this[s];delete this[s],this[s]=r}},K=new WeakSet,nt=function(s,r,E){var p,o,l,A;["id","class"].includes(s)||(E===null?(o=(p=this.nativeEl).removeAttribute)==null||o.call(p,s):(A=(l=this.nativeEl).setAttribute)==null||A.call(l,s,E))},h(f,m),F(f,"Events",W),F(f,"template",e.endsWith("audio")?$:z),h(f,T,void 0),f};function gt(i){let e=[];for(let t=Object.getPrototypeOf(i);t&&t!==HTMLElement.prototype;t=Object.getPrototypeOf(t))e.push(...Object.getOwnPropertyNames(t));return e}var xt=globalThis.document?it(HTMLElement,{tag:"video"}):class{},j=globalThis.document?it(HTMLElement,{tag:"audio"}):class{};var n={ENV_KEY:"env-key",DEBUG:"debug",PLAYBACK_ID:"playback-id",METADATA_URL:"metadata-url",PREFER_PLAYBACK:"prefer-playback",BEACON_COLLECTION_DOMAIN:"beacon-collection-domain",DISABLE_COOKIES:"disable-cookies",TYPE:"type",STREAM_TYPE:"stream-type",START_TIME:"start-time"},Et=Object.values(n),At=Z(),yt="mux-audio",y,v,D,O,w,J,R=class extends j{constructor(){super();h(this,w);h(this,y,void 0);h(this,v,void 0);h(this,D,void 0);h(this,O,{});b(this,D,(0,d.generatePlayerInitTime)())}static get observedAttributes(){var t;return[...Et,...(t=j.observedAttributes)!=null?t:[]]}get playerInitTime(){return c(this,D)}get playerSoftwareName(){return yt}get playerSoftwareVersion(){return At}get _hls(){var t;return(t=c(this,y))==null?void 0:t.engine}get mux(){return this.nativeEl.mux}get src(){return this.getAttribute("src")}set src(t){t!==this.src&&(t==null?this.removeAttribute("src"):this.setAttribute("src",t))}get preload(){let t=this.getAttribute("preload");return t===""?"auto":["none","metadata","auto"].includes(t)?t:super.preload}set preload(t){t!=this.getAttribute("preload")&&(["","none","metadata","auto"].includes(t)?this.setAttribute("preload",t):this.removeAttribute("preload"))}get debug(){return this.getAttribute(n.DEBUG)!=null}set debug(t){t!==this.debug&&(t?this.setAttribute(n.DEBUG,""):this.removeAttribute(n.DEBUG))}get disableCookies(){return this.hasAttribute(n.DISABLE_COOKIES)}set disableCookies(t){t!==this.disableCookies&&(t?this.setAttribute(n.DISABLE_COOKIES,""):this.removeAttribute(n.DISABLE_COOKIES))}get startTime(){let t=this.getAttribute(n.START_TIME);if(t==null)return;let a=+t;return Number.isNaN(a)?void 0:a}set startTime(t){t!==this.startTime&&(t==null?this.removeAttribute(n.START_TIME):this.setAttribute(n.START_TIME,`${t}`))}get playbackId(){var t;return(t=this.getAttribute(n.PLAYBACK_ID))!=null?t:void 0}set playbackId(t){t!==this.playbackId&&(t?this.setAttribute(n.PLAYBACK_ID,t):this.removeAttribute(n.PLAYBACK_ID))}get ended(){return(0,d.getEnded)(this.nativeEl,this._hls)}get envKey(){var t;return(t=this.getAttribute(n.ENV_KEY))!=null?t:void 0}set envKey(t){t!==this.envKey&&(t?this.setAttribute(n.ENV_KEY,t):this.removeAttribute(n.ENV_KEY))}get beaconCollectionDomain(){var t;return(t=this.getAttribute(n.BEACON_COLLECTION_DOMAIN))!=null?t:void 0}set beaconCollectionDomain(t){t!==this.beaconCollectionDomain&&(t?this.setAttribute(n.BEACON_COLLECTION_DOMAIN,t):this.removeAttribute(n.BEACON_COLLECTION_DOMAIN))}get streamType(){var t;return(t=this.getAttribute(n.STREAM_TYPE))!=null?t:void 0}set streamType(t){t!==this.streamType&&(t?this.setAttribute(n.STREAM_TYPE,t):this.removeAttribute(n.STREAM_TYPE))}getStartDate(){return(0,d.getStartDate)(this.nativeEl,this._hls)}get currentPdt(){return(0,d.getCurrentPdt)(this.nativeEl,this._hls)}get preferPlayback(){let t=this.getAttribute(n.PREFER_PLAYBACK);if(t===d.PlaybackTypes.MSE||t===d.PlaybackTypes.NATIVE)return t}set preferPlayback(t){t!==this.preferPlayback&&(t===d.PlaybackTypes.MSE||t===d.PlaybackTypes.NATIVE?this.setAttribute(n.PREFER_PLAYBACK,t):this.removeAttribute(n.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter(a=>a.startsWith("metadata-")&&![n.METADATA_URL].includes(a)).reduce((a,u)=>{let M=this.getAttribute(u);return M!=null&&(a[u.replace(/^metadata-/,"").replace(/-/g,"_")]=M),a},{}),...c(this,O)}}set metadata(t){b(this,O,t!=null?t:{}),this.mux&&(console.info("Some metadata values may not be overridable at this time. Make sure you set all metadata to override before setting the src."),this.mux.emit("hb",c(this,O)))}load(){b(this,y,(0,d.initialize)(this,this.nativeEl,c(this,y)))}unload(){(0,d.teardown)(this.nativeEl,c(this,y)),b(this,y,void 0)}attributeChangedCallback(t,a,u){var f,T;switch(j.observedAttributes.includes(t)&&!["src","autoplay","preload"].includes(t)&&super.attributeChangedCallback(t,a,u),t){case"src":{let m=!!a,G=!!u;!m&&G?g(this,w,J).call(this):m&&!G?this.unload():m&&G&&(this.unload(),g(this,w,J).call(this));break}case"autoplay":if(u===a)break;(f=c(this,y))==null||f.setAutoplay(this.autoplay);break;case"preload":if(u===a)break;(T=c(this,y))==null||T.setPreload(u);break;case n.PLAYBACK_ID:this.src=(0,d.toMuxVideoURL)(u!=null?u:void 0);break;case n.DEBUG:{let m=this.debug;this.mux&&console.info("Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src."),this._hls&&(this._hls.config.debug=m);break}case n.METADATA_URL:u&&fetch(u).then(m=>m.json()).then(m=>this.metadata=m).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${u}!`));break;default:break}}disconnectedCallback(){this.unload()}};y=new WeakMap,v=new WeakMap,D=new WeakMap,O=new WeakMap,w=new WeakSet,J=async function(){c(this,v)||(await b(this,v,Promise.resolve()),b(this,v,null),this.load())};U.customElements.get("mux-audio")||(U.customElements.define("mux-audio",R),U.MuxAudioElement=R);var Tt=R;
39
39
  //# sourceMappingURL=index.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/polyfills/index.ts", "../src/env.ts", "../../../node_modules/custom-media-element/custom-media-element.js"],
4
- "sourcesContent": ["import { globalThis } from './polyfills';\nimport {\n initialize,\n teardown,\n generatePlayerInitTime,\n MuxMediaProps,\n StreamTypes,\n PlaybackTypes,\n ValueOf,\n toMuxVideoURL,\n Metadata,\n MediaError,\n getStartDate,\n getCurrentPdt,\n} from '@mux/playback-core';\nimport type { PlaybackCore, PlaybackEngine, ExtensionMimeTypeMap } from '@mux/playback-core';\nimport { getPlayerVersion } from './env';\n// this must be imported after playback-core for the polyfill to be included\nimport { CustomAudioElement, Events as AudioEvents } from 'custom-media-element';\n\n/** @TODO make the relationship between name+value smarter and more deriveable (CJP) */\ntype AttributeNames = {\n ENV_KEY: 'env-key';\n DEBUG: 'debug';\n METADATA_URL: 'metadata-url';\n BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain';\n DISABLE_COOKIES: 'disable-cookies';\n PLAYBACK_ID: 'playback-id';\n PREFER_PLAYBACK: 'prefer-playback';\n TYPE: 'type';\n STREAM_TYPE: 'stream-type';\n START_TIME: 'start-time';\n};\n\nconst Attributes: AttributeNames = {\n ENV_KEY: 'env-key',\n DEBUG: 'debug',\n PLAYBACK_ID: 'playback-id',\n METADATA_URL: 'metadata-url',\n PREFER_PLAYBACK: 'prefer-playback',\n BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain',\n DISABLE_COOKIES: 'disable-cookies',\n TYPE: 'type',\n STREAM_TYPE: 'stream-type',\n START_TIME: 'start-time',\n};\n\nconst AttributeNameValues = Object.values(Attributes);\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-audio';\n\nclass MuxAudioElement extends CustomAudioElement implements Partial<MuxMediaProps> {\n static get observedAttributes() {\n return [...AttributeNameValues, ...(CustomAudioElement.observedAttributes ?? [])];\n }\n\n #core?: PlaybackCore;\n #loadRequested?: Promise<void> | null;\n #playerInitTime: number;\n #metadata: Readonly<Metadata> = {};\n\n constructor() {\n super();\n this.#playerInitTime = generatePlayerInitTime();\n }\n\n get playerInitTime() {\n return this.#playerInitTime;\n }\n\n get playerSoftwareName() {\n return playerSoftwareName;\n }\n\n get playerSoftwareVersion() {\n return playerSoftwareVersion;\n }\n\n // Keeping this named \"_hls\" since it's exposed for unadvertised \"advanced usage\" via getter that assumes specifically hls.js (CJP)\n get _hls(): PlaybackEngine | undefined {\n return this.#core?.engine;\n }\n\n get mux(): Readonly<HTMLAudioElement['mux']> | undefined {\n return this.nativeEl.mux;\n }\n\n get src() {\n // Use the attribute value as the source of truth.\n // No need to store it in two places.\n // This avoids needing a to read the attribute initially and update the src.\n return this.getAttribute('src') as string;\n }\n\n set src(val: string) {\n // If being set by attributeChangedCallback,\n // dont' cause an infinite loop\n if (val === this.src) return;\n\n if (val == null) {\n this.removeAttribute('src');\n } else {\n this.setAttribute('src', val);\n }\n }\n\n get preload() {\n const val = this.getAttribute('preload') as HTMLMediaElement['preload'];\n if (val === '') return 'auto';\n if (['none', 'metadata', 'auto'].includes(val)) return val;\n return super.preload;\n }\n\n set preload(val) {\n // don't cause an infinite loop\n // check the attribute because an empty string maps to the `auto` prop\n if (val == this.getAttribute('preload')) return;\n\n if (['', 'none', 'metadata', 'auto'].includes(val)) {\n this.setAttribute('preload', val);\n } else {\n this.removeAttribute('preload');\n }\n }\n\n get debug(): boolean {\n return this.getAttribute(Attributes.DEBUG) != null;\n }\n\n set debug(val: boolean) {\n // dont' cause an infinite loop\n if (val === this.debug) return;\n\n if (val) {\n this.setAttribute(Attributes.DEBUG, '');\n } else {\n this.removeAttribute(Attributes.DEBUG);\n }\n }\n\n get disableCookies(): boolean {\n return this.hasAttribute(Attributes.DISABLE_COOKIES);\n }\n\n set disableCookies(val: boolean) {\n // dont' cause an infinite loop\n if (val === this.disableCookies) return;\n\n if (val) {\n this.setAttribute(Attributes.DISABLE_COOKIES, '');\n } else {\n this.removeAttribute(Attributes.DISABLE_COOKIES);\n }\n }\n\n get startTime(): number | undefined {\n const val = this.getAttribute(Attributes.START_TIME);\n if (val == null) return undefined;\n const num = +val;\n return !Number.isNaN(num) ? num : undefined;\n }\n\n set startTime(val: number | undefined) {\n // dont' cause an infinite loop\n if (val === this.startTime) return;\n\n if (val == null) {\n this.removeAttribute(Attributes.START_TIME);\n } else {\n this.setAttribute(Attributes.START_TIME, `${val}`);\n }\n }\n\n get playbackId(): string | undefined {\n return this.getAttribute(Attributes.PLAYBACK_ID) ?? undefined;\n }\n\n set playbackId(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.playbackId) return;\n\n if (val) {\n this.setAttribute(Attributes.PLAYBACK_ID, val);\n } else {\n this.removeAttribute(Attributes.PLAYBACK_ID);\n }\n }\n\n get envKey(): string | undefined {\n return this.getAttribute(Attributes.ENV_KEY) ?? undefined;\n }\n\n set envKey(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.envKey) return;\n\n if (val) {\n this.setAttribute(Attributes.ENV_KEY, val);\n } else {\n this.removeAttribute(Attributes.ENV_KEY);\n }\n }\n\n get beaconCollectionDomain(): string | undefined {\n return this.getAttribute(Attributes.BEACON_COLLECTION_DOMAIN) ?? undefined;\n }\n\n set beaconCollectionDomain(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.beaconCollectionDomain) return;\n\n if (val) {\n this.setAttribute(Attributes.BEACON_COLLECTION_DOMAIN, val);\n } else {\n this.removeAttribute(Attributes.BEACON_COLLECTION_DOMAIN);\n }\n }\n\n get streamType(): ValueOf<StreamTypes> | undefined {\n // getAttribute doesn't know that this attribute is well defined. Should explore extending for MuxVideo (CJP)\n return (this.getAttribute(Attributes.STREAM_TYPE) as ValueOf<StreamTypes>) ?? undefined;\n }\n\n set streamType(val: ValueOf<StreamTypes> | undefined) {\n // dont' cause an infinite loop\n if (val === this.streamType) return;\n\n if (val) {\n this.setAttribute(Attributes.STREAM_TYPE, val);\n } else {\n this.removeAttribute(Attributes.STREAM_TYPE);\n }\n }\n\n getStartDate() {\n return getStartDate(this.nativeEl, this._hls);\n }\n\n get currentPdt() {\n return getCurrentPdt(this.nativeEl, this._hls);\n }\n\n get preferPlayback(): ValueOf<PlaybackTypes> | undefined {\n const val = this.getAttribute(Attributes.PREFER_PLAYBACK);\n if (val === PlaybackTypes.MSE || val === PlaybackTypes.NATIVE) return val;\n return undefined;\n }\n\n set preferPlayback(val: ValueOf<PlaybackTypes> | undefined) {\n if (val === this.preferPlayback) return;\n\n if (val === PlaybackTypes.MSE || val === PlaybackTypes.NATIVE) {\n this.setAttribute(Attributes.PREFER_PLAYBACK, val);\n } else {\n this.removeAttribute(Attributes.PREFER_PLAYBACK);\n }\n }\n\n get metadata() {\n const inferredMetadataAttrs: { [key: string]: string } = this.getAttributeNames()\n .filter((attrName) => {\n return attrName.startsWith('metadata-') && !([Attributes.METADATA_URL] as string[]).includes(attrName);\n })\n .reduce((currAttrs, attrName) => {\n const value = this.getAttribute(attrName);\n if (value != null) {\n currAttrs[attrName.replace(/^metadata-/, '').replace(/-/g, '_') as string] = value;\n }\n return currAttrs;\n }, {} as { [key: string]: string });\n\n return {\n ...inferredMetadataAttrs,\n ...this.#metadata,\n };\n }\n\n set metadata(val: Readonly<Metadata> | undefined) {\n this.#metadata = val ?? {};\n if (!!this.mux) {\n /** @TODO Link to docs for a more detailed discussion (CJP) */\n console.info(\n 'Some metadata values may not be overridable at this time. Make sure you set all metadata to override before setting the src.'\n );\n this.mux.emit('hb', this.#metadata);\n }\n }\n\n async #requestLoad() {\n if (this.#loadRequested) return;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.load();\n }\n\n load() {\n this.#core = initialize(this as Partial<MuxMediaProps>, this.nativeEl, this.#core);\n }\n\n unload() {\n teardown(this.nativeEl, this.#core);\n this.#core = undefined;\n }\n\n attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null) {\n // Only forward the attributes to the native media element that are not handled.\n const isNativeAttr = CustomAudioElement.observedAttributes.includes(attrName);\n if (isNativeAttr && !['src', 'autoplay', 'preload'].includes(attrName)) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n\n switch (attrName) {\n case 'src': {\n const hadSrc = !!oldValue;\n const hasSrc = !!newValue;\n if (!hadSrc && hasSrc) {\n this.#requestLoad();\n } else if (hadSrc && !hasSrc) {\n this.unload();\n /** @TODO Test this thoroughly (async?) and confirm unload() necessary (CJP) */\n } else if (hadSrc && hasSrc) {\n this.unload();\n this.#requestLoad();\n }\n break;\n }\n case 'autoplay':\n if (newValue === oldValue) {\n break;\n }\n /** In case newValue is an empty string or null, use this.autoplay which translates to booleans (WL) */\n this.#core?.setAutoplay(this.autoplay);\n break;\n case 'preload':\n if (newValue === oldValue) {\n break;\n }\n this.#core?.setPreload(newValue as HTMLMediaElement['preload']);\n break;\n case Attributes.PLAYBACK_ID:\n /** @TODO Improv+Discuss - how should playback-id update wrt src attr changes (and vice versa) (CJP) */\n this.src = toMuxVideoURL(newValue ?? undefined) as string;\n break;\n case Attributes.DEBUG: {\n const debug = this.debug;\n if (!!this.mux) {\n /** @TODO Link to docs for a more detailed discussion (CJP) */\n console.info(\n 'Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src.'\n );\n }\n if (!!this._hls) {\n this._hls.config.debug = debug;\n }\n break;\n }\n case Attributes.METADATA_URL:\n if (newValue) {\n fetch(newValue)\n .then((resp) => resp.json())\n .then((json) => (this.metadata = json))\n .catch(() => console.error(`Unable to load or parse metadata JSON from metadata-url ${newValue}!`));\n }\n break;\n default:\n break;\n }\n }\n\n disconnectedCallback() {\n this.unload();\n }\n}\n\ntype MuxAudioElementType = typeof MuxAudioElement;\ndeclare global {\n var MuxAudioElement: MuxAudioElementType; // eslint-disable-line\n}\n\nif (!globalThis.customElements.get('mux-audio')) {\n globalThis.customElements.define('mux-audio', MuxAudioElement);\n /** @TODO consider externalizing this (breaks standard modularity) */\n globalThis.MuxAudioElement = MuxAudioElement;\n}\n\nexport { PlaybackEngine, PlaybackEngine as Hls, ExtensionMimeTypeMap as MimeTypes, MediaError, AudioEvents };\n\nexport default MuxAudioElement;\n", "/* eslint @typescript-eslint/no-empty-function: \"off\", @typescript-eslint/no-unused-vars: \"off\" */\n\nclass EventTarget {\n addEventListener() {}\n removeEventListener() {}\n dispatchEvent(_event: Event) {\n return true;\n }\n}\n\n// @github/template-parts requires DocumentFragment to be available on globalThis for SSR\nif (typeof DocumentFragment === 'undefined') {\n class DocumentFragment extends EventTarget {}\n // @ts-ignore\n globalThis.DocumentFragment = DocumentFragment;\n}\n\nclass HTMLElement extends EventTarget {}\nclass HTMLVideoElement extends EventTarget {}\n\nconst customElements: CustomElementRegistry = {\n get(_name: string) {\n return undefined;\n },\n define(_name, _constructor, _options) {},\n upgrade(_root) {},\n whenDefined(_name) {\n return Promise.resolve(HTMLElement as unknown as CustomElementConstructor);\n },\n};\n\nclass CustomEvent {\n #detail;\n get detail() {\n return this.#detail;\n }\n constructor(typeArg: string, eventInitDict: CustomEventInit = {}) {\n // super(typeArg, eventInitDict);\n this.#detail = eventInitDict?.detail;\n }\n initCustomEvent() {}\n}\n\nfunction createElement(_tagName: string, _options?: ElementCreationOptions): HTMLElement {\n return new HTMLElement();\n}\n\nconst globalThisShim = {\n document: {\n createElement,\n },\n DocumentFragment,\n customElements,\n CustomEvent,\n EventTarget,\n HTMLElement,\n HTMLVideoElement,\n};\n\n// const isServer = typeof window === 'undefined' || typeof globalThis.customElements === 'undefined';\n// const GlobalThis = isServer ? globalThisShim : globalThis;\n// const Document = isServer ? globalThisShim.document : globalThis.document;\n//\n// export { GlobalThis as globalThis, Document as document };\nconst isServer = typeof window === 'undefined' || typeof globalThis.customElements === 'undefined';\ntype GlobalThis = typeof globalThis;\nconst internalGlobalThis: GlobalThis = (isServer ? globalThisShim : globalThis) as GlobalThis;\nconst internalDocument: Document = (isServer ? globalThisShim.document : globalThis.document) as Document;\n\nexport { internalGlobalThis as globalThis, internalDocument as document };\n", "export const isMaybeBrowser = () => typeof window != 'undefined';\n// @ts-ignore\nexport const isMaybeServer = () => typeof global != 'undefined';\n\nconst getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n", "/**\n * Custom Media Element\n * Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n *\n * The goal is to create an element that works just like the video element\n * but can be extended/sub-classed, because native elements cannot be\n * extended today across browsers.\n */\n\n// The onevent like props are weirdly set on the HTMLElement prototype with other\n// generic events making it impossible to pick these specific to HTMLMediaElement.\nexport const Events = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'encrypted',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n 'waitingforkey',\n 'resize',\n 'enterpictureinpicture',\n 'leavepictureinpicture',\n 'webkitbeginfullscreen',\n 'webkitendfullscreen',\n 'webkitpresentationmodechanged',\n];\n\nexport const audioTemplate = globalThis.document?.createElement('template');\n\nif (audioTemplate) {\n audioTemplate.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n audio {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n }\n </style>\n <slot></slot>\n `;\n}\n\nexport const videoTemplate = globalThis.document?.createElement('template');\n\nif (videoTemplate) {\n videoTemplate.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n video {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, 50% 50%);\n }\n\n video::-webkit-media-text-track-container {\n transform: var(--media-webkit-text-track-transform);\n transition: var(--media-webkit-text-track-transition);\n }\n </style>\n <slot></slot>\n `;\n}\n\n/**\n * @see https://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/\n */\nexport const CustomMediaMixin = (superclass, { tag, is }) => {\n\n // `is` makes it possible to extend a custom built-in. e.g. castable-video\n const nativeElTest = globalThis.document?.createElement(tag, { is });\n const nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\n return class CustomMedia extends superclass {\n static Events = Events;\n static template = tag.endsWith('audio') ? audioTemplate : videoTemplate;\n static #isDefined;\n\n static get observedAttributes() {\n CustomMedia.#define();\n\n // Include any attributes from the custom built-in.\n const natAttrs = nativeElTest?.constructor?.observedAttributes ?? [];\n\n return [\n ...natAttrs,\n 'autopictureinpicture',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'autoplay',\n 'controls',\n 'controlslist',\n 'crossorigin',\n 'loop',\n 'muted',\n 'playsinline',\n 'poster',\n 'preload',\n 'src',\n ];\n }\n\n static #define() {\n if (this.#isDefined) return;\n this.#isDefined = true;\n\n const propsToAttrs = new Set(this.observedAttributes);\n // defaultMuted maps to the muted attribute, handled manually below.\n propsToAttrs.delete('muted');\n\n // Passthrough native el functions from the custom el to the native el\n for (let prop of nativeElProps) {\n if (prop in this.prototype) continue;\n\n const type = typeof nativeElTest[prop];\n if (type == 'function') {\n // Function\n this.prototype[prop] = function (...args) {\n this.#init();\n\n const fn = () => {\n if (this.call) return this.call(prop, ...args);\n return this.nativeEl[prop].apply(this.nativeEl, args);\n };\n\n return fn();\n };\n } else {\n // Some properties like src, preload, defaultMuted are handled manually.\n\n // Getter\n let config = {\n get() {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n const val = this.getAttribute(attr);\n return val === null ? false : val === '' ? true : val;\n }\n\n return this.get?.(prop) ?? this.nativeEl?.[prop];\n },\n };\n\n if (prop !== prop.toUpperCase()) {\n // Setter (not a CONSTANT)\n config.set = function (val) {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n if (val === true || val === false || val == null) {\n this.toggleAttribute(attr, Boolean(val));\n } else {\n this.setAttribute(attr, val);\n }\n return;\n }\n\n if (this.set) {\n this.set(prop, val);\n return;\n }\n\n this.nativeEl[prop] = val;\n };\n }\n\n Object.defineProperty(this.prototype, prop, config);\n }\n }\n }\n\n #isInit;\n #nativeEl;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.append(this.constructor.template.content.cloneNode(true));\n }\n\n // If the custom element is defined before the custom element's HTML is parsed\n // no attributes will be available in the constructor (construction process).\n // Wait until initializing in the attributeChangedCallback or\n // connectedCallback or accessing any properties.\n }\n\n get nativeEl() {\n return this.#nativeEl\n ?? this.shadowRoot.querySelector(tag)\n ?? this.querySelector(tag);\n }\n\n set nativeEl(val) {\n this.#nativeEl = val;\n }\n\n get defaultMuted() {\n return this.hasAttribute('muted');\n }\n\n set defaultMuted(val) {\n this.toggleAttribute('muted', Boolean(val));\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n set src(val) {\n this.setAttribute('src', `${val}`);\n }\n\n get preload() {\n return this.getAttribute('preload') ?? this.nativeEl?.preload;\n }\n\n set preload(val) {\n this.setAttribute('preload', `${val}`);\n }\n\n #init() {\n if (this.#isInit) return;\n this.#isInit = true;\n\n // If there is no nativeEl by now, create it.\n if (!this.nativeEl) {\n const nativeEl = document.createElement(tag, { is });\n nativeEl.part = tag;\n this.shadowRoot.append(nativeEl);\n }\n\n // Neither Chrome or Firefox support setting the muted attribute\n // after using document.createElement.\n // Get around this by setting the muted property manually.\n this.nativeEl.muted = this.hasAttribute('muted');\n\n for (let prop of nativeElProps) {\n this.#upgradeProperty(prop);\n }\n\n // Keep some native child elements like track and source in sync.\n const childMap = new Map();\n // An unnamed <slot> will be filled with all of the custom element's\n // top-level child nodes that do not have the slot attribute.\n const slotEl = this.shadowRoot.querySelector('slot:not([name])');\n slotEl?.addEventListener('slotchange', () => {\n const removeNativeChildren = new Map(childMap);\n slotEl\n .assignedElements()\n .filter((el) => ['track', 'source'].includes(el.localName))\n .forEach((el) => {\n // If the source or track is still in the assigned elements keep it.\n removeNativeChildren.delete(el);\n // Re-use clones if possible.\n let clone = childMap.get(el);\n if (!clone) {\n clone = el.cloneNode();\n childMap.set(el, clone);\n }\n this.nativeEl.append?.(clone);\n });\n removeNativeChildren.forEach((el) => el.remove());\n });\n\n // The video events are dispatched on the CustomMediaElement instance.\n // This makes it possible to add event listeners before the element is upgraded.\n for (let type of this.constructor.Events) {\n this.shadowRoot.addEventListener?.(type, (evt) => {\n if (evt.target !== this.nativeEl) return;\n this.dispatchEvent(new CustomEvent(evt.type, { detail: evt.detail }));\n }, true);\n }\n }\n\n #upgradeProperty(prop) {\n // Sets properties that are set before the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n // Delete the set property from this instance.\n delete this[prop];\n // Set the value again via the (prototype) setter on this class.\n this[prop] = value;\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n // Initialize right after construction when the attributes become available.\n this.#init();\n this.#forwardAttribute(attrName, oldValue, newValue);\n }\n\n #forwardAttribute(attrName, oldValue, newValue) {\n // Ignore a few that don't need to be passed.\n if (['id', 'class'].includes(attrName)) {\n return;\n }\n\n if (newValue === null) {\n this.nativeEl.removeAttribute?.(attrName);\n } else {\n this.nativeEl.setAttribute?.(attrName, newValue);\n }\n }\n\n connectedCallback() {\n this.#init();\n }\n };\n};\n\nfunction getNativeElProps(nativeElTest) {\n // Map all native element properties to the custom element\n // so that they're applied to the native element.\n // Skipping HTMLElement because of things like \"attachShadow\"\n // causing issues. Most of those props still need to apply to\n // the custom element.\n let nativeElProps = [];\n\n // Walk the prototype chain up to HTMLElement.\n // This will grab all super class props in between.\n // i.e. VideoElement and MediaElement\n for (\n let proto = Object.getPrototypeOf(nativeElTest);\n proto && proto !== HTMLElement.prototype;\n proto = Object.getPrototypeOf(proto)\n ) {\n nativeElProps.push(...Object.getOwnPropertyNames(proto));\n }\n\n return nativeElProps;\n}\n\nexport const CustomVideoElement = globalThis.document ? CustomMediaMixin(HTMLElement, { tag: 'video' }) : class {};\n\nexport const CustomAudioElement = globalThis.document ? CustomMediaMixin(HTMLElement, { tag: 'audio' }) : class {};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { globalThis } from './polyfills';\nimport {\n initialize,\n teardown,\n generatePlayerInitTime,\n MuxMediaProps,\n StreamTypes,\n PlaybackTypes,\n ValueOf,\n toMuxVideoURL,\n Metadata,\n MediaError,\n getStartDate,\n getCurrentPdt,\n getEnded,\n} from '@mux/playback-core';\nimport type { PlaybackCore, PlaybackEngine, ExtensionMimeTypeMap } from '@mux/playback-core';\nimport { getPlayerVersion } from './env';\n// this must be imported after playback-core for the polyfill to be included\nimport { CustomAudioElement, Events as AudioEvents } from 'custom-media-element';\n\n/** @TODO make the relationship between name+value smarter and more deriveable (CJP) */\ntype AttributeNames = {\n ENV_KEY: 'env-key';\n DEBUG: 'debug';\n METADATA_URL: 'metadata-url';\n BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain';\n DISABLE_COOKIES: 'disable-cookies';\n PLAYBACK_ID: 'playback-id';\n PREFER_PLAYBACK: 'prefer-playback';\n TYPE: 'type';\n STREAM_TYPE: 'stream-type';\n START_TIME: 'start-time';\n};\n\nconst Attributes: AttributeNames = {\n ENV_KEY: 'env-key',\n DEBUG: 'debug',\n PLAYBACK_ID: 'playback-id',\n METADATA_URL: 'metadata-url',\n PREFER_PLAYBACK: 'prefer-playback',\n BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain',\n DISABLE_COOKIES: 'disable-cookies',\n TYPE: 'type',\n STREAM_TYPE: 'stream-type',\n START_TIME: 'start-time',\n};\n\nconst AttributeNameValues = Object.values(Attributes);\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-audio';\n\nclass MuxAudioElement extends CustomAudioElement implements Partial<MuxMediaProps> {\n static get observedAttributes() {\n return [...AttributeNameValues, ...(CustomAudioElement.observedAttributes ?? [])];\n }\n\n #core?: PlaybackCore;\n #loadRequested?: Promise<void> | null;\n #playerInitTime: number;\n #metadata: Readonly<Metadata> = {};\n\n constructor() {\n super();\n this.#playerInitTime = generatePlayerInitTime();\n }\n\n get playerInitTime() {\n return this.#playerInitTime;\n }\n\n get playerSoftwareName() {\n return playerSoftwareName;\n }\n\n get playerSoftwareVersion() {\n return playerSoftwareVersion;\n }\n\n // Keeping this named \"_hls\" since it's exposed for unadvertised \"advanced usage\" via getter that assumes specifically hls.js (CJP)\n get _hls(): PlaybackEngine | undefined {\n return this.#core?.engine;\n }\n\n get mux(): Readonly<HTMLAudioElement['mux']> | undefined {\n return this.nativeEl.mux;\n }\n\n get src() {\n // Use the attribute value as the source of truth.\n // No need to store it in two places.\n // This avoids needing a to read the attribute initially and update the src.\n return this.getAttribute('src') as string;\n }\n\n set src(val: string) {\n // If being set by attributeChangedCallback,\n // dont' cause an infinite loop\n if (val === this.src) return;\n\n if (val == null) {\n this.removeAttribute('src');\n } else {\n this.setAttribute('src', val);\n }\n }\n\n get preload() {\n const val = this.getAttribute('preload') as HTMLMediaElement['preload'];\n if (val === '') return 'auto';\n if (['none', 'metadata', 'auto'].includes(val)) return val;\n return super.preload;\n }\n\n set preload(val) {\n // don't cause an infinite loop\n // check the attribute because an empty string maps to the `auto` prop\n if (val == this.getAttribute('preload')) return;\n\n if (['', 'none', 'metadata', 'auto'].includes(val)) {\n this.setAttribute('preload', val);\n } else {\n this.removeAttribute('preload');\n }\n }\n\n get debug(): boolean {\n return this.getAttribute(Attributes.DEBUG) != null;\n }\n\n set debug(val: boolean) {\n // dont' cause an infinite loop\n if (val === this.debug) return;\n\n if (val) {\n this.setAttribute(Attributes.DEBUG, '');\n } else {\n this.removeAttribute(Attributes.DEBUG);\n }\n }\n\n get disableCookies(): boolean {\n return this.hasAttribute(Attributes.DISABLE_COOKIES);\n }\n\n set disableCookies(val: boolean) {\n // dont' cause an infinite loop\n if (val === this.disableCookies) return;\n\n if (val) {\n this.setAttribute(Attributes.DISABLE_COOKIES, '');\n } else {\n this.removeAttribute(Attributes.DISABLE_COOKIES);\n }\n }\n\n get startTime(): number | undefined {\n const val = this.getAttribute(Attributes.START_TIME);\n if (val == null) return undefined;\n const num = +val;\n return !Number.isNaN(num) ? num : undefined;\n }\n\n set startTime(val: number | undefined) {\n // dont' cause an infinite loop\n if (val === this.startTime) return;\n\n if (val == null) {\n this.removeAttribute(Attributes.START_TIME);\n } else {\n this.setAttribute(Attributes.START_TIME, `${val}`);\n }\n }\n\n get playbackId(): string | undefined {\n return this.getAttribute(Attributes.PLAYBACK_ID) ?? undefined;\n }\n\n set playbackId(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.playbackId) return;\n\n if (val) {\n this.setAttribute(Attributes.PLAYBACK_ID, val);\n } else {\n this.removeAttribute(Attributes.PLAYBACK_ID);\n }\n }\n\n get ended() {\n // This ensures that edge case media that doesn't properly end will\n // still announce itself as \"ended\".\n return getEnded(this.nativeEl, this._hls);\n }\n\n get envKey(): string | undefined {\n return this.getAttribute(Attributes.ENV_KEY) ?? undefined;\n }\n\n set envKey(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.envKey) return;\n\n if (val) {\n this.setAttribute(Attributes.ENV_KEY, val);\n } else {\n this.removeAttribute(Attributes.ENV_KEY);\n }\n }\n\n get beaconCollectionDomain(): string | undefined {\n return this.getAttribute(Attributes.BEACON_COLLECTION_DOMAIN) ?? undefined;\n }\n\n set beaconCollectionDomain(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.beaconCollectionDomain) return;\n\n if (val) {\n this.setAttribute(Attributes.BEACON_COLLECTION_DOMAIN, val);\n } else {\n this.removeAttribute(Attributes.BEACON_COLLECTION_DOMAIN);\n }\n }\n\n get streamType(): ValueOf<StreamTypes> | undefined {\n // getAttribute doesn't know that this attribute is well defined. Should explore extending for MuxVideo (CJP)\n return (this.getAttribute(Attributes.STREAM_TYPE) as ValueOf<StreamTypes>) ?? undefined;\n }\n\n set streamType(val: ValueOf<StreamTypes> | undefined) {\n // dont' cause an infinite loop\n if (val === this.streamType) return;\n\n if (val) {\n this.setAttribute(Attributes.STREAM_TYPE, val);\n } else {\n this.removeAttribute(Attributes.STREAM_TYPE);\n }\n }\n\n getStartDate() {\n return getStartDate(this.nativeEl, this._hls);\n }\n\n get currentPdt() {\n return getCurrentPdt(this.nativeEl, this._hls);\n }\n\n get preferPlayback(): ValueOf<PlaybackTypes> | undefined {\n const val = this.getAttribute(Attributes.PREFER_PLAYBACK);\n if (val === PlaybackTypes.MSE || val === PlaybackTypes.NATIVE) return val;\n return undefined;\n }\n\n set preferPlayback(val: ValueOf<PlaybackTypes> | undefined) {\n if (val === this.preferPlayback) return;\n\n if (val === PlaybackTypes.MSE || val === PlaybackTypes.NATIVE) {\n this.setAttribute(Attributes.PREFER_PLAYBACK, val);\n } else {\n this.removeAttribute(Attributes.PREFER_PLAYBACK);\n }\n }\n\n get metadata() {\n const inferredMetadataAttrs: { [key: string]: string } = this.getAttributeNames()\n .filter((attrName) => {\n return attrName.startsWith('metadata-') && !([Attributes.METADATA_URL] as string[]).includes(attrName);\n })\n .reduce((currAttrs, attrName) => {\n const value = this.getAttribute(attrName);\n if (value != null) {\n currAttrs[attrName.replace(/^metadata-/, '').replace(/-/g, '_') as string] = value;\n }\n return currAttrs;\n }, {} as { [key: string]: string });\n\n return {\n ...inferredMetadataAttrs,\n ...this.#metadata,\n };\n }\n\n set metadata(val: Readonly<Metadata> | undefined) {\n this.#metadata = val ?? {};\n if (!!this.mux) {\n /** @TODO Link to docs for a more detailed discussion (CJP) */\n console.info(\n 'Some metadata values may not be overridable at this time. Make sure you set all metadata to override before setting the src.'\n );\n this.mux.emit('hb', this.#metadata);\n }\n }\n\n async #requestLoad() {\n if (this.#loadRequested) return;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.load();\n }\n\n load() {\n this.#core = initialize(this as Partial<MuxMediaProps>, this.nativeEl, this.#core);\n }\n\n unload() {\n teardown(this.nativeEl, this.#core);\n this.#core = undefined;\n }\n\n attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null) {\n // Only forward the attributes to the native media element that are not handled.\n const isNativeAttr = CustomAudioElement.observedAttributes.includes(attrName);\n if (isNativeAttr && !['src', 'autoplay', 'preload'].includes(attrName)) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n\n switch (attrName) {\n case 'src': {\n const hadSrc = !!oldValue;\n const hasSrc = !!newValue;\n if (!hadSrc && hasSrc) {\n this.#requestLoad();\n } else if (hadSrc && !hasSrc) {\n this.unload();\n /** @TODO Test this thoroughly (async?) and confirm unload() necessary (CJP) */\n } else if (hadSrc && hasSrc) {\n this.unload();\n this.#requestLoad();\n }\n break;\n }\n case 'autoplay':\n if (newValue === oldValue) {\n break;\n }\n /** In case newValue is an empty string or null, use this.autoplay which translates to booleans (WL) */\n this.#core?.setAutoplay(this.autoplay);\n break;\n case 'preload':\n if (newValue === oldValue) {\n break;\n }\n this.#core?.setPreload(newValue as HTMLMediaElement['preload']);\n break;\n case Attributes.PLAYBACK_ID:\n /** @TODO Improv+Discuss - how should playback-id update wrt src attr changes (and vice versa) (CJP) */\n this.src = toMuxVideoURL(newValue ?? undefined) as string;\n break;\n case Attributes.DEBUG: {\n const debug = this.debug;\n if (!!this.mux) {\n /** @TODO Link to docs for a more detailed discussion (CJP) */\n console.info(\n 'Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src.'\n );\n }\n if (!!this._hls) {\n this._hls.config.debug = debug;\n }\n break;\n }\n case Attributes.METADATA_URL:\n if (newValue) {\n fetch(newValue)\n .then((resp) => resp.json())\n .then((json) => (this.metadata = json))\n .catch(() => console.error(`Unable to load or parse metadata JSON from metadata-url ${newValue}!`));\n }\n break;\n default:\n break;\n }\n }\n\n disconnectedCallback() {\n this.unload();\n }\n}\n\ntype MuxAudioElementType = typeof MuxAudioElement;\ndeclare global {\n var MuxAudioElement: MuxAudioElementType; // eslint-disable-line\n}\n\nif (!globalThis.customElements.get('mux-audio')) {\n globalThis.customElements.define('mux-audio', MuxAudioElement);\n /** @TODO consider externalizing this (breaks standard modularity) */\n globalThis.MuxAudioElement = MuxAudioElement;\n}\n\nexport { PlaybackEngine, PlaybackEngine as Hls, ExtensionMimeTypeMap as MimeTypes, MediaError, AudioEvents };\n\nexport default MuxAudioElement;\n", "/* eslint @typescript-eslint/no-empty-function: \"off\", @typescript-eslint/no-unused-vars: \"off\" */\n\nclass EventTarget {\n addEventListener() {}\n removeEventListener() {}\n dispatchEvent(_event: Event) {\n return true;\n }\n}\n\n// @github/template-parts requires DocumentFragment to be available on globalThis for SSR\nif (typeof DocumentFragment === 'undefined') {\n class DocumentFragment extends EventTarget {}\n // @ts-ignore\n globalThis.DocumentFragment = DocumentFragment;\n}\n\nclass HTMLElement extends EventTarget {}\nclass HTMLVideoElement extends EventTarget {}\n\nconst customElements: CustomElementRegistry = {\n get(_name: string) {\n return undefined;\n },\n define(_name, _constructor, _options) {},\n upgrade(_root) {},\n whenDefined(_name) {\n return Promise.resolve(HTMLElement as unknown as CustomElementConstructor);\n },\n};\n\nclass CustomEvent {\n #detail;\n get detail() {\n return this.#detail;\n }\n constructor(typeArg: string, eventInitDict: CustomEventInit = {}) {\n // super(typeArg, eventInitDict);\n this.#detail = eventInitDict?.detail;\n }\n initCustomEvent() {}\n}\n\nfunction createElement(_tagName: string, _options?: ElementCreationOptions): HTMLElement {\n return new HTMLElement();\n}\n\nconst globalThisShim = {\n document: {\n createElement,\n },\n DocumentFragment,\n customElements,\n CustomEvent,\n EventTarget,\n HTMLElement,\n HTMLVideoElement,\n};\n\n// const isServer = typeof window === 'undefined' || typeof globalThis.customElements === 'undefined';\n// const GlobalThis = isServer ? globalThisShim : globalThis;\n// const Document = isServer ? globalThisShim.document : globalThis.document;\n//\n// export { GlobalThis as globalThis, Document as document };\nconst isServer = typeof window === 'undefined' || typeof globalThis.customElements === 'undefined';\ntype GlobalThis = typeof globalThis;\nconst internalGlobalThis: GlobalThis = (isServer ? globalThisShim : globalThis) as GlobalThis;\nconst internalDocument: Document = (isServer ? globalThisShim.document : globalThis.document) as Document;\n\nexport { internalGlobalThis as globalThis, internalDocument as document };\n", "export const isMaybeBrowser = () => typeof window != 'undefined';\n// @ts-ignore\nexport const isMaybeServer = () => typeof global != 'undefined';\n\nconst getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n", "/**\n * Custom Media Element\n * Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n *\n * The goal is to create an element that works just like the video element\n * but can be extended/sub-classed, because native elements cannot be\n * extended today across browsers.\n */\n\n// The onevent like props are weirdly set on the HTMLElement prototype with other\n// generic events making it impossible to pick these specific to HTMLMediaElement.\nexport const Events = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'encrypted',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n 'waitingforkey',\n 'resize',\n 'enterpictureinpicture',\n 'leavepictureinpicture',\n 'webkitbeginfullscreen',\n 'webkitendfullscreen',\n 'webkitpresentationmodechanged',\n];\n\nexport const audioTemplate = globalThis.document?.createElement('template');\n\nif (audioTemplate) {\n audioTemplate.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n audio {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n }\n </style>\n <slot></slot>\n `;\n}\n\nexport const videoTemplate = globalThis.document?.createElement('template');\n\nif (videoTemplate) {\n videoTemplate.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n video {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, 50% 50%);\n }\n\n video::-webkit-media-text-track-container {\n transform: var(--media-webkit-text-track-transform);\n transition: var(--media-webkit-text-track-transition);\n }\n </style>\n <slot></slot>\n `;\n}\n\n/**\n * @see https://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/\n */\nexport const CustomMediaMixin = (superclass, { tag, is }) => {\n\n // `is` makes it possible to extend a custom built-in. e.g. castable-video\n const nativeElTest = globalThis.document?.createElement(tag, { is });\n const nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\n return class CustomMedia extends superclass {\n static Events = Events;\n static template = tag.endsWith('audio') ? audioTemplate : videoTemplate;\n static #isDefined;\n\n static get observedAttributes() {\n CustomMedia.#define();\n\n // Include any attributes from the custom built-in.\n const natAttrs = nativeElTest?.constructor?.observedAttributes ?? [];\n\n return [\n ...natAttrs,\n 'autopictureinpicture',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'autoplay',\n 'controls',\n 'controlslist',\n 'crossorigin',\n 'loop',\n 'muted',\n 'playsinline',\n 'poster',\n 'preload',\n 'src',\n ];\n }\n\n static #define() {\n if (this.#isDefined) return;\n this.#isDefined = true;\n\n const propsToAttrs = new Set(this.observedAttributes);\n // defaultMuted maps to the muted attribute, handled manually below.\n propsToAttrs.delete('muted');\n\n // Passthrough native el functions from the custom el to the native el\n for (let prop of nativeElProps) {\n if (prop in this.prototype) continue;\n\n const type = typeof nativeElTest[prop];\n if (type == 'function') {\n // Function\n this.prototype[prop] = function (...args) {\n this.#init();\n\n const fn = () => {\n if (this.call) return this.call(prop, ...args);\n return this.nativeEl[prop].apply(this.nativeEl, args);\n };\n\n return fn();\n };\n } else {\n // Some properties like src, preload, defaultMuted are handled manually.\n\n // Getter\n let config = {\n get() {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n const val = this.getAttribute(attr);\n return val === null ? false : val === '' ? true : val;\n }\n\n return this.get?.(prop) ?? this.nativeEl?.[prop];\n },\n };\n\n if (prop !== prop.toUpperCase()) {\n // Setter (not a CONSTANT)\n config.set = function (val) {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n if (val === true || val === false || val == null) {\n this.toggleAttribute(attr, Boolean(val));\n } else {\n this.setAttribute(attr, val);\n }\n return;\n }\n\n if (this.set) {\n this.set(prop, val);\n return;\n }\n\n this.nativeEl[prop] = val;\n };\n }\n\n Object.defineProperty(this.prototype, prop, config);\n }\n }\n }\n\n #isInit;\n #nativeEl;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.append(this.constructor.template.content.cloneNode(true));\n }\n\n // If the custom element is defined before the custom element's HTML is parsed\n // no attributes will be available in the constructor (construction process).\n // Wait until initializing in the attributeChangedCallback or\n // connectedCallback or accessing any properties.\n }\n\n get nativeEl() {\n return this.#nativeEl\n ?? this.shadowRoot.querySelector(tag)\n ?? this.querySelector(tag);\n }\n\n set nativeEl(val) {\n this.#nativeEl = val;\n }\n\n get defaultMuted() {\n return this.hasAttribute('muted');\n }\n\n set defaultMuted(val) {\n this.toggleAttribute('muted', Boolean(val));\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n set src(val) {\n this.setAttribute('src', `${val}`);\n }\n\n get preload() {\n return this.getAttribute('preload') ?? this.nativeEl?.preload;\n }\n\n set preload(val) {\n this.setAttribute('preload', `${val}`);\n }\n\n #init() {\n if (this.#isInit) return;\n this.#isInit = true;\n\n // If there is no nativeEl by now, create it.\n if (!this.nativeEl) {\n const nativeEl = document.createElement(tag, { is });\n nativeEl.part = tag;\n this.shadowRoot.append(nativeEl);\n }\n\n // Neither Chrome or Firefox support setting the muted attribute\n // after using document.createElement.\n // Get around this by setting the muted property manually.\n this.nativeEl.muted = this.hasAttribute('muted');\n\n for (let prop of nativeElProps) {\n this.#upgradeProperty(prop);\n }\n\n // Keep some native child elements like track and source in sync.\n const childMap = new Map();\n // An unnamed <slot> will be filled with all of the custom element's\n // top-level child nodes that do not have the slot attribute.\n const slotEl = this.shadowRoot.querySelector('slot:not([name])');\n slotEl?.addEventListener('slotchange', () => {\n const removeNativeChildren = new Map(childMap);\n slotEl\n .assignedElements()\n .filter((el) => ['track', 'source'].includes(el.localName))\n .forEach((el) => {\n // If the source or track is still in the assigned elements keep it.\n removeNativeChildren.delete(el);\n // Re-use clones if possible.\n let clone = childMap.get(el);\n if (!clone) {\n clone = el.cloneNode();\n childMap.set(el, clone);\n }\n this.nativeEl.append?.(clone);\n });\n removeNativeChildren.forEach((el) => el.remove());\n });\n\n // The video events are dispatched on the CustomMediaElement instance.\n // This makes it possible to add event listeners before the element is upgraded.\n for (let type of this.constructor.Events) {\n this.shadowRoot.addEventListener?.(type, (evt) => {\n if (evt.target !== this.nativeEl) return;\n this.dispatchEvent(new CustomEvent(evt.type, { detail: evt.detail }));\n }, true);\n }\n }\n\n #upgradeProperty(prop) {\n // Sets properties that are set before the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n // Delete the set property from this instance.\n delete this[prop];\n // Set the value again via the (prototype) setter on this class.\n this[prop] = value;\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n // Initialize right after construction when the attributes become available.\n this.#init();\n this.#forwardAttribute(attrName, oldValue, newValue);\n }\n\n #forwardAttribute(attrName, oldValue, newValue) {\n // Ignore a few that don't need to be passed.\n if (['id', 'class'].includes(attrName)) {\n return;\n }\n\n if (newValue === null) {\n this.nativeEl.removeAttribute?.(attrName);\n } else {\n this.nativeEl.setAttribute?.(attrName, newValue);\n }\n }\n\n connectedCallback() {\n this.#init();\n }\n };\n};\n\nfunction getNativeElProps(nativeElTest) {\n // Map all native element properties to the custom element\n // so that they're applied to the native element.\n // Skipping HTMLElement because of things like \"attachShadow\"\n // causing issues. Most of those props still need to apply to\n // the custom element.\n let nativeElProps = [];\n\n // Walk the prototype chain up to HTMLElement.\n // This will grab all super class props in between.\n // i.e. VideoElement and MediaElement\n for (\n let proto = Object.getPrototypeOf(nativeElTest);\n proto && proto !== HTMLElement.prototype;\n proto = Object.getPrototypeOf(proto)\n ) {\n nativeElProps.push(...Object.getOwnPropertyNames(proto));\n }\n\n return nativeElProps;\n}\n\nexport const CustomVideoElement = globalThis.document ? CustomMediaMixin(HTMLElement, { tag: 'video' }) : class {};\n\nexport const CustomAudioElement = globalThis.document ? CustomMediaMixin(HTMLElement, { tag: 'audio' }) : class {};\n"],
5
+ "mappings": "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",
6
6
  "names": ["src_exports", "__export", "Events", "src_default", "__toCommonJS", "EventTarget", "_event", "DocumentFragment", "HTMLElement", "HTMLVideoElement", "customElements", "_name", "_constructor", "_options", "_root", "_detail", "CustomEvent", "typeArg", "eventInitDict", "__privateAdd", "__privateSet", "__privateGet", "createElement", "_tagName", "globalThisShim", "isServer", "internalGlobalThis", "internalDocument", "import_playback_core", "getEnvPlayerVersion", "player_version", "getPlayerVersion", "Events", "_a", "audioTemplate", "videoTemplate", "CustomMediaMixin", "superclass", "tag", "is", "_b", "_isDefined", "_define", "define_fn", "_isInit", "_nativeEl", "_init", "init_fn", "_upgradeProperty", "upgradeProperty_fn", "_forwardAttribute", "forwardAttribute_fn", "nativeElTest", "nativeElProps", "getNativeElProps", "__privateAdd", "_c", "__privateMethod", "__privateGet", "val", "__privateSet", "attrName", "oldValue", "newValue", "propsToAttrs", "prop", "args", "config", "attr", "nativeEl", "childMap", "slotEl", "removeNativeChildren", "el", "clone", "type", "evt", "value", "_d", "__publicField", "proto", "CustomVideoElement", "CustomAudioElement", "Attributes", "AttributeNameValues", "playerSoftwareVersion", "getPlayerVersion", "playerSoftwareName", "_core", "_loadRequested", "_playerInitTime", "_metadata", "_requestLoad", "requestLoad_fn", "MuxAudioElement", "CustomAudioElement", "__privateAdd", "__privateSet", "_a", "__privateGet", "val", "num", "attrName", "currAttrs", "value", "oldValue", "newValue", "_b", "hadSrc", "hasSrc", "__privateMethod", "debug", "resp", "json", "internalGlobalThis", "src_default", "MuxAudioElement"]
7
7
  }
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var nt=Object.defineProperty;var at=(i,e,t)=>e in i?nt(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var G=(i,e,t)=>(at(i,typeof e!="symbol"?e+"":e,t),t),F=(i,e,t)=>{if(!e.has(i))throw TypeError("Cannot "+t)};var d=(i,e,t)=>(F(i,e,"read from private field"),t?t.call(i):e.get(i)),c=(i,e,t)=>{if(e.has(i))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(i):e.set(i,t)},p=(i,e,t,o)=>(F(i,e,"write to private field"),o?o.call(i,t):e.set(i,t),t);var f=(i,e,t)=>(F(i,e,"access private method"),t);var k=class{addEventListener(){}removeEventListener(){}dispatchEvent(e){return!0}};if(typeof DocumentFragment=="undefined"){class i extends k{}globalThis.DocumentFragment=i}var S=class extends k{},H=class extends k{},ot={get(i){},define(i,e,t){},upgrade(i){},whenDefined(i){return Promise.resolve(S)}},I,V=class{constructor(e,t={}){c(this,I,void 0);p(this,I,t==null?void 0:t.detail)}get detail(){return d(this,I)}initCustomEvent(){}};I=new WeakMap;function ut(i,e){return new S}var W={document:{createElement:ut},DocumentFragment,customElements:ot,CustomEvent:V,EventTarget:k,HTMLElement:S,HTMLVideoElement:H},J=typeof window=="undefined"||typeof globalThis.customElements=="undefined",K=J?W:globalThis,Mt=J?W.document:globalThis.document;import{initialize as ht,teardown as mt,generatePlayerInitTime as pt,PlaybackTypes as U,toMuxVideoURL as bt,MediaError as Kt,getStartDate as ft,getCurrentPdt as gt}from"@mux/playback-core";var lt=()=>{try{return"0.10.2"}catch{}return"UNKNOWN"},dt=lt(),Q=()=>dt;var tt=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"],X,q=(X=globalThis.document)==null?void 0:X.createElement("template");q&&(q.innerHTML=`
1
+ var nt=Object.defineProperty;var at=(i,e,t)=>e in i?nt(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var G=(i,e,t)=>(at(i,typeof e!="symbol"?e+"":e,t),t),F=(i,e,t)=>{if(!e.has(i))throw TypeError("Cannot "+t)};var d=(i,e,t)=>(F(i,e,"read from private field"),t?t.call(i):e.get(i)),c=(i,e,t)=>{if(e.has(i))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(i):e.set(i,t)},p=(i,e,t,o)=>(F(i,e,"write to private field"),o?o.call(i,t):e.set(i,t),t);var f=(i,e,t)=>(F(i,e,"access private method"),t);var k=class{addEventListener(){}removeEventListener(){}dispatchEvent(e){return!0}};if(typeof DocumentFragment=="undefined"){class i extends k{}globalThis.DocumentFragment=i}var S=class extends k{},H=class extends k{},ot={get(i){},define(i,e,t){},upgrade(i){},whenDefined(i){return Promise.resolve(S)}},I,V=class{constructor(e,t={}){c(this,I,void 0);p(this,I,t==null?void 0:t.detail)}get detail(){return d(this,I)}initCustomEvent(){}};I=new WeakMap;function ut(i,e){return new S}var W={document:{createElement:ut},DocumentFragment,customElements:ot,CustomEvent:V,EventTarget:k,HTMLElement:S,HTMLVideoElement:H},J=typeof window=="undefined"||typeof globalThis.customElements=="undefined",K=J?W:globalThis,kt=J?W.document:globalThis.document;import{initialize as ht,teardown as mt,generatePlayerInitTime as pt,PlaybackTypes as U,toMuxVideoURL as bt,MediaError as Yt,getStartDate as ft,getCurrentPdt as gt,getEnded as Et}from"@mux/playback-core";var lt=()=>{try{return"0.10.3"}catch{}return"UNKNOWN"},dt=lt(),Q=()=>dt;var tt=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"],X,q=(X=globalThis.document)==null?void 0:X.createElement("template");q&&(q.innerHTML=`
2
2
  <style>
3
3
  :host {
4
4
  display: inline-block;
@@ -35,5 +35,5 @@ var nt=Object.defineProperty;var at=(i,e,t)=>e in i?nt(i,e,{enumerable:!0,config
35
35
  }
36
36
  </style>
37
37
  <slot></slot>
38
- `);var et=(i,{tag:e,is:t})=>{var C,b,y,h,it,O,x,T,_,w,st,B,rt;let o=(C=globalThis.document)==null?void 0:C.createElement(e,{is:t}),l=o?ct(o):[];return b=class extends i{constructor(){super();c(this,T);c(this,w);c(this,B);c(this,O,void 0);c(this,x,void 0);this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.append(this.constructor.template.content.cloneNode(!0)))}static get observedAttributes(){var r,g,m;return f(r=b,h,it).call(r),[...(m=(g=o==null?void 0:o.constructor)==null?void 0:g.observedAttributes)!=null?m:[],"autopictureinpicture","disablepictureinpicture","disableremoteplayback","autoplay","controls","controlslist","crossorigin","loop","muted","playsinline","poster","preload","src"]}get nativeEl(){var s,r;return(r=(s=d(this,x))!=null?s:this.shadowRoot.querySelector(e))!=null?r:this.querySelector(e)}set nativeEl(s){p(this,x,s)}get defaultMuted(){return this.hasAttribute("muted")}set defaultMuted(s){this.toggleAttribute("muted",Boolean(s))}get src(){return this.getAttribute("src")}set src(s){this.setAttribute("src",`${s}`)}get preload(){var s,r;return(r=this.getAttribute("preload"))!=null?r:(s=this.nativeEl)==null?void 0:s.preload}set preload(s){this.setAttribute("preload",`${s}`)}attributeChangedCallback(s,r,g){f(this,T,_).call(this),f(this,B,rt).call(this,s,r,g)}connectedCallback(){f(this,T,_).call(this)}},y=new WeakMap,h=new WeakSet,it=function(){if(d(this,y))return;p(this,y,!0);let s=new Set(this.observedAttributes);s.delete("muted");for(let r of l){if(r in this.prototype)continue;if(typeof o[r]=="function")this.prototype[r]=function(...m){return f(this,T,_).call(this),(()=>this.call?this.call(r,...m):this.nativeEl[r].apply(this.nativeEl,m))()};else{let m={get(){var u,E,L;f(this,T,_).call(this);let a=r.toLowerCase();if(s.has(a)){let M=this.getAttribute(a);return M===null?!1:M===""?!0:M}return(L=(u=this.get)==null?void 0:u.call(this,r))!=null?L:(E=this.nativeEl)==null?void 0:E[r]}};r!==r.toUpperCase()&&(m.set=function(a){f(this,T,_).call(this);let u=r.toLowerCase();if(s.has(u)){a===!0||a===!1||a==null?this.toggleAttribute(u,Boolean(a)):this.setAttribute(u,a);return}if(this.set){this.set(r,a);return}this.nativeEl[r]=a}),Object.defineProperty(this.prototype,r,m)}}},O=new WeakMap,x=new WeakMap,T=new WeakSet,_=function(){var g,m;if(d(this,O))return;if(p(this,O,!0),!this.nativeEl){let a=document.createElement(e,{is:t});a.part=e,this.shadowRoot.append(a)}this.nativeEl.muted=this.hasAttribute("muted");for(let a of l)f(this,w,st).call(this,a);let s=new Map,r=this.shadowRoot.querySelector("slot:not([name])");r==null||r.addEventListener("slotchange",()=>{let a=new Map(s);r.assignedElements().filter(u=>["track","source"].includes(u.localName)).forEach(u=>{var L,M;a.delete(u);let E=s.get(u);E||(E=u.cloneNode(),s.set(u,E)),(M=(L=this.nativeEl).append)==null||M.call(L,E)}),a.forEach(u=>u.remove())});for(let a of this.constructor.Events)(m=(g=this.shadowRoot).addEventListener)==null||m.call(g,a,u=>{u.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(u.type,{detail:u.detail}))},!0)},w=new WeakSet,st=function(s){if(Object.prototype.hasOwnProperty.call(this,s)){let r=this[s];delete this[s],this[s]=r}},B=new WeakSet,rt=function(s,r,g){var m,a,u,E;["id","class"].includes(s)||(g===null?(a=(m=this.nativeEl).removeAttribute)==null||a.call(m,s):(E=(u=this.nativeEl).setAttribute)==null||E.call(u,s,g))},c(b,h),G(b,"Events",tt),G(b,"template",e.endsWith("audio")?q:$),c(b,y,void 0),b};function ct(i){let e=[];for(let t=Object.getPrototypeOf(i);t&&t!==HTMLElement.prototype;t=Object.getPrototypeOf(t))e.push(...Object.getOwnPropertyNames(t));return e}var vt=globalThis.document?et(HTMLElement,{tag:"video"}):class{},Y=globalThis.document?et(HTMLElement,{tag:"audio"}):class{};var n={ENV_KEY:"env-key",DEBUG:"debug",PLAYBACK_ID:"playback-id",METADATA_URL:"metadata-url",PREFER_PLAYBACK:"prefer-playback",BEACON_COLLECTION_DOMAIN:"beacon-collection-domain",DISABLE_COOKIES:"disable-cookies",TYPE:"type",STREAM_TYPE:"stream-type",START_TIME:"start-time"},Et=Object.values(n),At=Q(),yt="mux-audio",A,P,R,v,D,z,N=class extends Y{constructor(){super();c(this,D);c(this,A,void 0);c(this,P,void 0);c(this,R,void 0);c(this,v,{});p(this,R,pt())}static get observedAttributes(){var t;return[...Et,...(t=Y.observedAttributes)!=null?t:[]]}get playerInitTime(){return d(this,R)}get playerSoftwareName(){return yt}get playerSoftwareVersion(){return At}get _hls(){var t;return(t=d(this,A))==null?void 0:t.engine}get mux(){return this.nativeEl.mux}get src(){return this.getAttribute("src")}set src(t){t!==this.src&&(t==null?this.removeAttribute("src"):this.setAttribute("src",t))}get preload(){let t=this.getAttribute("preload");return t===""?"auto":["none","metadata","auto"].includes(t)?t:super.preload}set preload(t){t!=this.getAttribute("preload")&&(["","none","metadata","auto"].includes(t)?this.setAttribute("preload",t):this.removeAttribute("preload"))}get debug(){return this.getAttribute(n.DEBUG)!=null}set debug(t){t!==this.debug&&(t?this.setAttribute(n.DEBUG,""):this.removeAttribute(n.DEBUG))}get disableCookies(){return this.hasAttribute(n.DISABLE_COOKIES)}set disableCookies(t){t!==this.disableCookies&&(t?this.setAttribute(n.DISABLE_COOKIES,""):this.removeAttribute(n.DISABLE_COOKIES))}get startTime(){let t=this.getAttribute(n.START_TIME);if(t==null)return;let o=+t;return Number.isNaN(o)?void 0:o}set startTime(t){t!==this.startTime&&(t==null?this.removeAttribute(n.START_TIME):this.setAttribute(n.START_TIME,`${t}`))}get playbackId(){var t;return(t=this.getAttribute(n.PLAYBACK_ID))!=null?t:void 0}set playbackId(t){t!==this.playbackId&&(t?this.setAttribute(n.PLAYBACK_ID,t):this.removeAttribute(n.PLAYBACK_ID))}get envKey(){var t;return(t=this.getAttribute(n.ENV_KEY))!=null?t:void 0}set envKey(t){t!==this.envKey&&(t?this.setAttribute(n.ENV_KEY,t):this.removeAttribute(n.ENV_KEY))}get beaconCollectionDomain(){var t;return(t=this.getAttribute(n.BEACON_COLLECTION_DOMAIN))!=null?t:void 0}set beaconCollectionDomain(t){t!==this.beaconCollectionDomain&&(t?this.setAttribute(n.BEACON_COLLECTION_DOMAIN,t):this.removeAttribute(n.BEACON_COLLECTION_DOMAIN))}get streamType(){var t;return(t=this.getAttribute(n.STREAM_TYPE))!=null?t:void 0}set streamType(t){t!==this.streamType&&(t?this.setAttribute(n.STREAM_TYPE,t):this.removeAttribute(n.STREAM_TYPE))}getStartDate(){return ft(this.nativeEl,this._hls)}get currentPdt(){return gt(this.nativeEl,this._hls)}get preferPlayback(){let t=this.getAttribute(n.PREFER_PLAYBACK);if(t===U.MSE||t===U.NATIVE)return t}set preferPlayback(t){t!==this.preferPlayback&&(t===U.MSE||t===U.NATIVE?this.setAttribute(n.PREFER_PLAYBACK,t):this.removeAttribute(n.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter(o=>o.startsWith("metadata-")&&![n.METADATA_URL].includes(o)).reduce((o,l)=>{let C=this.getAttribute(l);return C!=null&&(o[l.replace(/^metadata-/,"").replace(/-/g,"_")]=C),o},{}),...d(this,v)}}set metadata(t){p(this,v,t!=null?t:{}),this.mux&&(console.info("Some metadata values may not be overridable at this time. Make sure you set all metadata to override before setting the src."),this.mux.emit("hb",d(this,v)))}load(){p(this,A,ht(this,this.nativeEl,d(this,A)))}unload(){mt(this.nativeEl,d(this,A)),p(this,A,void 0)}attributeChangedCallback(t,o,l){var b,y;switch(Y.observedAttributes.includes(t)&&!["src","autoplay","preload"].includes(t)&&super.attributeChangedCallback(t,o,l),t){case"src":{let h=!!o,j=!!l;!h&&j?f(this,D,z).call(this):h&&!j?this.unload():h&&j&&(this.unload(),f(this,D,z).call(this));break}case"autoplay":if(l===o)break;(b=d(this,A))==null||b.setAutoplay(this.autoplay);break;case"preload":if(l===o)break;(y=d(this,A))==null||y.setPreload(l);break;case n.PLAYBACK_ID:this.src=bt(l!=null?l:void 0);break;case n.DEBUG:{let h=this.debug;this.mux&&console.info("Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src."),this._hls&&(this._hls.config.debug=h);break}case n.METADATA_URL:l&&fetch(l).then(h=>h.json()).then(h=>this.metadata=h).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${l}!`));break;default:break}}disconnectedCallback(){this.unload()}};A=new WeakMap,P=new WeakMap,R=new WeakMap,v=new WeakMap,D=new WeakSet,z=async function(){d(this,P)||(await p(this,P,Promise.resolve()),p(this,P,null),this.load())};K.customElements.get("mux-audio")||(K.customElements.define("mux-audio",N),K.MuxAudioElement=N);var jt=N;export{tt as AudioEvents,Kt as MediaError,jt as default};
38
+ `);var et=(i,{tag:e,is:t})=>{var C,b,y,h,it,O,x,T,_,w,st,B,rt;let o=(C=globalThis.document)==null?void 0:C.createElement(e,{is:t}),l=o?ct(o):[];return b=class extends i{constructor(){super();c(this,T);c(this,w);c(this,B);c(this,O,void 0);c(this,x,void 0);this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.append(this.constructor.template.content.cloneNode(!0)))}static get observedAttributes(){var r,g,m;return f(r=b,h,it).call(r),[...(m=(g=o==null?void 0:o.constructor)==null?void 0:g.observedAttributes)!=null?m:[],"autopictureinpicture","disablepictureinpicture","disableremoteplayback","autoplay","controls","controlslist","crossorigin","loop","muted","playsinline","poster","preload","src"]}get nativeEl(){var s,r;return(r=(s=d(this,x))!=null?s:this.shadowRoot.querySelector(e))!=null?r:this.querySelector(e)}set nativeEl(s){p(this,x,s)}get defaultMuted(){return this.hasAttribute("muted")}set defaultMuted(s){this.toggleAttribute("muted",Boolean(s))}get src(){return this.getAttribute("src")}set src(s){this.setAttribute("src",`${s}`)}get preload(){var s,r;return(r=this.getAttribute("preload"))!=null?r:(s=this.nativeEl)==null?void 0:s.preload}set preload(s){this.setAttribute("preload",`${s}`)}attributeChangedCallback(s,r,g){f(this,T,_).call(this),f(this,B,rt).call(this,s,r,g)}connectedCallback(){f(this,T,_).call(this)}},y=new WeakMap,h=new WeakSet,it=function(){if(d(this,y))return;p(this,y,!0);let s=new Set(this.observedAttributes);s.delete("muted");for(let r of l){if(r in this.prototype)continue;if(typeof o[r]=="function")this.prototype[r]=function(...m){return f(this,T,_).call(this),(()=>this.call?this.call(r,...m):this.nativeEl[r].apply(this.nativeEl,m))()};else{let m={get(){var u,E,L;f(this,T,_).call(this);let a=r.toLowerCase();if(s.has(a)){let M=this.getAttribute(a);return M===null?!1:M===""?!0:M}return(L=(u=this.get)==null?void 0:u.call(this,r))!=null?L:(E=this.nativeEl)==null?void 0:E[r]}};r!==r.toUpperCase()&&(m.set=function(a){f(this,T,_).call(this);let u=r.toLowerCase();if(s.has(u)){a===!0||a===!1||a==null?this.toggleAttribute(u,Boolean(a)):this.setAttribute(u,a);return}if(this.set){this.set(r,a);return}this.nativeEl[r]=a}),Object.defineProperty(this.prototype,r,m)}}},O=new WeakMap,x=new WeakMap,T=new WeakSet,_=function(){var g,m;if(d(this,O))return;if(p(this,O,!0),!this.nativeEl){let a=document.createElement(e,{is:t});a.part=e,this.shadowRoot.append(a)}this.nativeEl.muted=this.hasAttribute("muted");for(let a of l)f(this,w,st).call(this,a);let s=new Map,r=this.shadowRoot.querySelector("slot:not([name])");r==null||r.addEventListener("slotchange",()=>{let a=new Map(s);r.assignedElements().filter(u=>["track","source"].includes(u.localName)).forEach(u=>{var L,M;a.delete(u);let E=s.get(u);E||(E=u.cloneNode(),s.set(u,E)),(M=(L=this.nativeEl).append)==null||M.call(L,E)}),a.forEach(u=>u.remove())});for(let a of this.constructor.Events)(m=(g=this.shadowRoot).addEventListener)==null||m.call(g,a,u=>{u.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(u.type,{detail:u.detail}))},!0)},w=new WeakSet,st=function(s){if(Object.prototype.hasOwnProperty.call(this,s)){let r=this[s];delete this[s],this[s]=r}},B=new WeakSet,rt=function(s,r,g){var m,a,u,E;["id","class"].includes(s)||(g===null?(a=(m=this.nativeEl).removeAttribute)==null||a.call(m,s):(E=(u=this.nativeEl).setAttribute)==null||E.call(u,s,g))},c(b,h),G(b,"Events",tt),G(b,"template",e.endsWith("audio")?q:$),c(b,y,void 0),b};function ct(i){let e=[];for(let t=Object.getPrototypeOf(i);t&&t!==HTMLElement.prototype;t=Object.getPrototypeOf(t))e.push(...Object.getOwnPropertyNames(t));return e}var Ot=globalThis.document?et(HTMLElement,{tag:"video"}):class{},Y=globalThis.document?et(HTMLElement,{tag:"audio"}):class{};var n={ENV_KEY:"env-key",DEBUG:"debug",PLAYBACK_ID:"playback-id",METADATA_URL:"metadata-url",PREFER_PLAYBACK:"prefer-playback",BEACON_COLLECTION_DOMAIN:"beacon-collection-domain",DISABLE_COOKIES:"disable-cookies",TYPE:"type",STREAM_TYPE:"stream-type",START_TIME:"start-time"},At=Object.values(n),yt=Q(),Tt="mux-audio",A,P,R,v,D,z,N=class extends Y{constructor(){super();c(this,D);c(this,A,void 0);c(this,P,void 0);c(this,R,void 0);c(this,v,{});p(this,R,pt())}static get observedAttributes(){var t;return[...At,...(t=Y.observedAttributes)!=null?t:[]]}get playerInitTime(){return d(this,R)}get playerSoftwareName(){return Tt}get playerSoftwareVersion(){return yt}get _hls(){var t;return(t=d(this,A))==null?void 0:t.engine}get mux(){return this.nativeEl.mux}get src(){return this.getAttribute("src")}set src(t){t!==this.src&&(t==null?this.removeAttribute("src"):this.setAttribute("src",t))}get preload(){let t=this.getAttribute("preload");return t===""?"auto":["none","metadata","auto"].includes(t)?t:super.preload}set preload(t){t!=this.getAttribute("preload")&&(["","none","metadata","auto"].includes(t)?this.setAttribute("preload",t):this.removeAttribute("preload"))}get debug(){return this.getAttribute(n.DEBUG)!=null}set debug(t){t!==this.debug&&(t?this.setAttribute(n.DEBUG,""):this.removeAttribute(n.DEBUG))}get disableCookies(){return this.hasAttribute(n.DISABLE_COOKIES)}set disableCookies(t){t!==this.disableCookies&&(t?this.setAttribute(n.DISABLE_COOKIES,""):this.removeAttribute(n.DISABLE_COOKIES))}get startTime(){let t=this.getAttribute(n.START_TIME);if(t==null)return;let o=+t;return Number.isNaN(o)?void 0:o}set startTime(t){t!==this.startTime&&(t==null?this.removeAttribute(n.START_TIME):this.setAttribute(n.START_TIME,`${t}`))}get playbackId(){var t;return(t=this.getAttribute(n.PLAYBACK_ID))!=null?t:void 0}set playbackId(t){t!==this.playbackId&&(t?this.setAttribute(n.PLAYBACK_ID,t):this.removeAttribute(n.PLAYBACK_ID))}get ended(){return Et(this.nativeEl,this._hls)}get envKey(){var t;return(t=this.getAttribute(n.ENV_KEY))!=null?t:void 0}set envKey(t){t!==this.envKey&&(t?this.setAttribute(n.ENV_KEY,t):this.removeAttribute(n.ENV_KEY))}get beaconCollectionDomain(){var t;return(t=this.getAttribute(n.BEACON_COLLECTION_DOMAIN))!=null?t:void 0}set beaconCollectionDomain(t){t!==this.beaconCollectionDomain&&(t?this.setAttribute(n.BEACON_COLLECTION_DOMAIN,t):this.removeAttribute(n.BEACON_COLLECTION_DOMAIN))}get streamType(){var t;return(t=this.getAttribute(n.STREAM_TYPE))!=null?t:void 0}set streamType(t){t!==this.streamType&&(t?this.setAttribute(n.STREAM_TYPE,t):this.removeAttribute(n.STREAM_TYPE))}getStartDate(){return ft(this.nativeEl,this._hls)}get currentPdt(){return gt(this.nativeEl,this._hls)}get preferPlayback(){let t=this.getAttribute(n.PREFER_PLAYBACK);if(t===U.MSE||t===U.NATIVE)return t}set preferPlayback(t){t!==this.preferPlayback&&(t===U.MSE||t===U.NATIVE?this.setAttribute(n.PREFER_PLAYBACK,t):this.removeAttribute(n.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter(o=>o.startsWith("metadata-")&&![n.METADATA_URL].includes(o)).reduce((o,l)=>{let C=this.getAttribute(l);return C!=null&&(o[l.replace(/^metadata-/,"").replace(/-/g,"_")]=C),o},{}),...d(this,v)}}set metadata(t){p(this,v,t!=null?t:{}),this.mux&&(console.info("Some metadata values may not be overridable at this time. Make sure you set all metadata to override before setting the src."),this.mux.emit("hb",d(this,v)))}load(){p(this,A,ht(this,this.nativeEl,d(this,A)))}unload(){mt(this.nativeEl,d(this,A)),p(this,A,void 0)}attributeChangedCallback(t,o,l){var b,y;switch(Y.observedAttributes.includes(t)&&!["src","autoplay","preload"].includes(t)&&super.attributeChangedCallback(t,o,l),t){case"src":{let h=!!o,j=!!l;!h&&j?f(this,D,z).call(this):h&&!j?this.unload():h&&j&&(this.unload(),f(this,D,z).call(this));break}case"autoplay":if(l===o)break;(b=d(this,A))==null||b.setAutoplay(this.autoplay);break;case"preload":if(l===o)break;(y=d(this,A))==null||y.setPreload(l);break;case n.PLAYBACK_ID:this.src=bt(l!=null?l:void 0);break;case n.DEBUG:{let h=this.debug;this.mux&&console.info("Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src."),this._hls&&(this._hls.config.debug=h);break}case n.METADATA_URL:l&&fetch(l).then(h=>h.json()).then(h=>this.metadata=h).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${l}!`));break;default:break}}disconnectedCallback(){this.unload()}};A=new WeakMap,P=new WeakMap,R=new WeakMap,v=new WeakMap,D=new WeakSet,z=async function(){d(this,P)||(await p(this,P,Promise.resolve()),p(this,P,null),this.load())};K.customElements.get("mux-audio")||(K.customElements.define("mux-audio",N),K.MuxAudioElement=N);var Gt=N;export{tt as AudioEvents,Yt as MediaError,Gt as default};
39
39
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/polyfills/index.ts", "../src/index.ts", "../src/env.ts", "../../../node_modules/custom-media-element/custom-media-element.js"],
4
- "sourcesContent": ["/* eslint @typescript-eslint/no-empty-function: \"off\", @typescript-eslint/no-unused-vars: \"off\" */\n\nclass EventTarget {\n addEventListener() {}\n removeEventListener() {}\n dispatchEvent(_event: Event) {\n return true;\n }\n}\n\n// @github/template-parts requires DocumentFragment to be available on globalThis for SSR\nif (typeof DocumentFragment === 'undefined') {\n class DocumentFragment extends EventTarget {}\n // @ts-ignore\n globalThis.DocumentFragment = DocumentFragment;\n}\n\nclass HTMLElement extends EventTarget {}\nclass HTMLVideoElement extends EventTarget {}\n\nconst customElements: CustomElementRegistry = {\n get(_name: string) {\n return undefined;\n },\n define(_name, _constructor, _options) {},\n upgrade(_root) {},\n whenDefined(_name) {\n return Promise.resolve(HTMLElement as unknown as CustomElementConstructor);\n },\n};\n\nclass CustomEvent {\n #detail;\n get detail() {\n return this.#detail;\n }\n constructor(typeArg: string, eventInitDict: CustomEventInit = {}) {\n // super(typeArg, eventInitDict);\n this.#detail = eventInitDict?.detail;\n }\n initCustomEvent() {}\n}\n\nfunction createElement(_tagName: string, _options?: ElementCreationOptions): HTMLElement {\n return new HTMLElement();\n}\n\nconst globalThisShim = {\n document: {\n createElement,\n },\n DocumentFragment,\n customElements,\n CustomEvent,\n EventTarget,\n HTMLElement,\n HTMLVideoElement,\n};\n\n// const isServer = typeof window === 'undefined' || typeof globalThis.customElements === 'undefined';\n// const GlobalThis = isServer ? globalThisShim : globalThis;\n// const Document = isServer ? globalThisShim.document : globalThis.document;\n//\n// export { GlobalThis as globalThis, Document as document };\nconst isServer = typeof window === 'undefined' || typeof globalThis.customElements === 'undefined';\ntype GlobalThis = typeof globalThis;\nconst internalGlobalThis: GlobalThis = (isServer ? globalThisShim : globalThis) as GlobalThis;\nconst internalDocument: Document = (isServer ? globalThisShim.document : globalThis.document) as Document;\n\nexport { internalGlobalThis as globalThis, internalDocument as document };\n", "import { globalThis } from './polyfills';\nimport {\n initialize,\n teardown,\n generatePlayerInitTime,\n MuxMediaProps,\n StreamTypes,\n PlaybackTypes,\n ValueOf,\n toMuxVideoURL,\n Metadata,\n MediaError,\n getStartDate,\n getCurrentPdt,\n} from '@mux/playback-core';\nimport type { PlaybackCore, PlaybackEngine, ExtensionMimeTypeMap } from '@mux/playback-core';\nimport { getPlayerVersion } from './env';\n// this must be imported after playback-core for the polyfill to be included\nimport { CustomAudioElement, Events as AudioEvents } from 'custom-media-element';\n\n/** @TODO make the relationship between name+value smarter and more deriveable (CJP) */\ntype AttributeNames = {\n ENV_KEY: 'env-key';\n DEBUG: 'debug';\n METADATA_URL: 'metadata-url';\n BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain';\n DISABLE_COOKIES: 'disable-cookies';\n PLAYBACK_ID: 'playback-id';\n PREFER_PLAYBACK: 'prefer-playback';\n TYPE: 'type';\n STREAM_TYPE: 'stream-type';\n START_TIME: 'start-time';\n};\n\nconst Attributes: AttributeNames = {\n ENV_KEY: 'env-key',\n DEBUG: 'debug',\n PLAYBACK_ID: 'playback-id',\n METADATA_URL: 'metadata-url',\n PREFER_PLAYBACK: 'prefer-playback',\n BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain',\n DISABLE_COOKIES: 'disable-cookies',\n TYPE: 'type',\n STREAM_TYPE: 'stream-type',\n START_TIME: 'start-time',\n};\n\nconst AttributeNameValues = Object.values(Attributes);\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-audio';\n\nclass MuxAudioElement extends CustomAudioElement implements Partial<MuxMediaProps> {\n static get observedAttributes() {\n return [...AttributeNameValues, ...(CustomAudioElement.observedAttributes ?? [])];\n }\n\n #core?: PlaybackCore;\n #loadRequested?: Promise<void> | null;\n #playerInitTime: number;\n #metadata: Readonly<Metadata> = {};\n\n constructor() {\n super();\n this.#playerInitTime = generatePlayerInitTime();\n }\n\n get playerInitTime() {\n return this.#playerInitTime;\n }\n\n get playerSoftwareName() {\n return playerSoftwareName;\n }\n\n get playerSoftwareVersion() {\n return playerSoftwareVersion;\n }\n\n // Keeping this named \"_hls\" since it's exposed for unadvertised \"advanced usage\" via getter that assumes specifically hls.js (CJP)\n get _hls(): PlaybackEngine | undefined {\n return this.#core?.engine;\n }\n\n get mux(): Readonly<HTMLAudioElement['mux']> | undefined {\n return this.nativeEl.mux;\n }\n\n get src() {\n // Use the attribute value as the source of truth.\n // No need to store it in two places.\n // This avoids needing a to read the attribute initially and update the src.\n return this.getAttribute('src') as string;\n }\n\n set src(val: string) {\n // If being set by attributeChangedCallback,\n // dont' cause an infinite loop\n if (val === this.src) return;\n\n if (val == null) {\n this.removeAttribute('src');\n } else {\n this.setAttribute('src', val);\n }\n }\n\n get preload() {\n const val = this.getAttribute('preload') as HTMLMediaElement['preload'];\n if (val === '') return 'auto';\n if (['none', 'metadata', 'auto'].includes(val)) return val;\n return super.preload;\n }\n\n set preload(val) {\n // don't cause an infinite loop\n // check the attribute because an empty string maps to the `auto` prop\n if (val == this.getAttribute('preload')) return;\n\n if (['', 'none', 'metadata', 'auto'].includes(val)) {\n this.setAttribute('preload', val);\n } else {\n this.removeAttribute('preload');\n }\n }\n\n get debug(): boolean {\n return this.getAttribute(Attributes.DEBUG) != null;\n }\n\n set debug(val: boolean) {\n // dont' cause an infinite loop\n if (val === this.debug) return;\n\n if (val) {\n this.setAttribute(Attributes.DEBUG, '');\n } else {\n this.removeAttribute(Attributes.DEBUG);\n }\n }\n\n get disableCookies(): boolean {\n return this.hasAttribute(Attributes.DISABLE_COOKIES);\n }\n\n set disableCookies(val: boolean) {\n // dont' cause an infinite loop\n if (val === this.disableCookies) return;\n\n if (val) {\n this.setAttribute(Attributes.DISABLE_COOKIES, '');\n } else {\n this.removeAttribute(Attributes.DISABLE_COOKIES);\n }\n }\n\n get startTime(): number | undefined {\n const val = this.getAttribute(Attributes.START_TIME);\n if (val == null) return undefined;\n const num = +val;\n return !Number.isNaN(num) ? num : undefined;\n }\n\n set startTime(val: number | undefined) {\n // dont' cause an infinite loop\n if (val === this.startTime) return;\n\n if (val == null) {\n this.removeAttribute(Attributes.START_TIME);\n } else {\n this.setAttribute(Attributes.START_TIME, `${val}`);\n }\n }\n\n get playbackId(): string | undefined {\n return this.getAttribute(Attributes.PLAYBACK_ID) ?? undefined;\n }\n\n set playbackId(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.playbackId) return;\n\n if (val) {\n this.setAttribute(Attributes.PLAYBACK_ID, val);\n } else {\n this.removeAttribute(Attributes.PLAYBACK_ID);\n }\n }\n\n get envKey(): string | undefined {\n return this.getAttribute(Attributes.ENV_KEY) ?? undefined;\n }\n\n set envKey(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.envKey) return;\n\n if (val) {\n this.setAttribute(Attributes.ENV_KEY, val);\n } else {\n this.removeAttribute(Attributes.ENV_KEY);\n }\n }\n\n get beaconCollectionDomain(): string | undefined {\n return this.getAttribute(Attributes.BEACON_COLLECTION_DOMAIN) ?? undefined;\n }\n\n set beaconCollectionDomain(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.beaconCollectionDomain) return;\n\n if (val) {\n this.setAttribute(Attributes.BEACON_COLLECTION_DOMAIN, val);\n } else {\n this.removeAttribute(Attributes.BEACON_COLLECTION_DOMAIN);\n }\n }\n\n get streamType(): ValueOf<StreamTypes> | undefined {\n // getAttribute doesn't know that this attribute is well defined. Should explore extending for MuxVideo (CJP)\n return (this.getAttribute(Attributes.STREAM_TYPE) as ValueOf<StreamTypes>) ?? undefined;\n }\n\n set streamType(val: ValueOf<StreamTypes> | undefined) {\n // dont' cause an infinite loop\n if (val === this.streamType) return;\n\n if (val) {\n this.setAttribute(Attributes.STREAM_TYPE, val);\n } else {\n this.removeAttribute(Attributes.STREAM_TYPE);\n }\n }\n\n getStartDate() {\n return getStartDate(this.nativeEl, this._hls);\n }\n\n get currentPdt() {\n return getCurrentPdt(this.nativeEl, this._hls);\n }\n\n get preferPlayback(): ValueOf<PlaybackTypes> | undefined {\n const val = this.getAttribute(Attributes.PREFER_PLAYBACK);\n if (val === PlaybackTypes.MSE || val === PlaybackTypes.NATIVE) return val;\n return undefined;\n }\n\n set preferPlayback(val: ValueOf<PlaybackTypes> | undefined) {\n if (val === this.preferPlayback) return;\n\n if (val === PlaybackTypes.MSE || val === PlaybackTypes.NATIVE) {\n this.setAttribute(Attributes.PREFER_PLAYBACK, val);\n } else {\n this.removeAttribute(Attributes.PREFER_PLAYBACK);\n }\n }\n\n get metadata() {\n const inferredMetadataAttrs: { [key: string]: string } = this.getAttributeNames()\n .filter((attrName) => {\n return attrName.startsWith('metadata-') && !([Attributes.METADATA_URL] as string[]).includes(attrName);\n })\n .reduce((currAttrs, attrName) => {\n const value = this.getAttribute(attrName);\n if (value != null) {\n currAttrs[attrName.replace(/^metadata-/, '').replace(/-/g, '_') as string] = value;\n }\n return currAttrs;\n }, {} as { [key: string]: string });\n\n return {\n ...inferredMetadataAttrs,\n ...this.#metadata,\n };\n }\n\n set metadata(val: Readonly<Metadata> | undefined) {\n this.#metadata = val ?? {};\n if (!!this.mux) {\n /** @TODO Link to docs for a more detailed discussion (CJP) */\n console.info(\n 'Some metadata values may not be overridable at this time. Make sure you set all metadata to override before setting the src.'\n );\n this.mux.emit('hb', this.#metadata);\n }\n }\n\n async #requestLoad() {\n if (this.#loadRequested) return;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.load();\n }\n\n load() {\n this.#core = initialize(this as Partial<MuxMediaProps>, this.nativeEl, this.#core);\n }\n\n unload() {\n teardown(this.nativeEl, this.#core);\n this.#core = undefined;\n }\n\n attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null) {\n // Only forward the attributes to the native media element that are not handled.\n const isNativeAttr = CustomAudioElement.observedAttributes.includes(attrName);\n if (isNativeAttr && !['src', 'autoplay', 'preload'].includes(attrName)) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n\n switch (attrName) {\n case 'src': {\n const hadSrc = !!oldValue;\n const hasSrc = !!newValue;\n if (!hadSrc && hasSrc) {\n this.#requestLoad();\n } else if (hadSrc && !hasSrc) {\n this.unload();\n /** @TODO Test this thoroughly (async?) and confirm unload() necessary (CJP) */\n } else if (hadSrc && hasSrc) {\n this.unload();\n this.#requestLoad();\n }\n break;\n }\n case 'autoplay':\n if (newValue === oldValue) {\n break;\n }\n /** In case newValue is an empty string or null, use this.autoplay which translates to booleans (WL) */\n this.#core?.setAutoplay(this.autoplay);\n break;\n case 'preload':\n if (newValue === oldValue) {\n break;\n }\n this.#core?.setPreload(newValue as HTMLMediaElement['preload']);\n break;\n case Attributes.PLAYBACK_ID:\n /** @TODO Improv+Discuss - how should playback-id update wrt src attr changes (and vice versa) (CJP) */\n this.src = toMuxVideoURL(newValue ?? undefined) as string;\n break;\n case Attributes.DEBUG: {\n const debug = this.debug;\n if (!!this.mux) {\n /** @TODO Link to docs for a more detailed discussion (CJP) */\n console.info(\n 'Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src.'\n );\n }\n if (!!this._hls) {\n this._hls.config.debug = debug;\n }\n break;\n }\n case Attributes.METADATA_URL:\n if (newValue) {\n fetch(newValue)\n .then((resp) => resp.json())\n .then((json) => (this.metadata = json))\n .catch(() => console.error(`Unable to load or parse metadata JSON from metadata-url ${newValue}!`));\n }\n break;\n default:\n break;\n }\n }\n\n disconnectedCallback() {\n this.unload();\n }\n}\n\ntype MuxAudioElementType = typeof MuxAudioElement;\ndeclare global {\n var MuxAudioElement: MuxAudioElementType; // eslint-disable-line\n}\n\nif (!globalThis.customElements.get('mux-audio')) {\n globalThis.customElements.define('mux-audio', MuxAudioElement);\n /** @TODO consider externalizing this (breaks standard modularity) */\n globalThis.MuxAudioElement = MuxAudioElement;\n}\n\nexport { PlaybackEngine, PlaybackEngine as Hls, ExtensionMimeTypeMap as MimeTypes, MediaError, AudioEvents };\n\nexport default MuxAudioElement;\n", "export const isMaybeBrowser = () => typeof window != 'undefined';\n// @ts-ignore\nexport const isMaybeServer = () => typeof global != 'undefined';\n\nconst getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n", "/**\n * Custom Media Element\n * Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n *\n * The goal is to create an element that works just like the video element\n * but can be extended/sub-classed, because native elements cannot be\n * extended today across browsers.\n */\n\n// The onevent like props are weirdly set on the HTMLElement prototype with other\n// generic events making it impossible to pick these specific to HTMLMediaElement.\nexport const Events = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'encrypted',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n 'waitingforkey',\n 'resize',\n 'enterpictureinpicture',\n 'leavepictureinpicture',\n 'webkitbeginfullscreen',\n 'webkitendfullscreen',\n 'webkitpresentationmodechanged',\n];\n\nexport const audioTemplate = globalThis.document?.createElement('template');\n\nif (audioTemplate) {\n audioTemplate.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n audio {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n }\n </style>\n <slot></slot>\n `;\n}\n\nexport const videoTemplate = globalThis.document?.createElement('template');\n\nif (videoTemplate) {\n videoTemplate.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n video {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, 50% 50%);\n }\n\n video::-webkit-media-text-track-container {\n transform: var(--media-webkit-text-track-transform);\n transition: var(--media-webkit-text-track-transition);\n }\n </style>\n <slot></slot>\n `;\n}\n\n/**\n * @see https://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/\n */\nexport const CustomMediaMixin = (superclass, { tag, is }) => {\n\n // `is` makes it possible to extend a custom built-in. e.g. castable-video\n const nativeElTest = globalThis.document?.createElement(tag, { is });\n const nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\n return class CustomMedia extends superclass {\n static Events = Events;\n static template = tag.endsWith('audio') ? audioTemplate : videoTemplate;\n static #isDefined;\n\n static get observedAttributes() {\n CustomMedia.#define();\n\n // Include any attributes from the custom built-in.\n const natAttrs = nativeElTest?.constructor?.observedAttributes ?? [];\n\n return [\n ...natAttrs,\n 'autopictureinpicture',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'autoplay',\n 'controls',\n 'controlslist',\n 'crossorigin',\n 'loop',\n 'muted',\n 'playsinline',\n 'poster',\n 'preload',\n 'src',\n ];\n }\n\n static #define() {\n if (this.#isDefined) return;\n this.#isDefined = true;\n\n const propsToAttrs = new Set(this.observedAttributes);\n // defaultMuted maps to the muted attribute, handled manually below.\n propsToAttrs.delete('muted');\n\n // Passthrough native el functions from the custom el to the native el\n for (let prop of nativeElProps) {\n if (prop in this.prototype) continue;\n\n const type = typeof nativeElTest[prop];\n if (type == 'function') {\n // Function\n this.prototype[prop] = function (...args) {\n this.#init();\n\n const fn = () => {\n if (this.call) return this.call(prop, ...args);\n return this.nativeEl[prop].apply(this.nativeEl, args);\n };\n\n return fn();\n };\n } else {\n // Some properties like src, preload, defaultMuted are handled manually.\n\n // Getter\n let config = {\n get() {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n const val = this.getAttribute(attr);\n return val === null ? false : val === '' ? true : val;\n }\n\n return this.get?.(prop) ?? this.nativeEl?.[prop];\n },\n };\n\n if (prop !== prop.toUpperCase()) {\n // Setter (not a CONSTANT)\n config.set = function (val) {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n if (val === true || val === false || val == null) {\n this.toggleAttribute(attr, Boolean(val));\n } else {\n this.setAttribute(attr, val);\n }\n return;\n }\n\n if (this.set) {\n this.set(prop, val);\n return;\n }\n\n this.nativeEl[prop] = val;\n };\n }\n\n Object.defineProperty(this.prototype, prop, config);\n }\n }\n }\n\n #isInit;\n #nativeEl;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.append(this.constructor.template.content.cloneNode(true));\n }\n\n // If the custom element is defined before the custom element's HTML is parsed\n // no attributes will be available in the constructor (construction process).\n // Wait until initializing in the attributeChangedCallback or\n // connectedCallback or accessing any properties.\n }\n\n get nativeEl() {\n return this.#nativeEl\n ?? this.shadowRoot.querySelector(tag)\n ?? this.querySelector(tag);\n }\n\n set nativeEl(val) {\n this.#nativeEl = val;\n }\n\n get defaultMuted() {\n return this.hasAttribute('muted');\n }\n\n set defaultMuted(val) {\n this.toggleAttribute('muted', Boolean(val));\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n set src(val) {\n this.setAttribute('src', `${val}`);\n }\n\n get preload() {\n return this.getAttribute('preload') ?? this.nativeEl?.preload;\n }\n\n set preload(val) {\n this.setAttribute('preload', `${val}`);\n }\n\n #init() {\n if (this.#isInit) return;\n this.#isInit = true;\n\n // If there is no nativeEl by now, create it.\n if (!this.nativeEl) {\n const nativeEl = document.createElement(tag, { is });\n nativeEl.part = tag;\n this.shadowRoot.append(nativeEl);\n }\n\n // Neither Chrome or Firefox support setting the muted attribute\n // after using document.createElement.\n // Get around this by setting the muted property manually.\n this.nativeEl.muted = this.hasAttribute('muted');\n\n for (let prop of nativeElProps) {\n this.#upgradeProperty(prop);\n }\n\n // Keep some native child elements like track and source in sync.\n const childMap = new Map();\n // An unnamed <slot> will be filled with all of the custom element's\n // top-level child nodes that do not have the slot attribute.\n const slotEl = this.shadowRoot.querySelector('slot:not([name])');\n slotEl?.addEventListener('slotchange', () => {\n const removeNativeChildren = new Map(childMap);\n slotEl\n .assignedElements()\n .filter((el) => ['track', 'source'].includes(el.localName))\n .forEach((el) => {\n // If the source or track is still in the assigned elements keep it.\n removeNativeChildren.delete(el);\n // Re-use clones if possible.\n let clone = childMap.get(el);\n if (!clone) {\n clone = el.cloneNode();\n childMap.set(el, clone);\n }\n this.nativeEl.append?.(clone);\n });\n removeNativeChildren.forEach((el) => el.remove());\n });\n\n // The video events are dispatched on the CustomMediaElement instance.\n // This makes it possible to add event listeners before the element is upgraded.\n for (let type of this.constructor.Events) {\n this.shadowRoot.addEventListener?.(type, (evt) => {\n if (evt.target !== this.nativeEl) return;\n this.dispatchEvent(new CustomEvent(evt.type, { detail: evt.detail }));\n }, true);\n }\n }\n\n #upgradeProperty(prop) {\n // Sets properties that are set before the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n // Delete the set property from this instance.\n delete this[prop];\n // Set the value again via the (prototype) setter on this class.\n this[prop] = value;\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n // Initialize right after construction when the attributes become available.\n this.#init();\n this.#forwardAttribute(attrName, oldValue, newValue);\n }\n\n #forwardAttribute(attrName, oldValue, newValue) {\n // Ignore a few that don't need to be passed.\n if (['id', 'class'].includes(attrName)) {\n return;\n }\n\n if (newValue === null) {\n this.nativeEl.removeAttribute?.(attrName);\n } else {\n this.nativeEl.setAttribute?.(attrName, newValue);\n }\n }\n\n connectedCallback() {\n this.#init();\n }\n };\n};\n\nfunction getNativeElProps(nativeElTest) {\n // Map all native element properties to the custom element\n // so that they're applied to the native element.\n // Skipping HTMLElement because of things like \"attachShadow\"\n // causing issues. Most of those props still need to apply to\n // the custom element.\n let nativeElProps = [];\n\n // Walk the prototype chain up to HTMLElement.\n // This will grab all super class props in between.\n // i.e. VideoElement and MediaElement\n for (\n let proto = Object.getPrototypeOf(nativeElTest);\n proto && proto !== HTMLElement.prototype;\n proto = Object.getPrototypeOf(proto)\n ) {\n nativeElProps.push(...Object.getOwnPropertyNames(proto));\n }\n\n return nativeElProps;\n}\n\nexport const CustomVideoElement = globalThis.document ? CustomMediaMixin(HTMLElement, { tag: 'video' }) : class {};\n\nexport const CustomAudioElement = globalThis.document ? CustomMediaMixin(HTMLElement, { tag: 'audio' }) : class {};\n"],
5
- "mappings": "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",
6
- "names": ["EventTarget", "_event", "DocumentFragment", "HTMLElement", "HTMLVideoElement", "customElements", "_name", "_constructor", "_options", "_root", "_detail", "CustomEvent", "typeArg", "eventInitDict", "__privateAdd", "__privateSet", "__privateGet", "createElement", "_tagName", "globalThisShim", "isServer", "internalGlobalThis", "internalDocument", "initialize", "teardown", "generatePlayerInitTime", "PlaybackTypes", "toMuxVideoURL", "MediaError", "getStartDate", "getCurrentPdt", "getEnvPlayerVersion", "player_version", "getPlayerVersion", "Events", "_a", "audioTemplate", "videoTemplate", "CustomMediaMixin", "superclass", "tag", "is", "_b", "_isDefined", "_define", "define_fn", "_isInit", "_nativeEl", "_init", "init_fn", "_upgradeProperty", "upgradeProperty_fn", "_forwardAttribute", "forwardAttribute_fn", "nativeElTest", "nativeElProps", "getNativeElProps", "__privateAdd", "_c", "__privateMethod", "__privateGet", "val", "__privateSet", "attrName", "oldValue", "newValue", "propsToAttrs", "prop", "args", "config", "attr", "nativeEl", "childMap", "slotEl", "removeNativeChildren", "el", "clone", "type", "evt", "value", "_d", "__publicField", "proto", "CustomVideoElement", "CustomAudioElement", "Attributes", "AttributeNameValues", "playerSoftwareVersion", "getPlayerVersion", "playerSoftwareName", "_core", "_loadRequested", "_playerInitTime", "_metadata", "_requestLoad", "requestLoad_fn", "MuxAudioElement", "CustomAudioElement", "__privateAdd", "__privateSet", "generatePlayerInitTime", "_a", "__privateGet", "val", "num", "getStartDate", "getCurrentPdt", "PlaybackTypes", "attrName", "currAttrs", "value", "initialize", "teardown", "oldValue", "newValue", "_b", "hadSrc", "hasSrc", "__privateMethod", "toMuxVideoURL", "debug", "resp", "json", "internalGlobalThis", "src_default", "MuxAudioElement"]
4
+ "sourcesContent": ["/* eslint @typescript-eslint/no-empty-function: \"off\", @typescript-eslint/no-unused-vars: \"off\" */\n\nclass EventTarget {\n addEventListener() {}\n removeEventListener() {}\n dispatchEvent(_event: Event) {\n return true;\n }\n}\n\n// @github/template-parts requires DocumentFragment to be available on globalThis for SSR\nif (typeof DocumentFragment === 'undefined') {\n class DocumentFragment extends EventTarget {}\n // @ts-ignore\n globalThis.DocumentFragment = DocumentFragment;\n}\n\nclass HTMLElement extends EventTarget {}\nclass HTMLVideoElement extends EventTarget {}\n\nconst customElements: CustomElementRegistry = {\n get(_name: string) {\n return undefined;\n },\n define(_name, _constructor, _options) {},\n upgrade(_root) {},\n whenDefined(_name) {\n return Promise.resolve(HTMLElement as unknown as CustomElementConstructor);\n },\n};\n\nclass CustomEvent {\n #detail;\n get detail() {\n return this.#detail;\n }\n constructor(typeArg: string, eventInitDict: CustomEventInit = {}) {\n // super(typeArg, eventInitDict);\n this.#detail = eventInitDict?.detail;\n }\n initCustomEvent() {}\n}\n\nfunction createElement(_tagName: string, _options?: ElementCreationOptions): HTMLElement {\n return new HTMLElement();\n}\n\nconst globalThisShim = {\n document: {\n createElement,\n },\n DocumentFragment,\n customElements,\n CustomEvent,\n EventTarget,\n HTMLElement,\n HTMLVideoElement,\n};\n\n// const isServer = typeof window === 'undefined' || typeof globalThis.customElements === 'undefined';\n// const GlobalThis = isServer ? globalThisShim : globalThis;\n// const Document = isServer ? globalThisShim.document : globalThis.document;\n//\n// export { GlobalThis as globalThis, Document as document };\nconst isServer = typeof window === 'undefined' || typeof globalThis.customElements === 'undefined';\ntype GlobalThis = typeof globalThis;\nconst internalGlobalThis: GlobalThis = (isServer ? globalThisShim : globalThis) as GlobalThis;\nconst internalDocument: Document = (isServer ? globalThisShim.document : globalThis.document) as Document;\n\nexport { internalGlobalThis as globalThis, internalDocument as document };\n", "import { globalThis } from './polyfills';\nimport {\n initialize,\n teardown,\n generatePlayerInitTime,\n MuxMediaProps,\n StreamTypes,\n PlaybackTypes,\n ValueOf,\n toMuxVideoURL,\n Metadata,\n MediaError,\n getStartDate,\n getCurrentPdt,\n getEnded,\n} from '@mux/playback-core';\nimport type { PlaybackCore, PlaybackEngine, ExtensionMimeTypeMap } from '@mux/playback-core';\nimport { getPlayerVersion } from './env';\n// this must be imported after playback-core for the polyfill to be included\nimport { CustomAudioElement, Events as AudioEvents } from 'custom-media-element';\n\n/** @TODO make the relationship between name+value smarter and more deriveable (CJP) */\ntype AttributeNames = {\n ENV_KEY: 'env-key';\n DEBUG: 'debug';\n METADATA_URL: 'metadata-url';\n BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain';\n DISABLE_COOKIES: 'disable-cookies';\n PLAYBACK_ID: 'playback-id';\n PREFER_PLAYBACK: 'prefer-playback';\n TYPE: 'type';\n STREAM_TYPE: 'stream-type';\n START_TIME: 'start-time';\n};\n\nconst Attributes: AttributeNames = {\n ENV_KEY: 'env-key',\n DEBUG: 'debug',\n PLAYBACK_ID: 'playback-id',\n METADATA_URL: 'metadata-url',\n PREFER_PLAYBACK: 'prefer-playback',\n BEACON_COLLECTION_DOMAIN: 'beacon-collection-domain',\n DISABLE_COOKIES: 'disable-cookies',\n TYPE: 'type',\n STREAM_TYPE: 'stream-type',\n START_TIME: 'start-time',\n};\n\nconst AttributeNameValues = Object.values(Attributes);\n\nconst playerSoftwareVersion = getPlayerVersion();\nconst playerSoftwareName = 'mux-audio';\n\nclass MuxAudioElement extends CustomAudioElement implements Partial<MuxMediaProps> {\n static get observedAttributes() {\n return [...AttributeNameValues, ...(CustomAudioElement.observedAttributes ?? [])];\n }\n\n #core?: PlaybackCore;\n #loadRequested?: Promise<void> | null;\n #playerInitTime: number;\n #metadata: Readonly<Metadata> = {};\n\n constructor() {\n super();\n this.#playerInitTime = generatePlayerInitTime();\n }\n\n get playerInitTime() {\n return this.#playerInitTime;\n }\n\n get playerSoftwareName() {\n return playerSoftwareName;\n }\n\n get playerSoftwareVersion() {\n return playerSoftwareVersion;\n }\n\n // Keeping this named \"_hls\" since it's exposed for unadvertised \"advanced usage\" via getter that assumes specifically hls.js (CJP)\n get _hls(): PlaybackEngine | undefined {\n return this.#core?.engine;\n }\n\n get mux(): Readonly<HTMLAudioElement['mux']> | undefined {\n return this.nativeEl.mux;\n }\n\n get src() {\n // Use the attribute value as the source of truth.\n // No need to store it in two places.\n // This avoids needing a to read the attribute initially and update the src.\n return this.getAttribute('src') as string;\n }\n\n set src(val: string) {\n // If being set by attributeChangedCallback,\n // dont' cause an infinite loop\n if (val === this.src) return;\n\n if (val == null) {\n this.removeAttribute('src');\n } else {\n this.setAttribute('src', val);\n }\n }\n\n get preload() {\n const val = this.getAttribute('preload') as HTMLMediaElement['preload'];\n if (val === '') return 'auto';\n if (['none', 'metadata', 'auto'].includes(val)) return val;\n return super.preload;\n }\n\n set preload(val) {\n // don't cause an infinite loop\n // check the attribute because an empty string maps to the `auto` prop\n if (val == this.getAttribute('preload')) return;\n\n if (['', 'none', 'metadata', 'auto'].includes(val)) {\n this.setAttribute('preload', val);\n } else {\n this.removeAttribute('preload');\n }\n }\n\n get debug(): boolean {\n return this.getAttribute(Attributes.DEBUG) != null;\n }\n\n set debug(val: boolean) {\n // dont' cause an infinite loop\n if (val === this.debug) return;\n\n if (val) {\n this.setAttribute(Attributes.DEBUG, '');\n } else {\n this.removeAttribute(Attributes.DEBUG);\n }\n }\n\n get disableCookies(): boolean {\n return this.hasAttribute(Attributes.DISABLE_COOKIES);\n }\n\n set disableCookies(val: boolean) {\n // dont' cause an infinite loop\n if (val === this.disableCookies) return;\n\n if (val) {\n this.setAttribute(Attributes.DISABLE_COOKIES, '');\n } else {\n this.removeAttribute(Attributes.DISABLE_COOKIES);\n }\n }\n\n get startTime(): number | undefined {\n const val = this.getAttribute(Attributes.START_TIME);\n if (val == null) return undefined;\n const num = +val;\n return !Number.isNaN(num) ? num : undefined;\n }\n\n set startTime(val: number | undefined) {\n // dont' cause an infinite loop\n if (val === this.startTime) return;\n\n if (val == null) {\n this.removeAttribute(Attributes.START_TIME);\n } else {\n this.setAttribute(Attributes.START_TIME, `${val}`);\n }\n }\n\n get playbackId(): string | undefined {\n return this.getAttribute(Attributes.PLAYBACK_ID) ?? undefined;\n }\n\n set playbackId(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.playbackId) return;\n\n if (val) {\n this.setAttribute(Attributes.PLAYBACK_ID, val);\n } else {\n this.removeAttribute(Attributes.PLAYBACK_ID);\n }\n }\n\n get ended() {\n // This ensures that edge case media that doesn't properly end will\n // still announce itself as \"ended\".\n return getEnded(this.nativeEl, this._hls);\n }\n\n get envKey(): string | undefined {\n return this.getAttribute(Attributes.ENV_KEY) ?? undefined;\n }\n\n set envKey(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.envKey) return;\n\n if (val) {\n this.setAttribute(Attributes.ENV_KEY, val);\n } else {\n this.removeAttribute(Attributes.ENV_KEY);\n }\n }\n\n get beaconCollectionDomain(): string | undefined {\n return this.getAttribute(Attributes.BEACON_COLLECTION_DOMAIN) ?? undefined;\n }\n\n set beaconCollectionDomain(val: string | undefined) {\n // dont' cause an infinite loop\n if (val === this.beaconCollectionDomain) return;\n\n if (val) {\n this.setAttribute(Attributes.BEACON_COLLECTION_DOMAIN, val);\n } else {\n this.removeAttribute(Attributes.BEACON_COLLECTION_DOMAIN);\n }\n }\n\n get streamType(): ValueOf<StreamTypes> | undefined {\n // getAttribute doesn't know that this attribute is well defined. Should explore extending for MuxVideo (CJP)\n return (this.getAttribute(Attributes.STREAM_TYPE) as ValueOf<StreamTypes>) ?? undefined;\n }\n\n set streamType(val: ValueOf<StreamTypes> | undefined) {\n // dont' cause an infinite loop\n if (val === this.streamType) return;\n\n if (val) {\n this.setAttribute(Attributes.STREAM_TYPE, val);\n } else {\n this.removeAttribute(Attributes.STREAM_TYPE);\n }\n }\n\n getStartDate() {\n return getStartDate(this.nativeEl, this._hls);\n }\n\n get currentPdt() {\n return getCurrentPdt(this.nativeEl, this._hls);\n }\n\n get preferPlayback(): ValueOf<PlaybackTypes> | undefined {\n const val = this.getAttribute(Attributes.PREFER_PLAYBACK);\n if (val === PlaybackTypes.MSE || val === PlaybackTypes.NATIVE) return val;\n return undefined;\n }\n\n set preferPlayback(val: ValueOf<PlaybackTypes> | undefined) {\n if (val === this.preferPlayback) return;\n\n if (val === PlaybackTypes.MSE || val === PlaybackTypes.NATIVE) {\n this.setAttribute(Attributes.PREFER_PLAYBACK, val);\n } else {\n this.removeAttribute(Attributes.PREFER_PLAYBACK);\n }\n }\n\n get metadata() {\n const inferredMetadataAttrs: { [key: string]: string } = this.getAttributeNames()\n .filter((attrName) => {\n return attrName.startsWith('metadata-') && !([Attributes.METADATA_URL] as string[]).includes(attrName);\n })\n .reduce((currAttrs, attrName) => {\n const value = this.getAttribute(attrName);\n if (value != null) {\n currAttrs[attrName.replace(/^metadata-/, '').replace(/-/g, '_') as string] = value;\n }\n return currAttrs;\n }, {} as { [key: string]: string });\n\n return {\n ...inferredMetadataAttrs,\n ...this.#metadata,\n };\n }\n\n set metadata(val: Readonly<Metadata> | undefined) {\n this.#metadata = val ?? {};\n if (!!this.mux) {\n /** @TODO Link to docs for a more detailed discussion (CJP) */\n console.info(\n 'Some metadata values may not be overridable at this time. Make sure you set all metadata to override before setting the src.'\n );\n this.mux.emit('hb', this.#metadata);\n }\n }\n\n async #requestLoad() {\n if (this.#loadRequested) return;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.load();\n }\n\n load() {\n this.#core = initialize(this as Partial<MuxMediaProps>, this.nativeEl, this.#core);\n }\n\n unload() {\n teardown(this.nativeEl, this.#core);\n this.#core = undefined;\n }\n\n attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null) {\n // Only forward the attributes to the native media element that are not handled.\n const isNativeAttr = CustomAudioElement.observedAttributes.includes(attrName);\n if (isNativeAttr && !['src', 'autoplay', 'preload'].includes(attrName)) {\n super.attributeChangedCallback(attrName, oldValue, newValue);\n }\n\n switch (attrName) {\n case 'src': {\n const hadSrc = !!oldValue;\n const hasSrc = !!newValue;\n if (!hadSrc && hasSrc) {\n this.#requestLoad();\n } else if (hadSrc && !hasSrc) {\n this.unload();\n /** @TODO Test this thoroughly (async?) and confirm unload() necessary (CJP) */\n } else if (hadSrc && hasSrc) {\n this.unload();\n this.#requestLoad();\n }\n break;\n }\n case 'autoplay':\n if (newValue === oldValue) {\n break;\n }\n /** In case newValue is an empty string or null, use this.autoplay which translates to booleans (WL) */\n this.#core?.setAutoplay(this.autoplay);\n break;\n case 'preload':\n if (newValue === oldValue) {\n break;\n }\n this.#core?.setPreload(newValue as HTMLMediaElement['preload']);\n break;\n case Attributes.PLAYBACK_ID:\n /** @TODO Improv+Discuss - how should playback-id update wrt src attr changes (and vice versa) (CJP) */\n this.src = toMuxVideoURL(newValue ?? undefined) as string;\n break;\n case Attributes.DEBUG: {\n const debug = this.debug;\n if (!!this.mux) {\n /** @TODO Link to docs for a more detailed discussion (CJP) */\n console.info(\n 'Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src.'\n );\n }\n if (!!this._hls) {\n this._hls.config.debug = debug;\n }\n break;\n }\n case Attributes.METADATA_URL:\n if (newValue) {\n fetch(newValue)\n .then((resp) => resp.json())\n .then((json) => (this.metadata = json))\n .catch(() => console.error(`Unable to load or parse metadata JSON from metadata-url ${newValue}!`));\n }\n break;\n default:\n break;\n }\n }\n\n disconnectedCallback() {\n this.unload();\n }\n}\n\ntype MuxAudioElementType = typeof MuxAudioElement;\ndeclare global {\n var MuxAudioElement: MuxAudioElementType; // eslint-disable-line\n}\n\nif (!globalThis.customElements.get('mux-audio')) {\n globalThis.customElements.define('mux-audio', MuxAudioElement);\n /** @TODO consider externalizing this (breaks standard modularity) */\n globalThis.MuxAudioElement = MuxAudioElement;\n}\n\nexport { PlaybackEngine, PlaybackEngine as Hls, ExtensionMimeTypeMap as MimeTypes, MediaError, AudioEvents };\n\nexport default MuxAudioElement;\n", "export const isMaybeBrowser = () => typeof window != 'undefined';\n// @ts-ignore\nexport const isMaybeServer = () => typeof global != 'undefined';\n\nconst getEnvPlayerVersion = () => {\n try {\n // @ts-ignore\n return PLAYER_VERSION as string;\n } catch {}\n return 'UNKNOWN';\n};\n\nconst player_version: string = getEnvPlayerVersion();\n\nexport const getPlayerVersion = () => player_version;\n", "/**\n * Custom Media Element\n * Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n *\n * The goal is to create an element that works just like the video element\n * but can be extended/sub-classed, because native elements cannot be\n * extended today across browsers.\n */\n\n// The onevent like props are weirdly set on the HTMLElement prototype with other\n// generic events making it impossible to pick these specific to HTMLMediaElement.\nexport const Events = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'encrypted',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n 'waitingforkey',\n 'resize',\n 'enterpictureinpicture',\n 'leavepictureinpicture',\n 'webkitbeginfullscreen',\n 'webkitendfullscreen',\n 'webkitpresentationmodechanged',\n];\n\nexport const audioTemplate = globalThis.document?.createElement('template');\n\nif (audioTemplate) {\n audioTemplate.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n audio {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n }\n </style>\n <slot></slot>\n `;\n}\n\nexport const videoTemplate = globalThis.document?.createElement('template');\n\nif (videoTemplate) {\n videoTemplate.innerHTML = /*html*/`\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n }\n\n video {\n max-width: 100%;\n max-height: 100%;\n min-width: 100%;\n min-height: 100%;\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, 50% 50%);\n }\n\n video::-webkit-media-text-track-container {\n transform: var(--media-webkit-text-track-transform);\n transition: var(--media-webkit-text-track-transition);\n }\n </style>\n <slot></slot>\n `;\n}\n\n/**\n * @see https://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/\n */\nexport const CustomMediaMixin = (superclass, { tag, is }) => {\n\n // `is` makes it possible to extend a custom built-in. e.g. castable-video\n const nativeElTest = globalThis.document?.createElement(tag, { is });\n const nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\n return class CustomMedia extends superclass {\n static Events = Events;\n static template = tag.endsWith('audio') ? audioTemplate : videoTemplate;\n static #isDefined;\n\n static get observedAttributes() {\n CustomMedia.#define();\n\n // Include any attributes from the custom built-in.\n const natAttrs = nativeElTest?.constructor?.observedAttributes ?? [];\n\n return [\n ...natAttrs,\n 'autopictureinpicture',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'autoplay',\n 'controls',\n 'controlslist',\n 'crossorigin',\n 'loop',\n 'muted',\n 'playsinline',\n 'poster',\n 'preload',\n 'src',\n ];\n }\n\n static #define() {\n if (this.#isDefined) return;\n this.#isDefined = true;\n\n const propsToAttrs = new Set(this.observedAttributes);\n // defaultMuted maps to the muted attribute, handled manually below.\n propsToAttrs.delete('muted');\n\n // Passthrough native el functions from the custom el to the native el\n for (let prop of nativeElProps) {\n if (prop in this.prototype) continue;\n\n const type = typeof nativeElTest[prop];\n if (type == 'function') {\n // Function\n this.prototype[prop] = function (...args) {\n this.#init();\n\n const fn = () => {\n if (this.call) return this.call(prop, ...args);\n return this.nativeEl[prop].apply(this.nativeEl, args);\n };\n\n return fn();\n };\n } else {\n // Some properties like src, preload, defaultMuted are handled manually.\n\n // Getter\n let config = {\n get() {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n const val = this.getAttribute(attr);\n return val === null ? false : val === '' ? true : val;\n }\n\n return this.get?.(prop) ?? this.nativeEl?.[prop];\n },\n };\n\n if (prop !== prop.toUpperCase()) {\n // Setter (not a CONSTANT)\n config.set = function (val) {\n this.#init();\n\n let attr = prop.toLowerCase();\n if (propsToAttrs.has(attr)) {\n if (val === true || val === false || val == null) {\n this.toggleAttribute(attr, Boolean(val));\n } else {\n this.setAttribute(attr, val);\n }\n return;\n }\n\n if (this.set) {\n this.set(prop, val);\n return;\n }\n\n this.nativeEl[prop] = val;\n };\n }\n\n Object.defineProperty(this.prototype, prop, config);\n }\n }\n }\n\n #isInit;\n #nativeEl;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow({ mode: 'open' });\n this.shadowRoot.append(this.constructor.template.content.cloneNode(true));\n }\n\n // If the custom element is defined before the custom element's HTML is parsed\n // no attributes will be available in the constructor (construction process).\n // Wait until initializing in the attributeChangedCallback or\n // connectedCallback or accessing any properties.\n }\n\n get nativeEl() {\n return this.#nativeEl\n ?? this.shadowRoot.querySelector(tag)\n ?? this.querySelector(tag);\n }\n\n set nativeEl(val) {\n this.#nativeEl = val;\n }\n\n get defaultMuted() {\n return this.hasAttribute('muted');\n }\n\n set defaultMuted(val) {\n this.toggleAttribute('muted', Boolean(val));\n }\n\n get src() {\n return this.getAttribute('src');\n }\n\n set src(val) {\n this.setAttribute('src', `${val}`);\n }\n\n get preload() {\n return this.getAttribute('preload') ?? this.nativeEl?.preload;\n }\n\n set preload(val) {\n this.setAttribute('preload', `${val}`);\n }\n\n #init() {\n if (this.#isInit) return;\n this.#isInit = true;\n\n // If there is no nativeEl by now, create it.\n if (!this.nativeEl) {\n const nativeEl = document.createElement(tag, { is });\n nativeEl.part = tag;\n this.shadowRoot.append(nativeEl);\n }\n\n // Neither Chrome or Firefox support setting the muted attribute\n // after using document.createElement.\n // Get around this by setting the muted property manually.\n this.nativeEl.muted = this.hasAttribute('muted');\n\n for (let prop of nativeElProps) {\n this.#upgradeProperty(prop);\n }\n\n // Keep some native child elements like track and source in sync.\n const childMap = new Map();\n // An unnamed <slot> will be filled with all of the custom element's\n // top-level child nodes that do not have the slot attribute.\n const slotEl = this.shadowRoot.querySelector('slot:not([name])');\n slotEl?.addEventListener('slotchange', () => {\n const removeNativeChildren = new Map(childMap);\n slotEl\n .assignedElements()\n .filter((el) => ['track', 'source'].includes(el.localName))\n .forEach((el) => {\n // If the source or track is still in the assigned elements keep it.\n removeNativeChildren.delete(el);\n // Re-use clones if possible.\n let clone = childMap.get(el);\n if (!clone) {\n clone = el.cloneNode();\n childMap.set(el, clone);\n }\n this.nativeEl.append?.(clone);\n });\n removeNativeChildren.forEach((el) => el.remove());\n });\n\n // The video events are dispatched on the CustomMediaElement instance.\n // This makes it possible to add event listeners before the element is upgraded.\n for (let type of this.constructor.Events) {\n this.shadowRoot.addEventListener?.(type, (evt) => {\n if (evt.target !== this.nativeEl) return;\n this.dispatchEvent(new CustomEvent(evt.type, { detail: evt.detail }));\n }, true);\n }\n }\n\n #upgradeProperty(prop) {\n // Sets properties that are set before the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n // Delete the set property from this instance.\n delete this[prop];\n // Set the value again via the (prototype) setter on this class.\n this[prop] = value;\n }\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n // Initialize right after construction when the attributes become available.\n this.#init();\n this.#forwardAttribute(attrName, oldValue, newValue);\n }\n\n #forwardAttribute(attrName, oldValue, newValue) {\n // Ignore a few that don't need to be passed.\n if (['id', 'class'].includes(attrName)) {\n return;\n }\n\n if (newValue === null) {\n this.nativeEl.removeAttribute?.(attrName);\n } else {\n this.nativeEl.setAttribute?.(attrName, newValue);\n }\n }\n\n connectedCallback() {\n this.#init();\n }\n };\n};\n\nfunction getNativeElProps(nativeElTest) {\n // Map all native element properties to the custom element\n // so that they're applied to the native element.\n // Skipping HTMLElement because of things like \"attachShadow\"\n // causing issues. Most of those props still need to apply to\n // the custom element.\n let nativeElProps = [];\n\n // Walk the prototype chain up to HTMLElement.\n // This will grab all super class props in between.\n // i.e. VideoElement and MediaElement\n for (\n let proto = Object.getPrototypeOf(nativeElTest);\n proto && proto !== HTMLElement.prototype;\n proto = Object.getPrototypeOf(proto)\n ) {\n nativeElProps.push(...Object.getOwnPropertyNames(proto));\n }\n\n return nativeElProps;\n}\n\nexport const CustomVideoElement = globalThis.document ? CustomMediaMixin(HTMLElement, { tag: 'video' }) : class {};\n\nexport const CustomAudioElement = globalThis.document ? CustomMediaMixin(HTMLElement, { tag: 'audio' }) : class {};\n"],
5
+ "mappings": "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",
6
+ "names": ["EventTarget", "_event", "DocumentFragment", "HTMLElement", "HTMLVideoElement", "customElements", "_name", "_constructor", "_options", "_root", "_detail", "CustomEvent", "typeArg", "eventInitDict", "__privateAdd", "__privateSet", "__privateGet", "createElement", "_tagName", "globalThisShim", "isServer", "internalGlobalThis", "internalDocument", "initialize", "teardown", "generatePlayerInitTime", "PlaybackTypes", "toMuxVideoURL", "MediaError", "getStartDate", "getCurrentPdt", "getEnded", "getEnvPlayerVersion", "player_version", "getPlayerVersion", "Events", "_a", "audioTemplate", "videoTemplate", "CustomMediaMixin", "superclass", "tag", "is", "_b", "_isDefined", "_define", "define_fn", "_isInit", "_nativeEl", "_init", "init_fn", "_upgradeProperty", "upgradeProperty_fn", "_forwardAttribute", "forwardAttribute_fn", "nativeElTest", "nativeElProps", "getNativeElProps", "__privateAdd", "_c", "__privateMethod", "__privateGet", "val", "__privateSet", "attrName", "oldValue", "newValue", "propsToAttrs", "prop", "args", "config", "attr", "nativeEl", "childMap", "slotEl", "removeNativeChildren", "el", "clone", "type", "evt", "value", "_d", "__publicField", "proto", "CustomVideoElement", "CustomAudioElement", "Attributes", "AttributeNameValues", "playerSoftwareVersion", "getPlayerVersion", "playerSoftwareName", "_core", "_loadRequested", "_playerInitTime", "_metadata", "_requestLoad", "requestLoad_fn", "MuxAudioElement", "CustomAudioElement", "__privateAdd", "__privateSet", "generatePlayerInitTime", "_a", "__privateGet", "val", "num", "getEnded", "getStartDate", "getCurrentPdt", "PlaybackTypes", "attrName", "currAttrs", "value", "initialize", "teardown", "oldValue", "newValue", "_b", "hadSrc", "hasSrc", "__privateMethod", "toMuxVideoURL", "debug", "resp", "json", "internalGlobalThis", "src_default", "MuxAudioElement"]
7
7
  }