@videts/vide 0.8.0 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/dist/chunk-2OVLZ27V.mjs +1 -0
- package/dist/chunk-3RDTWUHH.mjs +1 -0
- package/dist/chunk-6DWWYSH4.mjs +1 -0
- package/dist/chunk-G74QBLVV.mjs +1 -0
- package/dist/chunk-JRU2FKRB.mjs +2 -0
- package/dist/chunk-LPSJOF2I.mjs +2 -0
- package/dist/chunk-NA4C7W64.mjs +2 -0
- package/dist/chunk-UY5CGRNN.mjs +1 -0
- package/dist/chunk-VPH4JIJV.mjs +1 -0
- package/dist/chunk-WINCDUN5.mjs +1 -0
- package/dist/dash/index.d.ts +3 -9
- package/dist/dash/index.js +1 -0
- package/dist/dash/index.mjs +1 -2
- package/dist/drm/index.d.ts +4 -31
- package/dist/drm/index.js +1 -0
- package/dist/drm/index.mjs +1 -1
- package/dist/hls/index.d.ts +3 -9
- package/dist/hls/index.js +1 -0
- package/dist/hls/index.mjs +1 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -1
- package/dist/omid/index.d.ts +2 -2
- package/dist/omid/index.js +2 -0
- package/dist/react/index.d.ts +240 -0
- package/dist/react/index.js +2 -0
- package/dist/react/index.mjs +2 -0
- package/dist/simid/index.d.ts +2 -2
- package/dist/simid/index.js +1 -0
- package/dist/ssai/index.d.ts +4 -40
- package/dist/ssai/index.js +1 -0
- package/dist/ssai/index.mjs +1 -1
- package/dist/svelte/DashPlugin.svelte +23 -0
- package/dist/svelte/DashPlugin.svelte.d.ts +4 -0
- package/dist/svelte/DrmPlugin.svelte +20 -0
- package/dist/svelte/DrmPlugin.svelte.d.ts +4 -0
- package/dist/svelte/HlsPlugin.svelte +23 -0
- package/dist/svelte/HlsPlugin.svelte.d.ts +4 -0
- package/dist/svelte/SsaiPlugin.svelte +23 -0
- package/dist/svelte/SsaiPlugin.svelte.d.ts +4 -0
- package/dist/svelte/VastPlugin.svelte +20 -0
- package/dist/svelte/VastPlugin.svelte.d.ts +4 -0
- package/dist/svelte/VideControls.svelte +22 -0
- package/dist/svelte/VideControls.svelte.d.ts +8 -0
- package/dist/svelte/VideUI.svelte +49 -0
- package/dist/svelte/VideUI.svelte.d.ts +9 -0
- package/dist/svelte/Video.svelte +31 -0
- package/dist/svelte/Video.svelte.d.ts +10 -0
- package/dist/svelte/VmapPlugin.svelte +20 -0
- package/dist/svelte/VmapPlugin.svelte.d.ts +4 -0
- package/dist/svelte/components/AdCountdown.svelte +37 -0
- package/dist/svelte/components/AdCountdown.svelte.d.ts +7 -0
- package/dist/svelte/components/AdLabel.svelte +26 -0
- package/dist/svelte/components/AdLabel.svelte.d.ts +8 -0
- package/dist/svelte/components/AdLearnMore.svelte +42 -0
- package/dist/svelte/components/AdLearnMore.svelte.d.ts +9 -0
- package/dist/svelte/components/AdOverlay.svelte +46 -0
- package/dist/svelte/components/AdOverlay.svelte.d.ts +8 -0
- package/dist/svelte/components/AdSkip.svelte +67 -0
- package/dist/svelte/components/AdSkip.svelte.d.ts +8 -0
- package/dist/svelte/components/BigPlayButton.svelte +46 -0
- package/dist/svelte/components/BigPlayButton.svelte.d.ts +8 -0
- package/dist/svelte/components/ClickPlay.svelte +76 -0
- package/dist/svelte/components/ClickPlay.svelte.d.ts +7 -0
- package/dist/svelte/components/ErrorDisplay.svelte +27 -0
- package/dist/svelte/components/ErrorDisplay.svelte.d.ts +6 -0
- package/dist/svelte/components/FullscreenButton.svelte +65 -0
- package/dist/svelte/components/FullscreenButton.svelte.d.ts +9 -0
- package/dist/svelte/components/Loader.svelte +11 -0
- package/dist/svelte/components/Loader.svelte.d.ts +6 -0
- package/dist/svelte/components/MuteButton.svelte +57 -0
- package/dist/svelte/components/MuteButton.svelte.d.ts +8 -0
- package/dist/svelte/components/PlayButton.svelte +63 -0
- package/dist/svelte/components/PlayButton.svelte.d.ts +8 -0
- package/dist/svelte/components/Poster.svelte +13 -0
- package/dist/svelte/components/Poster.svelte.d.ts +8 -0
- package/dist/svelte/components/Progress.svelte +101 -0
- package/dist/svelte/components/Progress.svelte.d.ts +6 -0
- package/dist/svelte/components/TimeDisplay.svelte +33 -0
- package/dist/svelte/components/TimeDisplay.svelte.d.ts +7 -0
- package/dist/svelte/components/Volume.svelte +117 -0
- package/dist/svelte/components/Volume.svelte.d.ts +8 -0
- package/dist/svelte/context.d.ts +6 -0
- package/dist/svelte/context.js +10 -0
- package/dist/svelte/create-vide-player.svelte.d.ts +2 -0
- package/dist/svelte/create-vide-player.svelte.js +22 -0
- package/dist/svelte/helpers.d.ts +17 -0
- package/dist/svelte/helpers.js +31 -0
- package/dist/svelte/icons/IconFullscreenEnter.svelte +3 -0
- package/dist/svelte/icons/IconFullscreenEnter.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconFullscreenExit.svelte +3 -0
- package/dist/svelte/icons/IconFullscreenExit.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconPause.svelte +3 -0
- package/dist/svelte/icons/IconPause.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconPlay.svelte +3 -0
- package/dist/svelte/icons/IconPlay.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeHigh.svelte +3 -0
- package/dist/svelte/icons/IconVolumeHigh.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeLow.svelte +3 -0
- package/dist/svelte/icons/IconVolumeLow.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeMute.svelte +3 -0
- package/dist/svelte/icons/IconVolumeMute.svelte.d.ts +26 -0
- package/dist/svelte/index.d.ts +42 -0
- package/dist/svelte/index.js +39 -0
- package/dist/svelte/use-ad-state.svelte.d.ts +7 -0
- package/dist/svelte/use-ad-state.svelte.js +40 -0
- package/dist/svelte/use-autohide.svelte.d.ts +2 -0
- package/dist/svelte/use-autohide.svelte.js +68 -0
- package/dist/svelte/use-keyboard.svelte.d.ts +7 -0
- package/dist/svelte/use-keyboard.svelte.js +96 -0
- package/dist/svelte/use-plugin.svelte.d.ts +15 -0
- package/dist/svelte/use-plugin.svelte.js +40 -0
- package/dist/svelte/use-vide-event.svelte.d.ts +3 -0
- package/dist/svelte/use-vide-event.svelte.js +9 -0
- package/dist/{types-vxIcXgJz.d.ts → types-BsEF8iWC.d.ts} +106 -1
- package/dist/types-C1_eVsFF.d.ts +49 -0
- package/dist/types-C6XFF6w_.d.ts +30 -0
- package/dist/types-COeag8fU.d.ts +173 -0
- package/dist/types-CwjR99DL.d.ts +10 -0
- package/dist/types-DsixuzNX.d.ts +52 -0
- package/dist/types-DzY1cmXC.d.ts +10 -0
- package/dist/types-SuT99_Z3.d.ts +40 -0
- package/dist/ui/index.d.ts +7 -37
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.mjs +1 -2
- package/dist/ui/theme.css +138 -46
- package/dist/vast/index.d.ts +188 -4
- package/dist/vast/index.js +1 -0
- package/dist/vast/index.mjs +1 -1
- package/dist/vide.core.global.js +1 -1
- package/dist/vide.global.js +2 -2
- package/dist/vide.ssai.global.js +1 -1
- package/dist/vide.ui.css +138 -46
- package/dist/vide.ui.global.js +1 -1
- package/dist/vide.vast.global.js +1 -1
- package/dist/vide.vmap.global.js +1 -1
- package/dist/vmap/index.d.ts +5 -49
- package/dist/vmap/index.js +1 -0
- package/dist/vmap/index.mjs +1 -1
- package/dist/vue/index.d.ts +354 -0
- package/dist/vue/index.js +2 -0
- package/dist/vue/index.mjs +2 -0
- package/package.json +47 -6
- package/dist/chunk-726XNUGZ.mjs +0 -1
- package/dist/chunk-G4Q7R3SH.mjs +0 -1
- package/dist/types-CAJmacV6.d.ts +0 -98
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Vide
|
|
2
2
|
|
|
3
3
|
[](https://github.com/hogekai/vide/actions/workflows/ci.yml)
|
|
4
4
|
[](https://www.npmjs.com/package/@videts/vide)
|
|
5
|
-
[](https://bundlephobia.com/package/@videts/vide)
|
|
6
6
|
|
|
7
7
|
Modular video player library. Use only what you need. Also works with `<audio>`.
|
|
8
8
|
|
|
@@ -31,7 +31,7 @@ Web standards first — if the browser can do it, we don't reinvent it.
|
|
|
31
31
|
npm install @videts/vide
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
> Package is published as **@videts/vide** on npm. The project name is **
|
|
34
|
+
> Package is published as **@videts/vide** on npm. The project name is **Vide**.
|
|
35
35
|
|
|
36
36
|
## Quick Start
|
|
37
37
|
|
|
@@ -68,17 +68,17 @@ Plugins are explicit opt-in. Import only what you need.
|
|
|
68
68
|
|
|
69
69
|
| Plugin | What | gzip |
|
|
70
70
|
|--------|------|-----:|
|
|
71
|
-
| `@videts/vide` | Core player |
|
|
72
|
-
| `@videts/vide/vast` | VAST 4.2 ads |
|
|
73
|
-
| `@videts/vide/vmap` | VMAP scheduling |
|
|
74
|
-
| `@videts/vide/hls` | HLS streaming |
|
|
75
|
-
| `@videts/vide/dash` | DASH streaming |
|
|
71
|
+
| `@videts/vide` | Core player | 2.8 KB |
|
|
72
|
+
| `@videts/vide/vast` | VAST 4.2 ads | 6.6 KB |
|
|
73
|
+
| `@videts/vide/vmap` | VMAP scheduling | 7.1 KB |
|
|
74
|
+
| `@videts/vide/hls` | HLS streaming | 1.4 KB |
|
|
75
|
+
| `@videts/vide/dash` | DASH streaming | 1.4 KB |
|
|
76
76
|
| `@videts/vide/drm` | DRM (Widevine + FairPlay) | 1.7 KB |
|
|
77
|
-
| `@videts/vide/ssai` | SSAI (server-side ads) |
|
|
77
|
+
| `@videts/vide/ssai` | SSAI (server-side ads) | 2.0 KB |
|
|
78
78
|
| `@videts/vide/omid` | Open Measurement | 1.7 KB |
|
|
79
79
|
| `@videts/vide/simid` | Interactive ads | 2.4 KB |
|
|
80
|
-
| `@videts/vide/ui` | Headless UI |
|
|
81
|
-
| `@videts/vide/ui/theme.css` | Default theme | 3.
|
|
80
|
+
| `@videts/vide/ui` | Headless UI | 5.3 KB |
|
|
81
|
+
| `@videts/vide/ui/theme.css` | Default theme | 3.5 KB |
|
|
82
82
|
|
|
83
83
|
> HLS and DASH plugins require `hls.js` and `dashjs` as peer dependencies.
|
|
84
84
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {b,d}from'./chunk-UY5CGRNN.mjs';var x="urn:scte:scte35:2013:xml",B="urn:scte:scte35:2014:xml+bin";function E(e,t,d,u,f,m){return e===x||e===B||e.startsWith("urn:scte:scte35:")?{id:m??`dash-event-${d}`,startTime:d,duration:u,customData:{schemeIdUri:e,value:t,...f?{messageData:f}:{}}}:null}function L(e,t,d){function u(f){let a=f?.event;if(a)if(t){let r={source:"eventstream",schemeIdUri:a.schemeIdUri,value:a.value,startTime:a.calculatedPresentationTime,duration:a.duration,messageData:a.messageData},s=t(r);s.length>0&&d(s);}else {let r=E(a.schemeIdUri,a.value,a.calculatedPresentationTime,a.duration,a.messageData,a.id);r&&d([r]);}}return e.on("eventModeOnReceive",u),e.on("eventModeOnStart",u),()=>{e.off("eventModeOnReceive",u),e.off("eventModeOnStart",u);}}var O="com.apple.hls.interstitial",C="SCTE35-OUT";function P(e,t){let d=e.ID;if(!d)return null;let f=e.CLASS===O,m=C in e;if(!f&&!m)return null;let a=e["START-DATE"],r=e.DURATION??e["PLANNED-DURATION"],s=0;if(a){let l=new Date(a).getTime();s=t!=null?(l-t)/1e3:l/1e3;}let o=r?Number.parseFloat(r):0;return {id:d,startTime:s,duration:o,customData:{...e}}}function y(e){try{return new TextDecoder().decode(e)}catch{return null}}function I(e,t){for(let d of e){let u=y(d.data);if(u?.includes("SCTE35"))return {id:`id3-${t}`,startTime:t,duration:0,customData:{raw:u}}}return null}function U(e,t,d){let u=new Set;function f(r){let s=r?.dateRanges;if(!s)return;let o,l=r?.fragments;if(l){for(let g of l)if(g.programDateTime!=null){o=g.programDateTime-g.start*1e3;break}}for(let[g,v]of Object.entries(s)){if(u.has(g))continue;u.add(g);let p=v.attr??v;if(t){let h=t({source:"daterange",attributes:p});h.length>0&&d(h);}else {let M=P(p,o);M&&d([M]);}}}function m(r,s){let o=s;o?.details&&f(o.details);}function a(r,s){let o=s;if(!o?.samples?.length)return;let l=o.samples[0]?.pts??0;if(t){let g={source:"id3",samples:o.samples.map(p=>({type:p.type,data:p.data}))},v=t(g);v.length>0&&d(v);}else {let g=o.samples.map(p=>({type:p.type,data:p.data})),v=I(g,l);v&&d([v]);}}if(e.on("hlsLevelUpdated",m),e.on("hlsFragParsingMetadata",a),e.levels&&e.currentLevel!=null&&e.currentLevel>=0){let r=e.levels[e.currentLevel]?.details;r&&f(r);}return ()=>{e.off("hlsLevelUpdated",m),e.off("hlsFragParsingMetadata",a);}}var N=.5;function _(e){return e.tracking??{}}function Q(e={}){return {name:"ssai",setup(t){let d$1=e.tolerance??N,u=e.parser,f=new Map,m=new Set,a=new Set,r=new Map,s=new Map,o=null,l=false;function g(i){for(let n of i)f.has(n.id)||f.set(n.id,n);}function v(){if(o)return true;let i=t.getPluginData("hls");if(i)return o=U(i,u,g),true;let n=t.getPluginData("dash");return n?(o=L(n,u,g),true):false}function p({currentTime:i}){if(!l){for(let[n,c]of f)if(!m.has(n)&&i>=c.startTime-d$1){m.add(n);let k=_(c);if(s.set(n,k),t.emit("ad:breakStart",{breakId:c.id}),t.emit("ad:start",{adId:c.id}),k.impression?.length&&b(k.impression),c.duration>0){let D=d(c.duration,w=>{let b$1=k[w];b$1?.length&&b(b$1),t.emit("ad:quartile",{adId:c.id,quartile:w});});r.set(n,D),D(i-c.startTime);}t.emit("ad:impression",{adId:c.id});}for(let[n,c]of r){if(a.has(n))continue;let k=f.get(n);k&&c(i-k.startTime);}for(let[n,c]of f){if(!m.has(n)||a.has(n))continue;let k=c.startTime+c.duration;if(c.duration>0&&i>=k-d$1){let D=r.get(n);D&&D(c.duration),a.add(n),r.delete(n),s.delete(n),t.emit("ad:end",{adId:c.id}),t.emit("ad:breakEnd",{breakId:c.id});}}}}function M(){if(!l)for(let[i]of r){if(a.has(i))continue;let n=s.get(i);n?.pause?.length&&b(n.pause);}}function h(){if(!l)for(let[i]of r){if(a.has(i))continue;let n=s.get(i);n?.resume?.length&&b(n.resume);}}function S({adId:i}){if(l)return;let n=s.get(i);n?.skip?.length&&b(n.skip),r.delete(i),s.delete(i),a.add(i),t.emit("ad:end",{adId:i}),t.emit("ad:breakEnd",{breakId:i});}t.on("timeupdate",p),t.on("pause",M),t.on("play",h),t.on("ad:skip",S),v();function A(){if(o||l){t.off("statechange",A);return}v()&&t.off("statechange",A);}return o||t.on("statechange",A),()=>{l=true,t.off("timeupdate",p),t.off("pause",M),t.off("play",h),t.off("ad:skip",S),t.off("statechange",A),r.clear(),s.clear(),o&&o();}}}}export{E as a,P as b,I as c,Q as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {N,M,R,T,S,Q}from'./chunk-G74QBLVV.mjs';import {a}from'./chunk-UY5CGRNN.mjs';function I(e){return {name:"vast",setup(t){let r=false,a$1=null,n=t._setState;async function v(){if(!r)try{let d=function(){r||(n("playing"),w(t,C,h));};var y=d;let s=e.timeout!==void 0?{timeout:e.timeout}:void 0,l=await N(e.tagUrl,s);if(r)return;let i=M(l);if(i.ads.length===0){n("playing");return}let o=R(i.ads);if(o.ads.length===0){n("playing");return}let h=t.el.currentTime,C=t.src;switch(t.src="",o.type){case "single":{let{promise:S,abort:R}=Q({player:t,ad:o.ads[0].ad,linear:o.ads[0].linear,source:"vast",adPlugins:e.adPlugins,onFinish:d});a$1=R,await S;break}case "pod":{await S(t,o.ads,{source:"vast",adPlugins:e.adPlugins,onFinish:d,standalonePool:o.standalonePool});break}case "waterfall":{await T(t,o.ads,{source:"vast",adPlugins:e.adPlugins,onFinish:d})||(a(i.errors,303),t.emit("ad:error",{error:new Error("All waterfall ads failed"),source:"vast",vastErrorCode:303}),d());break}}}catch(s){if(r)return;let l=s instanceof Error?s:new Error(String(s)),i=l.name==="AbortError"?301:100;t.emit("ad:error",{error:l,source:"vast",vastErrorCode:i}),n("playing");}}function c({to:y}){y==="ready"&&!r&&(t.off("statechange",c),v());}return t.state==="ready"||t.state==="playing"||t.state==="paused"?v():t.on("statechange",c),()=>{r=true,t.off("statechange",c),a$1&&a$1();}}}}function w(e,t,r){function a({to:n}){n==="ready"&&(e.off("statechange",a),r>0&&(e.el.currentTime=r),e.play().catch(()=>{e.el.muted=true,e.play().catch(()=>{});}));}e.on("statechange",a),e.src=t;}export{I as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import'./chunk-DWXOYV4E.mjs';var $={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","ad:loading","playing","error"],"ad:paused":["ad:playing","ad:loading","playing","error"],ended:["idle","loading","error"],error:["idle","loading"]};function z(t,a){return $[t].includes(a)}function B(t){return t.readyState>=3?t.paused?"ready":"playing":t.readyState>=1?"loading":"idle"}function G(t){let a=B(t),g=t instanceof HTMLAudioElement,y=new Map,k=[],c=false,m=[],s=null,E=t.getAttribute("src")??"",b=false,o=new Map,h=t.duration===Number.POSITIVE_INFINITY,L=null;function x(e){let n=y.get(e);return n||(n=new Set,y.set(e,n)),n}function i(e,n){let r=y.get(e);if(r)for(let u of r)try{u(n);}catch(p){console.error("[vide] Event handler error:",p);}}function d(e){if(e===a)return;if(!z(a,e)){console.warn(`[vide] Invalid transition: ${a} \u2192 ${e}`);return}let n=a;a=e,i("statechange",{from:n,to:e});}function v(){return a==="ad:loading"||a==="ad:playing"||a==="ad:paused"}function S(){!v()&&t.paused&&d("loading");}function P(){a==="loading"&&d("ready");}function w(){v()||d("playing"),i("play",void 0);}function H(){v()||d("paused"),i("pause",void 0);}function V(){a==="playing"&&d("buffering");}function C(){(a==="buffering"||a==="ready")&&d("playing");}function I(){v()||d("ended"),i("ended",void 0);}function M(){i("timeupdate",{currentTime:t.currentTime,duration:t.duration});}function Q(){let e=t.error;v()||d("error"),i("error",{code:e?.code??1e3,message:e?.message??"Unknown error",source:"core"});}function A(){let e=t.duration===Number.POSITIVE_INFINITY;e!==h&&(h=e,i("livestatechange",{isLive:e}));}t.addEventListener("durationchange",A),t.addEventListener("loadstart",S),t.addEventListener("canplay",P),t.addEventListener("play",w),t.addEventListener("pause",H),t.addEventListener("waiting",V),t.addEventListener("playing",C),t.addEventListener("ended",I),t.addEventListener("timeupdate",M),t.addEventListener("error",Q);function T(e,n){return {id:n,label:e.label,language:e.language,kind:e.kind,active:e.mode==="showing"}}function R(e){if(!e)return [];let n=[];for(let r=0;r<e.length;r++){let u=e[r];n.push({startTime:u.startTime,endTime:u.endTime,text:u.text??""});}return n}let l=new Map;function q(e){if(l.has(e))return;let n=()=>{e.mode==="showing"&&i("cuechange",{cues:R(e.activeCues)});};l.set(e,n),e.addEventListener("cuechange",n);}function F(e){let n=l.get(e);n&&(e.removeEventListener("cuechange",n),l.delete(e));}function O(){let e=[];for(let n=0;n<t.textTracks.length;n++)e.push(T(t.textTracks[n],n));i("texttracksavailable",{tracks:e});}function N(){for(let e=0;e<t.textTracks.length;e++)q(t.textTracks[e]);O();}function _(e){e.track&&F(e.track),O();}let D=typeof t.textTracks.addEventListener=="function";if(D){t.textTracks.addEventListener("addtrack",N),t.textTracks.addEventListener("removetrack",_);for(let e=0;e<t.textTracks.length;e++)q(t.textTracks[e]);}let j=new Set(["statechange","play","pause","ended","timeupdate","livestatechange","error","ad:companions","ad:nonlinears","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","ad:pod:start","ad:pod:end","ad:pod:adstart","ad:pod:adend","qualitiesavailable","qualitychange","texttrackchange","texttracksavailable","cuechange","destroy"]);function K(){if(t.removeEventListener("durationchange",A),t.removeEventListener("loadstart",S),t.removeEventListener("canplay",P),t.removeEventListener("play",w),t.removeEventListener("pause",H),t.removeEventListener("waiting",V),t.removeEventListener("playing",C),t.removeEventListener("ended",I),t.removeEventListener("timeupdate",M),t.removeEventListener("error",Q),D){t.textTracks.removeEventListener("addtrack",N),t.textTracks.removeEventListener("removetrack",_);for(let[e,n]of l)e.removeEventListener("cuechange",n);l.clear();}}function U(){if(s||b)return;let e=t.querySelectorAll("source");for(let n of e){let r=n.getAttribute("src"),u=n.getAttribute("type")??void 0;if(r){for(let p of m)if(p.canHandle(r,u)){s=p,E=r,d("loading"),p.load(r,t);for(let W of e)W.remove();return}}}}let f={get el(){return t},get state(){return a},on(e,n){j.has(e)?x(e).add(n):t.addEventListener(e,n);},off(e,n){j.has(e)?x(e).delete(n):t.removeEventListener(e,n);},emit:i,once(e,n){let r=u=>{f.off(e,r),n(u);};f.on(e,r);},play(){return t.play()},pause(){t.pause();},get currentTime(){return t.currentTime},set currentTime(e){t.currentTime=e;},get duration(){return t.duration},set duration(e){},get volume(){return t.volume},set volume(e){t.volume=e;},get muted(){return t.muted},set muted(e){t.muted=e;},get playbackRate(){return t.playbackRate},set playbackRate(e){t.playbackRate=e;},get paused(){return t.paused},get ended(){return t.ended},get readyState(){return t.readyState},get buffered(){return t.buffered},get seekable(){return t.seekable},get seeking(){return t.seeking},get isLive(){return c?false:t.duration===Number.POSITIVE_INFINITY},get seekableRange(){return c||t.seekable.length===0?null:{start:t.seekable.start(0),end:t.seekable.end(0)}},get qualities(){return o.get("qualities")??[]},get currentQuality(){return o.get("currentQuality")??null},get isAutoQuality(){return o.get("autoQuality")??true},get isAudio(){return g},setQuality(e){let n=o.get("qualitySetter");n&&n(e);},get textTracks(){return t.textTracks},getTextTracks(){let e=[];for(let n=0;n<t.textTracks.length;n++)e.push(T(t.textTracks[n],n));return e},getActiveTextTrack(){for(let e=0;e<t.textTracks.length;e++)if(t.textTracks[e].mode==="showing")return T(t.textTracks[e],e);return null},get activeCues(){for(let e=0;e<t.textTracks.length;e++)if(t.textTracks[e].mode==="showing")return R(t.textTracks[e].activeCues);return []},setTextTrack(e){for(let r=0;r<t.textTracks.length;r++)t.textTracks[r].mode=r===e?"showing":"disabled";let n=e>=0&&e<t.textTracks.length?T(t.textTracks[e],e):null;i("texttrackchange",{track:n});},addTextTrack(e){let n=document.createElement("track");n.src=e.src,n.label=e.label,n.srclang=e.language,n.kind=e.kind??"subtitles",e.default&&(n.default=true),t.appendChild(n);},get videoWidth(){return g?0:t.videoWidth},get videoHeight(){return g?0:t.videoHeight},get networkState(){return t.networkState},get loop(){return t.loop},set loop(e){t.loop=e;},get autoplay(){return t.autoplay},set autoplay(e){t.autoplay=e;},get poster(){return g?"":t.poster},set poster(e){g||(t.poster=e);},get preload(){return t.preload},set preload(e){t.preload=e;},get defaultPlaybackRate(){return t.defaultPlaybackRate},set defaultPlaybackRate(e){t.defaultPlaybackRate=e;},get defaultMuted(){return t.defaultMuted},set defaultMuted(e){t.defaultMuted=e;},get crossOrigin(){return t.crossOrigin},set crossOrigin(e){t.crossOrigin=e;},get controls(){return t.controls},set controls(e){t.controls=e;},get src(){return E},set src(e){if(s&&(s.unload(t),s=null),o.delete("qualities"),o.delete("currentQuality"),o.delete("autoQuality"),o.delete("qualitySetter"),L=null,b=true,E=e,!e){t.removeAttribute("src");return}for(let n of m)if(n.canHandle(e)){s=n,d("loading"),n.load(e,t);return}t.src=e;},registerSourceHandler(e){if(c){console.warn("[vide] Cannot register source handler after destroy");return}m.push(e),!b&&!s&&U();},addEventListener(e,n,r){t.addEventListener(e,n,r);},removeEventListener(e,n,r){t.removeEventListener(e,n,r);},use(e){if(c){console.warn("[vide] Cannot use plugin after destroy");return}let n=e.setup(f);n&&k.push(n);},setPluginData(e,n){if(o.set(e,n),e==="qualities")i("qualitiesavailable",{qualities:n});else if(e==="currentQuality"){let r=n;i("qualitychange",{from:L,to:r}),L=r;}},getPluginData(e){return o.get(e)},destroy(){if(!c){c=true,s&&(s.unload(t),s=null);for(let e of k)try{e();}catch(n){console.error("[vide] Plugin cleanup error:",n);}k.length=0,i("destroy",void 0),K(),y.clear(),o.clear();}}};return f._setState=d,f}export{G as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {b as b$1,a,d}from'./chunk-UY5CGRNN.mjs';var he=100,Ve=101,be=102,Re=200,Se=201,xe=202,ye=203,Ne=204,Ce=205,_e=206,Ie=300,Pe=301,Le=302,we=303,Oe=304,Fe=400,te=401,Me=402,Q=403,ne=405,De=406,qe=407,Ue=408,We=409,He=410,je=411,Ze=500,Qe=501,Xe=502,Ge=503,Ye=600,Ke=601,ze=602,Be=603,Je=604,$e=900,et=901,tt=902;function re(t){let n=new DOMParser().parseFromString(t,"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 s=i.getAttribute("version")??"",o=P(i,"Error"),c=v(i,"Ad"),u=[];for(let g of c){let a=ie(g);a&&u.push(a);}return {version:s,ads:u,errors:o}}function ie(t){let e=S(t,"InLine");if(!e)return null;let n=t.getAttribute("id")??"",r=t.getAttribute("sequence"),i=k(r,void 0),s=b(e,"AdSystem"),o=b(e,"AdTitle"),c=y(e,"Impression"),u=P(e,"Error"),g=e.querySelector("Creatives"),a=[];if(g){let E=v(g,"Creative");for(let A of E)a.push(oe(A));}let d=X(e),f=se(e),m=G(e),p=Y(e);return {id:n,sequence:i,adSystem:s,adTitle:o,impressions:c,creatives:a,errors:u,verifications:d,categories:f,extensions:m,viewableImpression:p}}function X(t){let e=t.querySelector("AdVerifications");if(!e)return;let n=[],r=v(e,"Verification");for(let i of r){let s=i.getAttribute("vendor")??"",o="",c,u=i.querySelector("JavaScriptResource");if(u)o=(u.textContent??"").trim(),c=u.getAttribute("apiFramework")??void 0;else {let d=i.querySelector("ExecutableResource");d&&(o=(d.textContent??"").trim(),c=d.getAttribute("apiFramework")??void 0);}let g=i.querySelector("VerificationParameters"),a=g&&(g.textContent??"").trim()||void 0;n.push({vendor:s,resourceUrl:o,apiFramework:c,parameters:a});}return n.length>0?n:void 0}function se(t){let e=v(t,"Category");if(e.length===0)return;let n=[];for(let r of e){let i=r.getAttribute("authority")??"",s=(r.textContent??"").trim();s&&n.push({authority:i,value:s});}return n.length>0?n:void 0}function G(t){let e=S(t,"Extensions");if(!e)return;let n=[],r=new XMLSerializer;for(let i of v(e,"Extension")){let s=i.getAttribute("type")??"",o="";for(let c=0;c<i.childNodes.length;c++)o+=r.serializeToString(i.childNodes[c]);o=o.trim(),o&&n.push({type:s,content:o});}return n.length>0?n:void 0}function Y(t){let e=S(t,"ViewableImpression");if(!e)return;let n=P(e,"Viewable"),r=P(e,"NotViewable"),i=P(e,"ViewUndetermined");if(!(n.length===0&&r.length===0&&i.length===0))return {viewable:n,notViewable:r,viewUndetermined:i}}function oe(t){let e=t.getAttribute("id")??void 0,n=t.getAttribute("sequence"),r=k(n,void 0),i=t.querySelector("Linear"),s=i?ae(i):null,o=z(t),c=fe(t);return {id:e,sequence:r,linear:s,companionAds:o,nonLinearAds:c}}function ae(t){let e=b(t,"Duration"),n=D(e),r=t.getAttribute("skipoffset"),i=r!==null?$(r,n):void 0,s=ce(t),o=de(t),c=J(t),u=t.querySelector("VideoClicks"),g=u&&b(u,"ClickThrough")||void 0,a=u?y(u,"ClickTracking"):[];return {duration:n,skipOffset:i,mediaFiles:s,interactiveCreativeFiles:o,trackingEvents:c,clickThrough:g,clickTracking:a}}function ce(t){let e=t.querySelector("MediaFiles");if(!e)return [];let n=[],r=v(e,"MediaFile");for(let i of r){let s=(i.textContent??"").trim();if(!s)continue;let o=i.getAttribute("delivery");n.push({url:s,mimeType:i.getAttribute("type")??"",width:k(i.getAttribute("width"),0),height:k(i.getAttribute("height"),0),bitrate:k(i.getAttribute("bitrate"),void 0),delivery:o==="streaming"?"streaming":"progressive"});}return n}function de(t){let e=t.querySelector("MediaFiles");if(!e)return [];let n=[],r=v(e,"InteractiveCreativeFile");for(let i of r){let s=(i.textContent??"").trim();if(!s)continue;let o=i.getAttribute("apiFramework")??"",c=i.getAttribute("variableDuration"),u=c==="true"?true:c==="false"?false:void 0;n.push({url:s,apiFramework:o,variableDuration:u});}return n}function K(t){let e=[];for(let n of v(t,"StaticResource")){let r=(n.textContent??"").trim(),i=n.getAttribute("creativeType")??"";r&&e.push({type:"static",url:r,creativeType:i});}for(let n of v(t,"IFrameResource")){let r=(n.textContent??"").trim();r&&e.push({type:"iframe",url:r});}for(let n of v(t,"HTMLResource")){let r=(n.textContent??"").trim();r&&e.push({type:"html",content:r});}return e}function z(t){let e=S(t,"CompanionAds");if(!e)return;let n=e.getAttribute("required"),r=n==="all"||n==="any"?n:"none",i=[];for(let s of v(e,"Companion")){let o=le(s);o&&i.push(o);}return i.length>0?{required:r,companions:i}:void 0}function le(t){let e=k(t.getAttribute("width"),0),n=k(t.getAttribute("height"),0);if(e===0||n===0)return null;let r=t.getAttribute("id")??void 0,i=k(t.getAttribute("assetWidth"),void 0),s=k(t.getAttribute("assetHeight"),void 0),o=k(t.getAttribute("expandedWidth"),void 0),c=k(t.getAttribute("expandedHeight"),void 0),u=t.getAttribute("apiFramework")??void 0,g=t.getAttribute("adSlotId")??void 0,a=Te(t.getAttribute("pxratio"),void 0),d=t.getAttribute("renderingMode"),f=d==="end-card"||d==="concurrent"?d:d==="default"?"default":void 0,m=K(t),p=b(t,"CompanionClickThrough")||void 0,E=y(t,"CompanionClickTracking"),A=ue(t),x=b(t,"AltText")||void 0,R=b(t,"AdParameters")||void 0;return {width:e,height:n,id:r,assetWidth:i,assetHeight:s,expandedWidth:o,expandedHeight:c,apiFramework:u,adSlotId:g,pxratio:a,renderingMode:f,resources:m,clickThrough:p,clickTracking:E,trackingEvents:A,altText:x,adParameters:R}}function ue(t){let e={creativeView:[]},n=t.querySelector("TrackingEvents");if(!n)return e;for(let r of n.querySelectorAll("Tracking")){let i=r.getAttribute("event"),s=(r.textContent??"").trim();i==="creativeView"&&s&&e.creativeView.push(s);}return e}function fe(t){let e=S(t,"NonLinearAds");if(!e)return;let n=B(e),r=[];for(let i of v(e,"NonLinear")){let s=pe(i);s&&r.push(s);}return r.length>0?{trackingEvents:n,nonLinears:r}:void 0}function pe(t){let e=k(t.getAttribute("width"),0),n=k(t.getAttribute("height"),0);if(e===0||n===0)return null;let r=t.getAttribute("id")??void 0,i=k(t.getAttribute("expandedWidth"),void 0),s=k(t.getAttribute("expandedHeight"),void 0),o=t.getAttribute("scalable"),c=o==="true"?true:o==="false"?false:void 0,u=t.getAttribute("maintainAspectRatio"),g=u==="true"?true:u==="false"?false:void 0,a=t.getAttribute("minSuggestedDuration"),d=a&&D(a)||void 0,f=t.getAttribute("apiFramework")??void 0,m=K(t),p=b(t,"NonLinearClickThrough")||void 0,E=y(t,"NonLinearClickTracking"),A=b(t,"AdParameters")||void 0;return {width:e,height:n,id:r,expandedWidth:i,expandedHeight:s,scalable:c,maintainAspectRatio:g,minSuggestedDuration:d,apiFramework:f,resources:m,clickThrough:p,clickTracking:E,adParameters:A}}function B(t){let e={},n=S(t,"TrackingEvents");if(!n)return e;for(let r of v(n,"Tracking")){let i=r.getAttribute("event"),s=(r.textContent??"").trim();!i||!s||(e[i]||(e[i]=[]),e[i].push(s));}return e}var me=new Set(["start","firstQuartile","midpoint","thirdQuartile","complete","pause","resume","skip","loaded","mute","unmute","rewind","playerExpand","playerCollapse","closeLinear","notUsed","otherAdInteraction","creativeView"]);function J(t){let e=q(),n=t.querySelector("TrackingEvents");if(!n)return e;let r=n.querySelectorAll("Tracking");for(let i of r){let s=i.getAttribute("event"),o=(i.textContent??"").trim();if(!(!s||!o))if(s==="progress"){let c=i.getAttribute("offset"),u=c?$(c,0):0;e.progress.push({offset:u,url:o});}else me.has(s)&&e[s].push(o);}return e}function D(t){if(!t)return 0;let e=t.split(":");if(e.length!==3)return 0;let n=Number.parseInt(e[0],10),r=Number.parseInt(e[1],10),i=Number.parseFloat(e[2]);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?0:n*3600+r*60+i}function $(t,e){if(t.endsWith("%")){let n=Number.parseFloat(t);return Number.isNaN(n)?0:n/100*e}return D(t)}function v(t,e){let n=[];for(let r=0;r<t.children.length;r++)t.children[r].tagName===e&&n.push(t.children[r]);return n}function S(t,e){for(let n=0;n<t.children.length;n++)if(t.children[n].tagName===e)return t.children[n];return null}function P(t,e){let n=[];for(let r of v(t,e)){let i=(r.textContent??"").trim();i&&n.push(i);}return n}function b(t,e){let n=t.querySelector(e);return n?(n.textContent??"").trim():""}function y(t,e){let n=t.querySelectorAll(e),r=[];for(let i of n){let s=(i.textContent??"").trim();s&&r.push(s);}return r}async function ge(t,e){let n=e?.timeout??5e3,r=new AbortController,i=setTimeout(()=>r.abort(),n);try{let s=await fetch(t,{signal:r.signal});if(!s.ok)throw new Error(`VAST fetch failed: ${s.status}`);return await s.text()}finally{clearTimeout(i);}}async function rt(t,e){let n=e?.timeout??1e4,r=e?.maxDepth??5,i=Date.now()+n,s=new Set,o=[],c=t;for(let u=0;u<=r;u++){let g=i-Date.now();if(g<=0)return {version:"",ads:[],errors:["VAST resolve timeout"]};if(s.has(c))return {version:"",ads:[],errors:["VAST circular reference detected"]};s.add(c);let a;try{a=await ge(c,{timeout:g});}catch(m){return {version:"",ads:[],errors:[m instanceof Error?m.message:String(m)]}}let d=re(a);if(d.ads.length>0)return {version:d.version,ads:d.ads.map(m=>ke(m,o)),errors:d.errors};let f=Ae(a);if(!f)return d;o.push(f),c=f.adTagUri;}return {version:"",ads:[],errors:["VAST wrapper depth limit exceeded"]}}function Ae(t){let r=new DOMParser().parseFromString(t,"text/xml").documentElement;if(r.tagName!=="VAST")return null;for(let i of v(r,"Ad")){let s=S(i,"Wrapper");if(!s)continue;let o=b(s,"VASTAdTagURI").trim();if(!o)continue;let c=P(s,"Error"),u=y(s,"Impression"),g=q(),a=[],d,f=[],m=[],p={},E=[],A=s.querySelector("Creatives");if(A)for(let N of v(A,"Creative")){let C=N.querySelector("Linear");if(C){g=J(C);let V=C.querySelector("VideoClicks");V&&(a=y(V,"ClickTracking"));}let _=z(N);if(_){d=_;for(let V of _.companions)f.push(...V.clickTracking),m.push(...V.trackingEvents.creativeView);}let I=S(N,"NonLinearAds");if(I){p=B(I);for(let V of v(I,"NonLinear"))E.push(...y(V,"NonLinearClickTracking"));}}let x=X(s),R=G(s),L=Y(s);return {adTagUri:o,errors:c,impressions:u,trackingEvents:g,clickTracking:a,companionAds:d,companionClickTracking:f,companionCreativeViewTracking:m,nonLinearTrackingEvents:p,nonLinearClickTracking:E,verifications:x,extensions:R,viewableImpression:L}}return null}function q(){return {start:[],firstQuartile:[],midpoint:[],thirdQuartile:[],complete:[],pause:[],resume:[],skip:[],loaded:[],mute:[],unmute:[],rewind:[],playerExpand:[],playerCollapse:[],closeLinear:[],notUsed:[],otherAdInteraction:[],creativeView:[],progress:[]}}function Ee(t,e){let n=q();for(let r of Object.keys(n)){if(r==="progress")continue;let i=n[r];for(let s of t)i.push(...s[r]);i.push(...e[r]);}for(let r of t)n.progress.push(...r.progress);return n.progress.push(...e.progress),n}function ve(t,e){let n=[...t,e].filter(r=>r!==void 0);if(n.length!==0)return {viewable:n.flatMap(r=>r.viewable),notViewable:n.flatMap(r=>r.notViewable),viewUndetermined:n.flatMap(r=>r.viewUndetermined)}}function ke(t,e){if(e.length===0)return t;let n=[...e.flatMap(a=>a.errors),...t.errors],r=[...e.flatMap(a=>a.impressions),...t.impressions],i=e.flatMap(a=>a.verifications??[]),s=i.length>0||t.verifications&&t.verifications.length>0?[...i,...t.verifications??[]]:t.verifications,o=e.flatMap(a=>a.extensions??[]),c=o.length>0||t.extensions&&t.extensions.length>0?[...o,...t.extensions??[]]:t.extensions,u=ve(e.map(a=>a.viewableImpression),t.viewableImpression),g=t.creatives.map(a=>{let d=a;if(a.linear&&(d={...d,linear:{...a.linear,trackingEvents:Ee(e.map(f=>f.trackingEvents),a.linear.trackingEvents),clickTracking:[...e.flatMap(f=>f.clickTracking),...a.linear.clickTracking]}}),a.companionAds){let f=e.flatMap(p=>p.companionClickTracking),m=e.flatMap(p=>p.companionCreativeViewTracking);(f.length>0||m.length>0)&&(d={...d,companionAds:{...a.companionAds,companions:a.companionAds.companions.map(p=>({...p,clickTracking:[...f,...p.clickTracking],trackingEvents:{creativeView:[...m,...p.trackingEvents.creativeView]}}))}});}else for(let f=e.length-1;f>=0;f--)if(e[f].companionAds){d={...d,companionAds:e[f].companionAds};break}if(a.nonLinearAds){let f=e.flatMap(p=>p.nonLinearClickTracking),m={};for(let p of e)for(let[E,A]of Object.entries(p.nonLinearTrackingEvents))m[E]||(m[E]=[]),m[E].push(...A);for(let[p,E]of Object.entries(a.nonLinearAds.trackingEvents))m[p]||(m[p]=[]),m[p].push(...E);d={...d,nonLinearAds:{trackingEvents:m,nonLinears:a.nonLinearAds.nonLinears.map(p=>({...p,clickTracking:[...f,...p.clickTracking]}))}};}return d});return {...t,errors:n,impressions:r,creatives:g,verifications:s,extensions:c,viewableImpression:u}}function k(t,e){if(t==null)return e;let n=Number.parseInt(t,10);return Number.isNaN(n)?e:n}function Te(t,e){if(t==null)return e;let n=Number.parseFloat(t);return Number.isNaN(n)?e:n}function ee(t){if(t.length===0)return null;let e=t.filter(r=>r.mimeType==="video/mp4");return (e.length>0?e:t).sort((r,i)=>(i.bitrate??0)-(r.bitrate??0))[0]}function O(t){let{player:e,ad:n,linear:r,source:i}=t,s=n.id,o=e._setState,c=()=>{},u=new Promise(l=>{c=l;}),g=[];if(t.adPlugins)for(let l of t.adPlugins(n)){let h=l.setup(e,n);h&&g.push(h);}o("ad:loading"),e.emit("ad:start",{adId:s,clickThrough:r.clickThrough,skipOffset:r.skipOffset,duration:r.duration,adTitle:n.adTitle});for(let l of n.creatives)if(l.companionAds&&l.companionAds.companions.length>0){e.emit("ad:companions",{adId:s,required:l.companionAds.required,companions:l.companionAds.companions});break}for(let l of n.creatives)if(l.nonLinearAds&&l.nonLinearAds.nonLinears.length>0){e.emit("ad:nonlinears",{adId:s,nonLinears:l.nonLinearAds.nonLinears,trackingEvents:l.nonLinearAds.trackingEvents});break}b$1(n.impressions),e.emit("ad:impression",{adId:s});let a$1=ee(r.mediaFiles);if(!a$1)return R(),a(n.errors,403),e.emit("ad:error",{error:new Error("No suitable media file found"),source:i,vastErrorCode:403}),e.emit("ad:end",{adId:s}),c({outcome:"error",errorPhase:"load",adId:s}),{promise:u,abort:()=>{}};let d$1=d(r.duration,l=>{let h=r.trackingEvents[l];h&&b$1(h),e.emit("ad:quartile",{adId:s,quartile:l});}),f=new Set;function m(l){for(let h of r.trackingEvents.progress)!f.has(h.offset)&&l>=h.offset&&(f.add(h.offset),b$1([h.url]));}let p=e.el.muted||e.el.volume===0,E=!!document.fullscreenElement,A=false,x=false;function R(){for(let l of g)l();g.length=0;}function L(l){e.emit("ad:end",{adId:s});let h=l==="error"?{outcome:l,errorPhase:x?"playback":"load",adId:s}:{outcome:l,adId:s};t.onFinish&&t.onFinish(h),c(h);}function N(){A||(b$1(r.clickTracking),e.emit("ad:click",{clickThrough:r.clickThrough,clickTracking:r.clickTracking}));}function C(){A||(b$1(r.trackingEvents.skip),A=true,w(),R(),L("skipped"));}function _(){A||e.state==="ad:playing"&&(b$1(r.trackingEvents.pause),o("ad:paused"));}function I(){A||e.state==="ad:paused"&&(b$1(r.trackingEvents.resume),o("ad:playing"));}function V(){d$1(e.el.currentTime),m(e.el.currentTime);}function U(){if(A)return;let l=e.el.muted||e.el.volume===0;l&&!p?(b$1(r.trackingEvents.mute),e.emit("ad:mute",{adId:s})):!l&&p&&(b$1(r.trackingEvents.unmute),e.emit("ad:unmute",{adId:s})),p=l,e.emit("ad:volumeChange",{adId:s,volume:e.el.muted?0:e.el.volume});}function W(){if(A)return;let l=!!document.fullscreenElement;l&&!E?(b$1(r.trackingEvents.playerExpand),e.emit("ad:fullscreen",{adId:s,fullscreen:true})):!l&&E&&(b$1(r.trackingEvents.playerCollapse),e.emit("ad:fullscreen",{adId:s,fullscreen:false})),E=l;}function H(){if(A)return;A=true,w(),R();let l=x?405:401;a(n.errors,l),e.emit("ad:error",{error:new Error("Ad media playback failed"),source:i,vastErrorCode:l}),L("error");}function j(){A||(A=true,d$1(r.duration),w(),R(),L("completed"));}function F(){e.el.removeEventListener("canplay",F),x=true,b$1(r.trackingEvents.loaded),b$1(r.trackingEvents.creativeView),e.emit("ad:loaded",{adId:s}),o("ad:playing"),e.el.play().catch(()=>{e.el.muted=true,e.el.play().catch(()=>{});});}function w(){e.el.removeEventListener("timeupdate",V),e.el.removeEventListener("ended",j),e.el.removeEventListener("error",H),e.el.removeEventListener("canplay",F),e.el.removeEventListener("pause",_),e.el.removeEventListener("play",I),e.el.removeEventListener("click",N),e.el.removeEventListener("volumechange",U),document.removeEventListener("fullscreenchange",W),e.off("ad:skip",C);}return e.el.addEventListener("canplay",F),e.el.addEventListener("timeupdate",V),e.el.addEventListener("ended",j),e.el.addEventListener("error",H),e.el.addEventListener("pause",_),e.el.addEventListener("play",I),e.el.addEventListener("click",N),e.el.addEventListener("volumechange",U),document.addEventListener("fullscreenchange",W),e.on("ad:skip",C),e.el.src=a$1.url,e.el.load(),{promise:u,abort:()=>{A||(A=true,w(),R());}}}function lt(t){let e=[];for(let i of t)for(let s of i.creatives)if(s.linear&&s.linear.mediaFiles.length>0){e.push({ad:i,linear:s.linear});break}if(e.length<=1)return {type:"single",ads:e,standalonePool:[]};let n=e.filter(i=>i.ad.sequence!=null),r=e.filter(i=>i.ad.sequence==null);return n.length>0?(n.sort((i,s)=>(i.ad.sequence??0)-(s.ad.sequence??0)),{type:"pod",ads:n,standalonePool:r}):{type:"waterfall",ads:r,standalonePool:[]}}async function ut(t,e,n){let r={completed:0,skipped:0,failed:0},i=e.length,s=n.standalonePool?[...n.standalonePool]:[];t.emit("ad:pod:start",{ads:e.map(o=>o.ad),total:i});for(let o=0;o<e.length;o++){let{ad:c,linear:u}=e[o],g=o===e.length-1;t.emit("ad:pod:adstart",{ad:c,index:o,total:i});let{promise:a}=O({player:t,ad:c,linear:u,source:n.source,adPlugins:n.adPlugins,onFinish:g?n.onFinish:void 0}),d=await a;if(d.outcome==="error"&&s.length>0){let f=s.shift(),{promise:m}=O({player:t,ad:f.ad,linear:f.linear,source:n.source,adPlugins:n.adPlugins,onFinish:g?n.onFinish:void 0});d=await m;}switch(t.emit("ad:pod:adend",{ad:c,index:o,total:i}),d.outcome){case "completed":r.completed++;break;case "skipped":r.skipped++;break;case "error":r.failed++;break}}return t.emit("ad:pod:end",r),r}async function ft(t,e,n){for(let{ad:r,linear:i}of e){let{promise:s}=O({player:t,ad:r,linear:i,source:n.source,adPlugins:n.adPlugins,onFinish:n.onFinish}),o=await s;if(o.outcome!=="error"||o.errorPhase==="playback")return o}return null}export{Ze as A,Qe as B,Xe as C,Ge as D,Ye as E,Ke as F,ze as G,Be as H,Je as I,$e as J,et as K,tt as L,re as M,ge as N,rt as O,ee as P,O as Q,lt as R,ut as S,ft as T,he as a,Ve as b,be as c,Re as d,Se as e,xe as f,ye as g,Ne as h,Ce as i,_e as j,Ie as k,Pe as l,Le as m,we as n,Oe as o,Fe as p,te as q,Me as r,Q as s,ne as t,De as u,qe as v,Ue as w,We as x,He as y,je as z};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a}from'./chunk-H3OXPFD3.mjs';import'./chunk-DWXOYV4E.mjs';var w="application/dash+xml",L={maxRetries:3,retryDelay:3e3,backoffMultiplier:2};function T(n){try{return new URL(n,"https://placeholder.invalid").pathname.endsWith(".mpd")}catch{return n.includes(".mpd")}}function C(n){return n.toLowerCase()===w}function k(n={}){return {name:"dash",setup(e){let c=null,u=false,g=n.recovery===false?false:{...L,...n.recovery??{}},s=0,f=null,v="",l=null;function m(){f!==null&&(clearTimeout(f),f=null);}function R(a){if(g===false||u||s>=g.maxRetries||!l)return false;s++;let r=g.retryDelay*g.backoffMultiplier**(s-1);return m(),f=setTimeout(()=>{u||!l||(a.reset(),a.initialize(l,v,l.autoplay));},r),true}let p={canHandle(a,r){return r&&C(r)?true:T(a)},load(a,r){this.unload(r),E(a,r);},unload(a){m(),s=0,v="",l=null,c&&(c.destroy(),c=null);}};function E(a$1,r){v=a$1,l=r,import('dashjs').then(h=>{if(u)return;let y=h.default,t=y.MediaPlayer().create();c=t,e.setPluginData("dash",t);let b=e.getPluginData("drm");b?.dashConfig&&t.updateSettings(b.dashConfig),n.dashConfig&&t.updateSettings(n.dashConfig),t.on(y.MediaPlayer.events.ERROR,o=>{if(typeof o.error=="object"&&o.error!==null){let d=R(t);e.emit("error",{code:o.error.code,message:o.error.message,source:"dash",recoverable:d,retryCount:d?s:void 0});}else e.emit("error",{code:3001,message:`DASH error: ${String(o.error)}`,source:"dash"});}),t.on(y.MediaPlayer.events.STREAM_INITIALIZED,()=>{s>0&&(s=0,m());let d=t.getBitrateInfoListFor("video").map(i=>({id:i.qualityIndex,width:i.width,height:i.height,bitrate:i.bitrate,label:a(i.height)}));e.setPluginData("qualities",d),e.setPluginData("qualitySetter",i=>{i===-1?t.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:true}}}}):(t.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:false}}}}),t.setQualityFor("video",i,true)),e.setPluginData("autoQuality",i===-1);});}),t.on(y.MediaPlayer.events.QUALITY_CHANGE_RENDERED,o=>{if(o.mediaType!=="video")return;let i=e.qualities.find(D=>D.id===o.newQuality);if(i){e.setPluginData("currentQuality",i);let D=t.getSettings();e.setPluginData("autoQuality",D?.streaming?.abr?.autoSwitchBitrate?.video??true);}}),t.initialize(r,a$1,r.autoplay);}).catch(h=>{u||e.emit("error",{code:3e3,message:h instanceof Error?`Failed to load dashjs: ${h.message}`:"Failed to load dashjs",source:"dash"});});}return e.registerSourceHandler(p),()=>{u=true,m(),p.unload(e.el);}}}}
|
|
2
|
+
export{k as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function S(e){return {name:"ui-ad",setup(t,n){let r=n.creatives.find(o=>o.linear)?.linear;if(r)return e.set({adId:n.id,skipOffset:r.skipOffset,clickThrough:r.clickThrough,duration:r.duration,adTitle:n.adTitle}),()=>{e.clear();}}}}function C(e){return `vide-ui--${e.replace(":","-")}`}function v(e){return e==="ad:loading"||e==="ad:playing"||e==="ad:paused"}function A(e,t){e.classList.add(C(t.state));function n({from:r,to:o}){e.classList.remove(C(r)),e.classList.add(C(o));}return t.on("statechange",n),()=>t.off("statechange",n)}function b(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),o=t%60,i=n>0?String(r).padStart(2,"0"):String(r),l=String(o).padStart(2,"0");return n>0?`${n}:${i}:${l}`:`${i}:${l}`}function u(e,t){let n=document.createElement(e);return n.className=t,n}function T(){let e={current:null,set(t){e.current=t;},clear(){e.current=null;}};return e}function M(e){let t=null,n=null;function r(){if(!t||!n||!v(n.state))return;let o=e.current?.duration??(Number.isFinite(n.el.duration)?n.el.duration:0),i=n.el.currentTime,l=Math.max(0,Math.ceil(o-i));t.textContent=`${l}s`;}return {mount(o){t=u("div","vide-ad-countdown"),o.appendChild(t);},connect(o){n=o,n.on("timeupdate",r);},destroy(){t&&(t.remove(),t=null),n&&(n.off("timeupdate",r),n=null);}}}function k(){let e=null;return {mount(t){e=u("div","vide-ad-label"),e.textContent="Ad",t.appendChild(e);},connect(t){},destroy(){e&&(e.remove(),e=null);}}}var U="http://www.w3.org/2000/svg";function h(e,t="0 0 24 24"){let n=document.createElementNS(U,"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 o=document.createElementNS(U,"path");o.setAttribute("d",r),n.appendChild(o);}return n}function P(){return h(["M8 5v14l11-7z"])}function x(){return h(["M6 19h4V5H6v14zm8-14v14h4V5h-4z"])}function I(){return h(["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 H(){return h(["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 V(){return h(["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 w(){return h(["M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"])}function _(){return h(["M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"])}function j(){return h(["M5 18l10-6L5 6v12zm12-12v12h2V6h-2z"])}function D(){return h(["M14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z","M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2v7z"])}function Z(e){try{return new URL(e).hostname}catch{return e}}function F(e){let t=null,n=null,r=null,o=null;function i(){if(!o)return;let a=e.current?.clickThrough;a&&(o.el.click(),window.open(a,"_blank"),o.el.pause());}function l(){if(!t)return;let a=e.current,d=a?.clickThrough;t.style.display=d?"":"none",n&&(n.textContent=a?.adTitle??"",n.style.display=a?.adTitle?"":"none"),r&&(r.textContent=d?Z(d):"");}return {mount(a){t=u("button","vide-ad-cta"),t.type="button";let d=u("span","vide-ad-cta__icon");d.appendChild(D()),t.appendChild(d);let m=u("span","vide-ad-cta__body");n=u("span","vide-ad-cta__title"),n.style.display="none",m.appendChild(n),r=u("span","vide-ad-cta__url"),m.appendChild(r),t.appendChild(m),a.appendChild(t),t.style.display="none";},connect(a){o=a,t&&(t.addEventListener("click",i),a.on("ad:start",l),a.on("ad:end",l),a.on("ad:skip",l),l());},destroy(){t&&(t.removeEventListener("click",i),t.remove(),t=null),o&&(o.off("ad:start",l),o.off("ad:end",l),o.off("ad:skip",l)),o=null,n=null,r=null;}}}function G(e){let t=null,n=null;function r(){if(!n)return;n.el.click();let o=e.current?.clickThrough;o?(window.open(o,"_blank"),n.el.pause()):n.el.paused?Promise.resolve(n.el.play()).catch(()=>{}):n.el.pause();}return {mount(o){t=u("div","vide-ad-overlay"),o.appendChild(t);},connect(o){n=o,t&&t.addEventListener("click",r);},destroy(){t&&(t.removeEventListener("click",r),t.remove(),t=null),n=null;}}}function R(e){let t=null,n=null,r=null;function o(){!r||!e.current||t?.classList.contains("vide-skip--disabled")||r.emit("ad:skip",{adId:e.current.adId});}function i(){if(!t||!n||!r||!v(r.state))return;if(!e.current||e.current.skipOffset===void 0){t.style.display="none";return}t.style.display="";let{skipOffset:a}=e.current,d=r.el.currentTime;if(d>=a)t.classList.remove("vide-skip--disabled"),n.textContent="Skip Ad";else {t.classList.add("vide-skip--disabled");let m=Math.max(0,Math.ceil(a-d));n.textContent=`Skip in ${m}s`;}}function l({to:a}){!t||!n||v(a)||(t.style.display="none",t.classList.add("vide-skip--disabled"),n.textContent="");}return {mount(a){t=u("button","vide-skip vide-skip--disabled"),t.type="button",t.setAttribute("aria-label","Skip ad"),t.style.display="none",n=u("span","vide-skip__label"),t.appendChild(n),t.appendChild(j()),a.appendChild(t);},connect(a){r=a,t&&(t.addEventListener("click",o),r.on("timeupdate",i),r.on("statechange",l));},destroy(){t&&(t.removeEventListener("click",o),t.remove(),t=null,n=null),r&&(r.off("timeupdate",i),r.off("statechange",l),r=null);}}}var ee=3e3;function z(){let e=null,t=null,n=null;function r(){if(!t)return true;let m=t.state;return m==="paused"||m==="ended"||m==="idle"||m==="ready"||v(m)}function o(){e&&e.classList.remove("vide-ui--autohide");}function i(){l(),!r()&&(n=setTimeout(()=>{e&&e.classList.add("vide-ui--autohide");},ee));}function l(){n!==null&&(clearTimeout(n),n=null);}function a(){o(),i();}function d({to:m}){m==="paused"||m==="ended"||m==="idle"||m==="ready"||v(m)?(l(),o()):i();}return {mount(m){e=m.closest(".vide-ui")??m;},connect(m){t=m,e&&(e.addEventListener("mousemove",a),e.addEventListener("touchstart",a),e.addEventListener("keydown",a),t.on("statechange",d),i());},destroy(){l(),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",d),t=null);}}}function N(){let e=null,t=null;function n(){if(t){if(t.state==="ended"){let o=function({to:i}){i==="ready"&&(t?.off("statechange",o),t?.play().catch(()=>{}));};t.on("statechange",o),t.el.currentTime=0,t.el.load();return}t.play().catch(()=>{});}}return {mount(r){e=u("button","vide-bigplay"),e.type="button",e.setAttribute("aria-label","Play video"),e.appendChild(P()),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 te=200;function B(e){let t=null,n=null,r=null,o=null;function i(){n&&(n.state==="playing"||n.state==="ad:playing"?n.pause():n.play().catch(()=>{}));}function l(){!o||e.has("fullscreen")||(document.fullscreenElement!=null?document.exitFullscreen().catch(()=>{}):o.requestFullscreen&&o.requestFullscreen().catch(()=>{}));}function a(){if(n){if(v(n.state)){i();return}if(r!==null){clearTimeout(r),r=null,l();return}r=setTimeout(()=>{r=null,i();},te);}}return {mount(d){t=u("div","vide-clickplay"),o=d.closest(".vide-ui")?.parentElement??d,d.appendChild(t);},connect(d){n=d,t&&t.addEventListener("click",a);},destroy(){r!==null&&(clearTimeout(r),r=null),t&&(t.removeEventListener("click",a),t.remove(),t=null),n=null,o=null;}}}function K(){let e=null,t=null,n=null;function r({message:o}){t&&(t.textContent=o);}return {mount(o){e=u("div","vide-error"),t=u("span","vide-error__message"),e.appendChild(t),o.appendChild(e);},connect(o){n=o,n.on("error",r);},destroy(){e&&(e.remove(),e=null,t=null),n&&(n.off("error",r),n=null);}}}function O(){let e=null,t=null,n=null;function r(){return document.fullscreenElement!=null||document.webkitFullscreenElement!=null}function o(a){e&&(n&&n.remove(),n=a?_():w(),e.appendChild(n));}function i(){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 l(){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")),o(a);}return {mount(a){t=a.closest(".vide-ui")?.parentElement??a,e=u("button","vide-fullscreen"),e.type="button",e.setAttribute("aria-label","Fullscreen"),o(false),a.appendChild(e);},connect(){e&&(e.addEventListener("click",i),document.addEventListener("fullscreenchange",l),document.addEventListener("webkitfullscreenchange",l));},destroy(){e&&(e.removeEventListener("click",i),e.remove(),e=null,n=null),document.removeEventListener("fullscreenchange",l),document.removeEventListener("webkitfullscreenchange",l),t=null;}}}function q(e){let t=null,n=null,{excluded:r}=e;function o(i){if(!n)return;let l=!r.has("volume"),a=!r.has("progress"),d=!r.has("fullscreen"),m=v(n.state);switch(i.key){case " ":case "k":case "K":i.preventDefault(),n.state==="playing"||n.state==="ad:playing"?n.pause():n.play().catch(()=>{});break;case "ArrowLeft":if(!a||m)return;i.preventDefault(),n.currentTime=Math.max(0,n.el.currentTime-5);break;case "ArrowRight":if(!a||m)return;i.preventDefault(),n.currentTime=Math.min(n.el.duration||0,n.el.currentTime+5);break;case "ArrowUp":if(!l)return;i.preventDefault(),n.volume=Math.min(1,n.volume+.1),n.muted&&(n.muted=false);break;case "ArrowDown":if(!l)return;i.preventDefault(),n.volume=Math.max(0,n.volume-.1);break;case "m":case "M":if(!l)return;i.preventDefault(),n.muted=!n.muted;break;case "f":case "F":if(!d)return;if(i.preventDefault(),document.fullscreenElement!=null)document.exitFullscreen().catch(()=>{});else {let c=t?.closest(".vide-ui")?.parentElement??t;c?.requestFullscreen&&c.requestFullscreen().catch(()=>{});}break;default:if(i.key.length===1&&i.key>="0"&&i.key<="9"&&a&&!m){i.preventDefault();let c=Number.parseInt(i.key,10)/10,y=n.el.duration;Number.isFinite(y)&&y>0&&(n.currentTime=c*y);}break}}return {mount(i){t=i.closest(".vide-ui")??i,t.setAttribute("tabindex","0");},connect(i){n=i,t&&t.addEventListener("keydown",o);},destroy(){t&&(t.removeEventListener("keydown",o),t.removeAttribute("tabindex"),t=null),n=null;}}}function $(){let e=null;return {mount(t){e=u("div","vide-loader");let n=u("div","vide-loader__spinner");e.appendChild(n),t.appendChild(e);},connect(t){},destroy(){e&&(e.remove(),e=null);}}}function X(){let e=null,t=null,n=null;function r(l){e&&(n&&n.remove(),n=l?x():P(),e.appendChild(n));}function o(){t&&(t.state==="playing"||t.state==="ad:playing"?t.pause():t.play().catch(()=>{}));}function i({to:l}){e&&(l==="playing"||l==="ad:playing"?(e.classList.add("vide-play--playing"),e.classList.remove("vide-play--paused"),e.setAttribute("aria-label","Pause"),r(true)):(l==="paused"||l==="ready"||l==="ended"||l==="ad:paused")&&(e.classList.remove("vide-play--playing"),e.classList.add("vide-play--paused"),e.setAttribute("aria-label","Play"),r(false)));}return {mount(l){e=u("button","vide-play vide-play--paused"),e.type="button",e.setAttribute("aria-label","Play"),r(false),l.appendChild(e);},connect(l){t=l,e&&(e.addEventListener("click",o),t.on("statechange",i));},destroy(){e&&(e.removeEventListener("click",o),e.remove(),e=null,n=null),t&&(t.off("statechange",i),t=null);}}}function Y(e){let t=null;return {mount(n){t=u("div","vide-poster");let r=u("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 J(){let e=null,t=null,n=null,r=null,o=null,i=null,l=false;function a(s){if(!e)return 0;let f=e.getBoundingClientRect();return f.width===0?0:Math.max(0,Math.min(1,(s.clientX-f.left)/f.width))}function d(s){if(!e)return;let f=String(s);e.style.setProperty("--vide-progress",f),o?.style.setProperty("--vide-progress",f);}function m(){if(!i||!n)return;let s=i.el;if(s.buffered.length>0&&s.duration>0){let L=s.buffered.end(s.buffered.length-1)/s.duration;n.style.setProperty("--vide-progress-buffered",String(Math.min(1,L)));}}function c(){if(l||!i)return;let{currentTime:s,duration:f}=i.el;f>0&&d(s/f),m(),e&&(e.setAttribute("aria-valuenow",String(Math.floor(s))),Number.isFinite(f)&&e.setAttribute("aria-valuemax",String(Math.floor(f))));}function y(s){!i||!e||v(i.state)||(l=true,e.classList.add("vide-progress--dragging"),e.setPointerCapture(s.pointerId),d(a(s)));}function E(s){l&&d(a(s));}function g(s){if(!l||!i)return;l=false,e&&(e.classList.remove("vide-progress--dragging"),e.releasePointerCapture(s.pointerId));let f=a(s),L=i.el.duration;Number.isFinite(L)&&L>0&&(i.currentTime=f*L);}function p({to:s}){e&&(v(s)?e.classList.add("vide-progress--disabled"):e.classList.remove("vide-progress--disabled"));}return {mount(s){e=u("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=u("div","vide-progress__buffered"),t=u("div","vide-progress__bar"),r=u("div","vide-progress__handle"),e.appendChild(n),e.appendChild(t),e.appendChild(r),s.appendChild(e),o=s.closest(".vide-ui");},connect(s){i=s,e&&(i.on("timeupdate",c),i.on("statechange",p),e.addEventListener("pointerdown",y),e.addEventListener("pointermove",E),e.addEventListener("pointerup",g));},destroy(){e&&(e.removeEventListener("pointerdown",y),e.removeEventListener("pointermove",E),e.removeEventListener("pointerup",g),e.remove(),e=null,t=null,n=null,r=null),i&&(i.off("timeupdate",c),i.off("statechange",p),i=null),o=null;}}}function Q(){let e=null,t=null,n=null,r=null;function o({currentTime:i,duration:l}){t&&(t.textContent=b(i)),n&&(n.textContent=b(l));}return {mount(i){e=u("div","vide-time"),t=u("span","vide-time__current");let l=u("span","vide-time__separator");n=u("span","vide-time__duration"),t.textContent="0:00",l.textContent="/",n.textContent="0:00",e.appendChild(t),e.appendChild(l),e.appendChild(n),i.appendChild(e);},connect(i){r=i,r.on("timeupdate",o);},destroy(){e&&(e.remove(),e=null,t=null,n=null),r&&(r.off("timeupdate",o),r=null);}}}function W(){let e=null,t=null,n=null,r=null,o=false,i=null;function l(){if(!t||!r)return;i&&i.remove(),r.muted||r.volume===0?i=V():r.volume<.5?i=H():i=I(),t.appendChild(i);}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 s=r.muted?0:r.volume;e.style.setProperty("--vide-volume",String(s)),n&&n.setAttribute("aria-valuenow",String(Math.round(s*100))),l();}function d(p){if(!n)return 0;let s=n.getBoundingClientRect();return s.width===0?0:Math.max(0,Math.min(1,(p.clientX-s.left)/s.width))}function m(){r&&(r.muted=!r.muted);}function c(){o||a();}function y(p){if(!r||!n)return;o=true,n.setPointerCapture(p.pointerId);let s=d(p);r.volume=s,r.muted&&s>0&&(r.muted=false),a();}function E(p){if(!o||!r)return;let s=d(p);r.volume=s,r.muted&&s>0&&(r.muted=false),a();}function g(p){!o||!n||(o=false,n.releasePointerCapture(p.pointerId));}return {mount(p){e=u("div","vide-volume"),t=u("button","vide-volume__button"),t.type="button",t.setAttribute("aria-label","Mute"),n=u("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 s=u("div","vide-volume__track"),f=u("div","vide-volume__filled");n.appendChild(s),n.appendChild(f),e.appendChild(t),e.appendChild(n),p.appendChild(e);},connect(p){r=p,!(!t||!n)&&(t.addEventListener("click",m),n.addEventListener("pointerdown",y),n.addEventListener("pointermove",E),n.addEventListener("pointerup",g),r.el.addEventListener("volumechange",c),a());},destroy(){t&&t.removeEventListener("click",m),n&&(n.removeEventListener("pointerdown",y),n.removeEventListener("pointermove",E),n.removeEventListener("pointerup",g)),r&&(r.el.removeEventListener("volumechange",c),r=null),e&&(e.remove(),e=null,t=null,n=null,i=null);}}}function ne(e,t,n){e.mount(t),e.connect(n);}var re=new Set(["ad-overlay"]);function Et(e){let t=T(),n=new Set(re);if(e.include)for(let r of e.include)n.delete(r);if(e.exclude)for(let r of e.exclude)n.add(r);return {name:"ui",setup(r){r.isAudio&&(n.add("fullscreen"),n.add("poster"));let o=document.createElement("div");o.className="vide-ui",o.setAttribute("role","region"),o.setAttribute("aria-label",r.isAudio?"Audio player":"Video player"),e.container.appendChild(o);let i=[];function l(c,y,E){n.has(c)||(ne(y,E,r),i.push(y));}if(l("loader",$(),o),l("error",K(),o),l("bigplay",N(),o),e.poster&&l("poster",Y({src:e.poster}),o),l("clickplay",B(n),o),!n.has("ad-overlay")||!n.has("ad-label")||!n.has("ad-countdown")||!n.has("ad-skip")||!n.has("ad-learn-more")){let c=document.createElement("div");c.className="vide-ad",o.appendChild(c),l("ad-overlay",G(t),c),l("ad-label",k(),c),l("ad-countdown",M(t),c),l("ad-skip",R(t),c),l("ad-learn-more",F(t),c);}let d=document.createElement("div");d.className="vide-controls",d.addEventListener("click",c=>c.stopPropagation()),o.appendChild(d),l("play",X(),d),l("progress",J(),d),l("time",Q(),d),l("volume",W(),d),l("fullscreen",O(),d),l("autohide",z(),o),l("keyboard",q({excluded:n}),o);let m=A(o,r);return ()=>{for(let c of i)c.destroy();m(),o.remove();}},getAdPlugin(){return ()=>[S(t)]}}}
|
|
2
|
+
export{S as a,C as b,v as c,A as d,b as e,T as f,M as g,k as h,F as i,G as j,R as k,z as l,N as m,B as n,K as o,O as p,q,$ as r,X as s,Y as t,J as u,Q as v,W as w,Et as x};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a}from'./chunk-H3OXPFD3.mjs';import'./chunk-DWXOYV4E.mjs';var E=["application/vnd.apple.mpegurl","application/x-mpegurl"],T={maxRetries:3,retryDelay:3e3,backoffMultiplier:2};function _(r){if(r.startsWith("data:")){let e=r.indexOf(";");return e===-1?false:E.includes(r.slice(5,e).toLowerCase())}if(r.startsWith("blob:"))return r.includes(".m3u8");try{return new URL(r,"https://placeholder.invalid").pathname.endsWith(".m3u8")}catch{return r.includes(".m3u8")}}function C(r){return E.includes(r.toLowerCase())}function w(r={}){return {name:"hls",setup(e){let d=null,u=false,f=r.recovery===false?false:{...T,...r.recovery??{}},o=0,m=null;function g(){m!==null&&(clearTimeout(m),m=null);}function L(s,i){if(f===false||u||o>=f.maxRetries)return false;o++;let l=f.retryDelay*f.backoffMultiplier**(o-1);return g(),m=setTimeout(()=>{u||(i==="networkError"?s.startLoad(-1):s.recoverMediaError());},l),true}let v={canHandle(s,i){return i&&C(i)?true:_(s)},load(s,i){this.unload(i),b(s,i);},unload(s){g(),o=0,d&&(d.destroy(),d=null);}};function b(s,i){import('hls.js').then(l=>{if(u)return;let a$1=l.default;if(!a$1.isSupported()){if(i.canPlayType("application/vnd.apple.mpegurl")){i.src=s;return}e.emit("error",{code:2e3,message:"HLS is not supported in this browser",source:"hls"});return}let H=e.getPluginData("drm"),R={...r.hlsConfig??{},...H?.hlsConfig??{}},n=new a$1(R);d=n,e.setPluginData("hls",n),n.on(a$1.Events.ERROR,(h,t)=>{if(!t.fatal)return;let c=L(n,t.type);e.emit("error",{code:2002,message:`HLS fatal error: ${t.type} - ${t.details}`,source:"hls",recoverable:c,retryCount:c?o:void 0});}),n.on(a$1.Events.FRAG_LOADED,()=>{o>0&&(o=0,g());}),n.on(a$1.Events.MANIFEST_PARSED,()=>{let h=n.levels.map((t,c)=>({id:c,width:t.width,height:t.height,bitrate:t.bitrate,label:a(t.height)}));e.setPluginData("qualities",h),e.setPluginData("qualitySetter",t=>{n.currentLevel=t,e.setPluginData("autoQuality",t===-1);});}),n.on(a$1.Events.LEVEL_SWITCHED,(h,t)=>{let p=e.qualities[t.level];p&&(e.setPluginData("currentQuality",p),e.setPluginData("autoQuality",n.autoLevelEnabled));}),n.attachMedia(i),n.loadSource(s);}).catch(l=>{u||e.emit("error",{code:2001,message:l instanceof Error?`Failed to load hls.js: ${l.message}`:"Failed to load hls.js",source:"hls"});});}return e.registerSourceHandler(v),()=>{u=true,g(),v.unload(e.el);}}}}
|
|
2
|
+
export{w as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function l(r,e){let t=r.map(n=>n.replace("[ERRORCODE]",String(e)));u(t);}function u(r){for(let e of r)typeof navigator<"u"&&typeof navigator.sendBeacon=="function"?navigator.sendBeacon(e):new Image().src=e;}function f(r,e){if(e<=0)return null;let t=r/e;return t>=1?"complete":t>=.75?"thirdQuartile":t>=.5?"midpoint":t>=.25?"firstQuartile":r>=0?"start":null}function d(r,e){let t=new Set,n=["start","firstQuartile","midpoint","thirdQuartile","complete"];return s=>{let i=f(s,r);if(!i||t.has(i))return;let c=n.indexOf(i);for(let o=0;o<=c;o++){let a=n[o];t.has(a)||(t.add(a),e(a));}}}function p(r){u(r.trackingEvents.creativeView);}function m(r,e){let t=r.trackingEvents[e];t&&u(t);}export{l as a,u as b,f as c,d,p as e,m as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import'./chunk-DWXOYV4E.mjs';function l(e){let r={licenseUrl:e.licenseUrl,serverCertificateUrl:e.certificateUrl};if(e.headers){let t=e.headers;r.licenseXhrSetup=n=>{for(let[i,s]of Object.entries(t))n.setRequestHeader(i,s);};}return {emeEnabled:true,drmSystems:{"com.apple.fps.1_0":r}}}function g(e){let r={serverURL:e.licenseUrl,serverCertificateURL:e.certificateUrl};return e.headers&&(r.httpRequestHeaders=e.headers),{streaming:{protection:{data:{"com.apple.fps.1_0":r}}}}}function h(e){let r={licenseUrl:e.licenseUrl};if(e.headers){let t=e.headers;r.licenseXhrSetup=n=>{for(let[i,s]of Object.entries(t))n.setRequestHeader(i,s);};}return {emeEnabled:true,drmSystems:{"com.widevine.alpha":r}}}function v(e){let r={serverURL:e.licenseUrl};return e.headers&&(r.httpRequestHeaders=e.headers),{streaming:{protection:{data:{"com.widevine.alpha":r}}}}}function u(e){return e.keySystem==="com.widevine.alpha"&&e.widevine?h(e.widevine):e.keySystem==="com.apple.fps.1_0"&&e.fairplay?l(e.fairplay):{}}function y(e){return e.keySystem==="com.widevine.alpha"&&e.widevine?v(e.widevine):e.keySystem==="com.apple.fps.1_0"&&e.fairplay?g(e.fairplay):{}}var K="com.apple.fps.1_0",M=[{initDataTypes:["cenc"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.42E01E"'}]}],P=[{initDataTypes:["sinf"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.42E01E"'}]}];async function m(e){for(let r of e)try{let t=r===K?P:M;return await navigator.requestMediaKeySystemAccess(r,t),r}catch{}return null}var R="com.apple.fps.1_0",U=[{initDataTypes:["cenc"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.42E01E"'}]}],D=[{initDataTypes:["sinf"],videoCapabilities:[{contentType:'video/mp4;codecs="avc1.42E01E"'}]}];function p(e,r,t){let n=false,i=[],s=null,a=o=>{if(n||e.mediaKeys&&e.mediaKeys!==s||!s||!o.initData)return;let f=s.createSession("temporary");i.push(f),f.generateRequest(o.initDataType,o.initData).then(()=>{},c=>{n||t(c instanceof Error?c:new Error("generateRequest failed"));}),f.addEventListener("message",c=>{n||k(c,f,r,t,()=>n);}),f.addEventListener("keystatuseschange",()=>{if(!n)for(let[,c]of f.keyStatuses)(c==="expired"||c==="internal-error")&&t(new Error(`Key status: ${c}`));});},d=r.keySystem===R?D:U;return navigator.requestMediaKeySystemAccess(r.keySystem,d).then(o=>{if(!n)return o.createMediaKeys()}).then(o=>{if(!(n||!o)&&(s=o,r.keySystem===R&&r.certificateUrl))return L(r.certificateUrl,r.headers,t,()=>n).then(f=>{if(!(n||!f))return s?.setServerCertificate(f.buffer)})}).then(()=>{n||!s||(e.mediaKeys||e.setMediaKeys(s),e.addEventListener("encrypted",a));}).catch(o=>{n||t(o instanceof Error?o:new Error("EME setup failed"));}),()=>{n=true,e.removeEventListener("encrypted",a);for(let o of i)o.close().catch(()=>{});}}async function L(e,r,t,n){try{let i=await fetch(e,r?{headers:r}:{});if(!i.ok)throw new Error(`Certificate fetch failed: ${i.status} ${i.statusText}`);let s=await i.arrayBuffer();return n()?null:new Uint8Array(s)}catch(i){return n()||t(i instanceof Error?i:new Error("Certificate fetch failed")),null}}function k(e,r,t,n,i){let s=new Uint8Array(e.message);Promise.resolve(t.prepareLicenseRequest?t.prepareLicenseRequest(s):s).then(a=>{if(!i())return fetch(t.licenseUrl,{method:"POST",body:a.buffer,...t.headers?{headers:t.headers}:{}})}).then(a=>{if(!(i()||!a)){if(!a.ok)throw new Error(`License request failed: ${a.status} ${a.statusText}`);return a.arrayBuffer()}}).then(a=>{if(i()||!a)return;let d=new Uint8Array(a);return Promise.resolve(t.processLicenseResponse?t.processLicenseResponse(d):d)}).then(a=>{if(!(i()||!a))return r.update(a.buffer)}).catch(a=>{i()||n(a instanceof Error?a:new Error("License exchange failed"));});}function B(e){return {name:"drm",setup(r){let t=false,n,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"),()=>{}):(m(i).then(s=>{if(t)return;if(!s){r.emit("error",{code:4e3,message:"No supported DRM key system found",source:"drm"});return}let a={keySystem:s,widevine:e.widevine,fairplay:e.fairplay},d={keySystem:s,hlsConfig:u(a),dashConfig:y(a)};r.setPluginData("drm",d);let o=s!=="com.widevine.alpha",f=o?e.fairplay:e.widevine;if(!f)return;let c={keySystem:s,licenseUrl:f.licenseUrl,headers:f.headers,prepareLicenseRequest:f.prepareLicenseRequest,processLicenseResponse:f.processLicenseResponse};o&&(c.certificateUrl=f.certificateUrl),n=p(r.el,c,C=>{t||r.emit("error",{code:4002,message:C.message,source:"drm"});});}).catch(s=>{t||r.emit("error",{code:4001,message:s instanceof Error?`DRM detection failed: ${s.message}`:"DRM detection failed",source:"drm"});}),()=>{t=true,n?.();})}}}export{u as a,y as b,m as c,p as d,B as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {M,O,R,T,S,Q}from'./chunk-G74QBLVV.mjs';import {b as b$1,a}from'./chunk-UY5CGRNN.mjs';function b(e){let s=new DOMParser().parseFromString(e,"text/xml");if(s.querySelector("parsererror"))return {version:"",adBreaks:[]};let i=s.documentElement;if((i.localName||i.tagName)!=="VMAP")return {version:"",adBreaks:[]};let c=i.getAttribute("version")??"",f=[];for(let d=0;d<i.children.length;d++){let r=i.children[d];if((r.localName||r.tagName)==="AdBreak"){let a=_(r);a&&f.push(a);}}return {version:c,adBreaks:f}}function _(e){let t=e.getAttribute("timeOffset");if(!t)return null;let s=I(t),n=e.getAttribute("breakType"),i=n==="nonlinear"?"nonlinear":n==="display"?"display":"linear",u=e.getAttribute("breakId")??void 0,c=null,f={breakStart:[],breakEnd:[],error:[]};for(let d=0;d<e.children.length;d++){let r=e.children[d],m=r.localName||r.tagName;m==="AdSource"?c=F(r):m==="TrackingEvents"&&j(r,f);}return {timeOffset:s,breakType:i,breakId:u,adSource:c,trackingEvents:f}}function j(e,t){for(let s=0;s<e.children.length;s++){let n=e.children[s];if((n.localName||n.tagName)!=="Tracking")continue;let u=n.getAttribute("event"),c=(n.textContent??"").trim();!u||!c||(u==="breakStart"?t.breakStart.push(c):u==="breakEnd"?t.breakEnd.push(c):u==="error"&&t.error.push(c));}}function F(e){let t=e.getAttribute("id")??void 0,s=e.getAttribute("allowMultipleAds"),n=s!=null?s==="true":void 0,i=e.getAttribute("followRedirects"),u=i!=null?i==="true":void 0,c,f;for(let d=0;d<e.children.length;d++){let r=e.children[d],m=r.localName||r.tagName;if(m==="VASTAdData"){let a=r.querySelector("VAST");a&&(c=new XMLSerializer().serializeToString(a));}else m==="AdTagURI"&&(f=(r.textContent??"").trim());}return {id:t,allowMultipleAds:n,followRedirects:u,vastUrl:f,vastData:c}}function I(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:C(e)}}function C(e){if(!e)return 0;let t=e.split(":");if(t.length!==3)return 0;let s=Number.parseInt(t[0],10),n=Number.parseInt(t[1],10),i=Number.parseFloat(t[2]);return Number.isNaN(s)||Number.isNaN(n)||Number.isNaN(i)?0:s*3600+n*60+i}function y(e,t,s){let n=new Set,i=0,u=false,c=false,f=t.filter(o=>o.timeOffset.type==="start"),d=t.filter(o=>o.timeOffset.type==="end"),r=t.filter(o=>o.timeOffset.type==="time"||o.timeOffset.type==="percentage").sort((o,h)=>B(o)-B(h));function m(){if(c)return;let o=e.currentTime,h=o>i+1.5;for(let A of r){if(n.has(A))continue;let S=D(A,e.duration);if(S!==null){if(h&&o>S+.5){n.add(A);continue}o>=S-.5&&(n.add(A),s(A));}}i=o;}function a(){if(!c)for(let o of d)n.has(o)||(n.add(o),s(o));}function l(){if(!u){u=true;for(let o of f)n.has(o)||(n.add(o),s(o));e.on("timeupdate",m),e.on("ended",a);}}function g(){c=true;}function v(){c=false,i=e.currentTime;}function p(){e.off("timeupdate",m),e.off("ended",a);}return {start:l,pause:g,resume:v,destroy:p}}function D(e,t){return e.timeOffset.type==="time"?e.timeOffset.seconds:e.timeOffset.type==="percentage"?e.timeOffset.pct/100*t:null}function B(e){return e.timeOffset.type==="time"?e.timeOffset.seconds:e.timeOffset.type==="percentage"?e.timeOffset.pct:0}function $(e){return {name:"vmap",setup(t){let s=false,n=null,i=null,u=t._setState;async function c(r){if(!(s||!r.adSource)){n&&n.pause(),b$1(r.trackingEvents.breakStart),t.emit("ad:breakStart",{breakId:r.breakId});try{let o=function(){s||(u("playing"),t.el.src=p,t.el.load(),t.el.currentTime=g,v||t.el.play().catch(()=>{t.el.muted=!0,t.el.play().catch(()=>{});}));};var m=o;let a$1;if(r.adSource.vastData)a$1=M(r.adSource.vastData);else if(r.adSource.vastUrl)a$1=await O(r.adSource.vastUrl,e.vastOptions);else return;if(s||a$1.ads.length===0)return;let l=R(a$1.ads);if(l.ads.length===0)return;r.adSource.allowMultipleAds===!1&&(l={type:"single",ads:[l.ads[0]],standalonePool:[]});let g=t.el.currentTime,v=t.el.paused,p=t.el.src;switch(l.type){case "single":{let{promise:h,abort:A}=Q({player:t,ad:l.ads[0].ad,linear:l.ads[0].linear,source:"vmap",adPlugins:e.adPlugins,onFinish:o});i=A,await h;break}case "pod":{await S(t,l.ads,{source:"vmap",adPlugins:e.adPlugins,onFinish:o,standalonePool:l.standalonePool});break}case "waterfall":{await T(t,l.ads,{source:"vmap",adPlugins:e.adPlugins,onFinish:o})||(a(a$1.errors,303),t.emit("ad:error",{error:new Error("All waterfall ads failed"),source:"vmap",vastErrorCode:303}),o());break}}}catch(a){if(!s){let l=a instanceof Error?a:new Error(String(a)),g=l.name==="AbortError"?301:100;b$1(r.trackingEvents.error),t.emit("ad:error",{error:l,source:"vmap",vastErrorCode:g});}}finally{b$1(r.trackingEvents.breakEnd),t.emit("ad:breakEnd",{breakId:r.breakId}),n&&n.resume();}}}async function f(){if(!s)try{let r=e.timeout??1e4,m=new AbortController,a=setTimeout(()=>m.abort(),r),l;try{let p=await fetch(e.url,{signal:m.signal});if(!p.ok)throw new Error(`VMAP fetch failed: ${p.status}`);l=await p.text();}finally{clearTimeout(a);}if(s)return;let g=b(l);if(g.adBreaks.length===0)return;let v=y(t,g.adBreaks,p=>c(p));n=v,v.start();}catch(r){if(s)return;t.emit("ad:error",{error:r instanceof Error?r:new Error(String(r)),source:"vmap"});}}function d({to:r}){r==="ready"&&!s&&(t.off("statechange",d),f());}return t.state==="ready"||t.state==="playing"||t.state==="paused"?f():t.on("statechange",d),()=>{s=true,t.off("statechange",d),n&&n.destroy(),i&&i();}}}}export{b as a,y as b,$ as c};
|
package/dist/dash/index.d.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
interface DashPluginOptions {
|
|
4
|
-
/** dash.js MediaPlayerSettingClass — passed to updateSettings(). */
|
|
5
|
-
dashConfig?: Record<string, unknown> | undefined;
|
|
6
|
-
/** Error recovery settings. `false` to disable. Defaults to enabled (3 retries, 3s delay, 2x backoff). */
|
|
7
|
-
recovery?: Partial<RecoveryConfig> | false | undefined;
|
|
8
|
-
}
|
|
1
|
+
import { f as Plugin } from '../types-BsEF8iWC.js';
|
|
2
|
+
import { D as DashPluginOptions } from '../types-DzY1cmXC.js';
|
|
9
3
|
|
|
10
4
|
/** Create a DASH streaming plugin for vide. */
|
|
11
5
|
declare function dash(options?: DashPluginOptions): Plugin;
|
|
12
6
|
|
|
13
|
-
export {
|
|
7
|
+
export { DashPluginOptions, dash };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as dash}from'../chunk-JRU2FKRB.mjs';import'../chunk-H3OXPFD3.mjs';import'../chunk-DWXOYV4E.mjs';
|
package/dist/dash/index.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export{k as dash};
|
|
1
|
+
export{a as dash}from'../chunk-JRU2FKRB.mjs';import'../chunk-H3OXPFD3.mjs';import'../chunk-DWXOYV4E.mjs';
|
package/dist/drm/index.d.ts
CHANGED
|
@@ -1,33 +1,6 @@
|
|
|
1
|
-
import { M as MediaElement,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
interface WidevineConfig {
|
|
5
|
-
licenseUrl: string;
|
|
6
|
-
headers?: Record<string, string> | undefined;
|
|
7
|
-
prepareLicenseRequest?: ((payload: Uint8Array) => Uint8Array | Promise<Uint8Array>) | undefined;
|
|
8
|
-
processLicenseResponse?: ((response: Uint8Array) => Uint8Array | Promise<Uint8Array>) | undefined;
|
|
9
|
-
}
|
|
10
|
-
/** FairPlay DRM configuration. */
|
|
11
|
-
interface FairPlayConfig {
|
|
12
|
-
licenseUrl: string;
|
|
13
|
-
certificateUrl: string;
|
|
14
|
-
headers?: Record<string, string> | undefined;
|
|
15
|
-
prepareLicenseRequest?: ((payload: Uint8Array) => Uint8Array | Promise<Uint8Array>) | undefined;
|
|
16
|
-
processLicenseResponse?: ((response: Uint8Array) => Uint8Array | Promise<Uint8Array>) | undefined;
|
|
17
|
-
}
|
|
18
|
-
/** Options for the DRM plugin. */
|
|
19
|
-
interface DrmPluginOptions {
|
|
20
|
-
widevine?: WidevineConfig | undefined;
|
|
21
|
-
fairplay?: FairPlayConfig | undefined;
|
|
22
|
-
}
|
|
23
|
-
/** Key system identifier string. */
|
|
24
|
-
type KeySystem = "com.widevine.alpha" | "com.apple.fps.1_0";
|
|
25
|
-
/** Resolved DRM configuration stored via setPluginData("drm"). */
|
|
26
|
-
interface ResolvedDrmConfig {
|
|
27
|
-
keySystem: KeySystem;
|
|
28
|
-
hlsConfig: Record<string, unknown>;
|
|
29
|
-
dashConfig: Record<string, unknown>;
|
|
30
|
-
}
|
|
1
|
+
import { M as MediaElement, f as Plugin } from '../types-BsEF8iWC.js';
|
|
2
|
+
import { K as KeySystem, W as WidevineConfig, F as FairPlayConfig, D as DrmPluginOptions } from '../types-C6XFF6w_.js';
|
|
3
|
+
export { R as ResolvedDrmConfig } from '../types-C6XFF6w_.js';
|
|
31
4
|
|
|
32
5
|
/**
|
|
33
6
|
* Detect the first supported key system from the given candidates.
|
|
@@ -64,4 +37,4 @@ declare function setupEme(videoElement: MediaElement, options: EmeOptions, onErr
|
|
|
64
37
|
/** Create a DRM plugin for vide. */
|
|
65
38
|
declare function drm(options: DrmPluginOptions): Plugin;
|
|
66
39
|
|
|
67
|
-
export {
|
|
40
|
+
export { DrmPluginOptions, FairPlayConfig, KeySystem, WidevineConfig, dashDrmConfig, detectKeySystem, drm, hlsDrmConfig, setupEme };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{b as dashDrmConfig,c as detectKeySystem,e as drm,a as hlsDrmConfig,d as setupEme}from'../chunk-VPH4JIJV.mjs';import'../chunk-DWXOYV4E.mjs';
|
package/dist/drm/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export{b as dashDrmConfig,c as detectKeySystem,e as drm,a as hlsDrmConfig,d as setupEme}from'../chunk-VPH4JIJV.mjs';import'../chunk-DWXOYV4E.mjs';
|
package/dist/hls/index.d.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
interface HlsPluginOptions {
|
|
4
|
-
/** Configuration passed directly to the hls.js constructor. */
|
|
5
|
-
hlsConfig?: Record<string, unknown> | undefined;
|
|
6
|
-
/** Error recovery settings. `false` to disable. Defaults to enabled (3 retries, 3s delay, 2x backoff). */
|
|
7
|
-
recovery?: Partial<RecoveryConfig> | false | undefined;
|
|
8
|
-
}
|
|
1
|
+
import { f as Plugin } from '../types-BsEF8iWC.js';
|
|
2
|
+
import { H as HlsPluginOptions } from '../types-CwjR99DL.js';
|
|
9
3
|
|
|
10
4
|
/** Create an HLS streaming plugin for vide. */
|
|
11
5
|
declare function hls(options?: HlsPluginOptions): Plugin;
|
|
12
6
|
|
|
13
|
-
export {
|
|
7
|
+
export { HlsPluginOptions, hls };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as hls}from'../chunk-NA4C7W64.mjs';import'../chunk-H3OXPFD3.mjs';import'../chunk-DWXOYV4E.mjs';
|
package/dist/hls/index.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export{w as hls};
|
|
1
|
+
export{a as hls}from'../chunk-NA4C7W64.mjs';import'../chunk-H3OXPFD3.mjs';import'../chunk-DWXOYV4E.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { M as MediaElement, P as Player } from './types-
|
|
2
|
-
export { A as AdQuartile, E as EventBus,
|
|
1
|
+
import { M as MediaElement, P as Player } from './types-BsEF8iWC.js';
|
|
2
|
+
export { A as AdMeta, a as AdQuartile, E as EventBus, b as EventHandler, c as PlayerEvent, d as PlayerEventMap, e as PlayerState, f as Plugin, Q as QualityLevel, R as RecoveryConfig, S as SeekableRange, g as SourceHandler, V as VideCue, h as VideTextTrack } from './types-BsEF8iWC.js';
|
|
3
3
|
|
|
4
4
|
/** Create a vide player instance wrapping the given media element. */
|
|
5
5
|
declare function createPlayer(el: MediaElement): Player;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{a as createPlayer}from'./chunk-6DWWYSH4.mjs';export{e as ERR_DASH_IMPORT,f as ERR_DASH_PLAYBACK,j as ERR_DRM_CERTIFICATE,h as ERR_DRM_DETECTION,i as ERR_DRM_LICENSE,g as ERR_DRM_UNSUPPORTED,d as ERR_HLS_FATAL,c as ERR_HLS_IMPORT,b as ERR_HLS_UNSUPPORTED,a as ERR_MEDIA}from'./chunk-DWXOYV4E.mjs';
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{e as ERR_DASH_IMPORT,f as ERR_DASH_PLAYBACK,j as ERR_DRM_CERTIFICATE,h as ERR_DRM_DETECTION,i as ERR_DRM_LICENSE,g as ERR_DRM_UNSUPPORTED,d as ERR_HLS_FATAL,c as ERR_HLS_IMPORT,b as ERR_HLS_UNSUPPORTED,a as ERR_MEDIA}from'./chunk-DWXOYV4E.mjs';
|
|
1
|
+
export{a as createPlayer}from'./chunk-6DWWYSH4.mjs';export{e as ERR_DASH_IMPORT,f as ERR_DASH_PLAYBACK,j as ERR_DRM_CERTIFICATE,h as ERR_DRM_DETECTION,i as ERR_DRM_LICENSE,g as ERR_DRM_UNSUPPORTED,d as ERR_HLS_FATAL,c as ERR_HLS_IMPORT,b as ERR_HLS_UNSUPPORTED,a as ERR_MEDIA}from'./chunk-DWXOYV4E.mjs';
|
package/dist/omid/index.d.ts
CHANGED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
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 u(){n&&(n=false,t.error("Ad playback error"),t.finish());}function c(){n&&(n=false,t.finish());}function l(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",u),e.on("destroy",c),e.on("ad:volumeChange",l),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",u),e.off("destroy",c),e.off("ad:volumeChange",l),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 b(){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=b();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 u=false,c=false,l=null;a.registerSessionObserver(m=>{m.type==="sessionStart"&&(u=true,l&&(l(true),l=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,y=new e.VastProperties(f,O,S,v);return {get adEvents(){return p},get mediaEvents(){return i},get vastProperties(){return y},get started(){return u},waitForStart(m){return u?Promise.resolve(true):new Promise(g=>{l=g,setTimeout(()=>{u||(l=null,g(false));},m);})},finish(){c||(c=true,a.finish());},error(m){a.error("video",m);}}}var A="https://pagead2.googlesyndication.com/omsdk/releases/live/omweb-v1.js";function j(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,u=e.serviceScriptUrl??A,c={...e,serviceScriptUrl:u,verifications:n,skipOffset:r.creatives[0]?.linear?.skipOffset},l=h(u,e.sessionClientUrl,a).catch(i=>i);async function p(){if(!o)try{let i=await l;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);}}}}
|
|
2
|
+
export{j as omid};
|