@streamlayer/feature-advertisement 1.1.0 → 1.1.1-rc.1343

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.
Files changed (77) hide show
  1. package/classic/package.json +5 -0
  2. package/lib/advertisement.d.ts +6 -6
  3. package/lib/advertisement.js +8 -8
  4. package/lib/cjs/advertisement.d.ts +64 -0
  5. package/lib/cjs/advertisement.js +307 -0
  6. package/lib/cjs/index.d.ts +19 -0
  7. package/lib/cjs/index.js +39 -0
  8. package/lib/cjs/package.json +1 -0
  9. package/lib/cjs/units/external-ad.d.ts +58 -0
  10. package/lib/cjs/units/external-ad.js +390 -0
  11. package/lib/cjs/units/external-pause-ad.d.ts +50 -0
  12. package/lib/cjs/units/external-pause-ad.js +253 -0
  13. package/lib/cjs/units/gam.d.ts +16 -0
  14. package/lib/cjs/units/gam.js +104 -0
  15. package/lib/cjs/units/parse-vast-extensions.d.ts +17 -0
  16. package/lib/cjs/units/parse-vast-extensions.js +52 -0
  17. package/lib/cjs/units/pause-ad-card.d.ts +49 -0
  18. package/lib/cjs/units/pause-ad-card.js +136 -0
  19. package/lib/cjs/units/pause-ad.d.ts +16 -0
  20. package/lib/cjs/units/pause-ad.js +52 -0
  21. package/lib/cjs/units/ssai-ad-break.d.ts +21 -0
  22. package/lib/cjs/units/ssai-ad-break.js +11 -0
  23. package/lib/cjs/units/ssai-creative.d.ts +89 -0
  24. package/lib/cjs/units/ssai-creative.js +136 -0
  25. package/lib/cjs/units/ssai-detector.d.ts +180 -0
  26. package/lib/cjs/units/ssai-detector.js +1156 -0
  27. package/lib/cjs/units/ssai-preload.d.ts +20 -0
  28. package/lib/cjs/units/ssai-preload.js +62 -0
  29. package/lib/cjs/units/ssai-providers.d.ts +117 -0
  30. package/lib/cjs/units/ssai-providers.js +263 -0
  31. package/lib/cjs/units/vast-tracker.d.ts +45 -0
  32. package/lib/cjs/units/vast-tracker.js +64 -0
  33. package/lib/classic/_virtual/_rollupPluginBabelHelpers.js +71 -0
  34. package/lib/classic/advertisement.js +331 -0
  35. package/lib/classic/cjs/_virtual/_rollupPluginBabelHelpers.js +77 -0
  36. package/lib/classic/cjs/advertisement.js +333 -0
  37. package/lib/classic/cjs/index.js +47 -0
  38. package/lib/classic/cjs/package.json +1 -0
  39. package/lib/classic/cjs/units/external-ad.js +453 -0
  40. package/lib/classic/cjs/units/external-pause-ad.js +274 -0
  41. package/lib/classic/cjs/units/gam.js +110 -0
  42. package/lib/classic/cjs/units/parse-vast-extensions.js +56 -0
  43. package/lib/classic/cjs/units/pause-ad-card.js +134 -0
  44. package/lib/classic/cjs/units/pause-ad.js +72 -0
  45. package/lib/classic/cjs/units/ssai-ad-break.js +11 -0
  46. package/lib/classic/cjs/units/ssai-creative.js +142 -0
  47. package/lib/classic/cjs/units/ssai-detector.js +1170 -0
  48. package/lib/classic/cjs/units/ssai-preload.js +72 -0
  49. package/lib/classic/cjs/units/ssai-providers.js +299 -0
  50. package/lib/classic/cjs/units/vast-tracker.js +81 -0
  51. package/lib/classic/index.js +28 -0
  52. package/lib/classic/units/external-ad.js +447 -0
  53. package/lib/classic/units/external-pause-ad.js +271 -0
  54. package/lib/classic/units/gam.js +108 -0
  55. package/lib/classic/units/parse-vast-extensions.js +54 -0
  56. package/lib/classic/units/pause-ad-card.js +131 -0
  57. package/lib/classic/units/pause-ad.js +70 -0
  58. package/lib/classic/units/ssai-ad-break.js +9 -0
  59. package/lib/classic/units/ssai-creative.js +140 -0
  60. package/lib/classic/units/ssai-detector.js +1167 -0
  61. package/lib/classic/units/ssai-preload.js +68 -0
  62. package/lib/classic/units/ssai-providers.js +289 -0
  63. package/lib/classic/units/vast-tracker.js +77 -0
  64. package/lib/index.d.ts +13 -13
  65. package/lib/index.js +8 -8
  66. package/lib/units/external-ad.d.ts +2 -2
  67. package/lib/units/external-ad.js +2 -2
  68. package/lib/units/pause-ad.d.ts +1 -1
  69. package/lib/units/pause-ad.js +1 -1
  70. package/lib/units/ssai-ad-break.d.ts +1 -1
  71. package/lib/units/ssai-creative.d.ts +1 -1
  72. package/lib/units/ssai-creative.js +1 -1
  73. package/lib/units/ssai-detector.d.ts +1 -1
  74. package/lib/units/ssai-preload.d.ts +1 -1
  75. package/lib/units/ssai-providers.d.ts +1 -1
  76. package/lib/units/vast-tracker.d.ts +1 -1
  77. package/package.json +41 -8
@@ -0,0 +1,333 @@
1
+ 'use strict';
2
+
3
+ var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
4
+ require('core-js/modules/es.array.iterator.js');
5
+ require('core-js/modules/esnext.iterator.constructor.js');
6
+ require('core-js/modules/esnext.iterator.for-each.js');
7
+ require('core-js/modules/esnext.set.difference.v2.js');
8
+ require('core-js/modules/esnext.set.intersection.v2.js');
9
+ require('core-js/modules/esnext.set.is-disjoint-from.v2.js');
10
+ require('core-js/modules/esnext.set.is-subset-of.v2.js');
11
+ require('core-js/modules/esnext.set.is-superset-of.v2.js');
12
+ require('core-js/modules/esnext.set.symmetric-difference.v2.js');
13
+ require('core-js/modules/esnext.set.union.v2.js');
14
+ require('core-js/modules/web.dom-collections.for-each.js');
15
+ require('core-js/modules/web.dom-collections.iterator.js');
16
+ var classic = require('@streamlayer/sdk-web-interfaces/classic');
17
+ var classic$1 = require('@streamlayer/sdk-web-logger/classic');
18
+ var externalAd = require('./units/external-ad.js');
19
+ var externalPauseAd = require('./units/external-pause-ad.js');
20
+ var pauseAd = require('./units/pause-ad.js');
21
+ var ssaiCreative = require('./units/ssai-creative.js');
22
+ var ssaiProviders = require('./units/ssai-providers.js');
23
+ var ssaiDetector = require('./units/ssai-detector.js');
24
+ var ssaiAdBreak = require('./units/ssai-ad-break.js');
25
+ var ssaiPreload = require('./units/ssai-preload.js');
26
+
27
+ class Advertisement extends classic.AbstractFeatureUnit {
28
+ constructor(instance) {
29
+ super();
30
+ _rollupPluginBabelHelpers.defineProperty(this, "getExternalAd", void 0);
31
+ _rollupPluginBabelHelpers.defineProperty(this, "getExternalPauseAd", void 0);
32
+ _rollupPluginBabelHelpers.defineProperty(this, "getPauseAdList", void 0);
33
+ _rollupPluginBabelHelpers.defineProperty(this, "ssaiAdBreak", ssaiAdBreak.createSsaiAdBreakStore());
34
+ _rollupPluginBabelHelpers.defineProperty(this, "startSsaiMonitoring", void 0);
35
+ _rollupPluginBabelHelpers.defineProperty(this, "stopSsaiMonitoring", void 0);
36
+ /**
37
+ * Fire the impression tracking pixel for a creative. Called by the UI the
38
+ * moment the bar actually renders the creative, so "impression" means the
39
+ * viewer saw it (not merely that metadata resolved).
40
+ */
41
+ _rollupPluginBabelHelpers.defineProperty(this, "fireSsaiImpression", void 0);
42
+ /**
43
+ * Fire a named tracking beacon for a creative (`clickThrough`, or any event
44
+ * the creative carries). Lifecycle beacons — `start`, the quartiles and
45
+ * `complete` — are fired automatically by the detector as playback crosses
46
+ * them; this is for the ones only the UI knows about.
47
+ */
48
+ _rollupPluginBabelHelpers.defineProperty(this, "fireSsaiTracking", void 0);
49
+ /**
50
+ * Fire the companion's `clickTracking` beacons. Exposed for hosts that render
51
+ * the companion banner themselves — the TV overlay has no companion surface,
52
+ * so nothing in this SDK calls it.
53
+ */
54
+ _rollupPluginBabelHelpers.defineProperty(this, "fireSsaiCompanionClick", void 0);
55
+ /**
56
+ * User-dismissed the current break: hide the bar now and keep it hidden for
57
+ * the rest of this break (a later break/creative shows again).
58
+ */
59
+ _rollupPluginBabelHelpers.defineProperty(this, "dismissSsaiBreak", void 0);
60
+ /**
61
+ * Read-only timing introspection of the running SSAI monitor (null while no
62
+ * monitor runs). Feeds the demo app's SSAI debug window; safe to poll.
63
+ */
64
+ _rollupPluginBabelHelpers.defineProperty(this, "getSsaiDebugSnapshot", void 0);
65
+ _rollupPluginBabelHelpers.defineProperty(this, "externalAdStores", new Map());
66
+ _rollupPluginBabelHelpers.defineProperty(this, "externalPauseAdStores", new Map());
67
+ _rollupPluginBabelHelpers.defineProperty(this, "externalPauseAdEnabled", new Map());
68
+ _rollupPluginBabelHelpers.defineProperty(this, "pauseAdStore", null);
69
+ _rollupPluginBabelHelpers.defineProperty(this, "pauseAdEnabled", null);
70
+ _rollupPluginBabelHelpers.defineProperty(this, "ssaiDetector", null);
71
+ _rollupPluginBabelHelpers.defineProperty(this, "ssaiCache", null);
72
+ _rollupPluginBabelHelpers.defineProperty(this, "log", void 0);
73
+ _rollupPluginBabelHelpers.defineProperty(this, "connect", () => {
74
+ this.log.debug('connect');
75
+ });
76
+ _rollupPluginBabelHelpers.defineProperty(this, "disconnect", () => {
77
+ this.log.debug('disconnect');
78
+ this.stopSsaiMonitoring();
79
+ this.externalAdStores.forEach(store => {
80
+ store.off();
81
+ });
82
+ this.externalAdStores.clear();
83
+ this.externalPauseAdStores.forEach(store => {
84
+ store.off();
85
+ });
86
+ this.externalPauseAdEnabled.forEach(enabled => {
87
+ enabled.off();
88
+ });
89
+ this.externalPauseAdEnabled.clear();
90
+ this.externalPauseAdStores.clear();
91
+ if (this.pauseAdStore) {
92
+ var _this$pauseAdEnabled;
93
+ this.pauseAdStore.$list.off();
94
+ this.pauseAdStore.$index.off();
95
+ (_this$pauseAdEnabled = this.pauseAdEnabled) === null || _this$pauseAdEnabled === void 0 || _this$pauseAdEnabled.off();
96
+ this.pauseAdStore = null;
97
+ this.pauseAdEnabled = null;
98
+ }
99
+ });
100
+ this.log = classic$1.createLogger('advertisement');
101
+ const externalAdGenerator = externalAd.externalAd(instance);
102
+ const externalPauseAdGenerator = externalPauseAd.externalPauseAd(instance);
103
+ const pauseAdGenerator = pauseAd.pauseAdListStore(instance);
104
+ this.fireSsaiImpression = () => undefined;
105
+ this.fireSsaiTracking = () => undefined;
106
+ this.fireSsaiCompanionClick = () => undefined;
107
+ this.dismissSsaiBreak = () => undefined;
108
+ // Stable across start/stop cycles — always answers from the CURRENT detector.
109
+ this.getSsaiDebugSnapshot = () => {
110
+ var _this$ssaiDetector$ge, _this$ssaiDetector;
111
+ return (_this$ssaiDetector$ge = (_this$ssaiDetector = this.ssaiDetector) === null || _this$ssaiDetector === void 0 ? void 0 : _this$ssaiDetector.getDebugSnapshot()) !== null && _this$ssaiDetector$ge !== void 0 ? _this$ssaiDetector$ge : null;
112
+ };
113
+ this.getPauseAdList = options => {
114
+ if (this.pauseAdStore) {
115
+ const $enabled = this.pauseAdEnabled;
116
+ const wasDisabled = $enabled.get() === false;
117
+ $enabled.set(options.$enabled);
118
+ if (wasDisabled && options.$enabled) {
119
+ window.requestAnimationFrame(() => {
120
+ if (this.pauseAdStore) this.pauseAdStore.$list.revalidate();
121
+ });
122
+ }
123
+ return this.pauseAdStore;
124
+ }
125
+ const $enabled = classic.createSingleStore(options.$enabled);
126
+ this.pauseAdEnabled = $enabled;
127
+ this.pauseAdStore = pauseAdGenerator($enabled, options);
128
+ return this.pauseAdStore;
129
+ };
130
+ this.getExternalAd = (adUrl = '') => {
131
+ if (this.externalAdStores.has(adUrl)) {
132
+ const $store = this.externalAdStores.get(adUrl);
133
+ return [$store, adUrl];
134
+ }
135
+ const store = externalAdGenerator(adUrl);
136
+ this.externalAdStores.set(adUrl, store);
137
+ return [store, adUrl];
138
+ };
139
+ this.getExternalPauseAd = (adUrl, options) => {
140
+ var _options$template;
141
+ // Store identity is (template, url): the template selects a DIFFERENT creative
142
+ // from the SAME tag, so the two must not share a store. Required because the
143
+ // cache-hit branch below applies only `$enabled` and drops the rest of `options`.
144
+ const storeKey = `${(_options$template = options.template) !== null && _options$template !== void 0 ? _options$template : 'default'}::${adUrl}`;
145
+ if (this.externalPauseAdStores.has(storeKey)) {
146
+ const $enabled = this.externalPauseAdEnabled.get(storeKey);
147
+ const $store = this.externalPauseAdStores.get(storeKey);
148
+ const shouldRevalidate = $enabled.get() === false && options.$enabled === true;
149
+ $enabled.set(options.$enabled);
150
+ if (shouldRevalidate) {
151
+ window.requestAnimationFrame(() => {
152
+ $store.revalidate();
153
+ });
154
+ }
155
+ // The 2nd element MUST stay the BARE url — `ExposedPauseAd` compares it to
156
+ // `vastUrlRef.current` (index.tsx:121) to scope store errors to the selected tag.
157
+ return [$store, adUrl];
158
+ }
159
+ const $enabled = classic.createSingleStore(options.$enabled);
160
+ const store = externalPauseAdGenerator(adUrl, $enabled, options);
161
+ this.externalPauseAdEnabled.set(storeKey, $enabled);
162
+ this.externalPauseAdStores.set(storeKey, store);
163
+ return [store, adUrl];
164
+ };
165
+ this.startSsaiMonitoring = options => {
166
+ this.stopSsaiMonitoring();
167
+ const provider = ssaiProviders.resolveProvider(options.provider);
168
+ const cache = new ssaiCreative.SsaiCreativeCache(provider);
169
+ this.ssaiCache = cache;
170
+ this.fireSsaiImpression = creativeId => {
171
+ cache.fireImpressionById(creativeId);
172
+ };
173
+ this.fireSsaiTracking = (creativeId, event) => {
174
+ cache.fireTrackingById(creativeId, event);
175
+ };
176
+ this.fireSsaiCompanionClick = creativeId => {
177
+ cache.fireCompanionClickById(creativeId);
178
+ };
179
+ // Creative ids whose artwork preload has completed. Tracked apart from the
180
+ // cache: `peek` alone would let the bar show with a logo still in flight.
181
+ const preloadedIds = new Set();
182
+ /**
183
+ * Resolve + warm a creative the moment its id shows up in the manifest —
184
+ * typically seconds before its break starts, since the playhead trails the
185
+ * live edge. By break start the sync fast-path in `loadCreative` then flips
186
+ * the store straight to 'ready'. Failure here is only a debug note: the
187
+ * break may still be minutes away, and `loadCreative` retries (and warns)
188
+ * when the ad actually starts.
189
+ */
190
+ const prefetchCreative = creativeId => {
191
+ cache.resolve(creativeId).then(creative => ssaiPreload.preloadCreativeAssets(creative)).then(() => {
192
+ preloadedIds.add(creativeId);
193
+ }).catch(error => {
194
+ this.log.debug(error, 'ssai creative prefetch failed');
195
+ });
196
+ };
197
+ const publishReady = (range, creative) => {
198
+ this.ssaiAdBreak.set({
199
+ creativeId: range.creativeId,
200
+ creative,
201
+ status: 'ready',
202
+ startMs: range.startMs,
203
+ durationSec: range.durationSec
204
+ });
205
+ // "loaded" = metadata resolved. Impression (eventBus + pixel) fires
206
+ // from the UI when the bar is actually rendered, not here.
207
+ classic.eventBus.emit('ssaiAdBreak', {
208
+ action: 'vastLoaded',
209
+ payload: {
210
+ creativeId: creative.creativeId,
211
+ advertiser: creative.advertiser,
212
+ clickThroughUrl: creative.clickThroughUrl
213
+ }
214
+ });
215
+ };
216
+ const loadCreative = range => {
217
+ // Fast path: prefetched at discovery, artwork warm — go straight to
218
+ // 'ready'. Skipping the 'detecting' hop matters for pods in particular:
219
+ // it momentarily empties the store, which the UI renders as the bar
220
+ // starting to close between two back-to-back ads.
221
+ const prefetched = cache.peek(range.creativeId);
222
+ if (prefetched && preloadedIds.has(range.creativeId)) {
223
+ publishReady(range, prefetched);
224
+ return;
225
+ }
226
+ this.ssaiAdBreak.set({
227
+ creativeId: range.creativeId,
228
+ status: 'detecting',
229
+ startMs: range.startMs,
230
+ durationSec: range.durationSec
231
+ });
232
+ cache.resolve(range.creativeId)
233
+ // Warm the artwork BEFORE flipping to 'ready', so the bar fades in with
234
+ // its logo already decoded instead of popping it in mid-animation. Capped
235
+ // internally, so a slow image host delays nothing.
236
+ .then(creative => ssaiPreload.preloadCreativeAssets(creative).then(() => {
237
+ preloadedIds.add(range.creativeId);
238
+ return creative;
239
+ })).then(creative => {
240
+ const current = this.ssaiAdBreak.get();
241
+ // Re-checked after the preload as well as the fetch: the break can end
242
+ // while either is in flight.
243
+ if (!current || current.creativeId !== range.creativeId) {
244
+ return;
245
+ }
246
+ publishReady(range, creative);
247
+ }).catch(error => {
248
+ this.log.warn(error, 'ssai creative resolution failed');
249
+ });
250
+ };
251
+ this.ssaiDetector = ssaiDetector.createSsaiDetector({
252
+ player: options.player,
253
+ videoRef: options.videoRef,
254
+ manifestUrl: options.manifestUrl,
255
+ onAdDiscovered: creativeId => {
256
+ this.log.debug({
257
+ creativeId
258
+ }, 'ssai ad discovered, prefetching creative');
259
+ prefetchCreative(creativeId);
260
+ },
261
+ onBreakStart: range => {
262
+ this.log.debug({
263
+ creativeId: range.creativeId
264
+ }, 'ssai break start');
265
+ classic.eventBus.emit('ssaiAdBreak', {
266
+ action: 'breakStart',
267
+ payload: {
268
+ creativeId: range.creativeId
269
+ }
270
+ });
271
+ loadCreative(range);
272
+ },
273
+ onCreativeChange: range => {
274
+ this.log.debug({
275
+ creativeId: range.creativeId
276
+ }, 'ssai creative change');
277
+ loadCreative(range);
278
+ },
279
+ onAdEnding: range => {
280
+ const current = this.ssaiAdBreak.get();
281
+ // Only a bar currently showing this creative has anything to wind
282
+ // down — a dismissed or still-resolving break stays as it is.
283
+ if (!current || current.creativeId !== range.creativeId || current.status !== 'ready') {
284
+ return;
285
+ }
286
+ this.ssaiAdBreak.set(_rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, current), {}, {
287
+ status: 'ending'
288
+ }));
289
+ },
290
+ onProgress: (range, event) => {
291
+ this.log.debug({
292
+ creativeId: range.creativeId,
293
+ event
294
+ }, 'ssai progress');
295
+ cache.fireTrackingById(range.creativeId, event);
296
+ },
297
+ onBreakEnd: () => {
298
+ this.log.debug('ssai break end');
299
+ const current = this.ssaiAdBreak.get();
300
+ classic.eventBus.emit('ssaiAdBreak', {
301
+ action: 'breakEnd',
302
+ payload: {
303
+ creativeId: current === null || current === void 0 ? void 0 : current.creativeId
304
+ }
305
+ });
306
+ this.ssaiAdBreak.set(null);
307
+ }
308
+ });
309
+ this.dismissSsaiBreak = () => {
310
+ var _this$ssaiDetector2;
311
+ (_this$ssaiDetector2 = this.ssaiDetector) === null || _this$ssaiDetector2 === void 0 || _this$ssaiDetector2.dismissActiveBreak();
312
+ this.ssaiAdBreak.set(null);
313
+ };
314
+ };
315
+ this.stopSsaiMonitoring = () => {
316
+ if (this.ssaiDetector) {
317
+ this.ssaiDetector.destroy();
318
+ this.ssaiDetector = null;
319
+ }
320
+ if (this.ssaiCache) {
321
+ this.ssaiCache.destroy();
322
+ this.ssaiCache = null;
323
+ }
324
+ this.fireSsaiImpression = () => undefined;
325
+ this.fireSsaiTracking = () => undefined;
326
+ this.fireSsaiCompanionClick = () => undefined;
327
+ this.dismissSsaiBreak = () => undefined;
328
+ this.ssaiAdBreak.set(null);
329
+ };
330
+ }
331
+ }
332
+
333
+ exports.Advertisement = Advertisement;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var advertisement$1 = require('./advertisement.js');
4
+ var externalPauseAd = require('./units/external-pause-ad.js');
5
+ var pauseAdCard = require('./units/pause-ad-card.js');
6
+ var gam = require('./units/gam.js');
7
+ var vastTracker = require('./units/vast-tracker.js');
8
+ require('core-js/modules/es.array.iterator.js');
9
+ require('core-js/modules/es.promise.js');
10
+ require('core-js/modules/esnext.iterator.constructor.js');
11
+ require('core-js/modules/esnext.iterator.for-each.js');
12
+ require('core-js/modules/web.dom-collections.for-each.js');
13
+ require('core-js/modules/web.dom-collections.iterator.js');
14
+ var ssaiProviders = require('./units/ssai-providers.js');
15
+ var ssaiPreload = require('./units/ssai-preload.js');
16
+
17
+ const advertisement = (instance, _opts, done) => {
18
+ instance.sdk.advertisement = new advertisement$1.Advertisement(instance);
19
+ instance.sdk.onMount({
20
+ name: 'advertisement'
21
+ }, () => {
22
+ instance.sdk.advertisement.connect();
23
+ return () => {
24
+ instance.sdk.advertisement.disconnect();
25
+ };
26
+ });
27
+ done();
28
+ };
29
+
30
+ exports.isFullbleedVideoTemplate = externalPauseAd.isFullbleedVideoTemplate;
31
+ exports.INSIGHT_BODY_MAX_LENGTH = pauseAdCard.INSIGHT_BODY_MAX_LENGTH;
32
+ exports.gam = gam.gam;
33
+ exports.createCompanionTracker = vastTracker.createCompanionTracker;
34
+ exports.createVastTracker = vastTracker.createVastTracker;
35
+ exports.resolveVastTrackerTarget = vastTracker.resolveVastTrackerTarget;
36
+ exports.BUILTIN_PROVIDERS = ssaiProviders.BUILTIN_PROVIDERS;
37
+ exports.DEFAULT_CREATIVE_API_BASE = ssaiProviders.DEFAULT_CREATIVE_API_BASE;
38
+ exports.createQuortexProvider = ssaiProviders.createQuortexProvider;
39
+ exports.createStreamLayerProvider = ssaiProviders.createStreamLayerProvider;
40
+ exports.createVastProvider = ssaiProviders.createVastProvider;
41
+ exports.fireBeacon = ssaiProviders.fireBeacon;
42
+ exports.fireTrackingEvents = ssaiProviders.fireTrackingEvents;
43
+ exports.resolveProvider = ssaiProviders.resolveProvider;
44
+ exports.DEFAULT_PRELOAD_TIMEOUT_MS = ssaiPreload.DEFAULT_PRELOAD_TIMEOUT_MS;
45
+ exports.preloadCreativeAssets = ssaiPreload.preloadCreativeAssets;
46
+ exports.preloadImages = ssaiPreload.preloadImages;
47
+ exports.advertisement = advertisement;
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}