@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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@videts/vide",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.9.3",
|
|
4
|
+
"description": "Modular, headless video player. Ads, streaming, DRM — use only what you need. Core under 3KB gzip.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"unpkg": "dist/vide.global.js",
|
|
7
7
|
"jsdelivr": "dist/vide.global.js",
|
|
@@ -46,14 +46,28 @@
|
|
|
46
46
|
"types": "./dist/ui/index.d.ts",
|
|
47
47
|
"import": "./dist/ui/index.mjs"
|
|
48
48
|
},
|
|
49
|
-
"./ui/theme.css": "./dist/ui/theme.css"
|
|
49
|
+
"./ui/theme.css": "./dist/ui/theme.css",
|
|
50
|
+
"./react": {
|
|
51
|
+
"types": "./dist/react/index.d.ts",
|
|
52
|
+
"import": "./dist/react/index.mjs"
|
|
53
|
+
},
|
|
54
|
+
"./vue": {
|
|
55
|
+
"types": "./dist/vue/index.d.ts",
|
|
56
|
+
"import": "./dist/vue/index.mjs"
|
|
57
|
+
},
|
|
58
|
+
"./svelte": {
|
|
59
|
+
"types": "./dist/svelte/index.d.ts",
|
|
60
|
+
"svelte": "./dist/svelte/index.js",
|
|
61
|
+
"default": "./dist/svelte/index.js"
|
|
62
|
+
}
|
|
50
63
|
},
|
|
51
64
|
"files": [
|
|
52
65
|
"dist"
|
|
53
66
|
],
|
|
54
67
|
"sideEffects": false,
|
|
55
68
|
"scripts": {
|
|
56
|
-
"build": "tsup",
|
|
69
|
+
"build": "tsup && pnpm build:svelte",
|
|
70
|
+
"build:svelte": "svelte-package -i src/svelte -o dist/svelte && find src -name '*.d.ts' -o -name '*.d.ts.map' | xargs rm -f",
|
|
57
71
|
"test": "vitest run",
|
|
58
72
|
"test:watch": "vitest",
|
|
59
73
|
"test:e2e": "playwright test",
|
|
@@ -69,19 +83,34 @@
|
|
|
69
83
|
"devDependencies": {
|
|
70
84
|
"@biomejs/biome": "^1.9.0",
|
|
71
85
|
"@playwright/test": "^1.58.2",
|
|
86
|
+
"@testing-library/react": "^16.0.0",
|
|
87
|
+
"@types/react": "^19.0.0",
|
|
88
|
+
"@types/react-dom": "^19.0.0",
|
|
89
|
+
"@sveltejs/package": "^2.0.0",
|
|
90
|
+
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
|
91
|
+
"@testing-library/svelte": "^5.0.0",
|
|
92
|
+
"@vue/test-utils": "^2.4.6",
|
|
72
93
|
"dashjs": "^4.7.0",
|
|
73
94
|
"hls.js": "^1.6.15",
|
|
74
95
|
"jsdom": "^25.0.0",
|
|
96
|
+
"react": "^19.0.0",
|
|
97
|
+
"react-dom": "^19.0.0",
|
|
75
98
|
"tsup": "^8.0.0",
|
|
76
99
|
"typedoc": "^0.28.17",
|
|
77
100
|
"typedoc-plugin-markdown": "^4.10.0",
|
|
78
101
|
"typescript": "^5.6.0",
|
|
79
102
|
"vitepress": "^1.6.4",
|
|
80
|
-
"vitest": "^2.0.0"
|
|
103
|
+
"vitest": "^2.0.0",
|
|
104
|
+
"svelte": "^5.0.0",
|
|
105
|
+
"vue": "^3.5.29"
|
|
81
106
|
},
|
|
82
107
|
"peerDependencies": {
|
|
83
108
|
"dashjs": "^4.0.0",
|
|
84
|
-
"hls.js": "^1.0.0"
|
|
109
|
+
"hls.js": "^1.0.0",
|
|
110
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
111
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
112
|
+
"svelte": "^5.0.0",
|
|
113
|
+
"vue": "^3.3.0"
|
|
85
114
|
},
|
|
86
115
|
"peerDependenciesMeta": {
|
|
87
116
|
"dashjs": {
|
|
@@ -89,6 +118,18 @@
|
|
|
89
118
|
},
|
|
90
119
|
"hls.js": {
|
|
91
120
|
"optional": true
|
|
121
|
+
},
|
|
122
|
+
"react": {
|
|
123
|
+
"optional": true
|
|
124
|
+
},
|
|
125
|
+
"react-dom": {
|
|
126
|
+
"optional": true
|
|
127
|
+
},
|
|
128
|
+
"svelte": {
|
|
129
|
+
"optional": true
|
|
130
|
+
},
|
|
131
|
+
"vue": {
|
|
132
|
+
"optional": true
|
|
92
133
|
}
|
|
93
134
|
},
|
|
94
135
|
"repository": {
|
package/dist/chunk-726XNUGZ.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function C(e){let r=new DOMParser().parseFromString(e,"text/xml");if(r.querySelector("parsererror"))return {version:"",ads:[],errors:["VAST XML parse error"]};let n=r.documentElement;if(n.tagName!=="VAST")return {version:"",ads:[],errors:["Document is not a VAST response"]};let s=n.getAttribute("version")??"",o=A(n,"Error"),a=g(n,"Ad"),c=[];for(let l of a){let u=S(l);u&&c.push(u);}return {version:s,ads:c,errors:o}}function S(e){let t=T(e,"InLine");if(!t)return null;let r=e.getAttribute("id")??"",i=e.getAttribute("sequence"),n=m(i,void 0),s=v(t,"AdSystem"),o=v(t,"AdTitle"),a=k(t,"Impression"),c=A(t,"Error"),l=t.querySelector("Creatives"),u=[];if(l){let d=g(l,"Creative");for(let E of d)u.push(N(E));}let f=x(t),p=F(t);return {id:r,sequence:n,adSystem:s,adTitle:o,impressions:a,creatives:u,errors:c,verifications:f,categories:p}}function x(e){let t=e.querySelector("AdVerifications");if(!t)return;let r=[],i=g(t,"Verification");for(let n of i){let s=n.getAttribute("vendor")??"",o="",a,c=n.querySelector("JavaScriptResource");if(c)o=(c.textContent??"").trim(),a=c.getAttribute("apiFramework")??void 0;else {let f=n.querySelector("ExecutableResource");f&&(o=(f.textContent??"").trim(),a=f.getAttribute("apiFramework")??void 0);}let l=n.querySelector("VerificationParameters"),u=l&&(l.textContent??"").trim()||void 0;r.push({vendor:s,resourceUrl:o,apiFramework:a,parameters:u});}return r.length>0?r:void 0}function F(e){let t=g(e,"Category");if(t.length===0)return;let r=[];for(let i of t){let n=i.getAttribute("authority")??"",s=(i.textContent??"").trim();s&&r.push({authority:n,value:s});}return r.length>0?r:void 0}function N(e){let t=e.getAttribute("id")??void 0,r=e.getAttribute("sequence"),i=m(r,void 0),n=e.querySelector("Linear"),s=n?w(n):null;return {id:t,sequence:i,linear:s}}function w(e){let t=v(e,"Duration"),r=b(t),i=e.getAttribute("skipoffset"),n=i!==null?y(i,r):void 0,s=q(e),o=I(e),a=V(e),c=e.querySelector("VideoClicks"),l=c&&v(c,"ClickThrough")||void 0,u=c?k(c,"ClickTracking"):[];return {duration:r,skipOffset:n,mediaFiles:s,interactiveCreativeFiles:o,trackingEvents:a,clickThrough:l,clickTracking:u}}function q(e){let t=e.querySelector("MediaFiles");if(!t)return [];let r=[],i=g(t,"MediaFile");for(let n of i){let s=(n.textContent??"").trim();if(!s)continue;let o=n.getAttribute("delivery");r.push({url:s,mimeType:n.getAttribute("type")??"",width:m(n.getAttribute("width"),0),height:m(n.getAttribute("height"),0),bitrate:m(n.getAttribute("bitrate"),void 0),delivery:o==="streaming"?"streaming":"progressive"});}return r}function I(e){let t=e.querySelector("MediaFiles");if(!t)return [];let r=[],i=g(t,"InteractiveCreativeFile");for(let n of i){let s=(n.textContent??"").trim();if(!s)continue;let o=n.getAttribute("apiFramework")??"",a=n.getAttribute("variableDuration"),c=a==="true"?true:a==="false"?false:void 0;r.push({url:s,apiFramework:o,variableDuration:c});}return r}var M=new Set(["start","firstQuartile","midpoint","thirdQuartile","complete","pause","resume","skip","loaded","mute","unmute","rewind","playerExpand","playerCollapse","closeLinear","notUsed","otherAdInteraction","creativeView"]);function V(e){let t=h(),r=e.querySelector("TrackingEvents");if(!r)return t;let i=r.querySelectorAll("Tracking");for(let n of i){let s=n.getAttribute("event"),o=(n.textContent??"").trim();if(!(!s||!o))if(s==="progress"){let a=n.getAttribute("offset"),c=a?y(a,0):0;t.progress.push({offset:c,url:o});}else M.has(s)&&t[s].push(o);}return t}function b(e){if(!e)return 0;let t=e.split(":");if(t.length!==3)return 0;let r=Number.parseInt(t[0],10),i=Number.parseInt(t[1],10),n=Number.parseFloat(t[2]);return Number.isNaN(r)||Number.isNaN(i)||Number.isNaN(n)?0:r*3600+i*60+n}function y(e,t){if(e.endsWith("%")){let r=Number.parseFloat(e);return Number.isNaN(r)?0:r/100*t}return b(e)}function g(e,t){let r=[];for(let i=0;i<e.children.length;i++)e.children[i].tagName===t&&r.push(e.children[i]);return r}function T(e,t){for(let r=0;r<e.children.length;r++)if(e.children[r].tagName===t)return e.children[r];return null}function A(e,t){let r=[];for(let i of g(e,t)){let n=(i.textContent??"").trim();n&&r.push(n);}return r}function v(e,t){let r=e.querySelector(t);return r?(r.textContent??"").trim():""}function k(e,t){let r=e.querySelectorAll(t),i=[];for(let n of r){let s=(n.textContent??"").trim();s&&i.push(s);}return i}async function D(e,t){let r=t?.timeout??5e3,i=new AbortController,n=setTimeout(()=>i.abort(),r);try{let s=await fetch(e,{signal:i.signal});if(!s.ok)throw new Error(`VAST fetch failed: ${s.status}`);return await s.text()}finally{clearTimeout(n);}}async function U(e,t){let r=t?.timeout??1e4,i=t?.maxDepth??5,n=Date.now()+r,s=new Set,o=[],a=e;for(let c=0;c<=i;c++){let l=n-Date.now();if(l<=0)return {version:"",ads:[],errors:["VAST resolve timeout"]};if(s.has(a))return {version:"",ads:[],errors:["VAST circular reference detected"]};s.add(a);let u;try{u=await D(a,{timeout:l});}catch(d){return {version:"",ads:[],errors:[d instanceof Error?d.message:String(d)]}}let f=C(u);if(f.ads.length>0)return {version:f.version,ads:f.ads.map(d=>O(d,o)),errors:f.errors};let p=R(u);if(!p)return f;o.push(p),a=p.adTagUri;}return {version:"",ads:[],errors:["VAST wrapper depth limit exceeded"]}}function R(e){let i=new DOMParser().parseFromString(e,"text/xml").documentElement;if(i.tagName!=="VAST")return null;for(let n of g(i,"Ad")){let s=T(n,"Wrapper");if(!s)continue;let o=v(s,"VASTAdTagURI").trim();if(!o)continue;let a=A(s,"Error"),c=k(s,"Impression"),l=h(),u=[],f=s.querySelector("Creatives");if(f)for(let p of g(f,"Creative")){let d=p.querySelector("Linear");if(d){l=V(d);let E=d.querySelector("VideoClicks");E&&(u=k(E,"ClickTracking"));break}}return {adTagUri:o,errors:a,impressions:c,trackingEvents:l,clickTracking:u}}return null}function h(){return {start:[],firstQuartile:[],midpoint:[],thirdQuartile:[],complete:[],pause:[],resume:[],skip:[],loaded:[],mute:[],unmute:[],rewind:[],playerExpand:[],playerCollapse:[],closeLinear:[],notUsed:[],otherAdInteraction:[],creativeView:[],progress:[]}}function L(e,t){let r=h();for(let i of Object.keys(r)){if(i==="progress")continue;let n=r[i];for(let s of e)n.push(...s[i]);n.push(...t[i]);}for(let i of e)r.progress.push(...i.progress);return r.progress.push(...t.progress),r}function O(e,t){if(t.length===0)return e;let r=[...t.flatMap(s=>s.errors),...e.errors],i=[...t.flatMap(s=>s.impressions),...e.impressions],n=e.creatives.map(s=>s.linear?{...s,linear:{...s.linear,trackingEvents:L(t.map(o=>o.trackingEvents),s.linear.trackingEvents),clickTracking:[...t.flatMap(o=>o.clickTracking),...s.linear.clickTracking]}}:s);return {...e,errors:r,impressions:i,creatives:n}}function m(e,t){if(e==null)return t;let r=Number.parseInt(e,10);return Number.isNaN(r)?t:r}export{C as a,D as b,U as c};
|
package/dist/chunk-G4Q7R3SH.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function c(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 s(r,e){let t=new Set,o=["start","firstQuartile","midpoint","thirdQuartile","complete"];return a=>{let n=f(a,r);if(!n||t.has(n))return;let l=o.indexOf(n);for(let i=0;i<=l;i++){let u=o[i];t.has(u)||(t.add(u),e(u));}}}export{c as a,f as b,s as c};
|
package/dist/types-CAJmacV6.d.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { P as Player } from './types-vxIcXgJz.js';
|
|
2
|
-
|
|
3
|
-
interface VastResponse {
|
|
4
|
-
version: string;
|
|
5
|
-
ads: VastAd[];
|
|
6
|
-
errors: string[];
|
|
7
|
-
}
|
|
8
|
-
interface VastAd {
|
|
9
|
-
id: string;
|
|
10
|
-
sequence?: number | undefined;
|
|
11
|
-
adSystem: string;
|
|
12
|
-
adTitle: string;
|
|
13
|
-
impressions: string[];
|
|
14
|
-
creatives: VastCreative[];
|
|
15
|
-
errors: string[];
|
|
16
|
-
verifications?: AdVerification[] | undefined;
|
|
17
|
-
categories?: AdCategory[] | undefined;
|
|
18
|
-
}
|
|
19
|
-
interface AdVerification {
|
|
20
|
-
vendor: string;
|
|
21
|
-
resourceUrl: string;
|
|
22
|
-
apiFramework?: string | undefined;
|
|
23
|
-
parameters?: string | undefined;
|
|
24
|
-
}
|
|
25
|
-
interface AdCategory {
|
|
26
|
-
authority: string;
|
|
27
|
-
value: string;
|
|
28
|
-
}
|
|
29
|
-
interface VastCreative {
|
|
30
|
-
id?: string | undefined;
|
|
31
|
-
sequence?: number | undefined;
|
|
32
|
-
linear: VastLinear | null;
|
|
33
|
-
}
|
|
34
|
-
interface VastLinear {
|
|
35
|
-
duration: number;
|
|
36
|
-
skipOffset?: number | undefined;
|
|
37
|
-
mediaFiles: VastMediaFile[];
|
|
38
|
-
interactiveCreativeFiles: InteractiveCreativeFile[];
|
|
39
|
-
trackingEvents: VastTrackingEvents;
|
|
40
|
-
clickThrough?: string | undefined;
|
|
41
|
-
clickTracking: string[];
|
|
42
|
-
}
|
|
43
|
-
interface VastMediaFile {
|
|
44
|
-
url: string;
|
|
45
|
-
mimeType: string;
|
|
46
|
-
width: number;
|
|
47
|
-
height: number;
|
|
48
|
-
bitrate?: number | undefined;
|
|
49
|
-
delivery: "progressive" | "streaming";
|
|
50
|
-
}
|
|
51
|
-
interface InteractiveCreativeFile {
|
|
52
|
-
url: string;
|
|
53
|
-
apiFramework: string;
|
|
54
|
-
variableDuration?: boolean | undefined;
|
|
55
|
-
}
|
|
56
|
-
interface VastProgressEvent {
|
|
57
|
-
offset: number;
|
|
58
|
-
url: string;
|
|
59
|
-
}
|
|
60
|
-
interface VastTrackingEvents {
|
|
61
|
-
start: string[];
|
|
62
|
-
firstQuartile: string[];
|
|
63
|
-
midpoint: string[];
|
|
64
|
-
thirdQuartile: string[];
|
|
65
|
-
complete: string[];
|
|
66
|
-
pause: string[];
|
|
67
|
-
resume: string[];
|
|
68
|
-
skip: string[];
|
|
69
|
-
loaded: string[];
|
|
70
|
-
mute: string[];
|
|
71
|
-
unmute: string[];
|
|
72
|
-
rewind: string[];
|
|
73
|
-
playerExpand: string[];
|
|
74
|
-
playerCollapse: string[];
|
|
75
|
-
closeLinear: string[];
|
|
76
|
-
notUsed: string[];
|
|
77
|
-
otherAdInteraction: string[];
|
|
78
|
-
creativeView: string[];
|
|
79
|
-
progress: VastProgressEvent[];
|
|
80
|
-
}
|
|
81
|
-
/** Plugin scoped to a single ad. Created per-ad, cleaned up on ad end. */
|
|
82
|
-
interface AdPlugin {
|
|
83
|
-
name: string;
|
|
84
|
-
setup(player: Player, ad: VastAd): (() => void) | undefined;
|
|
85
|
-
}
|
|
86
|
-
interface VastPluginOptions {
|
|
87
|
-
tagUrl: string;
|
|
88
|
-
timeout?: number | undefined;
|
|
89
|
-
allowSkip?: boolean | undefined;
|
|
90
|
-
/** Create per-ad plugins. Called once per ad with the parsed VastAd. */
|
|
91
|
-
adPlugins?: ((ad: VastAd) => AdPlugin[]) | undefined;
|
|
92
|
-
}
|
|
93
|
-
interface ResolveOptions {
|
|
94
|
-
timeout?: number | undefined;
|
|
95
|
-
maxDepth?: number | undefined;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export type { AdCategory as A, ResolveOptions as R, VastResponse as V, VastPluginOptions as a, AdPlugin as b, AdVerification as c, VastProgressEvent as d, VastAd as e };
|