stormcloud-video-player 0.8.70 → 0.8.71

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/lib/index.d.ts CHANGED
@@ -258,7 +258,7 @@ declare class StormcloudVideoPlayer {
258
258
  private readonly adBreak;
259
259
  private readonly floorLadder;
260
260
  private floorLadderEnabled;
261
- private readonly edgePodBaseUrl;
261
+ private edgePodBaseUrl;
262
262
  constructor(config: StormcloudVideoPlayerConfig);
263
263
  private get debug();
264
264
  private createAdPlayer;
@@ -266,6 +266,11 @@ declare class StormcloudVideoPlayer {
266
266
  setAdFloorLadder(update: Partial<AdFloorLadderConfig>): FloorLadderValidationReport;
267
267
  setAdFloorLadderEnabled(enabled: boolean): void;
268
268
  isAdFloorLadderEnabled(): boolean;
269
+ setEdgePodRequest(update: {
270
+ enableEdgePodRequest?: boolean;
271
+ edgePodUrl?: string;
272
+ }): void;
273
+ getEdgePodUrl(): string | undefined;
269
274
  private warnOnInvalidFloorLadder;
270
275
  getAdFloorLadder(): AdFloorLadderConfig;
271
276
  getAdFloorBounds(): FloorLadderBounds;
package/lib/index.js CHANGED
@@ -9229,19 +9229,31 @@ var HlsEngine = /*#__PURE__*/ function() {
9229
9229
  // src/player/EdgePodRequest.ts
9230
9230
  var EDGE_POD_MAX_ADS = 10;
9231
9231
  var EDGE_POD_EXCEEDS_BUDGET = "edge_pod_exceeds_budget";
9232
+ var LICENSE_KEY_PLACEHOLDER = /\{licenseKey\}|%7BlicenseKey%7D/gi;
9232
9233
  function resolveEdgePodBaseUrl(config) {
9233
- var _config_edgePodUrl;
9234
+ var _config_edgePodUrl, _config_licenseKey;
9234
9235
  if (config.enableEdgePodRequest !== true) return void 0;
9235
9236
  var raw = (_config_edgePodUrl = config.edgePodUrl) === null || _config_edgePodUrl === void 0 ? void 0 : _config_edgePodUrl.trim();
9236
9237
  if (!raw) {
9237
9238
  console.warn("[AdBreak][EDGE] enableEdgePodRequest is true but edgePodUrl is missing; using GAM only");
9238
9239
  return void 0;
9239
9240
  }
9241
+ var licenseKey = (_config_licenseKey = config.licenseKey) === null || _config_licenseKey === void 0 ? void 0 : _config_licenseKey.trim();
9242
+ if (!licenseKey) {
9243
+ console.warn("[AdBreak][EDGE] enableEdgePodRequest is true but licenseKey is missing; using GAM only");
9244
+ return void 0;
9245
+ }
9246
+ var encodedKey = encodeURIComponent(licenseKey);
9240
9247
  try {
9241
- var url = new URL(raw);
9248
+ var hasPlaceholder = raw.search(LICENSE_KEY_PLACEHOLDER) !== -1;
9249
+ var url = new URL(hasPlaceholder ? raw.replace(LICENSE_KEY_PLACEHOLDER, encodedKey) : raw);
9242
9250
  if (url.protocol !== "https:" && url.protocol !== "http:") {
9243
9251
  throw new Error("unsupported protocol ".concat(url.protocol));
9244
9252
  }
9253
+ if (!hasPlaceholder) {
9254
+ var path = url.pathname.replace(/\/+$/, "");
9255
+ url.pathname = /\/[^/]+\/pod$/.test(path) ? path.replace(/\/[^/]+\/pod$/, "/".concat(encodedKey, "/pod")) : "".concat(path, "/").concat(encodedKey, "/pod");
9256
+ }
9245
9257
  return url.toString();
9246
9258
  } catch (unused) {
9247
9259
  console.warn("[AdBreak][EDGE] edgePodUrl is not a valid http(s) URL; using GAM only");
@@ -11721,6 +11733,25 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
11721
11733
  return this.floorLadderEnabled;
11722
11734
  }
11723
11735
  },
11736
+ {
11737
+ key: "setEdgePodRequest",
11738
+ value: function setEdgePodRequest(update) {
11739
+ if (update.enableEdgePodRequest === this.config.enableEdgePodRequest && update.edgePodUrl === this.config.edgePodUrl) {
11740
+ return;
11741
+ }
11742
+ if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
11743
+ else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
11744
+ if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
11745
+ else this.config.edgePodUrl = update.edgePodUrl;
11746
+ this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
11747
+ }
11748
+ },
11749
+ {
11750
+ key: "getEdgePodUrl",
11751
+ value: function getEdgePodUrl() {
11752
+ return this.edgePodBaseUrl;
11753
+ }
11754
+ },
11724
11755
  {
11725
11756
  key: "warnOnInvalidFloorLadder",
11726
11757
  value: function warnOnInvalidFloorLadder(report) {
@@ -12559,9 +12590,7 @@ var CRITICAL_PROPS = [
12559
12590
  "ctvAdRequest",
12560
12591
  "adFloorMinCents",
12561
12592
  "adFloorMaxCents",
12562
- "adFloorStepCents",
12563
- "enableEdgePodRequest",
12564
- "edgePodUrl"
12593
+ "adFloorStepCents"
12565
12594
  ];
12566
12595
  var CONTROLS_HIDE_DELAY = 3e3;
12567
12596
  var DEFAULT_PLAYER_ASPECT_RATIO = 16 / 9;
@@ -12760,9 +12789,7 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
12760
12789
  vastMode,
12761
12790
  adFloorMinCents,
12762
12791
  adFloorMaxCents,
12763
- adFloorStepCents,
12764
- enableEdgePodRequest,
12765
- edgePodUrl
12792
+ adFloorStepCents
12766
12793
  ]);
12767
12794
  useEffect(function() {
12768
12795
  if (typeof window === "undefined") return;
@@ -12875,6 +12902,17 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
12875
12902
  }, [
12876
12903
  adFloorLadderEnabled
12877
12904
  ]);
12905
+ useEffect(function() {
12906
+ if (!playerRef.current) return;
12907
+ playerRef.current.setEdgePodRequest(_object_spread({}, enableEdgePodRequest !== void 0 ? {
12908
+ enableEdgePodRequest: enableEdgePodRequest
12909
+ } : {}, edgePodUrl !== void 0 ? {
12910
+ edgePodUrl: edgePodUrl
12911
+ } : {}));
12912
+ }, [
12913
+ enableEdgePodRequest,
12914
+ edgePodUrl
12915
+ ]);
12878
12916
  useEffect(function() {
12879
12917
  if (!playerRef.current) return;
12880
12918
  var checkAdStatus = function checkAdStatus() {
@@ -13951,7 +13989,7 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
13951
13989
  }
13952
13990
  }
13953
13991
  }
13954
- if (prevProps.adFloorLadderEnabled !== nextProps.adFloorLadderEnabled) {
13992
+ if (prevProps.adFloorLadderEnabled !== nextProps.adFloorLadderEnabled || prevProps.enableEdgePodRequest !== nextProps.enableEdgePodRequest || prevProps.edgePodUrl !== nextProps.edgePodUrl) {
13955
13993
  return false;
13956
13994
  }
13957
13995
  if (JSON.stringify((_prevProps_adFloorLadder = prevProps.adFloorLadder) !== null && _prevProps_adFloorLadder !== void 0 ? _prevProps_adFloorLadder : null) !== JSON.stringify((_nextProps_adFloorLadder = nextProps.adFloorLadder) !== null && _nextProps_adFloorLadder !== void 0 ? _nextProps_adFloorLadder : null)) {