@xibosignage/xibo-communication-framework 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/modules/xmr/xmr.d.ts +1 -0
- package/dist/xibo-communication-framework.cjs.js +135 -296
- package/dist/xibo-communication-framework.cjs.js.map +1 -1
- package/dist/xibo-communication-framework.d.ts +1 -0
- package/dist/xibo-communication-framework.esm.js +135 -296
- package/dist/xibo-communication-framework.esm.js.map +1 -1
- package/dist/xibo-communication-framework.js +135 -296
- package/dist/xibo-communication-framework.min.js +3 -1
- package/dist/xibo-communication-framework.min.js.map +1 -1
- package/package.json +2 -1
|
@@ -49,274 +49,113 @@ function _defineProperty(e, r, t) {
|
|
|
49
49
|
writable: true
|
|
50
50
|
}) : e[r] = t, e;
|
|
51
51
|
}
|
|
52
|
-
function
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
function h(r, e, n, o) {
|
|
80
|
-
var i = e && e.prototype instanceof Generator ? e : Generator,
|
|
81
|
-
a = Object.create(i.prototype);
|
|
82
|
-
return c(a, "_invoke", function (r, e, n) {
|
|
83
|
-
var o = 1;
|
|
84
|
-
return function (i, a) {
|
|
85
|
-
if (3 === o) throw Error("Generator is already running");
|
|
86
|
-
if (4 === o) {
|
|
87
|
-
if ("throw" === i) throw a;
|
|
88
|
-
return {
|
|
89
|
-
value: t,
|
|
90
|
-
done: true
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
for (n.method = i, n.arg = a;;) {
|
|
94
|
-
var u = n.delegate;
|
|
95
|
-
if (u) {
|
|
96
|
-
var c = d(u, n);
|
|
97
|
-
if (c) {
|
|
98
|
-
if (c === f) continue;
|
|
99
|
-
return c;
|
|
100
|
-
}
|
|
52
|
+
function _regenerator() {
|
|
53
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
54
|
+
var e,
|
|
55
|
+
t,
|
|
56
|
+
r = "function" == typeof Symbol ? Symbol : {},
|
|
57
|
+
n = r.iterator || "@@iterator",
|
|
58
|
+
o = r.toStringTag || "@@toStringTag";
|
|
59
|
+
function i(r, n, o, i) {
|
|
60
|
+
var c = n && n.prototype instanceof Generator ? n : Generator,
|
|
61
|
+
u = Object.create(c.prototype);
|
|
62
|
+
return _regeneratorDefine(u, "_invoke", function (r, n, o) {
|
|
63
|
+
var i,
|
|
64
|
+
c,
|
|
65
|
+
u,
|
|
66
|
+
f = 0,
|
|
67
|
+
p = o || [],
|
|
68
|
+
y = false,
|
|
69
|
+
G = {
|
|
70
|
+
p: 0,
|
|
71
|
+
n: 0,
|
|
72
|
+
v: e,
|
|
73
|
+
a: d,
|
|
74
|
+
f: d.bind(e, 4),
|
|
75
|
+
d: function (t, r) {
|
|
76
|
+
return i = t, c = 0, u = e, G.n = r, a;
|
|
101
77
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
78
|
+
};
|
|
79
|
+
function d(r, n) {
|
|
80
|
+
for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
|
|
81
|
+
var o,
|
|
82
|
+
i = p[t],
|
|
83
|
+
d = G.p,
|
|
84
|
+
l = i[2];
|
|
85
|
+
r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
|
|
86
|
+
}
|
|
87
|
+
if (o || r > 1) return a;
|
|
88
|
+
throw y = true, n;
|
|
89
|
+
}
|
|
90
|
+
return function (o, p, l) {
|
|
91
|
+
if (f > 1) throw TypeError("Generator is already running");
|
|
92
|
+
for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
|
|
93
|
+
i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
|
|
94
|
+
try {
|
|
95
|
+
if (f = 2, i) {
|
|
96
|
+
if (c || (o = "next"), t = i[o]) {
|
|
97
|
+
if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
|
|
98
|
+
if (!t.done) return t;
|
|
99
|
+
u = t.value, c < 2 && (c = 0);
|
|
100
|
+
} else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
|
|
101
|
+
i = e;
|
|
102
|
+
} else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
|
|
103
|
+
} catch (t) {
|
|
104
|
+
i = e, c = 1, u = t;
|
|
105
|
+
} finally {
|
|
106
|
+
f = 1;
|
|
114
107
|
}
|
|
115
|
-
"throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg);
|
|
116
108
|
}
|
|
109
|
+
return {
|
|
110
|
+
value: t,
|
|
111
|
+
done: y
|
|
112
|
+
};
|
|
117
113
|
};
|
|
118
|
-
}(r,
|
|
119
|
-
}
|
|
120
|
-
function s(t, r, e) {
|
|
121
|
-
try {
|
|
122
|
-
return {
|
|
123
|
-
type: "normal",
|
|
124
|
-
arg: t.call(r, e)
|
|
125
|
-
};
|
|
126
|
-
} catch (t) {
|
|
127
|
-
return {
|
|
128
|
-
type: "throw",
|
|
129
|
-
arg: t
|
|
130
|
-
};
|
|
131
|
-
}
|
|
114
|
+
}(r, o, i), true), u;
|
|
132
115
|
}
|
|
133
|
-
|
|
134
|
-
var f = {};
|
|
116
|
+
var a = {};
|
|
135
117
|
function Generator() {}
|
|
136
118
|
function GeneratorFunction() {}
|
|
137
119
|
function GeneratorFunctionPrototype() {}
|
|
138
|
-
|
|
139
|
-
c(
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l);
|
|
146
|
-
function g(t) {
|
|
147
|
-
["next", "throw", "return"].forEach(function (r) {
|
|
148
|
-
c(t, r, function (t) {
|
|
149
|
-
return this._invoke(r, t);
|
|
150
|
-
});
|
|
151
|
-
});
|
|
120
|
+
t = Object.getPrototypeOf;
|
|
121
|
+
var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
|
|
122
|
+
return this;
|
|
123
|
+
}), t),
|
|
124
|
+
u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
|
|
125
|
+
function f(e) {
|
|
126
|
+
return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
|
|
152
127
|
}
|
|
153
|
-
|
|
154
|
-
function e(o, i, a, u) {
|
|
155
|
-
var c = s(t[o], t, i);
|
|
156
|
-
if ("throw" !== c.type) {
|
|
157
|
-
var h = c.arg,
|
|
158
|
-
f = h.value;
|
|
159
|
-
return f && "object" == typeof f && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) {
|
|
160
|
-
e("next", t, a, u);
|
|
161
|
-
}, function (t) {
|
|
162
|
-
e("throw", t, a, u);
|
|
163
|
-
}) : r.resolve(f).then(function (t) {
|
|
164
|
-
h.value = t, a(h);
|
|
165
|
-
}, function (t) {
|
|
166
|
-
return e("throw", t, a, u);
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
u(c.arg);
|
|
170
|
-
}
|
|
171
|
-
var o;
|
|
172
|
-
c(this, "_invoke", function (t, n) {
|
|
173
|
-
function i() {
|
|
174
|
-
return new r(function (r, o) {
|
|
175
|
-
e(t, n, r, o);
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
return o = o ? o.then(i, i) : i();
|
|
179
|
-
}, true);
|
|
180
|
-
}
|
|
181
|
-
function d(r, e) {
|
|
182
|
-
var n = e.method,
|
|
183
|
-
o = r.i[n];
|
|
184
|
-
if (o === t) return e.delegate = null, "throw" === n && r.i.return && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f;
|
|
185
|
-
var i = s(o, r.i, e.arg);
|
|
186
|
-
if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f;
|
|
187
|
-
var a = i.arg;
|
|
188
|
-
return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f);
|
|
189
|
-
}
|
|
190
|
-
function w(t) {
|
|
191
|
-
this.tryEntries.push(t);
|
|
192
|
-
}
|
|
193
|
-
function m(r) {
|
|
194
|
-
var e = r[4] || {};
|
|
195
|
-
e.type = "normal", e.arg = t, r[4] = e;
|
|
196
|
-
}
|
|
197
|
-
function Context(t) {
|
|
198
|
-
this.tryEntries = [[-1]], t.forEach(w, this), this.reset(true);
|
|
199
|
-
}
|
|
200
|
-
function x(r) {
|
|
201
|
-
if (null != r) {
|
|
202
|
-
var e = r[i];
|
|
203
|
-
if (e) return e.call(r);
|
|
204
|
-
if ("function" == typeof r.next) return r;
|
|
205
|
-
if (!isNaN(r.length)) {
|
|
206
|
-
var o = -1,
|
|
207
|
-
a = function e() {
|
|
208
|
-
for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = false, e;
|
|
209
|
-
return e.value = t, e.done = true, e;
|
|
210
|
-
};
|
|
211
|
-
return a.next = a;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
throw new TypeError(typeof r + " is not iterable");
|
|
215
|
-
}
|
|
216
|
-
return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = c(GeneratorFunctionPrototype, u, "GeneratorFunction"), r.isGeneratorFunction = function (t) {
|
|
217
|
-
var r = "function" == typeof t && t.constructor;
|
|
218
|
-
return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name));
|
|
219
|
-
}, r.mark = function (t) {
|
|
220
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t;
|
|
221
|
-
}, r.awrap = function (t) {
|
|
222
|
-
return {
|
|
223
|
-
__await: t
|
|
224
|
-
};
|
|
225
|
-
}, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () {
|
|
128
|
+
return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
|
|
226
129
|
return this;
|
|
227
|
-
}),
|
|
228
|
-
void 0 === i && (i = Promise);
|
|
229
|
-
var a = new AsyncIterator(h(t, e, n, o), i);
|
|
230
|
-
return r.isGeneratorFunction(e) ? a : a.next().then(function (t) {
|
|
231
|
-
return t.done ? t.value : a.next();
|
|
232
|
-
});
|
|
233
|
-
}, g(v), c(v, u, "Generator"), c(v, i, function () {
|
|
234
|
-
return this;
|
|
235
|
-
}), c(v, "toString", function () {
|
|
130
|
+
}), _regeneratorDefine(u, "toString", function () {
|
|
236
131
|
return "[object Generator]";
|
|
237
|
-
}),
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
return function t() {
|
|
242
|
-
for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = false, t;
|
|
243
|
-
return t.done = true, t;
|
|
132
|
+
}), (_regenerator = function () {
|
|
133
|
+
return {
|
|
134
|
+
w: i,
|
|
135
|
+
m: f
|
|
244
136
|
};
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
function n(t) {
|
|
260
|
-
a.type = "throw", a.arg = r, e.next = t;
|
|
261
|
-
}
|
|
262
|
-
for (var o = e.tryEntries.length - 1; o >= 0; --o) {
|
|
263
|
-
var i = this.tryEntries[o],
|
|
264
|
-
a = i[4],
|
|
265
|
-
u = this.prev,
|
|
266
|
-
c = i[1],
|
|
267
|
-
h = i[2];
|
|
268
|
-
if (-1 === i[0]) return n("end"), false;
|
|
269
|
-
if (!c && !h) throw Error("try statement without catch or finally");
|
|
270
|
-
if (null != i[0] && i[0] <= u) {
|
|
271
|
-
if (u < c) return this.method = "next", this.arg = t, n(c), true;
|
|
272
|
-
if (u < h) return n(h), false;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
},
|
|
276
|
-
abrupt: function (t, r) {
|
|
277
|
-
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
|
278
|
-
var n = this.tryEntries[e];
|
|
279
|
-
if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) {
|
|
280
|
-
var o = n;
|
|
281
|
-
break;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null);
|
|
285
|
-
var i = o ? o[4] : {};
|
|
286
|
-
return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i);
|
|
287
|
-
},
|
|
288
|
-
complete: function (t, r) {
|
|
289
|
-
if ("throw" === t.type) throw t.arg;
|
|
290
|
-
return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f;
|
|
291
|
-
},
|
|
292
|
-
finish: function (t) {
|
|
293
|
-
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
|
|
294
|
-
var e = this.tryEntries[r];
|
|
295
|
-
if (e[2] === t) return this.complete(e[4], e[3]), m(e), f;
|
|
296
|
-
}
|
|
297
|
-
},
|
|
298
|
-
catch: function (t) {
|
|
299
|
-
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
|
|
300
|
-
var e = this.tryEntries[r];
|
|
301
|
-
if (e[0] === t) {
|
|
302
|
-
var n = e[4];
|
|
303
|
-
if ("throw" === n.type) {
|
|
304
|
-
var o = n.arg;
|
|
305
|
-
m(e);
|
|
306
|
-
}
|
|
307
|
-
return o;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
throw Error("illegal catch attempt");
|
|
311
|
-
},
|
|
312
|
-
delegateYield: function (r, e, n) {
|
|
313
|
-
return this.delegate = {
|
|
314
|
-
i: x(r),
|
|
315
|
-
r: e,
|
|
316
|
-
n: n
|
|
317
|
-
}, "next" === this.method && (this.arg = t), f;
|
|
137
|
+
})();
|
|
138
|
+
}
|
|
139
|
+
function _regeneratorDefine(e, r, n, t) {
|
|
140
|
+
var i = Object.defineProperty;
|
|
141
|
+
try {
|
|
142
|
+
i({}, "", {});
|
|
143
|
+
} catch (e) {
|
|
144
|
+
i = 0;
|
|
145
|
+
}
|
|
146
|
+
_regeneratorDefine = function (e, r, n, t) {
|
|
147
|
+
function o(r, n) {
|
|
148
|
+
_regeneratorDefine(e, r, function (e) {
|
|
149
|
+
return this._invoke(r, n, e);
|
|
150
|
+
});
|
|
318
151
|
}
|
|
319
|
-
|
|
152
|
+
r ? i ? i(e, r, {
|
|
153
|
+
value: n,
|
|
154
|
+
enumerable: !t,
|
|
155
|
+
configurable: !t,
|
|
156
|
+
writable: !t
|
|
157
|
+
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
158
|
+
}, _regeneratorDefine(e, r, n, t);
|
|
320
159
|
}
|
|
321
160
|
function _toPrimitive(t, r) {
|
|
322
161
|
if ("object" != typeof t || !t) return t;
|
|
@@ -390,10 +229,10 @@ var Xmr = /*#__PURE__*/function () {
|
|
|
390
229
|
}, {
|
|
391
230
|
key: "init",
|
|
392
231
|
value: function () {
|
|
393
|
-
var _init = _asyncToGenerator(/*#__PURE__*/
|
|
232
|
+
var _init = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
394
233
|
var _this = this;
|
|
395
|
-
return
|
|
396
|
-
while (1) switch (_context.
|
|
234
|
+
return _regenerator().w(function (_context) {
|
|
235
|
+
while (1) switch (_context.n) {
|
|
397
236
|
case 0:
|
|
398
237
|
this.interval = setInterval(function () {
|
|
399
238
|
if (_this.isConnectionWanted && !_this.isActive()) {
|
|
@@ -403,8 +242,7 @@ var Xmr = /*#__PURE__*/function () {
|
|
|
403
242
|
}
|
|
404
243
|
}, 60000);
|
|
405
244
|
case 1:
|
|
406
|
-
|
|
407
|
-
return _context.stop();
|
|
245
|
+
return _context.a(2);
|
|
408
246
|
}
|
|
409
247
|
}, _callee, this);
|
|
410
248
|
}));
|
|
@@ -416,20 +254,21 @@ var Xmr = /*#__PURE__*/function () {
|
|
|
416
254
|
}, {
|
|
417
255
|
key: "start",
|
|
418
256
|
value: function () {
|
|
419
|
-
var _start = _asyncToGenerator(/*#__PURE__*/
|
|
257
|
+
var _start = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(url, cmsKey) {
|
|
420
258
|
var _this2 = this;
|
|
421
|
-
|
|
422
|
-
|
|
259
|
+
var _t;
|
|
260
|
+
return _regenerator().w(function (_context2) {
|
|
261
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
423
262
|
case 0:
|
|
424
263
|
if (!(!this.channel || this.channel === 'unknown')) {
|
|
425
|
-
_context2.
|
|
264
|
+
_context2.n = 1;
|
|
426
265
|
break;
|
|
427
266
|
}
|
|
428
267
|
console.error('Xmr::start: channel unknown, XMR will be disabled');
|
|
429
|
-
return _context2.
|
|
430
|
-
case
|
|
268
|
+
return _context2.a(2);
|
|
269
|
+
case 1:
|
|
431
270
|
if (!(this.url === 'DISABLED')) {
|
|
432
|
-
_context2.
|
|
271
|
+
_context2.n = 2;
|
|
433
272
|
break;
|
|
434
273
|
}
|
|
435
274
|
console.info('Xmr::start: XMR disabled');
|
|
@@ -437,46 +276,46 @@ var Xmr = /*#__PURE__*/function () {
|
|
|
437
276
|
if (this.isActive()) {
|
|
438
277
|
stop();
|
|
439
278
|
}
|
|
440
|
-
return _context2.
|
|
441
|
-
case
|
|
279
|
+
return _context2.a(2);
|
|
280
|
+
case 2:
|
|
442
281
|
this.isConnectionWanted = true;
|
|
443
282
|
// Are we already connected?
|
|
444
283
|
if (!(this.isActive() && this.url === url)) {
|
|
445
|
-
_context2.
|
|
284
|
+
_context2.n = 3;
|
|
446
285
|
break;
|
|
447
286
|
}
|
|
448
287
|
console.debug('Xmr::start: already connected to this URL');
|
|
449
288
|
this.cmsKey = cmsKey;
|
|
450
|
-
return _context2.
|
|
451
|
-
case
|
|
289
|
+
return _context2.a(2);
|
|
290
|
+
case 3:
|
|
452
291
|
if (!this.isConnected) {
|
|
453
|
-
_context2.
|
|
292
|
+
_context2.n = 5;
|
|
454
293
|
break;
|
|
455
294
|
}
|
|
456
295
|
console.debug('Xmr::start: already connected but not active, or a different URL');
|
|
457
|
-
_context2.
|
|
296
|
+
_context2.n = 4;
|
|
458
297
|
return this.stop();
|
|
459
|
-
case
|
|
460
|
-
_context2.
|
|
298
|
+
case 4:
|
|
299
|
+
_context2.n = 6;
|
|
461
300
|
break;
|
|
462
|
-
case
|
|
301
|
+
case 5:
|
|
463
302
|
console.debug('Xmr::start: not connected yet');
|
|
464
|
-
case
|
|
303
|
+
case 6:
|
|
465
304
|
// Set the URL and cmsKey.
|
|
466
305
|
this.url = url;
|
|
467
306
|
this.cmsKey = cmsKey;
|
|
468
307
|
console.debug('Xmr::start: connecting to ' + this.url);
|
|
469
|
-
_context2.
|
|
308
|
+
_context2.p = 7;
|
|
470
309
|
this.socket = new WebSocket(this.url);
|
|
471
|
-
_context2.
|
|
310
|
+
_context2.n = 9;
|
|
472
311
|
break;
|
|
473
|
-
case
|
|
474
|
-
_context2.
|
|
475
|
-
|
|
476
|
-
console.debug('Xmr::start: failed connecting to ' + this.url + ', e = ' +
|
|
312
|
+
case 8:
|
|
313
|
+
_context2.p = 8;
|
|
314
|
+
_t = _context2.v;
|
|
315
|
+
console.debug('Xmr::start: failed connecting to ' + this.url + ', e = ' + _t);
|
|
477
316
|
this.emitter.emit('error', 'Failed to connect');
|
|
478
|
-
return _context2.
|
|
479
|
-
case
|
|
317
|
+
return _context2.a(2);
|
|
318
|
+
case 9:
|
|
480
319
|
/**
|
|
481
320
|
* Listener for socket open
|
|
482
321
|
*/
|
|
@@ -539,16 +378,17 @@ var Xmr = /*#__PURE__*/function () {
|
|
|
539
378
|
} else if (message.action == 'commandAction' && message.commandCode.startsWith('showStatusWindow')) {
|
|
540
379
|
var split = message.commandCode.split('|');
|
|
541
380
|
_this2.emitter.emit('showStatusWindow', parseInt(split[1]) || 60);
|
|
381
|
+
} else if (message.action == 'commandAction' && message.commandCode.startsWith('forceUpdateChromeOS')) {
|
|
382
|
+
_this2.emitter.emit('forceUpdateChromeOS');
|
|
542
383
|
} else {
|
|
543
384
|
console.error('Xmr::message: unknown action: ' + message.action);
|
|
544
385
|
}
|
|
545
386
|
}
|
|
546
387
|
});
|
|
547
|
-
case
|
|
548
|
-
|
|
549
|
-
return _context2.stop();
|
|
388
|
+
case 10:
|
|
389
|
+
return _context2.a(2);
|
|
550
390
|
}
|
|
551
|
-
}, _callee2, this, [[
|
|
391
|
+
}, _callee2, this, [[7, 8]]);
|
|
552
392
|
}));
|
|
553
393
|
function start(_x, _x2) {
|
|
554
394
|
return _start.apply(this, arguments);
|
|
@@ -558,9 +398,9 @@ var Xmr = /*#__PURE__*/function () {
|
|
|
558
398
|
}, {
|
|
559
399
|
key: "stop",
|
|
560
400
|
value: function () {
|
|
561
|
-
var _stop = _asyncToGenerator(/*#__PURE__*/
|
|
562
|
-
return
|
|
563
|
-
while (1) switch (_context3.
|
|
401
|
+
var _stop = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
402
|
+
return _regenerator().w(function (_context3) {
|
|
403
|
+
while (1) switch (_context3.n) {
|
|
564
404
|
case 0:
|
|
565
405
|
console.debug('Xmr::stop');
|
|
566
406
|
if (this.socket) {
|
|
@@ -568,9 +408,8 @@ var Xmr = /*#__PURE__*/function () {
|
|
|
568
408
|
this.socket.close();
|
|
569
409
|
this.isConnected = false;
|
|
570
410
|
}
|
|
571
|
-
case
|
|
572
|
-
|
|
573
|
-
return _context3.stop();
|
|
411
|
+
case 1:
|
|
412
|
+
return _context3.a(2);
|
|
574
413
|
}
|
|
575
414
|
}, _callee3, this);
|
|
576
415
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xibo-communication-framework.cjs.js","sources":["../node_modules/nanoevents/index.js","../../src/modules/xmr/xmr.ts"],"sourcesContent":["export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","/*\n * Copyright (C) 2025 Xibo Signage Ltd\n *\n * Xibo - Digital Signage - https://www.xibosignage.com\n *\n * This file is part of Xibo.\n *\n * Xibo is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * any later version.\n *\n * Xibo is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with Xibo. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {createNanoEvents, type Emitter} from 'nanoevents';\nimport {DateTime} from 'luxon';\n\nexport interface XmrEvents {\n connected: () => void;\n disconnected: () => void;\n error: (e: string) => void;\n statusChange: (status: string) => void;\n\n collectNow: () => void;\n screenShot: () => void;\n licenceCheck: () => void;\n showStatusWindow: (timeout: number) => void;\n}\n\nexport default class Xmr {\n emitter: Emitter<XmrEvents>;\n\n url: string | null;\n cmsKey: string | null;\n channel: string;\n socket!: WebSocket;\n\n // State\n isConnectionWanted: boolean;\n isConnected: boolean;\n lastMessageAt: DateTime;\n\n interval: NodeJS.Timeout | undefined;\n\n constructor (channel: string) {\n // Emitter\n this.emitter = createNanoEvents<XmrEvents>();\n this.url = null;\n this.cmsKey = null;\n this.channel = channel;\n this.isConnected = false;\n this.isConnectionWanted = false;\n this.lastMessageAt = DateTime.now().minus({year: 1});\n }\n\n on<E extends keyof XmrEvents>(event: E, callback: XmrEvents[E]) {\n return this.emitter.on(event, callback);\n }\n\n async init() {\n this.interval = setInterval(() => {\n if (this.isConnectionWanted && !this.isActive()) {\n console.debug('Xmr::setInterval: should be active');\n\n // Call start again\n this.start(this.url || 'DISABLED', this.cmsKey || 'n/a');\n }\n }, 60000);\n }\n\n async start(url: string, cmsKey: string){\n if (!this.channel || this.channel === 'unknown') {\n console.error('Xmr::start: channel unknown, XMR will be disabled');\n return;\n }\n\n // Disable XMR if we've been told to.\n if (this.url === 'DISABLED') {\n console.info('Xmr::start: XMR disabled');\n this.isConnectionWanted = false;\n if (this.isActive()) {\n stop();\n }\n return;\n }\n\n this.isConnectionWanted = true;\n\n // Are we already connected?\n if (this.isActive() && this.url === url) {\n console.debug('Xmr::start: already connected to this URL');\n this.cmsKey = cmsKey;\n return;\n } else if (this.isConnected) {\n console.debug('Xmr::start: already connected but not active, or a different URL');\n await this.stop();\n } else {\n console.debug('Xmr::start: not connected yet');\n }\n\n // Set the URL and cmsKey.\n this.url = url;\n this.cmsKey = cmsKey;\n\n console.debug('Xmr::start: connecting to ' + this.url);\n\n try {\n this.socket = new WebSocket(this.url);\n } catch (e) {\n console.debug('Xmr::start: failed connecting to ' + this.url + ', e = ' + e);\n this.emitter.emit('error', 'Failed to connect');\n return;\n }\n\n /**\n * Listener for socket open\n */\n this.socket.addEventListener('open', (event) => {\n console.debug('Xmr::' + event.type);\n\n if (this.socket.readyState !== WebSocket.OPEN) {\n console.info('Xmr::' + event.type + ': not open yet');\n return;\n }\n\n // Create and send an initialisation message.\n this.socket.send(JSON.stringify({\n 'type': 'init',\n 'key': this.cmsKey,\n 'channel': this.channel,\n }));\n\n this.isConnected = true;\n\n this.emitter.emit('connected');\n });\n\n /**\n * Listener for socket close\n */\n this.socket.addEventListener('close', (event) => {\n console.debug('Xmr::' + event.type);\n\n this.isConnected = false;\n\n this.emitter.emit('disconnected');\n });\n\n /**\n * Listener for socket error\n */\n this.socket.addEventListener('error', (event) => {\n console.debug('Xmr::' + event.type);\n\n this.emitter.emit('error', 'error');\n });\n\n /**\n * Listener for socket message\n */\n this.socket.addEventListener('message', (event) => {\n console.debug(event);\n\n this.lastMessageAt = DateTime.now();\n this.emitter.emit('statusChange', this.lastMessageAt.toISO() || '');\n\n // Expect a JSON message or a H\n if (event.data === 'H') {\n console.debug('Xmr::message: Heartbeat...');\n } else {\n // JSON message.\n const message = JSON.parse(event.data);\n\n console.debug('Xmr::message: action is ' + message.action);\n\n // Check the createdDt and TTL against the current date time.\n const expiresAt = DateTime.fromISO(message.createdDt).plus({seconds: parseInt(message.ttl)});\n if (expiresAt < DateTime.now()) {\n console.debug('Xmr::message: message expired at ' + expiresAt.toString());\n } else if (message.action === 'collectNow') {\n this.emitter.emit('collectNow');\n } else if (message.action === 'screenShot') {\n this.emitter.emit('screenShot');\n } else if (message.action === 'licenceCheck') {\n this.emitter.emit('licenceCheck');\n } else if (message.action == 'commandAction' && message.commandCode.startsWith('showStatusWindow')) {\n const split = message.commandCode.split('|');\n this.emitter.emit('showStatusWindow', parseInt(split[1]) || 60);\n } else {\n console.error('Xmr::message: unknown action: ' + message.action);\n }\n }\n });\n }\n\n async stop() {\n console.debug('Xmr::stop');\n if (this.socket) {\n console.debug('Xmr::stop: closing active socket');\n this.socket.close();\n this.isConnected = false;\n }\n }\n\n isActive(): boolean {\n console.debug('Xmr::isActive: lastMessageAt: ' + this.lastMessageAt.toString());\n return this.isConnected && this.lastMessageAt > DateTime.now().minus({minute: 15});\n }\n}\n"],"names":["createNanoEvents","emit","event","_len","arguments","length","args","Array","_key","callbacks","events","i","apply","on","cb","_this$events","_this","push","_this$events$event","filter","Xmr","channel","_classCallCheck","_defineProperty","emitter","url","cmsKey","isConnected","isConnectionWanted","lastMessageAt","DateTime","now","minus","year","_createClass","key","value","callback","_init","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","interval","setInterval","isActive","console","debug","start","stop","init","_start","_callee2","_this2","_callee2$","_context2","error","abrupt","info","socket","WebSocket","t0","addEventListener","type","readyState","OPEN","send","JSON","stringify","toISO","data","message","parse","action","expiresAt","fromISO","createdDt","plus","seconds","parseInt","ttl","toString","commandCode","startsWith","split","_x","_x2","_stop","_callee3","_callee3$","_context3","close","minute"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAIA,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAA;EAAA,OAAU;AACnCC,IAAAA,IAAI,EAAJA,SAAAA,IAAIA,CAACC,KAAK,EAAW;MAAA,KAAAC,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAJF,QAAAA,IAAI,CAAAE,IAAA,GAAAJ,CAAAA,CAAAA,GAAAA,SAAA,CAAAI,IAAA,CAAA;AAAA;AACjB,MAAA,KACE,IAAIC,SAAS,GAAG,IAAI,CAACC,MAAM,CAACR,KAAK,CAAC,IAAI,EAAE,EACtCS,CAAC,GAAG,CAAC,EACLN,MAAM,GAAGI,SAAS,CAACJ,MAAM,EAC3BM,CAAC,GAAGN,MAAM,EACVM,CAAC,EAAE,EACH;QACAF,SAAS,CAACE,CAAC,CAAC,CAAAC,KAAA,CAAZH,SAAS,EAAOH,IAAI,CAAC;AACvB;KACD;IACDI,MAAM,EAAE,EAAE;AACVG,IAAAA,EAAE,WAAFA,EAAEA,CAACX,KAAK,EAAEY,EAAE,EAAE;AAAA,MAAA,IAAAC,YAAA;QAAAC,KAAA,GAAA,IAAA;AACX,MAAA,CAAC,CAAAD,YAAA,GAAA,IAAI,CAACL,MAAM,EAACR,KAAK,CAAC,KAAlBa,YAAA,CAAYb,KAAK,CAAC,GAAK,EAAE,GAAEe,IAAI,CAACH,EAAE,CAAC;AACrC,MAAA,OAAO,YAAM;AAAA,QAAA,IAAAI,kBAAA;QACXF,KAAI,CAACN,MAAM,CAACR,KAAK,CAAC,GAAAgB,CAAAA,kBAAA,GAAGF,KAAI,CAACN,MAAM,CAACR,KAAK,CAAC,cAAAgB,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAA,CAAoBC,MAAM,CAAC,UAAAR,CAAC,EAAA;UAAA,OAAIG,EAAE,KAAKH,CAAC;SAAC,CAAA;OAC/D;AACH;GACD;AAAA,CAAC;;ACE6B,IAcVS,GAAG,gBAAA,YAAA;EAepB,SAAAA,GAAAA,CAAaC,OAAe,EAAA;AAAAC,IAAAA,eAAA,OAAAF,GAAA,CAAA;IAAAG,eAAA,CAAA,IAAA,EAAA,SAAA,EAAA,MAAA,CAAA;IAAAA,eAAA,CAAA,IAAA,EAAA,KAAA,EAAA,MAAA,CAAA;IAAAA,eAAA,CAAA,IAAA,EAAA,QAAA,EAAA,MAAA,CAAA;IAAAA,eAAA,CAAA,IAAA,EAAA,SAAA,EAAA,MAAA,CAAA;IAAAA,eAAA,CAAA,IAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAP5B;IAAAA,eAAA,CAAA,IAAA,EAAA,oBAAA,EAAA,MAAA,CAAA;IAAAA,eAAA,CAAA,IAAA,EAAA,aAAA,EAAA,MAAA,CAAA;IAAAA,eAAA,CAAA,IAAA,EAAA,eAAA,EAAA,MAAA,CAAA;IAAAA,eAAA,CAAA,IAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAQI;AACA,IAAA,IAAI,CAACC,OAAO,GAAGxB,gBAAgB,EAAa;IAC5C,IAAI,CAACyB,GAAG,GAAG,IAAI;IACf,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB,IAAI,CAACL,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACM,WAAW,GAAG,KAAK;IACxB,IAAI,CAACC,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACC,aAAa,GAAGC,cAAQ,CAACC,GAAG,EAAE,CAACC,KAAK,CAAC;AAACC,MAAAA,IAAI,EAAE;AAAC,KAAC,CAAC;AACxD;EAAC,OAAAC,YAAA,CAAAd,GAAA,EAAA,CAAA;IAAAe,GAAA,EAAA,IAAA;AAAAC,IAAAA,KAAA,EAED,SAAAvB,EAAEA,CAA4BX,KAAQ,EAAEmC,QAAsB,EAAA;MAC1D,OAAO,IAAI,CAACb,OAAO,CAACX,EAAE,CAACX,KAAK,EAAEmC,QAAQ,CAAC;AAC3C;AAAC,GAAA,EAAA;IAAAF,GAAA,EAAA,MAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAE,KAAA,GAAAC,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAED,SAAAC,OAAA,GAAA;AAAA,QAAA,IAAA1B,KAAA,GAAA,IAAA;AAAA,QAAA,OAAAwB,mBAAA,EAAA,CAAAG,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AACI,cAAA,IAAI,CAACC,QAAQ,GAAGC,WAAW,CAAC,YAAK;gBAC7B,IAAIjC,KAAI,CAACY,kBAAkB,IAAI,CAACZ,KAAI,CAACkC,QAAQ,EAAE,EAAE;AAC7CC,kBAAAA,OAAO,CAACC,KAAK,CAAC,oCAAoC,CAAC;AAEnD;AACApC,kBAAAA,KAAI,CAACqC,KAAK,CAACrC,KAAI,CAACS,GAAG,IAAI,UAAU,EAAET,KAAI,CAACU,MAAM,IAAI,KAAK,CAAC;AAC5D;eACH,EAAE,KAAK,CAAC;AAAC,YAAA,KAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAmB,QAAA,CAAAS,IAAA,EAAA;AAAA;AAAA,SAAA,EAAAZ,OAAA,EAAA,IAAA,CAAA;OACb,CAAA,CAAA;AAAA,MAAA,SATKa,IAAIA,GAAA;AAAA,QAAA,OAAAjB,KAAA,CAAA1B,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA;AAAA;AAAA,MAAA,OAAJmD,IAAI;AAAA,KAAA;AAAA,GAAA,EAAA;IAAApB,GAAA,EAAA,OAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAAoB,MAAA,GAAAjB,iBAAA,cAAAC,mBAAA,EAAA,CAAAC,IAAA,CAWV,SAAAgB,QAAAA,CAAYhC,GAAW,EAAEC,MAAc,EAAA;AAAA,QAAA,IAAAgC,MAAA,GAAA,IAAA;AAAA,QAAA,OAAAlB,mBAAA,EAAA,CAAAG,IAAA,CAAA,SAAAgB,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAd,IAAA,GAAAc,SAAA,CAAAb,IAAA;AAAA,YAAA,KAAA,CAAA;cAAA,IAC/B,EAAA,CAAC,IAAI,CAAC1B,OAAO,IAAI,IAAI,CAACA,OAAO,KAAK,SAAS,CAAA,EAAA;AAAAuC,gBAAAA,SAAA,CAAAb,IAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;AAC3CI,cAAAA,OAAO,CAACU,KAAK,CAAC,mDAAmD,CAAC;cAAC,OAAAD,SAAA,CAAAE,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EAKnE,IAAI,CAACrC,GAAG,KAAK,UAAU,CAAA,EAAA;AAAAmC,gBAAAA,SAAA,CAAAb,IAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;AACvBI,cAAAA,OAAO,CAACY,IAAI,CAAC,0BAA0B,CAAC;cACxC,IAAI,CAACnC,kBAAkB,GAAG,KAAK;AAC/B,cAAA,IAAI,IAAI,CAACsB,QAAQ,EAAE,EAAE;AACjBI,gBAAAA,IAAI,EAAE;AACV;cAAC,OAAAM,SAAA,CAAAE,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAIL,IAAI,CAAClC,kBAAkB,GAAG,IAAI;AAE9B;cAAA,IACI,EAAA,IAAI,CAACsB,QAAQ,EAAE,IAAI,IAAI,CAACzB,GAAG,KAAKA,GAAG,CAAA,EAAA;AAAAmC,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA;AACnCI,cAAAA,OAAO,CAACC,KAAK,CAAC,2CAA2C,CAAC;cAC1D,IAAI,CAAC1B,MAAM,GAAGA,MAAM;cAAC,OAAAkC,SAAA,CAAAE,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,EAAA;cAAA,IAEd,CAAA,IAAI,CAACnC,WAAW,EAAA;AAAAiC,gBAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA;AACvBI,cAAAA,OAAO,CAACC,KAAK,CAAC,kEAAkE,CAAC;AAACQ,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA;AAAA,cAAA,OAC5E,IAAI,CAACO,IAAI,EAAE;AAAA,YAAA,KAAA,EAAA;AAAAM,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA,KAAA,EAAA;AAEjBI,cAAAA,OAAO,CAACC,KAAK,CAAC,+BAA+B,CAAC;AAAC,YAAA,KAAA,EAAA;AAGnD;cACA,IAAI,CAAC3B,GAAG,GAAGA,GAAG;cACd,IAAI,CAACC,MAAM,GAAGA,MAAM;cAEpByB,OAAO,CAACC,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC3B,GAAG,CAAC;AAACmC,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA;cAGnD,IAAI,CAACkB,MAAM,GAAG,IAAIC,SAAS,CAAC,IAAI,CAACxC,GAAG,CAAC;AAACmC,cAAAA,SAAA,CAAAb,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA,KAAA,EAAA;AAAAa,cAAAA,SAAA,CAAAd,IAAA,GAAA,EAAA;cAAAc,SAAA,CAAAM,EAAA,GAAAN,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA;AAEtCT,cAAAA,OAAO,CAACC,KAAK,CAAC,mCAAmC,GAAG,IAAI,CAAC3B,GAAG,GAAG,QAAQ,GAAAmC,SAAA,CAAAM,EAAI,CAAC;cAC5E,IAAI,CAAC1C,OAAO,CAACvB,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC;cAAC,OAAA2D,SAAA,CAAAE,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,EAAA;AAIpD;;AAEG;cACH,IAAI,CAACE,MAAM,CAACG,gBAAgB,CAAC,MAAM,EAAE,UAACjE,KAAK,EAAI;gBAC3CiD,OAAO,CAACC,KAAK,CAAC,OAAO,GAAGlD,KAAK,CAACkE,IAAI,CAAC;gBAEnC,IAAIV,MAAI,CAACM,MAAM,CAACK,UAAU,KAAKJ,SAAS,CAACK,IAAI,EAAE;kBAC3CnB,OAAO,CAACY,IAAI,CAAC,OAAO,GAAG7D,KAAK,CAACkE,IAAI,GAAG,gBAAgB,CAAC;AACrD,kBAAA;AACJ;AAEA;gBACAV,MAAI,CAACM,MAAM,CAACO,IAAI,CAACC,IAAI,CAACC,SAAS,CAAC;AAC5B,kBAAA,MAAM,EAAE,MAAM;kBACd,KAAK,EAAEf,MAAI,CAAChC,MAAM;kBAClB,SAAS,EAAEgC,MAAI,CAACrC;AACnB,iBAAA,CAAC,CAAC;gBAEHqC,MAAI,CAAC/B,WAAW,GAAG,IAAI;AAEvB+B,gBAAAA,MAAI,CAAClC,OAAO,CAACvB,IAAI,CAAC,WAAW,CAAC;AAClC,eAAC,CAAC;AAEF;;AAEG;cACH,IAAI,CAAC+D,MAAM,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAACjE,KAAK,EAAI;gBAC5CiD,OAAO,CAACC,KAAK,CAAC,OAAO,GAAGlD,KAAK,CAACkE,IAAI,CAAC;gBAEnCV,MAAI,CAAC/B,WAAW,GAAG,KAAK;AAExB+B,gBAAAA,MAAI,CAAClC,OAAO,CAACvB,IAAI,CAAC,cAAc,CAAC;AACrC,eAAC,CAAC;AAEF;;AAEG;cACH,IAAI,CAAC+D,MAAM,CAACG,gBAAgB,CAAC,OAAO,EAAE,UAACjE,KAAK,EAAI;gBAC5CiD,OAAO,CAACC,KAAK,CAAC,OAAO,GAAGlD,KAAK,CAACkE,IAAI,CAAC;gBAEnCV,MAAI,CAAClC,OAAO,CAACvB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACvC,eAAC,CAAC;AAEF;;AAEG;cACH,IAAI,CAAC+D,MAAM,CAACG,gBAAgB,CAAC,SAAS,EAAE,UAACjE,KAAK,EAAI;AAC9CiD,gBAAAA,OAAO,CAACC,KAAK,CAAClD,KAAK,CAAC;AAEpBwD,gBAAAA,MAAI,CAAC7B,aAAa,GAAGC,cAAQ,CAACC,GAAG,EAAE;AACnC2B,gBAAAA,MAAI,CAAClC,OAAO,CAACvB,IAAI,CAAC,cAAc,EAAEyD,MAAI,CAAC7B,aAAa,CAAC6C,KAAK,EAAE,IAAI,EAAE,CAAC;AAEnE;AACA,gBAAA,IAAIxE,KAAK,CAACyE,IAAI,KAAK,GAAG,EAAE;AACpBxB,kBAAAA,OAAO,CAACC,KAAK,CAAC,4BAA4B,CAAC;AAC/C,iBAAC,MAAM;AACH;kBACA,IAAMwB,OAAO,GAAGJ,IAAI,CAACK,KAAK,CAAC3E,KAAK,CAACyE,IAAI,CAAC;kBAEtCxB,OAAO,CAACC,KAAK,CAAC,0BAA0B,GAAGwB,OAAO,CAACE,MAAM,CAAC;AAE1D;AACA,kBAAA,IAAMC,SAAS,GAAGjD,cAAQ,CAACkD,OAAO,CAACJ,OAAO,CAACK,SAAS,CAAC,CAACC,IAAI,CAAC;AAACC,oBAAAA,OAAO,EAAEC,QAAQ,CAACR,OAAO,CAACS,GAAG;AAAE,mBAAA,CAAC;AAC5F,kBAAA,IAAIN,SAAS,GAAGjD,cAAQ,CAACC,GAAG,EAAE,EAAE;oBAC5BoB,OAAO,CAACC,KAAK,CAAC,mCAAmC,GAAG2B,SAAS,CAACO,QAAQ,EAAE,CAAC;AAC7E,mBAAC,MAAM,IAAIV,OAAO,CAACE,MAAM,KAAK,YAAY,EAAE;AACxCpB,oBAAAA,MAAI,CAAClC,OAAO,CAACvB,IAAI,CAAC,YAAY,CAAC;AACnC,mBAAC,MAAM,IAAI2E,OAAO,CAACE,MAAM,KAAK,YAAY,EAAE;AACxCpB,oBAAAA,MAAI,CAAClC,OAAO,CAACvB,IAAI,CAAC,YAAY,CAAC;AACnC,mBAAC,MAAM,IAAI2E,OAAO,CAACE,MAAM,KAAK,cAAc,EAAE;AAC1CpB,oBAAAA,MAAI,CAAClC,OAAO,CAACvB,IAAI,CAAC,cAAc,CAAC;AACrC,mBAAC,MAAM,IAAI2E,OAAO,CAACE,MAAM,IAAI,eAAe,IAAIF,OAAO,CAACW,WAAW,CAACC,UAAU,CAAC,kBAAkB,CAAC,EAAE;oBAChG,IAAMC,KAAK,GAAGb,OAAO,CAACW,WAAW,CAACE,KAAK,CAAC,GAAG,CAAC;AAC5C/B,oBAAAA,MAAI,CAAClC,OAAO,CAACvB,IAAI,CAAC,kBAAkB,EAAEmF,QAAQ,CAACK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnE,mBAAC,MAAM;oBACHtC,OAAO,CAACU,KAAK,CAAC,gCAAgC,GAAGe,OAAO,CAACE,MAAM,CAAC;AACpE;AACJ;AACJ,eAAC,CAAC;AAAC,YAAA,KAAA,EAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAlB,SAAA,CAAAN,IAAA,EAAA;AAAA;AAAA,SAAA,EAAAG,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;OACN,CAAA,CAAA;AAAA,MAAA,SA3HKJ,KAAKA,CAAAqC,EAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAnC,MAAA,CAAA5C,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA;AAAA;AAAA,MAAA,OAALiD,KAAK;AAAA,KAAA;AAAA,GAAA,EAAA;IAAAlB,GAAA,EAAA,MAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAwD,KAAA,GAAArD,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CA6HX,SAAAoD,QAAA,GAAA;AAAA,QAAA,OAAArD,mBAAA,EAAA,CAAAG,IAAA,CAAA,SAAAmD,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAhD,IAAA;AAAA,YAAA,KAAA,CAAA;AACII,cAAAA,OAAO,CAACC,KAAK,CAAC,WAAW,CAAC;cAC1B,IAAI,IAAI,CAACY,MAAM,EAAE;AACbb,gBAAAA,OAAO,CAACC,KAAK,CAAC,kCAAkC,CAAC;AACjD,gBAAA,IAAI,CAACY,MAAM,CAACgC,KAAK,EAAE;gBACnB,IAAI,CAACrE,WAAW,GAAG,KAAK;AAC5B;AAAC,YAAA,KAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAoE,SAAA,CAAAzC,IAAA,EAAA;AAAA;AAAA,SAAA,EAAAuC,QAAA,EAAA,IAAA,CAAA;OACJ,CAAA,CAAA;AAAA,MAAA,SAPKvC,IAAIA,GAAA;AAAA,QAAA,OAAAsC,KAAA,CAAAhF,KAAA,CAAA,IAAA,EAAAR,SAAA,CAAA;AAAA;AAAA,MAAA,OAAJkD,IAAI;AAAA,KAAA;AAAA,GAAA,EAAA;IAAAnB,GAAA,EAAA,UAAA;AAAAC,IAAAA,KAAA,EASV,SAAAc,QAAQA,GAAA;AACJC,MAAAA,OAAO,CAACC,KAAK,CAAC,gCAAgC,GAAG,IAAI,CAACvB,aAAa,CAACyD,QAAQ,EAAE,CAAC;AAC/E,MAAA,OAAO,IAAI,CAAC3D,WAAW,IAAI,IAAI,CAACE,aAAa,GAAGC,cAAQ,CAACC,GAAG,EAAE,CAACC,KAAK,CAAC;AAACiE,QAAAA,MAAM,EAAE;AAAG,OAAA,CAAC;AACtF;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA;;;;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"xibo-communication-framework.cjs.js","sources":["../node_modules/nanoevents/index.js","../../src/modules/xmr/xmr.ts"],"sourcesContent":["export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","/*\n * Copyright (C) 2025 Xibo Signage Ltd\n *\n * Xibo - Digital Signage - https://xibosignage.com\n *\n * This file is part of Xibo.\n *\n * Xibo is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * any later version.\n *\n * Xibo is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Xibo. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {createNanoEvents, type Emitter} from 'nanoevents';\nimport {DateTime} from 'luxon';\n\nexport interface XmrEvents {\n connected: () => void;\n disconnected: () => void;\n error: (e: string) => void;\n statusChange: (status: string) => void;\n\n collectNow: () => void;\n screenShot: () => void;\n licenceCheck: () => void;\n showStatusWindow: (timeout: number) => void;\n forceUpdateChromeOS: () => void;\n}\n\nexport default class Xmr {\n emitter: Emitter<XmrEvents>;\n\n url: string | null;\n cmsKey: string | null;\n channel: string;\n socket!: WebSocket;\n\n // State\n isConnectionWanted: boolean;\n isConnected: boolean;\n lastMessageAt: DateTime;\n\n interval: NodeJS.Timeout | undefined;\n\n constructor (channel: string) {\n // Emitter\n this.emitter = createNanoEvents<XmrEvents>();\n this.url = null;\n this.cmsKey = null;\n this.channel = channel;\n this.isConnected = false;\n this.isConnectionWanted = false;\n this.lastMessageAt = DateTime.now().minus({year: 1});\n }\n\n on<E extends keyof XmrEvents>(event: E, callback: XmrEvents[E]) {\n return this.emitter.on(event, callback);\n }\n\n async init() {\n this.interval = setInterval(() => {\n if (this.isConnectionWanted && !this.isActive()) {\n console.debug('Xmr::setInterval: should be active');\n\n // Call start again\n this.start(this.url || 'DISABLED', this.cmsKey || 'n/a');\n }\n }, 60000);\n }\n\n async start(url: string, cmsKey: string){\n if (!this.channel || this.channel === 'unknown') {\n console.error('Xmr::start: channel unknown, XMR will be disabled');\n return;\n }\n\n // Disable XMR if we've been told to.\n if (this.url === 'DISABLED') {\n console.info('Xmr::start: XMR disabled');\n this.isConnectionWanted = false;\n if (this.isActive()) {\n stop();\n }\n return;\n }\n\n this.isConnectionWanted = true;\n\n // Are we already connected?\n if (this.isActive() && this.url === url) {\n console.debug('Xmr::start: already connected to this URL');\n this.cmsKey = cmsKey;\n return;\n } else if (this.isConnected) {\n console.debug('Xmr::start: already connected but not active, or a different URL');\n await this.stop();\n } else {\n console.debug('Xmr::start: not connected yet');\n }\n\n // Set the URL and cmsKey.\n this.url = url;\n this.cmsKey = cmsKey;\n\n console.debug('Xmr::start: connecting to ' + this.url);\n\n try {\n this.socket = new WebSocket(this.url);\n } catch (e) {\n console.debug('Xmr::start: failed connecting to ' + this.url + ', e = ' + e);\n this.emitter.emit('error', 'Failed to connect');\n return;\n }\n\n /**\n * Listener for socket open\n */\n this.socket.addEventListener('open', (event) => {\n console.debug('Xmr::' + event.type);\n\n if (this.socket.readyState !== WebSocket.OPEN) {\n console.info('Xmr::' + event.type + ': not open yet');\n return;\n }\n\n // Create and send an initialisation message.\n this.socket.send(JSON.stringify({\n 'type': 'init',\n 'key': this.cmsKey,\n 'channel': this.channel,\n }));\n\n this.isConnected = true;\n\n this.emitter.emit('connected');\n });\n\n /**\n * Listener for socket close\n */\n this.socket.addEventListener('close', (event) => {\n console.debug('Xmr::' + event.type);\n\n this.isConnected = false;\n\n this.emitter.emit('disconnected');\n });\n\n /**\n * Listener for socket error\n */\n this.socket.addEventListener('error', (event) => {\n console.debug('Xmr::' + event.type);\n\n this.emitter.emit('error', 'error');\n });\n\n /**\n * Listener for socket message\n */\n this.socket.addEventListener('message', (event) => {\n console.debug(event);\n\n this.lastMessageAt = DateTime.now();\n this.emitter.emit('statusChange', this.lastMessageAt.toISO() || '');\n\n // Expect a JSON message or a H\n if (event.data === 'H') {\n console.debug('Xmr::message: Heartbeat...');\n } else {\n // JSON message.\n const message = JSON.parse(event.data);\n\n console.debug('Xmr::message: action is ' + message.action);\n\n // Check the createdDt and TTL against the current date time.\n const expiresAt = DateTime.fromISO(message.createdDt).plus({seconds: parseInt(message.ttl)});\n if (expiresAt < DateTime.now()) {\n console.debug('Xmr::message: message expired at ' + expiresAt.toString());\n } else if (message.action === 'collectNow') {\n this.emitter.emit('collectNow');\n } else if (message.action === 'screenShot') {\n this.emitter.emit('screenShot');\n } else if (message.action === 'licenceCheck') {\n this.emitter.emit('licenceCheck');\n } else if (message.action == 'commandAction' && message.commandCode.startsWith('showStatusWindow')) {\n const split = message.commandCode.split('|');\n this.emitter.emit('showStatusWindow', parseInt(split[1]) || 60);\n } else if (message.action == 'commandAction' && message.commandCode.startsWith('forceUpdateChromeOS')) {\n this.emitter.emit('forceUpdateChromeOS');\n } else {\n console.error('Xmr::message: unknown action: ' + message.action);\n }\n }\n });\n }\n\n async stop() {\n console.debug('Xmr::stop');\n if (this.socket) {\n console.debug('Xmr::stop: closing active socket');\n this.socket.close();\n this.isConnected = false;\n }\n }\n\n isActive(): boolean {\n console.debug('Xmr::isActive: lastMessageAt: ' + this.lastMessageAt.toString());\n return this.isConnected && this.lastMessageAt > DateTime.now().minus({minute: 15});\n }\n}\n"],"names":["createNanoEvents","emit","event","_len","arguments","length","args","Array","_key","callbacks","events","i","apply","on","cb","_this$events","_this","push","_this$events$event","filter","Xmr","channel","_classCallCheck","_defineProperty","emitter","url","cmsKey","isConnected","isConnectionWanted","lastMessageAt","DateTime","now","minus","year","_createClass","key","value","callback","_init","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","interval","setInterval","isActive","console","debug","start","a","init","_start","_callee2","_this2","_t","_context2","p","error","info","stop","socket","WebSocket","v","addEventListener","type","readyState","OPEN","send","JSON","stringify","toISO","data","message","parse","action","expiresAt","fromISO","createdDt","plus","seconds","parseInt","ttl","toString","commandCode","startsWith","split","_x","_x2","_stop","_callee3","_context3","close","minute"],"mappings":"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","x_google_ignoreList":[0]}
|