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.
Files changed (51) hide show
  1. package/README.md +2 -2
  2. package/dist/stormcloud-vp.min.js +1 -3
  3. package/lib/index.cjs +161 -283
  4. package/lib/index.cjs.map +1 -1
  5. package/lib/index.d.cts +12 -29
  6. package/lib/index.d.ts +12 -29
  7. package/lib/index.js +141 -227
  8. package/lib/index.js.map +1 -1
  9. package/lib/player/AdBreakOrchestrator.cjs +118 -188
  10. package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
  11. package/lib/player/AdConfigManager.cjs +103 -200
  12. package/lib/player/AdConfigManager.cjs.map +1 -1
  13. package/lib/player/AdConfigManager.d.cts +0 -1
  14. package/lib/player/AdTimingService.cjs.map +1 -1
  15. package/lib/player/HlsEngine.cjs.map +1 -1
  16. package/lib/player/PlaceholderLayer.cjs.map +1 -1
  17. package/lib/player/PlayerControls.cjs.map +1 -1
  18. package/lib/player/Scte35CueManager.cjs.map +1 -1
  19. package/lib/player/Scte35Parser.cjs.map +1 -1
  20. package/lib/player/StormcloudVideoPlayer.cjs +134 -205
  21. package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
  22. package/lib/player/playerTypes.cjs.map +1 -1
  23. package/lib/players/FilePlayer.cjs.map +1 -1
  24. package/lib/players/HlsPlayer.cjs +134 -205
  25. package/lib/players/HlsPlayer.cjs.map +1 -1
  26. package/lib/players/index.cjs +134 -205
  27. package/lib/players/index.cjs.map +1 -1
  28. package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
  29. package/lib/sdk/pal.cjs.map +1 -1
  30. package/lib/ui/StormcloudVideoPlayer.cjs +134 -205
  31. package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
  32. package/lib/utils/browserCompat.cjs.map +1 -1
  33. package/lib/utils/ctvVastSignals.cjs.map +1 -1
  34. package/lib/utils/devUrl.cjs.map +1 -1
  35. package/lib/utils/polyfills.cjs.map +1 -1
  36. package/lib/utils/tracking.cjs +134 -199
  37. package/lib/utils/tracking.cjs.map +1 -1
  38. package/lib/utils/trackingIngest.cjs +322 -0
  39. package/lib/utils/trackingIngest.cjs.map +1 -0
  40. package/lib/utils/trackingIngest.d.cts +14 -0
  41. package/lib/utils/vastEnvironmentSignals.cjs.map +1 -1
  42. package/lib/utils/vastMacros.cjs.map +1 -1
  43. package/lib/utils/vastTrackingMacros.cjs.map +1 -1
  44. package/package.json +1 -3
  45. package/lib/utils/mqttClient.cjs +0 -305
  46. package/lib/utils/mqttClient.cjs.map +0 -1
  47. package/lib/utils/mqttClient.d.cts +0 -13
  48. package/lib/utils/mqttConfig.cjs +0 -139
  49. package/lib/utils/mqttConfig.cjs.map +0 -1
  50. package/lib/utils/mqttConfig.d.cts +0 -20
  51. package/src/certs/emqxsl-ca.crt +0 -22
@@ -1,305 +0,0 @@
1
- "use strict";
2
- function _define_property(obj, key, value) {
3
- if (key in obj) {
4
- Object.defineProperty(obj, key, {
5
- value: value,
6
- enumerable: true,
7
- configurable: true,
8
- writable: true
9
- });
10
- } else obj[key] = value;
11
- return obj;
12
- }
13
- function _object_spread(target) {
14
- for(var i = 1; i < arguments.length; i++){
15
- var source = arguments[i] != null ? arguments[i] : {};
16
- var ownKeys = Object.keys(source);
17
- if (typeof Object.getOwnPropertySymbols === "function") {
18
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
19
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
20
- }));
21
- }
22
- ownKeys.forEach(function(key) {
23
- _define_property(target, key, source[key]);
24
- });
25
- }
26
- return target;
27
- }
28
- function _type_of(obj) {
29
- "@swc/helpers - typeof";
30
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
31
- }
32
- var __create = Object.create;
33
- var __defProp = Object.defineProperty;
34
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
35
- var __getOwnPropNames = Object.getOwnPropertyNames;
36
- var __getProtoOf = Object.getPrototypeOf;
37
- var __hasOwnProp = Object.prototype.hasOwnProperty;
38
- var __export = function __export(target, all) {
39
- for(var name in all)__defProp(target, name, {
40
- get: all[name],
41
- enumerable: true
42
- });
43
- };
44
- var __copyProps = function __copyProps(to, from, except, desc) {
45
- if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
46
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
47
- try {
48
- var _loop = function() {
49
- var key = _step.value;
50
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
51
- get: function get() {
52
- return from[key];
53
- },
54
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
55
- });
56
- };
57
- for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
58
- } catch (err) {
59
- _didIteratorError = true;
60
- _iteratorError = err;
61
- } finally{
62
- try {
63
- if (!_iteratorNormalCompletion && _iterator.return != null) {
64
- _iterator.return();
65
- }
66
- } finally{
67
- if (_didIteratorError) {
68
- throw _iteratorError;
69
- }
70
- }
71
- }
72
- }
73
- return to;
74
- };
75
- var __toESM = function __toESM(mod, isNodeMode, target) {
76
- return target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(// If the importer is in node compatibility mode or this is not an ESM
77
- // file that has been converted to a CommonJS file using a Babel-
78
- // compatible transform (i.e. "__esModule" has not been set), then set
79
- // "default" to the CommonJS "module.exports" for node compatibility.
80
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
81
- value: mod,
82
- enumerable: true
83
- }) : target, mod);
84
- };
85
- var __toCommonJS = function __toCommonJS(mod) {
86
- return __copyProps(__defProp({}, "__esModule", {
87
- value: true
88
- }), mod);
89
- };
90
- // src/utils/mqttClient.ts
91
- var mqttClient_exports = {};
92
- __export(mqttClient_exports, {
93
- configureMQTT: function configureMQTT1() {
94
- return configureMQTT;
95
- },
96
- disconnectMQTT: function disconnectMQTT1() {
97
- return disconnectMQTT;
98
- },
99
- ensureMQTTClient: function ensureMQTTClient1() {
100
- return ensureMQTTClient;
101
- },
102
- getMQTTStatus: function getMQTTStatus1() {
103
- return getMQTTStatus;
104
- },
105
- initMQTTClient: function initMQTTClient1() {
106
- return initMQTTClient;
107
- },
108
- isMQTTConfigured: function isMQTTConfigured1() {
109
- return isMQTTConfigured;
110
- },
111
- isMQTTConnected: function isMQTTConnected1() {
112
- return isMQTTConnected;
113
- },
114
- publishMQTT: function publishMQTT1() {
115
- return publishMQTT;
116
- }
117
- });
118
- module.exports = __toCommonJS(mqttClient_exports);
119
- var import_mqtt = __toESM(require("mqtt"), 1);
120
- // src/utils/mqttConfig.ts
121
- var DEFAULT_MQTT_CONFIG = {
122
- enabled: true,
123
- brokerAddress: "vecbae77.ala.us-east-1.emqxsl.com",
124
- brokerPort: 8883,
125
- wsPort: 8084,
126
- username: "for-sonifi",
127
- password: "sonifi-mqtt",
128
- topicPrefix: "adstorm/players",
129
- qos: 1
130
- };
131
- var mqttConfig = _object_spread({}, DEFAULT_MQTT_CONFIG);
132
- function applyMQTTConfig(overrides) {
133
- Object.assign(mqttConfig, overrides);
134
- }
135
- function isMQTTEnabled() {
136
- return mqttConfig.enabled;
137
- }
138
- function buildMQTTBrokerUrl() {
139
- if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;
140
- return "wss://".concat(mqttConfig.brokerAddress, ":").concat(mqttConfig.wsPort, "/mqtt");
141
- }
142
- // src/utils/mqttClient.ts
143
- var LOG = "[StormcloudVideoPlayer][MQTT]";
144
- var KEEPALIVE_SECONDS = 30;
145
- var CONNECT_TIMEOUT_MS = 1e4;
146
- var RECONNECT_BASE_MS = 5e3;
147
- var RECONNECT_MAX_MS = 6e4;
148
- var MAX_RECONNECT_ATTEMPTS = 8;
149
- var COOLDOWN_MS = 10 * 6e4;
150
- var client = null;
151
- var status = "disconnected";
152
- var reconnectAttempts = 0;
153
- var reconnectTimer = null;
154
- var stopped = false;
155
- function getMQTTStatus() {
156
- return status;
157
- }
158
- function isMQTTConnected() {
159
- return status === "connected" && client !== null && client.connected;
160
- }
161
- function isMQTTConfigured() {
162
- return isMQTTEnabled();
163
- }
164
- function configureMQTT(overrides) {
165
- applyMQTTConfig(overrides);
166
- disconnectMQTT();
167
- }
168
- function clearReconnectTimer() {
169
- if (reconnectTimer) {
170
- clearTimeout(reconnectTimer);
171
- reconnectTimer = null;
172
- }
173
- }
174
- function teardownClient() {
175
- if (client) {
176
- try {
177
- client.removeAllListeners();
178
- client.end(true);
179
- } catch (unused) {}
180
- client = null;
181
- }
182
- }
183
- function scheduleReconnect() {
184
- if (stopped || !isMQTTEnabled() || reconnectTimer) return;
185
- if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {
186
- console.warn("".concat(LOG, " giving up after ").concat(reconnectAttempts, " attempts; cooling down for ").concat(COOLDOWN_MS / 6e4, "m"));
187
- teardownClient();
188
- status = "disconnected";
189
- reconnectTimer = setTimeout(function() {
190
- reconnectTimer = null;
191
- reconnectAttempts = 0;
192
- openConnection();
193
- }, COOLDOWN_MS);
194
- return;
195
- }
196
- var delay = Math.min(RECONNECT_MAX_MS, RECONNECT_BASE_MS * Math.pow(2, reconnectAttempts));
197
- var jitter = Math.floor(Math.random() * 1e3);
198
- reconnectAttempts += 1;
199
- reconnectTimer = setTimeout(function() {
200
- reconnectTimer = null;
201
- openConnection();
202
- }, delay + jitter);
203
- }
204
- function openConnection() {
205
- if (stopped || !isMQTTEnabled()) return;
206
- teardownClient();
207
- var url = buildMQTTBrokerUrl();
208
- status = "connecting";
209
- var clientId = "stormcloud-vp-".concat(Math.random().toString(36).slice(2, 9));
210
- try {
211
- client = import_mqtt.default.connect(url, {
212
- clientId: clientId,
213
- username: mqttConfig.username,
214
- password: mqttConfig.password,
215
- keepalive: KEEPALIVE_SECONDS,
216
- clean: true,
217
- // Disable MQTT.js internal reconnect; we manage reconnection ourselves.
218
- reconnectPeriod: 0,
219
- connectTimeout: CONNECT_TIMEOUT_MS,
220
- queueQoSZero: false,
221
- reschedulePings: true,
222
- // Root-cause fix for the Tizen 4.0 "Keepalive timeout" loop: MQTT.js's
223
- // default timerVariant "auto" runs the keepalive interval inside a
224
- // Blob-URL Web Worker (via worker-timers). On Samsung Tizen 4.0 (old
225
- // WebKit) served from a file:// origin that worker can't tick reliably,
226
- // so the keepalive counter trips onKeepaliveTimeout almost immediately
227
- // after connect. Force the native setInterval timer instead; the main
228
- // thread is free because video is decoded by the native AVPlay pipeline.
229
- timerVariant: "native"
230
- });
231
- } catch (err) {
232
- status = "error";
233
- console.warn("".concat(LOG, " connect() threw:"), err);
234
- scheduleReconnect();
235
- return;
236
- }
237
- client.on("connect", function() {
238
- status = "connected";
239
- reconnectAttempts = 0;
240
- clearReconnectTimer();
241
- console.info("".concat(LOG, " connected to ").concat(url));
242
- });
243
- client.on("offline", function() {
244
- if (status === "connected") status = "disconnected";
245
- console.warn("".concat(LOG, " offline"));
246
- scheduleReconnect();
247
- });
248
- client.on("error", function(err) {
249
- status = "error";
250
- console.warn("".concat(LOG, " error:"), err.message);
251
- scheduleReconnect();
252
- });
253
- client.on("close", function() {
254
- if (status === "connected") status = "disconnected";
255
- scheduleReconnect();
256
- });
257
- }
258
- function initMQTTClient() {
259
- if (client || !isMQTTEnabled()) return;
260
- stopped = false;
261
- reconnectAttempts = 0;
262
- openConnection();
263
- }
264
- function ensureMQTTClient() {
265
- if (isMQTTEnabled() && !client && !reconnectTimer) {
266
- initMQTTClient();
267
- }
268
- }
269
- function publishMQTT(topic, payload) {
270
- if (!isMQTTEnabled()) {
271
- return false;
272
- }
273
- ensureMQTTClient();
274
- if (!client || !client.connected) {
275
- return false;
276
- }
277
- try {
278
- client.publish(topic, JSON.stringify(payload), {
279
- qos: mqttConfig.qos
280
- });
281
- return true;
282
- } catch (err) {
283
- console.warn("".concat(LOG, " publish failed on ").concat(topic, ":"), err);
284
- return false;
285
- }
286
- }
287
- function disconnectMQTT() {
288
- stopped = true;
289
- clearReconnectTimer();
290
- teardownClient();
291
- reconnectAttempts = 0;
292
- status = "disconnected";
293
- }
294
- // Annotate the CommonJS export names for ESM import in node:
295
- 0 && (module.exports = {
296
- configureMQTT: configureMQTT,
297
- disconnectMQTT: disconnectMQTT,
298
- ensureMQTTClient: ensureMQTTClient,
299
- getMQTTStatus: getMQTTStatus,
300
- initMQTTClient: initMQTTClient,
301
- isMQTTConfigured: isMQTTConfigured,
302
- isMQTTConnected: isMQTTConnected,
303
- publishMQTT: publishMQTT
304
- });
305
- //# sourceMappingURL=mqttClient.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/ubuntu24-new/Dev/stormcloud-vp/lib/utils/mqttClient.cjs","../../src/utils/mqttClient.ts","../../src/utils/mqttConfig.ts"],"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","from","key","call","to","except","desc","__toESM","mod","isNodeMode","__copyProps","__esModule","value","__toCommonJS","mqttClient_exports","configureMQTT","disconnectMQTT","ensureMQTTClient","getMQTTStatus","initMQTTClient","isMQTTConfigured","isMQTTConnected","publishMQTT","module","exports","import_mqtt","require","DEFAULT_MQTT_CONFIG","enabled","brokerAddress","brokerPort","wsPort","username","password","qos","mqttConfig","applyMQTTConfig","overrides","assign","isMQTTEnabled","buildMQTTBrokerUrl","brokerUrl","LOG","KEEPALIVE_SECONDS","CONNECT_TIMEOUT_MS","RECONNECT_BASE_MS","RECONNECT_MAX_MS","MAX_RECONNECT_ATTEMPTS","COOLDOWN_MS","client","status","reconnectAttempts","reconnectTimer","stopped","connected"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/utils/mqttClient.ts\nvar mqttClient_exports = {};\n__export(mqttClient_exports, {\n configureMQTT: () => configureMQTT,\n disconnectMQTT: () => disconnectMQTT,\n ensureMQTTClient: () => ensureMQTTClient,\n getMQTTStatus: () => getMQTTStatus,\n initMQTTClient: () => initMQTTClient,\n isMQTTConfigured: () => isMQTTConfigured,\n isMQTTConnected: () => isMQTTConnected,\n publishMQTT: () => publishMQTT\n});\nmodule.exports = __toCommonJS(mqttClient_exports);\nvar import_mqtt = __toESM(require(\"mqtt\"), 1);\n\n// src/utils/mqttConfig.ts\nvar DEFAULT_MQTT_CONFIG = {\n enabled: true,\n brokerAddress: \"vecbae77.ala.us-east-1.emqxsl.com\",\n brokerPort: 8883,\n wsPort: 8084,\n username: \"for-sonifi\",\n password: \"sonifi-mqtt\",\n topicPrefix: \"adstorm/players\",\n qos: 1\n};\nvar mqttConfig = { ...DEFAULT_MQTT_CONFIG };\nfunction applyMQTTConfig(overrides) {\n Object.assign(mqttConfig, overrides);\n}\nfunction isMQTTEnabled() {\n return mqttConfig.enabled;\n}\nfunction buildMQTTBrokerUrl() {\n if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;\n return `wss://${mqttConfig.brokerAddress}:${mqttConfig.wsPort}/mqtt`;\n}\n\n// src/utils/mqttClient.ts\nvar LOG = \"[StormcloudVideoPlayer][MQTT]\";\nvar KEEPALIVE_SECONDS = 30;\nvar CONNECT_TIMEOUT_MS = 1e4;\nvar RECONNECT_BASE_MS = 5e3;\nvar RECONNECT_MAX_MS = 6e4;\nvar MAX_RECONNECT_ATTEMPTS = 8;\nvar COOLDOWN_MS = 10 * 6e4;\nvar client = null;\nvar status = \"disconnected\";\nvar reconnectAttempts = 0;\nvar reconnectTimer = null;\nvar stopped = false;\nfunction getMQTTStatus() {\n return status;\n}\nfunction isMQTTConnected() {\n return status === \"connected\" && client !== null && client.connected;\n}\nfunction isMQTTConfigured() {\n return isMQTTEnabled();\n}\nfunction configureMQTT(overrides) {\n applyMQTTConfig(overrides);\n disconnectMQTT();\n}\nfunction clearReconnectTimer() {\n if (reconnectTimer) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n}\nfunction teardownClient() {\n if (client) {\n try {\n client.removeAllListeners();\n client.end(true);\n } catch {\n }\n client = null;\n }\n}\nfunction scheduleReconnect() {\n if (stopped || !isMQTTEnabled() || reconnectTimer) return;\n if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {\n console.warn(\n `${LOG} giving up after ${reconnectAttempts} attempts; cooling down for ${COOLDOWN_MS / 6e4}m`\n );\n teardownClient();\n status = \"disconnected\";\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n reconnectAttempts = 0;\n openConnection();\n }, COOLDOWN_MS);\n return;\n }\n const delay = Math.min(\n RECONNECT_MAX_MS,\n RECONNECT_BASE_MS * 2 ** reconnectAttempts\n );\n const jitter = Math.floor(Math.random() * 1e3);\n reconnectAttempts += 1;\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n openConnection();\n }, delay + jitter);\n}\nfunction openConnection() {\n if (stopped || !isMQTTEnabled()) return;\n teardownClient();\n const url = buildMQTTBrokerUrl();\n status = \"connecting\";\n const clientId = `stormcloud-vp-${Math.random().toString(36).slice(2, 9)}`;\n try {\n client = import_mqtt.default.connect(url, {\n clientId,\n username: mqttConfig.username,\n password: mqttConfig.password,\n keepalive: KEEPALIVE_SECONDS,\n clean: true,\n // Disable MQTT.js internal reconnect; we manage reconnection ourselves.\n reconnectPeriod: 0,\n connectTimeout: CONNECT_TIMEOUT_MS,\n queueQoSZero: false,\n reschedulePings: true,\n // Root-cause fix for the Tizen 4.0 \"Keepalive timeout\" loop: MQTT.js's\n // default timerVariant \"auto\" runs the keepalive interval inside a\n // Blob-URL Web Worker (via worker-timers). On Samsung Tizen 4.0 (old\n // WebKit) served from a file:// origin that worker can't tick reliably,\n // so the keepalive counter trips onKeepaliveTimeout almost immediately\n // after connect. Force the native setInterval timer instead; the main\n // thread is free because video is decoded by the native AVPlay pipeline.\n timerVariant: \"native\"\n });\n } catch (err) {\n status = \"error\";\n console.warn(`${LOG} connect() threw:`, err);\n scheduleReconnect();\n return;\n }\n client.on(\"connect\", () => {\n status = \"connected\";\n reconnectAttempts = 0;\n clearReconnectTimer();\n console.info(`${LOG} connected to ${url}`);\n });\n client.on(\"offline\", () => {\n if (status === \"connected\") status = \"disconnected\";\n console.warn(`${LOG} offline`);\n scheduleReconnect();\n });\n client.on(\"error\", (err) => {\n status = \"error\";\n console.warn(`${LOG} error:`, err.message);\n scheduleReconnect();\n });\n client.on(\"close\", () => {\n if (status === \"connected\") status = \"disconnected\";\n scheduleReconnect();\n });\n}\nfunction initMQTTClient() {\n if (client || !isMQTTEnabled()) return;\n stopped = false;\n reconnectAttempts = 0;\n openConnection();\n}\nfunction ensureMQTTClient() {\n if (isMQTTEnabled() && !client && !reconnectTimer) {\n initMQTTClient();\n }\n}\nfunction publishMQTT(topic, payload) {\n if (!isMQTTEnabled()) {\n return false;\n }\n ensureMQTTClient();\n if (!client || !client.connected) {\n return false;\n }\n try {\n client.publish(topic, JSON.stringify(payload), { qos: mqttConfig.qos });\n return true;\n } catch (err) {\n console.warn(`${LOG} publish failed on ${topic}:`, err);\n return false;\n }\n}\nfunction disconnectMQTT() {\n stopped = true;\n clearReconnectTimer();\n teardownClient();\n reconnectAttempts = 0;\n status = \"disconnected\";\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n configureMQTT,\n disconnectMQTT,\n ensureMQTTClient,\n getMQTTStatus,\n initMQTTClient,\n isMQTTConfigured,\n isMQTTConnected,\n publishMQTT\n});\n","import mqtt from \"mqtt\";\nimport type { MqttClient } from \"mqtt\";\nimport {\n applyMQTTConfig,\n buildMQTTBrokerUrl,\n isMQTTEnabled,\n mqttConfig,\n} from \"./mqttConfig\";\nimport type { MQTTConfig } from \"./mqttConfig\";\n\nconst LOG = \"[StormcloudVideoPlayer][MQTT]\";\n\nconst KEEPALIVE_SECONDS = 30;\nconst CONNECT_TIMEOUT_MS = 10_000;\n\nconst RECONNECT_BASE_MS = 5_000;\nconst RECONNECT_MAX_MS = 60_000;\nconst MAX_RECONNECT_ATTEMPTS = 8;\nconst COOLDOWN_MS = 10 * 60_000;\n\nexport type MQTTStatus = \"disconnected\" | \"connecting\" | \"connected\" | \"error\";\n\nlet client: MqttClient | null = null;\nlet status: MQTTStatus = \"disconnected\";\nlet reconnectAttempts = 0;\nlet reconnectTimer: ReturnType<typeof setTimeout> | null = null;\nlet stopped = false;\n\nexport function getMQTTStatus(): MQTTStatus {\n return status;\n}\n\nexport function isMQTTConnected(): boolean {\n return status === \"connected\" && client !== null && client.connected;\n}\n\nexport function isMQTTConfigured(): boolean {\n return isMQTTEnabled();\n}\n\nexport function configureMQTT(overrides: Partial<MQTTConfig>): void {\n applyMQTTConfig(overrides);\n disconnectMQTT();\n}\n\nfunction clearReconnectTimer(): void {\n if (reconnectTimer) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n}\n\nfunction teardownClient(): void {\n if (client) {\n try {\n client.removeAllListeners();\n client.end(true);\n } catch {\n // ignore teardown errors\n }\n client = null;\n }\n}\n\nfunction scheduleReconnect(): void {\n if (stopped || !isMQTTEnabled() || reconnectTimer) return;\n\n if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {\n console.warn(\n `${LOG} giving up after ${reconnectAttempts} attempts; cooling down for ${\n COOLDOWN_MS / 60_000\n }m`\n );\n teardownClient();\n status = \"disconnected\";\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n reconnectAttempts = 0;\n openConnection();\n }, COOLDOWN_MS);\n return;\n }\n\n const delay = Math.min(\n RECONNECT_MAX_MS,\n RECONNECT_BASE_MS * 2 ** reconnectAttempts\n );\n const jitter = Math.floor(Math.random() * 1_000);\n reconnectAttempts += 1;\n\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n openConnection();\n }, delay + jitter);\n}\n\nfunction openConnection(): void {\n if (stopped || !isMQTTEnabled()) return;\n\n teardownClient();\n\n const url = buildMQTTBrokerUrl();\n status = \"connecting\";\n\n const clientId = `stormcloud-vp-${Math.random().toString(36).slice(2, 9)}`;\n\n try {\n client = mqtt.connect(url, {\n clientId,\n username: mqttConfig.username,\n password: mqttConfig.password,\n keepalive: KEEPALIVE_SECONDS,\n clean: true,\n // Disable MQTT.js internal reconnect; we manage reconnection ourselves.\n reconnectPeriod: 0,\n connectTimeout: CONNECT_TIMEOUT_MS,\n queueQoSZero: false,\n reschedulePings: true,\n // Root-cause fix for the Tizen 4.0 \"Keepalive timeout\" loop: MQTT.js's\n // default timerVariant \"auto\" runs the keepalive interval inside a\n // Blob-URL Web Worker (via worker-timers). On Samsung Tizen 4.0 (old\n // WebKit) served from a file:// origin that worker can't tick reliably,\n // so the keepalive counter trips onKeepaliveTimeout almost immediately\n // after connect. Force the native setInterval timer instead; the main\n // thread is free because video is decoded by the native AVPlay pipeline.\n timerVariant: \"native\",\n });\n } catch (err) {\n status = \"error\";\n console.warn(`${LOG} connect() threw:`, err);\n scheduleReconnect();\n return;\n }\n\n client.on(\"connect\", () => {\n status = \"connected\";\n reconnectAttempts = 0;\n clearReconnectTimer();\n console.info(`${LOG} connected to ${url}`);\n });\n\n client.on(\"offline\", () => {\n if (status === \"connected\") status = \"disconnected\";\n console.warn(`${LOG} offline`);\n scheduleReconnect();\n });\n\n client.on(\"error\", (err) => {\n status = \"error\";\n console.warn(`${LOG} error:`, err.message);\n scheduleReconnect();\n });\n\n client.on(\"close\", () => {\n if (status === \"connected\") status = \"disconnected\";\n scheduleReconnect();\n });\n}\n\nexport function initMQTTClient(): void {\n if (client || !isMQTTEnabled()) return;\n stopped = false;\n reconnectAttempts = 0;\n openConnection();\n}\n\nexport function ensureMQTTClient(): void {\n if (isMQTTEnabled() && !client && !reconnectTimer) {\n initMQTTClient();\n }\n}\n\nexport function publishMQTT(\n topic: string,\n payload: Record<string, unknown>\n): boolean {\n if (!isMQTTEnabled()) {\n return false;\n }\n\n ensureMQTTClient();\n\n if (!client || !client.connected) {\n return false;\n }\n\n try {\n client.publish(topic, JSON.stringify(payload), { qos: mqttConfig.qos });\n return true;\n } catch (err) {\n console.warn(`${LOG} publish failed on ${topic}:`, err);\n return false;\n }\n}\n\nexport function disconnectMQTT(): void {\n stopped = true;\n clearReconnectTimer();\n teardownClient();\n reconnectAttempts = 0;\n status = \"disconnected\";\n}\n","export const MQTT_CA_CERT_FILE = \"src/certs/emqxsl-ca.crt\";\n\nexport type MQTTConfig = {\n enabled: boolean;\n brokerAddress: string;\n brokerPort: number;\n wsPort: number;\n username: string;\n password: string;\n topicPrefix: string;\n qos: 0 | 1 | 2;\n brokerUrl?: string;\n};\n\nexport const DEFAULT_MQTT_CONFIG: MQTTConfig = {\n enabled: true,\n brokerAddress: \"vecbae77.ala.us-east-1.emqxsl.com\",\n brokerPort: 8883,\n wsPort: 8084,\n username: \"for-sonifi\",\n password: \"sonifi-mqtt\",\n topicPrefix: \"adstorm/players\",\n qos: 1,\n};\n\nexport const mqttConfig: MQTTConfig = { ...DEFAULT_MQTT_CONFIG };\n\nexport function applyMQTTConfig(overrides: Partial<MQTTConfig>): void {\n Object.assign(mqttConfig, overrides);\n}\n\nexport function isMQTTEnabled(): boolean {\n return mqttConfig.enabled;\n}\n\nexport function buildMQTTBrokerUrl(): string {\n if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;\n return `wss://${mqttConfig.brokerAddress}:${mqttConfig.wsPort}/mqtt`;\n}\n\nexport function buildPlayerTopic(\n licenseKey: string,\n channel: \"metrics\" | \"impressions\" | \"heartbeat\"\n): string {\n return `${mqttConfig.topicPrefix}/${licenseKey}/${channel}`;\n}\n"]}
@@ -1,13 +0,0 @@
1
- import { MQTTConfig } from './mqttConfig.cjs';
2
-
3
- type MQTTStatus = "disconnected" | "connecting" | "connected" | "error";
4
- declare function getMQTTStatus(): MQTTStatus;
5
- declare function isMQTTConnected(): boolean;
6
- declare function isMQTTConfigured(): boolean;
7
- declare function configureMQTT(overrides: Partial<MQTTConfig>): void;
8
- declare function initMQTTClient(): void;
9
- declare function ensureMQTTClient(): void;
10
- declare function publishMQTT(topic: string, payload: Record<string, unknown>): boolean;
11
- declare function disconnectMQTT(): void;
12
-
13
- export { type MQTTStatus, configureMQTT, disconnectMQTT, ensureMQTTClient, getMQTTStatus, initMQTTClient, isMQTTConfigured, isMQTTConnected, publishMQTT };
@@ -1,139 +0,0 @@
1
- "use strict";
2
- function _define_property(obj, key, value) {
3
- if (key in obj) {
4
- Object.defineProperty(obj, key, {
5
- value: value,
6
- enumerable: true,
7
- configurable: true,
8
- writable: true
9
- });
10
- } else obj[key] = value;
11
- return obj;
12
- }
13
- function _object_spread(target) {
14
- for(var i = 1; i < arguments.length; i++){
15
- var source = arguments[i] != null ? arguments[i] : {};
16
- var ownKeys = Object.keys(source);
17
- if (typeof Object.getOwnPropertySymbols === "function") {
18
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
19
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
20
- }));
21
- }
22
- ownKeys.forEach(function(key) {
23
- _define_property(target, key, source[key]);
24
- });
25
- }
26
- return target;
27
- }
28
- function _type_of(obj) {
29
- "@swc/helpers - typeof";
30
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
31
- }
32
- var __defProp = Object.defineProperty;
33
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
34
- var __getOwnPropNames = Object.getOwnPropertyNames;
35
- var __hasOwnProp = Object.prototype.hasOwnProperty;
36
- var __export = function __export(target, all) {
37
- for(var name in all)__defProp(target, name, {
38
- get: all[name],
39
- enumerable: true
40
- });
41
- };
42
- var __copyProps = function __copyProps(to, from, except, desc) {
43
- if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
44
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
45
- try {
46
- var _loop = function() {
47
- var key = _step.value;
48
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
49
- get: function get() {
50
- return from[key];
51
- },
52
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
53
- });
54
- };
55
- for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
56
- } catch (err) {
57
- _didIteratorError = true;
58
- _iteratorError = err;
59
- } finally{
60
- try {
61
- if (!_iteratorNormalCompletion && _iterator.return != null) {
62
- _iterator.return();
63
- }
64
- } finally{
65
- if (_didIteratorError) {
66
- throw _iteratorError;
67
- }
68
- }
69
- }
70
- }
71
- return to;
72
- };
73
- var __toCommonJS = function __toCommonJS(mod) {
74
- return __copyProps(__defProp({}, "__esModule", {
75
- value: true
76
- }), mod);
77
- };
78
- // src/utils/mqttConfig.ts
79
- var mqttConfig_exports = {};
80
- __export(mqttConfig_exports, {
81
- DEFAULT_MQTT_CONFIG: function DEFAULT_MQTT_CONFIG1() {
82
- return DEFAULT_MQTT_CONFIG;
83
- },
84
- MQTT_CA_CERT_FILE: function MQTT_CA_CERT_FILE1() {
85
- return MQTT_CA_CERT_FILE;
86
- },
87
- applyMQTTConfig: function applyMQTTConfig1() {
88
- return applyMQTTConfig;
89
- },
90
- buildMQTTBrokerUrl: function buildMQTTBrokerUrl1() {
91
- return buildMQTTBrokerUrl;
92
- },
93
- buildPlayerTopic: function buildPlayerTopic1() {
94
- return buildPlayerTopic;
95
- },
96
- isMQTTEnabled: function isMQTTEnabled1() {
97
- return isMQTTEnabled;
98
- },
99
- mqttConfig: function mqttConfig1() {
100
- return mqttConfig;
101
- }
102
- });
103
- module.exports = __toCommonJS(mqttConfig_exports);
104
- var MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
105
- var DEFAULT_MQTT_CONFIG = {
106
- enabled: true,
107
- brokerAddress: "vecbae77.ala.us-east-1.emqxsl.com",
108
- brokerPort: 8883,
109
- wsPort: 8084,
110
- username: "for-sonifi",
111
- password: "sonifi-mqtt",
112
- topicPrefix: "adstorm/players",
113
- qos: 1
114
- };
115
- var mqttConfig = _object_spread({}, DEFAULT_MQTT_CONFIG);
116
- function applyMQTTConfig(overrides) {
117
- Object.assign(mqttConfig, overrides);
118
- }
119
- function isMQTTEnabled() {
120
- return mqttConfig.enabled;
121
- }
122
- function buildMQTTBrokerUrl() {
123
- if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;
124
- return "wss://".concat(mqttConfig.brokerAddress, ":").concat(mqttConfig.wsPort, "/mqtt");
125
- }
126
- function buildPlayerTopic(licenseKey, channel) {
127
- return "".concat(mqttConfig.topicPrefix, "/").concat(licenseKey, "/").concat(channel);
128
- }
129
- // Annotate the CommonJS export names for ESM import in node:
130
- 0 && (module.exports = {
131
- DEFAULT_MQTT_CONFIG: DEFAULT_MQTT_CONFIG,
132
- MQTT_CA_CERT_FILE: MQTT_CA_CERT_FILE,
133
- applyMQTTConfig: applyMQTTConfig,
134
- buildMQTTBrokerUrl: buildMQTTBrokerUrl,
135
- buildPlayerTopic: buildPlayerTopic,
136
- isMQTTEnabled: isMQTTEnabled,
137
- mqttConfig: mqttConfig
138
- });
139
- //# sourceMappingURL=mqttConfig.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/ubuntu24-new/Dev/stormcloud-vp/lib/utils/mqttConfig.cjs"],"names":[],"mappings":"AAAA","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/utils/mqttConfig.ts\nvar mqttConfig_exports = {};\n__export(mqttConfig_exports, {\n DEFAULT_MQTT_CONFIG: () => DEFAULT_MQTT_CONFIG,\n MQTT_CA_CERT_FILE: () => MQTT_CA_CERT_FILE,\n applyMQTTConfig: () => applyMQTTConfig,\n buildMQTTBrokerUrl: () => buildMQTTBrokerUrl,\n buildPlayerTopic: () => buildPlayerTopic,\n isMQTTEnabled: () => isMQTTEnabled,\n mqttConfig: () => mqttConfig\n});\nmodule.exports = __toCommonJS(mqttConfig_exports);\nvar MQTT_CA_CERT_FILE = \"src/certs/emqxsl-ca.crt\";\nvar DEFAULT_MQTT_CONFIG = {\n enabled: true,\n brokerAddress: \"vecbae77.ala.us-east-1.emqxsl.com\",\n brokerPort: 8883,\n wsPort: 8084,\n username: \"for-sonifi\",\n password: \"sonifi-mqtt\",\n topicPrefix: \"adstorm/players\",\n qos: 1\n};\nvar mqttConfig = { ...DEFAULT_MQTT_CONFIG };\nfunction applyMQTTConfig(overrides) {\n Object.assign(mqttConfig, overrides);\n}\nfunction isMQTTEnabled() {\n return mqttConfig.enabled;\n}\nfunction buildMQTTBrokerUrl() {\n if (mqttConfig.brokerUrl) return mqttConfig.brokerUrl;\n return `wss://${mqttConfig.brokerAddress}:${mqttConfig.wsPort}/mqtt`;\n}\nfunction buildPlayerTopic(licenseKey, channel) {\n return `${mqttConfig.topicPrefix}/${licenseKey}/${channel}`;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n DEFAULT_MQTT_CONFIG,\n MQTT_CA_CERT_FILE,\n applyMQTTConfig,\n buildMQTTBrokerUrl,\n buildPlayerTopic,\n isMQTTEnabled,\n mqttConfig\n});\n"]}
@@ -1,20 +0,0 @@
1
- declare const MQTT_CA_CERT_FILE = "src/certs/emqxsl-ca.crt";
2
- type MQTTConfig = {
3
- enabled: boolean;
4
- brokerAddress: string;
5
- brokerPort: number;
6
- wsPort: number;
7
- username: string;
8
- password: string;
9
- topicPrefix: string;
10
- qos: 0 | 1 | 2;
11
- brokerUrl?: string;
12
- };
13
- declare const DEFAULT_MQTT_CONFIG: MQTTConfig;
14
- declare const mqttConfig: MQTTConfig;
15
- declare function applyMQTTConfig(overrides: Partial<MQTTConfig>): void;
16
- declare function isMQTTEnabled(): boolean;
17
- declare function buildMQTTBrokerUrl(): string;
18
- declare function buildPlayerTopic(licenseKey: string, channel: "metrics" | "impressions" | "heartbeat"): string;
19
-
20
- export { DEFAULT_MQTT_CONFIG, type MQTTConfig, MQTT_CA_CERT_FILE, applyMQTTConfig, buildMQTTBrokerUrl, buildPlayerTopic, isMQTTEnabled, mqttConfig };
@@ -1,22 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
3
- MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
4
- d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
5
- MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
6
- MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
7
- b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
8
- 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
9
- 2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
10
- 1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
11
- q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
12
- tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
13
- vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
14
- BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
15
- 5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
16
- 1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
17
- NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
18
- Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
19
- 8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
20
- pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
21
- MrY=
22
- -----END CERTIFICATE-----