@nsshunt/stssocketioutils 1.1.39 → 2.0.0
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/stssocketioutils.mjs +778 -90
- package/dist/stssocketioutils.mjs.map +1 -1
- package/dist/stssocketioutils.umd.js +774 -92
- package/dist/stssocketioutils.umd.js.map +1 -1
- package/package.json +5 -2
- package/types/commonTypes.d.ts +27 -21
- package/types/commonTypes.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/socketIoClient.d.ts +0 -1
- package/types/socketIoClient.d.ts.map +1 -1
- package/types/socketIoClientInstance.d.ts +15 -0
- package/types/socketIoClientInstance.d.ts.map +1 -0
- package/types/socketIoServer.d.ts +34 -10
- package/types/socketIoServer.d.ts.map +1 -1
- package/types/socketIoServerHelper.d.ts +22 -11
- package/types/socketIoServerHelper.d.ts.map +1 -1
- package/types/socketIoServerInstance.d.ts +12 -0
- package/types/socketIoServerInstance.d.ts.map +1 -0
- package/types/wsevents.d.ts +0 -4
- package/types/wsevents.d.ts.map +1 -1
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { io } from "socket.io-client";
|
|
2
|
+
import { Sleep } from "@nsshunt/stsutils";
|
|
3
|
+
import { Server } from "socket.io";
|
|
4
|
+
import { Redis } from "ioredis";
|
|
5
|
+
import require$$0 from "node:cluster";
|
|
6
|
+
import require$$1 from "socket.io-adapter";
|
|
7
|
+
import { createAdapter } from "@socket.io/redis-streams-adapter";
|
|
2
8
|
var STSNamespace = /* @__PURE__ */ ((STSNamespace2) => {
|
|
3
9
|
STSNamespace2["STSMonitor"] = "stsinstrumentmanager/stsmonitor";
|
|
4
10
|
STSNamespace2["STSControl"] = "stsinstrumentmanager/stscontrol";
|
|
@@ -113,15 +119,6 @@ class SocketIoClient {
|
|
|
113
119
|
throw new Error("SocketIoClient:emit(): Error: [socket instance not defined.]");
|
|
114
120
|
}
|
|
115
121
|
}
|
|
116
|
-
/*
|
|
117
|
-
SetupClientSideSocket(name: string, address: string, socketIoCustomPath: string): SocketIoClient<ServerToClientEvents, ClientToServerEvents> {
|
|
118
|
-
this.#name = name;
|
|
119
|
-
this.#address = address;
|
|
120
|
-
this.#socketIoCustomPath = socketIoCustomPath;
|
|
121
|
-
this.#EstablishSocketConnect(name, socketIoCustomPath);
|
|
122
|
-
return this;
|
|
123
|
-
}
|
|
124
|
-
*/
|
|
125
122
|
#EstablishSocketConnect() {
|
|
126
123
|
if (this.#socket !== void 0) {
|
|
127
124
|
if (this.#socket.connected === true) {
|
|
@@ -233,132 +230,823 @@ class SocketIoClient {
|
|
|
233
230
|
});
|
|
234
231
|
}
|
|
235
232
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
233
|
+
var dist = {};
|
|
234
|
+
var browser = { exports: {} };
|
|
235
|
+
var ms;
|
|
236
|
+
var hasRequiredMs;
|
|
237
|
+
function requireMs() {
|
|
238
|
+
if (hasRequiredMs) return ms;
|
|
239
|
+
hasRequiredMs = 1;
|
|
240
|
+
var s = 1e3;
|
|
241
|
+
var m = s * 60;
|
|
242
|
+
var h = m * 60;
|
|
243
|
+
var d = h * 24;
|
|
244
|
+
var w = d * 7;
|
|
245
|
+
var y = d * 365.25;
|
|
246
|
+
ms = function(val, options) {
|
|
247
|
+
options = options || {};
|
|
248
|
+
var type = typeof val;
|
|
249
|
+
if (type === "string" && val.length > 0) {
|
|
250
|
+
return parse(val);
|
|
251
|
+
} else if (type === "number" && isFinite(val)) {
|
|
252
|
+
return options.long ? fmtLong(val) : fmtShort(val);
|
|
253
|
+
}
|
|
254
|
+
throw new Error(
|
|
255
|
+
"val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
|
|
256
|
+
);
|
|
257
|
+
};
|
|
258
|
+
function parse(str) {
|
|
259
|
+
str = String(str);
|
|
260
|
+
if (str.length > 100) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
|
|
264
|
+
str
|
|
265
|
+
);
|
|
266
|
+
if (!match) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
var n = parseFloat(match[1]);
|
|
270
|
+
var type = (match[2] || "ms").toLowerCase();
|
|
271
|
+
switch (type) {
|
|
272
|
+
case "years":
|
|
273
|
+
case "year":
|
|
274
|
+
case "yrs":
|
|
275
|
+
case "yr":
|
|
276
|
+
case "y":
|
|
277
|
+
return n * y;
|
|
278
|
+
case "weeks":
|
|
279
|
+
case "week":
|
|
280
|
+
case "w":
|
|
281
|
+
return n * w;
|
|
282
|
+
case "days":
|
|
283
|
+
case "day":
|
|
284
|
+
case "d":
|
|
285
|
+
return n * d;
|
|
286
|
+
case "hours":
|
|
287
|
+
case "hour":
|
|
288
|
+
case "hrs":
|
|
289
|
+
case "hr":
|
|
290
|
+
case "h":
|
|
291
|
+
return n * h;
|
|
292
|
+
case "minutes":
|
|
293
|
+
case "minute":
|
|
294
|
+
case "mins":
|
|
295
|
+
case "min":
|
|
296
|
+
case "m":
|
|
297
|
+
return n * m;
|
|
298
|
+
case "seconds":
|
|
299
|
+
case "second":
|
|
300
|
+
case "secs":
|
|
301
|
+
case "sec":
|
|
302
|
+
case "s":
|
|
303
|
+
return n * s;
|
|
304
|
+
case "milliseconds":
|
|
305
|
+
case "millisecond":
|
|
306
|
+
case "msecs":
|
|
307
|
+
case "msec":
|
|
308
|
+
case "ms":
|
|
309
|
+
return n;
|
|
310
|
+
default:
|
|
311
|
+
return void 0;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
function fmtShort(ms2) {
|
|
315
|
+
var msAbs = Math.abs(ms2);
|
|
316
|
+
if (msAbs >= d) {
|
|
317
|
+
return Math.round(ms2 / d) + "d";
|
|
318
|
+
}
|
|
319
|
+
if (msAbs >= h) {
|
|
320
|
+
return Math.round(ms2 / h) + "h";
|
|
321
|
+
}
|
|
322
|
+
if (msAbs >= m) {
|
|
323
|
+
return Math.round(ms2 / m) + "m";
|
|
324
|
+
}
|
|
325
|
+
if (msAbs >= s) {
|
|
326
|
+
return Math.round(ms2 / s) + "s";
|
|
327
|
+
}
|
|
328
|
+
return ms2 + "ms";
|
|
329
|
+
}
|
|
330
|
+
function fmtLong(ms2) {
|
|
331
|
+
var msAbs = Math.abs(ms2);
|
|
332
|
+
if (msAbs >= d) {
|
|
333
|
+
return plural(ms2, msAbs, d, "day");
|
|
334
|
+
}
|
|
335
|
+
if (msAbs >= h) {
|
|
336
|
+
return plural(ms2, msAbs, h, "hour");
|
|
337
|
+
}
|
|
338
|
+
if (msAbs >= m) {
|
|
339
|
+
return plural(ms2, msAbs, m, "minute");
|
|
340
|
+
}
|
|
341
|
+
if (msAbs >= s) {
|
|
342
|
+
return plural(ms2, msAbs, s, "second");
|
|
343
|
+
}
|
|
344
|
+
return ms2 + " ms";
|
|
345
|
+
}
|
|
346
|
+
function plural(ms2, msAbs, n, name) {
|
|
347
|
+
var isPlural = msAbs >= n * 1.5;
|
|
348
|
+
return Math.round(ms2 / n) + " " + name + (isPlural ? "s" : "");
|
|
349
|
+
}
|
|
350
|
+
return ms;
|
|
351
|
+
}
|
|
352
|
+
var common;
|
|
353
|
+
var hasRequiredCommon;
|
|
354
|
+
function requireCommon() {
|
|
355
|
+
if (hasRequiredCommon) return common;
|
|
356
|
+
hasRequiredCommon = 1;
|
|
357
|
+
function setup(env) {
|
|
358
|
+
createDebug.debug = createDebug;
|
|
359
|
+
createDebug.default = createDebug;
|
|
360
|
+
createDebug.coerce = coerce;
|
|
361
|
+
createDebug.disable = disable;
|
|
362
|
+
createDebug.enable = enable;
|
|
363
|
+
createDebug.enabled = enabled;
|
|
364
|
+
createDebug.humanize = requireMs();
|
|
365
|
+
createDebug.destroy = destroy;
|
|
366
|
+
Object.keys(env).forEach((key) => {
|
|
367
|
+
createDebug[key] = env[key];
|
|
368
|
+
});
|
|
369
|
+
createDebug.names = [];
|
|
370
|
+
createDebug.skips = [];
|
|
371
|
+
createDebug.formatters = {};
|
|
372
|
+
function selectColor(namespace) {
|
|
373
|
+
let hash = 0;
|
|
374
|
+
for (let i = 0; i < namespace.length; i++) {
|
|
375
|
+
hash = (hash << 5) - hash + namespace.charCodeAt(i);
|
|
376
|
+
hash |= 0;
|
|
377
|
+
}
|
|
378
|
+
return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
|
|
379
|
+
}
|
|
380
|
+
createDebug.selectColor = selectColor;
|
|
381
|
+
function createDebug(namespace) {
|
|
382
|
+
let prevTime;
|
|
383
|
+
let enableOverride = null;
|
|
384
|
+
let namespacesCache;
|
|
385
|
+
let enabledCache;
|
|
386
|
+
function debug(...args) {
|
|
387
|
+
if (!debug.enabled) {
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
const self = debug;
|
|
391
|
+
const curr = Number(/* @__PURE__ */ new Date());
|
|
392
|
+
const ms2 = curr - (prevTime || curr);
|
|
393
|
+
self.diff = ms2;
|
|
394
|
+
self.prev = prevTime;
|
|
395
|
+
self.curr = curr;
|
|
396
|
+
prevTime = curr;
|
|
397
|
+
args[0] = createDebug.coerce(args[0]);
|
|
398
|
+
if (typeof args[0] !== "string") {
|
|
399
|
+
args.unshift("%O");
|
|
400
|
+
}
|
|
401
|
+
let index = 0;
|
|
402
|
+
args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
|
|
403
|
+
if (match === "%%") {
|
|
404
|
+
return "%";
|
|
405
|
+
}
|
|
406
|
+
index++;
|
|
407
|
+
const formatter = createDebug.formatters[format];
|
|
408
|
+
if (typeof formatter === "function") {
|
|
409
|
+
const val = args[index];
|
|
410
|
+
match = formatter.call(self, val);
|
|
411
|
+
args.splice(index, 1);
|
|
412
|
+
index--;
|
|
413
|
+
}
|
|
414
|
+
return match;
|
|
415
|
+
});
|
|
416
|
+
createDebug.formatArgs.call(self, args);
|
|
417
|
+
const logFn = self.log || createDebug.log;
|
|
418
|
+
logFn.apply(self, args);
|
|
419
|
+
}
|
|
420
|
+
debug.namespace = namespace;
|
|
421
|
+
debug.useColors = createDebug.useColors();
|
|
422
|
+
debug.color = createDebug.selectColor(namespace);
|
|
423
|
+
debug.extend = extend;
|
|
424
|
+
debug.destroy = createDebug.destroy;
|
|
425
|
+
Object.defineProperty(debug, "enabled", {
|
|
426
|
+
enumerable: true,
|
|
427
|
+
configurable: false,
|
|
428
|
+
get: () => {
|
|
429
|
+
if (enableOverride !== null) {
|
|
430
|
+
return enableOverride;
|
|
431
|
+
}
|
|
432
|
+
if (namespacesCache !== createDebug.namespaces) {
|
|
433
|
+
namespacesCache = createDebug.namespaces;
|
|
434
|
+
enabledCache = createDebug.enabled(namespace);
|
|
435
|
+
}
|
|
436
|
+
return enabledCache;
|
|
437
|
+
},
|
|
438
|
+
set: (v) => {
|
|
439
|
+
enableOverride = v;
|
|
440
|
+
}
|
|
441
|
+
});
|
|
442
|
+
if (typeof createDebug.init === "function") {
|
|
443
|
+
createDebug.init(debug);
|
|
444
|
+
}
|
|
445
|
+
return debug;
|
|
446
|
+
}
|
|
447
|
+
function extend(namespace, delimiter) {
|
|
448
|
+
const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
|
|
449
|
+
newDebug.log = this.log;
|
|
450
|
+
return newDebug;
|
|
451
|
+
}
|
|
452
|
+
function enable(namespaces) {
|
|
453
|
+
createDebug.save(namespaces);
|
|
454
|
+
createDebug.namespaces = namespaces;
|
|
455
|
+
createDebug.names = [];
|
|
456
|
+
createDebug.skips = [];
|
|
457
|
+
const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
|
|
458
|
+
for (const ns of split) {
|
|
459
|
+
if (ns[0] === "-") {
|
|
460
|
+
createDebug.skips.push(ns.slice(1));
|
|
461
|
+
} else {
|
|
462
|
+
createDebug.names.push(ns);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
function matchesTemplate(search, template) {
|
|
467
|
+
let searchIndex = 0;
|
|
468
|
+
let templateIndex = 0;
|
|
469
|
+
let starIndex = -1;
|
|
470
|
+
let matchIndex = 0;
|
|
471
|
+
while (searchIndex < search.length) {
|
|
472
|
+
if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
|
|
473
|
+
if (template[templateIndex] === "*") {
|
|
474
|
+
starIndex = templateIndex;
|
|
475
|
+
matchIndex = searchIndex;
|
|
476
|
+
templateIndex++;
|
|
477
|
+
} else {
|
|
478
|
+
searchIndex++;
|
|
479
|
+
templateIndex++;
|
|
480
|
+
}
|
|
481
|
+
} else if (starIndex !== -1) {
|
|
482
|
+
templateIndex = starIndex + 1;
|
|
483
|
+
matchIndex++;
|
|
484
|
+
searchIndex = matchIndex;
|
|
485
|
+
} else {
|
|
486
|
+
return false;
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
while (templateIndex < template.length && template[templateIndex] === "*") {
|
|
490
|
+
templateIndex++;
|
|
491
|
+
}
|
|
492
|
+
return templateIndex === template.length;
|
|
493
|
+
}
|
|
494
|
+
function disable() {
|
|
495
|
+
const namespaces = [
|
|
496
|
+
...createDebug.names,
|
|
497
|
+
...createDebug.skips.map((namespace) => "-" + namespace)
|
|
498
|
+
].join(",");
|
|
499
|
+
createDebug.enable("");
|
|
500
|
+
return namespaces;
|
|
501
|
+
}
|
|
502
|
+
function enabled(name) {
|
|
503
|
+
for (const skip of createDebug.skips) {
|
|
504
|
+
if (matchesTemplate(name, skip)) {
|
|
505
|
+
return false;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
for (const ns of createDebug.names) {
|
|
509
|
+
if (matchesTemplate(name, ns)) {
|
|
510
|
+
return true;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
return false;
|
|
514
|
+
}
|
|
515
|
+
function coerce(val) {
|
|
516
|
+
if (val instanceof Error) {
|
|
517
|
+
return val.stack || val.message;
|
|
518
|
+
}
|
|
519
|
+
return val;
|
|
520
|
+
}
|
|
521
|
+
function destroy() {
|
|
522
|
+
console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
|
|
523
|
+
}
|
|
524
|
+
createDebug.enable(createDebug.load());
|
|
525
|
+
return createDebug;
|
|
526
|
+
}
|
|
527
|
+
common = setup;
|
|
528
|
+
return common;
|
|
529
|
+
}
|
|
530
|
+
var hasRequiredBrowser;
|
|
531
|
+
function requireBrowser() {
|
|
532
|
+
if (hasRequiredBrowser) return browser.exports;
|
|
533
|
+
hasRequiredBrowser = 1;
|
|
534
|
+
(function(module, exports) {
|
|
535
|
+
exports.formatArgs = formatArgs;
|
|
536
|
+
exports.save = save;
|
|
537
|
+
exports.load = load;
|
|
538
|
+
exports.useColors = useColors;
|
|
539
|
+
exports.storage = localstorage();
|
|
540
|
+
exports.destroy = /* @__PURE__ */ (() => {
|
|
541
|
+
let warned = false;
|
|
542
|
+
return () => {
|
|
543
|
+
if (!warned) {
|
|
544
|
+
warned = true;
|
|
545
|
+
console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
|
|
546
|
+
}
|
|
547
|
+
};
|
|
548
|
+
})();
|
|
549
|
+
exports.colors = [
|
|
550
|
+
"#0000CC",
|
|
551
|
+
"#0000FF",
|
|
552
|
+
"#0033CC",
|
|
553
|
+
"#0033FF",
|
|
554
|
+
"#0066CC",
|
|
555
|
+
"#0066FF",
|
|
556
|
+
"#0099CC",
|
|
557
|
+
"#0099FF",
|
|
558
|
+
"#00CC00",
|
|
559
|
+
"#00CC33",
|
|
560
|
+
"#00CC66",
|
|
561
|
+
"#00CC99",
|
|
562
|
+
"#00CCCC",
|
|
563
|
+
"#00CCFF",
|
|
564
|
+
"#3300CC",
|
|
565
|
+
"#3300FF",
|
|
566
|
+
"#3333CC",
|
|
567
|
+
"#3333FF",
|
|
568
|
+
"#3366CC",
|
|
569
|
+
"#3366FF",
|
|
570
|
+
"#3399CC",
|
|
571
|
+
"#3399FF",
|
|
572
|
+
"#33CC00",
|
|
573
|
+
"#33CC33",
|
|
574
|
+
"#33CC66",
|
|
575
|
+
"#33CC99",
|
|
576
|
+
"#33CCCC",
|
|
577
|
+
"#33CCFF",
|
|
578
|
+
"#6600CC",
|
|
579
|
+
"#6600FF",
|
|
580
|
+
"#6633CC",
|
|
581
|
+
"#6633FF",
|
|
582
|
+
"#66CC00",
|
|
583
|
+
"#66CC33",
|
|
584
|
+
"#9900CC",
|
|
585
|
+
"#9900FF",
|
|
586
|
+
"#9933CC",
|
|
587
|
+
"#9933FF",
|
|
588
|
+
"#99CC00",
|
|
589
|
+
"#99CC33",
|
|
590
|
+
"#CC0000",
|
|
591
|
+
"#CC0033",
|
|
592
|
+
"#CC0066",
|
|
593
|
+
"#CC0099",
|
|
594
|
+
"#CC00CC",
|
|
595
|
+
"#CC00FF",
|
|
596
|
+
"#CC3300",
|
|
597
|
+
"#CC3333",
|
|
598
|
+
"#CC3366",
|
|
599
|
+
"#CC3399",
|
|
600
|
+
"#CC33CC",
|
|
601
|
+
"#CC33FF",
|
|
602
|
+
"#CC6600",
|
|
603
|
+
"#CC6633",
|
|
604
|
+
"#CC9900",
|
|
605
|
+
"#CC9933",
|
|
606
|
+
"#CCCC00",
|
|
607
|
+
"#CCCC33",
|
|
608
|
+
"#FF0000",
|
|
609
|
+
"#FF0033",
|
|
610
|
+
"#FF0066",
|
|
611
|
+
"#FF0099",
|
|
612
|
+
"#FF00CC",
|
|
613
|
+
"#FF00FF",
|
|
614
|
+
"#FF3300",
|
|
615
|
+
"#FF3333",
|
|
616
|
+
"#FF3366",
|
|
617
|
+
"#FF3399",
|
|
618
|
+
"#FF33CC",
|
|
619
|
+
"#FF33FF",
|
|
620
|
+
"#FF6600",
|
|
621
|
+
"#FF6633",
|
|
622
|
+
"#FF9900",
|
|
623
|
+
"#FF9933",
|
|
624
|
+
"#FFCC00",
|
|
625
|
+
"#FFCC33"
|
|
626
|
+
];
|
|
627
|
+
function useColors() {
|
|
628
|
+
if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
|
|
629
|
+
return true;
|
|
630
|
+
}
|
|
631
|
+
if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
|
632
|
+
return false;
|
|
633
|
+
}
|
|
634
|
+
let m;
|
|
635
|
+
return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
|
|
636
|
+
typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
|
|
637
|
+
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
|
638
|
+
typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
|
|
639
|
+
typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
|
|
640
|
+
}
|
|
641
|
+
function formatArgs(args) {
|
|
642
|
+
args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
|
|
643
|
+
if (!this.useColors) {
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
const c = "color: " + this.color;
|
|
647
|
+
args.splice(1, 0, c, "color: inherit");
|
|
648
|
+
let index = 0;
|
|
649
|
+
let lastC = 0;
|
|
650
|
+
args[0].replace(/%[a-zA-Z%]/g, (match) => {
|
|
651
|
+
if (match === "%%") {
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
index++;
|
|
655
|
+
if (match === "%c") {
|
|
656
|
+
lastC = index;
|
|
657
|
+
}
|
|
658
|
+
});
|
|
659
|
+
args.splice(lastC, 0, c);
|
|
247
660
|
}
|
|
661
|
+
exports.log = console.debug || console.log || (() => {
|
|
662
|
+
});
|
|
663
|
+
function save(namespaces) {
|
|
664
|
+
try {
|
|
665
|
+
if (namespaces) {
|
|
666
|
+
exports.storage.setItem("debug", namespaces);
|
|
667
|
+
} else {
|
|
668
|
+
exports.storage.removeItem("debug");
|
|
669
|
+
}
|
|
670
|
+
} catch (error) {
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
function load() {
|
|
674
|
+
let r;
|
|
675
|
+
try {
|
|
676
|
+
r = exports.storage.getItem("debug") || exports.storage.getItem("DEBUG");
|
|
677
|
+
} catch (error) {
|
|
678
|
+
}
|
|
679
|
+
if (!r && typeof process !== "undefined" && "env" in process) {
|
|
680
|
+
r = process.env.DEBUG;
|
|
681
|
+
}
|
|
682
|
+
return r;
|
|
683
|
+
}
|
|
684
|
+
function localstorage() {
|
|
685
|
+
try {
|
|
686
|
+
return localStorage;
|
|
687
|
+
} catch (error) {
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
module.exports = requireCommon()(exports);
|
|
691
|
+
const { formatters } = module.exports;
|
|
692
|
+
formatters.j = function(v) {
|
|
693
|
+
try {
|
|
694
|
+
return JSON.stringify(v);
|
|
695
|
+
} catch (error) {
|
|
696
|
+
return "[UnexpectedJSONParseError]: " + error.message;
|
|
697
|
+
}
|
|
698
|
+
};
|
|
699
|
+
})(browser, browser.exports);
|
|
700
|
+
return browser.exports;
|
|
701
|
+
}
|
|
702
|
+
var hasRequiredDist;
|
|
703
|
+
function requireDist() {
|
|
704
|
+
if (hasRequiredDist) return dist;
|
|
705
|
+
hasRequiredDist = 1;
|
|
706
|
+
var __importDefault = dist && dist.__importDefault || function(mod) {
|
|
707
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
708
|
+
};
|
|
709
|
+
Object.defineProperty(dist, "__esModule", { value: true });
|
|
710
|
+
dist.NodeClusterAdapter = void 0;
|
|
711
|
+
dist.createAdapter = createAdapter2;
|
|
712
|
+
dist.setupPrimary = setupPrimary;
|
|
713
|
+
const node_cluster_1 = __importDefault(require$$0);
|
|
714
|
+
const socket_io_adapter_1 = require$$1;
|
|
715
|
+
const debug_1 = __importDefault(requireBrowser());
|
|
716
|
+
const debug = (0, debug_1.default)("socket.io-cluster-adapter");
|
|
717
|
+
const MESSAGE_SOURCE = "_sio_adapter";
|
|
718
|
+
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
719
|
+
function ignoreError() {
|
|
248
720
|
}
|
|
249
|
-
|
|
250
|
-
|
|
721
|
+
function createAdapter2(opts = {}) {
|
|
722
|
+
return function(nsp) {
|
|
723
|
+
return new NodeClusterAdapter(nsp, opts);
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
class NodeClusterAdapter extends socket_io_adapter_1.ClusterAdapterWithHeartbeat {
|
|
727
|
+
constructor(nsp, opts = {}) {
|
|
728
|
+
super(nsp, opts);
|
|
729
|
+
process.on("message", (message) => {
|
|
730
|
+
const isValidSource = (message === null || message === void 0 ? void 0 : message.source) === MESSAGE_SOURCE;
|
|
731
|
+
if (!isValidSource) {
|
|
732
|
+
debug("[%s] ignore unknown source", this.uid);
|
|
733
|
+
return;
|
|
734
|
+
}
|
|
735
|
+
if (message.nsp !== this.nsp.name) {
|
|
736
|
+
debug("[%s] ignore other namespace", this.uid);
|
|
737
|
+
return;
|
|
738
|
+
}
|
|
739
|
+
this.onMessage(message);
|
|
740
|
+
});
|
|
741
|
+
this.init();
|
|
742
|
+
}
|
|
743
|
+
doPublish(message) {
|
|
744
|
+
message.source = MESSAGE_SOURCE;
|
|
745
|
+
process.send(message, null, {}, ignoreError);
|
|
746
|
+
return Promise.resolve("");
|
|
747
|
+
}
|
|
748
|
+
doPublishResponse(requesterUid, response) {
|
|
749
|
+
response.source = MESSAGE_SOURCE;
|
|
750
|
+
response.requesterUid = requesterUid;
|
|
751
|
+
process.send(response, null, {}, ignoreError);
|
|
752
|
+
return Promise.resolve();
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
dist.NodeClusterAdapter = NodeClusterAdapter;
|
|
756
|
+
const UIDS = /* @__PURE__ */ Symbol("uids");
|
|
757
|
+
function setupPrimary() {
|
|
758
|
+
node_cluster_1.default.on("message", (worker, message) => {
|
|
759
|
+
var _a;
|
|
760
|
+
const isValidSource = (message === null || message === void 0 ? void 0 : message.source) === MESSAGE_SOURCE;
|
|
761
|
+
if (!isValidSource) {
|
|
762
|
+
return;
|
|
763
|
+
}
|
|
764
|
+
worker[UIDS] = worker[UIDS] || /* @__PURE__ */ new Set();
|
|
765
|
+
worker[UIDS].add(message.uid);
|
|
766
|
+
switch (message.type) {
|
|
767
|
+
case socket_io_adapter_1.MessageType.FETCH_SOCKETS_RESPONSE:
|
|
768
|
+
case socket_io_adapter_1.MessageType.SERVER_SIDE_EMIT_RESPONSE:
|
|
769
|
+
const requesterUid = message.requesterUid;
|
|
770
|
+
for (const workerId in node_cluster_1.default.workers) {
|
|
771
|
+
if (hasOwnProperty.call(node_cluster_1.default.workers, workerId) && ((_a = node_cluster_1.default.workers[workerId][UIDS]) === null || _a === void 0 ? void 0 : _a.has(requesterUid))) {
|
|
772
|
+
node_cluster_1.default.workers[workerId].send(message, null, ignoreError);
|
|
773
|
+
break;
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
break;
|
|
777
|
+
default:
|
|
778
|
+
const emitterIdAsString = String(worker.id);
|
|
779
|
+
for (const workerId in node_cluster_1.default.workers) {
|
|
780
|
+
if (hasOwnProperty.call(node_cluster_1.default.workers, workerId) && workerId !== emitterIdAsString) {
|
|
781
|
+
node_cluster_1.default.workers[workerId].send(message, null, ignoreError);
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
});
|
|
786
|
+
}
|
|
787
|
+
return dist;
|
|
788
|
+
}
|
|
789
|
+
var distExports = requireDist();
|
|
790
|
+
class SocketIoServer {
|
|
791
|
+
namespace;
|
|
792
|
+
socketionamespace;
|
|
793
|
+
//protected socketionamespace?: Namespace<ClientToServerEvents, ServerToClientEvents, InterServerEvents>
|
|
794
|
+
logger;
|
|
795
|
+
io;
|
|
796
|
+
//#redisClient: RedisClientType | Redis | null = null;
|
|
797
|
+
redisClient;
|
|
798
|
+
constructor(namespace, logger) {
|
|
799
|
+
this.namespace = namespace;
|
|
800
|
+
this.logger = logger;
|
|
801
|
+
}
|
|
802
|
+
LogErrorMessage(message) {
|
|
803
|
+
if (this.logger) {
|
|
804
|
+
this.logger.error(`${this.namespace}: ${message}`);
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
LogDebugMessage(message) {
|
|
808
|
+
if (this.logger) {
|
|
809
|
+
this.logger.debug(`${this.namespace}: ${message}`);
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
LogInfoMessage(message) {
|
|
813
|
+
if (this.logger) {
|
|
814
|
+
this.logger.info(`${this.namespace}: ${message}`);
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
LogWarnMessage(message) {
|
|
818
|
+
if (this.logger) {
|
|
819
|
+
this.logger.warn(`${this.namespace}: ${message}`);
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
// https://socket.io/docs/v4/middlewares/
|
|
823
|
+
// https://socket.io/docs/v4/server-socket-instance/#sockethandshake
|
|
824
|
+
// https://socket.io/docs/v4/server-socket-instance/#socket-middlewares
|
|
825
|
+
// Use this middleward to check every incomming connection
|
|
826
|
+
SetupConnectionMiddleware = () => {
|
|
827
|
+
};
|
|
828
|
+
// Use this middleware to check every packet being received
|
|
829
|
+
SetupMessageMiddleware = (socket) => {
|
|
830
|
+
};
|
|
831
|
+
SocketConnectCallBack = (socket) => {
|
|
832
|
+
};
|
|
833
|
+
SocketEventsCallBack = (socket) => {
|
|
834
|
+
};
|
|
835
|
+
GetConfig = (socketIoServeroptions) => {
|
|
836
|
+
const options = {
|
|
837
|
+
transports: ["websocket"]
|
|
838
|
+
// or [ "websocket", "polling" ] (to use long-poolling. Note that the order matters)
|
|
839
|
+
};
|
|
840
|
+
if (socketIoServeroptions.ioRedisMessageProcessorUrl && socketIoServeroptions.ioRedisMessageProcessorUrl !== "") {
|
|
841
|
+
this.redisClient = new Redis(socketIoServeroptions.ioRedisMessageProcessorUrl);
|
|
842
|
+
options.adapter = createAdapter(this.redisClient);
|
|
843
|
+
} else if (socketIoServeroptions.serverClusterMode && socketIoServeroptions.serverClusterMode === true) {
|
|
844
|
+
options.adapter = distExports.createAdapter();
|
|
845
|
+
}
|
|
846
|
+
if (socketIoServeroptions.wssCustomPath && socketIoServeroptions.wssCustomPath.localeCompare("") !== 0) {
|
|
847
|
+
options.path = socketIoServeroptions.wssCustomPath;
|
|
848
|
+
}
|
|
849
|
+
return options;
|
|
850
|
+
};
|
|
851
|
+
SetEngineEvents = () => {
|
|
852
|
+
if (this.io) {
|
|
853
|
+
this.io.engine.on("connection_error", (err) => {
|
|
854
|
+
this.LogInfoMessage(err.req);
|
|
855
|
+
this.LogInfoMessage(err.code);
|
|
856
|
+
this.LogInfoMessage(err.message);
|
|
857
|
+
this.LogInfoMessage(err.context);
|
|
858
|
+
});
|
|
859
|
+
}
|
|
860
|
+
};
|
|
861
|
+
StartServer = async (socketIoServeroptions) => {
|
|
862
|
+
if (this.io) {
|
|
863
|
+
throw new Error(`SocketIoServer:StartServer(): Error: [Server already exists]`);
|
|
864
|
+
}
|
|
865
|
+
if (!socketIoServeroptions.listenPort) {
|
|
866
|
+
throw new Error(`SocketIoServer:StartServer(): Error: [listenPort not specified]`);
|
|
867
|
+
}
|
|
868
|
+
this.io = new Server(socketIoServeroptions.listenPort, this.GetConfig(socketIoServeroptions));
|
|
869
|
+
this.SetEngineEvents();
|
|
870
|
+
await Sleep(500);
|
|
871
|
+
};
|
|
872
|
+
AttachServer = async (server, socketIoServeroptions) => {
|
|
873
|
+
if (this.io) {
|
|
874
|
+
throw new Error(`SocketIoServer:AttachServer(): Error: [Server already attached]`);
|
|
875
|
+
}
|
|
876
|
+
if (socketIoServeroptions.listenPort) {
|
|
877
|
+
this.LogWarnMessage(`SocketIoServer:AttachServer(): Warning: [listenPort: [${socketIoServeroptions.listenPort}] has been specified, but ignored as attaching to existing server]`);
|
|
878
|
+
}
|
|
879
|
+
this.io = new Server(server, this.GetConfig(socketIoServeroptions));
|
|
880
|
+
this.SetEngineEvents();
|
|
881
|
+
await Sleep(500);
|
|
882
|
+
};
|
|
883
|
+
StopServer = async () => {
|
|
884
|
+
if (this.io) {
|
|
885
|
+
await this.CloseNamespaceAdaptors();
|
|
886
|
+
this.DisconnectNamespaceSockets();
|
|
887
|
+
await this.io.of("/").adapter.close();
|
|
888
|
+
if (this.redisClient) {
|
|
889
|
+
await this.redisClient.disconnect();
|
|
890
|
+
await Sleep(50);
|
|
891
|
+
}
|
|
892
|
+
this.io.disconnectSockets();
|
|
893
|
+
this.io = void 0;
|
|
894
|
+
}
|
|
895
|
+
};
|
|
896
|
+
LeaveRoom = (socket, room) => {
|
|
897
|
+
this.LogDebugMessage(`Leaving room [${room}]`);
|
|
251
898
|
socket.leave(room);
|
|
252
899
|
};
|
|
253
|
-
JoinRoom = (
|
|
254
|
-
this.
|
|
900
|
+
JoinRoom = (socket, room) => {
|
|
901
|
+
this.LogDebugMessage(`Socket joining room [${room}], ID: [${socket.id}]`);
|
|
255
902
|
socket.join(room);
|
|
256
903
|
};
|
|
257
|
-
|
|
904
|
+
SetupStandardEvents = (socket) => {
|
|
258
905
|
socket.on("disconnect", (reason) => {
|
|
259
|
-
this.
|
|
906
|
+
this.LogDebugMessage(`socket disconnect, ID: [${socket.id}] [${reason}]`);
|
|
260
907
|
});
|
|
261
908
|
socket.on("disconnecting", (reason) => {
|
|
262
|
-
this.
|
|
909
|
+
this.LogDebugMessage(`socket disconnecting, ID: [${socket.id}] [${reason}]`);
|
|
263
910
|
});
|
|
264
911
|
socket.on("error", (error) => {
|
|
265
|
-
this.
|
|
912
|
+
this.LogDebugMessage(`socket error, ID: [${socket.id}] [${error}]`);
|
|
266
913
|
});
|
|
267
914
|
socket.on("__STSdisconnect", (reason) => {
|
|
268
|
-
this.
|
|
915
|
+
this.LogDebugMessage(`__STSdisconnect: socket disconnect, ID: [${socket.id}] [${reason}]`);
|
|
269
916
|
});
|
|
270
917
|
socket.on("__STSdisconnecting", (reason, callBackResult) => {
|
|
271
|
-
this.
|
|
918
|
+
this.LogDebugMessage(`__STSdisconnecting: socket disconnecting, ID: [${socket.id}] [${reason}]`);
|
|
272
919
|
callBackResult("__STSdisconnecting accepted by server.");
|
|
273
920
|
});
|
|
274
921
|
socket.on("__STSjoinRoom", (rooms) => {
|
|
275
922
|
rooms.forEach((room) => {
|
|
276
|
-
this.JoinRoom(
|
|
923
|
+
this.JoinRoom(socket, room);
|
|
277
924
|
});
|
|
278
925
|
});
|
|
279
926
|
socket.on("__STSleaveRoom", (rooms) => {
|
|
280
927
|
rooms.forEach((room) => {
|
|
281
|
-
this.LeaveRoom(
|
|
928
|
+
this.LeaveRoom(socket, room);
|
|
282
929
|
});
|
|
283
930
|
});
|
|
284
931
|
socket.on("__STSsendToRoom", (rooms, payload) => {
|
|
285
932
|
rooms.forEach((room) => {
|
|
286
|
-
this.
|
|
287
|
-
|
|
933
|
+
if (this.socketionamespace) {
|
|
934
|
+
this.LogDebugMessage(`socket.on: __STSsendToRoom: Sending to room [${room}], ID: [${socket.id}]`);
|
|
935
|
+
this.socketionamespace.to(room).emit(payload.command, payload);
|
|
936
|
+
}
|
|
288
937
|
});
|
|
289
938
|
});
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
939
|
+
socket.on("__STSsendToRoomWithCallback", (room, timeout, payload, cb) => {
|
|
940
|
+
if (this.socketionamespace) {
|
|
941
|
+
this.socketionamespace.to(room).timeout(timeout).emit(payload.command, payload, (err, dataResponse) => {
|
|
942
|
+
if (err) {
|
|
943
|
+
console.error(err);
|
|
944
|
+
const errorResponse = {
|
|
945
|
+
error: true,
|
|
946
|
+
errorName: err.name,
|
|
947
|
+
errorMessage: err.message
|
|
948
|
+
//errorCause: err.cause,
|
|
949
|
+
//errorStack: err.stack
|
|
950
|
+
};
|
|
951
|
+
this.LogErrorMessage(`__STSsendToRoomWithCallback broadcast (error): [${JSON.stringify(errorResponse)}]`);
|
|
952
|
+
cb(errorResponse);
|
|
953
|
+
} else {
|
|
954
|
+
this.LogDebugMessage(`__STSsendToRoomWithCallback broadcast: [${JSON.stringify(dataResponse)}]`);
|
|
955
|
+
cb(dataResponse);
|
|
956
|
+
}
|
|
957
|
+
});
|
|
299
958
|
}
|
|
300
959
|
});
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
960
|
+
socket.on("__STSsendToRoomsWithCallback", (rooms, timeout, payload, cb) => {
|
|
961
|
+
const responses = [];
|
|
962
|
+
const timeoutForComplete = setTimeout(() => {
|
|
963
|
+
responses.push({
|
|
964
|
+
room: "",
|
|
965
|
+
responses: {
|
|
966
|
+
error: true,
|
|
967
|
+
errorName: "timeout",
|
|
968
|
+
errorMessage: `__STSsendToRoomsWithCallback timeout: [${timeout}] before all responses received`
|
|
969
|
+
}
|
|
970
|
+
});
|
|
971
|
+
cb(responses);
|
|
972
|
+
}, timeout).unref();
|
|
973
|
+
rooms.forEach((room) => {
|
|
974
|
+
if (this.socketionamespace) {
|
|
975
|
+
this.socketionamespace.to(room).timeout(timeout).emit(payload.command, payload, (err, dataResponse) => {
|
|
976
|
+
if (err) {
|
|
977
|
+
console.error(err);
|
|
978
|
+
const errorResponse = {
|
|
979
|
+
error: true,
|
|
980
|
+
errorName: err.name,
|
|
981
|
+
errorMessage: err.message
|
|
982
|
+
//errorCause: err.cause,
|
|
983
|
+
//errorStack: err.stack
|
|
984
|
+
};
|
|
985
|
+
this.LogErrorMessage(`__STSsendToRoomWithCallback broadcast (error): [${JSON.stringify(errorResponse)}]`);
|
|
986
|
+
responses.push({
|
|
987
|
+
room,
|
|
988
|
+
responses: errorResponse
|
|
989
|
+
});
|
|
990
|
+
} else {
|
|
991
|
+
this.LogDebugMessage(`__STSsendToRoomWithCallback broadcast: [${JSON.stringify(dataResponse)}]`);
|
|
992
|
+
responses.push({
|
|
993
|
+
room,
|
|
994
|
+
responses: dataResponse
|
|
995
|
+
});
|
|
996
|
+
}
|
|
997
|
+
if (responses.length === rooms.length) {
|
|
998
|
+
clearTimeout(timeoutForComplete);
|
|
999
|
+
cb(responses);
|
|
1000
|
+
}
|
|
1001
|
+
});
|
|
1002
|
+
}
|
|
1003
|
+
});
|
|
306
1004
|
});
|
|
307
1005
|
};
|
|
308
|
-
SetupNamespace = (
|
|
309
|
-
this
|
|
310
|
-
namespace
|
|
311
|
-
|
|
312
|
-
socketionamespace
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
if (socketConnectCallBack) {
|
|
1006
|
+
SetupNamespace = (rooms, autoJoinRooms) => {
|
|
1007
|
+
if (this.io) {
|
|
1008
|
+
this.socketionamespace = this.io.of(`/${this.namespace}/`);
|
|
1009
|
+
this.SetupConnectionMiddleware();
|
|
1010
|
+
this.socketionamespace.on("connection", (socket) => {
|
|
1011
|
+
this.LogDebugMessage(`Socket connected, ID: [${socket.id}]`);
|
|
1012
|
+
this.LogDebugMessage(`Authentication Handshake (auth): [${JSON.stringify(socket.handshake.auth)}]`);
|
|
1013
|
+
this.LogDebugMessage(`Authentication Handshake (host): [${JSON.stringify(socket.handshake.headers.host)}]`);
|
|
1014
|
+
this.LogDebugMessage(`Authentication Handshake (url): [${JSON.stringify(socket.handshake.url)}]`);
|
|
1015
|
+
this.LogDebugMessage(`Authentication Handshake: [${JSON.stringify(socket.handshake)}]`);
|
|
1016
|
+
this.SetupMessageMiddleware(socket);
|
|
1017
|
+
if (autoJoinRooms) {
|
|
1018
|
+
rooms.map((room) => {
|
|
1019
|
+
this.JoinRoom(socket, room);
|
|
1020
|
+
});
|
|
1021
|
+
}
|
|
1022
|
+
this.SetupStandardEvents(socket);
|
|
326
1023
|
setTimeout(() => {
|
|
327
|
-
|
|
1024
|
+
this.SocketConnectCallBack(socket);
|
|
328
1025
|
}, 0);
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
}
|
|
334
|
-
return this
|
|
335
|
-
};
|
|
336
|
-
GetSTSSocketIONamespace = (namespace) => {
|
|
337
|
-
return this.#namespace[namespace];
|
|
338
|
-
};
|
|
339
|
-
GetSTSSocketIONamespaces = () => {
|
|
340
|
-
return this.#namespace;
|
|
1026
|
+
this.SocketEventsCallBack(socket);
|
|
1027
|
+
});
|
|
1028
|
+
} else {
|
|
1029
|
+
throw new Error("SocketIoServer:SetupNamespace(): Error: [No server attached");
|
|
1030
|
+
}
|
|
1031
|
+
return this;
|
|
341
1032
|
};
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
await
|
|
1033
|
+
CloseNamespaceAdaptors = async () => {
|
|
1034
|
+
if (this.socketionamespace) {
|
|
1035
|
+
await this.socketionamespace.adapter.close();
|
|
345
1036
|
}
|
|
346
1037
|
};
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
1038
|
+
DisconnectNamespaceSockets = () => {
|
|
1039
|
+
if (this.socketionamespace) {
|
|
1040
|
+
this.socketionamespace.disconnectSockets();
|
|
1041
|
+
this.socketionamespace = void 0;
|
|
350
1042
|
}
|
|
351
|
-
this.#namespace = {};
|
|
352
1043
|
};
|
|
353
|
-
SetupEvent(event, eventCb) {
|
|
354
|
-
return this;
|
|
355
|
-
}
|
|
356
1044
|
}
|
|
357
1045
|
export {
|
|
358
1046
|
STSEvent,
|
|
359
1047
|
STSNamespace,
|
|
360
1048
|
STSRoom,
|
|
361
1049
|
SocketIoClient,
|
|
362
|
-
|
|
1050
|
+
SocketIoServer
|
|
363
1051
|
};
|
|
364
1052
|
//# sourceMappingURL=stssocketioutils.mjs.map
|