stormcloud-video-player 0.8.75 → 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.
Files changed (39) hide show
  1. package/dist/stormcloud-vp.min.js +1 -1
  2. package/lib/Player.cjs +10 -12
  3. package/lib/Player.cjs.map +1 -1
  4. package/lib/Player.d.cts +1 -1
  5. package/lib/StormcloudPlayer.cjs +163 -78
  6. package/lib/StormcloudPlayer.cjs.map +1 -1
  7. package/lib/index.cjs +174 -133
  8. package/lib/index.cjs.map +1 -1
  9. package/lib/index.d.cts +1 -1
  10. package/lib/index.d.ts +5 -19
  11. package/lib/index.js +168 -131
  12. package/lib/index.js.map +1 -1
  13. package/lib/player/AdBreakOrchestrator.cjs +45 -13
  14. package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
  15. package/lib/player/AdConfigManager.cjs +17 -3
  16. package/lib/player/AdConfigManager.cjs.map +1 -1
  17. package/lib/player/AdConfigManager.d.cts +3 -0
  18. package/lib/player/EdgePodRequest.cjs +31 -1
  19. package/lib/player/EdgePodRequest.cjs.map +1 -1
  20. package/lib/player/EdgePodRequest.d.cts +21 -3
  21. package/lib/player/FloorLadder.cjs +86 -27
  22. package/lib/player/FloorLadder.cjs.map +1 -1
  23. package/lib/player/FloorLadder.d.cts +8 -7
  24. package/lib/player/StormcloudVideoPlayer.cjs +163 -78
  25. package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
  26. package/lib/player/StormcloudVideoPlayer.d.cts +3 -9
  27. package/lib/players/HlsPlayer.cjs +163 -78
  28. package/lib/players/HlsPlayer.cjs.map +1 -1
  29. package/lib/players/index.cjs +163 -78
  30. package/lib/players/index.cjs.map +1 -1
  31. package/lib/props.cjs +10 -12
  32. package/lib/props.cjs.map +1 -1
  33. package/lib/types.d.cts +3 -7
  34. package/lib/ui/StormcloudVideoPlayer.cjs +167 -139
  35. package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
  36. package/lib/utils/tracking.cjs +7 -0
  37. package/lib/utils/tracking.cjs.map +1 -1
  38. package/lib/utils/tracking.d.cts +2 -1
  39. package/package.json +1 -1
@@ -1766,21 +1766,19 @@ function fetchConsentSignals() {
1766
1766
  });
1767
1767
  }
1768
1768
  // src/player/FloorLadder.ts
1769
- var DEFAULT_WEB_FLOOR_LADDER_CONFIG = Object.freeze({
1769
+ var DISABLED_FLOOR_LADDER_CONFIG = Object.freeze({
1770
1770
  enabled: false,
1771
- targetingKey: "airytv_web_floor",
1772
- minFloorCents: 25,
1773
- maxFloorCents: 300,
1774
- stepCents: 25,
1775
- selectedFloorCents: 25,
1776
- fallbackFloorCents: 25,
1771
+ targetingKey: "",
1772
+ minFloorCents: 0,
1773
+ maxFloorCents: 0,
1774
+ stepCents: 0,
1775
+ selectedFloorCents: 0,
1776
+ fallbackFloorCents: 0,
1777
1777
  readyFloorCents: [],
1778
1778
  mode: "fixed",
1779
- allowedPositions: [
1780
- "midroll"
1781
- ],
1782
- targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
1783
- configurationVersion: "2026-09-29.1"
1779
+ allowedPositions: [],
1780
+ targetAdUnitPath: "",
1781
+ configurationVersion: ""
1784
1782
  });
1785
1783
  var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
1786
1784
  minCents: 25,
@@ -1799,15 +1797,6 @@ function generateFloorLevels(minCents, maxCents, stepCents) {
1799
1797
  }
1800
1798
  return levels;
1801
1799
  }
1802
- function resolveFloorLadderBounds() {
1803
- var overrides = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
1804
- var _overrides_minCents, _overrides_maxCents, _overrides_stepCents;
1805
- return {
1806
- minCents: (_overrides_minCents = overrides.minCents) !== null && _overrides_minCents !== void 0 ? _overrides_minCents : DEFAULT_FLOOR_LADDER_BOUNDS.minCents,
1807
- maxCents: (_overrides_maxCents = overrides.maxCents) !== null && _overrides_maxCents !== void 0 ? _overrides_maxCents : DEFAULT_FLOOR_LADDER_BOUNDS.maxCents,
1808
- stepCents: (_overrides_stepCents = overrides.stepCents) !== null && _overrides_stepCents !== void 0 ? _overrides_stepCents : DEFAULT_FLOOR_LADDER_BOUNDS.stepCents
1809
- };
1810
- }
1811
1800
  function validateFloorCents(value, config) {
1812
1801
  var bounds = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : DEFAULT_FLOOR_LADDER_BOUNDS;
1813
1802
  if (!isInteger(value)) return {
@@ -1939,7 +1928,6 @@ function resolveOpportunityFloor(config, context) {
1939
1928
  if (!config.enabled) return skipped("disabled");
1940
1929
  var positions = Array.isArray(config.allowedPositions) ? config.allowedPositions : [];
1941
1930
  if (positions.indexOf(context.position) === -1) return skipped("position_not_allowed");
1942
- if (context.isCtv) return skipped("ctv_excluded");
1943
1931
  if (!config.targetingKey) return skipped("missing_targeting_key");
1944
1932
  if (!config.targetAdUnitPath) return skipped("missing_target_ad_unit");
1945
1933
  var result;
@@ -2093,15 +2081,80 @@ function mergeDefined(target, update) {
2093
2081
  }
2094
2082
  return copyConfig(next);
2095
2083
  }
2084
+ var AD_POSITIONS = [
2085
+ "preroll",
2086
+ "midroll",
2087
+ "postroll"
2088
+ ];
2089
+ function finiteNumber(value) {
2090
+ return typeof value === "number" && isFinite(value) ? value : void 0;
2091
+ }
2092
+ function parseApiFloorLadder(raw) {
2093
+ if (!raw || (typeof raw === "undefined" ? "undefined" : _type_of(raw)) !== "object" || Array.isArray(raw)) return void 0;
2094
+ var src = raw;
2095
+ var out = {};
2096
+ if (typeof src.enabled === "boolean") out.enabled = src.enabled;
2097
+ if (typeof src.targetingKey === "string") out.targetingKey = src.targetingKey;
2098
+ if (typeof src.targetAdUnitPath === "string") out.targetAdUnitPath = src.targetAdUnitPath;
2099
+ if (typeof src.configurationVersion === "string") out.configurationVersion = src.configurationVersion;
2100
+ if (typeof src.mode === "string") out.mode = src.mode;
2101
+ var min = finiteNumber(src.minFloorCents);
2102
+ var max = finiteNumber(src.maxFloorCents);
2103
+ var step = finiteNumber(src.stepCents);
2104
+ var selected = finiteNumber(src.selectedFloorCents);
2105
+ var fallback = finiteNumber(src.fallbackFloorCents);
2106
+ if (min !== void 0) out.minFloorCents = min;
2107
+ if (max !== void 0) out.maxFloorCents = max;
2108
+ if (step !== void 0) out.stepCents = step;
2109
+ if (selected !== void 0) out.selectedFloorCents = selected;
2110
+ if (fallback !== void 0) out.fallbackFloorCents = fallback;
2111
+ if (Array.isArray(src.readyFloorCents)) {
2112
+ out.readyFloorCents = src.readyFloorCents.filter(function(cents) {
2113
+ return finiteNumber(cents) !== void 0;
2114
+ });
2115
+ }
2116
+ if (Array.isArray(src.allowedPositions)) {
2117
+ out.allowedPositions = src.allowedPositions.filter(function(position) {
2118
+ return AD_POSITIONS.indexOf(position) !== -1;
2119
+ });
2120
+ }
2121
+ return out;
2122
+ }
2096
2123
  var FloorLadderController = /*#__PURE__*/ function() {
2097
- function FloorLadderController(initial, bounds) {
2098
- var selector = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : fixedFloorSelector;
2124
+ function FloorLadderController() {
2125
+ var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : fixedFloorSelector;
2099
2126
  _class_call_check(this, FloorLadderController);
2100
- this.config = mergeDefined(copyConfig(DEFAULT_WEB_FLOOR_LADDER_CONFIG), initial);
2101
- this.bounds = Object.freeze(resolveFloorLadderBounds(bounds));
2127
+ this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
2128
+ this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
2102
2129
  this.selector = selector;
2103
2130
  }
2104
2131
  _create_class(FloorLadderController, [
2132
+ {
2133
+ key: "isEnabled",
2134
+ value: function isEnabled() {
2135
+ return this.config.enabled === true;
2136
+ }
2137
+ },
2138
+ {
2139
+ key: "applyApiConfig",
2140
+ value: function applyApiConfig(raw) {
2141
+ var parsed = parseApiFloorLadder(raw);
2142
+ this.config = mergeDefined(copyConfig(DISABLED_FLOOR_LADDER_CONFIG), parsed);
2143
+ this.bounds = Object.freeze({
2144
+ minCents: this.config.minFloorCents,
2145
+ maxCents: this.config.maxFloorCents,
2146
+ stepCents: this.config.stepCents
2147
+ });
2148
+ return validateFloorLadderConfig(this.config, this.bounds);
2149
+ }
2150
+ },
2151
+ {
2152
+ key: "reset",
2153
+ value: function reset() {
2154
+ this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
2155
+ this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
2156
+ }
2157
+ },
2105
2158
  {
2106
2159
  key: "get",
2107
2160
  value: function get() {
@@ -2114,13 +2167,6 @@ var FloorLadderController = /*#__PURE__*/ function() {
2114
2167
  return _object_spread({}, this.bounds);
2115
2168
  }
2116
2169
  },
2117
- {
2118
- key: "update",
2119
- value: function update(update) {
2120
- this.config = mergeDefined(this.config, update);
2121
- return validateFloorLadderConfig(this.config, this.bounds);
2122
- }
2123
- },
2124
2170
  {
2125
2171
  key: "validate",
2126
2172
  value: function validate() {
@@ -6353,6 +6399,9 @@ function resolvePlayerIdentitySeed(clientInfo) {
6353
6399
  }
6354
6400
  return "fingerprint:".concat(JSON.stringify(clientInfo));
6355
6401
  }
6402
+ function getCachedBrowserId() {
6403
+ return cachedBrowserId !== null && cachedBrowserId !== void 0 ? cachedBrowserId : void 0;
6404
+ }
6356
6405
  function getBrowserID(clientInfo) {
6357
6406
  return _async_to_generator(function() {
6358
6407
  return _ts_generator(this, function(_state) {
@@ -8022,7 +8071,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
8022
8071
  key: "fetchAdConfiguration",
8023
8072
  value: function fetchAdConfiguration() {
8024
8073
  return _async_to_generator(function() {
8025
- var _data_response_ima_publisherdeskima, _data_response_ima, _data_response, _data_response_options_vast_cue_tones, _data_response_options_vast, _data_response_options, _data_response1, apiUrl, headers, response, data, imaPayload, decodedPayload, numberAds;
8074
+ 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;
8026
8075
  return _ts_generator(this, function(_state) {
8027
8076
  switch(_state.label){
8028
8077
  case 0:
@@ -8082,7 +8131,21 @@ var AdConfigManager = /*#__PURE__*/ function() {
8082
8131
  ];
8083
8132
  case 4:
8084
8133
  data = _state.sent();
8085
- imaPayload = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : (_data_response_ima = _data_response.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;
8134
+ apiEnableEdge = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : _data_response.enableEdgePodRequest;
8135
+ apiEdgeUrl = (_data_response1 = data.response) === null || _data_response1 === void 0 ? void 0 : _data_response1.edgePodUrl;
8136
+ this.apiEnableEdgePodRequest = typeof apiEnableEdge === "boolean" ? apiEnableEdge : void 0;
8137
+ this.apiEdgePodUrl = typeof apiEdgeUrl === "string" ? apiEdgeUrl : void 0;
8138
+ if (this.debug) {
8139
+ console.log("[StormcloudVideoPlayer] Edge pod settings from API:", {
8140
+ enableEdgePodRequest: this.apiEnableEdgePodRequest,
8141
+ edgePodUrl: this.apiEdgePodUrl
8142
+ });
8143
+ }
8144
+ this.apiFloorLadder = (_data_response2 = data.response) === null || _data_response2 === void 0 ? void 0 : _data_response2.floorLadder;
8145
+ if (this.debug) {
8146
+ console.log(this.apiFloorLadder ? "[StormcloudVideoPlayer] Floor ladder from API:" : "[StormcloudVideoPlayer] No floorLadder block in /ads/web response", this.apiFloorLadder);
8147
+ }
8148
+ 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;
8086
8149
  if (imaPayload) {
8087
8150
  decodedPayload = imaPayload;
8088
8151
  try {
@@ -8100,7 +8163,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
8100
8163
  console.warn("[StormcloudVideoPlayer] No VAST tag URL found in /ads/web response");
8101
8164
  }
8102
8165
  }
8103
- numberAds = (_data_response1 = data.response) === null || _data_response1 === void 0 ? void 0 : (_data_response_options = _data_response1.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;
8166
+ 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;
8104
8167
  if (numberAds != null && numberAds > 0) {
8105
8168
  this.apiNumberAds = numberAds;
8106
8169
  if (this.debug) {
@@ -9934,7 +9997,23 @@ function resolveEdgePodBaseUrl(config) {
9934
9997
  return void 0;
9935
9998
  }
9936
9999
  }
10000
+ function resolveEdgePodRequestContext(config) {
10001
+ var extra = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
10002
+ return {
10003
+ width: extra.width,
10004
+ height: extra.height,
10005
+ playerId: extra.playerId,
10006
+ contentNetwork: config.contentNetwork,
10007
+ contentChannel: config.channelName,
10008
+ contentTitle: config.programTitle
10009
+ };
10010
+ }
10011
+ function setOptionalParam(url, key, value) {
10012
+ var trimmed = value === null || value === void 0 ? void 0 : value.trim();
10013
+ if (trimmed) url.searchParams.set(key, trimmed);
10014
+ }
9937
10015
  function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
10016
+ var context = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
9938
10017
  var url = new URL(baseUrl);
9939
10018
  var maxMs = Math.max(0, Math.floor(remainingMs));
9940
10019
  var maxAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, Math.floor(remainingAdLimit)));
@@ -9942,6 +10021,16 @@ function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
9942
10021
  url.searchParams.set("pmad", String(maxAds));
9943
10022
  url.searchParams.set("duration", String(Math.floor(maxMs / 1e3)));
9944
10023
  url.searchParams.set("count", String(maxAds));
10024
+ if (context.width != null && Number.isFinite(context.width) && context.width > 0) {
10025
+ url.searchParams.set("width", String(Math.round(context.width)));
10026
+ }
10027
+ if (context.height != null && Number.isFinite(context.height) && context.height > 0) {
10028
+ url.searchParams.set("height", String(Math.round(context.height)));
10029
+ }
10030
+ setOptionalParam(url, "pid", context.playerId);
10031
+ setOptionalParam(url, "cn", context.contentNetwork);
10032
+ setOptionalParam(url, "cc", context.contentChannel);
10033
+ setOptionalParam(url, "ct", context.contentTitle);
9945
10034
  return url.toString();
9946
10035
  }
9947
10036
  function classifyEdgeVastResponse(result) {
@@ -10829,7 +10918,12 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
10829
10918
  return void 0;
10830
10919
  }
10831
10920
  try {
10832
- return buildEdgePodUrl(baseUrl, remainingMs, remainingAds);
10921
+ var playerId = getCachedBrowserId();
10922
+ return buildEdgePodUrl(baseUrl, remainingMs, remainingAds, resolveEdgePodRequestContext(this.host.config, {
10923
+ width: this.host.video.offsetWidth || this.host.video.clientWidth,
10924
+ height: this.host.video.offsetHeight || this.host.video.clientHeight,
10925
+ playerId: playerId
10926
+ }));
10833
10927
  } catch (unused) {
10834
10928
  this.markEdgeExhausted("invalid_edge_url");
10835
10929
  return void 0;
@@ -12339,14 +12433,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12339
12433
  this.config = _object_spread({}, browserOverrides, config);
12340
12434
  this.video = config.videoElement;
12341
12435
  logBrowserInfo(config.debugAdTiming);
12342
- var floorBounds = {};
12343
- if (this.config.adFloorMinCents != null) floorBounds.minCents = this.config.adFloorMinCents;
12344
- if (this.config.adFloorMaxCents != null) floorBounds.maxCents = this.config.adFloorMaxCents;
12345
- if (this.config.adFloorStepCents != null) floorBounds.stepCents = this.config.adFloorStepCents;
12346
- this.floorLadder = new FloorLadderController(this.config.adFloorLadder, floorBounds);
12347
- this.floorLadderEnabled = this.config.adFloorLadderEnabled === true;
12348
- this.warnOnInvalidFloorLadder(this.floorLadder.validate());
12349
- this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
12436
+ this.floorLadder = new FloorLadderController();
12350
12437
  this.adPlayer = this.createAdPlayer(false);
12351
12438
  this.palNonce = createPalNonceManager();
12352
12439
  this.cueManager = new Scte35CueManager(!!this.config.debugAdTiming, {
@@ -12453,9 +12540,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12453
12540
  return _this.edgePodBaseUrl;
12454
12541
  },
12455
12542
  getFloorSnapshot: function getFloorSnapshot(position) {
12456
- return _this.floorLadderEnabled ? _this.floorLadder.snapshotFor({
12457
- position: position,
12458
- isCtv: _this.isCtvEnvironment()
12543
+ return _this.floorLadder.isEnabled() ? _this.floorLadder.snapshotFor({
12544
+ position: position
12459
12545
  }) : void 0;
12460
12546
  },
12461
12547
  onAdClick: function onAdClick() {
@@ -12492,45 +12578,42 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12492
12578
  }
12493
12579
  },
12494
12580
  {
12495
- key: "isCtvEnvironment",
12496
- value: function isCtvEnvironment() {
12497
- if (this.config.ctvAdRequest) return true;
12498
- var hint = inferDeviceTypeHint(false);
12499
- return hint === DEVICE_TYPE_HINT.CONNECTED_TV || hint === DEVICE_TYPE_HINT.SET_TOP_BOX;
12500
- }
12501
- },
12502
- {
12503
- key: "setAdFloorLadder",
12504
- value: function setAdFloorLadder(update) {
12505
- var report = this.floorLadder.update(update);
12581
+ key: "applyFloorLadderFromApi",
12582
+ value: function applyFloorLadderFromApi() {
12583
+ var raw = this.adConfig.apiFloorLadder;
12584
+ if (raw == null) {
12585
+ this.floorLadder.reset();
12586
+ return;
12587
+ }
12588
+ var report = this.floorLadder.applyApiConfig(raw);
12506
12589
  this.warnOnInvalidFloorLadder(report);
12507
- return report;
12508
- }
12509
- },
12510
- {
12511
- key: "setAdFloorLadderEnabled",
12512
- value: function setAdFloorLadderEnabled(enabled) {
12513
- this.floorLadderEnabled = enabled;
12514
- if (enabled) this.warnOnInvalidFloorLadder(this.floorLadder.validate());
12590
+ if (this.debug) {
12591
+ console.log("[AdBreak][FLOOR] configuration applied from API", {
12592
+ config: this.floorLadder.get(),
12593
+ bounds: this.floorLadder.getBounds(),
12594
+ validation: report
12595
+ });
12596
+ }
12515
12597
  }
12516
12598
  },
12517
12599
  {
12518
12600
  key: "isAdFloorLadderEnabled",
12519
12601
  value: function isAdFloorLadderEnabled() {
12520
- return this.floorLadderEnabled;
12602
+ return this.floorLadder.isEnabled();
12521
12603
  }
12522
12604
  },
12523
12605
  {
12524
- key: "setEdgePodRequest",
12525
- value: function setEdgePodRequest(update) {
12526
- if (update.enableEdgePodRequest === this.config.enableEdgePodRequest && update.edgePodUrl === this.config.edgePodUrl) {
12527
- return;
12606
+ key: "applyEdgePodFromApi",
12607
+ value: function applyEdgePodFromApi() {
12608
+ this.edgePodBaseUrl = resolveEdgePodBaseUrl({
12609
+ enableEdgePodRequest: this.adConfig.apiEnableEdgePodRequest,
12610
+ edgePodUrl: this.adConfig.apiEdgePodUrl,
12611
+ licenseKey: this.config.licenseKey
12612
+ });
12613
+ if (this.debug) {
12614
+ var _this_edgePodBaseUrl;
12615
+ console.log("[AdBreak][EDGE] edge pod base URL from API:", (_this_edgePodBaseUrl = this.edgePodBaseUrl) !== null && _this_edgePodBaseUrl !== void 0 ? _this_edgePodBaseUrl : "(disabled; GAM only)");
12528
12616
  }
12529
- if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
12530
- else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
12531
- if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
12532
- else this.config.edgePodUrl = update.edgePodUrl;
12533
- this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
12534
12617
  }
12535
12618
  },
12536
12619
  {
@@ -12543,7 +12626,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12543
12626
  key: "warnOnInvalidFloorLadder",
12544
12627
  value: function warnOnInvalidFloorLadder(report) {
12545
12628
  var config = this.floorLadder.get();
12546
- if (report.ok || !this.floorLadderEnabled || !config.enabled) return;
12629
+ if (report.ok || !config.enabled) return;
12547
12630
  console.warn("[AdBreak][FLOOR] configuration has issues; invalid floors will not be sent", {
12548
12631
  errors: report.errors,
12549
12632
  configurationVersion: config.configurationVersion,
@@ -12618,6 +12701,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12618
12701
  4
12619
12702
  ];
12620
12703
  case 4:
12704
+ this.applyFloorLadderFromApi();
12705
+ this.applyEdgePodFromApi();
12621
12706
  palDescriptionUrl = this.config.ctvAdRequest ? this.adConfig.getPalDescriptionUrl() : void 0;
12622
12707
  fetchConsentSignals().catch(function() {
12623
12708
  return {};