stormcloud-video-player 0.8.70 → 0.8.72
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/StormcloudPlayer.cjs +42 -5
- package/lib/StormcloudPlayer.cjs.map +1 -1
- package/lib/index.cjs +56 -12
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.ts +6 -1
- package/lib/index.js +56 -12
- package/lib/index.js.map +1 -1
- package/lib/player/EdgePodRequest.cjs +14 -2
- package/lib/player/EdgePodRequest.cjs.map +1 -1
- package/lib/player/EdgePodRequest.d.cts +1 -1
- package/lib/player/HlsEngine.cjs +9 -3
- package/lib/player/HlsEngine.cjs.map +1 -1
- package/lib/player/Scte35Parser.cjs +8 -0
- package/lib/player/Scte35Parser.cjs.map +1 -1
- package/lib/player/Scte35Parser.d.cts +2 -1
- package/lib/player/StormcloudVideoPlayer.cjs +42 -5
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +6 -1
- package/lib/players/HlsPlayer.cjs +42 -5
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +42 -5
- package/lib/players/index.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +56 -12
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/package.json +1 -1
|
@@ -6401,6 +6401,10 @@ function toNumber(val) {
|
|
|
6401
6401
|
var n = typeof val === "string" ? parseFloat(val) : Number(val);
|
|
6402
6402
|
return Number.isNaN(n) ? void 0 : n;
|
|
6403
6403
|
}
|
|
6404
|
+
function getDateRangeDurationSeconds(attrs) {
|
|
6405
|
+
var _toNumber;
|
|
6406
|
+
return (_toNumber = toNumber(attrs["DURATION"])) !== null && _toNumber !== void 0 ? _toNumber : toNumber(attrs["PLANNED-DURATION"]);
|
|
6407
|
+
}
|
|
6404
6408
|
function isManifestBasedMarker(marker) {
|
|
6405
6409
|
var raw = marker.raw;
|
|
6406
6410
|
if (!raw) return false;
|
|
@@ -8766,11 +8770,13 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
8766
8770
|
}
|
|
8767
8771
|
}
|
|
8768
8772
|
if (!tag) continue;
|
|
8773
|
+
if (tag.includes("EXT-X-CUE-OUT-CONT")) continue;
|
|
8769
8774
|
if (tag.includes("EXT-X-CUE-OUT") || tag.includes("EXT-X-DATERANGE")) {
|
|
8770
|
-
var
|
|
8775
|
+
var isDateRange = tag.includes("EXT-X-DATERANGE");
|
|
8776
|
+
var attrs = isDateRange ? parseAttributeList(value) : {};
|
|
8771
8777
|
var hasScteOut = tag.includes("EXT-X-CUE-OUT") || "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
|
|
8772
8778
|
if (hasScteOut) {
|
|
8773
|
-
var durationSeconds = parseCueOutDuration(value);
|
|
8779
|
+
var durationSeconds = isDateRange ? getDateRangeDurationSeconds(attrs) : parseCueOutDuration(value);
|
|
8774
8780
|
var marker = _object_spread_props(_object_spread({
|
|
8775
8781
|
type: "start"
|
|
8776
8782
|
}, durationSeconds !== void 0 ? {
|
|
@@ -8944,7 +8950,7 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
8944
8950
|
var hasScteOut = "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
|
|
8945
8951
|
var hasScteIn = "SCTE35-IN" in attrs || attrs["SCTE35-IN"] !== void 0;
|
|
8946
8952
|
var klass = String((_attrs_CLASS = attrs["CLASS"]) !== null && _attrs_CLASS !== void 0 ? _attrs_CLASS : "");
|
|
8947
|
-
var duration =
|
|
8953
|
+
var duration = getDateRangeDurationSeconds(attrs);
|
|
8948
8954
|
if (hasScteOut || /com\.apple\.hls\.cue/i.test(klass)) {
|
|
8949
8955
|
var marker2 = _object_spread_props(_object_spread({
|
|
8950
8956
|
type: "start"
|
|
@@ -9211,19 +9217,31 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
9211
9217
|
// src/player/EdgePodRequest.ts
|
|
9212
9218
|
var EDGE_POD_MAX_ADS = 10;
|
|
9213
9219
|
var EDGE_POD_EXCEEDS_BUDGET = "edge_pod_exceeds_budget";
|
|
9220
|
+
var LICENSE_KEY_PLACEHOLDER = /\{licenseKey\}|%7BlicenseKey%7D/gi;
|
|
9214
9221
|
function resolveEdgePodBaseUrl(config) {
|
|
9215
|
-
var _config_edgePodUrl;
|
|
9222
|
+
var _config_edgePodUrl, _config_licenseKey;
|
|
9216
9223
|
if (config.enableEdgePodRequest !== true) return void 0;
|
|
9217
9224
|
var raw = (_config_edgePodUrl = config.edgePodUrl) === null || _config_edgePodUrl === void 0 ? void 0 : _config_edgePodUrl.trim();
|
|
9218
9225
|
if (!raw) {
|
|
9219
9226
|
console.warn("[AdBreak][EDGE] enableEdgePodRequest is true but edgePodUrl is missing; using GAM only");
|
|
9220
9227
|
return void 0;
|
|
9221
9228
|
}
|
|
9229
|
+
var licenseKey = (_config_licenseKey = config.licenseKey) === null || _config_licenseKey === void 0 ? void 0 : _config_licenseKey.trim();
|
|
9230
|
+
if (!licenseKey) {
|
|
9231
|
+
console.warn("[AdBreak][EDGE] enableEdgePodRequest is true but licenseKey is missing; using GAM only");
|
|
9232
|
+
return void 0;
|
|
9233
|
+
}
|
|
9234
|
+
var encodedKey = encodeURIComponent(licenseKey);
|
|
9222
9235
|
try {
|
|
9223
|
-
var
|
|
9236
|
+
var hasPlaceholder = raw.search(LICENSE_KEY_PLACEHOLDER) !== -1;
|
|
9237
|
+
var url = new URL(hasPlaceholder ? raw.replace(LICENSE_KEY_PLACEHOLDER, encodedKey) : raw);
|
|
9224
9238
|
if (url.protocol !== "https:" && url.protocol !== "http:") {
|
|
9225
9239
|
throw new Error("unsupported protocol ".concat(url.protocol));
|
|
9226
9240
|
}
|
|
9241
|
+
if (!hasPlaceholder) {
|
|
9242
|
+
var path = url.pathname.replace(/\/+$/, "");
|
|
9243
|
+
url.pathname = /\/[^/]+\/pod$/.test(path) ? path.replace(/\/[^/]+\/pod$/, "/".concat(encodedKey, "/pod")) : "".concat(path, "/").concat(encodedKey, "/pod");
|
|
9244
|
+
}
|
|
9227
9245
|
return url.toString();
|
|
9228
9246
|
} catch (unused) {
|
|
9229
9247
|
console.warn("[AdBreak][EDGE] edgePodUrl is not a valid http(s) URL; using GAM only");
|
|
@@ -11701,6 +11719,25 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
11701
11719
|
return this.floorLadderEnabled;
|
|
11702
11720
|
}
|
|
11703
11721
|
},
|
|
11722
|
+
{
|
|
11723
|
+
key: "setEdgePodRequest",
|
|
11724
|
+
value: function setEdgePodRequest(update) {
|
|
11725
|
+
if (update.enableEdgePodRequest === this.config.enableEdgePodRequest && update.edgePodUrl === this.config.edgePodUrl) {
|
|
11726
|
+
return;
|
|
11727
|
+
}
|
|
11728
|
+
if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
|
|
11729
|
+
else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
|
|
11730
|
+
if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
|
|
11731
|
+
else this.config.edgePodUrl = update.edgePodUrl;
|
|
11732
|
+
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
11733
|
+
}
|
|
11734
|
+
},
|
|
11735
|
+
{
|
|
11736
|
+
key: "getEdgePodUrl",
|
|
11737
|
+
value: function getEdgePodUrl() {
|
|
11738
|
+
return this.edgePodBaseUrl;
|
|
11739
|
+
}
|
|
11740
|
+
},
|
|
11704
11741
|
{
|
|
11705
11742
|
key: "warnOnInvalidFloorLadder",
|
|
11706
11743
|
value: function warnOnInvalidFloorLadder(report) {
|
|
@@ -12539,9 +12576,7 @@ var CRITICAL_PROPS = [
|
|
|
12539
12576
|
"ctvAdRequest",
|
|
12540
12577
|
"adFloorMinCents",
|
|
12541
12578
|
"adFloorMaxCents",
|
|
12542
|
-
"adFloorStepCents"
|
|
12543
|
-
"enableEdgePodRequest",
|
|
12544
|
-
"edgePodUrl"
|
|
12579
|
+
"adFloorStepCents"
|
|
12545
12580
|
];
|
|
12546
12581
|
var CONTROLS_HIDE_DELAY = 3e3;
|
|
12547
12582
|
var DEFAULT_PLAYER_ASPECT_RATIO = 16 / 9;
|
|
@@ -12740,9 +12775,7 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
12740
12775
|
vastMode,
|
|
12741
12776
|
adFloorMinCents,
|
|
12742
12777
|
adFloorMaxCents,
|
|
12743
|
-
adFloorStepCents
|
|
12744
|
-
enableEdgePodRequest,
|
|
12745
|
-
edgePodUrl
|
|
12778
|
+
adFloorStepCents
|
|
12746
12779
|
]);
|
|
12747
12780
|
(0, import_react.useEffect)(function() {
|
|
12748
12781
|
if (typeof window === "undefined") return;
|
|
@@ -12855,6 +12888,17 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
12855
12888
|
}, [
|
|
12856
12889
|
adFloorLadderEnabled
|
|
12857
12890
|
]);
|
|
12891
|
+
(0, import_react.useEffect)(function() {
|
|
12892
|
+
if (!playerRef.current) return;
|
|
12893
|
+
playerRef.current.setEdgePodRequest(_object_spread({}, enableEdgePodRequest !== void 0 ? {
|
|
12894
|
+
enableEdgePodRequest: enableEdgePodRequest
|
|
12895
|
+
} : {}, edgePodUrl !== void 0 ? {
|
|
12896
|
+
edgePodUrl: edgePodUrl
|
|
12897
|
+
} : {}));
|
|
12898
|
+
}, [
|
|
12899
|
+
enableEdgePodRequest,
|
|
12900
|
+
edgePodUrl
|
|
12901
|
+
]);
|
|
12858
12902
|
(0, import_react.useEffect)(function() {
|
|
12859
12903
|
if (!playerRef.current) return;
|
|
12860
12904
|
var checkAdStatus = function checkAdStatus() {
|
|
@@ -13931,7 +13975,7 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
13931
13975
|
}
|
|
13932
13976
|
}
|
|
13933
13977
|
}
|
|
13934
|
-
if (prevProps.adFloorLadderEnabled !== nextProps.adFloorLadderEnabled) {
|
|
13978
|
+
if (prevProps.adFloorLadderEnabled !== nextProps.adFloorLadderEnabled || prevProps.enableEdgePodRequest !== nextProps.enableEdgePodRequest || prevProps.edgePodUrl !== nextProps.edgePodUrl) {
|
|
13935
13979
|
return false;
|
|
13936
13980
|
}
|
|
13937
13981
|
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)) {
|