javonet-nodejs-sdk 2.5.17 → 2.5.18

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 (193) hide show
  1. package/dist/core/handler/AbstractHandler.cjs +23 -6
  2. package/dist/core/handler/ArrayGetItemHandler.cjs +4 -1
  3. package/dist/core/handler/ArrayGetRankHandler.cjs +3 -0
  4. package/dist/core/handler/ArrayGetSizeHandler.cjs +3 -0
  5. package/dist/core/handler/ArrayHandler.cjs +3 -0
  6. package/dist/core/handler/ArraySetItemHandler.cjs +4 -1
  7. package/dist/core/handler/CastingHandler.cjs +3 -1
  8. package/dist/core/handler/ConvertTypeHandler.cjs +4 -4
  9. package/dist/core/handler/CreateClassInstanceHandler.cjs +5 -2
  10. package/dist/core/handler/DestructReferenceHandler.cjs +3 -0
  11. package/dist/core/handler/EnableNamespaceHandler.cjs +3 -0
  12. package/dist/core/handler/EnableTypeHandler.cjs +3 -0
  13. package/dist/core/handler/GetGlobalStaticFieldHandler.cjs +3 -0
  14. package/dist/core/handler/GetInstanceFieldHandler.cjs +3 -0
  15. package/dist/core/handler/GetInstanceMethodAsDelegateHandler.cjs +15 -4
  16. package/dist/core/handler/GetStaticFieldHandler.cjs +4 -0
  17. package/dist/core/handler/GetStaticMethodAsDelegateHandler.cjs +8 -6
  18. package/dist/core/handler/GetTypeHandler.cjs +10 -2
  19. package/dist/core/handler/Handler.cjs +8 -11
  20. package/dist/core/handler/InvokeGlobalFunctionHandler.cjs +3 -0
  21. package/dist/core/handler/InvokeInstanceMethodHandler.cjs +3 -0
  22. package/dist/core/handler/InvokeStaticMethodHandler.cjs +3 -0
  23. package/dist/core/handler/LoadLibraryHandler.cjs +4 -0
  24. package/dist/core/handler/SetGlobalStaticFieldHandler.cjs +3 -0
  25. package/dist/core/handler/SetInstanceFieldHandler.cjs +3 -0
  26. package/dist/core/handler/SetStaticFieldHandler.cjs +3 -0
  27. package/dist/core/handler/ValueHandler.cjs +4 -0
  28. package/dist/core/interpreter/Interpreter.cjs +28 -12
  29. package/dist/core/namespaceCache/NamespaceCache.cjs +12 -0
  30. package/dist/core/protocol/CommandDeserializer.cjs +10 -2
  31. package/dist/core/protocol/CommandSerializer.cjs +24 -4
  32. package/dist/core/protocol/TypeDeserializer.cjs +35 -0
  33. package/dist/core/protocol/TypeSerializer.cjs +51 -7
  34. package/dist/core/receiver/Receiver.cjs +1 -1
  35. package/dist/core/receiver/ReceiverNative.cjs +6 -0
  36. package/dist/core/transmitter/Transmitter.cjs +18 -2
  37. package/dist/core/transmitter/TransmitterWebsocket.cjs +8 -5
  38. package/dist/core/transmitter/TransmitterWebsocketBrowser.cjs +1 -1
  39. package/dist/core/transmitter/TransmitterWrapper.cjs +25 -8
  40. package/dist/core/typeCache/TypeCache.cjs +8 -0
  41. package/dist/core/webSocketClient/WebSocketClient.cjs +22 -12
  42. package/dist/core/webSocketClient/WebSocketClientBrowser.cjs +2 -2
  43. package/dist/sdk/ConfigRuntimeFactory.cjs +60 -55
  44. package/dist/sdk/InvocationContext.cjs +81 -23
  45. package/dist/sdk/Javonet.cjs +14 -33
  46. package/dist/sdk/RuntimeContext.cjs +85 -30
  47. package/dist/sdk/RuntimeFactory.cjs +3 -0
  48. package/dist/sdk/tools/ActivationHelper.cjs +66 -0
  49. package/dist/sdk/tools/JsonResolver.cjs +214 -0
  50. package/dist/types/core/handler/AbstractHandler.d.ts +23 -4
  51. package/dist/types/core/handler/ArrayGetItemHandler.d.ts +8 -1
  52. package/dist/types/core/handler/ArrayGetRankHandler.d.ts +8 -1
  53. package/dist/types/core/handler/ArrayGetSizeHandler.d.ts +8 -1
  54. package/dist/types/core/handler/ArrayHandler.d.ts +8 -1
  55. package/dist/types/core/handler/ArraySetItemHandler.d.ts +8 -1
  56. package/dist/types/core/handler/CastingHandler.d.ts +4 -0
  57. package/dist/types/core/handler/ConvertTypeHandler.d.ts +8 -4
  58. package/dist/types/core/handler/CreateClassInstanceHandler.d.ts +8 -1
  59. package/dist/types/core/handler/DestructReferenceHandler.d.ts +8 -1
  60. package/dist/types/core/handler/EnableNamespaceHandler.d.ts +8 -1
  61. package/dist/types/core/handler/EnableTypeHandler.d.ts +8 -1
  62. package/dist/types/core/handler/GetGlobalStaticFieldHandler.d.ts +8 -1
  63. package/dist/types/core/handler/GetInstanceFieldHandler.d.ts +8 -1
  64. package/dist/types/core/handler/GetStaticFieldHandler.d.ts +9 -1
  65. package/dist/types/core/handler/GetStaticMethodAsDelegateHandler.d.ts +4 -3
  66. package/dist/types/core/handler/GetTypeHandler.d.ts +17 -8
  67. package/dist/types/core/handler/Handler.d.ts +8 -8
  68. package/dist/types/core/handler/InvokeDelegateHandler.d.ts +4 -0
  69. package/dist/types/core/handler/InvokeGlobalFunctionHandler.d.ts +8 -1
  70. package/dist/types/core/handler/InvokeInstanceMethodHandler.d.ts +8 -1
  71. package/dist/types/core/handler/InvokeStaticMethodHandler.d.ts +8 -1
  72. package/dist/types/core/handler/LoadLibraryHandler.d.ts +8 -3
  73. package/dist/types/core/handler/SetGlobalStaticFieldHandler.d.ts +4 -0
  74. package/dist/types/core/handler/SetInstanceFieldHandler.d.ts +8 -1
  75. package/dist/types/core/handler/SetStaticFieldHandler.d.ts +8 -1
  76. package/dist/types/core/handler/ValueHandler.d.ts +9 -1
  77. package/dist/types/core/interpreter/Interpreter.d.ts +11 -10
  78. package/dist/types/core/namespaceCache/NamespaceCache.d.ts +17 -5
  79. package/dist/types/core/protocol/CommandDeserializer.d.ts +10 -3
  80. package/dist/types/core/protocol/CommandSerializer.d.ts +19 -2
  81. package/dist/types/core/protocol/TypeDeserializer.d.ts +46 -11
  82. package/dist/types/core/protocol/TypeSerializer.d.ts +53 -13
  83. package/dist/types/core/receiver/Receiver.d.ts +2 -2
  84. package/dist/types/core/receiver/ReceiverNative.d.ts +8 -2
  85. package/dist/types/core/transmitter/Transmitter.d.ts +20 -4
  86. package/dist/types/core/transmitter/TransmitterWebsocket.d.ts +8 -4
  87. package/dist/types/core/transmitter/TransmitterWebsocketBrowser.d.ts +4 -7
  88. package/dist/types/core/transmitter/TransmitterWrapper.d.ts +12 -3
  89. package/dist/types/core/typeCache/TypeCache.d.ts +15 -5
  90. package/dist/types/core/webSocketClient/WebSocketClient.d.ts +17 -21
  91. package/dist/types/sdk/ConfigRuntimeFactory.d.ts +9 -6
  92. package/dist/types/sdk/InvocationContext.d.ts +38 -6
  93. package/dist/types/sdk/Javonet.d.ts +12 -7
  94. package/dist/types/sdk/RuntimeContext.d.ts +23 -7
  95. package/dist/types/sdk/RuntimeFactory.d.ts +9 -2
  96. package/dist/types/sdk/tools/ActivationHelper.d.ts +20 -0
  97. package/dist/types/sdk/tools/JsonResolver.d.ts +87 -0
  98. package/dist/types/utils/Command.d.ts +18 -14
  99. package/dist/types/utils/CustomError.d.ts +5 -1
  100. package/dist/types/utils/Runtime.d.ts +1 -2
  101. package/dist/types/utils/RuntimeNameHandler.d.ts +6 -2
  102. package/dist/types/utils/Type.d.ts +1 -0
  103. package/dist/types/utils/TypesHandler.d.ts +16 -0
  104. package/dist/types/utils/UtilsConst.d.ts +32 -0
  105. package/dist/types/utils/connectionData/IConnectionData.d.ts +16 -3
  106. package/dist/types/utils/connectionData/InMemoryConnectionData.d.ts +4 -3
  107. package/dist/types/utils/connectionData/WsConnectionData.d.ts +7 -10
  108. package/dist/types/utils/nodejs/connectionData/TcpConnectionData.d.ts +17 -10
  109. package/dist/utils/Command.cjs +9 -9
  110. package/dist/utils/CustomError.cjs +4 -0
  111. package/dist/utils/RuntimeNameHandler.cjs +1 -1
  112. package/dist/utils/Type.cjs +2 -1
  113. package/dist/utils/TypesHandler.cjs +55 -0
  114. package/dist/utils/UtilsConst.cjs +101 -0
  115. package/dist/utils/connectionData/IConnectionData.cjs +9 -0
  116. package/dist/utils/connectionData/InMemoryConnectionData.cjs +10 -0
  117. package/dist/utils/connectionData/WsConnectionData.cjs +4 -0
  118. package/dist/utils/nodejs/connectionData/TcpConnectionData.cjs +33 -3
  119. package/lib/core/delegatesCache/DelegatesCache.js +1 -0
  120. package/lib/core/handler/AbstractHandler.js +27 -9
  121. package/lib/core/handler/ArrayGetItemHandler.js +9 -1
  122. package/lib/core/handler/ArrayGetRankHandler.js +9 -0
  123. package/lib/core/handler/ArrayGetSizeHandler.js +8 -0
  124. package/lib/core/handler/ArrayHandler.js +8 -0
  125. package/lib/core/handler/ArraySetItemHandler.js +11 -1
  126. package/lib/core/handler/CastingHandler.js +8 -1
  127. package/lib/core/handler/ConvertTypeHandler.js +9 -4
  128. package/lib/core/handler/CreateClassInstanceHandler.js +10 -4
  129. package/lib/core/handler/DestructReferenceHandler.js +8 -0
  130. package/lib/core/handler/EnableNamespaceHandler.js +8 -0
  131. package/lib/core/handler/EnableTypeHandler.js +8 -0
  132. package/lib/core/handler/GetGlobalStaticFieldHandler.js +9 -0
  133. package/lib/core/handler/GetInstanceFieldHandler.js +8 -0
  134. package/lib/core/handler/GetInstanceMethodAsDelegateHandler.js +9 -4
  135. package/lib/core/handler/GetStaticFieldHandler.js +9 -0
  136. package/lib/core/handler/GetStaticMethodAsDelegateHandler.js +8 -7
  137. package/lib/core/handler/GetTypeHandler.js +15 -5
  138. package/lib/core/handler/Handler.js +13 -18
  139. package/lib/core/handler/InvokeDelegateHandler.js +5 -0
  140. package/lib/core/handler/InvokeGlobalFunctionHandler.js +11 -1
  141. package/lib/core/handler/InvokeInstanceMethodHandler.js +8 -0
  142. package/lib/core/handler/InvokeStaticMethodHandler.js +8 -0
  143. package/lib/core/handler/LoadLibraryHandler.js +11 -0
  144. package/lib/core/handler/SetGlobalStaticFieldHandler.js +10 -0
  145. package/lib/core/handler/SetInstanceFieldHandler.js +7 -0
  146. package/lib/core/handler/SetStaticFieldHandler.js +8 -0
  147. package/lib/core/handler/ValueHandler.js +9 -0
  148. package/lib/core/interpreter/Interpreter.js +42 -24
  149. package/lib/core/namespaceCache/NamespaceCache.js +14 -0
  150. package/lib/core/protocol/CommandDeserializer.js +11 -2
  151. package/lib/core/protocol/CommandSerializer.js +40 -9
  152. package/lib/core/protocol/TypeDeserializer.js +36 -0
  153. package/lib/core/protocol/TypeSerializer.js +62 -7
  154. package/lib/core/receiver/Receiver.js +3 -2
  155. package/lib/core/receiver/ReceiverNative.js +8 -0
  156. package/lib/core/transmitter/Transmitter.js +18 -1
  157. package/lib/core/transmitter/TransmitterWebsocket.js +12 -5
  158. package/lib/core/transmitter/TransmitterWebsocketBrowser.js +2 -4
  159. package/lib/core/transmitter/TransmitterWrapper.js +27 -6
  160. package/lib/core/typeCache/TypeCache.js +9 -0
  161. package/lib/core/webSocketClient/WebSocketClient.js +33 -30
  162. package/lib/core/webSocketClient/WebSocketClientBrowser.js +5 -6
  163. package/lib/sdk/ConfigRuntimeFactory.js +70 -68
  164. package/lib/sdk/InvocationContext.js +94 -26
  165. package/lib/sdk/Javonet.js +18 -36
  166. package/lib/sdk/RuntimeContext.js +109 -29
  167. package/lib/sdk/RuntimeFactory.js +7 -0
  168. package/lib/sdk/tools/ActivationHelper.js +51 -0
  169. package/lib/sdk/tools/JsonResolver.js +226 -0
  170. package/lib/types.d.ts +57 -0
  171. package/lib/utils/Command.js +14 -9
  172. package/lib/utils/CustomError.js +5 -0
  173. package/lib/utils/Runtime.js +1 -1
  174. package/lib/utils/RuntimeLogger.js +3 -0
  175. package/lib/utils/RuntimeNameHandler.js +6 -1
  176. package/lib/utils/Type.js +2 -1
  177. package/lib/utils/TypesHandler.js +35 -0
  178. package/lib/utils/UtilsConst.js +88 -0
  179. package/lib/utils/connectionData/IConnectionData.js +14 -0
  180. package/lib/utils/connectionData/InMemoryConnectionData.js +15 -0
  181. package/lib/utils/connectionData/WsConnectionData.js +9 -0
  182. package/lib/utils/nodejs/connectionData/TcpConnectionData.js +35 -5
  183. package/package.json +4 -3
  184. package/dist/sdk/tools/browser/ConfigSourceResolver.cjs +0 -153
  185. package/dist/sdk/tools/nodejs/JsonFileResolver.cjs +0 -120
  186. package/dist/types/sdk/tools/browser/ConfigSourceResolver.d.ts +0 -46
  187. package/dist/types/sdk/tools/nodejs/JsonFileResolver.d.ts +0 -13
  188. package/dist/types/utils/nodejs/TypesConverter.d.ts +0 -48
  189. package/dist/utils/nodejs/TypesConverter.cjs +0 -102
  190. package/lib/declarations.d.ts +0 -35
  191. package/lib/sdk/tools/browser/ConfigSourceResolver.js +0 -146
  192. package/lib/sdk/tools/nodejs/JsonFileResolver.js +0 -106
  193. package/lib/utils/nodejs/TypesConverter.js +0 -91
@@ -23,26 +23,43 @@ __export(AbstractHandler_exports, {
23
23
  module.exports = __toCommonJS(AbstractHandler_exports);
24
24
  var import_Command = require("../../utils/Command.cjs");
25
25
  class AbstractHandler {
26
+ /**
27
+ * @type {Record<number, AbstractHandler>}
28
+ */
26
29
  handlers = [];
27
30
  constructor() {
28
31
  if (new.target === AbstractHandler) throw new TypeError("You cannot instantiate abstract class");
29
32
  }
30
- // eslint-disable-next-line no-unused-vars
33
+ /**
34
+ * @param {Command} command
35
+ */
31
36
  process(command) {
32
37
  throw new Error("process must be implemented");
33
38
  }
39
+ /**
40
+ * @param {Command} command
41
+ */
34
42
  handleCommand(command) {
35
43
  this.iterate(command);
36
44
  return this.process(command);
37
45
  }
38
- iterate(cmd) {
39
- for (let i = 0; i < cmd.payload.length; i++) {
40
- if (cmd.payload[i] instanceof import_Command.Command) {
41
- let inner = cmd.payload[i];
42
- cmd.payload[i] = this.handlers[inner.commandType].handleCommand(inner);
46
+ /**
47
+ * @param {Command} command
48
+ */
49
+ iterate(command) {
50
+ for (let i = 0; i < command.payload.length; i++) {
51
+ if (command.payload[i] instanceof import_Command.Command) {
52
+ let inner = command.payload[i];
53
+ command.payload[i] = this.handlers[inner.commandType].handleCommand(inner);
43
54
  }
44
55
  }
45
56
  }
57
+ /**
58
+ *
59
+ * @param {*} error
60
+ * @param {*} class_name
61
+ * @returns
62
+ */
46
63
  process_stack_trace(error, class_name) {
47
64
  let stackTraceArray = error.stack.split("\n").map((frame) => frame.trim());
48
65
  stackTraceArray.forEach((str, index) => {
@@ -27,6 +27,9 @@ class ArrayGetItemHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -40,7 +43,7 @@ class ArrayGetItemHandler extends import_AbstractHandler.AbstractHandler {
40
43
  indexes = command.payload.slice(1);
41
44
  }
42
45
  if (indexes.length === 1) {
43
- return array[indexes];
46
+ return array[indexes[0]];
44
47
  } else {
45
48
  let array_copy = [...array];
46
49
  for (let i = 0; i < indexes.length; i++) {
@@ -27,6 +27,9 @@ class ArrayGetRankHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,6 +27,9 @@ class ArrayGetSizeHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -26,6 +26,9 @@ class ArrayHandler extends import_AbstractHandler.AbstractHandler {
26
26
  constructor() {
27
27
  super();
28
28
  }
29
+ /**
30
+ * @param {Command} command
31
+ */
29
32
  process(command) {
30
33
  try {
31
34
  let processedArray = command.payload;
@@ -27,6 +27,9 @@ class ArraySetItemHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -41,7 +44,7 @@ class ArraySetItemHandler extends import_AbstractHandler.AbstractHandler {
41
44
  indexes = [command.payload[1]];
42
45
  }
43
46
  if (indexes.length === 1) {
44
- array[indexes] = value;
47
+ array[indexes[0]] = value;
45
48
  } else {
46
49
  for (let i = 0; i < indexes.length - 1; i++) {
47
50
  array = array[indexes[i]];
@@ -23,7 +23,9 @@ __export(CastingHandler_exports, {
23
23
  module.exports = __toCommonJS(CastingHandler_exports);
24
24
  var import_AbstractHandler = require("./AbstractHandler.cjs");
25
25
  class CastingHandler extends import_AbstractHandler.AbstractHandler {
26
- // eslint-disable-next-line no-unused-vars
26
+ /**
27
+ * @param {Command} command
28
+ */
27
29
  process(command) {
28
30
  throw new Error(`Dynamically typed languages are not supporting casting`);
29
31
  }
@@ -21,7 +21,7 @@ __export(ConvertTypeHandler_exports, {
21
21
  ConvertTypeHandler: () => ConvertTypeHandler
22
22
  });
23
23
  module.exports = __toCommonJS(ConvertTypeHandler_exports);
24
- var import_TypesConverter = require("../../utils/nodejs/TypesConverter.cjs");
24
+ var import_TypesHandler = require("../../utils/TypesHandler.cjs");
25
25
  var import_AbstractHandler = require("./AbstractHandler.cjs");
26
26
  class ConvertTypeHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
@@ -30,16 +30,16 @@ class ConvertTypeHandler extends import_AbstractHandler.AbstractHandler {
30
30
  }
31
31
  /**
32
32
  * Processes the given command to convert JType to Type.
33
- * @param {Object} command - The command to process.
33
+ * @param {Command} command - The command to process.
34
34
  * @returns {any} The converted type.
35
35
  */
36
36
  process(command) {
37
37
  this.validateCommand(command);
38
- return import_TypesConverter.TypesConverter.convertJTypeToType(command.payload[0]);
38
+ return import_TypesHandler.TypesHandler.convertTypeToJType(command.payload[0]);
39
39
  }
40
40
  /**
41
41
  * Validates the command to ensure it has enough parameters.
42
- * @param {Object} command - The command to validate.
42
+ * @param {Command} command - The command to validate.
43
43
  */
44
44
  validateCommand(command) {
45
45
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,6 +27,9 @@ class CreateClassInstanceHandler extends import_AbstractHandler.AbstractHandler
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -36,8 +39,8 @@ class CreateClassInstanceHandler extends import_AbstractHandler.AbstractHandler
36
39
  let constructorArguments = command.payload.slice(1);
37
40
  let instance = new clazz(...constructorArguments);
38
41
  if (typeof instance === "undefined") {
39
- let methods = Object.getOwnPropertyNames(type).filter(function(property) {
40
- return typeof type[property] === "function";
42
+ let methods = Object.getOwnPropertyNames(clazz).filter(function(property) {
43
+ return typeof clazz[property] === "function";
41
44
  });
42
45
  let message = `Method 'constructor' not found in class. Available methods:
43
46
  `;
@@ -27,6 +27,9 @@ class DestructReferenceHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  let cache = import_ReferencesCache.ReferencesCache.getInstance();
@@ -28,6 +28,9 @@ class EnableNamespaceHandler extends import_AbstractHandler.AbstractHandler {
28
28
  super();
29
29
  this.requiredParametersCount = 1;
30
30
  }
31
+ /**
32
+ * @param {Command} command
33
+ */
31
34
  process(command) {
32
35
  try {
33
36
  if (command.payload.length < this.requiredParametersCount) {
@@ -28,6 +28,9 @@ class EnableTypeHandler extends import_AbstractHandler.AbstractHandler {
28
28
  constructor() {
29
29
  super();
30
30
  }
31
+ /**
32
+ * @param {Command} command
33
+ */
31
34
  process(command) {
32
35
  try {
33
36
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,6 +27,9 @@ class GetGlobalStaticFieldHandler extends import_AbstractHandler.AbstractHandler
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,6 +27,9 @@ class GetInstanceFieldHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -44,6 +44,9 @@ class GetInstanceMethodAsDelegateHandler extends import_AbstractHandler.Abstract
44
44
  this.instance = command.payload[0];
45
45
  const methodName = command.payload[1];
46
46
  this.args = command.payload.length > 2 ? command.payload.slice(2) : [];
47
+ if (!this.instance) {
48
+ throw new Error("Instance is null or undefined");
49
+ }
47
50
  this.method = this.getMethod(this.instance, methodName);
48
51
  if (!this.method) {
49
52
  throw this.createMethodNotFoundError(this.instance, methodName);
@@ -58,7 +61,10 @@ class GetInstanceMethodAsDelegateHandler extends import_AbstractHandler.Abstract
58
61
  * @returns {Function|null} The found method or null if not found.
59
62
  */
60
63
  getMethod(type, methodName) {
61
- const method = type[methodName];
64
+ const method = (
65
+ /** @type {any} */
66
+ type[methodName]
67
+ );
62
68
  return typeof method === "function" ? method : null;
63
69
  }
64
70
  /**
@@ -68,11 +74,16 @@ class GetInstanceMethodAsDelegateHandler extends import_AbstractHandler.Abstract
68
74
  * @returns {Error} The error with detailed message.
69
75
  */
70
76
  createMethodNotFoundError(type, methodName) {
71
- const methods = Object.getOwnPropertyNames(type.prototype).filter(
72
- (key) => typeof type.prototype[key] === "function"
77
+ const methods = Object.getOwnPropertyNames(
78
+ /** @type {{prototype: Object}} */
79
+ type.prototype
80
+ ).filter(
81
+ (key) => typeof /** @type {any} */
82
+ type.prototype[key] === "function"
73
83
  );
74
84
  const availableMethods = methods.map((name) => `${name}()`);
75
- const message = `Method ${methodName} not found in class ${type.name}. Available instance public methods:
85
+ const message = `Method ${methodName} not found in class ${/** @type {{name: string}} */
86
+ type.name}. Available instance public methods:
76
87
  ${availableMethods.join("\n")}`;
77
88
  return new Error(message);
78
89
  }
@@ -27,6 +27,10 @@ class GetStaticFieldHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ * @returns {any}
33
+ */
30
34
  process(command) {
31
35
  try {
32
36
  if (command.payload.length < this.requiredParametersCount) {
@@ -33,7 +33,6 @@ class GetStaticMethodAsDelegateHandler extends import_AbstractHandler.AbstractHa
33
33
  /**
34
34
  * Processes a command to retrieve a static method as a delegate.
35
35
  * @param {Command} command - The command containing payload data.
36
- * @param {Array<*>} command.payload - The payload containing type, method name, and arguments.
37
36
  * @returns {Function} The delegate for the static method.
38
37
  * @throws {Error} If the parameters mismatch or the method cannot be found.
39
38
  */
@@ -55,12 +54,13 @@ class GetStaticMethodAsDelegateHandler extends import_AbstractHandler.AbstractHa
55
54
  * Retrieves the method from the type.
56
55
  * @param {Object} type - The class or constructor to search for the method.
57
56
  * @param {string} methodName - The name of the method.
58
- * @param {Array<Function>} argsType - The argument types.
59
- * @param {Object} modifier - Parameter modifier (not used in JS implementation).
60
57
  * @returns {Function|null} The found method or null if not found.
61
58
  */
62
59
  getMethod(type, methodName) {
63
- const method = type[methodName];
60
+ const method = (
61
+ /** @type {any} */
62
+ type[methodName]
63
+ );
64
64
  return typeof method === "function" ? method : null;
65
65
  }
66
66
  /**
@@ -70,9 +70,11 @@ class GetStaticMethodAsDelegateHandler extends import_AbstractHandler.AbstractHa
70
70
  * @returns {Error} The error with detailed message.
71
71
  */
72
72
  createMethodNotFoundError(type, methodName) {
73
- const methods = Object.keys(type).filter((key) => typeof type[key] === "function");
73
+ const methods = Object.keys(type).filter((key) => typeof /** @type {any} */
74
+ type[key] === "function");
74
75
  const availableMethods = methods.map((name) => `${name}()`);
75
- const message = `Method ${methodName} not found in class ${type.name}. Available public static methods:
76
+ const message = `Method ${methodName} not found in class ${/** @type {{name: string}} */
77
+ type.name}. Available public static methods:
76
78
  ${availableMethods.join("\n")}`;
77
79
  return new Error(message);
78
80
  }
@@ -35,6 +35,11 @@ class GetTypeHandler extends import_AbstractHandler.AbstractHandler {
35
35
  this.typeCache = new import_TypeCache.TypeCache();
36
36
  this.loadLibaryHandler = new import_LoadLibraryHandler.LoadLibraryHandler();
37
37
  }
38
+ /**
39
+ *
40
+ * @param {Command} command
41
+ * @returns
42
+ */
38
43
  process(command) {
39
44
  try {
40
45
  if (command.payload.length < this.requiredParametersCount) {
@@ -43,7 +48,10 @@ class GetTypeHandler extends import_AbstractHandler.AbstractHandler {
43
48
  const { payload } = command;
44
49
  let typeName = payload[0];
45
50
  typeName = typeName.replace(".js", "");
46
- let typeToReturn = global[typeName];
51
+ const typeToReturn = (
52
+ /** @type {any} */
53
+ global[typeName]
54
+ );
47
55
  if (typeToReturn === void 0) {
48
56
  let message = `Type ${typeName} not found
49
57
  `;
@@ -69,7 +77,7 @@ Allowed types: ${allowed_types}`
69
77
  }
70
78
  }
71
79
  getAvailableTypes() {
72
- let availableTypes = [];
80
+ const availableTypes = [];
73
81
  this.loadLibaryHandler.getLoadedLibraries().forEach((lib) => {
74
82
  const dynamicRequire = (0, import_Runtime.getRequire)(import_meta.url);
75
83
  const moduleExports = dynamicRequire(`${lib}`);
@@ -50,16 +50,10 @@ var import_InvokeDelegateHandler = require("./InvokeDelegateHandler.cjs");
50
50
  var import_InvokeGlobalFunctionHandler = require("./InvokeGlobalFunctionHandler.cjs");
51
51
  var import_CommandType = require("../../utils/CommandType.cjs");
52
52
  var import_Command = require("../../utils/Command.cjs");
53
+ var import_TypesHandler = require("../../utils/TypesHandler.cjs");
53
54
  var import_ExceptionSerializer = require("../../utils/exception/ExceptionSerializer.cjs");
54
55
  var import_ConvertTypeHandler = require("./ConvertTypeHandler.cjs");
55
56
  var import_AbstractHandler = require("./AbstractHandler.cjs");
56
- function isResponseSimpleType(response) {
57
- let type = typeof response;
58
- return ["string", "boolean", "number"].includes(type);
59
- }
60
- function isResponseNull(response) {
61
- return response === null;
62
- }
63
57
  const handlers = {
64
58
  [import_CommandType.CommandType.Value]: new import_ValueHandler.ValueHandler(),
65
59
  [import_CommandType.CommandType.LoadLibrary]: new import_LoadLibraryHandler.LoadLibraryHandler(),
@@ -94,13 +88,16 @@ class Handler {
94
88
  */
95
89
  constructor(interpreter) {
96
90
  this.interpreter = interpreter;
97
- handlers[import_CommandType.CommandType.PassDelegate] = new import_PassDelegateHandler.PassDelegateHandler(interpreter);
91
+ if (!this.interpreter) {
92
+ throw new Error("interpreter is undefined in Handler constructor");
93
+ }
94
+ handlers[import_CommandType.CommandType.PassDelegate] = new import_PassDelegateHandler.PassDelegateHandler(this.interpreter);
98
95
  Object.keys(handlers).forEach((commandTypeHandler) => {
99
96
  handlers[commandTypeHandler].handlers = handlers;
100
97
  });
101
98
  }
102
99
  /**
103
- * @param {{ commandType: number; payload: any[]; runtimeName: number; }} command
100
+ * @param {Command} command
104
101
  */
105
102
  handleCommand(command) {
106
103
  try {
@@ -116,11 +113,11 @@ class Handler {
116
113
  }
117
114
  /**
118
115
  * @param {any} response
119
- * @param {number} runtimeName
116
+ * @param {RuntimeName} runtimeName
120
117
  * @returns {Command}
121
118
  */
122
119
  parseCommand(response, runtimeName) {
123
- if (isResponseNull(response) || isResponseSimpleType(response)) {
120
+ if (import_TypesHandler.TypesHandler.isPrimitiveOrNullOrUndefined(response)) {
124
121
  return import_Command.Command.createResponse(response, runtimeName);
125
122
  } else {
126
123
  let cache = import_ReferencesCache.ReferencesCache.getInstance();
@@ -27,6 +27,9 @@ class InvokeGlobalFunctionHandler extends import_AbstractHandler.AbstractHandler
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,6 +27,9 @@ class InvokeInstanceMethodHandler extends import_AbstractHandler.AbstractHandler
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,6 +27,9 @@ class InvokeStaticMethodHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,10 +27,14 @@ const import_meta = {};
27
27
  const dynamicImport = (0, import_Runtime.getRequire)(import_meta.url);
28
28
  class LoadLibraryHandler extends import_AbstractHandler.AbstractHandler {
29
29
  requiredParametersCount = 1;
30
+ /** @type {string[]} */
30
31
  static loadedLibraries = [];
31
32
  constructor() {
32
33
  super();
33
34
  }
35
+ /**
36
+ * @param {Command} command
37
+ */
34
38
  process(command) {
35
39
  if (command.payload.length < this.requiredParametersCount) {
36
40
  throw new Error("Load Library parameters mismatch");
@@ -27,6 +27,9 @@ class SetGlobalStaticFieldHandler extends import_AbstractHandler.AbstractHandler
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,6 +27,9 @@ class SetInstanceFieldHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -27,6 +27,9 @@ class SetStaticFieldHandler extends import_AbstractHandler.AbstractHandler {
27
27
  constructor() {
28
28
  super();
29
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
30
33
  process(command) {
31
34
  try {
32
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -26,6 +26,10 @@ class ValueHandler extends import_AbstractHandler.AbstractHandler {
26
26
  constructor() {
27
27
  super();
28
28
  }
29
+ /**
30
+ * @param {Command} command
31
+ * @returns {unknown}
32
+ */
29
33
  process(command) {
30
34
  const { payload } = command;
31
35
  return payload[0];
@@ -38,7 +38,8 @@ if (!_TransmitterWebsocket) {
38
38
  }
39
39
  const requireDynamic = (0, import_Runtime.getRequire)(import_meta.url);
40
40
  class Interpreter {
41
- handler;
41
+ /** @type {Handler | null} */
42
+ handler = null;
42
43
  /**
43
44
  *
44
45
  * @param {Command} command
@@ -47,21 +48,24 @@ class Interpreter {
47
48
  */
48
49
  async executeAsync(command, connectionData) {
49
50
  try {
51
+ if (!this.handler) {
52
+ this.handler = new import_Handler.Handler(this);
53
+ }
50
54
  let messageByteArray = new import_CommandSerializer.CommandSerializer().serialize(command, connectionData);
51
- let responseByteArray;
55
+ let responseByteArray = void 0;
52
56
  if (command.runtimeName === import_RuntimeName.RuntimeName.Nodejs && connectionData.connectionType === import_ConnectionType.ConnectionType.IN_MEMORY) {
53
57
  if ((0, import_Runtime.isNodejsRuntime)()) {
54
58
  if (!_Receiver) {
55
59
  const { Receiver } = require("../receiver/Receiver.cjs");
56
60
  _Receiver = Receiver;
57
61
  }
58
- responseByteArray = _Receiver.sendCommand(messageByteArray);
62
+ responseByteArray = _Receiver?.sendCommand(messageByteArray);
59
63
  } else {
60
64
  throw new Error("Node.js runtime not found");
61
65
  }
62
66
  } else if (connectionData.connectionType === import_ConnectionType.ConnectionType.WEB_SOCKET) {
63
67
  try {
64
- const _response = await _TransmitterWebsocket.sendCommand(
68
+ const _response = await _TransmitterWebsocket?.sendCommand(
65
69
  messageByteArray,
66
70
  connectionData
67
71
  );
@@ -80,11 +84,14 @@ class Interpreter {
80
84
  const { Transmitter } = require("../transmitter/Transmitter.cjs");
81
85
  _Transmitter = Transmitter;
82
86
  }
83
- responseByteArray = await _Transmitter.sendCommand(messageByteArray);
87
+ responseByteArray = await _Transmitter?.sendCommand(messageByteArray);
84
88
  } else {
85
89
  throw new Error("Allowed only to run in nodejs runtime");
86
90
  }
87
91
  }
92
+ if (!responseByteArray) {
93
+ throw new Error("No response received from Transmitter");
94
+ }
88
95
  return new import_CommandDeserializer.CommandDeserializer(responseByteArray).deserialize();
89
96
  } catch (error) {
90
97
  throw error;
@@ -93,23 +100,29 @@ class Interpreter {
93
100
  /**
94
101
  *
95
102
  * @param {Command} command
96
- * @param {WsConnectionData} connectionData
97
- * @returns {Promise<Command>}
103
+ * @param {IConnectionData} connectionData
104
+ * @returns {Command | Promise<Command>}
98
105
  */
99
106
  execute(command, connectionData) {
100
107
  try {
108
+ if (!this.handler) {
109
+ this.handler = new import_Handler.Handler(this);
110
+ }
101
111
  let messageByteArray = new import_CommandSerializer.CommandSerializer().serialize(command, connectionData);
102
- let responseByteArray;
112
+ let responseByteArray = void 0;
103
113
  if (command.runtimeName === import_RuntimeName.RuntimeName.Nodejs && connectionData.connectionType === import_ConnectionType.ConnectionType.IN_MEMORY) {
104
114
  if ((0, import_Runtime.isNodejsRuntime)()) {
105
115
  if (!_Receiver) {
106
116
  const { Receiver } = require("../receiver/Receiver.cjs");
107
117
  _Receiver = Receiver;
108
118
  }
109
- responseByteArray = _Receiver.sendCommand(messageByteArray);
119
+ responseByteArray = _Receiver?.sendCommand(messageByteArray);
110
120
  }
111
121
  } else if (connectionData.connectionType === import_ConnectionType.ConnectionType.WEB_SOCKET) {
112
- const promise = _TransmitterWebsocket.sendCommand(messageByteArray, connectionData);
122
+ const promise = _TransmitterWebsocket?.sendCommand(messageByteArray, connectionData);
123
+ if (!promise) {
124
+ throw new Error("TransmitterWebsocket not found");
125
+ }
113
126
  return promise.then((_response) => {
114
127
  if (_response) {
115
128
  const command2 = new import_CommandDeserializer.CommandDeserializer(_response).deserialize();
@@ -126,11 +139,14 @@ class Interpreter {
126
139
  const { Transmitter } = require("../transmitter/Transmitter.cjs");
127
140
  _Transmitter = Transmitter;
128
141
  }
129
- responseByteArray = _Transmitter.sendCommand(messageByteArray);
142
+ responseByteArray = _Transmitter?.sendCommand(messageByteArray);
130
143
  } else {
131
144
  throw new Error("Allowed only to run in nodejs runtime");
132
145
  }
133
146
  }
147
+ if (!responseByteArray) {
148
+ throw new Error("No response received from Transmitter");
149
+ }
134
150
  return new import_CommandDeserializer.CommandDeserializer(responseByteArray).deserialize();
135
151
  } catch (error) {
136
152
  throw error;
@@ -138,7 +154,7 @@ class Interpreter {
138
154
  }
139
155
  /**
140
156
  *
141
- * @param {number[]} messageByteArray
157
+ * @param {Int8Array} messageByteArray
142
158
  * @returns {Command}
143
159
  */
144
160
  process(messageByteArray) {
@@ -22,7 +22,9 @@ __export(NamespaceCache_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(NamespaceCache_exports);
24
24
  class NamespaceCache {
25
+ /** @type {NamespaceCache | null} */
25
26
  static _instance = null;
27
+ /** @type {string[]} */
26
28
  namespaceCache = [];
27
29
  constructor() {
28
30
  if (NamespaceCache._instance === null) {
@@ -30,12 +32,22 @@ class NamespaceCache {
30
32
  }
31
33
  return NamespaceCache._instance;
32
34
  }
35
+ /**
36
+ * @param {string} namespaceRegex
37
+ */
33
38
  cacheNamespace(namespaceRegex) {
34
39
  this.namespaceCache.push(namespaceRegex);
35
40
  }
41
+ /**
42
+ * @returns {boolean}
43
+ */
36
44
  isNamespaceCacheEmpty() {
37
45
  return this.namespaceCache.length === 0;
38
46
  }
47
+ /**
48
+ * @param {string} typeToCheck
49
+ * @returns {boolean}
50
+ */
39
51
  isTypeAllowed(typeToCheck) {
40
52
  for (let pattern of this.namespaceCache) {
41
53
  if (new RegExp(pattern).test(typeToCheck.constructor.name)) {