stormcloud-video-player 0.8.57 → 0.8.58
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/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdConfigManager.cjs +38 -73
- package/lib/player/AdConfigManager.cjs.map +1 -1
- package/lib/player/AdConfigManager.d.cts +1 -0
- package/lib/player/StormcloudVideoPlayer.cjs +44 -76
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.cjs +44 -76
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +44 -76
- package/lib/players/index.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +44 -76
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/utils/ctvVastSignals.cjs +30 -36
- package/lib/utils/ctvVastSignals.cjs.map +1 -1
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/vastEnvironmentSignals.cjs +16 -36
- package/lib/utils/vastEnvironmentSignals.cjs.map +1 -1
- package/lib/utils/vastEnvironmentSignals.d.cts +0 -3
- package/lib/utils/vastMacros.cjs +10 -34
- package/lib/utils/vastMacros.cjs.map +1 -1
- package/lib/utils/vastMacros.d.cts +0 -3
- package/package.json +1 -1
- package/lib/index.cjs +0 -12464
- package/lib/index.cjs.map +0 -1
- package/lib/index.d.cts +0 -4031
- package/lib/index.d.ts +0 -4031
- package/lib/index.js +0 -12241
- package/lib/index.js.map +0 -1
|
@@ -309,34 +309,8 @@ __export(AdConfigManager_exports, {
|
|
|
309
309
|
});
|
|
310
310
|
module.exports = __toCommonJS(AdConfigManager_exports);
|
|
311
311
|
// src/utils/vastEnvironmentSignals.ts
|
|
312
|
-
var AIRY_ANDROID_APP_ID = "com.freeairytv.android";
|
|
313
|
-
var AIRY_WEBOS_APP_ID = "com.freeairytv.webos";
|
|
314
|
-
var AIRY_TIZEN_APP_ID = "com.freeairytv.samsung";
|
|
315
|
-
var AIRY_ROKU_APP_ID = "com.freeairytv.roku";
|
|
316
|
-
var AIRY_APP_NAME = "AiryTV Movies & TV";
|
|
317
|
-
var AIRY_DEFAULT_CONTENT_URL = "https://live.airy.tv";
|
|
318
312
|
var CTV_SESSION_STORAGE_KEY = "stormcloud.ctv.sid";
|
|
319
313
|
var PLAYER_ID_STORAGE_KEY = "stormcloud.player.id";
|
|
320
|
-
var LG_TEST_APP_ID = "com.hulu.plus";
|
|
321
|
-
var LG_TEST_APP_NAME = "Hulu";
|
|
322
|
-
var LG_TEST_CONTENT_URL = "https://www.hulu.com/live-tv";
|
|
323
|
-
var _lgTestDeviceId;
|
|
324
|
-
function getLgTestDeviceId() {
|
|
325
|
-
if (!_lgTestDeviceId) _lgTestDeviceId = createUuid();
|
|
326
|
-
return _lgTestDeviceId;
|
|
327
|
-
}
|
|
328
|
-
function isLgWebOS() {
|
|
329
|
-
if (typeof navigator === "undefined") return false;
|
|
330
|
-
return /Web0S|webOS|LG Browser|LGSTB|LGE/i.test(navigator.userAgent);
|
|
331
|
-
}
|
|
332
|
-
function getDefaultAppId() {
|
|
333
|
-
if (typeof navigator === "undefined") return AIRY_ANDROID_APP_ID;
|
|
334
|
-
var ua = navigator.userAgent;
|
|
335
|
-
if (/Web0S|webOS|LG Browser|LGSTB|LGE/i.test(ua)) return AIRY_WEBOS_APP_ID;
|
|
336
|
-
if (/Tizen|Samsung/i.test(ua)) return AIRY_TIZEN_APP_ID;
|
|
337
|
-
if (/Roku/i.test(ua)) return AIRY_ROKU_APP_ID;
|
|
338
|
-
return AIRY_ANDROID_APP_ID;
|
|
339
|
-
}
|
|
340
314
|
var DEVICE_ID_STORAGE_KEYS = [
|
|
341
315
|
"rdid",
|
|
342
316
|
"ifa",
|
|
@@ -357,23 +331,29 @@ function resolveVastEnvironmentSignals(isCtv) {
|
|
|
357
331
|
var _ref;
|
|
358
332
|
var bridgeSignals = readNativeBridgeSignals();
|
|
359
333
|
var platformDevice = readPlatformNativeDeviceId();
|
|
360
|
-
var
|
|
361
|
-
var deviceId =
|
|
362
|
-
var deviceIdType = bridgeSignals.deviceIdType || readStoredString("deviceIdType") || readStoredString("idtype") || platformDevice.deviceIdType || inferDeviceIdType()
|
|
334
|
+
var realDeviceId = bridgeSignals.deviceId || readStoredDeviceId() || platformDevice.deviceId;
|
|
335
|
+
var deviceId = realDeviceId;
|
|
336
|
+
var deviceIdType = bridgeSignals.deviceIdType || readStoredString("deviceIdType") || readStoredString("idtype") || platformDevice.deviceIdType || inferDeviceIdType();
|
|
363
337
|
var platformLat = bridgeSignals.deviceId ? bridgeSignals.limitAdTracking : platformDevice.limitAdTracking;
|
|
364
338
|
var limitAdTracking = deviceId != null ? (_ref = platformLat !== null && platformLat !== void 0 ? platformLat : readStoredLimitAdTracking()) !== null && _ref !== void 0 ? _ref : false : void 0;
|
|
339
|
+
if (!deviceId && isCtv) {
|
|
340
|
+
var dpid = getOrCreateStoredUuid(PLAYER_ID_STORAGE_KEY);
|
|
341
|
+
if (dpid) {
|
|
342
|
+
var _ref1;
|
|
343
|
+
deviceId = dpid;
|
|
344
|
+
deviceIdType = "dpid";
|
|
345
|
+
limitAdTracking = (_ref1 = platformLat !== null && platformLat !== void 0 ? platformLat : readStoredLimitAdTracking()) !== null && _ref1 !== void 0 ? _ref1 : false;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
365
348
|
if (isCtv) {
|
|
366
349
|
return _object_spread_props(_object_spread({
|
|
367
350
|
isCtv: true,
|
|
368
|
-
contentUrl: bridgeSignals.contentUrl || readStoredString("contentUrl") || (lg ? LG_TEST_CONTENT_URL : AIRY_DEFAULT_CONTENT_URL),
|
|
369
|
-
appId: bridgeSignals.appId || readStoredString("appId") || readStoredString("msid") || (lg ? LG_TEST_APP_ID : getDefaultAppId()),
|
|
370
|
-
appName: bridgeSignals.appName || readStoredString("appName") || readStoredString("an") || (lg ? LG_TEST_APP_NAME : AIRY_APP_NAME),
|
|
371
351
|
sessionId: getOrCreateCtvSessionId()
|
|
372
352
|
}, deviceId ? {
|
|
373
353
|
deviceId: deviceId
|
|
374
|
-
} : {}, deviceIdType ? {
|
|
354
|
+
} : {}, deviceId && deviceIdType ? {
|
|
375
355
|
deviceIdType: deviceIdType
|
|
376
|
-
} : {}, limitAdTracking != null ? {
|
|
356
|
+
} : {}, deviceId && limitAdTracking != null ? {
|
|
377
357
|
limitAdTracking: limitAdTracking
|
|
378
358
|
} : {}), {
|
|
379
359
|
deviceTypeHint: 5
|
|
@@ -383,9 +363,9 @@ function resolveVastEnvironmentSignals(isCtv) {
|
|
|
383
363
|
isCtv: false
|
|
384
364
|
}, deviceId ? {
|
|
385
365
|
deviceId: deviceId
|
|
386
|
-
} : {}, deviceIdType ? {
|
|
366
|
+
} : {}, deviceId && deviceIdType ? {
|
|
387
367
|
deviceIdType: deviceIdType
|
|
388
|
-
} : {}, limitAdTracking != null ? {
|
|
368
|
+
} : {}, deviceId && limitAdTracking != null ? {
|
|
389
369
|
limitAdTracking: limitAdTracking
|
|
390
370
|
} : {});
|
|
391
371
|
}
|
|
@@ -816,7 +796,6 @@ var UNEXPANDED_MACRO_PATTERN = /^(\[[^\]]*\]|\{[^}]*\}|%%[^%]*%%)$/;
|
|
|
816
796
|
var INVALID_VAST_PARAM_KEY = /^\s|\s$/;
|
|
817
797
|
var EXAMPLE_COM_URL = /example\.com/i;
|
|
818
798
|
var CTV_UNSUPPORTED_PARAMS = [
|
|
819
|
-
"description_url",
|
|
820
799
|
"tfcd",
|
|
821
800
|
"npa",
|
|
822
801
|
"min_ad_duration",
|
|
@@ -907,18 +886,6 @@ var INLINE_DEVICE_MACRO_REPLACEMENTS = [
|
|
|
907
886
|
return ctx.limitAdTracking != null ? ctx.limitAdTracking ? "1" : "0" : void 0;
|
|
908
887
|
}
|
|
909
888
|
},
|
|
910
|
-
{
|
|
911
|
-
pattern: /%%MSID%%/gi,
|
|
912
|
-
getValue: function getValue(ctx) {
|
|
913
|
-
return ctx.appId;
|
|
914
|
-
}
|
|
915
|
-
},
|
|
916
|
-
{
|
|
917
|
-
pattern: /%%APP_NAME%%/gi,
|
|
918
|
-
getValue: function getValue(ctx) {
|
|
919
|
-
return ctx.appName;
|
|
920
|
-
}
|
|
921
|
-
},
|
|
922
889
|
{
|
|
923
890
|
pattern: /%%SESSION_ID%%/gi,
|
|
924
891
|
getValue: function getValue(ctx) {
|
|
@@ -1109,7 +1076,7 @@ function applyVastMacros(baseUrl, ctx) {
|
|
|
1109
1076
|
return replaceCorrelatorFallback(expandedUrl, ctx.correlator);
|
|
1110
1077
|
}
|
|
1111
1078
|
var params = url.searchParams;
|
|
1112
|
-
removeBrokenAppNameOrphans(params
|
|
1079
|
+
removeBrokenAppNameOrphans(params);
|
|
1113
1080
|
params.set("correlator", ctx.correlator);
|
|
1114
1081
|
params.set("scor", ctx.streamCorrelator);
|
|
1115
1082
|
if (ctx.isCtv) {
|
|
@@ -1148,18 +1115,14 @@ function applyVastMacros(baseUrl, ctx) {
|
|
|
1148
1115
|
if (ctx.podMaxAds != null) {
|
|
1149
1116
|
params.set("pmad", String(Math.max(1, Math.round(ctx.podMaxAds))));
|
|
1150
1117
|
}
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
params.set("
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
if (EXAMPLE_COM_URL.test(existingUrl)) {
|
|
1160
|
-
params.delete("url");
|
|
1161
|
-
params.delete("description_url");
|
|
1162
|
-
}
|
|
1118
|
+
if (!ctx.isCtv && ctx.pageUrl) {
|
|
1119
|
+
params.set("url", ctx.pageUrl);
|
|
1120
|
+
params.set("description_url", ctx.pageUrl);
|
|
1121
|
+
}
|
|
1122
|
+
var existingUrl = params.get("url") || "";
|
|
1123
|
+
if (EXAMPLE_COM_URL.test(existingUrl)) {
|
|
1124
|
+
params.delete("url");
|
|
1125
|
+
params.delete("description_url");
|
|
1163
1126
|
}
|
|
1164
1127
|
if (ctx.adWillPlayMuted != null) {
|
|
1165
1128
|
params.set("vpmute", ctx.adWillPlayMuted ? "1" : "0");
|
|
@@ -1167,13 +1130,6 @@ function applyVastMacros(baseUrl, ctx) {
|
|
|
1167
1130
|
if (ctx.adWillAutoPlay != null) {
|
|
1168
1131
|
params.set("vpa", ctx.adWillAutoPlay ? "auto" : "click");
|
|
1169
1132
|
}
|
|
1170
|
-
if (ctx.appId) {
|
|
1171
|
-
params.set("msid", ctx.appId);
|
|
1172
|
-
}
|
|
1173
|
-
if (ctx.appName) {
|
|
1174
|
-
removeBrokenAppNameOrphans(params, ctx.appName);
|
|
1175
|
-
params.set("an", ctx.appName);
|
|
1176
|
-
}
|
|
1177
1133
|
if (ctx.sessionId) {
|
|
1178
1134
|
params.set("sid", ctx.sessionId);
|
|
1179
1135
|
}
|
|
@@ -1224,7 +1180,7 @@ function applyVastMacros(baseUrl, ctx) {
|
|
|
1224
1180
|
}
|
|
1225
1181
|
}
|
|
1226
1182
|
}
|
|
1227
|
-
removeBrokenAppNameOrphans(params
|
|
1183
|
+
removeBrokenAppNameOrphans(params);
|
|
1228
1184
|
return url.toString();
|
|
1229
1185
|
}
|
|
1230
1186
|
function replaceCorrelatorFallback(baseUrl, correlator) {
|
|
@@ -2213,6 +2169,18 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
2213
2169
|
};
|
|
2214
2170
|
}
|
|
2215
2171
|
},
|
|
2172
|
+
{
|
|
2173
|
+
key: "getPalDescriptionUrl",
|
|
2174
|
+
value: function getPalDescriptionUrl() {
|
|
2175
|
+
if (!this.apiVastTagUrl) return void 0;
|
|
2176
|
+
try {
|
|
2177
|
+
var params = new URL(this.apiVastTagUrl).searchParams;
|
|
2178
|
+
return params.get("description_url") || params.get("url") || void 0;
|
|
2179
|
+
} catch (unused) {
|
|
2180
|
+
return void 0;
|
|
2181
|
+
}
|
|
2182
|
+
}
|
|
2183
|
+
},
|
|
2216
2184
|
{
|
|
2217
2185
|
key: "generatePodVastUrl",
|
|
2218
2186
|
value: function generatePodVastUrl(baseUrl, podParams, adPlayer, palNonce, inAdBreak) {
|
|
@@ -2227,12 +2195,9 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
2227
2195
|
podMinDurationMs: podParams.minDurationMs,
|
|
2228
2196
|
podMaxDurationMs: podParams.maxDurationMs,
|
|
2229
2197
|
isCtv: envSignals.isCtv,
|
|
2230
|
-
contentUrl: envSignals.contentUrl,
|
|
2231
2198
|
pageUrl: !envSignals.isCtv && typeof window !== "undefined" ? toDevSafeUrl(window.location.href) : void 0,
|
|
2232
2199
|
adWillPlayMuted: adWillPlayMuted,
|
|
2233
2200
|
adWillAutoPlay: !!this.config.autoplay,
|
|
2234
|
-
appId: envSignals.appId,
|
|
2235
|
-
appName: envSignals.appName,
|
|
2236
2201
|
sessionId: envSignals.sessionId,
|
|
2237
2202
|
deviceId: envSignals.deviceId,
|
|
2238
2203
|
deviceIdType: envSignals.deviceIdType,
|