@nsshunt/stsutils 1.16.67 → 1.16.69
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/stsutils.mjs +507 -40
- package/dist/stsutils.mjs.map +1 -1
- package/dist/stsutils.umd.js +528 -61
- package/dist/stsutils.umd.js.map +1 -1
- package/package.json +11 -8
- package/types/commonTypes.d.ts +63 -0
- package/types/commonTypes.d.ts.map +1 -0
- package/types/genericMessageManager.d.ts +12 -0
- package/types/genericMessageManager.d.ts.map +1 -0
- package/types/index.d.ts +3 -21
- package/types/index.d.ts.map +1 -1
- package/types/webWorkerMessageHandler.d.ts +41 -0
- package/types/webWorkerMessageHandler.d.ts.map +1 -0
package/dist/stsutils.mjs
CHANGED
|
@@ -8,7 +8,7 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
|
|
|
8
8
|
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
9
9
|
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
10
10
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
11
|
-
var _options;
|
|
11
|
+
var _options, _id, _options2, _inflightMessages, _messageHeader, _SendMessage, _ProcessMessage, _ipcMessageManager, _options3, _events, _clients, _pingTimeout, _messagePort, _processRawMessage, _messageSender, _ProcessResponseMessage, _processPayload;
|
|
12
12
|
import Ajv from "ajv/dist/jtd.js";
|
|
13
13
|
function getDefaultExportFromCjs(x) {
|
|
14
14
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
@@ -1437,6 +1437,52 @@ chalk.stderr = Chalk({ level: stderrColor ? stderrColor.level : 0 });
|
|
|
1437
1437
|
chalk.stderr.supportsColor = stderrColor;
|
|
1438
1438
|
var source = chalk;
|
|
1439
1439
|
const chalk$1 = /* @__PURE__ */ getDefaultExportFromCjs(source);
|
|
1440
|
+
var ModelDelimeter = /* @__PURE__ */ ((ModelDelimeter2) => {
|
|
1441
|
+
ModelDelimeter2["ROOT"] = "_";
|
|
1442
|
+
ModelDelimeter2["SEPERATOR"] = "|";
|
|
1443
|
+
ModelDelimeter2["COMPONENT_SEPERATOR"] = "@";
|
|
1444
|
+
ModelDelimeter2["NID_SEPERATOR"] = "^";
|
|
1445
|
+
return ModelDelimeter2;
|
|
1446
|
+
})(ModelDelimeter || {});
|
|
1447
|
+
const CheckValidChar = (checkParams) => {
|
|
1448
|
+
const invalidChars = [
|
|
1449
|
+
"_",
|
|
1450
|
+
"|",
|
|
1451
|
+
"@",
|
|
1452
|
+
"^"
|
|
1453
|
+
/* NID_SEPERATOR */
|
|
1454
|
+
];
|
|
1455
|
+
checkParams.forEach((param) => {
|
|
1456
|
+
invalidChars.forEach((char) => {
|
|
1457
|
+
if (param[1].includes(char)) {
|
|
1458
|
+
throw new Error(`Invalid character inside [${param[0]}:${param[1]}], no [${char}] allowed`);
|
|
1459
|
+
}
|
|
1460
|
+
});
|
|
1461
|
+
});
|
|
1462
|
+
};
|
|
1463
|
+
const defaultLogger = {
|
|
1464
|
+
debug(message) {
|
|
1465
|
+
console.log(chalk$1.grey(`debug: ${message}`));
|
|
1466
|
+
},
|
|
1467
|
+
error(message) {
|
|
1468
|
+
console.log(chalk$1.red(`error: ${message}`));
|
|
1469
|
+
},
|
|
1470
|
+
http(message) {
|
|
1471
|
+
console.log(chalk$1.cyan(`http: ${message}`));
|
|
1472
|
+
},
|
|
1473
|
+
info(message) {
|
|
1474
|
+
console.log(chalk$1.white(`info: ${message}`));
|
|
1475
|
+
},
|
|
1476
|
+
silly(message) {
|
|
1477
|
+
console.log(chalk$1.yellow(`silly: ${message}`));
|
|
1478
|
+
},
|
|
1479
|
+
verbose(message) {
|
|
1480
|
+
console.log(chalk$1.green(`verbose: ${message}`));
|
|
1481
|
+
},
|
|
1482
|
+
warn(message) {
|
|
1483
|
+
console.log(chalk$1.magenta(`warn: ${message}`));
|
|
1484
|
+
}
|
|
1485
|
+
};
|
|
1440
1486
|
function GetErrorPayload(errorCode, details = null) {
|
|
1441
1487
|
return {
|
|
1442
1488
|
error: errorCode.code,
|
|
@@ -1579,55 +1625,475 @@ function compareParameterTypes(source1, source2, authParameterTypes) {
|
|
|
1579
1625
|
}
|
|
1580
1626
|
return errors;
|
|
1581
1627
|
}
|
|
1582
|
-
var
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
return
|
|
1588
|
-
}
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
"
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1628
|
+
var byteToHex = [];
|
|
1629
|
+
for (var i = 0; i < 256; ++i) {
|
|
1630
|
+
byteToHex.push((i + 256).toString(16).slice(1));
|
|
1631
|
+
}
|
|
1632
|
+
function unsafeStringify(arr, offset = 0) {
|
|
1633
|
+
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
|
|
1634
|
+
}
|
|
1635
|
+
var getRandomValues;
|
|
1636
|
+
var rnds8 = new Uint8Array(16);
|
|
1637
|
+
function rng() {
|
|
1638
|
+
if (!getRandomValues) {
|
|
1639
|
+
getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
|
|
1640
|
+
if (!getRandomValues) {
|
|
1641
|
+
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
1642
|
+
}
|
|
1643
|
+
}
|
|
1644
|
+
return getRandomValues(rnds8);
|
|
1645
|
+
}
|
|
1646
|
+
var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
|
1647
|
+
const native = {
|
|
1648
|
+
randomUUID
|
|
1649
|
+
};
|
|
1650
|
+
function v4(options, buf, offset) {
|
|
1651
|
+
if (native.randomUUID && !buf && !options) {
|
|
1652
|
+
return native.randomUUID();
|
|
1653
|
+
}
|
|
1654
|
+
options = options || {};
|
|
1655
|
+
var rnds = options.random || (options.rng || rng)();
|
|
1656
|
+
rnds[6] = rnds[6] & 15 | 64;
|
|
1657
|
+
rnds[8] = rnds[8] & 63 | 128;
|
|
1658
|
+
return unsafeStringify(rnds);
|
|
1659
|
+
}
|
|
1660
|
+
class GenericMessageManager {
|
|
1661
|
+
constructor(options) {
|
|
1662
|
+
__privateAdd(this, _id);
|
|
1663
|
+
__privateAdd(this, _options2);
|
|
1664
|
+
__privateAdd(this, _inflightMessages, {});
|
|
1665
|
+
__privateAdd(this, _messageHeader);
|
|
1666
|
+
__publicField(this, "SendMessage", (payload, options) => {
|
|
1667
|
+
return new Promise((resolve, reject) => {
|
|
1668
|
+
__privateGet(this, _SendMessage).call(this, payload, options, (payload2) => {
|
|
1669
|
+
resolve(payload2.responsePayload);
|
|
1670
|
+
}, (payload2) => {
|
|
1671
|
+
reject(payload2.requestPayload);
|
|
1672
|
+
});
|
|
1673
|
+
});
|
|
1674
|
+
});
|
|
1675
|
+
__privateAdd(this, _SendMessage, (payload, options, callBack, errorCallBack) => {
|
|
1676
|
+
const messageId = v4();
|
|
1677
|
+
const requestPayload = {
|
|
1678
|
+
header: __privateGet(this, _messageHeader),
|
|
1679
|
+
messageId,
|
|
1680
|
+
senderId: __privateGet(this, _id),
|
|
1681
|
+
senderRole: __privateGet(this, _options2).role,
|
|
1682
|
+
requestPayload: payload,
|
|
1683
|
+
responsePayload: {},
|
|
1684
|
+
pid: process.pid.toString(),
|
|
1685
|
+
messageType: "REQUEST"
|
|
1686
|
+
};
|
|
1687
|
+
const messageRecord = {
|
|
1688
|
+
messageId,
|
|
1689
|
+
senderId: __privateGet(this, _id),
|
|
1690
|
+
senderRole: __privateGet(this, _options2).role,
|
|
1691
|
+
requestPayload,
|
|
1692
|
+
responses: {},
|
|
1693
|
+
// record
|
|
1694
|
+
startTime: performance.now(),
|
|
1695
|
+
endTime: 0,
|
|
1696
|
+
timeout: setTimeout(() => {
|
|
1697
|
+
setTimeout(() => {
|
|
1698
|
+
delete __privateGet(this, _inflightMessages)[messageRecord.messageId];
|
|
1699
|
+
}, 0).unref();
|
|
1700
|
+
errorCallBack(requestPayload);
|
|
1701
|
+
}, __privateGet(this, _options2).requestResponseMessageTimeout).unref(),
|
|
1702
|
+
// max message timeout allowed
|
|
1703
|
+
callBack,
|
|
1704
|
+
errorCallBack
|
|
1705
|
+
};
|
|
1706
|
+
__privateGet(this, _inflightMessages)[messageRecord.messageId] = messageRecord;
|
|
1707
|
+
__privateGet(this, _options2).messageSender(requestPayload, options);
|
|
1708
|
+
});
|
|
1709
|
+
__privateAdd(this, _ProcessMessage, async (msg, options) => {
|
|
1710
|
+
if (msg.header && msg.header.localeCompare(__privateGet(this, _messageHeader)) === 0) {
|
|
1711
|
+
const message = msg;
|
|
1712
|
+
if (__privateGet(this, _inflightMessages)[message.messageId]) {
|
|
1713
|
+
const inFlightMessageRecord = __privateGet(this, _inflightMessages)[message.messageId];
|
|
1714
|
+
inFlightMessageRecord.responses[message.senderId] = { ...message };
|
|
1715
|
+
let completed = true;
|
|
1716
|
+
if (__privateGet(this, _options2).ProcessResponseMessage) {
|
|
1717
|
+
completed = await __privateGet(this, _options2).ProcessResponseMessage(inFlightMessageRecord.responses, options);
|
|
1718
|
+
if (completed) {
|
|
1719
|
+
inFlightMessageRecord.endTime = performance.now();
|
|
1720
|
+
clearTimeout(inFlightMessageRecord.timeout);
|
|
1721
|
+
inFlightMessageRecord.callBack({
|
|
1722
|
+
responsePayload: Object.values(inFlightMessageRecord.responses).map((r) => r.responsePayload)
|
|
1723
|
+
}, options);
|
|
1724
|
+
delete __privateGet(this, _inflightMessages)[message.messageId];
|
|
1725
|
+
}
|
|
1726
|
+
} else if (completed) {
|
|
1727
|
+
inFlightMessageRecord.endTime = performance.now();
|
|
1728
|
+
clearTimeout(inFlightMessageRecord.timeout);
|
|
1729
|
+
inFlightMessageRecord.callBack(message, options);
|
|
1730
|
+
delete __privateGet(this, _inflightMessages)[message.messageId];
|
|
1731
|
+
} else ;
|
|
1732
|
+
}
|
|
1601
1733
|
}
|
|
1602
1734
|
});
|
|
1603
|
-
|
|
1604
|
-
};
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1735
|
+
__publicField(this, "Start", (options) => {
|
|
1736
|
+
__privateSet(this, _messageHeader, `__STS__${__privateGet(this, _options2).namespace}__${v4()}`);
|
|
1737
|
+
__privateGet(this, _options2).messageReceiverStart(options);
|
|
1738
|
+
});
|
|
1739
|
+
__publicField(this, "Stop", (options) => {
|
|
1740
|
+
__privateGet(this, _options2).messageReceiverStop(options);
|
|
1741
|
+
for (const [, iPCMessageProcessorWorkerRecord] of Object.entries(__privateGet(this, _inflightMessages))) {
|
|
1742
|
+
if (iPCMessageProcessorWorkerRecord.timeout) {
|
|
1743
|
+
clearTimeout(iPCMessageProcessorWorkerRecord.timeout);
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
__privateSet(this, _inflightMessages, {});
|
|
1747
|
+
});
|
|
1748
|
+
// Process a message recieved from a worker
|
|
1749
|
+
__publicField(this, "ProcessMessage", async (msg, options) => {
|
|
1750
|
+
if (msg.header) {
|
|
1751
|
+
const checkName = `__STS__${__privateGet(this, _options2).namespace}__`;
|
|
1752
|
+
if (msg.header.includes(checkName)) {
|
|
1753
|
+
const message = msg;
|
|
1754
|
+
if (msg.messageType.localeCompare("REQUEST") === 0) {
|
|
1755
|
+
let processMessage = true;
|
|
1756
|
+
if (message.requestPayload.args && message.requestPayload.args.length > 0 && message.requestPayload.args[0].group) {
|
|
1757
|
+
const group = message.requestPayload.args[0].group;
|
|
1758
|
+
processMessage = __privateGet(this, _options2).groups.indexOf(group) === -1 ? false : true;
|
|
1759
|
+
}
|
|
1760
|
+
if (processMessage) {
|
|
1761
|
+
message.responsePayload = await __privateGet(this, _options2).ProcessRequestMessage(message, options);
|
|
1762
|
+
message.senderId = __privateGet(this, _id);
|
|
1763
|
+
message.messageType = "RESPONSE";
|
|
1764
|
+
__privateGet(this, _options2).messageSender(message, options);
|
|
1765
|
+
}
|
|
1766
|
+
} else {
|
|
1767
|
+
__privateGet(this, _ProcessMessage).call(this, msg, options);
|
|
1768
|
+
}
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
});
|
|
1772
|
+
__privateSet(this, _id, v4());
|
|
1773
|
+
__privateSet(this, _options2, options);
|
|
1774
|
+
__privateSet(this, _messageHeader, `__STS__${__privateGet(this, _options2).namespace}__${v4()}`);
|
|
1775
|
+
}
|
|
1776
|
+
get id() {
|
|
1777
|
+
return __privateGet(this, _id);
|
|
1778
|
+
}
|
|
1779
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1780
|
+
ReceivedMessageFromMaster(msg) {
|
|
1781
|
+
}
|
|
1782
|
+
}
|
|
1783
|
+
_id = new WeakMap();
|
|
1784
|
+
_options2 = new WeakMap();
|
|
1785
|
+
_inflightMessages = new WeakMap();
|
|
1786
|
+
_messageHeader = new WeakMap();
|
|
1787
|
+
_SendMessage = new WeakMap();
|
|
1788
|
+
_ProcessMessage = new WeakMap();
|
|
1789
|
+
var tinyEmitter = { exports: {} };
|
|
1790
|
+
function E() {
|
|
1791
|
+
}
|
|
1792
|
+
E.prototype = {
|
|
1793
|
+
on: function(name, callback, ctx) {
|
|
1794
|
+
var e = this.e || (this.e = {});
|
|
1795
|
+
(e[name] || (e[name] = [])).push({
|
|
1796
|
+
fn: callback,
|
|
1797
|
+
ctx
|
|
1798
|
+
});
|
|
1799
|
+
return this;
|
|
1617
1800
|
},
|
|
1618
|
-
|
|
1619
|
-
|
|
1801
|
+
once: function(name, callback, ctx) {
|
|
1802
|
+
var self = this;
|
|
1803
|
+
function listener() {
|
|
1804
|
+
self.off(name, listener);
|
|
1805
|
+
callback.apply(ctx, arguments);
|
|
1806
|
+
}
|
|
1807
|
+
listener._ = callback;
|
|
1808
|
+
return this.on(name, listener, ctx);
|
|
1620
1809
|
},
|
|
1621
|
-
|
|
1622
|
-
|
|
1810
|
+
emit: function(name) {
|
|
1811
|
+
var data = [].slice.call(arguments, 1);
|
|
1812
|
+
var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
|
|
1813
|
+
var i = 0;
|
|
1814
|
+
var len = evtArr.length;
|
|
1815
|
+
for (i; i < len; i++) {
|
|
1816
|
+
evtArr[i].fn.apply(evtArr[i].ctx, data);
|
|
1817
|
+
}
|
|
1818
|
+
return this;
|
|
1623
1819
|
},
|
|
1624
|
-
|
|
1625
|
-
|
|
1820
|
+
off: function(name, callback) {
|
|
1821
|
+
var e = this.e || (this.e = {});
|
|
1822
|
+
var evts = e[name];
|
|
1823
|
+
var liveEvents = [];
|
|
1824
|
+
if (evts && callback) {
|
|
1825
|
+
for (var i = 0, len = evts.length; i < len; i++) {
|
|
1826
|
+
if (evts[i].fn !== callback && evts[i].fn._ !== callback)
|
|
1827
|
+
liveEvents.push(evts[i]);
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
liveEvents.length ? e[name] = liveEvents : delete e[name];
|
|
1831
|
+
return this;
|
|
1626
1832
|
}
|
|
1627
1833
|
};
|
|
1834
|
+
tinyEmitter.exports = E;
|
|
1835
|
+
var TinyEmitter = tinyEmitter.exports.TinyEmitter = E;
|
|
1836
|
+
class WebWorkerMessageHandler extends TinyEmitter {
|
|
1837
|
+
// MessagePort;
|
|
1838
|
+
constructor(options) {
|
|
1839
|
+
super();
|
|
1840
|
+
__privateAdd(this, _ipcMessageManager, null);
|
|
1841
|
+
__privateAdd(this, _options3);
|
|
1842
|
+
__privateAdd(this, _events, {});
|
|
1843
|
+
__privateAdd(this, _clients, {});
|
|
1844
|
+
__privateAdd(this, _pingTimeout, null);
|
|
1845
|
+
__privateAdd(this, _messagePort);
|
|
1846
|
+
__privateAdd(this, _processRawMessage, (rawmessage) => {
|
|
1847
|
+
var _a;
|
|
1848
|
+
const message = JSON.parse(rawmessage);
|
|
1849
|
+
(_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.ProcessMessage(message, {});
|
|
1850
|
+
});
|
|
1851
|
+
__publicField(this, "AddGroup", (group) => {
|
|
1852
|
+
const index = __privateGet(this, _options3).groups.indexOf(group);
|
|
1853
|
+
if (index === -1) {
|
|
1854
|
+
__privateGet(this, _options3).groups.push(group);
|
|
1855
|
+
}
|
|
1856
|
+
});
|
|
1857
|
+
__publicField(this, "RemoveGroup", (group) => {
|
|
1858
|
+
const removeIndex = __privateGet(this, _options3).groups.indexOf(group);
|
|
1859
|
+
if (removeIndex !== -1) {
|
|
1860
|
+
__privateGet(this, _options3).groups.splice(removeIndex, 1);
|
|
1861
|
+
}
|
|
1862
|
+
});
|
|
1863
|
+
__publicField(this, "SetupPrimary", () => {
|
|
1864
|
+
const ipcMessageManagerOptions = {
|
|
1865
|
+
logger: __privateGet(this, _options3).logger,
|
|
1866
|
+
requestResponseMessageTimeout: 5e3,
|
|
1867
|
+
namespace: __privateGet(this, _options3).namespace,
|
|
1868
|
+
role: __privateGet(this, _options3).role,
|
|
1869
|
+
messageSender: __privateGet(this, _messageSender),
|
|
1870
|
+
groups: __privateGet(this, _options3).groups,
|
|
1871
|
+
// This method is used to calculate if all responses have been received from multiple clients (broadcast)
|
|
1872
|
+
// returns true/false.
|
|
1873
|
+
ProcessResponseMessage: __privateGet(this, _ProcessResponseMessage),
|
|
1874
|
+
// This gets called when an event is received from a message receiver (when ProcessMessage is invoked from the receiver event handler)
|
|
1875
|
+
ProcessRequestMessage: __privateGet(this, _processPayload),
|
|
1876
|
+
messageReceiverStart: (options) => {
|
|
1877
|
+
__privateGet(this, _messagePort).on("message", __privateGet(this, _processRawMessage));
|
|
1878
|
+
},
|
|
1879
|
+
messageReceiverStop: (options) => {
|
|
1880
|
+
__privateGet(this, _messagePort).off("message", __privateGet(this, _processRawMessage));
|
|
1881
|
+
}
|
|
1882
|
+
};
|
|
1883
|
+
__privateSet(this, _ipcMessageManager, new GenericMessageManager(ipcMessageManagerOptions));
|
|
1884
|
+
});
|
|
1885
|
+
__privateAdd(this, _messageSender, (payload, options) => {
|
|
1886
|
+
if (payload.messageType.localeCompare("REQUEST") === 0) {
|
|
1887
|
+
__privateGet(this, _messagePort).postMessage(JSON.stringify(payload));
|
|
1888
|
+
} else if (payload.messageType.localeCompare("RESPONSE") === 0) {
|
|
1889
|
+
__privateGet(this, _messagePort).postMessage(JSON.stringify(payload));
|
|
1890
|
+
}
|
|
1891
|
+
});
|
|
1892
|
+
__privateAdd(this, _ProcessResponseMessage, async (responses, options) => {
|
|
1893
|
+
let allFound = false;
|
|
1894
|
+
for (const [responseId, response] of Object.entries(responses)) {
|
|
1895
|
+
if (response.senderRole.localeCompare("CLIENT") === 0) {
|
|
1896
|
+
allFound = true;
|
|
1897
|
+
break;
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1900
|
+
if (allFound) {
|
|
1901
|
+
return allFound;
|
|
1902
|
+
}
|
|
1903
|
+
let found = true;
|
|
1904
|
+
let requestGroup = null;
|
|
1905
|
+
for (const [responseId, response] of Object.entries(responses)) {
|
|
1906
|
+
if (response.requestPayload.args.length > 0 && response.requestPayload.args[0].group) {
|
|
1907
|
+
requestGroup = response.requestPayload.args[0].group;
|
|
1908
|
+
break;
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
if (requestGroup) {
|
|
1912
|
+
const clientsInGroup = Object.values(__privateGet(this, _clients)).filter((c) => {
|
|
1913
|
+
if (c.groups.indexOf(requestGroup) === -1) {
|
|
1914
|
+
return false;
|
|
1915
|
+
}
|
|
1916
|
+
return true;
|
|
1917
|
+
});
|
|
1918
|
+
found = true;
|
|
1919
|
+
clientsInGroup.forEach((c) => {
|
|
1920
|
+
if (!responses[c.id]) {
|
|
1921
|
+
found = false;
|
|
1922
|
+
}
|
|
1923
|
+
});
|
|
1924
|
+
} else {
|
|
1925
|
+
const clientsInGroup = Object.values(__privateGet(this, _clients));
|
|
1926
|
+
found = true;
|
|
1927
|
+
clientsInGroup.forEach((c) => {
|
|
1928
|
+
if (!responses[c.id]) {
|
|
1929
|
+
found = false;
|
|
1930
|
+
}
|
|
1931
|
+
});
|
|
1932
|
+
}
|
|
1933
|
+
return found;
|
|
1934
|
+
});
|
|
1935
|
+
__privateAdd(this, _processPayload, (payload, options) => {
|
|
1936
|
+
return new Promise((resolve, reject) => {
|
|
1937
|
+
if (payload.messageType.localeCompare("REQUEST") === 0) {
|
|
1938
|
+
if (payload.requestPayload["__eventName"]) {
|
|
1939
|
+
const eventName = payload.requestPayload["__eventName"];
|
|
1940
|
+
if (__privateGet(this, _events)[eventName]) {
|
|
1941
|
+
try {
|
|
1942
|
+
__privateGet(this, _events)[eventName].callback(...payload.requestPayload.args, (responseMessage) => {
|
|
1943
|
+
resolve(responseMessage);
|
|
1944
|
+
});
|
|
1945
|
+
} catch (error) {
|
|
1946
|
+
reject(error);
|
|
1947
|
+
}
|
|
1948
|
+
}
|
|
1949
|
+
}
|
|
1950
|
+
}
|
|
1951
|
+
});
|
|
1952
|
+
});
|
|
1953
|
+
__publicField(this, "Start", () => {
|
|
1954
|
+
var _a;
|
|
1955
|
+
(_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.Start();
|
|
1956
|
+
});
|
|
1957
|
+
__publicField(this, "Stop", () => {
|
|
1958
|
+
var _a;
|
|
1959
|
+
if (__privateGet(this, _pingTimeout)) {
|
|
1960
|
+
clearTimeout(__privateGet(this, _pingTimeout));
|
|
1961
|
+
__privateSet(this, _pingTimeout, null);
|
|
1962
|
+
}
|
|
1963
|
+
(_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.Stop();
|
|
1964
|
+
});
|
|
1965
|
+
__publicField(this, "emitex", async (event, ...args) => {
|
|
1966
|
+
return __privateGet(this, _ipcMessageManager).SendMessage({
|
|
1967
|
+
__eventName: event,
|
|
1968
|
+
args
|
|
1969
|
+
});
|
|
1970
|
+
});
|
|
1971
|
+
__privateSet(this, _options3, options);
|
|
1972
|
+
__privateSet(this, _messagePort, options.messagePort);
|
|
1973
|
+
this.SetupPrimary();
|
|
1974
|
+
if (__privateGet(this, _options3).role.localeCompare("CLIENT") === 0) {
|
|
1975
|
+
const ping = () => {
|
|
1976
|
+
__privateSet(this, _pingTimeout, setTimeout(() => {
|
|
1977
|
+
const pingData = {
|
|
1978
|
+
id: __privateGet(this, _ipcMessageManager).id,
|
|
1979
|
+
groups: __privateGet(this, _options3).groups
|
|
1980
|
+
};
|
|
1981
|
+
if (__privateGet(this, _options3).context) {
|
|
1982
|
+
pingData.context = __privateGet(this, _options3).context;
|
|
1983
|
+
}
|
|
1984
|
+
this.emit("ping", pingData, (response) => {
|
|
1985
|
+
});
|
|
1986
|
+
ping();
|
|
1987
|
+
}, 1e3).unref());
|
|
1988
|
+
};
|
|
1989
|
+
ping();
|
|
1990
|
+
} else {
|
|
1991
|
+
this.on("ping", (pingData, callback) => {
|
|
1992
|
+
const { id, groups, context } = pingData;
|
|
1993
|
+
if (__privateGet(this, _clients)[id]) {
|
|
1994
|
+
clearTimeout(__privateGet(this, _clients)[id].timeout);
|
|
1995
|
+
__privateGet(this, _clients)[id].pingCount++;
|
|
1996
|
+
__privateGet(this, _clients)[id].timeout = setTimeout(() => {
|
|
1997
|
+
delete __privateGet(this, _clients)[id];
|
|
1998
|
+
}, 2e3);
|
|
1999
|
+
__privateGet(this, _clients)[id].groups = groups;
|
|
2000
|
+
__privateGet(this, _clients)[id].context = context;
|
|
2001
|
+
} else {
|
|
2002
|
+
__privateGet(this, _clients)[id] = {
|
|
2003
|
+
id,
|
|
2004
|
+
clientConnected: /* @__PURE__ */ new Date(),
|
|
2005
|
+
pingCount: 0,
|
|
2006
|
+
timeout: setTimeout(() => {
|
|
2007
|
+
delete __privateGet(this, _clients)[id];
|
|
2008
|
+
}, 2e3),
|
|
2009
|
+
groups,
|
|
2010
|
+
context
|
|
2011
|
+
};
|
|
2012
|
+
}
|
|
2013
|
+
callback("ok");
|
|
2014
|
+
});
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
2017
|
+
get clients() {
|
|
2018
|
+
return __privateGet(this, _clients);
|
|
2019
|
+
}
|
|
2020
|
+
get groups() {
|
|
2021
|
+
return __privateGet(this, _options3).groups;
|
|
2022
|
+
}
|
|
2023
|
+
// p.on('fromworker', (arg1: number, arg2: string, callback: any) => {
|
|
2024
|
+
on(event, callback, ctx) {
|
|
2025
|
+
if (__privateGet(this, _events)[event]) {
|
|
2026
|
+
delete __privateGet(this, _events)[event];
|
|
2027
|
+
}
|
|
2028
|
+
const eventObject = {
|
|
2029
|
+
event,
|
|
2030
|
+
callback,
|
|
2031
|
+
ctx
|
|
2032
|
+
};
|
|
2033
|
+
__privateGet(this, _events)[eventObject.event] = eventObject;
|
|
2034
|
+
return this;
|
|
2035
|
+
}
|
|
2036
|
+
off(event, callback) {
|
|
2037
|
+
if (__privateGet(this, _events)[event]) {
|
|
2038
|
+
delete __privateGet(this, _events)[event];
|
|
2039
|
+
}
|
|
2040
|
+
return this;
|
|
2041
|
+
}
|
|
2042
|
+
emit(event, ...args) {
|
|
2043
|
+
(async () => {
|
|
2044
|
+
var _a;
|
|
2045
|
+
try {
|
|
2046
|
+
const retVal = await ((_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.SendMessage({
|
|
2047
|
+
__eventName: event,
|
|
2048
|
+
args: args.slice(0, args.length - 1)
|
|
2049
|
+
}));
|
|
2050
|
+
args[args.length - 1](retVal);
|
|
2051
|
+
} catch (error) {
|
|
2052
|
+
if (__privateGet(this, _options3).ignoreEvents) {
|
|
2053
|
+
if (__privateGet(this, _options3).ignoreEvents.indexOf(error.__eventName) !== -1) {
|
|
2054
|
+
return;
|
|
2055
|
+
}
|
|
2056
|
+
}
|
|
2057
|
+
__privateGet(this, _options3).logger.error(chalk$1.red(`RedisMessageHandler:emit(): Error: [${JSON.stringify(error)}]`));
|
|
2058
|
+
}
|
|
2059
|
+
})();
|
|
2060
|
+
return this;
|
|
2061
|
+
}
|
|
2062
|
+
emitWithError(event, args, responseCb, errorCb) {
|
|
2063
|
+
(async () => {
|
|
2064
|
+
var _a;
|
|
2065
|
+
try {
|
|
2066
|
+
const retVal = await ((_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.SendMessage({
|
|
2067
|
+
__eventName: event,
|
|
2068
|
+
args: [args]
|
|
2069
|
+
}));
|
|
2070
|
+
responseCb(retVal);
|
|
2071
|
+
} catch (error) {
|
|
2072
|
+
if (__privateGet(this, _options3).ignoreEvents) {
|
|
2073
|
+
if (__privateGet(this, _options3).ignoreEvents.indexOf(error.__eventName) !== -1) {
|
|
2074
|
+
return;
|
|
2075
|
+
}
|
|
2076
|
+
}
|
|
2077
|
+
errorCb(error);
|
|
2078
|
+
}
|
|
2079
|
+
})();
|
|
2080
|
+
return this;
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
_ipcMessageManager = new WeakMap();
|
|
2084
|
+
_options3 = new WeakMap();
|
|
2085
|
+
_events = new WeakMap();
|
|
2086
|
+
_clients = new WeakMap();
|
|
2087
|
+
_pingTimeout = new WeakMap();
|
|
2088
|
+
_messagePort = new WeakMap();
|
|
2089
|
+
_processRawMessage = new WeakMap();
|
|
2090
|
+
_messageSender = new WeakMap();
|
|
2091
|
+
_ProcessResponseMessage = new WeakMap();
|
|
2092
|
+
_processPayload = new WeakMap();
|
|
1628
2093
|
export {
|
|
1629
2094
|
AddSchema,
|
|
1630
2095
|
CheckValidChar,
|
|
2096
|
+
GenericMessageManager,
|
|
1631
2097
|
GetErrorPayload,
|
|
1632
2098
|
JestSleep,
|
|
1633
2099
|
ModelDelimeter,
|
|
@@ -1638,6 +2104,7 @@ export {
|
|
|
1638
2104
|
STSOptionsBase,
|
|
1639
2105
|
Sleep,
|
|
1640
2106
|
Validate,
|
|
2107
|
+
WebWorkerMessageHandler,
|
|
1641
2108
|
compareParameterTypes,
|
|
1642
2109
|
defaultLogger
|
|
1643
2110
|
};
|