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
@@ -1683,21 +1683,19 @@ function fetchConsentSignals() {
1683
1683
  });
1684
1684
  }
1685
1685
  // src/player/FloorLadder.ts
1686
- var DEFAULT_WEB_FLOOR_LADDER_CONFIG = Object.freeze({
1686
+ var DISABLED_FLOOR_LADDER_CONFIG = Object.freeze({
1687
1687
  enabled: false,
1688
- targetingKey: "airytv_web_floor",
1689
- minFloorCents: 25,
1690
- maxFloorCents: 300,
1691
- stepCents: 25,
1692
- selectedFloorCents: 25,
1693
- fallbackFloorCents: 25,
1688
+ targetingKey: "",
1689
+ minFloorCents: 0,
1690
+ maxFloorCents: 0,
1691
+ stepCents: 0,
1692
+ selectedFloorCents: 0,
1693
+ fallbackFloorCents: 0,
1694
1694
  readyFloorCents: [],
1695
1695
  mode: "fixed",
1696
- allowedPositions: [
1697
- "midroll"
1698
- ],
1699
- targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
1700
- configurationVersion: "2026-09-29.1"
1696
+ allowedPositions: [],
1697
+ targetAdUnitPath: "",
1698
+ configurationVersion: ""
1701
1699
  });
1702
1700
  var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
1703
1701
  minCents: 25,
@@ -1716,15 +1714,6 @@ function generateFloorLevels(minCents, maxCents, stepCents) {
1716
1714
  }
1717
1715
  return levels;
1718
1716
  }
1719
- function resolveFloorLadderBounds() {
1720
- var overrides = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
1721
- var _overrides_minCents, _overrides_maxCents, _overrides_stepCents;
1722
- return {
1723
- minCents: (_overrides_minCents = overrides.minCents) !== null && _overrides_minCents !== void 0 ? _overrides_minCents : DEFAULT_FLOOR_LADDER_BOUNDS.minCents,
1724
- maxCents: (_overrides_maxCents = overrides.maxCents) !== null && _overrides_maxCents !== void 0 ? _overrides_maxCents : DEFAULT_FLOOR_LADDER_BOUNDS.maxCents,
1725
- stepCents: (_overrides_stepCents = overrides.stepCents) !== null && _overrides_stepCents !== void 0 ? _overrides_stepCents : DEFAULT_FLOOR_LADDER_BOUNDS.stepCents
1726
- };
1727
- }
1728
1717
  function validateFloorCents(value, config) {
1729
1718
  var bounds = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : DEFAULT_FLOOR_LADDER_BOUNDS;
1730
1719
  if (!isInteger(value)) return {
@@ -1856,7 +1845,6 @@ function resolveOpportunityFloor(config, context) {
1856
1845
  if (!config.enabled) return skipped("disabled");
1857
1846
  var positions = Array.isArray(config.allowedPositions) ? config.allowedPositions : [];
1858
1847
  if (positions.indexOf(context.position) === -1) return skipped("position_not_allowed");
1859
- if (context.isCtv) return skipped("ctv_excluded");
1860
1848
  if (!config.targetingKey) return skipped("missing_targeting_key");
1861
1849
  if (!config.targetAdUnitPath) return skipped("missing_target_ad_unit");
1862
1850
  var result;
@@ -2010,15 +1998,80 @@ function mergeDefined(target, update) {
2010
1998
  }
2011
1999
  return copyConfig(next);
2012
2000
  }
2001
+ var AD_POSITIONS = [
2002
+ "preroll",
2003
+ "midroll",
2004
+ "postroll"
2005
+ ];
2006
+ function finiteNumber(value) {
2007
+ return typeof value === "number" && isFinite(value) ? value : void 0;
2008
+ }
2009
+ function parseApiFloorLadder(raw) {
2010
+ if (!raw || (typeof raw === "undefined" ? "undefined" : _type_of(raw)) !== "object" || Array.isArray(raw)) return void 0;
2011
+ var src = raw;
2012
+ var out = {};
2013
+ if (typeof src.enabled === "boolean") out.enabled = src.enabled;
2014
+ if (typeof src.targetingKey === "string") out.targetingKey = src.targetingKey;
2015
+ if (typeof src.targetAdUnitPath === "string") out.targetAdUnitPath = src.targetAdUnitPath;
2016
+ if (typeof src.configurationVersion === "string") out.configurationVersion = src.configurationVersion;
2017
+ if (typeof src.mode === "string") out.mode = src.mode;
2018
+ var min = finiteNumber(src.minFloorCents);
2019
+ var max = finiteNumber(src.maxFloorCents);
2020
+ var step = finiteNumber(src.stepCents);
2021
+ var selected = finiteNumber(src.selectedFloorCents);
2022
+ var fallback = finiteNumber(src.fallbackFloorCents);
2023
+ if (min !== void 0) out.minFloorCents = min;
2024
+ if (max !== void 0) out.maxFloorCents = max;
2025
+ if (step !== void 0) out.stepCents = step;
2026
+ if (selected !== void 0) out.selectedFloorCents = selected;
2027
+ if (fallback !== void 0) out.fallbackFloorCents = fallback;
2028
+ if (Array.isArray(src.readyFloorCents)) {
2029
+ out.readyFloorCents = src.readyFloorCents.filter(function(cents) {
2030
+ return finiteNumber(cents) !== void 0;
2031
+ });
2032
+ }
2033
+ if (Array.isArray(src.allowedPositions)) {
2034
+ out.allowedPositions = src.allowedPositions.filter(function(position) {
2035
+ return AD_POSITIONS.indexOf(position) !== -1;
2036
+ });
2037
+ }
2038
+ return out;
2039
+ }
2013
2040
  var FloorLadderController = /*#__PURE__*/ function() {
2014
- function FloorLadderController(initial, bounds) {
2015
- var selector = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : fixedFloorSelector;
2041
+ function FloorLadderController() {
2042
+ var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : fixedFloorSelector;
2016
2043
  _class_call_check(this, FloorLadderController);
2017
- this.config = mergeDefined(copyConfig(DEFAULT_WEB_FLOOR_LADDER_CONFIG), initial);
2018
- this.bounds = Object.freeze(resolveFloorLadderBounds(bounds));
2044
+ this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
2045
+ this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
2019
2046
  this.selector = selector;
2020
2047
  }
2021
2048
  _create_class(FloorLadderController, [
2049
+ {
2050
+ key: "isEnabled",
2051
+ value: function isEnabled() {
2052
+ return this.config.enabled === true;
2053
+ }
2054
+ },
2055
+ {
2056
+ key: "applyApiConfig",
2057
+ value: function applyApiConfig(raw) {
2058
+ var parsed = parseApiFloorLadder(raw);
2059
+ this.config = mergeDefined(copyConfig(DISABLED_FLOOR_LADDER_CONFIG), parsed);
2060
+ this.bounds = Object.freeze({
2061
+ minCents: this.config.minFloorCents,
2062
+ maxCents: this.config.maxFloorCents,
2063
+ stepCents: this.config.stepCents
2064
+ });
2065
+ return validateFloorLadderConfig(this.config, this.bounds);
2066
+ }
2067
+ },
2068
+ {
2069
+ key: "reset",
2070
+ value: function reset() {
2071
+ this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
2072
+ this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
2073
+ }
2074
+ },
2022
2075
  {
2023
2076
  key: "get",
2024
2077
  value: function get() {
@@ -2031,13 +2084,6 @@ var FloorLadderController = /*#__PURE__*/ function() {
2031
2084
  return _object_spread({}, this.bounds);
2032
2085
  }
2033
2086
  },
2034
- {
2035
- key: "update",
2036
- value: function update(update) {
2037
- this.config = mergeDefined(this.config, update);
2038
- return validateFloorLadderConfig(this.config, this.bounds);
2039
- }
2040
- },
2041
2087
  {
2042
2088
  key: "validate",
2043
2089
  value: function validate() {
@@ -6270,6 +6316,9 @@ function resolvePlayerIdentitySeed(clientInfo) {
6270
6316
  }
6271
6317
  return "fingerprint:".concat(JSON.stringify(clientInfo));
6272
6318
  }
6319
+ function getCachedBrowserId() {
6320
+ return cachedBrowserId !== null && cachedBrowserId !== void 0 ? cachedBrowserId : void 0;
6321
+ }
6273
6322
  function getBrowserID(clientInfo) {
6274
6323
  return _async_to_generator(function() {
6275
6324
  return _ts_generator(this, function(_state) {
@@ -7939,7 +7988,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
7939
7988
  key: "fetchAdConfiguration",
7940
7989
  value: function fetchAdConfiguration() {
7941
7990
  return _async_to_generator(function() {
7942
- 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;
7991
+ 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;
7943
7992
  return _ts_generator(this, function(_state) {
7944
7993
  switch(_state.label){
7945
7994
  case 0:
@@ -7999,7 +8048,21 @@ var AdConfigManager = /*#__PURE__*/ function() {
7999
8048
  ];
8000
8049
  case 4:
8001
8050
  data = _state.sent();
8002
- 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;
8051
+ apiEnableEdge = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : _data_response.enableEdgePodRequest;
8052
+ apiEdgeUrl = (_data_response1 = data.response) === null || _data_response1 === void 0 ? void 0 : _data_response1.edgePodUrl;
8053
+ this.apiEnableEdgePodRequest = typeof apiEnableEdge === "boolean" ? apiEnableEdge : void 0;
8054
+ this.apiEdgePodUrl = typeof apiEdgeUrl === "string" ? apiEdgeUrl : void 0;
8055
+ if (this.debug) {
8056
+ console.log("[StormcloudVideoPlayer] Edge pod settings from API:", {
8057
+ enableEdgePodRequest: this.apiEnableEdgePodRequest,
8058
+ edgePodUrl: this.apiEdgePodUrl
8059
+ });
8060
+ }
8061
+ this.apiFloorLadder = (_data_response2 = data.response) === null || _data_response2 === void 0 ? void 0 : _data_response2.floorLadder;
8062
+ if (this.debug) {
8063
+ console.log(this.apiFloorLadder ? "[StormcloudVideoPlayer] Floor ladder from API:" : "[StormcloudVideoPlayer] No floorLadder block in /ads/web response", this.apiFloorLadder);
8064
+ }
8065
+ 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;
8003
8066
  if (imaPayload) {
8004
8067
  decodedPayload = imaPayload;
8005
8068
  try {
@@ -8017,7 +8080,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
8017
8080
  console.warn("[StormcloudVideoPlayer] No VAST tag URL found in /ads/web response");
8018
8081
  }
8019
8082
  }
8020
- 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;
8083
+ 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;
8021
8084
  if (numberAds != null && numberAds > 0) {
8022
8085
  this.apiNumberAds = numberAds;
8023
8086
  if (this.debug) {
@@ -9851,7 +9914,23 @@ function resolveEdgePodBaseUrl(config) {
9851
9914
  return void 0;
9852
9915
  }
9853
9916
  }
9917
+ function resolveEdgePodRequestContext(config) {
9918
+ var extra = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
9919
+ return {
9920
+ width: extra.width,
9921
+ height: extra.height,
9922
+ playerId: extra.playerId,
9923
+ contentNetwork: config.contentNetwork,
9924
+ contentChannel: config.channelName,
9925
+ contentTitle: config.programTitle
9926
+ };
9927
+ }
9928
+ function setOptionalParam(url, key, value) {
9929
+ var trimmed = value === null || value === void 0 ? void 0 : value.trim();
9930
+ if (trimmed) url.searchParams.set(key, trimmed);
9931
+ }
9854
9932
  function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
9933
+ var context = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
9855
9934
  var url = new URL(baseUrl);
9856
9935
  var maxMs = Math.max(0, Math.floor(remainingMs));
9857
9936
  var maxAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, Math.floor(remainingAdLimit)));
@@ -9859,6 +9938,16 @@ function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
9859
9938
  url.searchParams.set("pmad", String(maxAds));
9860
9939
  url.searchParams.set("duration", String(Math.floor(maxMs / 1e3)));
9861
9940
  url.searchParams.set("count", String(maxAds));
9941
+ if (context.width != null && Number.isFinite(context.width) && context.width > 0) {
9942
+ url.searchParams.set("width", String(Math.round(context.width)));
9943
+ }
9944
+ if (context.height != null && Number.isFinite(context.height) && context.height > 0) {
9945
+ url.searchParams.set("height", String(Math.round(context.height)));
9946
+ }
9947
+ setOptionalParam(url, "pid", context.playerId);
9948
+ setOptionalParam(url, "cn", context.contentNetwork);
9949
+ setOptionalParam(url, "cc", context.contentChannel);
9950
+ setOptionalParam(url, "ct", context.contentTitle);
9862
9951
  return url.toString();
9863
9952
  }
9864
9953
  function classifyEdgeVastResponse(result) {
@@ -10746,7 +10835,12 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
10746
10835
  return void 0;
10747
10836
  }
10748
10837
  try {
10749
- return buildEdgePodUrl(baseUrl, remainingMs, remainingAds);
10838
+ var playerId = getCachedBrowserId();
10839
+ return buildEdgePodUrl(baseUrl, remainingMs, remainingAds, resolveEdgePodRequestContext(this.host.config, {
10840
+ width: this.host.video.offsetWidth || this.host.video.clientWidth,
10841
+ height: this.host.video.offsetHeight || this.host.video.clientHeight,
10842
+ playerId: playerId
10843
+ }));
10750
10844
  } catch (unused) {
10751
10845
  this.markEdgeExhausted("invalid_edge_url");
10752
10846
  return void 0;
@@ -12256,14 +12350,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12256
12350
  this.config = _object_spread({}, browserOverrides, config);
12257
12351
  this.video = config.videoElement;
12258
12352
  logBrowserInfo(config.debugAdTiming);
12259
- var floorBounds = {};
12260
- if (this.config.adFloorMinCents != null) floorBounds.minCents = this.config.adFloorMinCents;
12261
- if (this.config.adFloorMaxCents != null) floorBounds.maxCents = this.config.adFloorMaxCents;
12262
- if (this.config.adFloorStepCents != null) floorBounds.stepCents = this.config.adFloorStepCents;
12263
- this.floorLadder = new FloorLadderController(this.config.adFloorLadder, floorBounds);
12264
- this.floorLadderEnabled = this.config.adFloorLadderEnabled === true;
12265
- this.warnOnInvalidFloorLadder(this.floorLadder.validate());
12266
- this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
12353
+ this.floorLadder = new FloorLadderController();
12267
12354
  this.adPlayer = this.createAdPlayer(false);
12268
12355
  this.palNonce = createPalNonceManager();
12269
12356
  this.cueManager = new Scte35CueManager(!!this.config.debugAdTiming, {
@@ -12370,9 +12457,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12370
12457
  return _this.edgePodBaseUrl;
12371
12458
  },
12372
12459
  getFloorSnapshot: function getFloorSnapshot(position) {
12373
- return _this.floorLadderEnabled ? _this.floorLadder.snapshotFor({
12374
- position: position,
12375
- isCtv: _this.isCtvEnvironment()
12460
+ return _this.floorLadder.isEnabled() ? _this.floorLadder.snapshotFor({
12461
+ position: position
12376
12462
  }) : void 0;
12377
12463
  },
12378
12464
  onAdClick: function onAdClick() {
@@ -12409,45 +12495,42 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12409
12495
  }
12410
12496
  },
12411
12497
  {
12412
- key: "isCtvEnvironment",
12413
- value: function isCtvEnvironment() {
12414
- if (this.config.ctvAdRequest) return true;
12415
- var hint = inferDeviceTypeHint(false);
12416
- return hint === DEVICE_TYPE_HINT.CONNECTED_TV || hint === DEVICE_TYPE_HINT.SET_TOP_BOX;
12417
- }
12418
- },
12419
- {
12420
- key: "setAdFloorLadder",
12421
- value: function setAdFloorLadder(update) {
12422
- var report = this.floorLadder.update(update);
12498
+ key: "applyFloorLadderFromApi",
12499
+ value: function applyFloorLadderFromApi() {
12500
+ var raw = this.adConfig.apiFloorLadder;
12501
+ if (raw == null) {
12502
+ this.floorLadder.reset();
12503
+ return;
12504
+ }
12505
+ var report = this.floorLadder.applyApiConfig(raw);
12423
12506
  this.warnOnInvalidFloorLadder(report);
12424
- return report;
12425
- }
12426
- },
12427
- {
12428
- key: "setAdFloorLadderEnabled",
12429
- value: function setAdFloorLadderEnabled(enabled) {
12430
- this.floorLadderEnabled = enabled;
12431
- if (enabled) this.warnOnInvalidFloorLadder(this.floorLadder.validate());
12507
+ if (this.debug) {
12508
+ console.log("[AdBreak][FLOOR] configuration applied from API", {
12509
+ config: this.floorLadder.get(),
12510
+ bounds: this.floorLadder.getBounds(),
12511
+ validation: report
12512
+ });
12513
+ }
12432
12514
  }
12433
12515
  },
12434
12516
  {
12435
12517
  key: "isAdFloorLadderEnabled",
12436
12518
  value: function isAdFloorLadderEnabled() {
12437
- return this.floorLadderEnabled;
12519
+ return this.floorLadder.isEnabled();
12438
12520
  }
12439
12521
  },
12440
12522
  {
12441
- key: "setEdgePodRequest",
12442
- value: function setEdgePodRequest(update) {
12443
- if (update.enableEdgePodRequest === this.config.enableEdgePodRequest && update.edgePodUrl === this.config.edgePodUrl) {
12444
- return;
12523
+ key: "applyEdgePodFromApi",
12524
+ value: function applyEdgePodFromApi() {
12525
+ this.edgePodBaseUrl = resolveEdgePodBaseUrl({
12526
+ enableEdgePodRequest: this.adConfig.apiEnableEdgePodRequest,
12527
+ edgePodUrl: this.adConfig.apiEdgePodUrl,
12528
+ licenseKey: this.config.licenseKey
12529
+ });
12530
+ if (this.debug) {
12531
+ var _this_edgePodBaseUrl;
12532
+ console.log("[AdBreak][EDGE] edge pod base URL from API:", (_this_edgePodBaseUrl = this.edgePodBaseUrl) !== null && _this_edgePodBaseUrl !== void 0 ? _this_edgePodBaseUrl : "(disabled; GAM only)");
12445
12533
  }
12446
- if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
12447
- else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
12448
- if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
12449
- else this.config.edgePodUrl = update.edgePodUrl;
12450
- this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
12451
12534
  }
12452
12535
  },
12453
12536
  {
@@ -12460,7 +12543,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12460
12543
  key: "warnOnInvalidFloorLadder",
12461
12544
  value: function warnOnInvalidFloorLadder(report) {
12462
12545
  var config = this.floorLadder.get();
12463
- if (report.ok || !this.floorLadderEnabled || !config.enabled) return;
12546
+ if (report.ok || !config.enabled) return;
12464
12547
  console.warn("[AdBreak][FLOOR] configuration has issues; invalid floors will not be sent", {
12465
12548
  errors: report.errors,
12466
12549
  configurationVersion: config.configurationVersion,
@@ -12535,6 +12618,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
12535
12618
  4
12536
12619
  ];
12537
12620
  case 4:
12621
+ this.applyFloorLadderFromApi();
12622
+ this.applyEdgePodFromApi();
12538
12623
  palDescriptionUrl = this.config.ctvAdRequest ? this.adConfig.getPalDescriptionUrl() : void 0;
12539
12624
  fetchConsentSignals().catch(function() {
12540
12625
  return {};