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
|
@@ -2060,24 +2060,43 @@ function createVastAdLayer(contentVideo, options) {
|
|
|
2060
2060
|
}
|
|
2061
2061
|
};
|
|
2062
2062
|
}
|
|
2063
|
+
// src/utils/mqttConfig.ts
|
|
2064
|
+
var DEFAULT_MQTT_CONFIG = {
|
|
2065
|
+
enabled: true,
|
|
2066
|
+
brokerAddress: "vecbae77.ala.us-east-1.emqxsl.com",
|
|
2067
|
+
brokerPort: 8883,
|
|
2068
|
+
wsPort: 8084,
|
|
2069
|
+
username: "for-sonifi",
|
|
2070
|
+
password: "sonifi-mqtt",
|
|
2071
|
+
topicPrefix: "adstorm/players",
|
|
2072
|
+
qos: 1
|
|
2073
|
+
};
|
|
2074
|
+
var mqttConfig = _object_spread({}, DEFAULT_MQTT_CONFIG);
|
|
2075
|
+
function isMQTTEnabled() {
|
|
2076
|
+
return mqttConfig.enabled;
|
|
2077
|
+
}
|
|
2078
|
+
function buildMQTTBrokerUrl() {
|
|
2079
|
+
if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;
|
|
2080
|
+
return "wss://".concat(mqttConfig.brokerAddress, ":").concat(mqttConfig.wsPort, "/mqtt");
|
|
2081
|
+
}
|
|
2082
|
+
function buildPlayerTopic(licenseKey, channel) {
|
|
2083
|
+
return "".concat(mqttConfig.topicPrefix, "/").concat(licenseKey, "/").concat(channel);
|
|
2084
|
+
}
|
|
2063
2085
|
// src/utils/mqttClient.ts
|
|
2064
2086
|
var import_mqtt = __toESM(require("mqtt"), 1);
|
|
2065
2087
|
var LOG2 = "[StormcloudVideoPlayer][MQTT]";
|
|
2066
2088
|
var client = null;
|
|
2067
2089
|
var status = "disconnected";
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
}
|
|
2072
|
-
function initMQTTClient(url) {
|
|
2073
|
-
var _topicPrefix = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "adstorm";
|
|
2074
|
-
if (client) return;
|
|
2075
|
-
brokerUrl = url;
|
|
2090
|
+
function initMQTTClient() {
|
|
2091
|
+
if (client || !isMQTTEnabled()) return;
|
|
2092
|
+
var url = buildMQTTBrokerUrl();
|
|
2076
2093
|
status = "connecting";
|
|
2077
2094
|
var clientId = "stormcloud-vp-".concat(Math.random().toString(36).slice(2, 9));
|
|
2078
2095
|
try {
|
|
2079
2096
|
client = import_mqtt.default.connect(url, {
|
|
2080
2097
|
clientId: clientId,
|
|
2098
|
+
username: mqttConfig.username,
|
|
2099
|
+
password: mqttConfig.password,
|
|
2081
2100
|
keepalive: 60,
|
|
2082
2101
|
clean: true,
|
|
2083
2102
|
reconnectPeriod: 5e3,
|
|
@@ -2111,13 +2130,22 @@ function initMQTTClient(url) {
|
|
|
2111
2130
|
}
|
|
2112
2131
|
});
|
|
2113
2132
|
}
|
|
2133
|
+
function ensureMQTTClient() {
|
|
2134
|
+
if (isMQTTEnabled() && !client) {
|
|
2135
|
+
initMQTTClient();
|
|
2136
|
+
}
|
|
2137
|
+
}
|
|
2114
2138
|
function publishMQTT(topic, payload) {
|
|
2139
|
+
if (!isMQTTEnabled()) {
|
|
2140
|
+
return false;
|
|
2141
|
+
}
|
|
2142
|
+
ensureMQTTClient();
|
|
2115
2143
|
if (!client) {
|
|
2116
2144
|
return false;
|
|
2117
2145
|
}
|
|
2118
2146
|
try {
|
|
2119
2147
|
client.publish(topic, JSON.stringify(payload), {
|
|
2120
|
-
qos:
|
|
2148
|
+
qos: mqttConfig.qos
|
|
2121
2149
|
});
|
|
2122
2150
|
return true;
|
|
2123
2151
|
} catch (err) {
|
|
@@ -2130,7 +2158,6 @@ function disconnectMQTT() {
|
|
|
2130
2158
|
client.end(true);
|
|
2131
2159
|
client = null;
|
|
2132
2160
|
status = "disconnected";
|
|
2133
|
-
brokerUrl = "";
|
|
2134
2161
|
}
|
|
2135
2162
|
}
|
|
2136
2163
|
// src/utils/tracking.ts
|
|
@@ -2352,171 +2379,91 @@ function getBrowserID(clientInfo) {
|
|
|
2352
2379
|
});
|
|
2353
2380
|
})();
|
|
2354
2381
|
}
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
mqttTopicPrefix = prefix || "adstorm";
|
|
2358
|
-
}
|
|
2359
|
-
var PLAYER_TRACKING_BASE_URL = "https://adstorm.co/api-adstorm-dev/adstorm/player-tracking";
|
|
2360
|
-
var TRACK_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/metrics/ingest");
|
|
2361
|
-
var HEARTBEAT_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/heartbeat");
|
|
2362
|
-
var IMPRESSIONS_URL = "".concat(PLAYER_TRACKING_BASE_URL, "/impressions/ingest");
|
|
2363
|
-
function buildHeaders(licenseKey) {
|
|
2364
|
-
var headers = {
|
|
2365
|
-
"Content-Type": "application/json"
|
|
2366
|
-
};
|
|
2367
|
-
if (licenseKey) headers["Authorization"] = "Bearer ".concat(licenseKey);
|
|
2368
|
-
return headers;
|
|
2382
|
+
function canPublish(licenseKey) {
|
|
2383
|
+
return Boolean(isMQTTEnabled() && licenseKey);
|
|
2369
2384
|
}
|
|
2370
|
-
function
|
|
2385
|
+
function buildPlayerMetricEvent() {
|
|
2371
2386
|
return _async_to_generator(function() {
|
|
2372
|
-
var
|
|
2373
|
-
return _ts_generator(this, function(_state) {
|
|
2374
|
-
switch(_state.label){
|
|
2375
|
-
case 0:
|
|
2376
|
-
return [
|
|
2377
|
-
4,
|
|
2378
|
-
fetch(url, {
|
|
2379
|
-
method: "POST",
|
|
2380
|
-
headers: buildHeaders(licenseKey),
|
|
2381
|
-
body: JSON.stringify(body)
|
|
2382
|
-
})
|
|
2383
|
-
];
|
|
2384
|
-
case 1:
|
|
2385
|
-
response = _state.sent();
|
|
2386
|
-
if (!response.ok) throw new Error("HTTP error! status: ".concat(response.status));
|
|
2387
|
-
return [
|
|
2388
|
-
4,
|
|
2389
|
-
response.json()
|
|
2390
|
-
];
|
|
2391
|
-
case 2:
|
|
2392
|
-
_state.sent();
|
|
2393
|
-
return [
|
|
2394
|
-
2
|
|
2395
|
-
];
|
|
2396
|
-
}
|
|
2397
|
-
});
|
|
2398
|
-
})();
|
|
2399
|
-
}
|
|
2400
|
-
function buildPlayerMetricEvent(_0) {
|
|
2401
|
-
return _async_to_generator(function(licenseKey) {
|
|
2402
|
-
var context, flags, _flags_captureAt, clientInfo, browserId, captureAt;
|
|
2387
|
+
var context, flags, _flags_captureAt, _flags_adLoaded, _flags_adDetect, clientInfo, playerId, captureAt;
|
|
2403
2388
|
var _arguments = arguments;
|
|
2404
2389
|
return _ts_generator(this, function(_state) {
|
|
2405
2390
|
switch(_state.label){
|
|
2406
2391
|
case 0:
|
|
2407
|
-
context = _arguments.length >
|
|
2392
|
+
context = _arguments.length > 0 && _arguments[0] !== void 0 ? _arguments[0] : {}, flags = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
|
|
2408
2393
|
clientInfo = getClientInfo();
|
|
2409
2394
|
return [
|
|
2410
2395
|
4,
|
|
2411
2396
|
getBrowserID(clientInfo)
|
|
2412
2397
|
];
|
|
2413
2398
|
case 1:
|
|
2414
|
-
|
|
2399
|
+
playerId = _state.sent();
|
|
2415
2400
|
captureAt = (_flags_captureAt = flags.captureAt) !== null && _flags_captureAt !== void 0 ? _flags_captureAt : /* @__PURE__ */ new Date().toISOString();
|
|
2416
2401
|
return [
|
|
2417
2402
|
2,
|
|
2418
|
-
{
|
|
2419
|
-
player_id:
|
|
2420
|
-
browserId: browserId,
|
|
2403
|
+
_object_spread({
|
|
2404
|
+
player_id: playerId,
|
|
2421
2405
|
device_type: clientInfo.deviceType,
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
timestamp: captureAt
|
|
2430
|
-
}
|
|
2406
|
+
os: clientInfo.os.toLowerCase(),
|
|
2407
|
+
ad_loaded: (_flags_adLoaded = flags.adLoaded) !== null && _flags_adLoaded !== void 0 ? _flags_adLoaded : false,
|
|
2408
|
+
ad_detect: (_flags_adDetect = flags.adDetect) !== null && _flags_adDetect !== void 0 ? _flags_adDetect : false,
|
|
2409
|
+
capture_at: captureAt
|
|
2410
|
+
}, context.inputStreamType ? {
|
|
2411
|
+
input_stream_type: context.inputStreamType
|
|
2412
|
+
} : {})
|
|
2431
2413
|
];
|
|
2432
2414
|
}
|
|
2433
2415
|
});
|
|
2434
2416
|
}).apply(this, arguments);
|
|
2435
2417
|
}
|
|
2436
|
-
function
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
switch(_state.label){
|
|
2440
|
-
case 0:
|
|
2441
|
-
if (isMQTTConfigured()) {
|
|
2442
|
-
publishMQTT(mqttTopic, body);
|
|
2443
|
-
return [
|
|
2444
|
-
2
|
|
2445
|
-
];
|
|
2446
|
-
}
|
|
2447
|
-
return [
|
|
2448
|
-
4,
|
|
2449
|
-
postJson(httpUrl, licenseKey, body)
|
|
2450
|
-
];
|
|
2451
|
-
case 1:
|
|
2452
|
-
_state.sent();
|
|
2453
|
-
return [
|
|
2454
|
-
2
|
|
2455
|
-
];
|
|
2456
|
-
}
|
|
2457
|
-
});
|
|
2458
|
-
})();
|
|
2418
|
+
function publishTracking(licenseKey, channel, body) {
|
|
2419
|
+
ensureMQTTClient();
|
|
2420
|
+
publishMQTT(buildPlayerTopic(licenseKey, channel), body);
|
|
2459
2421
|
}
|
|
2460
2422
|
function sendInitialTracking(_0) {
|
|
2461
2423
|
return _async_to_generator(function(licenseKey) {
|
|
2462
|
-
var context,
|
|
2424
|
+
var context, metricEvent, error;
|
|
2463
2425
|
var _arguments = arguments;
|
|
2464
2426
|
return _ts_generator(this, function(_state) {
|
|
2465
2427
|
switch(_state.label){
|
|
2466
2428
|
case 0:
|
|
2467
2429
|
context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
|
|
2430
|
+
if (!canPublish(licenseKey)) return [
|
|
2431
|
+
2
|
|
2432
|
+
];
|
|
2468
2433
|
_state.label = 1;
|
|
2469
2434
|
case 1:
|
|
2470
2435
|
_state.trys.push([
|
|
2471
2436
|
1,
|
|
2472
|
-
|
|
2437
|
+
3,
|
|
2473
2438
|
,
|
|
2474
|
-
|
|
2439
|
+
4
|
|
2475
2440
|
]);
|
|
2476
|
-
clientInfo = getClientInfo();
|
|
2477
2441
|
return [
|
|
2478
2442
|
4,
|
|
2479
|
-
|
|
2443
|
+
buildPlayerMetricEvent(context, {
|
|
2444
|
+
adLoaded: false,
|
|
2445
|
+
adDetect: false
|
|
2446
|
+
})
|
|
2480
2447
|
];
|
|
2481
2448
|
case 2:
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
trackingData = _object_spread({
|
|
2485
|
-
browserId: browserId
|
|
2486
|
-
}, clientInfo);
|
|
2487
|
-
metricsBody = {
|
|
2449
|
+
metricEvent = _state.sent();
|
|
2450
|
+
publishTracking(licenseKey, "metrics", {
|
|
2488
2451
|
events: [
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
input_stream_type: context.inputStreamType,
|
|
2493
|
-
os: clientInfo.os,
|
|
2494
|
-
ad_loaded: false,
|
|
2495
|
-
ad_detect: false,
|
|
2496
|
-
license_key: licenseKey,
|
|
2497
|
-
capture_at: captureAt
|
|
2498
|
-
}
|
|
2499
|
-
],
|
|
2500
|
-
trackingData: trackingData
|
|
2501
|
-
};
|
|
2502
|
-
return [
|
|
2503
|
-
4,
|
|
2504
|
-
publishOrPost("".concat(mqttTopicPrefix, "/tracking/metrics"), TRACK_URL, licenseKey, metricsBody)
|
|
2505
|
-
];
|
|
2506
|
-
case 3:
|
|
2507
|
-
_state.sent();
|
|
2452
|
+
metricEvent
|
|
2453
|
+
]
|
|
2454
|
+
});
|
|
2508
2455
|
return [
|
|
2509
2456
|
3,
|
|
2510
|
-
|
|
2457
|
+
4
|
|
2511
2458
|
];
|
|
2512
|
-
case
|
|
2459
|
+
case 3:
|
|
2513
2460
|
error = _state.sent();
|
|
2514
2461
|
console.error("[StormcloudVideoPlayer] Error sending initial tracking data:", error);
|
|
2515
2462
|
return [
|
|
2516
2463
|
3,
|
|
2517
|
-
|
|
2464
|
+
4
|
|
2518
2465
|
];
|
|
2519
|
-
case
|
|
2466
|
+
case 4:
|
|
2520
2467
|
return [
|
|
2521
2468
|
2
|
|
2522
2469
|
];
|
|
@@ -2614,61 +2561,54 @@ function sendAdLoadedTracking(_0, _1) {
|
|
|
2614
2561
|
}
|
|
2615
2562
|
function sendAdImpressionTracking(_0, _1) {
|
|
2616
2563
|
return _async_to_generator(function(licenseKey, adImpressionInfo) {
|
|
2617
|
-
var context, metricEvent,
|
|
2564
|
+
var context, metricEvent, error;
|
|
2618
2565
|
var _arguments = arguments;
|
|
2619
2566
|
return _ts_generator(this, function(_state) {
|
|
2620
2567
|
switch(_state.label){
|
|
2621
2568
|
case 0:
|
|
2622
2569
|
context = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
|
|
2570
|
+
if (!canPublish(licenseKey)) return [
|
|
2571
|
+
2
|
|
2572
|
+
];
|
|
2623
2573
|
_state.label = 1;
|
|
2624
2574
|
case 1:
|
|
2625
2575
|
_state.trys.push([
|
|
2626
2576
|
1,
|
|
2627
|
-
|
|
2577
|
+
3,
|
|
2628
2578
|
,
|
|
2629
|
-
|
|
2579
|
+
4
|
|
2630
2580
|
]);
|
|
2631
2581
|
return [
|
|
2632
2582
|
4,
|
|
2633
|
-
buildPlayerMetricEvent(
|
|
2583
|
+
buildPlayerMetricEvent(context, {
|
|
2634
2584
|
captureAt: adImpressionInfo.timestamp
|
|
2635
2585
|
})
|
|
2636
2586
|
];
|
|
2637
2587
|
case 2:
|
|
2638
2588
|
metricEvent = _state.sent();
|
|
2639
|
-
|
|
2640
|
-
|
|
2589
|
+
publishTracking(licenseKey, "heartbeat", metricEvent);
|
|
2590
|
+
publishTracking(licenseKey, "impressions", {
|
|
2641
2591
|
events: [
|
|
2642
2592
|
{
|
|
2643
2593
|
player_id: metricEvent.player_id,
|
|
2644
2594
|
ad_played_count: 1,
|
|
2645
2595
|
ad_url: adImpressionInfo.adUrl,
|
|
2646
|
-
license_key: licenseKey,
|
|
2647
2596
|
capture_at: adImpressionInfo.timestamp
|
|
2648
2597
|
}
|
|
2649
2598
|
]
|
|
2650
|
-
};
|
|
2651
|
-
return [
|
|
2652
|
-
4,
|
|
2653
|
-
Promise.all([
|
|
2654
|
-
publishOrPost("".concat(mqttTopicPrefix, "/tracking/heartbeat"), HEARTBEAT_URL, licenseKey, heartbeatBody),
|
|
2655
|
-
publishOrPost("".concat(mqttTopicPrefix, "/tracking/impressions"), IMPRESSIONS_URL, licenseKey, impressionsBody)
|
|
2656
|
-
])
|
|
2657
|
-
];
|
|
2658
|
-
case 3:
|
|
2659
|
-
_state.sent();
|
|
2599
|
+
});
|
|
2660
2600
|
return [
|
|
2661
2601
|
3,
|
|
2662
|
-
|
|
2602
|
+
4
|
|
2663
2603
|
];
|
|
2664
|
-
case
|
|
2604
|
+
case 3:
|
|
2665
2605
|
error = _state.sent();
|
|
2666
2606
|
console.error("[StormcloudVideoPlayer] Error sending ad impression tracking:", error);
|
|
2667
2607
|
return [
|
|
2668
2608
|
3,
|
|
2669
|
-
|
|
2609
|
+
4
|
|
2670
2610
|
];
|
|
2671
|
-
case
|
|
2611
|
+
case 4:
|
|
2672
2612
|
return [
|
|
2673
2613
|
2
|
|
2674
2614
|
];
|
|
@@ -2684,38 +2624,36 @@ function sendHeartbeat(_0) {
|
|
|
2684
2624
|
switch(_state.label){
|
|
2685
2625
|
case 0:
|
|
2686
2626
|
context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {}, flags = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
|
|
2627
|
+
if (!canPublish(licenseKey)) return [
|
|
2628
|
+
2
|
|
2629
|
+
];
|
|
2687
2630
|
_state.label = 1;
|
|
2688
2631
|
case 1:
|
|
2689
2632
|
_state.trys.push([
|
|
2690
2633
|
1,
|
|
2691
|
-
|
|
2634
|
+
3,
|
|
2692
2635
|
,
|
|
2693
|
-
|
|
2636
|
+
4
|
|
2694
2637
|
]);
|
|
2695
2638
|
return [
|
|
2696
2639
|
4,
|
|
2697
|
-
buildPlayerMetricEvent(
|
|
2640
|
+
buildPlayerMetricEvent(context, flags)
|
|
2698
2641
|
];
|
|
2699
2642
|
case 2:
|
|
2700
2643
|
heartbeatData = _state.sent();
|
|
2701
|
-
|
|
2702
|
-
4,
|
|
2703
|
-
publishOrPost("".concat(mqttTopicPrefix, "/tracking/heartbeat"), HEARTBEAT_URL, licenseKey, heartbeatData)
|
|
2704
|
-
];
|
|
2705
|
-
case 3:
|
|
2706
|
-
_state.sent();
|
|
2644
|
+
publishTracking(licenseKey, "heartbeat", heartbeatData);
|
|
2707
2645
|
return [
|
|
2708
2646
|
3,
|
|
2709
|
-
|
|
2647
|
+
4
|
|
2710
2648
|
];
|
|
2711
|
-
case
|
|
2649
|
+
case 3:
|
|
2712
2650
|
error = _state.sent();
|
|
2713
2651
|
console.error("[StormcloudVideoPlayer] Error sending heartbeat:", error);
|
|
2714
2652
|
return [
|
|
2715
2653
|
3,
|
|
2716
|
-
|
|
2654
|
+
4
|
|
2717
2655
|
];
|
|
2718
|
-
case
|
|
2656
|
+
case 4:
|
|
2719
2657
|
return [
|
|
2720
2658
|
2
|
|
2721
2659
|
];
|
|
@@ -4629,10 +4567,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
4629
4567
|
key: "initializeTracking",
|
|
4630
4568
|
value: function initializeTracking() {
|
|
4631
4569
|
var _this = this;
|
|
4632
|
-
if (
|
|
4633
|
-
|
|
4634
|
-
setMQTTTopicPrefix(topicPrefix);
|
|
4635
|
-
initMQTTClient(this.config.mqttBrokerUrl, topicPrefix);
|
|
4570
|
+
if (isMQTTEnabled()) {
|
|
4571
|
+
initMQTTClient();
|
|
4636
4572
|
}
|
|
4637
4573
|
sendInitialTracking(this.config.licenseKey, this.getAnalyticsContext()).then(function() {
|
|
4638
4574
|
_this.heartbeatInterval = window.setInterval(function() {
|
|
@@ -6313,7 +6249,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
6313
6249
|
clearInterval(this.heartbeatInterval);
|
|
6314
6250
|
this.heartbeatInterval = void 0;
|
|
6315
6251
|
}
|
|
6316
|
-
if (
|
|
6252
|
+
if (isMQTTEnabled()) {
|
|
6317
6253
|
disconnectMQTT();
|
|
6318
6254
|
}
|
|
6319
6255
|
(_this_hls = this.hls) === null || _this_hls === void 0 ? void 0 : _this_hls.destroy();
|