stormcloud-video-player 0.8.59 → 0.8.61
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/LICENSE +21 -21
- package/README.md +1369 -1369
- package/dist/stormcloud-vp.min.js +3 -1
- package/lib/Player.cjs +548 -0
- package/lib/Player.cjs.map +1 -0
- package/lib/Player.d.cts +146 -0
- package/lib/{index.js → StormcloudPlayer.cjs} +1193 -1908
- package/lib/StormcloudPlayer.cjs.map +1 -0
- package/lib/{index.d.ts → StormcloudPlayer.d.cts} +7 -400
- package/lib/index.cjs +1064 -280
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +18 -4032
- package/lib/patterns.cjs +111 -0
- package/lib/patterns.cjs.map +1 -0
- package/lib/patterns.d.cts +14 -0
- package/lib/player/AdBreakOrchestrator.cjs +51 -16
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdBreakOrchestrator.d.cts +3 -1
- package/lib/player/AdConfigManager.cjs +206 -26
- package/lib/player/AdConfigManager.cjs.map +1 -1
- package/lib/player/AdConfigManager.d.cts +1 -1
- package/lib/player/AdTimingService.cjs.map +1 -1
- package/lib/player/AdTimingService.d.cts +1 -1
- package/lib/player/HlsEngine.cjs.map +1 -1
- package/lib/player/HlsEngine.d.cts +1 -1
- package/lib/player/PlaceholderLayer.cjs.map +1 -1
- package/lib/player/PlayerControls.cjs.map +1 -1
- package/lib/player/PlayerControls.d.cts +1 -1
- package/lib/player/Scte35CueManager.cjs.map +1 -1
- package/lib/player/Scte35CueManager.d.cts +1 -1
- package/lib/player/Scte35Parser.cjs.map +1 -1
- package/lib/player/Scte35Parser.d.cts +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +1060 -278
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/player/playerTypes.cjs.map +1 -1
- package/lib/player/playerTypes.d.cts +1 -1
- package/lib/players/FilePlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.cjs +1060 -278
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +1060 -278
- package/lib/players/index.cjs.map +1 -1
- package/lib/props.cjs +186 -0
- package/lib/props.cjs.map +1 -0
- package/lib/props.d.cts +62 -0
- package/lib/sdk/hlsAdPlayer.cjs +884 -234
- package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +1 -1
- package/lib/sdk/pal.cjs +9 -5
- package/lib/sdk/pal.cjs.map +1 -1
- package/lib/sdk/pal.d.cts +1 -0
- package/lib/types.cjs +49 -0
- package/lib/types.cjs.map +1 -0
- package/lib/{types-52ASml2N.d.cts → types.d.cts} +48 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +1064 -280
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/browserCompat.cjs.map +1 -1
- package/lib/utils/ctvVastSignals.cjs +178 -19
- package/lib/utils/ctvVastSignals.cjs.map +1 -1
- package/lib/utils/devUrl.cjs.map +1 -1
- package/lib/utils/polyfills.cjs.map +1 -1
- package/lib/utils/tracking.cjs +45 -16
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/tracking.d.cts +1 -1
- package/lib/utils/trackingIngest.cjs.map +1 -1
- package/lib/utils/vastEnvironmentSignals.cjs +192 -20
- package/lib/utils/vastEnvironmentSignals.cjs.map +1 -1
- package/lib/utils/vastEnvironmentSignals.d.cts +13 -2
- package/lib/utils/vastMacros.cjs +50 -4
- package/lib/utils/vastMacros.cjs.map +1 -1
- package/lib/utils/vastMacros.d.cts +2 -0
- package/lib/utils/vastTrackingMacros.cjs +5 -0
- package/lib/utils/vastTrackingMacros.cjs.map +1 -1
- package/lib/utils/vastTrackingMacros.d.cts +2 -0
- package/lib/utils.cjs +292 -0
- package/lib/utils.cjs.map +1 -0
- package/lib/utils.d.cts +17 -0
- package/package.json +91 -91
- package/rollup.config.js +90 -90
- package/lib/index.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Scte35Marker, StormcloudVideoPlayerConfig, AdController } from '../types.cjs';
|
|
2
2
|
import { AdTimingService } from './AdTimingService.cjs';
|
|
3
3
|
import { AdConfigManager } from './AdConfigManager.cjs';
|
|
4
4
|
import { Scte35CueManager } from './Scte35CueManager.cjs';
|
|
@@ -21,6 +21,8 @@ interface AdBreakOrchestratorHost {
|
|
|
21
21
|
recoverMediaError(): void;
|
|
22
22
|
requiresMediaPipelineResetAfterAds(): boolean;
|
|
23
23
|
generatePodVastUrl(baseUrl: string, breakDurationMs?: number): string;
|
|
24
|
+
onAdClick(): void;
|
|
25
|
+
onAdInteraction(event: MouseEvent | TouchEvent): void;
|
|
24
26
|
}
|
|
25
27
|
declare class AdBreakOrchestrator {
|
|
26
28
|
inAdBreak: boolean;
|
|
@@ -310,6 +310,8 @@ __export(AdConfigManager_exports, {
|
|
|
310
310
|
module.exports = __toCommonJS(AdConfigManager_exports);
|
|
311
311
|
// src/utils/vastEnvironmentSignals.ts
|
|
312
312
|
var CTV_SESSION_STORAGE_KEY = "stormcloud.ctv.sid";
|
|
313
|
+
var WEB_SESSION_STORAGE_KEY = "stormcloud.web.sid";
|
|
314
|
+
var inMemoryWebSessionId;
|
|
313
315
|
var PLAYER_ID_STORAGE_KEY = "stormcloud.player.id";
|
|
314
316
|
var DEVICE_ID_STORAGE_KEYS = [
|
|
315
317
|
"rdid",
|
|
@@ -331,7 +333,7 @@ function resolveVastEnvironmentSignals(isCtv) {
|
|
|
331
333
|
var _ref;
|
|
332
334
|
var bridgeSignals = readNativeBridgeSignals();
|
|
333
335
|
var platformDevice = readPlatformNativeDeviceId();
|
|
334
|
-
var realDeviceId = bridgeSignals.deviceId || readStoredDeviceId() || platformDevice.deviceId;
|
|
336
|
+
var realDeviceId = bridgeSignals.deviceId || (isCtv ? readStoredDeviceId() : void 0) || platformDevice.deviceId;
|
|
335
337
|
var deviceId = realDeviceId;
|
|
336
338
|
var deviceIdType = bridgeSignals.deviceIdType || readStoredString("deviceIdType") || readStoredString("idtype") || platformDevice.deviceIdType || inferDeviceIdType();
|
|
337
339
|
var platformLat = bridgeSignals.deviceId ? bridgeSignals.limitAdTracking : platformDevice.limitAdTracking;
|
|
@@ -345,6 +347,7 @@ function resolveVastEnvironmentSignals(isCtv) {
|
|
|
345
347
|
limitAdTracking = (_ref1 = platformLat !== null && platformLat !== void 0 ? platformLat : readStoredLimitAdTracking()) !== null && _ref1 !== void 0 ? _ref1 : false;
|
|
346
348
|
}
|
|
347
349
|
}
|
|
350
|
+
var deviceTypeHint = resolveDeviceTypeHint(isCtv);
|
|
348
351
|
if (isCtv) {
|
|
349
352
|
return _object_spread_props(_object_spread({
|
|
350
353
|
isCtv: true,
|
|
@@ -356,18 +359,157 @@ function resolveVastEnvironmentSignals(isCtv) {
|
|
|
356
359
|
} : {}, deviceId && limitAdTracking != null ? {
|
|
357
360
|
limitAdTracking: limitAdTracking
|
|
358
361
|
} : {}), {
|
|
359
|
-
deviceTypeHint:
|
|
362
|
+
deviceTypeHint: deviceTypeHint
|
|
360
363
|
});
|
|
361
364
|
}
|
|
362
|
-
|
|
365
|
+
var webSessionId = getOrCreateWebSessionId();
|
|
366
|
+
return _object_spread_props(_object_spread({
|
|
363
367
|
isCtv: false
|
|
364
|
-
},
|
|
368
|
+
}, webSessionId ? {
|
|
369
|
+
sessionId: webSessionId
|
|
370
|
+
} : {}, deviceId ? {
|
|
365
371
|
deviceId: deviceId
|
|
366
372
|
} : {}, deviceId && deviceIdType ? {
|
|
367
373
|
deviceIdType: deviceIdType
|
|
368
374
|
} : {}, deviceId && limitAdTracking != null ? {
|
|
369
375
|
limitAdTracking: limitAdTracking
|
|
370
|
-
} : {})
|
|
376
|
+
} : {}), {
|
|
377
|
+
deviceTypeHint: deviceTypeHint
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
var DEVICE_TYPE_HINT = {
|
|
381
|
+
FEATURE_PHONE: 1,
|
|
382
|
+
SMARTPHONE: 2,
|
|
383
|
+
DESKTOP: 3,
|
|
384
|
+
TABLET: 4,
|
|
385
|
+
CONNECTED_TV: 5,
|
|
386
|
+
GAME_CONSOLE: 6,
|
|
387
|
+
SET_TOP_BOX: 7
|
|
388
|
+
};
|
|
389
|
+
var DEVICE_TYPE_HINT_ALIASES = {
|
|
390
|
+
featurephone: DEVICE_TYPE_HINT.FEATURE_PHONE,
|
|
391
|
+
smartphone: DEVICE_TYPE_HINT.SMARTPHONE,
|
|
392
|
+
mobile: DEVICE_TYPE_HINT.SMARTPHONE,
|
|
393
|
+
phone: DEVICE_TYPE_HINT.SMARTPHONE,
|
|
394
|
+
desktop: DEVICE_TYPE_HINT.DESKTOP,
|
|
395
|
+
pc: DEVICE_TYPE_HINT.DESKTOP,
|
|
396
|
+
tablet: DEVICE_TYPE_HINT.TABLET,
|
|
397
|
+
ctv: DEVICE_TYPE_HINT.CONNECTED_TV,
|
|
398
|
+
tv: DEVICE_TYPE_HINT.CONNECTED_TV,
|
|
399
|
+
connectedtv: DEVICE_TYPE_HINT.CONNECTED_TV,
|
|
400
|
+
smarttv: DEVICE_TYPE_HINT.CONNECTED_TV,
|
|
401
|
+
console: DEVICE_TYPE_HINT.GAME_CONSOLE,
|
|
402
|
+
gameconsole: DEVICE_TYPE_HINT.GAME_CONSOLE,
|
|
403
|
+
stb: DEVICE_TYPE_HINT.SET_TOP_BOX,
|
|
404
|
+
settopbox: DEVICE_TYPE_HINT.SET_TOP_BOX
|
|
405
|
+
};
|
|
406
|
+
var SET_TOP_BOX_UA = /LGSTB|\bSTB\b|STB\d|Set-?Top|SetTopBox|TV ?Box|Kaon|Humax|Arris|Technicolor|Sagemcom|Infomir|MAG\d{3}|KreaTV|Amino|Formuler|Dune ?HD|TiVo|MiBOX|Mi Box|SHIELD Android TV|\bAFT[A-Z]|Roku|AppleTV|Apple TV|CrKey/i;
|
|
407
|
+
var GAME_CONSOLE_UA = /PlayStation|Xbox|Nintendo/i;
|
|
408
|
+
var CONNECTED_TV_UA = /Web0S|webOS|Tizen|SMART-TV|SmartTV|NetCast|BRAVIA|HbbTV|VIDAA|Hisense|Philips|Viera|AQUOS|Android TV|Google TV|\bTV\b/i;
|
|
409
|
+
var FEATURE_PHONE_UA = /KAIOS|MIDP|J2ME|Series40|Opera Mini/i;
|
|
410
|
+
function resolveDeviceTypeHint(isCtv) {
|
|
411
|
+
var override = readDeviceTypeHintOverride(isCtv);
|
|
412
|
+
if (override != null) return override;
|
|
413
|
+
return inferDeviceTypeHint(isCtv);
|
|
414
|
+
}
|
|
415
|
+
function inferDeviceTypeHint(isCtv) {
|
|
416
|
+
var fallback = isCtv ? DEVICE_TYPE_HINT.CONNECTED_TV : DEVICE_TYPE_HINT.DESKTOP;
|
|
417
|
+
if (typeof navigator === "undefined") return fallback;
|
|
418
|
+
var ua = navigator.userAgent || "";
|
|
419
|
+
var maxTouchPoints = navigator.maxTouchPoints || 0;
|
|
420
|
+
if (SET_TOP_BOX_UA.test(ua)) return DEVICE_TYPE_HINT.SET_TOP_BOX;
|
|
421
|
+
if (GAME_CONSOLE_UA.test(ua)) return DEVICE_TYPE_HINT.GAME_CONSOLE;
|
|
422
|
+
if (CONNECTED_TV_UA.test(ua) && !/Mobile/i.test(ua)) {
|
|
423
|
+
return DEVICE_TYPE_HINT.CONNECTED_TV;
|
|
424
|
+
}
|
|
425
|
+
if (FEATURE_PHONE_UA.test(ua)) return DEVICE_TYPE_HINT.FEATURE_PHONE;
|
|
426
|
+
if (/iPad/i.test(ua) || /Macintosh/i.test(ua) && maxTouchPoints > 1) {
|
|
427
|
+
return DEVICE_TYPE_HINT.TABLET;
|
|
428
|
+
}
|
|
429
|
+
if (/iPhone|iPod/i.test(ua)) return DEVICE_TYPE_HINT.SMARTPHONE;
|
|
430
|
+
if (/Android/i.test(ua)) {
|
|
431
|
+
if (/Mobile/i.test(ua)) return DEVICE_TYPE_HINT.SMARTPHONE;
|
|
432
|
+
if (maxTouchPoints === 0) return DEVICE_TYPE_HINT.SET_TOP_BOX;
|
|
433
|
+
return DEVICE_TYPE_HINT.TABLET;
|
|
434
|
+
}
|
|
435
|
+
if (/Mobile|Windows Phone|BlackBerry/i.test(ua)) return DEVICE_TYPE_HINT.SMARTPHONE;
|
|
436
|
+
return fallback;
|
|
437
|
+
}
|
|
438
|
+
function readDeviceTypeHintOverride(isCtv) {
|
|
439
|
+
if (typeof window === "undefined") return void 0;
|
|
440
|
+
var keys = [
|
|
441
|
+
"dth",
|
|
442
|
+
"deviceTypeHint"
|
|
443
|
+
];
|
|
444
|
+
var fromGlobal = normalizeDeviceTypeHint(window.__STORMCLOUD_DTH__);
|
|
445
|
+
if (fromGlobal != null) return fromGlobal;
|
|
446
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
447
|
+
try {
|
|
448
|
+
for(var _iterator = getNativeBridgeSources()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
449
|
+
var source = _step.value;
|
|
450
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
451
|
+
try {
|
|
452
|
+
for(var _iterator1 = keys[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
453
|
+
var key = _step1.value;
|
|
454
|
+
var value = source === null || source === void 0 ? void 0 : source[key];
|
|
455
|
+
var normalized = normalizeDeviceTypeHint(typeof value === "function" ? safeCall(value, source) : value);
|
|
456
|
+
if (normalized != null) return normalized;
|
|
457
|
+
}
|
|
458
|
+
} catch (err) {
|
|
459
|
+
_didIteratorError1 = true;
|
|
460
|
+
_iteratorError1 = err;
|
|
461
|
+
} finally{
|
|
462
|
+
try {
|
|
463
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
464
|
+
_iterator1.return();
|
|
465
|
+
}
|
|
466
|
+
} finally{
|
|
467
|
+
if (_didIteratorError1) {
|
|
468
|
+
throw _iteratorError1;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
} catch (err) {
|
|
474
|
+
_didIteratorError = true;
|
|
475
|
+
_iteratorError = err;
|
|
476
|
+
} finally{
|
|
477
|
+
try {
|
|
478
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
479
|
+
_iterator.return();
|
|
480
|
+
}
|
|
481
|
+
} finally{
|
|
482
|
+
if (_didIteratorError) {
|
|
483
|
+
throw _iteratorError;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
if (!isCtv) return void 0;
|
|
488
|
+
for(var _i = 0, _iter = [
|
|
489
|
+
"stormcloud.dth",
|
|
490
|
+
"dth"
|
|
491
|
+
]; _i < _iter.length; _i++){
|
|
492
|
+
var key1 = _iter[_i];
|
|
493
|
+
var normalized1 = normalizeDeviceTypeHint(readStoredString(key1));
|
|
494
|
+
if (normalized1 != null) return normalized1;
|
|
495
|
+
}
|
|
496
|
+
return void 0;
|
|
497
|
+
}
|
|
498
|
+
function normalizeDeviceTypeHint(value) {
|
|
499
|
+
if (typeof value === "number") {
|
|
500
|
+
return Number.isInteger(value) && value >= 1 && value <= 7 ? value : void 0;
|
|
501
|
+
}
|
|
502
|
+
if (typeof value !== "string") return void 0;
|
|
503
|
+
var trimmed = value.trim();
|
|
504
|
+
if (/^[1-7]$/.test(trimmed)) return parseInt(trimmed, 10);
|
|
505
|
+
return DEVICE_TYPE_HINT_ALIASES[trimmed.toLowerCase().replace(/[\s_-]/g, "")];
|
|
506
|
+
}
|
|
507
|
+
function safeCall(fn, thisArg) {
|
|
508
|
+
try {
|
|
509
|
+
return fn.call(thisArg);
|
|
510
|
+
} catch (unused) {
|
|
511
|
+
return void 0;
|
|
512
|
+
}
|
|
371
513
|
}
|
|
372
514
|
function inferDeviceIdType() {
|
|
373
515
|
if (typeof navigator === "undefined") {
|
|
@@ -391,9 +533,10 @@ function isEquivalentDeviceIdType(tagType, runtimeType) {
|
|
|
391
533
|
return ANDROID_ID_TYPES.has(tag) && ANDROID_ID_TYPES.has(runtime);
|
|
392
534
|
}
|
|
393
535
|
function resolveNativeDeviceId() {
|
|
536
|
+
var includeStored = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
394
537
|
var bridgeSignals = readNativeBridgeSignals();
|
|
395
538
|
var platformDevice = readPlatformNativeDeviceId();
|
|
396
|
-
var deviceId = bridgeSignals.deviceId || readStoredDeviceId() || platformDevice.deviceId;
|
|
539
|
+
var deviceId = bridgeSignals.deviceId || (includeStored ? readStoredDeviceId() : void 0) || platformDevice.deviceId;
|
|
397
540
|
if (!deviceId || isMacroPlaceholder(deviceId) || isZeroedAdId(deviceId)) {
|
|
398
541
|
return void 0;
|
|
399
542
|
}
|
|
@@ -422,6 +565,21 @@ function getOrCreateCtvSessionId() {
|
|
|
422
565
|
writePersistentId(CTV_SESSION_STORAGE_KEY, sessionId);
|
|
423
566
|
return sessionId;
|
|
424
567
|
}
|
|
568
|
+
function getOrCreateWebSessionId() {
|
|
569
|
+
if (typeof window === "undefined") return void 0;
|
|
570
|
+
try {
|
|
571
|
+
var _window_sessionStorage;
|
|
572
|
+
var existing = (_window_sessionStorage = window.sessionStorage) === null || _window_sessionStorage === void 0 ? void 0 : _window_sessionStorage.getItem(WEB_SESSION_STORAGE_KEY);
|
|
573
|
+
if (existing && !isMacroPlaceholder(existing)) return existing;
|
|
574
|
+
} catch (unused) {}
|
|
575
|
+
var sessionId = inMemoryWebSessionId || createUuid();
|
|
576
|
+
inMemoryWebSessionId = sessionId;
|
|
577
|
+
try {
|
|
578
|
+
var _window_sessionStorage1;
|
|
579
|
+
(_window_sessionStorage1 = window.sessionStorage) === null || _window_sessionStorage1 === void 0 ? void 0 : _window_sessionStorage1.setItem(WEB_SESSION_STORAGE_KEY, sessionId);
|
|
580
|
+
} catch (unused) {}
|
|
581
|
+
return sessionId;
|
|
582
|
+
}
|
|
425
583
|
function readPersistentId(storageKey) {
|
|
426
584
|
return readStoredString(storageKey) || readCookie(storageKey);
|
|
427
585
|
}
|
|
@@ -573,22 +731,9 @@ function isZeroedAdId(value) {
|
|
|
573
731
|
return ZEROED_AD_ID_PATTERNS.has(value.trim().toLowerCase());
|
|
574
732
|
}
|
|
575
733
|
function readNativeBridgeSignals() {
|
|
576
|
-
if (typeof window === "undefined") {
|
|
577
|
-
return {};
|
|
578
|
-
}
|
|
579
|
-
var candidates = [
|
|
580
|
-
window.__STORMCLOUD_CTV_AD_INFO__,
|
|
581
|
-
window.__STORMCLOUD_CTV__,
|
|
582
|
-
window.stormcloudCtv,
|
|
583
|
-
window.AiryTV,
|
|
584
|
-
window.Android,
|
|
585
|
-
window.webOS,
|
|
586
|
-
window.tizen,
|
|
587
|
-
window.amazon
|
|
588
|
-
].filter(Boolean);
|
|
589
734
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
590
735
|
try {
|
|
591
|
-
for(var _iterator =
|
|
736
|
+
for(var _iterator = getNativeBridgeSources()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
592
737
|
var source = _step.value;
|
|
593
738
|
var contentUrl = readBridgeValue(source, [
|
|
594
739
|
"contentUrl",
|
|
@@ -663,6 +808,21 @@ function readNativeBridgeSignals() {
|
|
|
663
808
|
}
|
|
664
809
|
return {};
|
|
665
810
|
}
|
|
811
|
+
function getNativeBridgeSources() {
|
|
812
|
+
if (typeof window === "undefined") {
|
|
813
|
+
return [];
|
|
814
|
+
}
|
|
815
|
+
return [
|
|
816
|
+
window.__STORMCLOUD_CTV_AD_INFO__,
|
|
817
|
+
window.__STORMCLOUD_CTV__,
|
|
818
|
+
window.stormcloudCtv,
|
|
819
|
+
window.AiryTV,
|
|
820
|
+
window.Android,
|
|
821
|
+
window.webOS,
|
|
822
|
+
window.tizen,
|
|
823
|
+
window.amazon
|
|
824
|
+
].filter(Boolean);
|
|
825
|
+
}
|
|
666
826
|
function readBridgeValue(source, keys) {
|
|
667
827
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
668
828
|
try {
|
|
@@ -961,6 +1121,12 @@ function applyDeviceIdentityParams(params, ctx) {
|
|
|
961
1121
|
params.set("is_lat", latValue !== null && latValue !== void 0 ? latValue : isMacroPlaceholder2(tagLat) ? "0" : tagLat);
|
|
962
1122
|
return;
|
|
963
1123
|
}
|
|
1124
|
+
if (!ctx.isCtv) {
|
|
1125
|
+
params.delete("rdid");
|
|
1126
|
+
params.delete("idtype");
|
|
1127
|
+
params.delete("is_lat");
|
|
1128
|
+
return;
|
|
1129
|
+
}
|
|
964
1130
|
var tagRdidValid = Boolean(tagRdid && !isMacroPlaceholder2(tagRdid));
|
|
965
1131
|
var tagTypeValid = Boolean(tagType && !isMacroPlaceholder2(tagType));
|
|
966
1132
|
if (tagRdidValid && tagTypeValid && runtimeType && !isEquivalentDeviceIdType(tagType, runtimeType)) {
|
|
@@ -1115,15 +1281,24 @@ function applyVastMacros(baseUrl, ctx) {
|
|
|
1115
1281
|
if (ctx.podMaxAds != null) {
|
|
1116
1282
|
params.set("pmad", String(Math.max(1, Math.round(ctx.podMaxAds))));
|
|
1117
1283
|
}
|
|
1118
|
-
if (!ctx.isCtv && ctx.pageUrl) {
|
|
1119
|
-
params.set("url", ctx.pageUrl);
|
|
1120
|
-
params.set("description_url", ctx.pageUrl);
|
|
1121
|
-
}
|
|
1122
1284
|
var existingUrl = params.get("url") || "";
|
|
1123
1285
|
if (EXAMPLE_COM_URL.test(existingUrl)) {
|
|
1124
1286
|
params.delete("url");
|
|
1125
1287
|
params.delete("description_url");
|
|
1126
1288
|
}
|
|
1289
|
+
if (!ctx.isCtv && ctx.pageUrl) {
|
|
1290
|
+
if (isMacroPlaceholder2(params.get("url"))) {
|
|
1291
|
+
params.set("url", ctx.pageUrl);
|
|
1292
|
+
}
|
|
1293
|
+
if (isMacroPlaceholder2(params.get("description_url"))) {
|
|
1294
|
+
params.set("description_url", params.get("url") || ctx.pageUrl);
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
if (!ctx.isCtv) {
|
|
1298
|
+
params.delete("an");
|
|
1299
|
+
params.delete("msid");
|
|
1300
|
+
params.delete("sid");
|
|
1301
|
+
}
|
|
1127
1302
|
if (ctx.adWillPlayMuted != null) {
|
|
1128
1303
|
params.set("vpmute", ctx.adWillPlayMuted ? "1" : "0");
|
|
1129
1304
|
}
|
|
@@ -1157,6 +1332,9 @@ function applyVastMacros(baseUrl, ctx) {
|
|
|
1157
1332
|
if (ctx.programTitle) {
|
|
1158
1333
|
params.set("ct_ti", ctx.programTitle);
|
|
1159
1334
|
}
|
|
1335
|
+
if (ctx.channelName) {
|
|
1336
|
+
params.set("ct_ch", ctx.channelName);
|
|
1337
|
+
}
|
|
1160
1338
|
var staleKeys = [];
|
|
1161
1339
|
params.forEach(function(value, key) {
|
|
1162
1340
|
if (isMacroPlaceholder2(value)) {
|
|
@@ -1537,7 +1715,7 @@ function sha256Hex(input) {
|
|
|
1537
1715
|
})();
|
|
1538
1716
|
}
|
|
1539
1717
|
function resolvePlayerIdentitySeed(clientInfo) {
|
|
1540
|
-
var nativeDeviceId = resolveNativeDeviceId();
|
|
1718
|
+
var nativeDeviceId = resolveNativeDeviceId(clientInfo.isSmartTV);
|
|
1541
1719
|
if (nativeDeviceId) {
|
|
1542
1720
|
return "device:".concat(nativeDeviceId);
|
|
1543
1721
|
}
|
|
@@ -2201,7 +2379,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
2201
2379
|
pageUrl: !envSignals.isCtv && typeof window !== "undefined" ? toDevSafeUrl(window.location.href) : void 0,
|
|
2202
2380
|
adWillPlayMuted: adWillPlayMuted,
|
|
2203
2381
|
adWillAutoPlay: !!this.config.autoplay,
|
|
2204
|
-
sessionId: envSignals.sessionId,
|
|
2382
|
+
sessionId: envSignals.isCtv || this.consentSignals.storageAllowed !== false ? envSignals.sessionId : void 0,
|
|
2205
2383
|
deviceId: envSignals.deviceId,
|
|
2206
2384
|
deviceIdType: envSignals.deviceIdType,
|
|
2207
2385
|
limitAdTracking: envSignals.limitAdTracking,
|
|
@@ -2209,6 +2387,8 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
2209
2387
|
adTest: this.config.adTest
|
|
2210
2388
|
}, this.config.programTitle ? {
|
|
2211
2389
|
programTitle: this.config.programTitle
|
|
2390
|
+
} : {}, this.config.channelName ? {
|
|
2391
|
+
channelName: this.config.channelName
|
|
2212
2392
|
} : {}), {
|
|
2213
2393
|
consent: this.consentSignals
|
|
2214
2394
|
}));
|