stormcloud-video-player 0.8.75 → 0.8.77
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/Player.d.cts +9 -1
- package/lib/StormcloudPlayer.cjs +173 -78
- package/lib/StormcloudPlayer.cjs.map +1 -1
- package/lib/index.cjs +184 -133
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +1 -1
- package/lib/index.d.ts +9 -19
- package/lib/index.js +178 -131
- 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 +17 -3
- 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 +163 -78
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +3 -9
- package/lib/players/HlsPlayer.cjs +169 -78
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +169 -78
- package/lib/players/index.cjs.map +1 -1
- package/lib/props.cjs +10 -12
- package/lib/props.cjs.map +1 -1
- package/lib/props.d.cts +5 -1
- package/lib/types.d.cts +3 -7
- package/lib/ui/StormcloudVideoPlayer.cjs +167 -139
- 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/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;
|
|
@@ -1730,21 +1730,19 @@ function fetchConsentSignals() {
|
|
|
1730
1730
|
});
|
|
1731
1731
|
}
|
|
1732
1732
|
// src/player/FloorLadder.ts
|
|
1733
|
-
var
|
|
1733
|
+
var DISABLED_FLOOR_LADDER_CONFIG = Object.freeze({
|
|
1734
1734
|
enabled: false,
|
|
1735
|
-
targetingKey: "
|
|
1736
|
-
minFloorCents:
|
|
1737
|
-
maxFloorCents:
|
|
1738
|
-
stepCents:
|
|
1739
|
-
selectedFloorCents:
|
|
1740
|
-
fallbackFloorCents:
|
|
1735
|
+
targetingKey: "",
|
|
1736
|
+
minFloorCents: 0,
|
|
1737
|
+
maxFloorCents: 0,
|
|
1738
|
+
stepCents: 0,
|
|
1739
|
+
selectedFloorCents: 0,
|
|
1740
|
+
fallbackFloorCents: 0,
|
|
1741
1741
|
readyFloorCents: [],
|
|
1742
1742
|
mode: "fixed",
|
|
1743
|
-
allowedPositions: [
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
|
|
1747
|
-
configurationVersion: "2026-09-29.1"
|
|
1743
|
+
allowedPositions: [],
|
|
1744
|
+
targetAdUnitPath: "",
|
|
1745
|
+
configurationVersion: ""
|
|
1748
1746
|
});
|
|
1749
1747
|
var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
|
|
1750
1748
|
minCents: 25,
|
|
@@ -1763,15 +1761,6 @@ function generateFloorLevels(minCents, maxCents, stepCents) {
|
|
|
1763
1761
|
}
|
|
1764
1762
|
return levels;
|
|
1765
1763
|
}
|
|
1766
|
-
function resolveFloorLadderBounds() {
|
|
1767
|
-
var overrides = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
1768
|
-
var _overrides_minCents, _overrides_maxCents, _overrides_stepCents;
|
|
1769
|
-
return {
|
|
1770
|
-
minCents: (_overrides_minCents = overrides.minCents) !== null && _overrides_minCents !== void 0 ? _overrides_minCents : DEFAULT_FLOOR_LADDER_BOUNDS.minCents,
|
|
1771
|
-
maxCents: (_overrides_maxCents = overrides.maxCents) !== null && _overrides_maxCents !== void 0 ? _overrides_maxCents : DEFAULT_FLOOR_LADDER_BOUNDS.maxCents,
|
|
1772
|
-
stepCents: (_overrides_stepCents = overrides.stepCents) !== null && _overrides_stepCents !== void 0 ? _overrides_stepCents : DEFAULT_FLOOR_LADDER_BOUNDS.stepCents
|
|
1773
|
-
};
|
|
1774
|
-
}
|
|
1775
1764
|
function validateFloorCents(value, config) {
|
|
1776
1765
|
var bounds = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
1777
1766
|
if (!isInteger(value)) return {
|
|
@@ -1903,7 +1892,6 @@ function resolveOpportunityFloor(config, context) {
|
|
|
1903
1892
|
if (!config.enabled) return skipped("disabled");
|
|
1904
1893
|
var positions = Array.isArray(config.allowedPositions) ? config.allowedPositions : [];
|
|
1905
1894
|
if (positions.indexOf(context.position) === -1) return skipped("position_not_allowed");
|
|
1906
|
-
if (context.isCtv) return skipped("ctv_excluded");
|
|
1907
1895
|
if (!config.targetingKey) return skipped("missing_targeting_key");
|
|
1908
1896
|
if (!config.targetAdUnitPath) return skipped("missing_target_ad_unit");
|
|
1909
1897
|
var result;
|
|
@@ -2057,15 +2045,80 @@ function mergeDefined(target, update) {
|
|
|
2057
2045
|
}
|
|
2058
2046
|
return copyConfig(next);
|
|
2059
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
|
+
}
|
|
2060
2087
|
var FloorLadderController = /*#__PURE__*/ function() {
|
|
2061
|
-
function FloorLadderController(
|
|
2062
|
-
var selector = arguments.length >
|
|
2088
|
+
function FloorLadderController() {
|
|
2089
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : fixedFloorSelector;
|
|
2063
2090
|
_class_call_check(this, FloorLadderController);
|
|
2064
|
-
this.
|
|
2065
|
-
this.
|
|
2091
|
+
this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
2092
|
+
this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
|
|
2066
2093
|
this.selector = selector;
|
|
2067
2094
|
}
|
|
2068
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
|
+
},
|
|
2069
2122
|
{
|
|
2070
2123
|
key: "get",
|
|
2071
2124
|
value: function get() {
|
|
@@ -2078,13 +2131,6 @@ var FloorLadderController = /*#__PURE__*/ function() {
|
|
|
2078
2131
|
return _object_spread({}, this.bounds);
|
|
2079
2132
|
}
|
|
2080
2133
|
},
|
|
2081
|
-
{
|
|
2082
|
-
key: "update",
|
|
2083
|
-
value: function update(update) {
|
|
2084
|
-
this.config = mergeDefined(this.config, update);
|
|
2085
|
-
return validateFloorLadderConfig(this.config, this.bounds);
|
|
2086
|
-
}
|
|
2087
|
-
},
|
|
2088
2134
|
{
|
|
2089
2135
|
key: "validate",
|
|
2090
2136
|
value: function validate() {
|
|
@@ -6317,6 +6363,9 @@ function resolvePlayerIdentitySeed(clientInfo) {
|
|
|
6317
6363
|
}
|
|
6318
6364
|
return "fingerprint:".concat(JSON.stringify(clientInfo));
|
|
6319
6365
|
}
|
|
6366
|
+
function getCachedBrowserId() {
|
|
6367
|
+
return cachedBrowserId !== null && cachedBrowserId !== void 0 ? cachedBrowserId : void 0;
|
|
6368
|
+
}
|
|
6320
6369
|
function getBrowserID(clientInfo) {
|
|
6321
6370
|
return _async_to_generator(function() {
|
|
6322
6371
|
return _ts_generator(this, function(_state) {
|
|
@@ -7986,7 +8035,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
7986
8035
|
key: "fetchAdConfiguration",
|
|
7987
8036
|
value: function fetchAdConfiguration() {
|
|
7988
8037
|
return _async_to_generator(function() {
|
|
7989
|
-
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;
|
|
7990
8039
|
return _ts_generator(this, function(_state) {
|
|
7991
8040
|
switch(_state.label){
|
|
7992
8041
|
case 0:
|
|
@@ -8046,7 +8095,21 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
8046
8095
|
];
|
|
8047
8096
|
case 4:
|
|
8048
8097
|
data = _state.sent();
|
|
8049
|
-
|
|
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;
|
|
8050
8113
|
if (imaPayload) {
|
|
8051
8114
|
decodedPayload = imaPayload;
|
|
8052
8115
|
try {
|
|
@@ -8064,7 +8127,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
8064
8127
|
console.warn("[StormcloudVideoPlayer] No VAST tag URL found in /ads/web response");
|
|
8065
8128
|
}
|
|
8066
8129
|
}
|
|
8067
|
-
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;
|
|
8068
8131
|
if (numberAds != null && numberAds > 0) {
|
|
8069
8132
|
this.apiNumberAds = numberAds;
|
|
8070
8133
|
if (this.debug) {
|
|
@@ -9898,7 +9961,23 @@ function resolveEdgePodBaseUrl(config) {
|
|
|
9898
9961
|
return void 0;
|
|
9899
9962
|
}
|
|
9900
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
|
+
}
|
|
9901
9979
|
function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
|
|
9980
|
+
var context = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
|
9902
9981
|
var url = new URL(baseUrl);
|
|
9903
9982
|
var maxMs = Math.max(0, Math.floor(remainingMs));
|
|
9904
9983
|
var maxAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, Math.floor(remainingAdLimit)));
|
|
@@ -9906,6 +9985,16 @@ function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
|
|
|
9906
9985
|
url.searchParams.set("pmad", String(maxAds));
|
|
9907
9986
|
url.searchParams.set("duration", String(Math.floor(maxMs / 1e3)));
|
|
9908
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);
|
|
9909
9998
|
return url.toString();
|
|
9910
9999
|
}
|
|
9911
10000
|
function classifyEdgeVastResponse(result) {
|
|
@@ -10793,7 +10882,12 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10793
10882
|
return void 0;
|
|
10794
10883
|
}
|
|
10795
10884
|
try {
|
|
10796
|
-
|
|
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
|
+
}));
|
|
10797
10891
|
} catch (unused) {
|
|
10798
10892
|
this.markEdgeExhausted("invalid_edge_url");
|
|
10799
10893
|
return void 0;
|
|
@@ -12303,14 +12397,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12303
12397
|
this.config = _object_spread({}, browserOverrides, config);
|
|
12304
12398
|
this.video = config.videoElement;
|
|
12305
12399
|
logBrowserInfo(config.debugAdTiming);
|
|
12306
|
-
|
|
12307
|
-
if (this.config.adFloorMinCents != null) floorBounds.minCents = this.config.adFloorMinCents;
|
|
12308
|
-
if (this.config.adFloorMaxCents != null) floorBounds.maxCents = this.config.adFloorMaxCents;
|
|
12309
|
-
if (this.config.adFloorStepCents != null) floorBounds.stepCents = this.config.adFloorStepCents;
|
|
12310
|
-
this.floorLadder = new FloorLadderController(this.config.adFloorLadder, floorBounds);
|
|
12311
|
-
this.floorLadderEnabled = this.config.adFloorLadderEnabled === true;
|
|
12312
|
-
this.warnOnInvalidFloorLadder(this.floorLadder.validate());
|
|
12313
|
-
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
12400
|
+
this.floorLadder = new FloorLadderController();
|
|
12314
12401
|
this.adPlayer = this.createAdPlayer(false);
|
|
12315
12402
|
this.palNonce = createPalNonceManager();
|
|
12316
12403
|
this.cueManager = new Scte35CueManager(!!this.config.debugAdTiming, {
|
|
@@ -12417,9 +12504,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12417
12504
|
return _this.edgePodBaseUrl;
|
|
12418
12505
|
},
|
|
12419
12506
|
getFloorSnapshot: function getFloorSnapshot(position) {
|
|
12420
|
-
return _this.
|
|
12421
|
-
position: position
|
|
12422
|
-
isCtv: _this.isCtvEnvironment()
|
|
12507
|
+
return _this.floorLadder.isEnabled() ? _this.floorLadder.snapshotFor({
|
|
12508
|
+
position: position
|
|
12423
12509
|
}) : void 0;
|
|
12424
12510
|
},
|
|
12425
12511
|
onAdClick: function onAdClick() {
|
|
@@ -12456,45 +12542,42 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12456
12542
|
}
|
|
12457
12543
|
},
|
|
12458
12544
|
{
|
|
12459
|
-
key: "
|
|
12460
|
-
value: function
|
|
12461
|
-
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
|
|
12465
|
-
|
|
12466
|
-
|
|
12467
|
-
key: "setAdFloorLadder",
|
|
12468
|
-
value: function setAdFloorLadder(update) {
|
|
12469
|
-
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);
|
|
12470
12553
|
this.warnOnInvalidFloorLadder(report);
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12474
|
-
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
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
|
+
}
|
|
12479
12561
|
}
|
|
12480
12562
|
},
|
|
12481
12563
|
{
|
|
12482
12564
|
key: "isAdFloorLadderEnabled",
|
|
12483
12565
|
value: function isAdFloorLadderEnabled() {
|
|
12484
|
-
return this.
|
|
12566
|
+
return this.floorLadder.isEnabled();
|
|
12485
12567
|
}
|
|
12486
12568
|
},
|
|
12487
12569
|
{
|
|
12488
|
-
key: "
|
|
12489
|
-
value: function
|
|
12490
|
-
|
|
12491
|
-
|
|
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)");
|
|
12492
12580
|
}
|
|
12493
|
-
if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
|
|
12494
|
-
else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
|
|
12495
|
-
if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
|
|
12496
|
-
else this.config.edgePodUrl = update.edgePodUrl;
|
|
12497
|
-
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
12498
12581
|
}
|
|
12499
12582
|
},
|
|
12500
12583
|
{
|
|
@@ -12507,7 +12590,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12507
12590
|
key: "warnOnInvalidFloorLadder",
|
|
12508
12591
|
value: function warnOnInvalidFloorLadder(report) {
|
|
12509
12592
|
var config = this.floorLadder.get();
|
|
12510
|
-
if (report.ok || !
|
|
12593
|
+
if (report.ok || !config.enabled) return;
|
|
12511
12594
|
console.warn("[AdBreak][FLOOR] configuration has issues; invalid floors will not be sent", {
|
|
12512
12595
|
errors: report.errors,
|
|
12513
12596
|
configurationVersion: config.configurationVersion,
|
|
@@ -12582,6 +12665,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12582
12665
|
4
|
|
12583
12666
|
];
|
|
12584
12667
|
case 4:
|
|
12668
|
+
this.applyFloorLadderFromApi();
|
|
12669
|
+
this.applyEdgePodFromApi();
|
|
12585
12670
|
palDescriptionUrl = this.config.ctvAdRequest ? this.adConfig.getPalDescriptionUrl() : void 0;
|
|
12586
12671
|
fetchConsentSignals().catch(function() {
|
|
12587
12672
|
return {};
|
|
@@ -13344,6 +13429,12 @@ var HlsPlayer = /*#__PURE__*/ function(_import_react_Component) {
|
|
|
13344
13429
|
if (_this1.props.adFailsafeTimeoutMs !== void 0) config.adFailsafeTimeoutMs = _this1.props.adFailsafeTimeoutMs;
|
|
13345
13430
|
if (_this1.props.minSegmentsBeforePlay !== void 0) config.minSegmentsBeforePlay = _this1.props.minSegmentsBeforePlay;
|
|
13346
13431
|
if (_this1.props.ctvAdRequest !== void 0) config.ctvAdRequest = _this1.props.ctvAdRequest;
|
|
13432
|
+
if (_this1.props.vastTagUrl !== void 0) config.vastTagUrl = _this1.props.vastTagUrl;
|
|
13433
|
+
if (_this1.props.isVmap !== void 0) config.isVmap = _this1.props.isVmap;
|
|
13434
|
+
if (_this1.props.vmapUrl !== void 0) config.vmapUrl = _this1.props.vmapUrl;
|
|
13435
|
+
if (_this1.props.minRemainingMsToRequestAd !== void 0) config.minRemainingMsToRequestAd = _this1.props.minRemainingMsToRequestAd;
|
|
13436
|
+
if (_this1.props.maxNoFillsPerBreak !== void 0) config.maxNoFillsPerBreak = _this1.props.maxNoFillsPerBreak;
|
|
13437
|
+
if (_this1.props.maxAdBreakExtensionMs !== void 0) config.maxAdBreakExtensionMs = _this1.props.maxAdBreakExtensionMs;
|
|
13347
13438
|
_this1.player = new StormcloudVideoPlayer(config);
|
|
13348
13439
|
(_this_props_onMount = (_this_props = _this1.props).onMount) === null || _this_props_onMount === void 0 ? void 0 : _this_props_onMount.call(_this_props, _this1);
|
|
13349
13440
|
return [
|