stormcloud-video-player 0.8.56 → 0.8.57
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/README.md +2 -2
- package/dist/stormcloud-vp.min.js +1 -3
- package/lib/index.cjs +161 -283
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +12 -29
- package/lib/index.d.ts +12 -29
- package/lib/index.js +141 -227
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +118 -188
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdConfigManager.cjs +103 -200
- package/lib/player/AdConfigManager.cjs.map +1 -1
- package/lib/player/AdConfigManager.d.cts +0 -1
- package/lib/player/AdTimingService.cjs.map +1 -1
- package/lib/player/HlsEngine.cjs.map +1 -1
- package/lib/player/PlaceholderLayer.cjs.map +1 -1
- package/lib/player/PlayerControls.cjs.map +1 -1
- package/lib/player/Scte35CueManager.cjs.map +1 -1
- package/lib/player/Scte35Parser.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +134 -205
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/playerTypes.cjs.map +1 -1
- package/lib/players/FilePlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.cjs +134 -205
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +134 -205
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
- package/lib/sdk/pal.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +134 -205
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/utils/browserCompat.cjs.map +1 -1
- package/lib/utils/ctvVastSignals.cjs.map +1 -1
- package/lib/utils/devUrl.cjs.map +1 -1
- package/lib/utils/polyfills.cjs.map +1 -1
- package/lib/utils/tracking.cjs +134 -199
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/trackingIngest.cjs +322 -0
- package/lib/utils/trackingIngest.cjs.map +1 -0
- package/lib/utils/trackingIngest.d.cts +14 -0
- package/lib/utils/vastEnvironmentSignals.cjs.map +1 -1
- package/lib/utils/vastMacros.cjs.map +1 -1
- package/lib/utils/vastTrackingMacros.cjs.map +1 -1
- package/package.json +1 -3
- package/lib/utils/mqttClient.cjs +0 -305
- package/lib/utils/mqttClient.cjs.map +0 -1
- package/lib/utils/mqttClient.d.cts +0 -13
- package/lib/utils/mqttConfig.cjs +0 -139
- package/lib/utils/mqttConfig.cjs.map +0 -1
- package/lib/utils/mqttConfig.d.cts +0 -20
- package/src/certs/emqxsl-ca.crt +0 -22
package/lib/index.cjs
CHANGED
|
@@ -423,8 +423,8 @@ var __toCommonJS = function __toCommonJS(mod) {
|
|
|
423
423
|
// src/index.ts
|
|
424
424
|
var index_exports = {};
|
|
425
425
|
__export(index_exports, {
|
|
426
|
-
|
|
427
|
-
return
|
|
426
|
+
DEFAULT_TRACKING_INGEST_CONFIG: function DEFAULT_TRACKING_INGEST_CONFIG1() {
|
|
427
|
+
return DEFAULT_TRACKING_INGEST_CONFIG;
|
|
428
428
|
},
|
|
429
429
|
IS_BROWSER: function IS_BROWSER1() {
|
|
430
430
|
return IS_BROWSER;
|
|
@@ -438,9 +438,6 @@ __export(index_exports, {
|
|
|
438
438
|
IS_SAFARI: function IS_SAFARI1() {
|
|
439
439
|
return IS_SAFARI;
|
|
440
440
|
},
|
|
441
|
-
MQTT_CA_CERT_FILE: function MQTT_CA_CERT_FILE1() {
|
|
442
|
-
return MQTT_CA_CERT_FILE;
|
|
443
|
-
},
|
|
444
441
|
SUPPORTS_DASH: function SUPPORTS_DASH1() {
|
|
445
442
|
return SUPPORTS_DASH;
|
|
446
443
|
},
|
|
@@ -456,23 +453,17 @@ __export(index_exports, {
|
|
|
456
453
|
StormcloudVideoPlayerComponent: function StormcloudVideoPlayerComponent1() {
|
|
457
454
|
return StormcloudVideoPlayerComponent;
|
|
458
455
|
},
|
|
459
|
-
|
|
460
|
-
return
|
|
456
|
+
applyTrackingIngestConfig: function applyTrackingIngestConfig1() {
|
|
457
|
+
return applyTrackingIngestConfig;
|
|
461
458
|
},
|
|
462
459
|
buildAnalyticsContext: function buildAnalyticsContext1() {
|
|
463
460
|
return buildAnalyticsContext;
|
|
464
461
|
},
|
|
465
|
-
buildMQTTBrokerUrl: function buildMQTTBrokerUrl1() {
|
|
466
|
-
return buildMQTTBrokerUrl;
|
|
467
|
-
},
|
|
468
|
-
buildPlayerTopic: function buildPlayerTopic1() {
|
|
469
|
-
return buildPlayerTopic;
|
|
470
|
-
},
|
|
471
462
|
canPlay: function canPlay1() {
|
|
472
463
|
return canPlay;
|
|
473
464
|
},
|
|
474
|
-
|
|
475
|
-
return
|
|
465
|
+
configureTrackingIngest: function configureTrackingIngest1() {
|
|
466
|
+
return configureTrackingIngest;
|
|
476
467
|
},
|
|
477
468
|
createHlsAdPlayer: function createHlsAdPlayer1() {
|
|
478
469
|
return createHlsAdPlayer;
|
|
@@ -489,12 +480,6 @@ __export(index_exports, {
|
|
|
489
480
|
detectBrowser: function detectBrowser1() {
|
|
490
481
|
return detectBrowser;
|
|
491
482
|
},
|
|
492
|
-
disconnectMQTT: function disconnectMQTT1() {
|
|
493
|
-
return disconnectMQTT;
|
|
494
|
-
},
|
|
495
|
-
ensureMQTTClient: function ensureMQTTClient1() {
|
|
496
|
-
return ensureMQTTClient;
|
|
497
|
-
},
|
|
498
483
|
getBrowserConfigOverrides: function getBrowserConfigOverrides1() {
|
|
499
484
|
return getBrowserConfigOverrides;
|
|
500
485
|
},
|
|
@@ -504,27 +489,18 @@ __export(index_exports, {
|
|
|
504
489
|
getClientInfo: function getClientInfo1() {
|
|
505
490
|
return getClientInfo;
|
|
506
491
|
},
|
|
507
|
-
|
|
508
|
-
return
|
|
509
|
-
},
|
|
510
|
-
initMQTTClient: function initMQTTClient1() {
|
|
511
|
-
return initMQTTClient;
|
|
492
|
+
ingestPlayerTracking: function ingestPlayerTracking1() {
|
|
493
|
+
return ingestPlayerTracking;
|
|
512
494
|
},
|
|
513
495
|
initializePolyfills: function initializePolyfills1() {
|
|
514
496
|
return initializePolyfills;
|
|
515
497
|
},
|
|
516
|
-
isMQTTConfigured: function isMQTTConfigured1() {
|
|
517
|
-
return isMQTTConfigured;
|
|
518
|
-
},
|
|
519
|
-
isMQTTConnected: function isMQTTConnected1() {
|
|
520
|
-
return isMQTTConnected;
|
|
521
|
-
},
|
|
522
|
-
isMQTTEnabled: function isMQTTEnabled1() {
|
|
523
|
-
return isMQTTEnabled;
|
|
524
|
-
},
|
|
525
498
|
isMediaStream: function isMediaStream1() {
|
|
526
499
|
return isMediaStream;
|
|
527
500
|
},
|
|
501
|
+
isTrackingIngestEnabled: function isTrackingIngestEnabled1() {
|
|
502
|
+
return isTrackingIngestEnabled;
|
|
503
|
+
},
|
|
528
504
|
lazy: function lazy1() {
|
|
529
505
|
return lazy;
|
|
530
506
|
},
|
|
@@ -534,9 +510,6 @@ __export(index_exports, {
|
|
|
534
510
|
merge: function merge1() {
|
|
535
511
|
return merge;
|
|
536
512
|
},
|
|
537
|
-
mqttConfig: function mqttConfig1() {
|
|
538
|
-
return mqttConfig;
|
|
539
|
-
},
|
|
540
513
|
omit: function omit1() {
|
|
541
514
|
return omit;
|
|
542
515
|
},
|
|
@@ -546,9 +519,6 @@ __export(index_exports, {
|
|
|
546
519
|
players: function players() {
|
|
547
520
|
return players_default;
|
|
548
521
|
},
|
|
549
|
-
publishMQTT: function publishMQTT1() {
|
|
550
|
-
return publishMQTT;
|
|
551
|
-
},
|
|
552
522
|
randomString: function randomString1() {
|
|
553
523
|
return randomString;
|
|
554
524
|
},
|
|
@@ -578,6 +548,9 @@ __export(index_exports, {
|
|
|
578
548
|
},
|
|
579
549
|
supportsWebKitPresentationMode: function supportsWebKitPresentationMode1() {
|
|
580
550
|
return supportsWebKitPresentationMode;
|
|
551
|
+
},
|
|
552
|
+
trackingIngestConfig: function trackingIngestConfig1() {
|
|
553
|
+
return trackingIngestConfig;
|
|
581
554
|
}
|
|
582
555
|
});
|
|
583
556
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -2678,184 +2651,89 @@ function createPalNonceManager() {
|
|
|
2678
2651
|
}
|
|
2679
2652
|
};
|
|
2680
2653
|
}
|
|
2681
|
-
// src/utils/
|
|
2682
|
-
var
|
|
2683
|
-
var DEFAULT_MQTT_CONFIG = {
|
|
2654
|
+
// src/utils/trackingIngest.ts
|
|
2655
|
+
var DEFAULT_TRACKING_INGEST_CONFIG = {
|
|
2684
2656
|
enabled: true,
|
|
2685
|
-
|
|
2686
|
-
brokerPort: 8883,
|
|
2687
|
-
wsPort: 8084,
|
|
2688
|
-
username: "for-sonifi",
|
|
2689
|
-
password: "sonifi-mqtt",
|
|
2690
|
-
topicPrefix: "adstorm/players",
|
|
2691
|
-
qos: 1
|
|
2657
|
+
baseUrl: "https://player-analytics-ingest-api-760490581852.us-central1.run.app/api/adstorm/player-tracking"
|
|
2692
2658
|
};
|
|
2693
|
-
var
|
|
2694
|
-
function
|
|
2695
|
-
Object.assign(
|
|
2696
|
-
}
|
|
2697
|
-
function isMQTTEnabled() {
|
|
2698
|
-
return mqttConfig.enabled;
|
|
2699
|
-
}
|
|
2700
|
-
function buildMQTTBrokerUrl() {
|
|
2701
|
-
if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;
|
|
2702
|
-
return "wss://".concat(mqttConfig.brokerAddress, ":").concat(mqttConfig.wsPort, "/mqtt");
|
|
2703
|
-
}
|
|
2704
|
-
function buildPlayerTopic(licenseKey, channel) {
|
|
2705
|
-
return "".concat(mqttConfig.topicPrefix, "/").concat(licenseKey, "/").concat(channel);
|
|
2706
|
-
}
|
|
2707
|
-
// src/utils/mqttClient.ts
|
|
2708
|
-
var import_mqtt = __toESM(require("mqtt"), 1);
|
|
2709
|
-
var LOG = "[StormcloudVideoPlayer][MQTT]";
|
|
2710
|
-
var KEEPALIVE_SECONDS = 30;
|
|
2711
|
-
var CONNECT_TIMEOUT_MS = 1e4;
|
|
2712
|
-
var RECONNECT_BASE_MS = 5e3;
|
|
2713
|
-
var RECONNECT_MAX_MS = 6e4;
|
|
2714
|
-
var MAX_RECONNECT_ATTEMPTS = 8;
|
|
2715
|
-
var COOLDOWN_MS = 10 * 6e4;
|
|
2716
|
-
var client = null;
|
|
2717
|
-
var status = "disconnected";
|
|
2718
|
-
var reconnectAttempts = 0;
|
|
2719
|
-
var reconnectTimer = null;
|
|
2720
|
-
var stopped = false;
|
|
2721
|
-
function getMQTTStatus() {
|
|
2722
|
-
return status;
|
|
2723
|
-
}
|
|
2724
|
-
function isMQTTConnected() {
|
|
2725
|
-
return status === "connected" && client !== null && client.connected;
|
|
2726
|
-
}
|
|
2727
|
-
function isMQTTConfigured() {
|
|
2728
|
-
return isMQTTEnabled();
|
|
2729
|
-
}
|
|
2730
|
-
function configureMQTT(overrides) {
|
|
2731
|
-
applyMQTTConfig(overrides);
|
|
2732
|
-
disconnectMQTT();
|
|
2733
|
-
}
|
|
2734
|
-
function clearReconnectTimer() {
|
|
2735
|
-
if (reconnectTimer) {
|
|
2736
|
-
clearTimeout(reconnectTimer);
|
|
2737
|
-
reconnectTimer = null;
|
|
2738
|
-
}
|
|
2739
|
-
}
|
|
2740
|
-
function teardownClient() {
|
|
2741
|
-
if (client) {
|
|
2742
|
-
try {
|
|
2743
|
-
client.removeAllListeners();
|
|
2744
|
-
client.end(true);
|
|
2745
|
-
} catch (unused) {}
|
|
2746
|
-
client = null;
|
|
2747
|
-
}
|
|
2748
|
-
}
|
|
2749
|
-
function scheduleReconnect() {
|
|
2750
|
-
if (stopped || !isMQTTEnabled() || reconnectTimer) return;
|
|
2751
|
-
if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {
|
|
2752
|
-
console.warn("".concat(LOG, " giving up after ").concat(reconnectAttempts, " attempts; cooling down for ").concat(COOLDOWN_MS / 6e4, "m"));
|
|
2753
|
-
teardownClient();
|
|
2754
|
-
status = "disconnected";
|
|
2755
|
-
reconnectTimer = setTimeout(function() {
|
|
2756
|
-
reconnectTimer = null;
|
|
2757
|
-
reconnectAttempts = 0;
|
|
2758
|
-
openConnection();
|
|
2759
|
-
}, COOLDOWN_MS);
|
|
2760
|
-
return;
|
|
2761
|
-
}
|
|
2762
|
-
var delay = Math.min(RECONNECT_MAX_MS, RECONNECT_BASE_MS * Math.pow(2, reconnectAttempts));
|
|
2763
|
-
var jitter = Math.floor(Math.random() * 1e3);
|
|
2764
|
-
reconnectAttempts += 1;
|
|
2765
|
-
reconnectTimer = setTimeout(function() {
|
|
2766
|
-
reconnectTimer = null;
|
|
2767
|
-
openConnection();
|
|
2768
|
-
}, delay + jitter);
|
|
2769
|
-
}
|
|
2770
|
-
function openConnection() {
|
|
2771
|
-
if (stopped || !isMQTTEnabled()) return;
|
|
2772
|
-
teardownClient();
|
|
2773
|
-
var url = buildMQTTBrokerUrl();
|
|
2774
|
-
status = "connecting";
|
|
2775
|
-
var clientId = "stormcloud-vp-".concat(Math.random().toString(36).slice(2, 9));
|
|
2776
|
-
try {
|
|
2777
|
-
client = import_mqtt.default.connect(url, {
|
|
2778
|
-
clientId: clientId,
|
|
2779
|
-
username: mqttConfig.username,
|
|
2780
|
-
password: mqttConfig.password,
|
|
2781
|
-
keepalive: KEEPALIVE_SECONDS,
|
|
2782
|
-
clean: true,
|
|
2783
|
-
// Disable MQTT.js internal reconnect; we manage reconnection ourselves.
|
|
2784
|
-
reconnectPeriod: 0,
|
|
2785
|
-
connectTimeout: CONNECT_TIMEOUT_MS,
|
|
2786
|
-
queueQoSZero: false,
|
|
2787
|
-
reschedulePings: true,
|
|
2788
|
-
// Root-cause fix for the Tizen 4.0 "Keepalive timeout" loop: MQTT.js's
|
|
2789
|
-
// default timerVariant "auto" runs the keepalive interval inside a
|
|
2790
|
-
// Blob-URL Web Worker (via worker-timers). On Samsung Tizen 4.0 (old
|
|
2791
|
-
// WebKit) served from a file:// origin that worker can't tick reliably,
|
|
2792
|
-
// so the keepalive counter trips onKeepaliveTimeout almost immediately
|
|
2793
|
-
// after connect. Force the native setInterval timer instead; the main
|
|
2794
|
-
// thread is free because video is decoded by the native AVPlay pipeline.
|
|
2795
|
-
timerVariant: "native"
|
|
2796
|
-
});
|
|
2797
|
-
} catch (err) {
|
|
2798
|
-
status = "error";
|
|
2799
|
-
console.warn("".concat(LOG, " connect() threw:"), err);
|
|
2800
|
-
scheduleReconnect();
|
|
2801
|
-
return;
|
|
2802
|
-
}
|
|
2803
|
-
client.on("connect", function() {
|
|
2804
|
-
status = "connected";
|
|
2805
|
-
reconnectAttempts = 0;
|
|
2806
|
-
clearReconnectTimer();
|
|
2807
|
-
console.info("".concat(LOG, " connected to ").concat(url));
|
|
2808
|
-
});
|
|
2809
|
-
client.on("offline", function() {
|
|
2810
|
-
if (status === "connected") status = "disconnected";
|
|
2811
|
-
console.warn("".concat(LOG, " offline"));
|
|
2812
|
-
scheduleReconnect();
|
|
2813
|
-
});
|
|
2814
|
-
client.on("error", function(err) {
|
|
2815
|
-
status = "error";
|
|
2816
|
-
console.warn("".concat(LOG, " error:"), err.message);
|
|
2817
|
-
scheduleReconnect();
|
|
2818
|
-
});
|
|
2819
|
-
client.on("close", function() {
|
|
2820
|
-
if (status === "connected") status = "disconnected";
|
|
2821
|
-
scheduleReconnect();
|
|
2822
|
-
});
|
|
2659
|
+
var trackingIngestConfig = _object_spread({}, DEFAULT_TRACKING_INGEST_CONFIG);
|
|
2660
|
+
function applyTrackingIngestConfig(overrides) {
|
|
2661
|
+
Object.assign(trackingIngestConfig, overrides);
|
|
2823
2662
|
}
|
|
2824
|
-
function
|
|
2825
|
-
|
|
2826
|
-
stopped = false;
|
|
2827
|
-
reconnectAttempts = 0;
|
|
2828
|
-
openConnection();
|
|
2663
|
+
function configureTrackingIngest(overrides) {
|
|
2664
|
+
applyTrackingIngestConfig(overrides);
|
|
2829
2665
|
}
|
|
2830
|
-
function
|
|
2831
|
-
|
|
2832
|
-
initMQTTClient();
|
|
2833
|
-
}
|
|
2666
|
+
function isTrackingIngestEnabled() {
|
|
2667
|
+
return trackingIngestConfig.enabled === true;
|
|
2834
2668
|
}
|
|
2835
|
-
function
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
if (
|
|
2841
|
-
return
|
|
2842
|
-
}
|
|
2843
|
-
try {
|
|
2844
|
-
client.publish(topic, JSON.stringify(payload), {
|
|
2845
|
-
qos: mqttConfig.qos
|
|
2846
|
-
});
|
|
2847
|
-
return true;
|
|
2848
|
-
} catch (err) {
|
|
2849
|
-
console.warn("".concat(LOG, " publish failed on ").concat(topic, ":"), err);
|
|
2850
|
-
return false;
|
|
2669
|
+
function normalizeIngestBaseUrl(baseUrl) {
|
|
2670
|
+
return baseUrl.replace(/\/+$/, "");
|
|
2671
|
+
}
|
|
2672
|
+
function buildTrackingIngestUrl(channel) {
|
|
2673
|
+
var base = normalizeIngestBaseUrl(trackingIngestConfig.baseUrl);
|
|
2674
|
+
if (channel === "impressions") {
|
|
2675
|
+
return "".concat(base, "/impressions/ingest");
|
|
2851
2676
|
}
|
|
2677
|
+
return "".concat(base, "/metrics/ingest");
|
|
2852
2678
|
}
|
|
2853
|
-
function
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2679
|
+
function ingestPlayerTracking(licenseKey, channel, body) {
|
|
2680
|
+
return _async_to_generator(function() {
|
|
2681
|
+
var response, error;
|
|
2682
|
+
return _ts_generator(this, function(_state) {
|
|
2683
|
+
switch(_state.label){
|
|
2684
|
+
case 0:
|
|
2685
|
+
if (!isTrackingIngestEnabled() || !licenseKey) {
|
|
2686
|
+
return [
|
|
2687
|
+
2,
|
|
2688
|
+
false
|
|
2689
|
+
];
|
|
2690
|
+
}
|
|
2691
|
+
_state.label = 1;
|
|
2692
|
+
case 1:
|
|
2693
|
+
_state.trys.push([
|
|
2694
|
+
1,
|
|
2695
|
+
3,
|
|
2696
|
+
,
|
|
2697
|
+
4
|
|
2698
|
+
]);
|
|
2699
|
+
return [
|
|
2700
|
+
4,
|
|
2701
|
+
fetch(buildTrackingIngestUrl(channel), {
|
|
2702
|
+
method: "POST",
|
|
2703
|
+
headers: {
|
|
2704
|
+
"Content-Type": "application/json",
|
|
2705
|
+
Authorization: "License-Key ".concat(licenseKey)
|
|
2706
|
+
},
|
|
2707
|
+
body: JSON.stringify(body)
|
|
2708
|
+
})
|
|
2709
|
+
];
|
|
2710
|
+
case 2:
|
|
2711
|
+
response = _state.sent();
|
|
2712
|
+
if (!response.ok) {
|
|
2713
|
+
console.warn("[StormcloudVideoPlayer] Tracking ingest failed (".concat(response.status, ") for ").concat(channel));
|
|
2714
|
+
return [
|
|
2715
|
+
2,
|
|
2716
|
+
false
|
|
2717
|
+
];
|
|
2718
|
+
}
|
|
2719
|
+
return [
|
|
2720
|
+
2,
|
|
2721
|
+
true
|
|
2722
|
+
];
|
|
2723
|
+
case 3:
|
|
2724
|
+
error = _state.sent();
|
|
2725
|
+
console.warn("[StormcloudVideoPlayer] Tracking ingest error for ".concat(channel, ":"), error);
|
|
2726
|
+
return [
|
|
2727
|
+
2,
|
|
2728
|
+
false
|
|
2729
|
+
];
|
|
2730
|
+
case 4:
|
|
2731
|
+
return [
|
|
2732
|
+
2
|
|
2733
|
+
];
|
|
2734
|
+
}
|
|
2735
|
+
});
|
|
2736
|
+
})();
|
|
2859
2737
|
}
|
|
2860
2738
|
// src/utils/vastEnvironmentSignals.ts
|
|
2861
2739
|
var AIRY_ANDROID_APP_ID = "com.freeairytv.android";
|
|
@@ -3626,7 +3504,7 @@ function getBrowserID(clientInfo) {
|
|
|
3626
3504
|
})();
|
|
3627
3505
|
}
|
|
3628
3506
|
function canPublish(licenseKey) {
|
|
3629
|
-
return Boolean(
|
|
3507
|
+
return Boolean(isTrackingIngestEnabled() && licenseKey);
|
|
3630
3508
|
}
|
|
3631
3509
|
function buildPlayerMetricEvent() {
|
|
3632
3510
|
return _async_to_generator(function() {
|
|
@@ -3668,10 +3546,6 @@ function buildPlayerMetricEvent() {
|
|
|
3668
3546
|
});
|
|
3669
3547
|
}).apply(this, arguments);
|
|
3670
3548
|
}
|
|
3671
|
-
function publishTracking(licenseKey, channel, body) {
|
|
3672
|
-
ensureMQTTClient();
|
|
3673
|
-
publishMQTT(buildPlayerTopic(licenseKey, channel), body);
|
|
3674
|
-
}
|
|
3675
3549
|
function sendInitialTracking(_0) {
|
|
3676
3550
|
return _async_to_generator(function(licenseKey) {
|
|
3677
3551
|
var context, metricEvent, error;
|
|
@@ -3687,9 +3561,9 @@ function sendInitialTracking(_0) {
|
|
|
3687
3561
|
case 1:
|
|
3688
3562
|
_state.trys.push([
|
|
3689
3563
|
1,
|
|
3690
|
-
|
|
3564
|
+
4,
|
|
3691
3565
|
,
|
|
3692
|
-
|
|
3566
|
+
5
|
|
3693
3567
|
]);
|
|
3694
3568
|
return [
|
|
3695
3569
|
4,
|
|
@@ -3700,23 +3574,28 @@ function sendInitialTracking(_0) {
|
|
|
3700
3574
|
];
|
|
3701
3575
|
case 2:
|
|
3702
3576
|
metricEvent = _state.sent();
|
|
3703
|
-
publishTracking(licenseKey, "metrics", {
|
|
3704
|
-
events: [
|
|
3705
|
-
metricEvent
|
|
3706
|
-
]
|
|
3707
|
-
});
|
|
3708
3577
|
return [
|
|
3709
|
-
|
|
3710
|
-
|
|
3578
|
+
4,
|
|
3579
|
+
ingestPlayerTracking(licenseKey, "metrics", {
|
|
3580
|
+
events: [
|
|
3581
|
+
metricEvent
|
|
3582
|
+
]
|
|
3583
|
+
})
|
|
3711
3584
|
];
|
|
3712
3585
|
case 3:
|
|
3586
|
+
_state.sent();
|
|
3587
|
+
return [
|
|
3588
|
+
3,
|
|
3589
|
+
5
|
|
3590
|
+
];
|
|
3591
|
+
case 4:
|
|
3713
3592
|
error = _state.sent();
|
|
3714
3593
|
console.error("[StormcloudVideoPlayer] Error sending initial tracking data:", error);
|
|
3715
3594
|
return [
|
|
3716
3595
|
3,
|
|
3717
|
-
|
|
3596
|
+
5
|
|
3718
3597
|
];
|
|
3719
|
-
case
|
|
3598
|
+
case 5:
|
|
3720
3599
|
return [
|
|
3721
3600
|
2
|
|
3722
3601
|
];
|
|
@@ -3827,9 +3706,9 @@ function sendAdImpressionTracking(_0, _1) {
|
|
|
3827
3706
|
case 1:
|
|
3828
3707
|
_state.trys.push([
|
|
3829
3708
|
1,
|
|
3830
|
-
|
|
3709
|
+
5,
|
|
3831
3710
|
,
|
|
3832
|
-
|
|
3711
|
+
6
|
|
3833
3712
|
]);
|
|
3834
3713
|
return [
|
|
3835
3714
|
4,
|
|
@@ -3839,29 +3718,43 @@ function sendAdImpressionTracking(_0, _1) {
|
|
|
3839
3718
|
];
|
|
3840
3719
|
case 2:
|
|
3841
3720
|
metricEvent = _state.sent();
|
|
3842
|
-
publishTracking(licenseKey, "heartbeat", metricEvent);
|
|
3843
|
-
publishTracking(licenseKey, "impressions", {
|
|
3844
|
-
events: [
|
|
3845
|
-
{
|
|
3846
|
-
player_id: metricEvent.player_id,
|
|
3847
|
-
ad_played_count: 1,
|
|
3848
|
-
ad_url: adImpressionInfo.adUrl,
|
|
3849
|
-
capture_at: adImpressionInfo.timestamp
|
|
3850
|
-
}
|
|
3851
|
-
]
|
|
3852
|
-
});
|
|
3853
3721
|
return [
|
|
3854
|
-
|
|
3855
|
-
|
|
3722
|
+
4,
|
|
3723
|
+
ingestPlayerTracking(licenseKey, "metrics", {
|
|
3724
|
+
events: [
|
|
3725
|
+
metricEvent
|
|
3726
|
+
]
|
|
3727
|
+
})
|
|
3856
3728
|
];
|
|
3857
3729
|
case 3:
|
|
3730
|
+
_state.sent();
|
|
3731
|
+
return [
|
|
3732
|
+
4,
|
|
3733
|
+
ingestPlayerTracking(licenseKey, "impressions", {
|
|
3734
|
+
events: [
|
|
3735
|
+
{
|
|
3736
|
+
player_id: metricEvent.player_id,
|
|
3737
|
+
ad_played_count: 1,
|
|
3738
|
+
ad_url: adImpressionInfo.adUrl,
|
|
3739
|
+
capture_at: adImpressionInfo.timestamp
|
|
3740
|
+
}
|
|
3741
|
+
]
|
|
3742
|
+
})
|
|
3743
|
+
];
|
|
3744
|
+
case 4:
|
|
3745
|
+
_state.sent();
|
|
3746
|
+
return [
|
|
3747
|
+
3,
|
|
3748
|
+
6
|
|
3749
|
+
];
|
|
3750
|
+
case 5:
|
|
3858
3751
|
error = _state.sent();
|
|
3859
3752
|
console.error("[StormcloudVideoPlayer] Error sending ad impression tracking:", error);
|
|
3860
3753
|
return [
|
|
3861
3754
|
3,
|
|
3862
|
-
|
|
3755
|
+
6
|
|
3863
3756
|
];
|
|
3864
|
-
case
|
|
3757
|
+
case 6:
|
|
3865
3758
|
return [
|
|
3866
3759
|
2
|
|
3867
3760
|
];
|
|
@@ -3884,9 +3777,9 @@ function sendHeartbeat(_0) {
|
|
|
3884
3777
|
case 1:
|
|
3885
3778
|
_state.trys.push([
|
|
3886
3779
|
1,
|
|
3887
|
-
|
|
3780
|
+
4,
|
|
3888
3781
|
,
|
|
3889
|
-
|
|
3782
|
+
5
|
|
3890
3783
|
]);
|
|
3891
3784
|
return [
|
|
3892
3785
|
4,
|
|
@@ -3894,19 +3787,28 @@ function sendHeartbeat(_0) {
|
|
|
3894
3787
|
];
|
|
3895
3788
|
case 2:
|
|
3896
3789
|
heartbeatData = _state.sent();
|
|
3897
|
-
publishTracking(licenseKey, "heartbeat", heartbeatData);
|
|
3898
3790
|
return [
|
|
3899
|
-
|
|
3900
|
-
|
|
3791
|
+
4,
|
|
3792
|
+
ingestPlayerTracking(licenseKey, "metrics", {
|
|
3793
|
+
events: [
|
|
3794
|
+
heartbeatData
|
|
3795
|
+
]
|
|
3796
|
+
})
|
|
3901
3797
|
];
|
|
3902
3798
|
case 3:
|
|
3799
|
+
_state.sent();
|
|
3800
|
+
return [
|
|
3801
|
+
3,
|
|
3802
|
+
5
|
|
3803
|
+
];
|
|
3804
|
+
case 4:
|
|
3903
3805
|
error = _state.sent();
|
|
3904
3806
|
console.error("[StormcloudVideoPlayer] Error sending heartbeat:", error);
|
|
3905
3807
|
return [
|
|
3906
3808
|
3,
|
|
3907
|
-
|
|
3809
|
+
5
|
|
3908
3810
|
];
|
|
3909
|
-
case
|
|
3811
|
+
case 5:
|
|
3910
3812
|
return [
|
|
3911
3813
|
2
|
|
3912
3814
|
];
|
|
@@ -5780,7 +5682,6 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
5780
5682
|
];
|
|
5781
5683
|
case 4:
|
|
5782
5684
|
data = _state.sent();
|
|
5783
|
-
this.applyMqttConfigFromResponse(data);
|
|
5784
5685
|
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;
|
|
5785
5686
|
if (imaPayload) {
|
|
5786
5687
|
decodedPayload = imaPayload;
|
|
@@ -5814,20 +5715,6 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
5814
5715
|
}).call(this);
|
|
5815
5716
|
}
|
|
5816
5717
|
},
|
|
5817
|
-
{
|
|
5818
|
-
key: "applyMqttConfigFromResponse",
|
|
5819
|
-
value: function applyMqttConfigFromResponse(data) {
|
|
5820
|
-
var _data_response;
|
|
5821
|
-
var mqttConfig2 = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : _data_response.mqtt_config;
|
|
5822
|
-
if (!mqttConfig2 || (typeof mqttConfig2 === "undefined" ? "undefined" : _type_of(mqttConfig2)) !== "object") {
|
|
5823
|
-
return;
|
|
5824
|
-
}
|
|
5825
|
-
applyMQTTConfig(mqttConfig2);
|
|
5826
|
-
if (this.debug) {
|
|
5827
|
-
console.log("[StormcloudVideoPlayer] Applied MQTT config from /ads/web:", mqttConfig2);
|
|
5828
|
-
}
|
|
5829
|
-
}
|
|
5830
|
-
},
|
|
5831
5718
|
{
|
|
5832
5719
|
key: "fetchAndParseVmap",
|
|
5833
5720
|
value: function fetchAndParseVmap(vmapUrl) {
|
|
@@ -12531,47 +12418,37 @@ var StormcloudPlayer = createStormcloudPlayer(players_default, players_default[p
|
|
|
12531
12418
|
var StormcloudPlayer_default = StormcloudPlayer;
|
|
12532
12419
|
// Annotate the CommonJS export names for ESM import in node:
|
|
12533
12420
|
0 && (module.exports = {
|
|
12534
|
-
|
|
12421
|
+
DEFAULT_TRACKING_INGEST_CONFIG: DEFAULT_TRACKING_INGEST_CONFIG,
|
|
12535
12422
|
IS_BROWSER: IS_BROWSER,
|
|
12536
12423
|
IS_GLOBAL: IS_GLOBAL,
|
|
12537
12424
|
IS_IOS: IS_IOS,
|
|
12538
12425
|
IS_SAFARI: IS_SAFARI,
|
|
12539
|
-
MQTT_CA_CERT_FILE: MQTT_CA_CERT_FILE,
|
|
12540
12426
|
SUPPORTS_DASH: SUPPORTS_DASH,
|
|
12541
12427
|
SUPPORTS_HLS: SUPPORTS_HLS,
|
|
12542
12428
|
StormcloudPlayer: StormcloudPlayer,
|
|
12543
12429
|
StormcloudVideoPlayer: StormcloudVideoPlayer,
|
|
12544
12430
|
StormcloudVideoPlayerComponent: StormcloudVideoPlayerComponent,
|
|
12545
|
-
|
|
12431
|
+
applyTrackingIngestConfig: applyTrackingIngestConfig,
|
|
12546
12432
|
buildAnalyticsContext: buildAnalyticsContext,
|
|
12547
|
-
buildMQTTBrokerUrl: buildMQTTBrokerUrl,
|
|
12548
|
-
buildPlayerTopic: buildPlayerTopic,
|
|
12549
12433
|
canPlay: canPlay,
|
|
12550
|
-
|
|
12434
|
+
configureTrackingIngest: configureTrackingIngest,
|
|
12551
12435
|
createHlsAdPlayer: createHlsAdPlayer,
|
|
12552
12436
|
createPalNonceManager: createPalNonceManager,
|
|
12553
12437
|
createStormcloudPlayer: createStormcloudPlayer,
|
|
12554
12438
|
detectBrowser: detectBrowser,
|
|
12555
|
-
disconnectMQTT: disconnectMQTT,
|
|
12556
|
-
ensureMQTTClient: ensureMQTTClient,
|
|
12557
12439
|
getBrowserConfigOverrides: getBrowserConfigOverrides,
|
|
12558
12440
|
getBrowserID: getBrowserID,
|
|
12559
12441
|
getClientInfo: getClientInfo,
|
|
12560
|
-
|
|
12561
|
-
initMQTTClient: initMQTTClient,
|
|
12442
|
+
ingestPlayerTracking: ingestPlayerTracking,
|
|
12562
12443
|
initializePolyfills: initializePolyfills,
|
|
12563
|
-
isMQTTConfigured: isMQTTConfigured,
|
|
12564
|
-
isMQTTConnected: isMQTTConnected,
|
|
12565
|
-
isMQTTEnabled: isMQTTEnabled,
|
|
12566
12444
|
isMediaStream: isMediaStream,
|
|
12445
|
+
isTrackingIngestEnabled: isTrackingIngestEnabled,
|
|
12567
12446
|
lazy: lazy,
|
|
12568
12447
|
logBrowserInfo: logBrowserInfo,
|
|
12569
12448
|
merge: merge,
|
|
12570
|
-
mqttConfig: mqttConfig,
|
|
12571
12449
|
omit: omit,
|
|
12572
12450
|
parseQuery: parseQuery,
|
|
12573
12451
|
players: players,
|
|
12574
|
-
publishMQTT: publishMQTT,
|
|
12575
12452
|
randomString: randomString,
|
|
12576
12453
|
requiresMediaPipelineResetAfterAds: requiresMediaPipelineResetAfterAds,
|
|
12577
12454
|
sendAdDetectTracking: sendAdDetectTracking,
|
|
@@ -12581,6 +12458,7 @@ var StormcloudPlayer_default = StormcloudPlayer;
|
|
|
12581
12458
|
sendInitialTracking: sendInitialTracking,
|
|
12582
12459
|
supportsFeature: supportsFeature,
|
|
12583
12460
|
supportsModernJS: supportsModernJS,
|
|
12584
|
-
supportsWebKitPresentationMode: supportsWebKitPresentationMode
|
|
12461
|
+
supportsWebKitPresentationMode: supportsWebKitPresentationMode,
|
|
12462
|
+
trackingIngestConfig: trackingIngestConfig
|
|
12585
12463
|
});
|
|
12586
12464
|
//# sourceMappingURL=index.cjs.map
|