@videts/vide 0.7.0 → 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 @@
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});})();