stormcloud-video-player 0.8.4 → 0.8.6

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.
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { StormcloudVideoPlayer } from '../player/StormcloudVideoPlayer.cjs';
3
- import { S as StormcloudVideoPlayerConfig } from '../types-BmF_60m2.cjs';
3
+ import { S as StormcloudVideoPlayerConfig } from '../types-CUKMIqHL.cjs';
4
4
 
5
5
  type StormcloudVideoPlayerProps = Omit<StormcloudVideoPlayerConfig, "videoElement"> & React.VideoHTMLAttributes<HTMLVideoElement> & {
6
6
  onReady?: (player: StormcloudVideoPlayer) => void;
@@ -1,4 +1,4 @@
1
- import { C as ClientInfo, a as AdDetectInfo, P as PlayerAnalyticsContext, b as AdImpressionInfo, c as AdLoadedInfo } from '../types-BmF_60m2.cjs';
1
+ import { C as ClientInfo, a as AdDetectInfo, P as PlayerAnalyticsContext, b as AdImpressionInfo, c as AdLoadedInfo } from '../types-CUKMIqHL.cjs';
2
2
 
3
3
  declare function getClientInfo(): ClientInfo;
4
4
  declare function getBrowserID(clientInfo: ClientInfo): Promise<string>;
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ function _type_of(obj) {
3
+ "@swc/helpers - typeof";
4
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
5
+ }
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __getOwnPropNames = Object.getOwnPropertyNames;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = function __export(target, all) {
11
+ for(var name in all)__defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ };
16
+ var __copyProps = function __copyProps(to, from, except, desc) {
17
+ if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
18
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
19
+ try {
20
+ var _loop = function() {
21
+ var key = _step.value;
22
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
23
+ get: function get() {
24
+ return from[key];
25
+ },
26
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
27
+ });
28
+ };
29
+ for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
30
+ } catch (err) {
31
+ _didIteratorError = true;
32
+ _iteratorError = err;
33
+ } finally{
34
+ try {
35
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
36
+ _iterator.return();
37
+ }
38
+ } finally{
39
+ if (_didIteratorError) {
40
+ throw _iteratorError;
41
+ }
42
+ }
43
+ }
44
+ }
45
+ return to;
46
+ };
47
+ var __toCommonJS = function __toCommonJS(mod) {
48
+ return __copyProps(__defProp({}, "__esModule", {
49
+ value: true
50
+ }), mod);
51
+ };
52
+ // src/utils/vastMacros.ts
53
+ var vastMacros_exports = {};
54
+ __export(vastMacros_exports, {
55
+ applyVastMacros: function applyVastMacros1() {
56
+ return applyVastMacros;
57
+ },
58
+ fetchConsentSignals: function fetchConsentSignals1() {
59
+ return fetchConsentSignals;
60
+ },
61
+ generateCorrelator: function generateCorrelator1() {
62
+ return generateCorrelator;
63
+ }
64
+ });
65
+ module.exports = __toCommonJS(vastMacros_exports);
66
+ function generateCorrelator() {
67
+ if (typeof crypto !== "undefined" && crypto.getRandomValues) {
68
+ try {
69
+ var _buf_, _buf_1;
70
+ var buf = new Uint32Array(2);
71
+ crypto.getRandomValues(buf);
72
+ var value = ((_buf_ = buf[0]) !== null && _buf_ !== void 0 ? _buf_ : 0) * 2097152 + (((_buf_1 = buf[1]) !== null && _buf_1 !== void 0 ? _buf_1 : 0) & 2097151);
73
+ if (value > 0) {
74
+ return String(value);
75
+ }
76
+ } catch (unused) {}
77
+ }
78
+ return String(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER) + 1);
79
+ }
80
+ var UNEXPANDED_MACRO_PATTERN = /^(\[[^\]]*\]|\{[^}]*\}|%%[^%]*%%)$/;
81
+ function applyVastMacros(baseUrl, ctx) {
82
+ var url;
83
+ try {
84
+ url = new URL(baseUrl);
85
+ } catch (unused) {
86
+ return replaceCorrelatorFallback(baseUrl, ctx.correlator);
87
+ }
88
+ var params = url.searchParams;
89
+ params.set("correlator", ctx.correlator);
90
+ params.set("scor", ctx.streamCorrelator);
91
+ if (ctx.pod != null) {
92
+ params.set("pod", String(ctx.pod));
93
+ }
94
+ if (ctx.adPosition != null) {
95
+ params.set("ppos", String(ctx.adPosition));
96
+ }
97
+ if (ctx.pageUrl) {
98
+ params.set("url", ctx.pageUrl);
99
+ params.set("description_url", ctx.pageUrl);
100
+ }
101
+ if (ctx.adWillPlayMuted != null) {
102
+ params.set("vpmute", ctx.adWillPlayMuted ? "1" : "0");
103
+ }
104
+ if (ctx.adWillAutoPlay != null) {
105
+ params.set("vpa", ctx.adWillAutoPlay ? "auto" : "click");
106
+ }
107
+ if (ctx.deviceId && ctx.deviceIdType) {
108
+ params.set("rdid", ctx.deviceId);
109
+ params.set("idtype", ctx.deviceIdType);
110
+ params.set("is_lat", ctx.limitAdTracking ? "1" : "0");
111
+ } else {
112
+ params.delete("rdid");
113
+ params.delete("idtype");
114
+ params.delete("is_lat");
115
+ }
116
+ var consent = ctx.consent;
117
+ if ((consent === null || consent === void 0 ? void 0 : consent.gdpr) != null) {
118
+ params.set("gdpr", consent.gdpr);
119
+ }
120
+ if ((consent === null || consent === void 0 ? void 0 : consent.gdprConsent) != null) {
121
+ params.set("gdpr_consent", consent.gdprConsent);
122
+ }
123
+ if ((consent === null || consent === void 0 ? void 0 : consent.usPrivacy) != null) {
124
+ params.set("us_privacy", consent.usPrivacy);
125
+ }
126
+ if (ctx.adTest) {
127
+ params.set("adtest", "on");
128
+ }
129
+ var staleKeys = [];
130
+ params.forEach(function(value, key) {
131
+ if (UNEXPANDED_MACRO_PATTERN.test(value)) {
132
+ staleKeys.push(key);
133
+ }
134
+ });
135
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
136
+ try {
137
+ for(var _iterator = staleKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
138
+ var key = _step.value;
139
+ params.delete(key);
140
+ }
141
+ } catch (err) {
142
+ _didIteratorError = true;
143
+ _iteratorError = err;
144
+ } finally{
145
+ try {
146
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
147
+ _iterator.return();
148
+ }
149
+ } finally{
150
+ if (_didIteratorError) {
151
+ throw _iteratorError;
152
+ }
153
+ }
154
+ }
155
+ return url.toString();
156
+ }
157
+ function replaceCorrelatorFallback(baseUrl, correlator) {
158
+ var correlatorRegex = /([?&])correlator=([^&]*)/;
159
+ if (correlatorRegex.test(baseUrl)) {
160
+ return baseUrl.replace(correlatorRegex, "$1correlator=".concat(correlator));
161
+ }
162
+ var sep = baseUrl.includes("?") ? "&" : "?";
163
+ return "".concat(baseUrl).concat(sep, "correlator=").concat(correlator);
164
+ }
165
+ function fetchConsentSignals() {
166
+ var timeoutMs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 1500;
167
+ var signals = {};
168
+ if (typeof window === "undefined") {
169
+ return Promise.resolve(signals);
170
+ }
171
+ var tasks = [];
172
+ var tcfApi = window.__tcfapi;
173
+ if (typeof tcfApi === "function") {
174
+ tasks.push(new Promise(function(resolve) {
175
+ var settled = false;
176
+ try {
177
+ tcfApi("addEventListener", 2, function(tcData, success) {
178
+ if (settled) return;
179
+ if (success && tcData && (tcData.eventStatus === "tcloaded" || tcData.eventStatus === "useractioncomplete")) {
180
+ settled = true;
181
+ signals.gdpr = tcData.gdprApplies ? "1" : "0";
182
+ if (typeof tcData.tcString === "string" && tcData.tcString) {
183
+ signals.gdprConsent = tcData.tcString;
184
+ }
185
+ try {
186
+ tcfApi("removeEventListener", 2, function() {}, tcData.listenerId);
187
+ } catch (unused) {}
188
+ resolve();
189
+ }
190
+ });
191
+ } catch (unused) {
192
+ resolve();
193
+ }
194
+ setTimeout(function() {
195
+ if (!settled) {
196
+ settled = true;
197
+ resolve();
198
+ }
199
+ }, timeoutMs);
200
+ }));
201
+ }
202
+ var uspApi = window.__uspapi;
203
+ if (typeof uspApi === "function") {
204
+ tasks.push(new Promise(function(resolve) {
205
+ try {
206
+ uspApi("getUSPData", 1, function(data, success) {
207
+ if (success && typeof (data === null || data === void 0 ? void 0 : data.uspString) === "string" && data.uspString) {
208
+ signals.usPrivacy = data.uspString;
209
+ }
210
+ resolve();
211
+ });
212
+ } catch (unused) {
213
+ resolve();
214
+ }
215
+ setTimeout(resolve, timeoutMs);
216
+ }));
217
+ }
218
+ if (tasks.length === 0) {
219
+ return Promise.resolve(signals);
220
+ }
221
+ return Promise.all(tasks).then(function() {
222
+ return signals;
223
+ });
224
+ }
225
+ // Annotate the CommonJS export names for ESM import in node:
226
+ 0 && (module.exports = {
227
+ applyVastMacros: applyVastMacros,
228
+ fetchConsentSignals: fetchConsentSignals,
229
+ generateCorrelator: generateCorrelator
230
+ });
231
+ //# sourceMappingURL=vastMacros.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/ubuntu24-new/Dev/stormcloud-vp/lib/utils/vastMacros.cjs","../../src/utils/vastMacros.ts"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","__getOwnPropNames","getOwnPropertyDescriptor","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","vastMacros_exports","applyVastMacros","fetchConsentSignals","generateCorrelator","module","exports","crypto","getRandomValues","buf","Uint32Array","String","Math","floor","random","Number","MAX_SAFE_INTEGER","UNEXPANDED_MACRO_PATTERN","baseUrl","ctx","url","URL","replaceCorrelatorFallback","correlator","params","searchParams","set","streamCorrelator","pod","adPosition","pageUrl","adWillPlayMuted","adWillAutoPlay","deviceId","deviceIdType","limitAdTracking","delete","consent","gdpr","gdprConsent","usPrivacy","adTest","staleKeys","forEach","test","push","toString","correlatorRegex","replace","sep","includes","signals","window","Promise","resolve","tasks","tcfApi","__tcfapi","settled","tcData","success"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/utils/vastMacros.ts\nvar vastMacros_exports = {};\n__export(vastMacros_exports, {\n applyVastMacros: () => applyVastMacros,\n fetchConsentSignals: () => fetchConsentSignals,\n generateCorrelator: () => generateCorrelator\n});\nmodule.exports = __toCommonJS(vastMacros_exports);\nfunction generateCorrelator() {\n if (typeof crypto !== \"undefined\" && crypto.getRandomValues) {\n try {\n const buf = new Uint32Array(2);\n crypto.getRandomValues(buf);\n const value = (buf[0] ?? 0) * 2097152 + ((buf[1] ?? 0) & 2097151);\n if (value > 0) {\n return String(value);\n }\n } catch {\n }\n }\n return String(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER) + 1);\n}\nvar UNEXPANDED_MACRO_PATTERN = /^(\\[[^\\]]*\\]|\\{[^}]*\\}|%%[^%]*%%)$/;\nfunction applyVastMacros(baseUrl, ctx) {\n let url;\n try {\n url = new URL(baseUrl);\n } catch {\n return replaceCorrelatorFallback(baseUrl, ctx.correlator);\n }\n const params = url.searchParams;\n params.set(\"correlator\", ctx.correlator);\n params.set(\"scor\", ctx.streamCorrelator);\n if (ctx.pod != null) {\n params.set(\"pod\", String(ctx.pod));\n }\n if (ctx.adPosition != null) {\n params.set(\"ppos\", String(ctx.adPosition));\n }\n if (ctx.pageUrl) {\n params.set(\"url\", ctx.pageUrl);\n params.set(\"description_url\", ctx.pageUrl);\n }\n if (ctx.adWillPlayMuted != null) {\n params.set(\"vpmute\", ctx.adWillPlayMuted ? \"1\" : \"0\");\n }\n if (ctx.adWillAutoPlay != null) {\n params.set(\"vpa\", ctx.adWillAutoPlay ? \"auto\" : \"click\");\n }\n if (ctx.deviceId && ctx.deviceIdType) {\n params.set(\"rdid\", ctx.deviceId);\n params.set(\"idtype\", ctx.deviceIdType);\n params.set(\"is_lat\", ctx.limitAdTracking ? \"1\" : \"0\");\n } else {\n params.delete(\"rdid\");\n params.delete(\"idtype\");\n params.delete(\"is_lat\");\n }\n const consent = ctx.consent;\n if (consent?.gdpr != null) {\n params.set(\"gdpr\", consent.gdpr);\n }\n if (consent?.gdprConsent != null) {\n params.set(\"gdpr_consent\", consent.gdprConsent);\n }\n if (consent?.usPrivacy != null) {\n params.set(\"us_privacy\", consent.usPrivacy);\n }\n if (ctx.adTest) {\n params.set(\"adtest\", \"on\");\n }\n const staleKeys = [];\n params.forEach((value, key) => {\n if (UNEXPANDED_MACRO_PATTERN.test(value)) {\n staleKeys.push(key);\n }\n });\n for (const key of staleKeys) {\n params.delete(key);\n }\n return url.toString();\n}\nfunction replaceCorrelatorFallback(baseUrl, correlator) {\n const correlatorRegex = /([?&])correlator=([^&]*)/;\n if (correlatorRegex.test(baseUrl)) {\n return baseUrl.replace(correlatorRegex, `$1correlator=${correlator}`);\n }\n const sep = baseUrl.includes(\"?\") ? \"&\" : \"?\";\n return `${baseUrl}${sep}correlator=${correlator}`;\n}\nfunction fetchConsentSignals(timeoutMs = 1500) {\n const signals = {};\n if (typeof window === \"undefined\") {\n return Promise.resolve(signals);\n }\n const tasks = [];\n const tcfApi = window.__tcfapi;\n if (typeof tcfApi === \"function\") {\n tasks.push(\n new Promise((resolve) => {\n let settled = false;\n try {\n tcfApi(\"addEventListener\", 2, (tcData, success) => {\n if (settled) return;\n if (success && tcData && (tcData.eventStatus === \"tcloaded\" || tcData.eventStatus === \"useractioncomplete\")) {\n settled = true;\n signals.gdpr = tcData.gdprApplies ? \"1\" : \"0\";\n if (typeof tcData.tcString === \"string\" && tcData.tcString) {\n signals.gdprConsent = tcData.tcString;\n }\n try {\n tcfApi(\"removeEventListener\", 2, () => {\n }, tcData.listenerId);\n } catch {\n }\n resolve();\n }\n });\n } catch {\n resolve();\n }\n setTimeout(() => {\n if (!settled) {\n settled = true;\n resolve();\n }\n }, timeoutMs);\n })\n );\n }\n const uspApi = window.__uspapi;\n if (typeof uspApi === \"function\") {\n tasks.push(\n new Promise((resolve) => {\n try {\n uspApi(\"getUSPData\", 1, (data, success) => {\n if (success && typeof data?.uspString === \"string\" && data.uspString) {\n signals.usPrivacy = data.uspString;\n }\n resolve();\n });\n } catch {\n resolve();\n }\n setTimeout(resolve, timeoutMs);\n })\n );\n }\n if (tasks.length === 0) {\n return Promise.resolve(signals);\n }\n return Promise.all(tasks).then(() => signals);\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n applyVastMacros,\n fetchConsentSignals,\n generateCorrelator\n});\n","export interface VastConsentSignals {\n gdpr?: string | undefined;\n gdprConsent?: string | undefined;\n usPrivacy?: string | undefined;\n}\n\nexport interface VastMacroContext {\n correlator: string;\n streamCorrelator: string;\n pod?: number | undefined;\n adPosition?: number | undefined;\n pageUrl?: string | undefined;\n adWillPlayMuted?: boolean | undefined;\n adWillAutoPlay?: boolean | undefined;\n deviceId?: string | undefined;\n deviceIdType?: string | undefined;\n limitAdTracking?: boolean | undefined;\n adTest?: boolean | undefined;\n consent?: VastConsentSignals | undefined;\n}\n\nexport function generateCorrelator(): string {\n if (typeof crypto !== \"undefined\" && crypto.getRandomValues) {\n try {\n const buf = new Uint32Array(2);\n crypto.getRandomValues(buf);\n const value = (buf[0] ?? 0) * 0x200000 + ((buf[1] ?? 0) & 0x1fffff);\n if (value > 0) {\n return String(value);\n }\n } catch {\n }\n }\n return String(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER) + 1);\n}\n\nconst UNEXPANDED_MACRO_PATTERN = /^(\\[[^\\]]*\\]|\\{[^}]*\\}|%%[^%]*%%)$/;\n\nexport function applyVastMacros(\n baseUrl: string,\n ctx: VastMacroContext\n): string {\n let url: URL;\n try {\n url = new URL(baseUrl);\n } catch {\n return replaceCorrelatorFallback(baseUrl, ctx.correlator);\n }\n\n const params = url.searchParams;\n\n params.set(\"correlator\", ctx.correlator);\n params.set(\"scor\", ctx.streamCorrelator);\n\n if (ctx.pod != null) {\n params.set(\"pod\", String(ctx.pod));\n }\n if (ctx.adPosition != null) {\n params.set(\"ppos\", String(ctx.adPosition));\n }\n\n if (ctx.pageUrl) {\n params.set(\"url\", ctx.pageUrl);\n params.set(\"description_url\", ctx.pageUrl);\n }\n\n if (ctx.adWillPlayMuted != null) {\n params.set(\"vpmute\", ctx.adWillPlayMuted ? \"1\" : \"0\");\n }\n if (ctx.adWillAutoPlay != null) {\n params.set(\"vpa\", ctx.adWillAutoPlay ? \"auto\" : \"click\");\n }\n\n if (ctx.deviceId && ctx.deviceIdType) {\n params.set(\"rdid\", ctx.deviceId);\n params.set(\"idtype\", ctx.deviceIdType);\n params.set(\"is_lat\", ctx.limitAdTracking ? \"1\" : \"0\");\n } else {\n params.delete(\"rdid\");\n params.delete(\"idtype\");\n params.delete(\"is_lat\");\n }\n\n const consent = ctx.consent;\n if (consent?.gdpr != null) {\n params.set(\"gdpr\", consent.gdpr);\n }\n if (consent?.gdprConsent != null) {\n params.set(\"gdpr_consent\", consent.gdprConsent);\n }\n if (consent?.usPrivacy != null) {\n params.set(\"us_privacy\", consent.usPrivacy);\n }\n\n if (ctx.adTest) {\n params.set(\"adtest\", \"on\");\n }\n\n const staleKeys: string[] = [];\n params.forEach((value, key) => {\n if (UNEXPANDED_MACRO_PATTERN.test(value)) {\n staleKeys.push(key);\n }\n });\n for (const key of staleKeys) {\n params.delete(key);\n }\n\n return url.toString();\n}\n\nfunction replaceCorrelatorFallback(baseUrl: string, correlator: string): string {\n const correlatorRegex = /([?&])correlator=([^&]*)/;\n if (correlatorRegex.test(baseUrl)) {\n return baseUrl.replace(correlatorRegex, `$1correlator=${correlator}`);\n }\n const sep = baseUrl.includes(\"?\") ? \"&\" : \"?\";\n return `${baseUrl}${sep}correlator=${correlator}`;\n}\n\nexport function fetchConsentSignals(\n timeoutMs: number = 1500\n): Promise<VastConsentSignals> {\n const signals: VastConsentSignals = {};\n if (typeof window === \"undefined\") {\n return Promise.resolve(signals);\n }\n\n const tasks: Promise<void>[] = [];\n\n const tcfApi = (window as any).__tcfapi;\n if (typeof tcfApi === \"function\") {\n tasks.push(\n new Promise<void>((resolve) => {\n let settled = false;\n try {\n tcfApi(\"addEventListener\", 2, (tcData: any, success: boolean) => {\n if (settled) return;\n if (\n success &&\n tcData &&\n (tcData.eventStatus === \"tcloaded\" ||\n tcData.eventStatus === \"useractioncomplete\")\n ) {\n settled = true;\n signals.gdpr = tcData.gdprApplies ? \"1\" : \"0\";\n if (typeof tcData.tcString === \"string\" && tcData.tcString) {\n signals.gdprConsent = tcData.tcString;\n }\n try {\n tcfApi(\"removeEventListener\", 2, () => {}, tcData.listenerId);\n } catch {}\n resolve();\n }\n });\n } catch {\n resolve();\n }\n setTimeout(() => {\n if (!settled) {\n settled = true;\n resolve();\n }\n }, timeoutMs);\n })\n );\n }\n\n const uspApi = (window as any).__uspapi;\n if (typeof uspApi === \"function\") {\n tasks.push(\n new Promise<void>((resolve) => {\n try {\n uspApi(\"getUSPData\", 1, (data: any, success: boolean) => {\n if (success && typeof data?.uspString === \"string\" && data.uspString) {\n signals.usPrivacy = data.uspString;\n }\n resolve();\n });\n } catch {\n resolve();\n }\n setTimeout(resolve, timeoutMs);\n })\n );\n }\n\n if (tasks.length === 0) {\n return Promise.resolve(signals);\n }\n\n return Promise.all(tasks).then(() => signals);\n}\n"]}
@@ -0,0 +1,24 @@
1
+ interface VastConsentSignals {
2
+ gdpr?: string | undefined;
3
+ gdprConsent?: string | undefined;
4
+ usPrivacy?: string | undefined;
5
+ }
6
+ interface VastMacroContext {
7
+ correlator: string;
8
+ streamCorrelator: string;
9
+ pod?: number | undefined;
10
+ adPosition?: number | undefined;
11
+ pageUrl?: string | undefined;
12
+ adWillPlayMuted?: boolean | undefined;
13
+ adWillAutoPlay?: boolean | undefined;
14
+ deviceId?: string | undefined;
15
+ deviceIdType?: string | undefined;
16
+ limitAdTracking?: boolean | undefined;
17
+ adTest?: boolean | undefined;
18
+ consent?: VastConsentSignals | undefined;
19
+ }
20
+ declare function generateCorrelator(): string;
21
+ declare function applyVastMacros(baseUrl: string, ctx: VastMacroContext): string;
22
+ declare function fetchConsentSignals(timeoutMs?: number): Promise<VastConsentSignals>;
23
+
24
+ export { type VastConsentSignals, type VastMacroContext, applyVastMacros, fetchConsentSignals, generateCorrelator };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stormcloud-video-player",
3
- "version": "0.8.4",
3
+ "version": "0.8.6",
4
4
  "main": "lib/index.js",
5
5
  "typings": "lib/index.d.ts",
6
6
  "scripts": {