stormcloud-video-player 0.8.74 → 0.8.76
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/dist/stormcloud-vp.min.js +1 -1
- package/lib/Player.cjs +10 -12
- package/lib/Player.cjs.map +1 -1
- package/lib/StormcloudPlayer.cjs +165 -79
- package/lib/StormcloudPlayer.cjs.map +1 -1
- package/lib/index.cjs +176 -134
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +1 -1
- package/lib/index.d.ts +5 -19
- package/lib/index.js +170 -132
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +45 -13
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdConfigManager.cjs +19 -4
- package/lib/player/AdConfigManager.cjs.map +1 -1
- package/lib/player/AdConfigManager.d.cts +3 -0
- package/lib/player/EdgePodRequest.cjs +31 -1
- package/lib/player/EdgePodRequest.cjs.map +1 -1
- package/lib/player/EdgePodRequest.d.cts +21 -3
- package/lib/player/FloorLadder.cjs +86 -27
- package/lib/player/FloorLadder.cjs.map +1 -1
- package/lib/player/FloorLadder.d.cts +8 -7
- package/lib/player/StormcloudVideoPlayer.cjs +165 -79
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +3 -9
- package/lib/players/HlsPlayer.cjs +165 -79
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +165 -79
- package/lib/players/index.cjs.map +1 -1
- package/lib/props.cjs +10 -12
- package/lib/props.cjs.map +1 -1
- package/lib/types.d.cts +3 -7
- package/lib/ui/StormcloudVideoPlayer.cjs +169 -140
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/utils/tracking.cjs +7 -0
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/tracking.d.cts +2 -1
- package/lib/utils/vastMacros.cjs +2 -1
- package/lib/utils/vastMacros.cjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StormcloudVideoPlayerConfig, AdFloorLadderConfig } from '../types.cjs';
|
|
2
|
-
import {
|
|
2
|
+
import { FloorLadderBounds, FloorSelector } from './FloorLadder.cjs';
|
|
3
3
|
import './OptimizedPodRequest.cjs';
|
|
4
4
|
|
|
5
5
|
declare class StormcloudVideoPlayer {
|
|
@@ -19,19 +19,13 @@ declare class StormcloudVideoPlayer {
|
|
|
19
19
|
private readonly hlsEngine;
|
|
20
20
|
private readonly adBreak;
|
|
21
21
|
private readonly floorLadder;
|
|
22
|
-
private floorLadderEnabled;
|
|
23
22
|
private edgePodBaseUrl;
|
|
24
23
|
constructor(config: StormcloudVideoPlayerConfig);
|
|
25
24
|
private get debug();
|
|
26
25
|
private createAdPlayer;
|
|
27
|
-
private
|
|
28
|
-
setAdFloorLadder(update: Partial<AdFloorLadderConfig>): FloorLadderValidationReport;
|
|
29
|
-
setAdFloorLadderEnabled(enabled: boolean): void;
|
|
26
|
+
private applyFloorLadderFromApi;
|
|
30
27
|
isAdFloorLadderEnabled(): boolean;
|
|
31
|
-
|
|
32
|
-
enableEdgePodRequest?: boolean;
|
|
33
|
-
edgePodUrl?: string;
|
|
34
|
-
}): void;
|
|
28
|
+
private applyEdgePodFromApi;
|
|
35
29
|
getEdgePodUrl(): string | undefined;
|
|
36
30
|
private warnOnInvalidFloorLadder;
|
|
37
31
|
getAdFloorLadder(): AdFloorLadderConfig;
|
|
@@ -1392,9 +1392,10 @@ function resolveScvpMacroValues(ctx) {
|
|
|
1392
1392
|
var deviceId = (_ctx_deviceId = ctx.deviceId) === null || _ctx_deviceId === void 0 ? void 0 : _ctx_deviceId.trim();
|
|
1393
1393
|
var deviceIdType = deviceId ? ((_ctx_deviceIdType = ctx.deviceIdType) === null || _ctx_deviceIdType === void 0 ? void 0 : _ctx_deviceIdType.trim()) || inferDeviceIdType() : void 0;
|
|
1394
1394
|
if (deviceId && deviceIdType) {
|
|
1395
|
+
var _toFlag;
|
|
1395
1396
|
set("RDID", deviceId);
|
|
1396
1397
|
set("IDTYPE", deviceIdType);
|
|
1397
|
-
set("IS-LAT", toFlag(ctx.limitAdTracking));
|
|
1398
|
+
set("IS-LAT", (_toFlag = toFlag(ctx.limitAdTracking)) !== null && _toFlag !== void 0 ? _toFlag : "0");
|
|
1398
1399
|
}
|
|
1399
1400
|
set("SID", ctx.sessionId);
|
|
1400
1401
|
set("DTH", ctx.deviceTypeHint);
|
|
@@ -1729,21 +1730,19 @@ function fetchConsentSignals() {
|
|
|
1729
1730
|
});
|
|
1730
1731
|
}
|
|
1731
1732
|
// src/player/FloorLadder.ts
|
|
1732
|
-
var
|
|
1733
|
+
var DISABLED_FLOOR_LADDER_CONFIG = Object.freeze({
|
|
1733
1734
|
enabled: false,
|
|
1734
|
-
targetingKey: "
|
|
1735
|
-
minFloorCents:
|
|
1736
|
-
maxFloorCents:
|
|
1737
|
-
stepCents:
|
|
1738
|
-
selectedFloorCents:
|
|
1739
|
-
fallbackFloorCents:
|
|
1735
|
+
targetingKey: "",
|
|
1736
|
+
minFloorCents: 0,
|
|
1737
|
+
maxFloorCents: 0,
|
|
1738
|
+
stepCents: 0,
|
|
1739
|
+
selectedFloorCents: 0,
|
|
1740
|
+
fallbackFloorCents: 0,
|
|
1740
1741
|
readyFloorCents: [],
|
|
1741
1742
|
mode: "fixed",
|
|
1742
|
-
allowedPositions: [
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
|
|
1746
|
-
configurationVersion: "2026-09-29.1"
|
|
1743
|
+
allowedPositions: [],
|
|
1744
|
+
targetAdUnitPath: "",
|
|
1745
|
+
configurationVersion: ""
|
|
1747
1746
|
});
|
|
1748
1747
|
var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
|
|
1749
1748
|
minCents: 25,
|
|
@@ -1762,15 +1761,6 @@ function generateFloorLevels(minCents, maxCents, stepCents) {
|
|
|
1762
1761
|
}
|
|
1763
1762
|
return levels;
|
|
1764
1763
|
}
|
|
1765
|
-
function resolveFloorLadderBounds() {
|
|
1766
|
-
var overrides = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
1767
|
-
var _overrides_minCents, _overrides_maxCents, _overrides_stepCents;
|
|
1768
|
-
return {
|
|
1769
|
-
minCents: (_overrides_minCents = overrides.minCents) !== null && _overrides_minCents !== void 0 ? _overrides_minCents : DEFAULT_FLOOR_LADDER_BOUNDS.minCents,
|
|
1770
|
-
maxCents: (_overrides_maxCents = overrides.maxCents) !== null && _overrides_maxCents !== void 0 ? _overrides_maxCents : DEFAULT_FLOOR_LADDER_BOUNDS.maxCents,
|
|
1771
|
-
stepCents: (_overrides_stepCents = overrides.stepCents) !== null && _overrides_stepCents !== void 0 ? _overrides_stepCents : DEFAULT_FLOOR_LADDER_BOUNDS.stepCents
|
|
1772
|
-
};
|
|
1773
|
-
}
|
|
1774
1764
|
function validateFloorCents(value, config) {
|
|
1775
1765
|
var bounds = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
1776
1766
|
if (!isInteger(value)) return {
|
|
@@ -1902,7 +1892,6 @@ function resolveOpportunityFloor(config, context) {
|
|
|
1902
1892
|
if (!config.enabled) return skipped("disabled");
|
|
1903
1893
|
var positions = Array.isArray(config.allowedPositions) ? config.allowedPositions : [];
|
|
1904
1894
|
if (positions.indexOf(context.position) === -1) return skipped("position_not_allowed");
|
|
1905
|
-
if (context.isCtv) return skipped("ctv_excluded");
|
|
1906
1895
|
if (!config.targetingKey) return skipped("missing_targeting_key");
|
|
1907
1896
|
if (!config.targetAdUnitPath) return skipped("missing_target_ad_unit");
|
|
1908
1897
|
var result;
|
|
@@ -2056,15 +2045,80 @@ function mergeDefined(target, update) {
|
|
|
2056
2045
|
}
|
|
2057
2046
|
return copyConfig(next);
|
|
2058
2047
|
}
|
|
2048
|
+
var AD_POSITIONS = [
|
|
2049
|
+
"preroll",
|
|
2050
|
+
"midroll",
|
|
2051
|
+
"postroll"
|
|
2052
|
+
];
|
|
2053
|
+
function finiteNumber(value) {
|
|
2054
|
+
return typeof value === "number" && isFinite(value) ? value : void 0;
|
|
2055
|
+
}
|
|
2056
|
+
function parseApiFloorLadder(raw) {
|
|
2057
|
+
if (!raw || (typeof raw === "undefined" ? "undefined" : _type_of(raw)) !== "object" || Array.isArray(raw)) return void 0;
|
|
2058
|
+
var src = raw;
|
|
2059
|
+
var out = {};
|
|
2060
|
+
if (typeof src.enabled === "boolean") out.enabled = src.enabled;
|
|
2061
|
+
if (typeof src.targetingKey === "string") out.targetingKey = src.targetingKey;
|
|
2062
|
+
if (typeof src.targetAdUnitPath === "string") out.targetAdUnitPath = src.targetAdUnitPath;
|
|
2063
|
+
if (typeof src.configurationVersion === "string") out.configurationVersion = src.configurationVersion;
|
|
2064
|
+
if (typeof src.mode === "string") out.mode = src.mode;
|
|
2065
|
+
var min = finiteNumber(src.minFloorCents);
|
|
2066
|
+
var max = finiteNumber(src.maxFloorCents);
|
|
2067
|
+
var step = finiteNumber(src.stepCents);
|
|
2068
|
+
var selected = finiteNumber(src.selectedFloorCents);
|
|
2069
|
+
var fallback = finiteNumber(src.fallbackFloorCents);
|
|
2070
|
+
if (min !== void 0) out.minFloorCents = min;
|
|
2071
|
+
if (max !== void 0) out.maxFloorCents = max;
|
|
2072
|
+
if (step !== void 0) out.stepCents = step;
|
|
2073
|
+
if (selected !== void 0) out.selectedFloorCents = selected;
|
|
2074
|
+
if (fallback !== void 0) out.fallbackFloorCents = fallback;
|
|
2075
|
+
if (Array.isArray(src.readyFloorCents)) {
|
|
2076
|
+
out.readyFloorCents = src.readyFloorCents.filter(function(cents) {
|
|
2077
|
+
return finiteNumber(cents) !== void 0;
|
|
2078
|
+
});
|
|
2079
|
+
}
|
|
2080
|
+
if (Array.isArray(src.allowedPositions)) {
|
|
2081
|
+
out.allowedPositions = src.allowedPositions.filter(function(position) {
|
|
2082
|
+
return AD_POSITIONS.indexOf(position) !== -1;
|
|
2083
|
+
});
|
|
2084
|
+
}
|
|
2085
|
+
return out;
|
|
2086
|
+
}
|
|
2059
2087
|
var FloorLadderController = /*#__PURE__*/ function() {
|
|
2060
|
-
function FloorLadderController(
|
|
2061
|
-
var selector = arguments.length >
|
|
2088
|
+
function FloorLadderController() {
|
|
2089
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : fixedFloorSelector;
|
|
2062
2090
|
_class_call_check(this, FloorLadderController);
|
|
2063
|
-
this.
|
|
2064
|
-
this.
|
|
2091
|
+
this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
2092
|
+
this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
|
|
2065
2093
|
this.selector = selector;
|
|
2066
2094
|
}
|
|
2067
2095
|
_create_class(FloorLadderController, [
|
|
2096
|
+
{
|
|
2097
|
+
key: "isEnabled",
|
|
2098
|
+
value: function isEnabled() {
|
|
2099
|
+
return this.config.enabled === true;
|
|
2100
|
+
}
|
|
2101
|
+
},
|
|
2102
|
+
{
|
|
2103
|
+
key: "applyApiConfig",
|
|
2104
|
+
value: function applyApiConfig(raw) {
|
|
2105
|
+
var parsed = parseApiFloorLadder(raw);
|
|
2106
|
+
this.config = mergeDefined(copyConfig(DISABLED_FLOOR_LADDER_CONFIG), parsed);
|
|
2107
|
+
this.bounds = Object.freeze({
|
|
2108
|
+
minCents: this.config.minFloorCents,
|
|
2109
|
+
maxCents: this.config.maxFloorCents,
|
|
2110
|
+
stepCents: this.config.stepCents
|
|
2111
|
+
});
|
|
2112
|
+
return validateFloorLadderConfig(this.config, this.bounds);
|
|
2113
|
+
}
|
|
2114
|
+
},
|
|
2115
|
+
{
|
|
2116
|
+
key: "reset",
|
|
2117
|
+
value: function reset() {
|
|
2118
|
+
this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
|
|
2119
|
+
this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
2120
|
+
}
|
|
2121
|
+
},
|
|
2068
2122
|
{
|
|
2069
2123
|
key: "get",
|
|
2070
2124
|
value: function get() {
|
|
@@ -2077,13 +2131,6 @@ var FloorLadderController = /*#__PURE__*/ function() {
|
|
|
2077
2131
|
return _object_spread({}, this.bounds);
|
|
2078
2132
|
}
|
|
2079
2133
|
},
|
|
2080
|
-
{
|
|
2081
|
-
key: "update",
|
|
2082
|
-
value: function update(update) {
|
|
2083
|
-
this.config = mergeDefined(this.config, update);
|
|
2084
|
-
return validateFloorLadderConfig(this.config, this.bounds);
|
|
2085
|
-
}
|
|
2086
|
-
},
|
|
2087
2134
|
{
|
|
2088
2135
|
key: "validate",
|
|
2089
2136
|
value: function validate() {
|
|
@@ -6316,6 +6363,9 @@ function resolvePlayerIdentitySeed(clientInfo) {
|
|
|
6316
6363
|
}
|
|
6317
6364
|
return "fingerprint:".concat(JSON.stringify(clientInfo));
|
|
6318
6365
|
}
|
|
6366
|
+
function getCachedBrowserId() {
|
|
6367
|
+
return cachedBrowserId !== null && cachedBrowserId !== void 0 ? cachedBrowserId : void 0;
|
|
6368
|
+
}
|
|
6319
6369
|
function getBrowserID(clientInfo) {
|
|
6320
6370
|
return _async_to_generator(function() {
|
|
6321
6371
|
return _ts_generator(this, function(_state) {
|
|
@@ -7985,7 +8035,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
7985
8035
|
key: "fetchAdConfiguration",
|
|
7986
8036
|
value: function fetchAdConfiguration() {
|
|
7987
8037
|
return _async_to_generator(function() {
|
|
7988
|
-
var _data_response_ima_publisherdeskima, _data_response_ima,
|
|
8038
|
+
var _data_response, _data_response1, _data_response2, _data_response_ima_publisherdeskima, _data_response_ima, _data_response3, _data_response_options_vast_cue_tones, _data_response_options_vast, _data_response_options, _data_response4, apiUrl, headers, response, data, apiEnableEdge, apiEdgeUrl, imaPayload, decodedPayload, numberAds;
|
|
7989
8039
|
return _ts_generator(this, function(_state) {
|
|
7990
8040
|
switch(_state.label){
|
|
7991
8041
|
case 0:
|
|
@@ -8045,7 +8095,21 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
8045
8095
|
];
|
|
8046
8096
|
case 4:
|
|
8047
8097
|
data = _state.sent();
|
|
8048
|
-
|
|
8098
|
+
apiEnableEdge = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : _data_response.enableEdgePodRequest;
|
|
8099
|
+
apiEdgeUrl = (_data_response1 = data.response) === null || _data_response1 === void 0 ? void 0 : _data_response1.edgePodUrl;
|
|
8100
|
+
this.apiEnableEdgePodRequest = typeof apiEnableEdge === "boolean" ? apiEnableEdge : void 0;
|
|
8101
|
+
this.apiEdgePodUrl = typeof apiEdgeUrl === "string" ? apiEdgeUrl : void 0;
|
|
8102
|
+
if (this.debug) {
|
|
8103
|
+
console.log("[StormcloudVideoPlayer] Edge pod settings from API:", {
|
|
8104
|
+
enableEdgePodRequest: this.apiEnableEdgePodRequest,
|
|
8105
|
+
edgePodUrl: this.apiEdgePodUrl
|
|
8106
|
+
});
|
|
8107
|
+
}
|
|
8108
|
+
this.apiFloorLadder = (_data_response2 = data.response) === null || _data_response2 === void 0 ? void 0 : _data_response2.floorLadder;
|
|
8109
|
+
if (this.debug) {
|
|
8110
|
+
console.log(this.apiFloorLadder ? "[StormcloudVideoPlayer] Floor ladder from API:" : "[StormcloudVideoPlayer] No floorLadder block in /ads/web response", this.apiFloorLadder);
|
|
8111
|
+
}
|
|
8112
|
+
imaPayload = (_data_response3 = data.response) === null || _data_response3 === void 0 ? void 0 : (_data_response_ima = _data_response3.ima) === null || _data_response_ima === void 0 ? void 0 : (_data_response_ima_publisherdeskima = _data_response_ima["publisherdesk.ima"]) === null || _data_response_ima_publisherdeskima === void 0 ? void 0 : _data_response_ima_publisherdeskima.payload;
|
|
8049
8113
|
if (imaPayload) {
|
|
8050
8114
|
decodedPayload = imaPayload;
|
|
8051
8115
|
try {
|
|
@@ -8063,7 +8127,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
8063
8127
|
console.warn("[StormcloudVideoPlayer] No VAST tag URL found in /ads/web response");
|
|
8064
8128
|
}
|
|
8065
8129
|
}
|
|
8066
|
-
numberAds = (
|
|
8130
|
+
numberAds = (_data_response4 = data.response) === null || _data_response4 === void 0 ? void 0 : (_data_response_options = _data_response4.options) === null || _data_response_options === void 0 ? void 0 : (_data_response_options_vast = _data_response_options.vast) === null || _data_response_options_vast === void 0 ? void 0 : (_data_response_options_vast_cue_tones = _data_response_options_vast.cue_tones) === null || _data_response_options_vast_cue_tones === void 0 ? void 0 : _data_response_options_vast_cue_tones.number_ads;
|
|
8067
8131
|
if (numberAds != null && numberAds > 0) {
|
|
8068
8132
|
this.apiNumberAds = numberAds;
|
|
8069
8133
|
if (this.debug) {
|
|
@@ -9897,7 +9961,23 @@ function resolveEdgePodBaseUrl(config) {
|
|
|
9897
9961
|
return void 0;
|
|
9898
9962
|
}
|
|
9899
9963
|
}
|
|
9964
|
+
function resolveEdgePodRequestContext(config) {
|
|
9965
|
+
var extra = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
9966
|
+
return {
|
|
9967
|
+
width: extra.width,
|
|
9968
|
+
height: extra.height,
|
|
9969
|
+
playerId: extra.playerId,
|
|
9970
|
+
contentNetwork: config.contentNetwork,
|
|
9971
|
+
contentChannel: config.channelName,
|
|
9972
|
+
contentTitle: config.programTitle
|
|
9973
|
+
};
|
|
9974
|
+
}
|
|
9975
|
+
function setOptionalParam(url, key, value) {
|
|
9976
|
+
var trimmed = value === null || value === void 0 ? void 0 : value.trim();
|
|
9977
|
+
if (trimmed) url.searchParams.set(key, trimmed);
|
|
9978
|
+
}
|
|
9900
9979
|
function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
|
|
9980
|
+
var context = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
|
9901
9981
|
var url = new URL(baseUrl);
|
|
9902
9982
|
var maxMs = Math.max(0, Math.floor(remainingMs));
|
|
9903
9983
|
var maxAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, Math.floor(remainingAdLimit)));
|
|
@@ -9905,6 +9985,16 @@ function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
|
|
|
9905
9985
|
url.searchParams.set("pmad", String(maxAds));
|
|
9906
9986
|
url.searchParams.set("duration", String(Math.floor(maxMs / 1e3)));
|
|
9907
9987
|
url.searchParams.set("count", String(maxAds));
|
|
9988
|
+
if (context.width != null && Number.isFinite(context.width) && context.width > 0) {
|
|
9989
|
+
url.searchParams.set("width", String(Math.round(context.width)));
|
|
9990
|
+
}
|
|
9991
|
+
if (context.height != null && Number.isFinite(context.height) && context.height > 0) {
|
|
9992
|
+
url.searchParams.set("height", String(Math.round(context.height)));
|
|
9993
|
+
}
|
|
9994
|
+
setOptionalParam(url, "pid", context.playerId);
|
|
9995
|
+
setOptionalParam(url, "cn", context.contentNetwork);
|
|
9996
|
+
setOptionalParam(url, "cc", context.contentChannel);
|
|
9997
|
+
setOptionalParam(url, "ct", context.contentTitle);
|
|
9908
9998
|
return url.toString();
|
|
9909
9999
|
}
|
|
9910
10000
|
function classifyEdgeVastResponse(result) {
|
|
@@ -10792,7 +10882,12 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10792
10882
|
return void 0;
|
|
10793
10883
|
}
|
|
10794
10884
|
try {
|
|
10795
|
-
|
|
10885
|
+
var playerId = getCachedBrowserId();
|
|
10886
|
+
return buildEdgePodUrl(baseUrl, remainingMs, remainingAds, resolveEdgePodRequestContext(this.host.config, {
|
|
10887
|
+
width: this.host.video.offsetWidth || this.host.video.clientWidth,
|
|
10888
|
+
height: this.host.video.offsetHeight || this.host.video.clientHeight,
|
|
10889
|
+
playerId: playerId
|
|
10890
|
+
}));
|
|
10796
10891
|
} catch (unused) {
|
|
10797
10892
|
this.markEdgeExhausted("invalid_edge_url");
|
|
10798
10893
|
return void 0;
|
|
@@ -12302,14 +12397,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12302
12397
|
this.config = _object_spread({}, browserOverrides, config);
|
|
12303
12398
|
this.video = config.videoElement;
|
|
12304
12399
|
logBrowserInfo(config.debugAdTiming);
|
|
12305
|
-
|
|
12306
|
-
if (this.config.adFloorMinCents != null) floorBounds.minCents = this.config.adFloorMinCents;
|
|
12307
|
-
if (this.config.adFloorMaxCents != null) floorBounds.maxCents = this.config.adFloorMaxCents;
|
|
12308
|
-
if (this.config.adFloorStepCents != null) floorBounds.stepCents = this.config.adFloorStepCents;
|
|
12309
|
-
this.floorLadder = new FloorLadderController(this.config.adFloorLadder, floorBounds);
|
|
12310
|
-
this.floorLadderEnabled = this.config.adFloorLadderEnabled === true;
|
|
12311
|
-
this.warnOnInvalidFloorLadder(this.floorLadder.validate());
|
|
12312
|
-
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
12400
|
+
this.floorLadder = new FloorLadderController();
|
|
12313
12401
|
this.adPlayer = this.createAdPlayer(false);
|
|
12314
12402
|
this.palNonce = createPalNonceManager();
|
|
12315
12403
|
this.cueManager = new Scte35CueManager(!!this.config.debugAdTiming, {
|
|
@@ -12416,9 +12504,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12416
12504
|
return _this.edgePodBaseUrl;
|
|
12417
12505
|
},
|
|
12418
12506
|
getFloorSnapshot: function getFloorSnapshot(position) {
|
|
12419
|
-
return _this.
|
|
12420
|
-
position: position
|
|
12421
|
-
isCtv: _this.isCtvEnvironment()
|
|
12507
|
+
return _this.floorLadder.isEnabled() ? _this.floorLadder.snapshotFor({
|
|
12508
|
+
position: position
|
|
12422
12509
|
}) : void 0;
|
|
12423
12510
|
},
|
|
12424
12511
|
onAdClick: function onAdClick() {
|
|
@@ -12455,45 +12542,42 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12455
12542
|
}
|
|
12456
12543
|
},
|
|
12457
12544
|
{
|
|
12458
|
-
key: "
|
|
12459
|
-
value: function
|
|
12460
|
-
|
|
12461
|
-
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
|
|
12465
|
-
|
|
12466
|
-
key: "setAdFloorLadder",
|
|
12467
|
-
value: function setAdFloorLadder(update) {
|
|
12468
|
-
var report = this.floorLadder.update(update);
|
|
12545
|
+
key: "applyFloorLadderFromApi",
|
|
12546
|
+
value: function applyFloorLadderFromApi() {
|
|
12547
|
+
var raw = this.adConfig.apiFloorLadder;
|
|
12548
|
+
if (raw == null) {
|
|
12549
|
+
this.floorLadder.reset();
|
|
12550
|
+
return;
|
|
12551
|
+
}
|
|
12552
|
+
var report = this.floorLadder.applyApiConfig(raw);
|
|
12469
12553
|
this.warnOnInvalidFloorLadder(report);
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12474
|
-
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
if (enabled) this.warnOnInvalidFloorLadder(this.floorLadder.validate());
|
|
12554
|
+
if (this.debug) {
|
|
12555
|
+
console.log("[AdBreak][FLOOR] configuration applied from API", {
|
|
12556
|
+
config: this.floorLadder.get(),
|
|
12557
|
+
bounds: this.floorLadder.getBounds(),
|
|
12558
|
+
validation: report
|
|
12559
|
+
});
|
|
12560
|
+
}
|
|
12478
12561
|
}
|
|
12479
12562
|
},
|
|
12480
12563
|
{
|
|
12481
12564
|
key: "isAdFloorLadderEnabled",
|
|
12482
12565
|
value: function isAdFloorLadderEnabled() {
|
|
12483
|
-
return this.
|
|
12566
|
+
return this.floorLadder.isEnabled();
|
|
12484
12567
|
}
|
|
12485
12568
|
},
|
|
12486
12569
|
{
|
|
12487
|
-
key: "
|
|
12488
|
-
value: function
|
|
12489
|
-
|
|
12490
|
-
|
|
12570
|
+
key: "applyEdgePodFromApi",
|
|
12571
|
+
value: function applyEdgePodFromApi() {
|
|
12572
|
+
this.edgePodBaseUrl = resolveEdgePodBaseUrl({
|
|
12573
|
+
enableEdgePodRequest: this.adConfig.apiEnableEdgePodRequest,
|
|
12574
|
+
edgePodUrl: this.adConfig.apiEdgePodUrl,
|
|
12575
|
+
licenseKey: this.config.licenseKey
|
|
12576
|
+
});
|
|
12577
|
+
if (this.debug) {
|
|
12578
|
+
var _this_edgePodBaseUrl;
|
|
12579
|
+
console.log("[AdBreak][EDGE] edge pod base URL from API:", (_this_edgePodBaseUrl = this.edgePodBaseUrl) !== null && _this_edgePodBaseUrl !== void 0 ? _this_edgePodBaseUrl : "(disabled; GAM only)");
|
|
12491
12580
|
}
|
|
12492
|
-
if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
|
|
12493
|
-
else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
|
|
12494
|
-
if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
|
|
12495
|
-
else this.config.edgePodUrl = update.edgePodUrl;
|
|
12496
|
-
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
12497
12581
|
}
|
|
12498
12582
|
},
|
|
12499
12583
|
{
|
|
@@ -12506,7 +12590,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12506
12590
|
key: "warnOnInvalidFloorLadder",
|
|
12507
12591
|
value: function warnOnInvalidFloorLadder(report) {
|
|
12508
12592
|
var config = this.floorLadder.get();
|
|
12509
|
-
if (report.ok || !
|
|
12593
|
+
if (report.ok || !config.enabled) return;
|
|
12510
12594
|
console.warn("[AdBreak][FLOOR] configuration has issues; invalid floors will not be sent", {
|
|
12511
12595
|
errors: report.errors,
|
|
12512
12596
|
configurationVersion: config.configurationVersion,
|
|
@@ -12581,6 +12665,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12581
12665
|
4
|
|
12582
12666
|
];
|
|
12583
12667
|
case 4:
|
|
12668
|
+
this.applyFloorLadderFromApi();
|
|
12669
|
+
this.applyEdgePodFromApi();
|
|
12584
12670
|
palDescriptionUrl = this.config.ctvAdRequest ? this.adConfig.getPalDescriptionUrl() : void 0;
|
|
12585
12671
|
fetchConsentSignals().catch(function() {
|
|
12586
12672
|
return {};
|