@videts/vide 0.7.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ var Vide=(function(exports){'use strict';var qt=Object.defineProperty;var Ye=(e,t)=>()=>(e&&(t=e(e=0)),t);var Xe=(e,t)=>{for(var n in t)qt(e,n,{get:t[n],enumerable:true});};var at={};Xe(at,{default:()=>Wt});var Gt,Wt,lt=Ye(()=>{Gt=globalThis.Hls,Wt=Gt;});var dt={};Xe(dt,{default:()=>tn});var en,tn,ct=Ye(()=>{en=globalThis.dashjs,tn=en;});var Je=1e3,Ze=2e3,et=2001,tt=2002,nt=3e3,rt=3001,it=4e3,ot=4001,st=4002,Bt=4003;var Qt={idle:["loading","playing","error"],loading:["ready","playing","error"],ready:["playing","loading","ad:loading","error"],playing:["paused","buffering","loading","ad:loading","ended","error"],paused:["playing","loading","ad:loading","ended","error"],buffering:["playing","loading","error"],"ad:loading":["ad:playing","playing","error"],"ad:playing":["ad:paused","playing","error"],"ad:paused":["ad:playing","playing","error"],ended:["idle","loading","error"],error:["idle","loading"]};function Kt(e,t){return Qt[e].includes(t)}function $t(e){return e.readyState>=3?e.paused?"ready":"playing":e.readyState>=1?"loading":"idle"}function zt(e){let t=$t(e),n=e instanceof HTMLAudioElement,r=new Map,i=[],o=false,s=[],a=null,l=e.getAttribute("src")??"",d=false,f=new Map,p=e.duration===Number.POSITIVE_INFINITY,m=null;function v(u){let h=r.get(u);return h||(h=new Set,r.set(u,h)),h}function c(u,h){let w=r.get(u);if(w)for(let j of w)try{j(h);}catch(K){console.error("[vide] Event handler error:",K);}}function g(u){if(u===t)return;if(!Kt(t,u)){console.warn(`[vide] Invalid transition: ${t} \u2192 ${u}`);return}let h=t;t=u,c("statechange",{from:h,to:u});}function S(){return t==="ad:loading"||t==="ad:playing"||t==="ad:paused"}function b(){!S()&&e.paused&&g("loading");}function L(){t==="loading"&&g("ready");}function A(){S()||g("playing"),c("play",void 0);}function V(){S()||g("paused"),c("pause",void 0);}function R(){t==="playing"&&g("buffering");}function O(){(t==="buffering"||t==="ready")&&g("playing");}function y(){S()||g("ended"),c("ended",void 0);}function k(){c("timeupdate",{currentTime:e.currentTime,duration:e.duration});}function E(){let u=e.error;S()||g("error"),c("error",{code:u?.code??1e3,message:u?.message??"Unknown error",source:"core"});}function I(){let u=e.duration===Number.POSITIVE_INFINITY;u!==p&&(p=u,c("livestatechange",{isLive:u}));}e.addEventListener("durationchange",I),e.addEventListener("loadstart",b),e.addEventListener("canplay",L),e.addEventListener("play",A),e.addEventListener("pause",V),e.addEventListener("waiting",R),e.addEventListener("playing",O),e.addEventListener("ended",y),e.addEventListener("timeupdate",k),e.addEventListener("error",E);function T(u,h){return {id:h,label:u.label,language:u.language,kind:u.kind,active:u.mode==="showing"}}function C(u){if(!u)return [];let h=[];for(let w=0;w<u.length;w++){let j=u[w];h.push({startTime:j.startTime,endTime:j.endTime,text:j.text??""});}return h}let D=new Map;function U(u){if(D.has(u))return;let h=()=>{u.mode==="showing"&&c("cuechange",{cues:C(u.activeCues)});};D.set(u,h),u.addEventListener("cuechange",h);}function q(u){let h=D.get(u);h&&(u.removeEventListener("cuechange",h),D.delete(u));}function z(){let u=[];for(let h=0;h<e.textTracks.length;h++)u.push(T(e.textTracks[h],h));c("texttracksavailable",{tracks:u});}function Q(){for(let u=0;u<e.textTracks.length;u++)U(e.textTracks[u]);z();}function N(u){u.track&&q(u.track),z();}let Y=typeof e.textTracks.addEventListener=="function";if(Y){e.textTracks.addEventListener("addtrack",Q),e.textTracks.addEventListener("removetrack",N);for(let u=0;u<e.textTracks.length;u++)U(e.textTracks[u]);}let X=new Set(["statechange","play","pause","ended","timeupdate","livestatechange","error","ad:start","ad:end","ad:skip","ad:click","ad:error","ad:impression","ad:loaded","ad:quartile","ad:mute","ad:unmute","ad:volumeChange","ad:fullscreen","ad:breakStart","ad:breakEnd","qualitiesavailable","qualitychange","texttrackchange","texttracksavailable","cuechange","destroy"]);function F(){if(e.removeEventListener("durationchange",I),e.removeEventListener("loadstart",b),e.removeEventListener("canplay",L),e.removeEventListener("play",A),e.removeEventListener("pause",V),e.removeEventListener("waiting",R),e.removeEventListener("playing",O),e.removeEventListener("ended",y),e.removeEventListener("timeupdate",k),e.removeEventListener("error",E),Y){e.textTracks.removeEventListener("addtrack",Q),e.textTracks.removeEventListener("removetrack",N);for(let[u,h]of D)u.removeEventListener("cuechange",h);D.clear();}}function J(){if(a||d)return;let u=e.querySelectorAll("source");for(let h of u){let w=h.getAttribute("src"),j=h.getAttribute("type")??void 0;if(w){for(let K of s)if(K.canHandle(w,j)){a=K,l=w,g("loading"),K.load(w,e);for(let Z of u)Z.remove();return}}}}let B={get el(){return e},get state(){return t},on(u,h){X.has(u)?v(u).add(h):e.addEventListener(u,h);},off(u,h){X.has(u)?v(u).delete(h):e.removeEventListener(u,h);},emit:c,once(u,h){let w=j=>{B.off(u,w),h(j);};B.on(u,w);},play(){return e.play()},pause(){e.pause();},get currentTime(){return e.currentTime},set currentTime(u){e.currentTime=u;},get duration(){return e.duration},set duration(u){},get volume(){return e.volume},set volume(u){e.volume=u;},get muted(){return e.muted},set muted(u){e.muted=u;},get playbackRate(){return e.playbackRate},set playbackRate(u){e.playbackRate=u;},get paused(){return e.paused},get ended(){return e.ended},get readyState(){return e.readyState},get buffered(){return e.buffered},get seekable(){return e.seekable},get seeking(){return e.seeking},get isLive(){return o?false:e.duration===Number.POSITIVE_INFINITY},get seekableRange(){return o||e.seekable.length===0?null:{start:e.seekable.start(0),end:e.seekable.end(0)}},get qualities(){return f.get("qualities")??[]},get currentQuality(){return f.get("currentQuality")??null},get isAutoQuality(){return f.get("autoQuality")??true},get isAudio(){return n},setQuality(u){let h=f.get("qualitySetter");h&&h(u);},get textTracks(){return e.textTracks},getTextTracks(){let u=[];for(let h=0;h<e.textTracks.length;h++)u.push(T(e.textTracks[h],h));return u},getActiveTextTrack(){for(let u=0;u<e.textTracks.length;u++)if(e.textTracks[u].mode==="showing")return T(e.textTracks[u],u);return null},get activeCues(){for(let u=0;u<e.textTracks.length;u++)if(e.textTracks[u].mode==="showing")return C(e.textTracks[u].activeCues);return []},setTextTrack(u){for(let w=0;w<e.textTracks.length;w++)e.textTracks[w].mode=w===u?"showing":"disabled";let h=u>=0&&u<e.textTracks.length?T(e.textTracks[u],u):null;c("texttrackchange",{track:h});},addTextTrack(u){let h=document.createElement("track");h.src=u.src,h.label=u.label,h.srclang=u.language,h.kind=u.kind??"subtitles",u.default&&(h.default=true),e.appendChild(h);},get videoWidth(){return n?0:e.videoWidth},get videoHeight(){return n?0:e.videoHeight},get networkState(){return e.networkState},get loop(){return e.loop},set loop(u){e.loop=u;},get autoplay(){return e.autoplay},set autoplay(u){e.autoplay=u;},get poster(){return n?"":e.poster},set poster(u){n||(e.poster=u);},get preload(){return e.preload},set preload(u){e.preload=u;},get defaultPlaybackRate(){return e.defaultPlaybackRate},set defaultPlaybackRate(u){e.defaultPlaybackRate=u;},get defaultMuted(){return e.defaultMuted},set defaultMuted(u){e.defaultMuted=u;},get crossOrigin(){return e.crossOrigin},set crossOrigin(u){e.crossOrigin=u;},get controls(){return e.controls},set controls(u){e.controls=u;},get src(){return l},set src(u){if(a&&(a.unload(e),a=null),f.delete("qualities"),f.delete("currentQuality"),f.delete("autoQuality"),f.delete("qualitySetter"),m=null,d=true,l=u,!u){e.removeAttribute("src");return}for(let h of s)if(h.canHandle(u)){a=h,g("loading"),h.load(u,e);return}e.src=u;},registerSourceHandler(u){if(o){console.warn("[vide] Cannot register source handler after destroy");return}s.push(u),!d&&!a&&J();},addEventListener(u,h,w){e.addEventListener(u,h,w);},removeEventListener(u,h,w){e.removeEventListener(u,h,w);},use(u){if(o){console.warn("[vide] Cannot use plugin after destroy");return}let h=u.setup(B);h&&i.push(h);},setPluginData(u,h){if(f.set(u,h),u==="qualities")c("qualitiesavailable",{qualities:h});else if(u==="currentQuality"){let w=h;c("qualitychange",{from:m,to:w}),m=w;}},getPluginData(u){return f.get(u)},destroy(){if(!o){o=true,a&&(a.unload(e),a=null);for(let u of i)try{u();}catch(h){console.error("[vide] Plugin cleanup error:",h);}i.length=0,c("destroy",void 0),F(),r.clear(),f.clear();}}};return B._setState=g,B}function ae(e){return e>=2160?"4K":e>=1440?"1440p":e>=1080?"1080p":e>=720?"720p":e>=480?"480p":e>=360?"360p":e>=240?"240p":`${e}p`}var ut=["application/vnd.apple.mpegurl","application/x-mpegurl"],Yt={maxRetries:3,retryDelay:3e3,backoffMultiplier:2};function Xt(e){if(e.startsWith("data:")){let t=e.indexOf(";");return t===-1?false:ut.includes(e.slice(5,t).toLowerCase())}if(e.startsWith("blob:"))return e.includes(".m3u8");try{return new URL(e,"https://placeholder.invalid").pathname.endsWith(".m3u8")}catch{return e.includes(".m3u8")}}function Jt(e){return ut.includes(e.toLowerCase())}function Zt(e={}){return {name:"hls",setup(t){let n=null,r=false,i=e.recovery===false?false:{...Yt,...e.recovery??{}},o=0,s=null;function a(){s!==null&&(clearTimeout(s),s=null);}function l(p,m){if(i===false||r||o>=i.maxRetries)return false;o++;let v=i.retryDelay*i.backoffMultiplier**(o-1);return a(),s=setTimeout(()=>{r||(m==="networkError"?p.startLoad(-1):p.recoverMediaError());},v),true}let d={canHandle(p,m){return m&&Jt(m)?true:Xt(p)},load(p,m){this.unload(m),f(p,m);},unload(p){a(),o=0,n&&(n.destroy(),n=null);}};function f(p,m){Promise.resolve().then(()=>(lt(),at)).then(v=>{if(r)return;let c=v.default;if(!c.isSupported()){if(m.canPlayType("application/vnd.apple.mpegurl")){m.src=p;return}t.emit("error",{code:2e3,message:"HLS is not supported in this browser",source:"hls"});return}let g=t.getPluginData("drm"),S={...e.hlsConfig??{},...g?.hlsConfig??{}},b=new c(S);n=b,t.setPluginData("hls",b),b.on(c.Events.ERROR,(L,A)=>{if(!A.fatal)return;let V=l(b,A.type);t.emit("error",{code:2002,message:`HLS fatal error: ${A.type} - ${A.details}`,source:"hls",recoverable:V,retryCount:V?o:void 0});}),b.on(c.Events.FRAG_LOADED,()=>{o>0&&(o=0,a());}),b.on(c.Events.MANIFEST_PARSED,()=>{let L=b.levels.map((A,V)=>({id:V,width:A.width,height:A.height,bitrate:A.bitrate,label:ae(A.height)}));t.setPluginData("qualities",L),t.setPluginData("qualitySetter",A=>{b.currentLevel=A,t.setPluginData("autoQuality",A===-1);});}),b.on(c.Events.LEVEL_SWITCHED,(L,A)=>{let R=t.qualities[A.level];R&&(t.setPluginData("currentQuality",R),t.setPluginData("autoQuality",b.autoLevelEnabled));}),b.attachMedia(m),b.loadSource(p);}).catch(v=>{r||t.emit("error",{code:2001,message:v instanceof Error?`Failed to load hls.js: ${v.message}`:"Failed to load hls.js",source:"hls"});});}return t.registerSourceHandler(d),()=>{r=true,a(),d.unload(t.el);}}}}var nn="application/dash+xml",rn={maxRetries:3,retryDelay:3e3,backoffMultiplier:2};function on(e){try{return new URL(e,"https://placeholder.invalid").pathname.endsWith(".mpd")}catch{return e.includes(".mpd")}}function sn(e){return e.toLowerCase()===nn}function an(e={}){return {name:"dash",setup(t){let n=null,r=false,i=e.recovery===false?false:{...rn,...e.recovery??{}},o=0,s=null,a="",l=null;function d(){s!==null&&(clearTimeout(s),s=null);}function f(v){if(i===false||r||o>=i.maxRetries||!l)return false;o++;let c=i.retryDelay*i.backoffMultiplier**(o-1);return d(),s=setTimeout(()=>{r||!l||(v.reset(),v.initialize(l,a,l.autoplay));},c),true}let p={canHandle(v,c){return c&&sn(c)?true:on(v)},load(v,c){this.unload(c),m(v,c);},unload(v){d(),o=0,a="",l=null,n&&(n.destroy(),n=null);}};function m(v,c){a=v,l=c,Promise.resolve().then(()=>(ct(),dt)).then(g=>{if(r)return;let S=g.default,b=S.MediaPlayer().create();n=b,t.setPluginData("dash",b);let L=t.getPluginData("drm");L?.dashConfig&&b.updateSettings(L.dashConfig),e.dashConfig&&b.updateSettings(e.dashConfig),b.on(S.MediaPlayer.events.ERROR,A=>{if(typeof A.error=="object"&&A.error!==null){let V=f(b);t.emit("error",{code:A.error.code,message:A.error.message,source:"dash",recoverable:V,retryCount:V?o:void 0});}else t.emit("error",{code:3001,message:`DASH error: ${String(A.error)}`,source:"dash"});}),b.on(S.MediaPlayer.events.STREAM_INITIALIZED,()=>{o>0&&(o=0,d());let V=b.getBitrateInfoListFor("video").map(R=>({id:R.qualityIndex,width:R.width,height:R.height,bitrate:R.bitrate,label:ae(R.height)}));t.setPluginData("qualities",V),t.setPluginData("qualitySetter",R=>{R===-1?b.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:true}}}}):(b.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:false}}}}),b.setQualityFor("video",R,true)),t.setPluginData("autoQuality",R===-1);});}),b.on(S.MediaPlayer.events.QUALITY_CHANGE_RENDERED,A=>{if(A.mediaType!=="video")return;let R=t.qualities.find(O=>O.id===A.newQuality);if(R){t.setPluginData("currentQuality",R);let O=b.getSettings();t.setPluginData("autoQuality",O?.streaming?.abr?.autoSwitchBitrate?.video??true);}}),b.initialize(c,v,c.autoplay);}).catch(g=>{r||t.emit("error",{code:3e3,message:g instanceof Error?`Failed to load dashjs: ${g.message}`:"Failed to load dashjs",source:"dash"});});}return t.registerSourceHandler(p),()=>{r=true,d(),p.unload(t.el);}}}}function W(e){let n=new DOMParser().parseFromString(e,"text/xml");if(n.querySelector("parsererror"))return {version:"",ads:[],errors:["VAST XML parse error"]};let i=n.documentElement;if(i.tagName!=="VAST")return {version:"",ads:[],errors:["Document is not a VAST response"]};let o=i.getAttribute("version")??"",s=Le(i,"Error"),a=$(i,"Ad"),l=[];for(let d of a){let f=ln(d);f&&l.push(f);}return {version:o,ads:l,errors:s}}function ln(e){let t=vt(e,"InLine");if(!t)return null;let n=e.getAttribute("id")??"",r=e.getAttribute("sequence"),i=te(r,void 0),o=ne(t,"AdSystem"),s=ne(t,"AdTitle"),a=le(t,"Impression"),l=Le(t,"Error"),d=t.querySelector("Creatives"),f=[];if(d){let v=$(d,"Creative");for(let c of v)f.push(cn(c));}let p=un(t),m=dn(t);return {id:n,sequence:i,adSystem:o,adTitle:s,impressions:a,creatives:f,errors:l,verifications:p,categories:m}}function un(e){let t=e.querySelector("AdVerifications");if(!t)return;let n=[],r=$(t,"Verification");for(let i of r){let o=i.getAttribute("vendor")??"",s="",a,l=i.querySelector("JavaScriptResource");if(l)s=(l.textContent??"").trim(),a=l.getAttribute("apiFramework")??void 0;else {let p=i.querySelector("ExecutableResource");p&&(s=(p.textContent??"").trim(),a=p.getAttribute("apiFramework")??void 0);}let d=i.querySelector("VerificationParameters"),f=d&&(d.textContent??"").trim()||void 0;n.push({vendor:o,resourceUrl:s,apiFramework:a,parameters:f});}return n.length>0?n:void 0}function dn(e){let t=$(e,"Category");if(t.length===0)return;let n=[];for(let r of t){let i=r.getAttribute("authority")??"",o=(r.textContent??"").trim();o&&n.push({authority:i,value:o});}return n.length>0?n:void 0}function cn(e){let t=e.getAttribute("id")??void 0,n=e.getAttribute("sequence"),r=te(n,void 0),i=e.querySelector("Linear"),o=i?fn(i):null;return {id:t,sequence:r,linear:o}}function fn(e){let t=ne(e,"Duration"),n=mt(t),r=e.getAttribute("skipoffset"),i=r!==null?pt(r,n):void 0,o=mn(e),s=pn(e),a=ft(e),l=e.querySelector("VideoClicks"),d=l&&ne(l,"ClickThrough")||void 0,f=l?le(l,"ClickTracking"):[];return {duration:n,skipOffset:i,mediaFiles:o,interactiveCreativeFiles:s,trackingEvents:a,clickThrough:d,clickTracking:f}}function mn(e){let t=e.querySelector("MediaFiles");if(!t)return [];let n=[],r=$(t,"MediaFile");for(let i of r){let o=(i.textContent??"").trim();if(!o)continue;let s=i.getAttribute("delivery");n.push({url:o,mimeType:i.getAttribute("type")??"",width:te(i.getAttribute("width"),0),height:te(i.getAttribute("height"),0),bitrate:te(i.getAttribute("bitrate"),void 0),delivery:s==="streaming"?"streaming":"progressive"});}return n}function pn(e){let t=e.querySelector("MediaFiles");if(!t)return [];let n=[],r=$(t,"InteractiveCreativeFile");for(let i of r){let o=(i.textContent??"").trim();if(!o)continue;let s=i.getAttribute("apiFramework")??"",a=i.getAttribute("variableDuration"),l=a==="true"?true:a==="false"?false:void 0;n.push({url:o,apiFramework:s,variableDuration:l});}return n}var vn=new Set(["start","firstQuartile","midpoint","thirdQuartile","complete","pause","resume","skip","loaded","mute","unmute","rewind","playerExpand","playerCollapse","closeLinear","notUsed","otherAdInteraction","creativeView"]);function ft(e){let t=we(),n=e.querySelector("TrackingEvents");if(!n)return t;let r=n.querySelectorAll("Tracking");for(let i of r){let o=i.getAttribute("event"),s=(i.textContent??"").trim();if(!(!o||!s))if(o==="progress"){let a=i.getAttribute("offset"),l=a?pt(a,0):0;t.progress.push({offset:l,url:s});}else vn.has(o)&&t[o].push(s);}return t}function mt(e){if(!e)return 0;let t=e.split(":");if(t.length!==3)return 0;let n=Number.parseInt(t[0],10),r=Number.parseInt(t[1],10),i=Number.parseFloat(t[2]);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?0:n*3600+r*60+i}function pt(e,t){if(e.endsWith("%")){let n=Number.parseFloat(e);return Number.isNaN(n)?0:n/100*t}return mt(e)}function $(e,t){let n=[];for(let r=0;r<e.children.length;r++)e.children[r].tagName===t&&n.push(e.children[r]);return n}function vt(e,t){for(let n=0;n<e.children.length;n++)if(e.children[n].tagName===t)return e.children[n];return null}function Le(e,t){let n=[];for(let r of $(e,t)){let i=(r.textContent??"").trim();i&&n.push(i);}return n}function ne(e,t){let n=e.querySelector(t);return n?(n.textContent??"").trim():""}function le(e,t){let n=e.querySelectorAll(t),r=[];for(let i of n){let o=(i.textContent??"").trim();o&&r.push(o);}return r}async function re(e,t){let n=t?.timeout??5e3,r=new AbortController,i=setTimeout(()=>r.abort(),n);try{let o=await fetch(e,{signal:r.signal});if(!o.ok)throw new Error(`VAST fetch failed: ${o.status}`);return await o.text()}finally{clearTimeout(i);}}async function ue(e,t){let n=t?.timeout??1e4,r=t?.maxDepth??5,i=Date.now()+n,o=new Set,s=[],a=e;for(let l=0;l<=r;l++){let d=i-Date.now();if(d<=0)return {version:"",ads:[],errors:["VAST resolve timeout"]};if(o.has(a))return {version:"",ads:[],errors:["VAST circular reference detected"]};o.add(a);let f;try{f=await re(a,{timeout:d});}catch(v){return {version:"",ads:[],errors:[v instanceof Error?v.message:String(v)]}}let p=W(f);if(p.ads.length>0)return {version:p.version,ads:p.ads.map(v=>hn(v,s)),errors:p.errors};let m=gn(f);if(!m)return p;s.push(m),a=m.adTagUri;}return {version:"",ads:[],errors:["VAST wrapper depth limit exceeded"]}}function gn(e){let r=new DOMParser().parseFromString(e,"text/xml").documentElement;if(r.tagName!=="VAST")return null;for(let i of $(r,"Ad")){let o=vt(i,"Wrapper");if(!o)continue;let s=ne(o,"VASTAdTagURI").trim();if(!s)continue;let a=Le(o,"Error"),l=le(o,"Impression"),d=we(),f=[],p=o.querySelector("Creatives");if(p)for(let m of $(p,"Creative")){let v=m.querySelector("Linear");if(v){d=ft(v);let c=v.querySelector("VideoClicks");c&&(f=le(c,"ClickTracking"));break}}return {adTagUri:s,errors:a,impressions:l,trackingEvents:d,clickTracking:f}}return null}function we(){return {start:[],firstQuartile:[],midpoint:[],thirdQuartile:[],complete:[],pause:[],resume:[],skip:[],loaded:[],mute:[],unmute:[],rewind:[],playerExpand:[],playerCollapse:[],closeLinear:[],notUsed:[],otherAdInteraction:[],creativeView:[],progress:[]}}function yn(e,t){let n=we();for(let r of Object.keys(n)){if(r==="progress")continue;let i=n[r];for(let o of e)i.push(...o[r]);i.push(...t[r]);}for(let r of e)n.progress.push(...r.progress);return n.progress.push(...t.progress),n}function hn(e,t){if(t.length===0)return e;let n=[...t.flatMap(o=>o.errors),...e.errors],r=[...t.flatMap(o=>o.impressions),...e.impressions],i=e.creatives.map(o=>o.linear?{...o,linear:{...o.linear,trackingEvents:yn(t.map(s=>s.trackingEvents),o.linear.trackingEvents),clickTracking:[...t.flatMap(s=>s.clickTracking),...o.linear.clickTracking]}}:o);return {...e,errors:n,impressions:r,creatives:i}}function te(e,t){if(e==null)return t;let n=Number.parseInt(e,10);return Number.isNaN(n)?t:n}function M(e){for(let t of e)typeof navigator<"u"&&typeof navigator.sendBeacon=="function"?navigator.sendBeacon(t):new Image().src=t;}function gt(e,t){if(t<=0)return null;let n=e/t;return n>=1?"complete":n>=.75?"thirdQuartile":n>=.5?"midpoint":n>=.25?"firstQuartile":e>=0?"start":null}function de(e,t){let n=new Set,r=["start","firstQuartile","midpoint","thirdQuartile","complete"];return i=>{let o=gt(i,e);if(!o||n.has(o))return;let s=r.indexOf(o);for(let a=0;a<=s;a++){let l=r[a];n.has(l)||(n.add(l),t(l));}}}function En(e){return {name:"vast",setup(t){let n=false,r=null,i=t._setState;async function o(){if(!n){i("ad:loading");try{let N=function(x){if(E)for(let _ of E.trackingEvents.progress)!Q.has(_.offset)&&x>=_.offset&&(Q.add(_.offset),M([_.url]));},J=function(){for(let x of C)x();C.length=0;},B=function(){t.emit("ad:end",{adId:T}),i("playing"),u();},u=function(){function x({to:_}){_==="ready"&&(t.off("statechange",x),U>0&&(t.el.currentTime=U),t.play().catch(()=>{t.el.muted=!0,t.play().catch(()=>{});}));}t.on("statechange",x),t.src=q;},h=function(){!E||F||(M(E.clickTracking),t.emit("ad:click",{clickThrough:E.clickThrough,clickTracking:E.clickTracking}));},w=function(){!E||F||(M(E.trackingEvents.skip),F=!0,ee(),J(),B());},j=function(){!E||F||t.state==="ad:playing"&&(M(E.trackingEvents.pause),i("ad:paused"));},K=function(){!E||F||t.state==="ad:paused"&&(M(E.trackingEvents.resume),i("ad:playing"));},Z=function(){z(t.el.currentTime),N(t.el.currentTime);},Te=function(){if(!E||F)return;let x=t.el.muted||t.el.volume===0;x&&!Y?(M(E.trackingEvents.mute),t.emit("ad:mute",{adId:T})):!x&&Y&&(M(E.trackingEvents.unmute),t.emit("ad:unmute",{adId:T})),Y=x,t.emit("ad:volumeChange",{adId:T,volume:t.el.muted?0:t.el.volume});},Pe=function(){if(!E||F)return;let x=!!document.fullscreenElement;x&&!X?(M(E.trackingEvents.playerExpand),t.emit("ad:fullscreen",{adId:T,fullscreen:!0})):!x&&X&&(M(E.trackingEvents.playerCollapse),t.emit("ad:fullscreen",{adId:T,fullscreen:!1})),X=x;},Ae=function(){F||(F=!0,ee(),J(),t.emit("ad:error",{error:new Error("Ad media playback failed"),source:"vast"}),B());},Ce=function(){F||(F=!0,E&&z(E.duration),ee(),J(),B());},se=function(){t.el.removeEventListener("canplay",se),E&&(M(E.trackingEvents.loaded),M(E.trackingEvents.creativeView),t.emit("ad:loaded",{adId:T}),i("ad:playing"),t.el.play().catch(()=>{t.el.muted=!0,t.el.play().catch(()=>{});}));},ee=function(){t.el.removeEventListener("timeupdate",Z),t.el.removeEventListener("ended",Ce),t.el.removeEventListener("error",Ae),t.el.removeEventListener("canplay",se),t.el.removeEventListener("pause",j),t.el.removeEventListener("play",K),t.el.removeEventListener("click",h),t.el.removeEventListener("volumechange",Te),document.removeEventListener("fullscreenchange",Pe),t.off("ad:skip",w);};var a=N,l=J,d=B,f=u,p=h,m=w,v=j,c=K,g=Z,S=Te,b=Pe,L=Ae,A=Ce,V=se,R=ee;let O=e.timeout!==void 0?{timeout:e.timeout}:void 0,y=await re(e.tagUrl,O);if(n)return;let k=W(y);if(k.ads.length===0){i("playing");return}let E=null,I=null;for(let x of k.ads){for(let _ of x.creatives)if(_.linear&&_.linear.mediaFiles.length>0){E=_.linear,I=x;break}if(E)break}if(!E||!I){i("playing");return}let T=I.id;t.emit("ad:start",{adId:T});let C=[];if(e.adPlugins)for(let x of e.adPlugins(I)){let _=x.setup(t,I);_&&C.push(_);}for(let x of k.ads)M(x.impressions);t.emit("ad:impression",{adId:T});let D=Sn(E.mediaFiles);if(!D){t.emit("ad:error",{error:new Error("No suitable media file found"),source:"vast"}),i("playing");return}let U=t.el.currentTime,q=t.src,z=de(E.duration,x=>{if(!E)return;let _=E.trackingEvents[x];_&&M(_),t.emit("ad:quartile",{adId:T,quartile:x});}),Q=new Set,Y=t.el.muted||t.el.volume===0,X=!!document.fullscreenElement,F=!1;t.el.addEventListener("canplay",se),t.el.addEventListener("timeupdate",Z),t.el.addEventListener("ended",Ce),t.el.addEventListener("error",Ae),t.el.addEventListener("pause",j),t.el.addEventListener("play",K),t.el.addEventListener("click",h),t.el.addEventListener("volumechange",Te),document.addEventListener("fullscreenchange",Pe),t.on("ad:skip",w),r=ee,t.src="",t.el.src=D.url,t.el.load();}catch(O){if(n)return;t.emit("ad:error",{error:O instanceof Error?O:new Error(String(O)),source:"vast"}),i("playing");}}}function s({to:a}){a==="ready"&&!n&&(t.off("statechange",s),o());}return t.state==="ready"||t.state==="playing"||t.state==="paused"?o():t.on("statechange",s),()=>{n=true,t.off("statechange",s),r&&r();}}}}function Sn(e){if(e.length===0)return null;let t=e.filter(r=>r.mimeType==="video/mp4");return (t.length>0?t:e).sort((r,i)=>(i.bitrate??0)-(r.bitrate??0))[0]}function ce(e){let n=new DOMParser().parseFromString(e,"text/xml");if(n.querySelector("parsererror"))return {version:"",adBreaks:[]};let i=n.documentElement;if((i.localName||i.tagName)!=="VMAP")return {version:"",adBreaks:[]};let s=i.getAttribute("version")??"",a=[];for(let l=0;l<i.children.length;l++){let d=i.children[l];if((d.localName||d.tagName)==="AdBreak"){let p=bn(d);p&&a.push(p);}}return {version:s,adBreaks:a}}function bn(e){let t=e.getAttribute("timeOffset");if(!t)return null;let n=Pn(t),r=e.getAttribute("breakType"),i=r==="nonlinear"?"nonlinear":r==="display"?"display":"linear",o=e.getAttribute("breakId")??void 0,s=null,a={breakStart:[],breakEnd:[],error:[]};for(let l=0;l<e.children.length;l++){let d=e.children[l],f=d.localName||d.tagName;f==="AdSource"?s=Tn(d):f==="TrackingEvents"&&kn(d,a);}return {timeOffset:n,breakType:i,breakId:o,adSource:s,trackingEvents:a}}function kn(e,t){for(let n=0;n<e.children.length;n++){let r=e.children[n];if((r.localName||r.tagName)!=="Tracking")continue;let o=r.getAttribute("event"),s=(r.textContent??"").trim();!o||!s||(o==="breakStart"?t.breakStart.push(s):o==="breakEnd"?t.breakEnd.push(s):o==="error"&&t.error.push(s));}}function Tn(e){let t=e.getAttribute("id")??void 0,n=e.getAttribute("allowMultipleAds"),r=n!=null?n==="true":void 0,i=e.getAttribute("followRedirects"),o=i!=null?i==="true":void 0,s,a;for(let l=0;l<e.children.length;l++){let d=e.children[l],f=d.localName||d.tagName;if(f==="VASTAdData"){let p=d.querySelector("VAST");p&&(s=new XMLSerializer().serializeToString(p));}else f==="AdTagURI"&&(a=(d.textContent??"").trim());}return {id:t,allowMultipleAds:r,followRedirects:o,vastUrl:a,vastData:s}}function Pn(e){if(e==="start")return {type:"start"};if(e==="end")return {type:"end"};if(e.endsWith("%")){let t=Number.parseFloat(e);return Number.isNaN(t)?{type:"time",seconds:0}:{type:"percentage",pct:t}}return {type:"time",seconds:An(e)}}function An(e){if(!e)return 0;let t=e.split(":");if(t.length!==3)return 0;let n=Number.parseInt(t[0],10),r=Number.parseInt(t[1],10),i=Number.parseFloat(t[2]);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?0:n*3600+r*60+i}function fe(e,t,n){let r=new Set,i=0,o=false,s=false,a=t.filter(S=>S.timeOffset.type==="start"),l=t.filter(S=>S.timeOffset.type==="end"),d=t.filter(S=>S.timeOffset.type==="time"||S.timeOffset.type==="percentage").sort((S,b)=>yt(S)-yt(b));function f(){if(s)return;let S=e.currentTime,b=S>i+1.5;for(let L of d){if(r.has(L))continue;let A=Cn(L,e.duration);if(A!==null){if(b&&S>A+.5){r.add(L);continue}S>=A-.5&&(r.add(L),n(L));}}i=S;}function p(){if(!s)for(let S of l)r.has(S)||(r.add(S),n(S));}function m(){if(!o){o=true;for(let S of a)r.has(S)||(r.add(S),n(S));e.on("timeupdate",f),e.on("ended",p);}}function v(){s=true;}function c(){s=false,i=e.currentTime;}function g(){e.off("timeupdate",f),e.off("ended",p);}return {start:m,pause:v,resume:c,destroy:g}}function Cn(e,t){return e.timeOffset.type==="time"?e.timeOffset.seconds:e.timeOffset.type==="percentage"?e.timeOffset.pct/100*t:null}function yt(e){return e.timeOffset.type==="time"?e.timeOffset.seconds:e.timeOffset.type==="percentage"?e.timeOffset.pct:0}function Ln(e){return {name:"vmap",setup(t){let n=false,r=null,i=null,o=t._setState;async function s(d){if(!(n||!d.adSource)){r&&r.pause(),M(d.trackingEvents.breakStart),t.emit("ad:breakStart",{breakId:d.breakId});try{let b=function(){for(let T of S)T();S.length=0;},k=function(T){if(v)for(let C of v.trackingEvents.progress)!y.has(C.offset)&&T>=C.offset&&(y.add(C.offset),M([C.url]));};var f=b,p=k;let m;if(d.adSource.vastData)m=W(d.adSource.vastData);else if(d.adSource.vastUrl)m=await ue(d.adSource.vastUrl,e.vastOptions);else return;if(n||m.ads.length===0)return;let v=null,c=null;for(let T of m.ads){for(let C of T.creatives)if(C.linear&&C.linear.mediaFiles.length>0){v=C.linear,c=T;break}if(v)break}if(!v||!c)return;let g=c.id;o("ad:loading"),t.emit("ad:start",{adId:g});let S=[];if(e.adPlugins)for(let T of e.adPlugins(c)){let C=T.setup(t,c);C&&S.push(C);}for(let T of m.ads)M(T.impressions);t.emit("ad:impression",{adId:g});let L=wn(v.mediaFiles);if(!L){t.emit("ad:error",{error:new Error("No suitable media file found"),source:"vmap"}),b(),o("playing");return}let A=t.el.currentTime,V=t.el.paused,R=t.el.src,O=de(v.duration,T=>{if(!v)return;let C=v.trackingEvents[T];C&&M(C),t.emit("ad:quartile",{adId:g,quartile:T});}),y=new Set,E=t.el.muted||t.el.volume===0,I=!!document.fullscreenElement;await new Promise(T=>{function C(){O(t.el.currentTime),k(t.el.currentTime);}function D(){if(!v)return;let N=t.el.muted||t.el.volume===0;N&&!E?(M(v.trackingEvents.mute),t.emit("ad:mute",{adId:g})):!N&&E&&(M(v.trackingEvents.unmute),t.emit("ad:unmute",{adId:g})),E=N,t.emit("ad:volumeChange",{adId:g,volume:t.el.muted?0:t.el.volume});}function U(){if(!v)return;let N=!!document.fullscreenElement;N&&!I?(M(v.trackingEvents.playerExpand),t.emit("ad:fullscreen",{adId:g,fullscreen:!0})):!N&&I&&(M(v.trackingEvents.playerCollapse),t.emit("ad:fullscreen",{adId:g,fullscreen:!1})),I=N;}function q(){v&&O(v.duration),z(),b(),t.emit("ad:end",{adId:g}),t.el.src=R,t.el.load(),t.el.currentTime=A,V||t.el.play().catch(()=>{t.el.muted=!0,t.el.play().catch(()=>{});}),T();}function z(){t.el.removeEventListener("timeupdate",C),t.el.removeEventListener("ended",q),t.el.removeEventListener("canplay",Q),t.el.removeEventListener("volumechange",D),document.removeEventListener("fullscreenchange",U),i=null;}function Q(){t.el.removeEventListener("canplay",Q),v&&(M(v.trackingEvents.loaded),M(v.trackingEvents.creativeView),t.emit("ad:loaded",{adId:g}),o("ad:playing"),t.el.play().catch(()=>{t.el.muted=!0,t.el.play().catch(()=>{});}));}t.el.addEventListener("canplay",Q),t.el.addEventListener("timeupdate",C),t.el.addEventListener("ended",q),t.el.addEventListener("volumechange",D),document.addEventListener("fullscreenchange",U),i=z,t.el.src=L.url,t.el.load();});}catch(m){n||(M(d.trackingEvents.error),t.emit("ad:error",{error:m instanceof Error?m:new Error(String(m)),source:"vmap"}));}finally{M(d.trackingEvents.breakEnd),t.emit("ad:breakEnd",{breakId:d.breakId}),r&&r.resume();}}}async function a(){if(!n)try{let d=e.timeout??1e4,f=new AbortController,p=setTimeout(()=>f.abort(),d),m;try{let g=await fetch(e.url,{signal:f.signal});if(!g.ok)throw new Error(`VMAP fetch failed: ${g.status}`);m=await g.text();}finally{clearTimeout(p);}if(n)return;let v=ce(m);if(v.adBreaks.length===0)return;let c=fe(t,v.adBreaks,g=>s(g));r=c,c.start();}catch(d){if(n)return;t.emit("ad:error",{error:d instanceof Error?d:new Error(String(d)),source:"vmap"});}}function l({to:d}){d==="ready"&&!n&&(t.off("statechange",l),a());}return t.state==="ready"||t.state==="playing"||t.state==="paused"?a():t.on("statechange",l),()=>{n=true,t.off("statechange",l),r&&r.destroy(),i&&i();}}}}function wn(e){if(e.length===0)return null;let t=e.filter(r=>r.mimeType==="video/mp4");return (t.length>0?t:e).sort((r,i)=>(i.bitrate??0)-(r.bitrate??0))[0]}function ht(e){let t={licenseUrl:e.licenseUrl,serverCertificateUrl:e.certificateUrl};if(e.headers){let n=e.headers;t.licenseXhrSetup=r=>{for(let[i,o]of Object.entries(n))r.setRequestHeader(i,o);};}return {emeEnabled:true,drmSystems:{"com.apple.fps.1_0":t}}}function Et(e){let t={serverURL:e.licenseUrl,serverCertificateURL:e.certificateUrl};return e.headers&&(t.httpRequestHeaders=e.headers),{streaming:{protection:{data:{"com.apple.fps.1_0":t}}}}}function St(e){let t={licenseUrl:e.licenseUrl};if(e.headers){let n=e.headers;t.licenseXhrSetup=r=>{for(let[i,o]of Object.entries(n))r.setRequestHeader(i,o);};}return {emeEnabled:true,drmSystems:{"com.widevine.alpha":t}}}function bt(e){let t={serverURL:e.licenseUrl};return e.headers&&(t.httpRequestHeaders=e.headers),{streaming:{protection:{data:{"com.widevine.alpha":t}}}}}function me(e){return e.keySystem==="com.widevine.alpha"&&e.widevine?St(e.widevine):e.keySystem==="com.apple.fps.1_0"&&e.fairplay?ht(e.fairplay):{}}function pe(e){return e.keySystem==="com.widevine.alpha"&&e.widevine?bt(e.widevine):e.keySystem==="com.apple.fps.1_0"&&e.fairplay?Et(e.fairplay):{}}var Mn="com.apple.fps.1_0",In=[{initDataTypes:["cenc"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.42E01E"'}]}],Rn=[{initDataTypes:["sinf"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.42E01E"'}]}];async function ve(e){for(let t of e)try{let n=t===Mn?Rn:In;return await navigator.requestMediaKeySystemAccess(t,n),t}catch{}return null}var kt="com.apple.fps.1_0",xn=[{initDataTypes:["cenc"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.42E01E"'}]}],Dn=[{initDataTypes:["sinf"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.42E01E"'}]}];function ge(e,t,n){let r=false,i=[],o=null,s=l=>{if(r||e.mediaKeys&&e.mediaKeys!==o||!o||!l.initData)return;let d=o.createSession("temporary");i.push(d),d.generateRequest(l.initDataType,l.initData).then(()=>{},f=>{r||n(f instanceof Error?f:new Error("generateRequest failed"));}),d.addEventListener("message",f=>{r||On(f,d,t,n,()=>r);}),d.addEventListener("keystatuseschange",()=>{if(!r)for(let[,f]of d.keyStatuses)(f==="expired"||f==="internal-error")&&n(new Error(`Key status: ${f}`));});},a=t.keySystem===kt?Dn:xn;return navigator.requestMediaKeySystemAccess(t.keySystem,a).then(l=>{if(!r)return l.createMediaKeys()}).then(l=>{if(!(r||!l)&&(o=l,t.keySystem===kt&&t.certificateUrl))return Vn(t.certificateUrl,t.headers,n,()=>r).then(d=>{if(!(r||!d))return o?.setServerCertificate(d.buffer)})}).then(()=>{r||!o||(e.mediaKeys||e.setMediaKeys(o),e.addEventListener("encrypted",s));}).catch(l=>{r||n(l instanceof Error?l:new Error("EME setup failed"));}),()=>{r=true,e.removeEventListener("encrypted",s);for(let l of i)l.close().catch(()=>{});}}async function Vn(e,t,n,r){try{let i=await fetch(e,t?{headers:t}:{});if(!i.ok)throw new Error(`Certificate fetch failed: ${i.status} ${i.statusText}`);let o=await i.arrayBuffer();return r()?null:new Uint8Array(o)}catch(i){return r()||n(i instanceof Error?i:new Error("Certificate fetch failed")),null}}function On(e,t,n,r,i){let o=new Uint8Array(e.message);Promise.resolve(n.prepareLicenseRequest?n.prepareLicenseRequest(o):o).then(s=>{if(!i())return fetch(n.licenseUrl,{method:"POST",body:s.buffer,...n.headers?{headers:n.headers}:{}})}).then(s=>{if(!(i()||!s)){if(!s.ok)throw new Error(`License request failed: ${s.status} ${s.statusText}`);return s.arrayBuffer()}}).then(s=>{if(i()||!s)return;let a=new Uint8Array(s);return Promise.resolve(n.processLicenseResponse?n.processLicenseResponse(a):a)}).then(s=>{if(!(i()||!s))return t.update(s.buffer)}).catch(s=>{i()||r(s instanceof Error?s:new Error("License exchange failed"));});}function Un(e){return {name:"drm",setup(t){let n=false,r,i=[];return e.widevine&&i.push("com.widevine.alpha"),e.fairplay&&i.push("com.apple.fps.1_0"),i.length===0?(console.warn("[vide/drm] No DRM configuration provided"),()=>{}):(ve(i).then(o=>{if(n)return;if(!o){t.emit("error",{code:4e3,message:"No supported DRM key system found",source:"drm"});return}let s={keySystem:o,widevine:e.widevine,fairplay:e.fairplay},a={keySystem:o,hlsConfig:me(s),dashConfig:pe(s)};t.setPluginData("drm",a);let l=o!=="com.widevine.alpha",d=l?e.fairplay:e.widevine;if(!d)return;let f={keySystem:o,licenseUrl:d.licenseUrl,headers:d.headers,prepareLicenseRequest:d.prepareLicenseRequest,processLicenseResponse:d.processLicenseResponse};l&&(f.certificateUrl=d.certificateUrl),r=ge(t.el,f,p=>{n||t.emit("error",{code:4002,message:p.message,source:"drm"});});}).catch(o=>{n||t.emit("error",{code:4001,message:o instanceof Error?`DRM detection failed: ${o.message}`:"DRM detection failed",source:"drm"});}),()=>{n=true,r?.();})}}}var Hn="urn:scte:scte35:2013:xml",_n="urn:scte:scte35:2014:xml+bin";function Me(e,t,n,r,i,o){return e===Hn||e===_n||e.startsWith("urn:scte:scte35:")?{id:o??`dash-event-${n}`,startTime:n,duration:r,customData:{schemeIdUri:e,value:t,...i?{messageData:i}:{}}}:null}function Tt(e,t,n){function r(i){let s=i?.event;if(s)if(t){let a={source:"eventstream",schemeIdUri:s.schemeIdUri,value:s.value,startTime:s.calculatedPresentationTime,duration:s.duration,messageData:s.messageData},l=t(a);l.length>0&&n(l);}else {let a=Me(s.schemeIdUri,s.value,s.calculatedPresentationTime,s.duration,s.messageData,s.id);a&&n([a]);}}return e.on("eventModeOnReceive",r),e.on("eventModeOnStart",r),()=>{e.off("eventModeOnReceive",r),e.off("eventModeOnStart",r);}}var Nn="com.apple.hls.interstitial",Fn="SCTE35-OUT";function Ie(e,t){let n=e.ID;if(!n)return null;let i=e.CLASS===Nn,o=Fn in e;if(!i&&!o)return null;let s=e["START-DATE"],a=e.DURATION??e["PLANNED-DURATION"],l=0;if(s){let f=new Date(s).getTime();l=t!=null?(f-t)/1e3:f/1e3;}let d=a?Number.parseFloat(a):0;return {id:n,startTime:l,duration:d,customData:{...e}}}function jn(e){try{return new TextDecoder().decode(e)}catch{return null}}function Re(e,t){for(let n of e){let r=jn(n.data);if(r?.includes("SCTE35"))return {id:`id3-${t}`,startTime:t,duration:0,customData:{raw:r}}}return null}function Pt(e,t,n){let r=new Set;function i(a){let l=a?.dateRanges;if(!l)return;let d,f=a?.fragments;if(f){for(let p of f)if(p.programDateTime!=null){d=p.programDateTime-p.start*1e3;break}}for(let[p,m]of Object.entries(l)){if(r.has(p))continue;r.add(p);let v=m.attr??m;if(t){let g=t({source:"daterange",attributes:v});g.length>0&&n(g);}else {let c=Ie(v,d);c&&n([c]);}}}function o(a,l){let d=l;d?.details&&i(d.details);}function s(a,l){let d=l;if(!d?.samples?.length)return;let f=d.samples[0]?.pts??0;if(t){let p={source:"id3",samples:d.samples.map(v=>({type:v.type,data:v.data}))},m=t(p);m.length>0&&n(m);}else {let p=d.samples.map(v=>({type:v.type,data:v.data})),m=Re(p,f);m&&n([m]);}}if(e.on("hlsLevelUpdated",o),e.on("hlsFragParsingMetadata",s),e.levels&&e.currentLevel!=null&&e.currentLevel>=0){let a=e.levels[e.currentLevel]?.details;a&&i(a);}return ()=>{e.off("hlsLevelUpdated",o),e.off("hlsFragParsingMetadata",s);}}var qn=.5;function Bn(e={}){return {name:"ssai",setup(t){let n=e.tolerance??qn,r=e.parser,i=new Map,o=new Set,s=new Set,a=null,l=false;function d(v){for(let c of v)i.has(c.id)||i.set(c.id,c);}function f(){if(a)return true;let v=t.getPluginData("hls");if(v)return a=Pt(v,r,d),true;let c=t.getPluginData("dash");return c?(a=Tt(c,r,d),true):false}function p({currentTime:v}){if(!l){for(let[c,g]of i)o.has(c)||v>=g.startTime-n&&(o.add(c),t.emit("ad:breakStart",{breakId:g.id}),t.emit("ad:start",{adId:g.id}),g.trackingUrls?.length&&M(g.trackingUrls),t.emit("ad:impression",{adId:g.id}));for(let[c,g]of i){if(!o.has(c)||s.has(c))continue;let S=g.startTime+g.duration;g.duration>0&&v>=S-n&&(s.add(c),t.emit("ad:end",{adId:g.id}),t.emit("ad:breakEnd",{breakId:g.id}));}}}t.on("timeupdate",p),f();function m(){if(a||l){t.off("statechange",m);return}f()&&t.off("statechange",m);}return a||t.on("statechange",m),()=>{l=true,t.off("timeupdate",p),t.off("statechange",m),a&&a();}}}}function At(e,t,n){let r=true;t.adEvents.loaded(t.vastProperties),t.adEvents.impressionOccurred(),t.mediaEvents.start(n,e.el.muted?0:e.el.volume);function i(m){r&&(m.quartile==="firstQuartile"?t.mediaEvents.firstQuartile():m.quartile==="midpoint"?t.mediaEvents.midpoint():m.quartile==="thirdQuartile"&&t.mediaEvents.thirdQuartile());}function o(m){r&&(m.to==="ad:paused"?t.mediaEvents.pause():m.to==="ad:playing"&&m.from==="ad:paused"&&t.mediaEvents.resume());}function s(){r&&(r=false,t.mediaEvents.complete(),t.finish());}function a(){r&&(r=false,t.mediaEvents.skipped(),t.finish());}function l(){r&&(r=false,t.error("Ad playback error"),t.finish());}function d(){r&&(r=false,t.finish());}function f(m){r&&t.mediaEvents.volumeChange(m.volume);}function p(m){if(!r)return;let v=m.fullscreen?"fullscreen":"normal";t.mediaEvents.playerStateChange(v);}return e.on("ad:quartile",i),e.on("statechange",o),e.on("ad:end",s),e.on("ad:skip",a),e.on("ad:error",l),e.on("destroy",d),e.on("ad:volumeChange",f),e.on("ad:fullscreen",p),()=>{r=false,e.off("ad:quartile",i),e.off("statechange",o),e.off("ad:end",s),e.off("ad:skip",a),e.off("ad:error",l),e.off("destroy",d),e.off("ad:volumeChange",f),e.off("ad:fullscreen",p);}}function Ct(e,t){return new Promise((n,r)=>{let i=document.createElement("script");i.src=e,i.async=true;let o=setTimeout(()=>{i.remove(),r(new Error(`OM SDK script load timeout: ${e}`));},t);i.onload=()=>{clearTimeout(o),n();},i.onerror=()=>{clearTimeout(o),i.remove(),r(new Error(`OM SDK script load failed: ${e}`));},document.head.appendChild(i);})}function Qn(){let t=globalThis.OmidSessionClient;if(!t)return null;let n=t.default??t;return typeof n.AdSession!="function"?null:n}async function Lt(e,t,n){let r=Date.now();if(await Ct(e,n),t){let o=Date.now()-r,s=Math.max(n-o,1e3);await Ct(t,s);}let i=Qn();if(!i)throw new Error("OM SDK namespace not found after script load");return i}function wt(e,t,n){let r=new e.Partner(n.partner.name,n.partner.version),i=n.verifications.filter(L=>L.resourceUrl).map(L=>new e.VerificationScriptResource(L.resourceUrl,L.vendor,L.parameters,"full")),o=new e.Context(r,i,n.contentUrl,n.customReferenceData);o.setVideoElement(t);let s=t.parentElement;s&&o.setSlotElement(s),o.setServiceWindow(window);let a=new e.AdSession(o);if(a.setCreativeType("video"),a.setImpressionType("beginToRender"),!a.isSupported())throw new Error("OM SDK session not supported in this environment");let l=false,d=false,f=null;a.registerSessionObserver(L=>{L.type==="sessionStart"&&(l=true,f&&(f(true),f=null));}),a.start();let p=new e.AdEvents(a),m=new e.MediaEvents(a),v=n.position??"standalone",c=n.skipOffset!==void 0,g=n.skipOffset??-1,S=n.isAutoPlay??true,b=new e.VastProperties(c,g,S,v);return {get adEvents(){return p},get mediaEvents(){return m},get vastProperties(){return b},get started(){return l},waitForStart(L){return l?Promise.resolve(true):new Promise(A=>{f=A,setTimeout(()=>{l||(f=null,A(false));},L);})},finish(){d||(d=true,a.finish());},error(L){a.error("video",L);}}}var Kn="https://pagead2.googlesyndication.com/omsdk/releases/live/omweb-v1.js";function $n(e){return {name:"omid",setup(t,n){let r=n.verifications??[];if(r.length===0)return;let i=false,o=null,s=null,a=e.timeout??5e3,l=e.serviceScriptUrl??Kn,d={...e,serviceScriptUrl:l,verifications:r,skipOffset:n.creatives[0]?.linear?.skipOffset},f=Lt(l,e.sessionClientUrl,a).catch(m=>m);async function p(){if(!i)try{let m=await f;if(i)return;if(m instanceof Error)throw m;let c=wt(m,t.el,d);if(s=c,i){c.finish();return}let g=await c.waitForStart(a);if(i){c.finish();return}if(!g){console.warn("[vide:omid] Session start timed out"),c.finish();return}let S=Number.isFinite(t.el.duration)?t.el.duration:0;o=At(t,c,S);}catch(m){if(i)return;console.warn("[vide:omid] Failed to initialize:",m instanceof Error?m.message:String(m)),t.emit("ad:error",{error:m instanceof Error?m:new Error(String(m)),source:"omid"});}}return p(),()=>{i=true,o&&(o(),o=null),s&&(s.finish(),s=null);}}}}function Mt(e,t){let n=document.createElement("iframe");n.sandbox.add("allow-scripts","allow-same-origin"),n.style.cssText="position:absolute;top:0;left:0;width:100%;height:100%;border:none;display:none;pointer-events:auto;",n.src=e;let r=new MessageChannel,i=r.port1,o=()=>{n.contentWindow?.postMessage("simid:connect","*",[r.port2]);};n.addEventListener("load",o,{once:true}),t.appendChild(n);let s=false;return {iframe:n,port:i,show(){s||(n.style.display="");},destroy(){s||(s=true,n.removeEventListener("load",o),n.remove(),i.close());}}}function ye(e,t,n,r){return {sessionId:e,messageId:t,timestamp:Date.now(),type:n,args:r}}function It(e,t,n,r){let i={messageId:n};return r!==void 0&&(i.value=r),ye(e,t,"resolve",i)}function Rt(e,t,n,r,i){let o={errorCode:r};return i!==void 0&&(o.message=i),ye(e,t,"reject",{messageId:n,value:o})}function xe(e){if(typeof e!="object"||e===null)return null;let t=e;return typeof t.sessionId!="string"||typeof t.messageId!="number"||typeof t.timestamp!="number"||typeof t.type!="string"?null:{sessionId:t.sessionId,messageId:t.messageId,timestamp:t.timestamp,type:t.type,args:t.args}}function xt(e){return e.type==="createSession"}function De(e){return e.type==="resolve"}function he(e){return e.type==="reject"}function Dt(e,t,n,r){let i=false,o="",s=0,a=[],l=new Map;function d(){return s++}function f(y,k){let E=d(),I=ye(o,E,y,k);return t.postMessage(I),E}function p(y,k){let E=d();t.postMessage(It(o,E,y,k));}function m(y,k,E){let I=d();t.postMessage(Rt(o,I,y,k,E));}function v(y,k,E){return new Promise((I,T)=>{let C=f(y,k),D=setTimeout(()=>{l.delete(C),T(new Error(`SIMID timeout waiting for response to ${y}`));},n.handshakeTimeout);l.set(C,{resolve:U=>{clearTimeout(D),l.delete(C),I(U);},reject:U=>{clearTimeout(D),l.delete(C),T(U);}});})}function c(){let y=e.el.getBoundingClientRect();return {x:Math.round(y.x),y:Math.round(y.y),width:Math.round(y.width),height:Math.round(y.height)}}function g(){let y=c();return {videoDimensions:y,creativeDimensions:y,fullscreen:!!document.fullscreenElement,fullscreenAllowed:!!document.fullscreenEnabled,variableDurationAllowed:false,skippableState:"playerHandles",version:"1.2",muted:e.muted,volume:e.volume,navigationSupport:n.policy.navigation==="new-tab"?"playerHandles":"notSupported"}}function S(){return {adParameters:"",clickThruUrl:r.creatives[0]?.linear?.clickThrough}}function b(){return {currentTime:e.el.currentTime,duration:e.el.duration,ended:e.el.ended,muted:e.muted,paused:e.el.paused,volume:e.volume,fullscreen:!!document.fullscreenElement}}function L(){let y=e.el,k=["play","pause","playing","ended","seeking","seeked","stalled"];for(let D of k){let U=()=>{i||f(`SIMID:Media:${D}`);};y.addEventListener(D,U),a.push(()=>y.removeEventListener(D,U));}let E=()=>{i||f("SIMID:Media:timeupdate",{currentTime:y.currentTime});};y.addEventListener("timeupdate",E),a.push(()=>y.removeEventListener("timeupdate",E));let I=()=>{i||f("SIMID:Media:durationchange",{duration:y.duration});};y.addEventListener("durationchange",I),a.push(()=>y.removeEventListener("durationchange",I));let T=()=>{i||f("SIMID:Media:volumechange",{volume:y.volume,muted:y.muted});};y.addEventListener("volumechange",T),a.push(()=>y.removeEventListener("volumechange",T));let C=()=>{i||f("SIMID:Media:error",{error:y.error?.code??0,message:y.error?.message??""});};y.addEventListener("error",C),a.push(()=>y.removeEventListener("error",C));}function A(y){if(i)return;if(De(y)||he(y)){let I=y.args?.messageId;if(I!==void 0){let T=l.get(I);T&&(De(y)?T.resolve(y):T.reject(new Error(`SIMID creative rejected: ${JSON.stringify(y.args)}`)));}return}let k=y.type;if(k==="SIMID:Creative:requestPause"){n.policy.allowPause?(e.pause(),p(y.messageId)):m(y.messageId,1203,"Pause not allowed");return}if(k==="SIMID:Creative:requestPlay"){n.policy.allowPlay?(e.play(),p(y.messageId)):m(y.messageId,1203,"Play not allowed");return}if(k==="SIMID:Creative:requestResize"){n.policy.allowResize?p(y.messageId):m(y.messageId,1203,"Resize not allowed");return}if(k==="SIMID:Creative:requestNavigation"){let E=y.args;n.policy.navigation==="new-tab"&&E?.uri?(window.open(E.uri,"_blank"),p(y.messageId)):m(y.messageId,1214,"Navigation not supported");return}if(k==="SIMID:Creative:getMediaState"){p(y.messageId,b());return}if(k==="SIMID:Creative:requestSkip"){p(y.messageId),e.emit("ad:skip",{adId:r.id});return}if(k==="SIMID:Creative:requestStop"){p(y.messageId),f("SIMID:Player:adStopped",{code:4}),R(),e.emit("ad:skip",{adId:r.id});return}if(k!=="SIMID:Creative:clickThru"){if(k==="SIMID:Creative:fatalError"){e.emit("ad:error",{error:new Error(`SIMID creative fatal error: ${JSON.stringify(y.args)}`),source:"simid"}),R();return}if(k==="SIMID:Creative:log"){let E=y.args;console.debug("[vide:simid] creative:",E?.message);return}if(k==="SIMID:Creative:reportTracking"){p(y.messageId);return}if(k==="SIMID:Creative:requestChangeVolume"){let E=y.args;E?.volume!==void 0&&(e.volume=E.volume),E?.muted!==void 0&&(e.muted=E.muted),p(y.messageId);return}if(k==="SIMID:Creative:requestFullscreen"||k==="SIMID:Creative:requestExitFullscreen"||k==="SIMID:Creative:requestChangeAdDuration"){m(y.messageId,1203,"Not supported");return}if(k==="SIMID:Creative:expandNonlinear"||k==="SIMID:Creative:collapseNonlinear"){m(y.messageId,1203,"Not supported");return}}}function V(y){let k=xe(y.data);k&&A(k);}function R(){if(!i){i=true,t.removeEventListener("message",V);for(let y of a)y();a.length=0;for(let[,y]of l)y.reject(new Error("SIMID host destroyed"));l.clear();}}async function O(){t.addEventListener("message",V),t.start();let y=await new Promise((I,T)=>{let C=setTimeout(()=>{T(new Error("SIMID handshake timeout: no createSession"));},n.handshakeTimeout),D=U=>{let q=xe(U.data);!q||!xt(q)||(clearTimeout(C),t.removeEventListener("message",D),I(q));};t.addEventListener("message",D);});if(i)throw new Error("SIMID host destroyed during handshake");o=y.sessionId,p(y.messageId);let k=await v("SIMID:Player:init",{environmentData:g(),creativeData:S()});if(i)throw new Error("SIMID host destroyed during handshake");if(he(k))throw new Error(`SIMID creative rejected init: ${JSON.stringify(k.args)}`);let E=await v("SIMID:Player:startCreative");if(i)throw new Error("SIMID host destroyed during handshake");if(he(E))throw new Error(`SIMID creative rejected startCreative: ${JSON.stringify(E.args)}`);L();}return {start:O,destroy:R}}var Gn={allowPause:true,allowPlay:true,allowResize:false,navigation:"new-tab"};function Wn(e){return {name:"simid",setup(t,n){let r=n.creatives.flatMap(l=>l.linear?.interactiveCreativeFiles??[]).find(l=>l.apiFramework==="SIMID");if(!r)return;let i={...Gn,...e.policy},o=e.handshakeTimeout??5e3,s=Mt(r.url,e.container),a=Dt(t,s.port,{policy:i,handshakeTimeout:o},n);return a.start().then(()=>s.show()).catch(l=>{t.emit("ad:error",{error:l instanceof Error?l:new Error(String(l)),source:"simid"}),s.destroy();}),()=>{a.destroy(),s.destroy();}}}}function Ee(e){return {name:"ui-ad",setup(t,n){let r=n.creatives.find(i=>i.linear)?.linear;if(r)return e.set({adId:n.id,skipOffset:r.skipOffset,clickThrough:r.clickThrough,duration:r.duration}),()=>{e.clear();}}}}function ie(e){return `vide-ui--${e.replace(":","-")}`}function H(e){return e==="ad:loading"||e==="ad:playing"||e==="ad:paused"}function Se(e,t){e.classList.add(ie(t.state));function n({from:r,to:i}){e.classList.remove(ie(r)),e.classList.add(ie(i));}return t.on("statechange",n),()=>t.off("statechange",n)}function oe(e){if(!Number.isFinite(e)||e<0)return "0:00";let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,o=n>0?String(r).padStart(2,"0"):String(r),s=String(i).padStart(2,"0");return n>0?`${n}:${o}:${s}`:`${o}:${s}`}function P(e,t){let n=document.createElement(e);return n.className=t,n}function be(){let e={current:null,set(t){e.current=t;},clear(){e.current=null;}};return e}function Ve(e){let t=null,n=null;function r(){if(!t||!n||!H(n.state))return;let i=e.current?.duration??(Number.isFinite(n.el.duration)?n.el.duration:0),o=n.el.currentTime,s=Math.max(0,Math.ceil(i-o));t.textContent=`Ad \xB7 ${s}s`;}return {mount(i){t=P("div","vide-ad-countdown"),i.appendChild(t);},connect(i){n=i,n.on("timeupdate",r);},destroy(){t&&(t.remove(),t=null),n&&(n.off("timeupdate",r),n=null);}}}function Oe(){let e=null;return {mount(t){e=P("div","vide-ad-label"),e.textContent="Ad",t.appendChild(e);},connect(t){},destroy(){e&&(e.remove(),e=null);}}}function Ue(e){let t=null,n=null;function r(){if(!n)return;n.el.click();let i=e.current?.clickThrough;i?(window.open(i,"_blank"),n.el.pause()):n.el.paused?Promise.resolve(n.el.play()).catch(()=>{}):n.el.pause();}return {mount(i){t=P("div","vide-ad-overlay"),i.appendChild(t);},connect(i){n=i,t&&t.addEventListener("click",r);},destroy(){t&&(t.removeEventListener("click",r),t.remove(),t=null),n=null;}}}var Vt="http://www.w3.org/2000/svg";function G(e,t="0 0 24 24"){let n=document.createElementNS(Vt,"svg");n.setAttribute("viewBox",t),n.setAttribute("width","24"),n.setAttribute("height","24"),n.setAttribute("fill","currentColor"),n.setAttribute("aria-hidden","true");for(let r of e){let i=document.createElementNS(Vt,"path");i.setAttribute("d",r),n.appendChild(i);}return n}function ke(){return G(["M8 5v14l11-7z"])}function Ot(){return G(["M6 19h4V5H6v14zm8-14v14h4V5h-4z"])}function Ut(){return G(["M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"])}function Ht(){return G(["M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"])}function _t(){return G(["M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4l-1.88 1.88L12 7.76V4z"])}function Nt(){return G(["M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"])}function Ft(){return G(["M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"])}function jt(){return G(["M5 18l10-6L5 6v12zm12-12v12h2V6h-2z"])}function He(e){let t=null,n=null,r=null;function i(){!r||!e.current||t?.classList.contains("vide-skip--disabled")||r.emit("ad:skip",{adId:e.current.adId});}function o(){if(!t||!n||!r||!H(r.state))return;if(!e.current||e.current.skipOffset===void 0){t.style.display="none";return}t.style.display="";let{skipOffset:a}=e.current,l=r.el.currentTime;if(l>=a)t.classList.remove("vide-skip--disabled"),n.textContent="Skip Ad";else {t.classList.add("vide-skip--disabled");let d=Math.max(0,Math.ceil(a-l));n.textContent=`Skip in ${d}s`;}}function s({to:a}){!t||!n||H(a)||(t.style.display="none",t.classList.add("vide-skip--disabled"),n.textContent="");}return {mount(a){t=P("button","vide-skip vide-skip--disabled"),t.type="button",t.setAttribute("aria-label","Skip ad"),t.style.display="none",n=P("span","vide-skip__label"),t.appendChild(n),t.appendChild(jt()),a.appendChild(t);},connect(a){r=a,t&&(t.addEventListener("click",i),r.on("timeupdate",o),r.on("statechange",s));},destroy(){t&&(t.removeEventListener("click",i),t.remove(),t=null,n=null),r&&(r.off("timeupdate",o),r.off("statechange",s),r=null);}}}var Yn=3e3;function _e(){let e=null,t=null,n=null;function r(){if(!t)return true;let d=t.state;return d==="paused"||d==="ended"||d==="idle"||d==="ready"||H(d)}function i(){e&&e.classList.remove("vide-ui--autohide");}function o(){s(),!r()&&(n=setTimeout(()=>{e&&e.classList.add("vide-ui--autohide");},Yn));}function s(){n!==null&&(clearTimeout(n),n=null);}function a(){i(),o();}function l({to:d}){d==="paused"||d==="ended"||d==="idle"||d==="ready"||H(d)?(s(),i()):o();}return {mount(d){e=d.closest(".vide-ui")??d;},connect(d){t=d,e&&(e.addEventListener("mousemove",a),e.addEventListener("touchstart",a),e.addEventListener("keydown",a),t.on("statechange",l),o());},destroy(){s(),e&&(e.removeEventListener("mousemove",a),e.removeEventListener("touchstart",a),e.removeEventListener("keydown",a),e.classList.remove("vide-ui--autohide"),e=null),t&&(t.off("statechange",l),t=null);}}}function Ne(){let e=null,t=null;function n(){if(t){if(t.state==="ended"){let i=function({to:o}){o==="ready"&&(t?.off("statechange",i),t?.play().catch(()=>{}));};t.on("statechange",i),t.el.currentTime=0,t.el.load();return}t.play().catch(()=>{});}}return {mount(r){e=P("button","vide-bigplay"),e.type="button",e.setAttribute("aria-label","Play video"),e.appendChild(ke()),r.appendChild(e);},connect(r){t=r,e&&e.addEventListener("click",n);},destroy(){e&&(e.removeEventListener("click",n),e.remove(),e=null),t=null;}}}var Xn=200;function Fe(e){let t=null,n=null,r=null,i=null;function o(){n&&(n.state==="playing"||n.state==="ad:playing"?n.pause():n.play().catch(()=>{}));}function s(){!i||e.has("fullscreen")||(document.fullscreenElement!=null?document.exitFullscreen().catch(()=>{}):i.requestFullscreen&&i.requestFullscreen().catch(()=>{}));}function a(){if(n){if(H(n.state)){n.el.click(),o();return}if(r!==null){clearTimeout(r),r=null,s();return}r=setTimeout(()=>{r=null,o();},Xn);}}return {mount(l){t=P("div","vide-clickplay"),i=l.closest(".vide-ui")?.parentElement??l,l.appendChild(t);},connect(l){n=l,t&&t.addEventListener("click",a);},destroy(){r!==null&&(clearTimeout(r),r=null),t&&(t.removeEventListener("click",a),t.remove(),t=null),n=null,i=null;}}}function je(){let e=null,t=null,n=null;function r({message:i}){t&&(t.textContent=i);}return {mount(i){e=P("div","vide-error"),t=P("span","vide-error__message"),e.appendChild(t),i.appendChild(e);},connect(i){n=i,n.on("error",r);},destroy(){e&&(e.remove(),e=null,t=null),n&&(n.off("error",r),n=null);}}}function qe(){let e=null,t=null,n=null;function r(){return document.fullscreenElement!=null||document.webkitFullscreenElement!=null}function i(a){e&&(n&&n.remove(),n=a?Ft():Nt(),e.appendChild(n));}function o(){t&&(r()?typeof document.exitFullscreen=="function"?document.exitFullscreen().catch(()=>{}):typeof document.webkitExitFullscreen=="function"&&document.webkitExitFullscreen():typeof t.requestFullscreen=="function"?t.requestFullscreen().catch(()=>{}):typeof t.webkitRequestFullscreen=="function"?t.webkitRequestFullscreen():t.querySelector("video")?.webkitEnterFullscreen?.());}function s(){if(!e)return;let a=r();a?(e.classList.add("vide-fullscreen--active"),e.setAttribute("aria-label","Exit fullscreen")):(e.classList.remove("vide-fullscreen--active"),e.setAttribute("aria-label","Fullscreen")),i(a);}return {mount(a){t=a.closest(".vide-ui")?.parentElement??a,e=P("button","vide-fullscreen"),e.type="button",e.setAttribute("aria-label","Fullscreen"),i(false),a.appendChild(e);},connect(){e&&(e.addEventListener("click",o),document.addEventListener("fullscreenchange",s),document.addEventListener("webkitfullscreenchange",s));},destroy(){e&&(e.removeEventListener("click",o),e.remove(),e=null,n=null),document.removeEventListener("fullscreenchange",s),document.removeEventListener("webkitfullscreenchange",s),t=null;}}}function Be(e){let t=null,n=null,{excluded:r}=e;function i(o){if(!n)return;let s=!r.has("volume"),a=!r.has("progress"),l=!r.has("fullscreen"),d=H(n.state);switch(o.key){case " ":case "k":case "K":o.preventDefault(),n.state==="playing"||n.state==="ad:playing"?n.pause():n.play().catch(()=>{});break;case "ArrowLeft":if(!a||d)return;o.preventDefault(),n.currentTime=Math.max(0,n.el.currentTime-5);break;case "ArrowRight":if(!a||d)return;o.preventDefault(),n.currentTime=Math.min(n.el.duration||0,n.el.currentTime+5);break;case "ArrowUp":if(!s)return;o.preventDefault(),n.volume=Math.min(1,n.volume+.1),n.muted&&(n.muted=false);break;case "ArrowDown":if(!s)return;o.preventDefault(),n.volume=Math.max(0,n.volume-.1);break;case "m":case "M":if(!s)return;o.preventDefault(),n.muted=!n.muted;break;case "f":case "F":if(!l)return;if(o.preventDefault(),document.fullscreenElement!=null)document.exitFullscreen().catch(()=>{});else {let f=t?.closest(".vide-ui")?.parentElement??t;f?.requestFullscreen&&f.requestFullscreen().catch(()=>{});}break;default:if(o.key.length===1&&o.key>="0"&&o.key<="9"&&a&&!d){o.preventDefault();let f=Number.parseInt(o.key,10)/10,p=n.el.duration;Number.isFinite(p)&&p>0&&(n.currentTime=f*p);}break}}return {mount(o){t=o.closest(".vide-ui")??o,t.setAttribute("tabindex","0");},connect(o){n=o,t&&t.addEventListener("keydown",i);},destroy(){t&&(t.removeEventListener("keydown",i),t.removeAttribute("tabindex"),t=null),n=null;}}}function Qe(){let e=null;return {mount(t){e=P("div","vide-loader");let n=P("div","vide-loader__spinner");e.appendChild(n),t.appendChild(e);},connect(t){},destroy(){e&&(e.remove(),e=null);}}}function Ke(){let e=null,t=null,n=null;function r(s){e&&(n&&n.remove(),n=s?Ot():ke(),e.appendChild(n));}function i(){t&&(t.state==="playing"?t.pause():t.play().catch(()=>{}));}function o({to:s}){e&&(s==="playing"||s==="ad:playing"?(e.classList.add("vide-play--playing"),e.classList.remove("vide-play--paused"),e.setAttribute("aria-label","Pause"),r(true)):(s==="paused"||s==="ready"||s==="ended"||s==="ad:paused")&&(e.classList.remove("vide-play--playing"),e.classList.add("vide-play--paused"),e.setAttribute("aria-label","Play"),r(false)));}return {mount(s){e=P("button","vide-play vide-play--paused"),e.type="button",e.setAttribute("aria-label","Play"),r(false),s.appendChild(e);},connect(s){t=s,e&&(e.addEventListener("click",i),t.on("statechange",o));},destroy(){e&&(e.removeEventListener("click",i),e.remove(),e=null,n=null),t&&(t.off("statechange",o),t=null);}}}function $e(e){let t=null;return {mount(n){t=P("div","vide-poster");let r=P("img","vide-poster__image");r.src=e.src,r.alt="",t.appendChild(r),n.appendChild(t);},connect(n){},destroy(){t&&(t.remove(),t=null);}}}function ze(){let e=null,t=null,n=null,r=null,i=null,o=false;function s(c){if(!e)return 0;let g=e.getBoundingClientRect();return g.width===0?0:Math.max(0,Math.min(1,(c.clientX-g.left)/g.width))}function a(c){e&&e.style.setProperty("--vide-progress",String(c));}function l(){if(!i||!n)return;let c=i.el;if(c.buffered.length>0&&c.duration>0){let S=c.buffered.end(c.buffered.length-1)/c.duration;n.style.setProperty("--vide-progress-buffered",String(Math.min(1,S)));}}function d(){if(o||!i)return;let{currentTime:c,duration:g}=i.el;g>0&&a(c/g),l(),e&&(e.setAttribute("aria-valuenow",String(Math.floor(c))),Number.isFinite(g)&&e.setAttribute("aria-valuemax",String(Math.floor(g))));}function f(c){!i||!e||H(i.state)||(o=true,e.classList.add("vide-progress--dragging"),e.setPointerCapture(c.pointerId),a(s(c)));}function p(c){o&&a(s(c));}function m(c){if(!o||!i)return;o=false,e&&(e.classList.remove("vide-progress--dragging"),e.releasePointerCapture(c.pointerId));let g=s(c),S=i.el.duration;Number.isFinite(S)&&S>0&&(i.currentTime=g*S);}function v({to:c}){e&&(H(c)?e.classList.add("vide-progress--disabled"):e.classList.remove("vide-progress--disabled"));}return {mount(c){e=P("div","vide-progress"),e.setAttribute("role","slider"),e.setAttribute("aria-label","Seek"),e.setAttribute("aria-valuemin","0"),e.setAttribute("aria-valuemax","0"),e.setAttribute("aria-valuenow","0"),n=P("div","vide-progress__buffered"),t=P("div","vide-progress__bar"),r=P("div","vide-progress__handle"),e.appendChild(n),e.appendChild(t),e.appendChild(r),c.appendChild(e);},connect(c){i=c,e&&(i.on("timeupdate",d),i.on("statechange",v),e.addEventListener("pointerdown",f),e.addEventListener("pointermove",p),e.addEventListener("pointerup",m));},destroy(){e&&(e.removeEventListener("pointerdown",f),e.removeEventListener("pointermove",p),e.removeEventListener("pointerup",m),e.remove(),e=null,t=null,n=null,r=null),i&&(i.off("timeupdate",d),i.off("statechange",v),i=null);}}}function Ge(){let e=null,t=null,n=null,r=null;function i({currentTime:o,duration:s}){t&&(t.textContent=oe(o)),n&&(n.textContent=oe(s));}return {mount(o){e=P("div","vide-time"),t=P("span","vide-time__current");let s=P("span","vide-time__separator");n=P("span","vide-time__duration"),t.textContent="0:00",s.textContent="/",n.textContent="0:00",e.appendChild(t),e.appendChild(s),e.appendChild(n),o.appendChild(e);},connect(o){r=o,r.on("timeupdate",i);},destroy(){e&&(e.remove(),e=null,t=null,n=null),r&&(r.off("timeupdate",i),r=null);}}}function We(){let e=null,t=null,n=null,r=null,i=false,o=null;function s(){if(!t||!r)return;o&&o.remove(),r.muted||r.volume===0?o=_t():r.volume<.5?o=Ht():o=Ut(),t.appendChild(o);}function a(){if(!r||!e||!t)return;r.muted||r.volume===0?(e.classList.add("vide-volume--muted"),t.setAttribute("aria-label","Unmute")):(e.classList.remove("vide-volume--muted"),t.setAttribute("aria-label","Mute"));let g=r.muted?0:r.volume;e.style.setProperty("--vide-volume",String(g)),n&&n.setAttribute("aria-valuenow",String(Math.round(g*100))),s();}function l(c){if(!n)return 0;let g=n.getBoundingClientRect();return g.width===0?0:Math.max(0,Math.min(1,(c.clientX-g.left)/g.width))}function d(){r&&(r.muted=!r.muted);}function f(){i||a();}function p(c){if(!r||!n)return;i=true,n.setPointerCapture(c.pointerId);let g=l(c);r.volume=g,r.muted&&g>0&&(r.muted=false),a();}function m(c){if(!i||!r)return;let g=l(c);r.volume=g,r.muted&&g>0&&(r.muted=false),a();}function v(c){!i||!n||(i=false,n.releasePointerCapture(c.pointerId));}return {mount(c){e=P("div","vide-volume"),t=P("button","vide-volume__button"),t.type="button",t.setAttribute("aria-label","Mute"),n=P("div","vide-volume__slider"),n.setAttribute("role","slider"),n.setAttribute("aria-label","Volume"),n.setAttribute("aria-valuemin","0"),n.setAttribute("aria-valuemax","100"),n.setAttribute("aria-valuenow","100");let g=P("div","vide-volume__track"),S=P("div","vide-volume__filled");n.appendChild(g),n.appendChild(S),e.appendChild(t),e.appendChild(n),c.appendChild(e);},connect(c){r=c,!(!t||!n)&&(t.addEventListener("click",d),n.addEventListener("pointerdown",p),n.addEventListener("pointermove",m),n.addEventListener("pointerup",v),r.el.addEventListener("volumechange",f),a());},destroy(){t&&t.removeEventListener("click",d),n&&(n.removeEventListener("pointerdown",p),n.removeEventListener("pointermove",m),n.removeEventListener("pointerup",v)),r&&(r.el.removeEventListener("volumechange",f),r=null),e&&(e.remove(),e=null,t=null,n=null,o=null);}}}function Jn(e,t,n){e.mount(t),e.connect(n);}function Zn(e){let t=be(),n=new Set(e.exclude);return {name:"ui",setup(r){r.isAudio&&(n.add("fullscreen"),n.add("poster"));let i=document.createElement("div");i.className="vide-ui",i.setAttribute("role","region"),i.setAttribute("aria-label",r.isAudio?"Audio player":"Video player"),e.container.appendChild(i);let o=[];function s(f,p,m){n.has(f)||(Jn(p,m,r),o.push(p));}if(s("loader",Qe(),i),s("error",je(),i),s("bigplay",Ne(),i),e.poster&&s("poster",$e({src:e.poster}),i),s("clickplay",Fe(n),i),!n.has("ad-overlay")||!n.has("ad-label")||!n.has("ad-countdown")||!n.has("ad-skip")){let f=document.createElement("div");f.className="vide-ad",i.appendChild(f),s("ad-overlay",Ue(t),f),s("ad-label",Oe(),f),s("ad-countdown",Ve(t),f),s("ad-skip",He(t),f);}let l=document.createElement("div");l.className="vide-controls",l.addEventListener("click",f=>f.stopPropagation()),i.appendChild(l),s("play",Ke(),l),s("progress",ze(),l),s("time",Ge(),l),s("volume",We(),l),s("fullscreen",qe(),l),s("autohide",_e(),i),s("keyboard",Be({excluded:n}),i);let d=Se(i,r);return ()=>{for(let f of o)f.destroy();d(),i.remove();}},getAdPlugin(){return ()=>[Ee(t)]}}}
2
+ exports.ERR_DASH_IMPORT=nt;exports.ERR_DASH_PLAYBACK=rt;exports.ERR_DRM_CERTIFICATE=Bt;exports.ERR_DRM_DETECTION=ot;exports.ERR_DRM_LICENSE=st;exports.ERR_DRM_UNSUPPORTED=it;exports.ERR_HLS_FATAL=tt;exports.ERR_HLS_IMPORT=et;exports.ERR_HLS_UNSUPPORTED=Ze;exports.ERR_MEDIA=Je;exports.connectStateClasses=Se;exports.createAdCountdown=Ve;exports.createAdLabel=Oe;exports.createAdOverlay=Ue;exports.createAdSkip=He;exports.createAdUIState=be;exports.createAutohide=_e;exports.createBigPlay=Ne;exports.createClickPlay=Fe;exports.createErrorDisplay=je;exports.createFullscreen=qe;exports.createKeyboard=Be;exports.createLoader=Qe;exports.createPlayButton=Ke;exports.createPlayer=zt;exports.createPoster=$e;exports.createProgress=ze;exports.createScheduler=fe;exports.createTimeDisplay=Ge;exports.createVolume=We;exports.dash=an;exports.dashDrmConfig=pe;exports.detectKeySystem=ve;exports.drm=Un;exports.fetchVast=re;exports.formatTime=oe;exports.getQuartile=gt;exports.hls=Zt;exports.hlsDrmConfig=me;exports.isAdState=H;exports.omid=$n;exports.parseDateRange=Ie;exports.parseEventStream=Me;exports.parseId3Samples=Re;exports.parseVast=W;exports.parseVmap=ce;exports.resolveVast=ue;exports.setupEme=ge;exports.simid=Wn;exports.ssai=Bn;exports.stateToClass=ie;exports.track=M;exports.ui=Zn;exports.uiAdPlugin=Ee;exports.vast=En;exports.vmap=Ln;return exports;})({});
@@ -0,0 +1,2 @@
1
+ (function(){'use strict';var T=Object.defineProperty;var _=(e,t)=>()=>(e&&(t=e(e=0)),t);var C=(e,t)=>{for(var o in t)T(e,o,{get:t[o],enumerable:true});};var L={};C(L,{default:()=>w});var M,w,E=_(()=>{M=globalThis.Hls,w=M;});function b(e){return e>=2160?"4K":e>=1440?"1440p":e>=1080?"1080p":e>=720?"720p":e>=480?"480p":e>=360?"360p":e>=240?"240p":`${e}p`}var H=["application/vnd.apple.mpegurl","application/x-mpegurl"],k={maxRetries:3,retryDelay:3e3,backoffMultiplier:2};function q(e){if(e.startsWith("data:")){let t=e.indexOf(";");return t===-1?false:H.includes(e.slice(5,t).toLowerCase())}if(e.startsWith("blob:"))return e.includes(".m3u8");try{return new URL(e,"https://placeholder.invalid").pathname.endsWith(".m3u8")}catch{return e.includes(".m3u8")}}function O(e){return H.includes(e.toLowerCase())}function h(e={}){return {name:"hls",setup(t){let o=null,c=false,d=e.recovery===false?false:{...k,...e.recovery??{}},l=0,m=null;function p(){m!==null&&(clearTimeout(m),m=null);}function R(s,i){if(d===false||c||l>=d.maxRetries)return false;l++;let a=d.retryDelay*d.backoffMultiplier**(l-1);return p(),m=setTimeout(()=>{c||(i==="networkError"?s.startLoad(-1):s.recoverMediaError());},a),true}let v={canHandle(s,i){return i&&O(i)?true:q(s)},load(s,i){this.unload(i),P(s,i);},unload(s){p(),l=0,o&&(o.destroy(),o=null);}};function P(s,i){Promise.resolve().then(()=>(E(),L)).then(a=>{if(c)return;let u=a.default;if(!u.isSupported()){if(i.canPlayType("application/vnd.apple.mpegurl")){i.src=s;return}t.emit("error",{code:2e3,message:"HLS is not supported in this browser",source:"hls"});return}let D=t.getPluginData("drm"),S={...e.hlsConfig??{},...D?.hlsConfig??{}},n=new u(S);o=n,t.setPluginData("hls",n),n.on(u.Events.ERROR,(g,r)=>{if(!r.fatal)return;let f=R(n,r.type);t.emit("error",{code:2002,message:`HLS fatal error: ${r.type} - ${r.details}`,source:"hls",recoverable:f,retryCount:f?l:void 0});}),n.on(u.Events.FRAG_LOADED,()=>{l>0&&(l=0,p());}),n.on(u.Events.MANIFEST_PARSED,()=>{let g=n.levels.map((r,f)=>({id:f,width:r.width,height:r.height,bitrate:r.bitrate,label:b(r.height)}));t.setPluginData("qualities",g),t.setPluginData("qualitySetter",r=>{n.currentLevel=r,t.setPluginData("autoQuality",r===-1);});}),n.on(u.Events.LEVEL_SWITCHED,(g,r)=>{let y=t.qualities[r.level];y&&(t.setPluginData("currentQuality",y),t.setPluginData("autoQuality",n.autoLevelEnabled));}),n.attachMedia(i),n.loadSource(s);}).catch(a=>{c||t.emit("error",{code:2001,message:a instanceof Error?`Failed to load hls.js: ${a.message}`:"Failed to load hls.js",source:"hls"});});}return t.registerSourceHandler(v),()=>{c=true,p(),v.unload(t.el);}}}}var x=globalThis.Vide??(globalThis.Vide={});x.hls=h;
2
+ })();
@@ -0,0 +1,2 @@
1
+ (function(){'use strict';function E(e,t,r){let n=true;t.adEvents.loaded(t.vastProperties),t.adEvents.impressionOccurred(),t.mediaEvents.start(r,e.el.muted?0:e.el.volume);function o(i){n&&(i.quartile==="firstQuartile"?t.mediaEvents.firstQuartile():i.quartile==="midpoint"?t.mediaEvents.midpoint():i.quartile==="thirdQuartile"&&t.mediaEvents.thirdQuartile());}function s(i){n&&(i.to==="ad:paused"?t.mediaEvents.pause():i.to==="ad:playing"&&i.from==="ad:paused"&&t.mediaEvents.resume());}function d(){n&&(n=false,t.mediaEvents.complete(),t.finish());}function a(){n&&(n=false,t.mediaEvents.skipped(),t.finish());}function l(){n&&(n=false,t.error("Ad playback error"),t.finish());}function c(){n&&(n=false,t.finish());}function u(i){n&&t.mediaEvents.volumeChange(i.volume);}function p(i){if(!n)return;let v=i.fullscreen?"fullscreen":"normal";t.mediaEvents.playerStateChange(v);}return e.on("ad:quartile",o),e.on("statechange",s),e.on("ad:end",d),e.on("ad:skip",a),e.on("ad:error",l),e.on("destroy",c),e.on("ad:volumeChange",u),e.on("ad:fullscreen",p),()=>{n=false,e.off("ad:quartile",o),e.off("statechange",s),e.off("ad:end",d),e.off("ad:skip",a),e.off("ad:error",l),e.off("destroy",c),e.off("ad:volumeChange",u),e.off("ad:fullscreen",p);}}function w(e,t){return new Promise((r,n)=>{let o=document.createElement("script");o.src=e,o.async=true;let s=setTimeout(()=>{o.remove(),n(new Error(`OM SDK script load timeout: ${e}`));},t);o.onload=()=>{clearTimeout(s),r();},o.onerror=()=>{clearTimeout(s),o.remove(),n(new Error(`OM SDK script load failed: ${e}`));},document.head.appendChild(o);})}function A(){let t=globalThis.OmidSessionClient;if(!t)return null;let r=t.default??t;return typeof r.AdSession!="function"?null:r}async function h(e,t,r){let n=Date.now();if(await w(e,r),t){let s=Date.now()-n,d=Math.max(r-s,1e3);await w(t,d);}let o=A();if(!o)throw new Error("OM SDK namespace not found after script load");return o}function P(e,t,r){let n=new e.Partner(r.partner.name,r.partner.version),o=r.verifications.filter(m=>m.resourceUrl).map(m=>new e.VerificationScriptResource(m.resourceUrl,m.vendor,m.parameters,"full")),s=new e.Context(n,o,r.contentUrl,r.customReferenceData);s.setVideoElement(t);let d=t.parentElement;d&&s.setSlotElement(d),s.setServiceWindow(window);let a=new e.AdSession(s);if(a.setCreativeType("video"),a.setImpressionType("beginToRender"),!a.isSupported())throw new Error("OM SDK session not supported in this environment");let l=false,c=false,u=null;a.registerSessionObserver(m=>{m.type==="sessionStart"&&(l=true,u&&(u(true),u=null));}),a.start();let p=new e.AdEvents(a),i=new e.MediaEvents(a),v=r.position??"standalone",f=r.skipOffset!==void 0,O=r.skipOffset??-1,S=r.isAutoPlay??true,b=new e.VastProperties(f,O,S,v);return {get adEvents(){return p},get mediaEvents(){return i},get vastProperties(){return b},get started(){return l},waitForStart(m){return l?Promise.resolve(true):new Promise(g=>{u=g,setTimeout(()=>{l||(u=null,g(false));},m);})},finish(){c||(c=true,a.finish());},error(m){a.error("video",m);}}}var C="https://pagead2.googlesyndication.com/omsdk/releases/live/omweb-v1.js";function y(e){return {name:"omid",setup(t,r){let n=r.verifications??[];if(n.length===0)return;let o=false,s=null,d=null,a=e.timeout??5e3,l=e.serviceScriptUrl??C,c={...e,serviceScriptUrl:l,verifications:n,skipOffset:r.creatives[0]?.linear?.skipOffset},u=h(l,e.sessionClientUrl,a).catch(i=>i);async function p(){if(!o)try{let i=await u;if(o)return;if(i instanceof Error)throw i;let f=P(i,t.el,c);if(d=f,o){f.finish();return}let O=await f.waitForStart(a);if(o){f.finish();return}if(!O){console.warn("[vide:omid] Session start timed out"),f.finish();return}let S=Number.isFinite(t.el.duration)?t.el.duration:0;s=E(t,f,S);}catch(i){if(o)return;console.warn("[vide:omid] Failed to initialize:",i instanceof Error?i.message:String(i)),t.emit("ad:error",{error:i instanceof Error?i:new Error(String(i)),source:"omid"});}}return p(),()=>{o=true,s&&(s(),s=null),d&&(d.finish(),d=null);}}}}var k=globalThis.Vide??(globalThis.Vide={});k.omid=y;
2
+ })();
@@ -0,0 +1 @@
1
+ (function(){'use strict';function k(t,r){let i=document.createElement("iframe");i.sandbox.add("allow-scripts","allow-same-origin"),i.style.cssText="position:absolute;top:0;left:0;width:100%;height:100%;border:none;display:none;pointer-events:auto;",i.src=t;let a=new MessageChannel,o=a.port1,l=()=>{i.contentWindow?.postMessage("simid:connect","*",[a.port2]);};i.addEventListener("load",l,{once:true}),r.appendChild(i);let m=false;return {iframe:i,port:o,show(){m||(i.style.display="");},destroy(){m||(m=true,i.removeEventListener("load",l),i.remove(),o.close());}}}function h(t,r,i,a){return {sessionId:t,messageId:r,timestamp:Date.now(),type:i,args:a}}function j(t,r,i,a){let o={messageId:i};return a!==void 0&&(o.value=a),h(t,r,"resolve",o)}function T(t,r,i,a,o){let l={errorCode:a};return o!==void 0&&(l.message=o),h(t,r,"reject",{messageId:i,value:l})}function b(t){if(typeof t!="object"||t===null)return null;let r=t;return typeof r.sessionId!="string"||typeof r.messageId!="number"||typeof r.timestamp!="number"||typeof r.type!="string"?null:{sessionId:r.sessionId,messageId:r.messageId,timestamp:r.timestamp,type:r.type,args:r.args}}function x(t){return t.type==="createSession"}function C(t){return t.type==="resolve"}function y(t){return t.type==="reject"}function L(t,r,i,a){let o=false,l="",m=0,f=[],d=new Map;function w(){return m++}function S(e,n){let s=w(),u=h(l,s,e,n);return r.postMessage(u),s}function g(e,n){let s=w();r.postMessage(j(l,s,e,n));}function M(e,n,s){let u=w();r.postMessage(T(l,u,e,n,s));}function P(e,n,s){return new Promise((u,c)=>{let v=S(e,n),I=setTimeout(()=>{d.delete(v),c(new Error(`SIMID timeout waiting for response to ${e}`));},i.handshakeTimeout);d.set(v,{resolve:p=>{clearTimeout(I),d.delete(v),u(p);},reject:p=>{clearTimeout(I),d.delete(v),c(p);}});})}function A(){let e=t.el.getBoundingClientRect();return {x:Math.round(e.x),y:Math.round(e.y),width:Math.round(e.width),height:Math.round(e.height)}}function N(){let e=A();return {videoDimensions:e,creativeDimensions:e,fullscreen:!!document.fullscreenElement,fullscreenAllowed:!!document.fullscreenEnabled,variableDurationAllowed:false,skippableState:"playerHandles",version:"1.2",muted:t.muted,volume:t.volume,navigationSupport:i.policy.navigation==="new-tab"?"playerHandles":"notSupported"}}function O(){return {adParameters:"",clickThruUrl:a.creatives[0]?.linear?.clickThrough}}function H(){return {currentTime:t.el.currentTime,duration:t.el.duration,ended:t.el.ended,muted:t.muted,paused:t.el.paused,volume:t.volume,fullscreen:!!document.fullscreenElement}}function V(){let e=t.el,n=["play","pause","playing","ended","seeking","seeked","stalled"];for(let I of n){let p=()=>{o||S(`SIMID:Media:${I}`);};e.addEventListener(I,p),f.push(()=>e.removeEventListener(I,p));}let s=()=>{o||S("SIMID:Media:timeupdate",{currentTime:e.currentTime});};e.addEventListener("timeupdate",s),f.push(()=>e.removeEventListener("timeupdate",s));let u=()=>{o||S("SIMID:Media:durationchange",{duration:e.duration});};e.addEventListener("durationchange",u),f.push(()=>e.removeEventListener("durationchange",u));let c=()=>{o||S("SIMID:Media:volumechange",{volume:e.volume,muted:e.muted});};e.addEventListener("volumechange",c),f.push(()=>e.removeEventListener("volumechange",c));let v=()=>{o||S("SIMID:Media:error",{error:e.error?.code??0,message:e.error?.message??""});};e.addEventListener("error",v),f.push(()=>e.removeEventListener("error",v));}function F(e){if(o)return;if(C(e)||y(e)){let u=e.args?.messageId;if(u!==void 0){let c=d.get(u);c&&(C(e)?c.resolve(e):c.reject(new Error(`SIMID creative rejected: ${JSON.stringify(e.args)}`)));}return}let n=e.type;if(n==="SIMID:Creative:requestPause"){i.policy.allowPause?(t.pause(),g(e.messageId)):M(e.messageId,1203,"Pause not allowed");return}if(n==="SIMID:Creative:requestPlay"){i.policy.allowPlay?(t.play(),g(e.messageId)):M(e.messageId,1203,"Play not allowed");return}if(n==="SIMID:Creative:requestResize"){i.policy.allowResize?g(e.messageId):M(e.messageId,1203,"Resize not allowed");return}if(n==="SIMID:Creative:requestNavigation"){let s=e.args;i.policy.navigation==="new-tab"&&s?.uri?(window.open(s.uri,"_blank"),g(e.messageId)):M(e.messageId,1214,"Navigation not supported");return}if(n==="SIMID:Creative:getMediaState"){g(e.messageId,H());return}if(n==="SIMID:Creative:requestSkip"){g(e.messageId),t.emit("ad:skip",{adId:a.id});return}if(n==="SIMID:Creative:requestStop"){g(e.messageId),S("SIMID:Player:adStopped",{code:4}),D(),t.emit("ad:skip",{adId:a.id});return}if(n!=="SIMID:Creative:clickThru"){if(n==="SIMID:Creative:fatalError"){t.emit("ad:error",{error:new Error(`SIMID creative fatal error: ${JSON.stringify(e.args)}`),source:"simid"}),D();return}if(n==="SIMID:Creative:log"){let s=e.args;console.debug("[vide:simid] creative:",s?.message);return}if(n==="SIMID:Creative:reportTracking"){g(e.messageId);return}if(n==="SIMID:Creative:requestChangeVolume"){let s=e.args;s?.volume!==void 0&&(t.volume=s.volume),s?.muted!==void 0&&(t.muted=s.muted),g(e.messageId);return}if(n==="SIMID:Creative:requestFullscreen"||n==="SIMID:Creative:requestExitFullscreen"||n==="SIMID:Creative:requestChangeAdDuration"){M(e.messageId,1203,"Not supported");return}if(n==="SIMID:Creative:expandNonlinear"||n==="SIMID:Creative:collapseNonlinear"){M(e.messageId,1203,"Not supported");return}}}function R(e){let n=b(e.data);n&&F(n);}function D(){if(!o){o=true,r.removeEventListener("message",R);for(let e of f)e();f.length=0;for(let[,e]of d)e.reject(new Error("SIMID host destroyed"));d.clear();}}async function $(){r.addEventListener("message",R),r.start();let e=await new Promise((u,c)=>{let v=setTimeout(()=>{c(new Error("SIMID handshake timeout: no createSession"));},i.handshakeTimeout),I=p=>{let E=b(p.data);!E||!x(E)||(clearTimeout(v),r.removeEventListener("message",I),u(E));};r.addEventListener("message",I);});if(o)throw new Error("SIMID host destroyed during handshake");l=e.sessionId,g(e.messageId);let n=await P("SIMID:Player:init",{environmentData:N(),creativeData:O()});if(o)throw new Error("SIMID host destroyed during handshake");if(y(n))throw new Error(`SIMID creative rejected init: ${JSON.stringify(n.args)}`);let s=await P("SIMID:Player:startCreative");if(o)throw new Error("SIMID host destroyed during handshake");if(y(s))throw new Error(`SIMID creative rejected startCreative: ${JSON.stringify(s.args)}`);V();}return {start:$,destroy:D}}var J={allowPause:true,allowPlay:true,allowResize:false,navigation:"new-tab"};function q(t){return {name:"simid",setup(r,i){let a=i.creatives.flatMap(d=>d.linear?.interactiveCreativeFiles??[]).find(d=>d.apiFramework==="SIMID");if(!a)return;let o={...J,...t.policy},l=t.handshakeTimeout??5e3,m=k(a.url,t.container),f=L(r,m.port,{policy:o,handshakeTimeout:l},i);return f.start().then(()=>m.show()).catch(d=>{r.emit("ad:error",{error:d instanceof Error?d:new Error(String(d)),source:"simid"}),m.destroy();}),()=>{f.destroy(),m.destroy();}}}}var U=globalThis.Vide??(globalThis.Vide={});U.simid=q;})();
@@ -0,0 +1 @@
1
+ (function(){'use strict';function h(e){for(let t of e)typeof navigator<"u"&&typeof navigator.sendBeacon=="function"?navigator.sendBeacon(t):new Image().src=t;}var b="urn:scte:scte35:2013:xml",A="urn:scte:scte35:2014:xml+bin";function p(e,t,r,s,l,g){return e===b||e===A||e.startsWith("urn:scte:scte35:")?{id:g??`dash-event-${r}`,startTime:r,duration:s,customData:{schemeIdUri:e,value:t,...l?{messageData:l}:{}}}:null}function S(e,t,r){function s(l){let a=l?.event;if(a)if(t){let n={source:"eventstream",schemeIdUri:a.schemeIdUri,value:a.value,startTime:a.calculatedPresentationTime,duration:a.duration,messageData:a.messageData},o=t(n);o.length>0&&r(o);}else {let n=p(a.schemeIdUri,a.value,a.calculatedPresentationTime,a.duration,a.messageData,a.id);n&&r([n]);}}return e.on("eventModeOnReceive",s),e.on("eventModeOnStart",s),()=>{e.off("eventModeOnReceive",s),e.off("eventModeOnStart",s);}}var E="com.apple.hls.interstitial",R="SCTE35-OUT";function k(e,t){let r=e.ID;if(!r)return null;let l=e.CLASS===E,g=R in e;if(!l&&!g)return null;let a=e["START-DATE"],n=e.DURATION??e["PLANNED-DURATION"],o=0;if(a){let v=new Date(a).getTime();o=t!=null?(v-t)/1e3:v/1e3;}let u=n?Number.parseFloat(n):0;return {id:r,startTime:o,duration:u,customData:{...e}}}function L(e){try{return new TextDecoder().decode(e)}catch{return null}}function D(e,t){for(let r of e){let s=L(r.data);if(s?.includes("SCTE35"))return {id:`id3-${t}`,startTime:t,duration:0,customData:{raw:s}}}return null}function M(e,t,r){let s=new Set;function l(n){let o=n?.dateRanges;if(!o)return;let u,v=n?.fragments;if(v){for(let f of v)if(f.programDateTime!=null){u=f.programDateTime-f.start*1e3;break}}for(let[f,m]of Object.entries(o)){if(s.has(f))continue;s.add(f);let d=m.attr??m;if(t){let c=t({source:"daterange",attributes:d});c.length>0&&r(c);}else {let i=k(d,u);i&&r([i]);}}}function g(n,o){let u=o;u?.details&&l(u.details);}function a(n,o){let u=o;if(!u?.samples?.length)return;let v=u.samples[0]?.pts??0;if(t){let f={source:"id3",samples:u.samples.map(d=>({type:d.type,data:d.data}))},m=t(f);m.length>0&&r(m);}else {let f=u.samples.map(d=>({type:d.type,data:d.data})),m=D(f,v);m&&r([m]);}}if(e.on("hlsLevelUpdated",g),e.on("hlsFragParsingMetadata",a),e.levels&&e.currentLevel!=null&&e.currentLevel>=0){let n=e.levels[e.currentLevel]?.details;n&&l(n);}return ()=>{e.off("hlsLevelUpdated",g),e.off("hlsFragParsingMetadata",a);}}var P=.5;function T(e={}){return {name:"ssai",setup(t){let r=e.tolerance??P,s=e.parser,l=new Map,g=new Set,a=new Set,n=null,o=false;function u(d){for(let i of d)l.has(i.id)||l.set(i.id,i);}function v(){if(n)return true;let d=t.getPluginData("hls");if(d)return n=M(d,s,u),true;let i=t.getPluginData("dash");return i?(n=S(i,s,u),true):false}function f({currentTime:d}){if(!o){for(let[i,c]of l)g.has(i)||d>=c.startTime-r&&(g.add(i),t.emit("ad:breakStart",{breakId:c.id}),t.emit("ad:start",{adId:c.id}),c.trackingUrls?.length&&h(c.trackingUrls),t.emit("ad:impression",{adId:c.id}));for(let[i,c]of l){if(!g.has(i)||a.has(i))continue;let w=c.startTime+c.duration;c.duration>0&&d>=w-r&&(a.add(i),t.emit("ad:end",{adId:c.id}),t.emit("ad:breakEnd",{breakId:c.id}));}}}t.on("timeupdate",f),v();function m(){if(n||o){t.off("statechange",m);return}v()&&t.off("statechange",m);}return n||t.on("statechange",m),()=>{o=true,t.off("timeupdate",f),t.off("statechange",m),n&&n();}}}}var y=globalThis.Vide??(globalThis.Vide={});Object.assign(y,{ssai:T,parseDateRange:k,parseId3Samples:D,parseEventStream:p});})();