@nsshunt/stsutils 1.16.85 → 1.16.87

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 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, _id, _options2, _inflightMessages, _messageHeader, _SendMessage, _ProcessMessage, _ipcMessageManager, _options3, _events, _clients, _pingTimeout, _messagePort, _messageSender, _ProcessResponseMessage, _processPayload;
11
+ var _options;
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;
@@ -1625,493 +1625,9 @@ function compareParameterTypes(source1, source2, authParameterTypes) {
1625
1625
  }
1626
1626
  return errors;
1627
1627
  }
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
- }
1733
- }
1734
- });
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;
1800
- },
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);
1809
- },
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;
1819
- },
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;
1832
- }
1833
- };
1834
- tinyEmitter.exports = E;
1835
- var TinyEmitter = tinyEmitter.exports.TinyEmitter = E;
1836
- const isNode = Object.prototype.toString.call(typeof process !== "undefined" ? process : 0) === "[object process]";
1837
- class WebWorkerMessageHandler extends TinyEmitter {
1838
- // MessagePort;
1839
- constructor(options) {
1840
- super();
1841
- __privateAdd(this, _ipcMessageManager, null);
1842
- __privateAdd(this, _options3);
1843
- __privateAdd(this, _events, {});
1844
- __privateAdd(this, _clients, {});
1845
- __privateAdd(this, _pingTimeout, null);
1846
- __privateAdd(this, _messagePort);
1847
- __publicField(this, "ProcessRawMessage", (rawmessage) => {
1848
- var _a;
1849
- const message = JSON.parse(rawmessage);
1850
- (_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.ProcessMessage(message, {});
1851
- });
1852
- __publicField(this, "AddGroup", (group) => {
1853
- const index = __privateGet(this, _options3).groups.indexOf(group);
1854
- if (index === -1) {
1855
- __privateGet(this, _options3).groups.push(group);
1856
- }
1857
- });
1858
- __publicField(this, "RemoveGroup", (group) => {
1859
- const removeIndex = __privateGet(this, _options3).groups.indexOf(group);
1860
- if (removeIndex !== -1) {
1861
- __privateGet(this, _options3).groups.splice(removeIndex, 1);
1862
- }
1863
- });
1864
- __publicField(this, "SetupPrimary", () => {
1865
- const ipcMessageManagerOptions = {
1866
- logger: __privateGet(this, _options3).logger,
1867
- requestResponseMessageTimeout: 5e3,
1868
- namespace: __privateGet(this, _options3).namespace,
1869
- role: __privateGet(this, _options3).role,
1870
- messageSender: __privateGet(this, _messageSender),
1871
- groups: __privateGet(this, _options3).groups,
1872
- // This method is used to calculate if all responses have been received from multiple clients (broadcast)
1873
- // returns true/false.
1874
- ProcessResponseMessage: __privateGet(this, _ProcessResponseMessage),
1875
- // This gets called when an event is received from a message receiver (when ProcessMessage is invoked from the receiver event handler)
1876
- ProcessRequestMessage: __privateGet(this, _processPayload),
1877
- messageReceiverStart: (options) => {
1878
- if (isNode) {
1879
- __privateGet(this, _messagePort).on("message", this.ProcessRawMessage);
1880
- } else {
1881
- const xxx = this;
1882
- __privateGet(this, _messagePort).onmessage = async function(data) {
1883
- const message = data.data;
1884
- xxx.ProcessRawMessage(message);
1885
- };
1886
- }
1887
- },
1888
- messageReceiverStop: (options) => {
1889
- if (isNode) {
1890
- __privateGet(this, _messagePort).off("message", this.ProcessRawMessage);
1891
- }
1892
- }
1893
- };
1894
- __privateSet(this, _ipcMessageManager, new GenericMessageManager(ipcMessageManagerOptions));
1895
- });
1896
- __privateAdd(this, _messageSender, (payload, options) => {
1897
- if (payload.messageType.localeCompare("REQUEST") === 0) {
1898
- if (isNode) {
1899
- __privateGet(this, _messagePort).postMessage(JSON.stringify(payload));
1900
- } else {
1901
- __privateGet(this, _messagePort).postMessage(JSON.stringify(payload));
1902
- }
1903
- } else if (payload.messageType.localeCompare("RESPONSE") === 0) {
1904
- if (isNode) {
1905
- __privateGet(this, _messagePort).postMessage(JSON.stringify(payload));
1906
- } else {
1907
- __privateGet(this, _messagePort).postMessage(JSON.stringify(payload));
1908
- }
1909
- }
1910
- });
1911
- __privateAdd(this, _ProcessResponseMessage, async (responses, options) => {
1912
- let allFound = false;
1913
- for (const [responseId, response] of Object.entries(responses)) {
1914
- if (response.senderRole.localeCompare("CLIENT") === 0) {
1915
- allFound = true;
1916
- break;
1917
- }
1918
- }
1919
- if (allFound) {
1920
- return allFound;
1921
- }
1922
- let found = true;
1923
- let requestGroup = null;
1924
- for (const [responseId, response] of Object.entries(responses)) {
1925
- if (response.requestPayload.args.length > 0 && response.requestPayload.args[0].group) {
1926
- requestGroup = response.requestPayload.args[0].group;
1927
- break;
1928
- }
1929
- }
1930
- if (requestGroup) {
1931
- const clientsInGroup = Object.values(__privateGet(this, _clients)).filter((c) => {
1932
- if (c.groups.indexOf(requestGroup) === -1) {
1933
- return false;
1934
- }
1935
- return true;
1936
- });
1937
- found = true;
1938
- clientsInGroup.forEach((c) => {
1939
- if (!responses[c.id]) {
1940
- found = false;
1941
- }
1942
- });
1943
- } else {
1944
- const clientsInGroup = Object.values(__privateGet(this, _clients));
1945
- found = true;
1946
- clientsInGroup.forEach((c) => {
1947
- if (!responses[c.id]) {
1948
- found = false;
1949
- }
1950
- });
1951
- }
1952
- return found;
1953
- });
1954
- __privateAdd(this, _processPayload, (payload, options) => {
1955
- return new Promise((resolve, reject) => {
1956
- if (payload.messageType.localeCompare("REQUEST") === 0) {
1957
- if (payload.requestPayload["__eventName"]) {
1958
- const eventName = payload.requestPayload["__eventName"];
1959
- if (__privateGet(this, _events)[eventName]) {
1960
- try {
1961
- __privateGet(this, _events)[eventName].callback(...payload.requestPayload.args, (responseMessage) => {
1962
- resolve(responseMessage);
1963
- });
1964
- } catch (error) {
1965
- reject(error);
1966
- }
1967
- }
1968
- }
1969
- }
1970
- });
1971
- });
1972
- __publicField(this, "Start", () => {
1973
- var _a;
1974
- (_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.Start();
1975
- });
1976
- __publicField(this, "Stop", () => {
1977
- var _a;
1978
- if (__privateGet(this, _pingTimeout)) {
1979
- clearTimeout(__privateGet(this, _pingTimeout));
1980
- __privateSet(this, _pingTimeout, null);
1981
- }
1982
- (_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.Stop();
1983
- });
1984
- __publicField(this, "emitex", async (event, ...args) => {
1985
- return __privateGet(this, _ipcMessageManager).SendMessage({
1986
- __eventName: event,
1987
- args
1988
- });
1989
- });
1990
- __privateSet(this, _options3, options);
1991
- __privateSet(this, _messagePort, options.messagePort);
1992
- this.SetupPrimary();
1993
- if (__privateGet(this, _options3).role.localeCompare("CLIENT") === 0) {
1994
- const ping = () => {
1995
- __privateSet(this, _pingTimeout, setTimeout(() => {
1996
- const pingData = {
1997
- id: __privateGet(this, _ipcMessageManager).id,
1998
- groups: __privateGet(this, _options3).groups
1999
- };
2000
- if (__privateGet(this, _options3).context) {
2001
- pingData.context = __privateGet(this, _options3).context;
2002
- }
2003
- this.emit("ping", pingData, (response) => {
2004
- });
2005
- ping();
2006
- }, 1e3).unref());
2007
- };
2008
- ping();
2009
- } else {
2010
- this.on("ping", (pingData, callback) => {
2011
- const { id, groups, context } = pingData;
2012
- if (__privateGet(this, _clients)[id]) {
2013
- clearTimeout(__privateGet(this, _clients)[id].timeout);
2014
- __privateGet(this, _clients)[id].pingCount++;
2015
- __privateGet(this, _clients)[id].timeout = setTimeout(() => {
2016
- delete __privateGet(this, _clients)[id];
2017
- }, 2e3);
2018
- __privateGet(this, _clients)[id].groups = groups;
2019
- __privateGet(this, _clients)[id].context = context;
2020
- } else {
2021
- __privateGet(this, _clients)[id] = {
2022
- id,
2023
- clientConnected: /* @__PURE__ */ new Date(),
2024
- pingCount: 0,
2025
- timeout: setTimeout(() => {
2026
- delete __privateGet(this, _clients)[id];
2027
- }, 2e3),
2028
- groups,
2029
- context
2030
- };
2031
- }
2032
- callback("ok");
2033
- });
2034
- }
2035
- }
2036
- get clients() {
2037
- return __privateGet(this, _clients);
2038
- }
2039
- get groups() {
2040
- return __privateGet(this, _options3).groups;
2041
- }
2042
- // p.on('fromworker', (arg1: number, arg2: string, callback: any) => {
2043
- on(event, callback, ctx) {
2044
- if (__privateGet(this, _events)[event]) {
2045
- delete __privateGet(this, _events)[event];
2046
- }
2047
- const eventObject = {
2048
- event,
2049
- callback,
2050
- ctx
2051
- };
2052
- __privateGet(this, _events)[eventObject.event] = eventObject;
2053
- return this;
2054
- }
2055
- off(event, callback) {
2056
- if (__privateGet(this, _events)[event]) {
2057
- delete __privateGet(this, _events)[event];
2058
- }
2059
- return this;
2060
- }
2061
- emit(event, ...args) {
2062
- (async () => {
2063
- var _a;
2064
- try {
2065
- const retVal = await ((_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.SendMessage({
2066
- __eventName: event,
2067
- args: args.slice(0, args.length - 1)
2068
- }));
2069
- args[args.length - 1](retVal);
2070
- } catch (error) {
2071
- if (__privateGet(this, _options3).ignoreEvents) {
2072
- if (__privateGet(this, _options3).ignoreEvents.indexOf(error.__eventName) !== -1) {
2073
- return;
2074
- }
2075
- }
2076
- __privateGet(this, _options3).logger.error(chalk$1.red(`RedisMessageHandler:emit(): Error: [${JSON.stringify(error)}]`));
2077
- }
2078
- })();
2079
- return this;
2080
- }
2081
- emitWithError(event, args, responseCb, errorCb) {
2082
- (async () => {
2083
- var _a;
2084
- try {
2085
- const retVal = await ((_a = __privateGet(this, _ipcMessageManager)) == null ? void 0 : _a.SendMessage({
2086
- __eventName: event,
2087
- args: [args]
2088
- }));
2089
- responseCb(retVal);
2090
- } catch (error) {
2091
- if (__privateGet(this, _options3).ignoreEvents) {
2092
- if (__privateGet(this, _options3).ignoreEvents.indexOf(error.__eventName) !== -1) {
2093
- return;
2094
- }
2095
- }
2096
- errorCb(error);
2097
- }
2098
- })();
2099
- return this;
2100
- }
2101
- }
2102
- _ipcMessageManager = new WeakMap();
2103
- _options3 = new WeakMap();
2104
- _events = new WeakMap();
2105
- _clients = new WeakMap();
2106
- _pingTimeout = new WeakMap();
2107
- _messagePort = new WeakMap();
2108
- _messageSender = new WeakMap();
2109
- _ProcessResponseMessage = new WeakMap();
2110
- _processPayload = new WeakMap();
2111
1628
  export {
2112
1629
  AddSchema,
2113
1630
  CheckValidChar,
2114
- GenericMessageManager,
2115
1631
  GetErrorPayload,
2116
1632
  JestSleep,
2117
1633
  ModelDelimeter,
@@ -2122,7 +1638,6 @@ export {
2122
1638
  STSOptionsBase,
2123
1639
  Sleep,
2124
1640
  Validate,
2125
- WebWorkerMessageHandler,
2126
1641
  compareParameterTypes,
2127
1642
  defaultLogger
2128
1643
  };