javonet-ruby-sdk 2.5.18 → 2.5.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/VERSION +1 -1
  4. data/javonet-ruby-sdk.gemspec +2 -3
  5. data/lib/javonet-ruby-sdk/Binaries/Clr/JavonetClrRuntime.dll +0 -0
  6. data/lib/javonet-ruby-sdk/Binaries/Jvm/JavonetJvmRuntime.jar +0 -0
  7. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetActivationService.so +0 -0
  8. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetCppRuntimeNative.so +0 -0
  9. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetGoRuntimeNative.so +0 -0
  10. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetJvmRuntimeNative.so +0 -0
  11. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetNetcoreRuntimeNative.so +0 -0
  12. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPhpRuntimeNative.so +0 -0
  13. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPythonRuntimeNative.so +0 -0
  14. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetRuby342RuntimeNative.so +0 -0
  15. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetRubyRuntimeNative.so +0 -0
  16. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpClient.so +0 -0
  17. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpTlsClient.so +0 -0
  18. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libUtils.so +0 -0
  19. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/version.txt +1 -1
  20. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  21. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  22. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  23. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  24. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  25. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs1816RuntimeNative.so +0 -0
  26. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs2214RuntimeNative.so +0 -0
  27. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  28. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerl534RuntimeNative.so +0 -0
  29. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  30. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPhpRuntimeNative.so +0 -0
  31. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPython2RuntimeNative.so +0 -0
  32. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  33. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRuby278RuntimeNative.so +0 -0
  34. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRuby342RuntimeNative.so +0 -0
  35. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  36. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpClient.so +0 -0
  37. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpTlsClient.so +0 -0
  38. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libUtils.so +0 -0
  39. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/version.txt +1 -1
  40. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  41. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  42. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  43. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  44. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  45. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejs2214RuntimeNative.dylib +0 -0
  46. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  47. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  48. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPhpRuntimeNative.dylib +0 -0
  49. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  50. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRuby278RuntimeNative.dylib +0 -0
  51. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRuby342RuntimeNative.dylib +0 -0
  52. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  53. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpClient.dylib +0 -0
  54. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpTlsClient.dylib +0 -0
  55. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  56. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/version.txt +1 -1
  57. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetActivationService.dll +0 -0
  58. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetCppRuntimeNative.dll +0 -0
  59. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetGoRuntimeNative.dll +0 -0
  60. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetJvmRuntimeNative.dll +0 -0
  61. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetNetcoreRuntimeNative.dll +0 -0
  62. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPhpRuntimeNative.dll +0 -0
  63. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPythonRuntimeNative.dll +0 -0
  64. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRuby278RuntimeNative.dll +0 -0
  65. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRubyRuntimeNative.dll +0 -0
  66. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpClient.dll +0 -0
  67. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpTlsClient.dll +0 -0
  68. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Utils.dll +0 -0
  69. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/version.txt +0 -0
  70. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  71. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  72. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  73. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  74. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  75. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  76. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejs2214RuntimeNative.dll +0 -0
  77. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  78. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  79. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhpRuntimeNative.dll +0 -0
  80. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPython2RuntimeNative.dll +0 -0
  81. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  82. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRuby278RuntimeNative.dll +0 -0
  83. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  84. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpClient.dll +0 -0
  85. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpTlsClient.dll +0 -0
  86. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Utils.dll +0 -0
  87. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/version.txt +1 -1
  88. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetActivationService.dll +0 -0
  89. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetClrRuntimeNative.dll +0 -0
  90. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetCppRuntimeNative.dll +0 -0
  91. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetGoRuntimeNative.dll +0 -0
  92. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetJvmRuntimeNative.dll +0 -0
  93. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetNetcoreRuntimeNative.dll +0 -0
  94. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPhpRuntimeNative.dll +0 -0
  95. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPython2RuntimeNative.dll +0 -0
  96. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPythonRuntimeNative.dll +0 -0
  97. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpClient.dll +0 -0
  98. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpTlsClient.dll +0 -0
  99. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Utils.dll +0 -0
  100. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/version.txt +1 -1
  101. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Core.dll +0 -0
  102. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Utils.dll +0 -0
  103. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/transmitter/TransmitterWebsocket.cjs +1 -1
  104. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/transmitter/TransmitterWebsocketBrowser.cjs +1 -2
  105. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/webSocketClient/WebSocketClient.cjs +62 -74
  106. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/webSocketClient/WebSocketClientBrowser.cjs +51 -56
  107. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeContext.cjs +8 -4
  108. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/webSocketClient/WebSocketClient.d.ts +5 -10
  109. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/webSocketClient/WebSocketClientBrowser.d.ts +16 -26
  110. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  111. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  112. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  113. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  114. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  115. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  116. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  117. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  118. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  119. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/lib/libplfill.so +0 -0
  120. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +96 -96
  121. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  122. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  123. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  124. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  125. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  126. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +19 -19
  127. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/Interpreter.py +1 -1
  128. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/webSocketClient/WebSocketClient.py +40 -26
  129. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/interpreter/Interpreter.py +1 -1
  130. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/webSocketClient/WebSocketClient.py +53 -35
  131. data/lib/javonet-ruby-sdk/Binaries/version.txt +1 -1
  132. data/lib/javonet-ruby-sdk/sdk/runtime_factory.rb +4 -4
  133. metadata +8 -6
@@ -18,7 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var WebSocketClientBrowser_exports = {};
20
20
  __export(WebSocketClientBrowser_exports, {
21
- WebSocketClientBrowser: () => WebSocketClientBrowser
21
+ WebSocketClientBrowser: () => WebSocketClientBrowser,
22
+ clients: () => clients
22
23
  });
23
24
  module.exports = __toCommonJS(WebSocketClientBrowser_exports);
24
25
  var import_Runtime = require("../../utils/Runtime.cjs");
@@ -35,6 +36,7 @@ let WsClient = null;
35
36
  if ((0, import_Runtime.isBrowserRuntime)()) {
36
37
  WsClient = WebSocket;
37
38
  }
39
+ const clients = {};
38
40
  class WebSocketClientBrowser {
39
41
  /**
40
42
  * @param {string} url
@@ -42,10 +44,15 @@ class WebSocketClientBrowser {
42
44
  */
43
45
  constructor(url, options) {
44
46
  this.url = url;
45
- this.instance = null;
46
- this.isConnected = false;
47
47
  this.isDisconnectedAfterMessage = options?.isDisconnectedAfterMessage ?? false;
48
48
  }
49
+ /** @type {WebSocket | null} */
50
+ get instance() {
51
+ return clients[this.url] || null;
52
+ }
53
+ get isConnected() {
54
+ return this.instance ? this.instance.readyState === WebSocket.OPEN : false;
55
+ }
49
56
  /**
50
57
  * Sends messageArray through websocket connection
51
58
  * @async
@@ -54,94 +61,81 @@ class WebSocketClientBrowser {
54
61
  */
55
62
  send(messageArray) {
56
63
  return new Promise((resolve, reject) => {
57
- try {
58
- if (this.isConnected) {
59
- this._sendMessage(messageArray, resolve, reject);
60
- } else {
61
- this._connect().then(() => {
62
- this._sendMessage(messageArray, resolve, reject);
63
- });
64
- }
65
- } catch (error) {
66
- reject(error);
64
+ const client = this.instance;
65
+ if (client && this.isConnected) {
66
+ this._sendMessage(client, messageArray, resolve, reject);
67
+ } else {
68
+ this._connect().then((ws) => {
69
+ this._sendMessage(ws, messageArray, resolve, reject);
70
+ }).catch(reject);
67
71
  }
68
72
  });
69
73
  }
70
74
  /**
71
75
  * Disconnects the WebSocket by terminating the connection.
72
- * @returns {void}
73
- *
74
76
  */
75
77
  disconnect() {
76
- if (this.instance) {
77
- this.instance.close();
78
+ const client = this.instance;
79
+ if (client) {
80
+ client.close();
81
+ delete clients[this.url];
78
82
  }
79
- this.isConnected = false;
80
83
  }
81
84
  /**
82
85
  * Connects to the WebSocket server.
83
86
  * @private
84
87
  * @async
85
- * @returns {Promise<void>} - A promise that resolves when the connection is established.
88
+ * @returns {Promise<WebSocket>}
86
89
  */
87
90
  _connect() {
88
91
  return new Promise((resolve, reject) => {
89
- if (WsClient === null) {
92
+ if (!WsClient) {
90
93
  return reject(new Error("missing WebSocket client"));
91
94
  }
92
- this.instance = new WsClient(this.url);
93
- this.instance.binaryType = "arraybuffer";
94
- this.instance.addEventListener(WebSocketState.OPEN, () => {
95
- this.isConnected = true;
96
- resolve();
97
- });
98
- this.instance.addEventListener(WebSocketState.ERROR, (error) => {
99
- reject(error);
100
- });
101
- this.instance.addEventListener(WebSocketState.CLOSE, () => {
102
- this.isConnected = false;
95
+ let client = clients[this.url];
96
+ if (!client) {
97
+ client = new WsClient(this.url);
98
+ client.binaryType = "arraybuffer";
99
+ clients[this.url] = client;
100
+ }
101
+ client.addEventListener(WebSocketState.OPEN, () => resolve(client));
102
+ client.addEventListener(WebSocketState.ERROR, reject);
103
+ client.addEventListener(WebSocketState.CLOSE, () => {
104
+ reject(new Error("Connection closed before receiving message"));
103
105
  });
104
106
  });
105
107
  }
106
108
  /**
107
109
  * Sends the data to the WebSocket server and listens for a response.
108
110
  * @private
109
- * @async
110
- * @param {Int8Array} data - The data to send.
111
- * @param {Function} resolve - The resolve function for the Promise.
112
- * @param {Function} reject - The reject function for the Promise.
113
- * @returns {void}
111
+ * @param {WebSocket} client
112
+ * @param {Int8Array} data
113
+ * @param {(value: Int8Array) => void} resolve
114
+ * @param {(reason?: any) => void} reject
114
115
  */
115
- _sendMessage(data, resolve, reject) {
116
+ _sendMessage(client, data, resolve, reject) {
116
117
  try {
117
- if (this.instance === null || !this.instance) {
118
- throw new Error("error websocket not connected");
119
- }
120
118
  const arrayBuffer = data.buffer;
121
- this.instance.send(arrayBuffer);
122
- const handleMessage = (msg) => {
123
- if (this.instance === null || !this.instance) {
124
- throw new Error("error websocket not connected");
119
+ client.send(arrayBuffer);
120
+ const handleMessage = (message) => {
121
+ if (!message?.data) {
122
+ return reject(new Error("Invalid message received"));
125
123
  }
126
- const byteArray = new Int8Array(msg.data);
124
+ const byteArray = new Int8Array(message?.data);
127
125
  resolve(byteArray);
128
126
  if (this.isDisconnectedAfterMessage) {
129
127
  this.disconnect();
130
128
  }
131
- this.instance.removeEventListener(WebSocketState.MESSAGE, handleMessage);
132
- this.instance.removeEventListener(WebSocketState.ERROR, handleError);
129
+ client.removeEventListener(WebSocketState.MESSAGE, handleMessage);
130
+ client.removeEventListener(WebSocketState.ERROR, handleError);
133
131
  };
134
132
  const handleError = (error) => {
135
133
  reject(error);
136
- if (this.instance) {
137
- this.instance.removeEventListener(WebSocketState.MESSAGE, handleMessage);
138
- this.instance.removeEventListener(WebSocketState.ERROR, handleError);
139
- }
134
+ client.removeEventListener(WebSocketState.MESSAGE, handleMessage);
135
+ client.removeEventListener(WebSocketState.ERROR, handleError);
140
136
  };
141
- if (this.instance) {
142
- this.instance.addEventListener(WebSocketState.MESSAGE, handleMessage);
143
- this.instance.addEventListener(WebSocketState.ERROR, handleError);
144
- }
137
+ client.addEventListener(WebSocketState.MESSAGE, handleMessage);
138
+ client.addEventListener(WebSocketState.ERROR, handleError);
145
139
  } catch (err) {
146
140
  reject(err);
147
141
  }
@@ -149,5 +143,6 @@ class WebSocketClientBrowser {
149
143
  }
150
144
  // Annotate the CommonJS export names for ESM import in node:
151
145
  0 && (module.exports = {
152
- WebSocketClientBrowser
146
+ WebSocketClientBrowser,
147
+ clients
153
148
  });
@@ -75,10 +75,6 @@ class RuntimeContext {
75
75
  * @returns {RuntimeContext}
76
76
  */
77
77
  static getInstance(runtimeName, connectionData) {
78
- if (!_Transmitter) {
79
- const { Transmitter } = require("../core/transmitter/Transmitter.cjs");
80
- _Transmitter = Transmitter;
81
- }
82
78
  switch (connectionData.connectionType) {
83
79
  case import_ConnectionType.ConnectionType.IN_MEMORY:
84
80
  const key = String(runtimeName);
@@ -88,6 +84,10 @@ class RuntimeContext {
88
84
  runtimeCtx.#currentCommand = null;
89
85
  return runtimeCtx;
90
86
  } else {
87
+ if (!_Transmitter) {
88
+ const { Transmitter } = require("../core/transmitter/Transmitter.cjs");
89
+ _Transmitter = Transmitter;
90
+ }
91
91
  const runtimeCtx = new RuntimeContext(runtimeName, connectionData);
92
92
  RuntimeContext.memoryRuntimeContexts.set(key, runtimeCtx);
93
93
  return runtimeCtx;
@@ -100,6 +100,10 @@ class RuntimeContext {
100
100
  runtimeCtx.#currentCommand = null;
101
101
  return runtimeCtx;
102
102
  } else {
103
+ if (!_Transmitter) {
104
+ const { Transmitter } = require("../core/transmitter/Transmitter.cjs");
105
+ _Transmitter = Transmitter;
106
+ }
103
107
  const runtimeCtx = new RuntimeContext(runtimeName, connectionData);
104
108
  RuntimeContext.networkRuntimeContexts.set(key1, runtimeCtx);
105
109
  return runtimeCtx;
@@ -1,3 +1,5 @@
1
+ /** @type {Record<string, wsClient>} */
2
+ export const clients: Record<string, wsClient>;
1
3
  export type wsClient = import("ws").WebSocket;
2
4
  export type WebSocketClass = typeof import("ws").WebSocket;
3
5
  /**
@@ -13,18 +15,11 @@ export class WebSocketClient {
13
15
  });
14
16
  /** @type {string} */
15
17
  url: string;
16
- /** @type {wsClient | null} */
17
- instance: wsClient | null;
18
- /** @type {boolean} */
19
- isConnected: boolean;
20
18
  /** @type {boolean} */
21
19
  isDisconnectedAfterMessage: boolean;
22
- /**
23
- * Connects to the WebSocket server.
24
- * @async
25
- * @returns {Promise<wsClient>} - A promise that resolves when the connection is established.
26
- */
27
- connect(): Promise<wsClient>;
20
+ /** @type {wsClient | null} */
21
+ get instance(): wsClient | null;
22
+ get isConnected(): boolean;
28
23
  /**
29
24
  * Sends messageArray through websocket connection
30
25
  * @async
@@ -1,10 +1,12 @@
1
- export type Options = {
2
- isDisconnectedAfterMessage: boolean;
3
- };
4
1
  /**
5
2
  * @typedef {object} Options
6
- * @property {boolean} isDisconnectedAfterMessage
3
+ * @property {boolean} [isDisconnectedAfterMessage]
7
4
  */
5
+ /** @type {Record<string, WebSocket>} */
6
+ export const clients: Record<string, WebSocket>;
7
+ export type Options = {
8
+ isDisconnectedAfterMessage?: boolean | undefined;
9
+ };
8
10
  /**
9
11
  * WebSocketClient class that handles WebSocket connection, message sending, and automatic disconnection.
10
12
  */
@@ -14,22 +16,13 @@ export class WebSocketClientBrowser {
14
16
  * @param {Options} [options]
15
17
  */
16
18
  constructor(url: string, options?: Options);
17
- /**
18
- * @type {string}
19
- */
19
+ /** @type {string} */
20
20
  url: string;
21
- /**
22
- * @type {WebSocket | null}
23
- */
24
- instance: WebSocket | null;
25
- /**
26
- * @type {boolean} isConnected indicates whether the WebSocket is connected.
27
- */
28
- isConnected: boolean;
29
- /**
30
- * @type {boolean}
31
- */
21
+ /** @type {boolean} */
32
22
  isDisconnectedAfterMessage: boolean;
23
+ /** @type {WebSocket | null} */
24
+ get instance(): WebSocket | null;
25
+ get isConnected(): boolean;
33
26
  /**
34
27
  * Sends messageArray through websocket connection
35
28
  * @async
@@ -39,25 +32,22 @@ export class WebSocketClientBrowser {
39
32
  send(messageArray: Int8Array): Promise<Int8Array>;
40
33
  /**
41
34
  * Disconnects the WebSocket by terminating the connection.
42
- * @returns {void}
43
- *
44
35
  */
45
36
  disconnect(): void;
46
37
  /**
47
38
  * Connects to the WebSocket server.
48
39
  * @private
49
40
  * @async
50
- * @returns {Promise<void>} - A promise that resolves when the connection is established.
41
+ * @returns {Promise<WebSocket>}
51
42
  */
52
43
  private _connect;
53
44
  /**
54
45
  * Sends the data to the WebSocket server and listens for a response.
55
46
  * @private
56
- * @async
57
- * @param {Int8Array} data - The data to send.
58
- * @param {Function} resolve - The resolve function for the Promise.
59
- * @param {Function} reject - The reject function for the Promise.
60
- * @returns {void}
47
+ * @param {WebSocket} client
48
+ * @param {Int8Array} data
49
+ * @param {(value: Int8Array) => void} resolve
50
+ * @param {(reason?: any) => void} reject
61
51
  */
62
52
  private _sendMessage;
63
53
  }