stormcloud-video-player 0.6.12 → 0.6.13
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 +33 -294
- package/dist/stormcloud-vp.min.js +1 -1
- package/lib/index.cjs +144 -168
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +22 -3
- package/lib/index.d.ts +22 -3
- package/lib/index.js +113 -169
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +102 -166
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/players/HlsPlayer.cjs +102 -166
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +102 -166
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/vastAdLayer.d.cts +1 -1
- package/lib/sdk/vastManager.d.cts +1 -1
- package/lib/{types-FjAlGhAL.d.cts → types-DSKC4ySr.d.cts} +0 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +104 -170
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/mqttClient.cjs +79 -8
- package/lib/utils/mqttClient.cjs.map +1 -1
- package/lib/utils/mqttClient.d.cts +6 -2
- package/lib/utils/mqttConfig.cjs +136 -0
- package/lib/utils/mqttConfig.cjs.map +1 -0
- package/lib/utils/mqttConfig.d.cts +19 -0
- package/lib/utils/tracking.cjs +138 -159
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/tracking.d.cts +2 -3
- package/package.json +2 -3
package/lib/index.cjs
CHANGED
|
@@ -428,6 +428,9 @@ var __toCommonJS = function __toCommonJS(mod) {
|
|
|
428
428
|
// src/index.ts
|
|
429
429
|
var index_exports = {};
|
|
430
430
|
__export(index_exports, {
|
|
431
|
+
DEFAULT_MQTT_CONFIG: function DEFAULT_MQTT_CONFIG1() {
|
|
432
|
+
return DEFAULT_MQTT_CONFIG;
|
|
433
|
+
},
|
|
431
434
|
IS_BROWSER: function IS_BROWSER1() {
|
|
432
435
|
return IS_BROWSER;
|
|
433
436
|
},
|
|
@@ -455,9 +458,21 @@ __export(index_exports, {
|
|
|
455
458
|
StormcloudVideoPlayerComponent: function StormcloudVideoPlayerComponent1() {
|
|
456
459
|
return StormcloudVideoPlayerComponent;
|
|
457
460
|
},
|
|
461
|
+
applyMQTTConfig: function applyMQTTConfig1() {
|
|
462
|
+
return applyMQTTConfig;
|
|
463
|
+
},
|
|
464
|
+
buildMQTTBrokerUrl: function buildMQTTBrokerUrl1() {
|
|
465
|
+
return buildMQTTBrokerUrl;
|
|
466
|
+
},
|
|
467
|
+
buildPlayerTopic: function buildPlayerTopic1() {
|
|
468
|
+
return buildPlayerTopic;
|
|
469
|
+
},
|
|
458
470
|
canPlay: function canPlay1() {
|
|
459
471
|
return canPlay;
|
|
460
472
|
},
|
|
473
|
+
configureMQTT: function configureMQTT1() {
|
|
474
|
+
return configureMQTT;
|
|
475
|
+
},
|
|
461
476
|
createStormcloudPlayer: function createStormcloudPlayer1() {
|
|
462
477
|
return createStormcloudPlayer;
|
|
463
478
|
},
|
|
@@ -476,6 +491,9 @@ __export(index_exports, {
|
|
|
476
491
|
disconnectMQTT: function disconnectMQTT1() {
|
|
477
492
|
return disconnectMQTT;
|
|
478
493
|
},
|
|
494
|
+
ensureMQTTClient: function ensureMQTTClient1() {
|
|
495
|
+
return ensureMQTTClient;
|
|
496
|
+
},
|
|
479
497
|
getBrowserConfigOverrides: function getBrowserConfigOverrides1() {
|
|
480
498
|
return getBrowserConfigOverrides;
|
|
481
499
|
},
|
|
@@ -500,6 +518,9 @@ __export(index_exports, {
|
|
|
500
518
|
isMQTTConnected: function isMQTTConnected1() {
|
|
501
519
|
return isMQTTConnected;
|
|
502
520
|
},
|
|
521
|
+
isMQTTEnabled: function isMQTTEnabled1() {
|
|
522
|
+
return isMQTTEnabled;
|
|
523
|
+
},
|
|
503
524
|
isMediaStream: function isMediaStream1() {
|
|
504
525
|
return isMediaStream;
|
|
505
526
|
},
|
|
@@ -512,6 +533,9 @@ __export(index_exports, {
|
|
|
512
533
|
merge: function merge1() {
|
|
513
534
|
return merge;
|
|
514
535
|
},
|
|
536
|
+
mqttConfig: function mqttConfig1() {
|
|
537
|
+
return mqttConfig;
|
|
538
|
+
},
|
|
515
539
|
omit: function omit1() {
|
|
516
540
|
return omit;
|
|
517
541
|
},
|
|
@@ -2208,12 +2232,36 @@ function createVastAdLayer(contentVideo, options) {
|
|
|
2208
2232
|
}
|
|
2209
2233
|
};
|
|
2210
2234
|
}
|
|
2235
|
+
// src/utils/mqttConfig.ts
|
|
2236
|
+
var DEFAULT_MQTT_CONFIG = {
|
|
2237
|
+
enabled: true,
|
|
2238
|
+
brokerAddress: "vecbae77.ala.us-east-1.emqxsl.com",
|
|
2239
|
+
brokerPort: 8883,
|
|
2240
|
+
wsPort: 8084,
|
|
2241
|
+
username: "for-sonifi",
|
|
2242
|
+
password: "sonifi-mqtt",
|
|
2243
|
+
topicPrefix: "adstorm/players",
|
|
2244
|
+
qos: 1
|
|
2245
|
+
};
|
|
2246
|
+
var mqttConfig = _object_spread({}, DEFAULT_MQTT_CONFIG);
|
|
2247
|
+
function applyMQTTConfig(overrides) {
|
|
2248
|
+
Object.assign(mqttConfig, overrides);
|
|
2249
|
+
}
|
|
2250
|
+
function isMQTTEnabled() {
|
|
2251
|
+
return mqttConfig.enabled;
|
|
2252
|
+
}
|
|
2253
|
+
function buildMQTTBrokerUrl() {
|
|
2254
|
+
if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;
|
|
2255
|
+
return "wss://".concat(mqttConfig.brokerAddress, ":").concat(mqttConfig.wsPort, "/mqtt");
|
|
2256
|
+
}
|
|
2257
|
+
function buildPlayerTopic(licenseKey, channel) {
|
|
2258
|
+
return "".concat(mqttConfig.topicPrefix, "/").concat(licenseKey, "/").concat(channel);
|
|
2259
|
+
}
|
|
2211
2260
|
// src/utils/mqttClient.ts
|
|
2212
2261
|
var import_mqtt = __toESM(require("mqtt"), 1);
|
|
2213
2262
|
var LOG2 = "[StormcloudVideoPlayer][MQTT]";
|
|
2214
2263
|
var client = null;
|
|
2215
2264
|
var status = "disconnected";
|
|
2216
|
-
var brokerUrl = "";
|
|
2217
2265
|
function getMQTTStatus() {
|
|
2218
2266
|
return status;
|
|
2219
2267
|
}
|
|
@@ -2221,17 +2269,22 @@ function isMQTTConnected() {
|
|
|
2221
2269
|
return status === "connected" && client !== null && client.connected;
|
|
2222
2270
|
}
|
|
2223
2271
|
function isMQTTConfigured() {
|
|
2224
|
-
return
|
|
2272
|
+
return isMQTTEnabled();
|
|
2225
2273
|
}
|
|
2226
|
-
function
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2274
|
+
function configureMQTT(overrides) {
|
|
2275
|
+
applyMQTTConfig(overrides);
|
|
2276
|
+
disconnectMQTT();
|
|
2277
|
+
}
|
|
2278
|
+
function initMQTTClient() {
|
|
2279
|
+
if (client || !isMQTTEnabled()) return;
|
|
2280
|
+
var url = buildMQTTBrokerUrl();
|
|
2230
2281
|
status = "connecting";
|
|
2231
2282
|
var clientId = "stormcloud-vp-".concat(Math.random().toString(36).slice(2, 9));
|
|
2232
2283
|
try {
|
|
2233
2284
|
client = import_mqtt.default.connect(url, {
|
|
2234
2285
|
clientId: clientId,
|
|
2286
|
+
username: mqttConfig.username,
|
|
2287
|
+
password: mqttConfig.password,
|
|
2235
2288
|
keepalive: 60,
|
|
2236
2289
|
clean: true,
|
|
2237
2290
|
reconnectPeriod: 5e3,
|
|
@@ -2265,13 +2318,22 @@ function initMQTTClient(url) {
|
|
|
2265
2318
|
}
|
|
2266
2319
|
});
|
|
2267
2320
|
}
|
|
2321
|
+
function ensureMQTTClient() {
|
|
2322
|
+
if (isMQTTEnabled() && !client) {
|
|
2323
|
+
initMQTTClient();
|
|
2324
|
+
}
|
|
2325
|
+
}
|
|
2268
2326
|
function publishMQTT(topic, payload) {
|
|
2327
|
+
if (!isMQTTEnabled()) {
|
|
2328
|
+
return false;
|
|
2329
|
+
}
|
|
2330
|
+
ensureMQTTClient();
|
|
2269
2331
|
if (!client) {
|
|
2270
2332
|
return false;
|
|
2271
2333
|
}
|
|
2272
2334
|
try {
|
|
2273
2335
|
client.publish(topic, JSON.stringify(payload), {
|
|
2274
|
-
qos:
|
|
2336
|
+
qos: mqttConfig.qos
|
|
2275
2337
|
});
|
|
2276
2338
|
return true;
|
|
2277
2339
|
} catch (err) {
|
|
@@ -2284,7 +2346,6 @@ function disconnectMQTT() {
|
|
|
2284
2346
|
client.end(true);
|
|
2285
2347
|
client = null;
|
|
2286
2348
|
status = "disconnected";
|
|
2287
|
-
brokerUrl = "";
|
|
2288
2349
|
}
|
|
2289
2350
|
}
|
|
2290
2351
|
// src/utils/tracking.ts
|
|
@@ -2506,171 +2567,91 @@ function getBrowserID(clientInfo) {
|
|
|
2506
2567
|
});
|
|
2507
2568
|
})();
|
|
2508
2569
|
}
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
mqttTopicPrefix = prefix || "adstorm";
|
|
2512
|
-
}
|
|
2513
|
-
var PLAYER_TRACKING_BASE_URL = "https://adstorm.co/api-adstorm-dev/adstorm/player-tracking";
|
|
2514
|
-
var TRACK_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/metrics/ingest");
|
|
2515
|
-
var HEARTBEAT_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/heartbeat");
|
|
2516
|
-
var IMPRESSIONS_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/impressions/ingest");
|
|
2517
|
-
function buildHeaders(licenseKey) {
|
|
2518
|
-
var headers = {
|
|
2519
|
-
"Content-Type": "application/json"
|
|
2520
|
-
};
|
|
2521
|
-
if (licenseKey) headers["Authorization"] = "Bearer ".concat(licenseKey);
|
|
2522
|
-
return headers;
|
|
2570
|
+
function canPublish(licenseKey) {
|
|
2571
|
+
return Boolean(isMQTTEnabled() && licenseKey);
|
|
2523
2572
|
}
|
|
2524
|
-
function
|
|
2573
|
+
function buildPlayerMetricEvent() {
|
|
2525
2574
|
return _async_to_generator(function() {
|
|
2526
|
-
var
|
|
2527
|
-
return _ts_generator(this, function(_state) {
|
|
2528
|
-
switch(_state.label){
|
|
2529
|
-
case 0:
|
|
2530
|
-
return [
|
|
2531
|
-
4,
|
|
2532
|
-
fetch(url, {
|
|
2533
|
-
method: "POST",
|
|
2534
|
-
headers: buildHeaders(licenseKey),
|
|
2535
|
-
body: JSON.stringify(body)
|
|
2536
|
-
})
|
|
2537
|
-
];
|
|
2538
|
-
case 1:
|
|
2539
|
-
response = _state.sent();
|
|
2540
|
-
if (!response.ok) throw new Error("HTTP error! status: ".concat(response.status));
|
|
2541
|
-
return [
|
|
2542
|
-
4,
|
|
2543
|
-
response.json()
|
|
2544
|
-
];
|
|
2545
|
-
case 2:
|
|
2546
|
-
_state.sent();
|
|
2547
|
-
return [
|
|
2548
|
-
2
|
|
2549
|
-
];
|
|
2550
|
-
}
|
|
2551
|
-
});
|
|
2552
|
-
})();
|
|
2553
|
-
}
|
|
2554
|
-
function buildPlayerMetricEvent(_0) {
|
|
2555
|
-
return _async_to_generator(function(licenseKey) {
|
|
2556
|
-
var context, flags, _flags_captureAt, clientInfo, browserId, captureAt;
|
|
2575
|
+
var context, flags, _flags_captureAt, _flags_adLoaded, _flags_adDetect, clientInfo, playerId, captureAt;
|
|
2557
2576
|
var _arguments = arguments;
|
|
2558
2577
|
return _ts_generator(this, function(_state) {
|
|
2559
2578
|
switch(_state.label){
|
|
2560
2579
|
case 0:
|
|
2561
|
-
context = _arguments.length >
|
|
2580
|
+
context = _arguments.length > 0 && _arguments[0] !== void 0 ? _arguments[0] : {}, flags = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
|
|
2562
2581
|
clientInfo = getClientInfo();
|
|
2563
2582
|
return [
|
|
2564
2583
|
4,
|
|
2565
2584
|
getBrowserID(clientInfo)
|
|
2566
2585
|
];
|
|
2567
2586
|
case 1:
|
|
2568
|
-
|
|
2587
|
+
playerId = _state.sent();
|
|
2569
2588
|
captureAt = (_flags_captureAt = flags.captureAt) !== null && _flags_captureAt !== void 0 ? _flags_captureAt : /* @__PURE__ */ new Date().toISOString();
|
|
2570
2589
|
return [
|
|
2571
2590
|
2,
|
|
2572
|
-
{
|
|
2573
|
-
player_id:
|
|
2574
|
-
browserId: browserId,
|
|
2591
|
+
_object_spread({
|
|
2592
|
+
player_id: playerId,
|
|
2575
2593
|
device_type: clientInfo.deviceType,
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
timestamp: captureAt
|
|
2584
|
-
}
|
|
2594
|
+
os: clientInfo.os.toLowerCase(),
|
|
2595
|
+
ad_loaded: (_flags_adLoaded = flags.adLoaded) !== null && _flags_adLoaded !== void 0 ? _flags_adLoaded : false,
|
|
2596
|
+
ad_detect: (_flags_adDetect = flags.adDetect) !== null && _flags_adDetect !== void 0 ? _flags_adDetect : false,
|
|
2597
|
+
capture_at: captureAt
|
|
2598
|
+
}, context.inputStreamType ? {
|
|
2599
|
+
input_stream_type: context.inputStreamType
|
|
2600
|
+
} : {})
|
|
2585
2601
|
];
|
|
2586
2602
|
}
|
|
2587
2603
|
});
|
|
2588
2604
|
}).apply(this, arguments);
|
|
2589
2605
|
}
|
|
2590
|
-
function
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
switch(_state.label){
|
|
2594
|
-
case 0:
|
|
2595
|
-
if (isMQTTConfigured()) {
|
|
2596
|
-
publishMQTT(mqttTopic, body);
|
|
2597
|
-
return [
|
|
2598
|
-
2
|
|
2599
|
-
];
|
|
2600
|
-
}
|
|
2601
|
-
return [
|
|
2602
|
-
4,
|
|
2603
|
-
postJson(httpUrl, licenseKey, body)
|
|
2604
|
-
];
|
|
2605
|
-
case 1:
|
|
2606
|
-
_state.sent();
|
|
2607
|
-
return [
|
|
2608
|
-
2
|
|
2609
|
-
];
|
|
2610
|
-
}
|
|
2611
|
-
});
|
|
2612
|
-
})();
|
|
2606
|
+
function publishTracking(licenseKey, channel, body) {
|
|
2607
|
+
ensureMQTTClient();
|
|
2608
|
+
publishMQTT(buildPlayerTopic(licenseKey, channel), body);
|
|
2613
2609
|
}
|
|
2614
2610
|
function sendInitialTracking(_0) {
|
|
2615
2611
|
return _async_to_generator(function(licenseKey) {
|
|
2616
|
-
var context,
|
|
2612
|
+
var context, metricEvent, error;
|
|
2617
2613
|
var _arguments = arguments;
|
|
2618
2614
|
return _ts_generator(this, function(_state) {
|
|
2619
2615
|
switch(_state.label){
|
|
2620
2616
|
case 0:
|
|
2621
2617
|
context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
|
|
2618
|
+
if (!canPublish(licenseKey)) return [
|
|
2619
|
+
2
|
|
2620
|
+
];
|
|
2622
2621
|
_state.label = 1;
|
|
2623
2622
|
case 1:
|
|
2624
2623
|
_state.trys.push([
|
|
2625
2624
|
1,
|
|
2626
|
-
|
|
2625
|
+
3,
|
|
2627
2626
|
,
|
|
2628
|
-
|
|
2627
|
+
4
|
|
2629
2628
|
]);
|
|
2630
|
-
clientInfo = getClientInfo();
|
|
2631
2629
|
return [
|
|
2632
2630
|
4,
|
|
2633
|
-
|
|
2631
|
+
buildPlayerMetricEvent(context, {
|
|
2632
|
+
adLoaded: false,
|
|
2633
|
+
adDetect: false
|
|
2634
|
+
})
|
|
2634
2635
|
];
|
|
2635
2636
|
case 2:
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
trackingData = _object_spread({
|
|
2639
|
-
browserId: browserId
|
|
2640
|
-
}, clientInfo);
|
|
2641
|
-
metricsBody = {
|
|
2637
|
+
metricEvent = _state.sent();
|
|
2638
|
+
publishTracking(licenseKey, "metrics", {
|
|
2642
2639
|
events: [
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
input_stream_type: context.inputStreamType,
|
|
2647
|
-
os: clientInfo.os,
|
|
2648
|
-
ad_loaded: false,
|
|
2649
|
-
ad_detect: false,
|
|
2650
|
-
license_key: licenseKey,
|
|
2651
|
-
capture_at: captureAt
|
|
2652
|
-
}
|
|
2653
|
-
],
|
|
2654
|
-
trackingData: trackingData
|
|
2655
|
-
};
|
|
2656
|
-
return [
|
|
2657
|
-
4,
|
|
2658
|
-
publishOrPost("".concat(mqttTopicPrefix, "/tracking/metrics"), TRACK_URL, licenseKey, metricsBody)
|
|
2659
|
-
];
|
|
2660
|
-
case 3:
|
|
2661
|
-
_state.sent();
|
|
2640
|
+
metricEvent
|
|
2641
|
+
]
|
|
2642
|
+
});
|
|
2662
2643
|
return [
|
|
2663
2644
|
3,
|
|
2664
|
-
|
|
2645
|
+
4
|
|
2665
2646
|
];
|
|
2666
|
-
case
|
|
2647
|
+
case 3:
|
|
2667
2648
|
error = _state.sent();
|
|
2668
2649
|
console.error("[StormcloudVideoPlayer] Error sending initial tracking data:", error);
|
|
2669
2650
|
return [
|
|
2670
2651
|
3,
|
|
2671
|
-
|
|
2652
|
+
4
|
|
2672
2653
|
];
|
|
2673
|
-
case
|
|
2654
|
+
case 4:
|
|
2674
2655
|
return [
|
|
2675
2656
|
2
|
|
2676
2657
|
];
|
|
@@ -2768,61 +2749,54 @@ function sendAdLoadedTracking(_0, _1) {
|
|
|
2768
2749
|
}
|
|
2769
2750
|
function sendAdImpressionTracking(_0, _1) {
|
|
2770
2751
|
return _async_to_generator(function(licenseKey, adImpressionInfo) {
|
|
2771
|
-
var context, metricEvent,
|
|
2752
|
+
var context, metricEvent, error;
|
|
2772
2753
|
var _arguments = arguments;
|
|
2773
2754
|
return _ts_generator(this, function(_state) {
|
|
2774
2755
|
switch(_state.label){
|
|
2775
2756
|
case 0:
|
|
2776
2757
|
context = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
|
|
2758
|
+
if (!canPublish(licenseKey)) return [
|
|
2759
|
+
2
|
|
2760
|
+
];
|
|
2777
2761
|
_state.label = 1;
|
|
2778
2762
|
case 1:
|
|
2779
2763
|
_state.trys.push([
|
|
2780
2764
|
1,
|
|
2781
|
-
|
|
2765
|
+
3,
|
|
2782
2766
|
,
|
|
2783
|
-
|
|
2767
|
+
4
|
|
2784
2768
|
]);
|
|
2785
2769
|
return [
|
|
2786
2770
|
4,
|
|
2787
|
-
buildPlayerMetricEvent(
|
|
2771
|
+
buildPlayerMetricEvent(context, {
|
|
2788
2772
|
captureAt: adImpressionInfo.timestamp
|
|
2789
2773
|
})
|
|
2790
2774
|
];
|
|
2791
2775
|
case 2:
|
|
2792
2776
|
metricEvent = _state.sent();
|
|
2793
|
-
|
|
2794
|
-
|
|
2777
|
+
publishTracking(licenseKey, "heartbeat", metricEvent);
|
|
2778
|
+
publishTracking(licenseKey, "impressions", {
|
|
2795
2779
|
events: [
|
|
2796
2780
|
{
|
|
2797
2781
|
player_id: metricEvent.player_id,
|
|
2798
2782
|
ad_played_count: 1,
|
|
2799
2783
|
ad_url: adImpressionInfo.adUrl,
|
|
2800
|
-
license_key: licenseKey,
|
|
2801
2784
|
capture_at: adImpressionInfo.timestamp
|
|
2802
2785
|
}
|
|
2803
2786
|
]
|
|
2804
|
-
};
|
|
2805
|
-
return [
|
|
2806
|
-
4,
|
|
2807
|
-
Promise.all([
|
|
2808
|
-
publishOrPost("".concat(mqttTopicPrefix, "/tracking/heartbeat"), HEARTBEAT_URL, licenseKey, heartbeatBody),
|
|
2809
|
-
publishOrPost("".concat(mqttTopicPrefix, "/tracking/impressions"), IMPRESSIONS_URL, licenseKey, impressionsBody)
|
|
2810
|
-
])
|
|
2811
|
-
];
|
|
2812
|
-
case 3:
|
|
2813
|
-
_state.sent();
|
|
2787
|
+
});
|
|
2814
2788
|
return [
|
|
2815
2789
|
3,
|
|
2816
|
-
|
|
2790
|
+
4
|
|
2817
2791
|
];
|
|
2818
|
-
case
|
|
2792
|
+
case 3:
|
|
2819
2793
|
error = _state.sent();
|
|
2820
2794
|
console.error("[StormcloudVideoPlayer] Error sending ad impression tracking:", error);
|
|
2821
2795
|
return [
|
|
2822
2796
|
3,
|
|
2823
|
-
|
|
2797
|
+
4
|
|
2824
2798
|
];
|
|
2825
|
-
case
|
|
2799
|
+
case 4:
|
|
2826
2800
|
return [
|
|
2827
2801
|
2
|
|
2828
2802
|
];
|
|
@@ -2838,38 +2812,36 @@ function sendHeartbeat(_0) {
|
|
|
2838
2812
|
switch(_state.label){
|
|
2839
2813
|
case 0:
|
|
2840
2814
|
context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {}, flags = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
|
|
2815
|
+
if (!canPublish(licenseKey)) return [
|
|
2816
|
+
2
|
|
2817
|
+
];
|
|
2841
2818
|
_state.label = 1;
|
|
2842
2819
|
case 1:
|
|
2843
2820
|
_state.trys.push([
|
|
2844
2821
|
1,
|
|
2845
|
-
|
|
2822
|
+
3,
|
|
2846
2823
|
,
|
|
2847
|
-
|
|
2824
|
+
4
|
|
2848
2825
|
]);
|
|
2849
2826
|
return [
|
|
2850
2827
|
4,
|
|
2851
|
-
buildPlayerMetricEvent(
|
|
2828
|
+
buildPlayerMetricEvent(context, flags)
|
|
2852
2829
|
];
|
|
2853
2830
|
case 2:
|
|
2854
2831
|
heartbeatData = _state.sent();
|
|
2855
|
-
|
|
2856
|
-
4,
|
|
2857
|
-
publishOrPost("".concat(mqttTopicPrefix, "/tracking/heartbeat"), HEARTBEAT_URL, licenseKey, heartbeatData)
|
|
2858
|
-
];
|
|
2859
|
-
case 3:
|
|
2860
|
-
_state.sent();
|
|
2832
|
+
publishTracking(licenseKey, "heartbeat", heartbeatData);
|
|
2861
2833
|
return [
|
|
2862
2834
|
3,
|
|
2863
|
-
|
|
2835
|
+
4
|
|
2864
2836
|
];
|
|
2865
|
-
case
|
|
2837
|
+
case 3:
|
|
2866
2838
|
error = _state.sent();
|
|
2867
2839
|
console.error("[StormcloudVideoPlayer] Error sending heartbeat:", error);
|
|
2868
2840
|
return [
|
|
2869
2841
|
3,
|
|
2870
|
-
|
|
2842
|
+
4
|
|
2871
2843
|
];
|
|
2872
|
-
case
|
|
2844
|
+
case 4:
|
|
2873
2845
|
return [
|
|
2874
2846
|
2
|
|
2875
2847
|
];
|
|
@@ -4808,10 +4780,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
4808
4780
|
key: "initializeTracking",
|
|
4809
4781
|
value: function initializeTracking() {
|
|
4810
4782
|
var _this = this;
|
|
4811
|
-
if (
|
|
4812
|
-
|
|
4813
|
-
setMQTTTopicPrefix(topicPrefix);
|
|
4814
|
-
initMQTTClient(this.config.mqttBrokerUrl, topicPrefix);
|
|
4783
|
+
if (isMQTTEnabled()) {
|
|
4784
|
+
initMQTTClient();
|
|
4815
4785
|
}
|
|
4816
4786
|
sendInitialTracking(this.config.licenseKey, this.getAnalyticsContext()).then(function() {
|
|
4817
4787
|
_this.heartbeatInterval = window.setInterval(function() {
|
|
@@ -6492,7 +6462,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
6492
6462
|
clearInterval(this.heartbeatInterval);
|
|
6493
6463
|
this.heartbeatInterval = void 0;
|
|
6494
6464
|
}
|
|
6495
|
-
if (
|
|
6465
|
+
if (isMQTTEnabled()) {
|
|
6496
6466
|
disconnectMQTT();
|
|
6497
6467
|
}
|
|
6498
6468
|
(_this_hls = this.hls) === null || _this_hls === void 0 ? void 0 : _this_hls.destroy();
|
|
@@ -6516,7 +6486,7 @@ var CRITICAL_PROPS = [
|
|
|
6516
6486
|
var CONTROLS_HIDE_DELAY = 3e3;
|
|
6517
6487
|
var DEFAULT_PLAYER_ASPECT_RATIO = 16 / 9;
|
|
6518
6488
|
var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
6519
|
-
var src = props.src, autoplay = props.autoplay, muted = props.muted, lowLatencyMode = props.lowLatencyMode, allowNativeHls = props.allowNativeHls, driftToleranceMs = props.driftToleranceMs, immediateManifestAds = props.immediateManifestAds, debugAdTiming = props.debugAdTiming, showCustomControls = props.showCustomControls, hideLoadingIndicator = props.hideLoadingIndicator, onVolumeToggle = props.onVolumeToggle, onFullscreenToggle = props.onFullscreenToggle, onControlClick = props.onControlClick, onReady = props.onReady, wrapperClassName = props.wrapperClassName, wrapperStyle = props.wrapperStyle, className = props.className, style = props.style, controls = props.controls, playsInline = props.playsInline, preload = props.preload, poster = props.poster, children = props.children, licenseKey = props.licenseKey, minSegmentsBeforePlay = props.minSegmentsBeforePlay, disableAds = props.disableAds, disableFiller = props.disableFiller,
|
|
6489
|
+
var src = props.src, autoplay = props.autoplay, muted = props.muted, lowLatencyMode = props.lowLatencyMode, allowNativeHls = props.allowNativeHls, driftToleranceMs = props.driftToleranceMs, immediateManifestAds = props.immediateManifestAds, debugAdTiming = props.debugAdTiming, showCustomControls = props.showCustomControls, hideLoadingIndicator = props.hideLoadingIndicator, onVolumeToggle = props.onVolumeToggle, onFullscreenToggle = props.onFullscreenToggle, onControlClick = props.onControlClick, onReady = props.onReady, wrapperClassName = props.wrapperClassName, wrapperStyle = props.wrapperStyle, className = props.className, style = props.style, controls = props.controls, playsInline = props.playsInline, preload = props.preload, poster = props.poster, children = props.children, licenseKey = props.licenseKey, minSegmentsBeforePlay = props.minSegmentsBeforePlay, disableAds = props.disableAds, disableFiller = props.disableFiller, restVideoAttrs = _object_without_properties(props, [
|
|
6520
6490
|
"src",
|
|
6521
6491
|
"autoplay",
|
|
6522
6492
|
"muted",
|
|
@@ -6543,8 +6513,7 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
6543
6513
|
"licenseKey",
|
|
6544
6514
|
"minSegmentsBeforePlay",
|
|
6545
6515
|
"disableAds",
|
|
6546
|
-
"disableFiller"
|
|
6547
|
-
"mqttBrokerUrl"
|
|
6516
|
+
"disableFiller"
|
|
6548
6517
|
]);
|
|
6549
6518
|
var videoRef = (0, import_react.useRef)(null);
|
|
6550
6519
|
var playerRef = (0, import_react.useRef)(null);
|
|
@@ -6704,7 +6673,6 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
6704
6673
|
if (minSegmentsBeforePlay !== void 0) cfg.minSegmentsBeforePlay = minSegmentsBeforePlay;
|
|
6705
6674
|
if (disableAds !== void 0) cfg.disableAds = disableAds;
|
|
6706
6675
|
cfg.disableFiller = disableFiller !== null && disableFiller !== void 0 ? disableFiller : true;
|
|
6707
|
-
if (mqttBrokerUrl !== void 0) cfg.mqttBrokerUrl = mqttBrokerUrl;
|
|
6708
6676
|
var player = new StormcloudVideoPlayer(cfg);
|
|
6709
6677
|
playerRef.current = player;
|
|
6710
6678
|
player.load().then(function() {
|
|
@@ -8937,6 +8905,7 @@ var StormcloudPlayer = createStormcloudPlayer(players_default, players_default[p
|
|
|
8937
8905
|
var StormcloudPlayer_default = StormcloudPlayer;
|
|
8938
8906
|
// Annotate the CommonJS export names for ESM import in node:
|
|
8939
8907
|
0 && (module.exports = {
|
|
8908
|
+
DEFAULT_MQTT_CONFIG: DEFAULT_MQTT_CONFIG,
|
|
8940
8909
|
IS_BROWSER: IS_BROWSER,
|
|
8941
8910
|
IS_GLOBAL: IS_GLOBAL,
|
|
8942
8911
|
IS_IOS: IS_IOS,
|
|
@@ -8946,12 +8915,17 @@ var StormcloudPlayer_default = StormcloudPlayer;
|
|
|
8946
8915
|
StormcloudPlayer: StormcloudPlayer,
|
|
8947
8916
|
StormcloudVideoPlayer: StormcloudVideoPlayer,
|
|
8948
8917
|
StormcloudVideoPlayerComponent: StormcloudVideoPlayerComponent,
|
|
8918
|
+
applyMQTTConfig: applyMQTTConfig,
|
|
8919
|
+
buildMQTTBrokerUrl: buildMQTTBrokerUrl,
|
|
8920
|
+
buildPlayerTopic: buildPlayerTopic,
|
|
8949
8921
|
canPlay: canPlay,
|
|
8922
|
+
configureMQTT: configureMQTT,
|
|
8950
8923
|
createStormcloudPlayer: createStormcloudPlayer,
|
|
8951
8924
|
createVastAdLayer: createVastAdLayer,
|
|
8952
8925
|
createVastManager: createVastManager,
|
|
8953
8926
|
detectBrowser: detectBrowser,
|
|
8954
8927
|
disconnectMQTT: disconnectMQTT,
|
|
8928
|
+
ensureMQTTClient: ensureMQTTClient,
|
|
8955
8929
|
getBrowserConfigOverrides: getBrowserConfigOverrides,
|
|
8956
8930
|
getBrowserID: getBrowserID,
|
|
8957
8931
|
getClientInfo: getClientInfo,
|
|
@@ -8960,10 +8934,12 @@ var StormcloudPlayer_default = StormcloudPlayer;
|
|
|
8960
8934
|
initializePolyfills: initializePolyfills,
|
|
8961
8935
|
isMQTTConfigured: isMQTTConfigured,
|
|
8962
8936
|
isMQTTConnected: isMQTTConnected,
|
|
8937
|
+
isMQTTEnabled: isMQTTEnabled,
|
|
8963
8938
|
isMediaStream: isMediaStream,
|
|
8964
8939
|
lazy: lazy,
|
|
8965
8940
|
logBrowserInfo: logBrowserInfo,
|
|
8966
8941
|
merge: merge,
|
|
8942
|
+
mqttConfig: mqttConfig,
|
|
8967
8943
|
omit: omit,
|
|
8968
8944
|
parseQuery: parseQuery,
|
|
8969
8945
|
players: players,
|