javonet-nodejs-sdk 2.5.16 → 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 (204) hide show
  1. package/dist/core/delegatesCache/DelegatesCache.cjs +1 -5
  2. package/dist/core/handler/AbstractHandler.cjs +24 -9
  3. package/dist/core/handler/ArrayGetItemHandler.cjs +5 -4
  4. package/dist/core/handler/ArrayGetRankHandler.cjs +4 -3
  5. package/dist/core/handler/ArrayGetSizeHandler.cjs +4 -3
  6. package/dist/core/handler/ArrayHandler.cjs +3 -0
  7. package/dist/core/handler/ArraySetItemHandler.cjs +5 -4
  8. package/dist/core/handler/CastingHandler.cjs +3 -1
  9. package/dist/core/handler/ConvertTypeHandler.cjs +4 -4
  10. package/dist/core/handler/CreateClassInstanceHandler.cjs +6 -5
  11. package/dist/core/handler/DestructReferenceHandler.cjs +3 -0
  12. package/dist/core/handler/EnableNamespaceHandler.cjs +3 -0
  13. package/dist/core/handler/EnableTypeHandler.cjs +4 -3
  14. package/dist/core/handler/GetGlobalStaticFieldHandler.cjs +4 -3
  15. package/dist/core/handler/GetInstanceFieldHandler.cjs +4 -3
  16. package/dist/core/handler/GetInstanceMethodAsDelegateHandler.cjs +15 -4
  17. package/dist/core/handler/GetStaticFieldHandler.cjs +5 -3
  18. package/dist/core/handler/GetStaticMethodAsDelegateHandler.cjs +10 -10
  19. package/dist/core/handler/GetTypeHandler.cjs +10 -2
  20. package/dist/core/handler/Handler.cjs +8 -11
  21. package/dist/core/handler/InvokeGlobalFunctionHandler.cjs +4 -3
  22. package/dist/core/handler/InvokeInstanceMethodHandler.cjs +4 -3
  23. package/dist/core/handler/InvokeStaticMethodHandler.cjs +4 -3
  24. package/dist/core/handler/LoadLibraryHandler.cjs +11 -10
  25. package/dist/core/handler/PassDelegateHandler.cjs +2 -4
  26. package/dist/core/handler/SetGlobalStaticFieldHandler.cjs +4 -3
  27. package/dist/core/handler/SetInstanceFieldHandler.cjs +4 -3
  28. package/dist/core/handler/SetStaticFieldHandler.cjs +4 -3
  29. package/dist/core/handler/ValueHandler.cjs +4 -0
  30. package/dist/core/interpreter/Interpreter.cjs +29 -17
  31. package/dist/core/namespaceCache/NamespaceCache.cjs +19 -10
  32. package/dist/core/protocol/CommandDeserializer.cjs +10 -2
  33. package/dist/core/protocol/CommandSerializer.cjs +24 -4
  34. package/dist/core/protocol/TypeDeserializer.cjs +35 -0
  35. package/dist/core/protocol/TypeSerializer.cjs +51 -7
  36. package/dist/core/receiver/Receiver.cjs +3 -5
  37. package/dist/core/receiver/ReceiverNative.cjs +6 -0
  38. package/dist/core/transmitter/Transmitter.cjs +19 -5
  39. package/dist/core/transmitter/TransmitterWebsocket.cjs +8 -5
  40. package/dist/core/transmitter/TransmitterWebsocketBrowser.cjs +1 -1
  41. package/dist/core/transmitter/TransmitterWrapper.cjs +25 -8
  42. package/dist/core/typeCache/TypeCache.cjs +15 -10
  43. package/dist/core/webSocketClient/WebSocketClient.cjs +22 -12
  44. package/dist/core/webSocketClient/WebSocketClientBrowser.cjs +2 -2
  45. package/dist/sdk/ConfigRuntimeFactory.cjs +92 -98
  46. package/dist/sdk/InvocationContext.cjs +229 -203
  47. package/dist/sdk/Javonet.cjs +14 -33
  48. package/dist/sdk/RuntimeContext.cjs +138 -99
  49. package/dist/sdk/RuntimeFactory.cjs +3 -0
  50. package/dist/sdk/tools/ActivationHelper.cjs +66 -0
  51. package/dist/sdk/tools/JsonResolver.cjs +214 -0
  52. package/dist/types/core/handler/AbstractHandler.d.ts +23 -4
  53. package/dist/types/core/handler/ArrayGetItemHandler.d.ts +8 -1
  54. package/dist/types/core/handler/ArrayGetRankHandler.d.ts +8 -1
  55. package/dist/types/core/handler/ArrayGetSizeHandler.d.ts +8 -1
  56. package/dist/types/core/handler/ArrayHandler.d.ts +8 -1
  57. package/dist/types/core/handler/ArraySetItemHandler.d.ts +8 -1
  58. package/dist/types/core/handler/CastingHandler.d.ts +4 -0
  59. package/dist/types/core/handler/ConvertTypeHandler.d.ts +8 -4
  60. package/dist/types/core/handler/CreateClassInstanceHandler.d.ts +8 -1
  61. package/dist/types/core/handler/DestructReferenceHandler.d.ts +8 -1
  62. package/dist/types/core/handler/EnableNamespaceHandler.d.ts +8 -1
  63. package/dist/types/core/handler/EnableTypeHandler.d.ts +8 -1
  64. package/dist/types/core/handler/GetGlobalStaticFieldHandler.d.ts +8 -1
  65. package/dist/types/core/handler/GetInstanceFieldHandler.d.ts +8 -1
  66. package/dist/types/core/handler/GetStaticFieldHandler.d.ts +9 -1
  67. package/dist/types/core/handler/GetStaticMethodAsDelegateHandler.d.ts +4 -3
  68. package/dist/types/core/handler/GetTypeHandler.d.ts +17 -8
  69. package/dist/types/core/handler/Handler.d.ts +8 -8
  70. package/dist/types/core/handler/InvokeDelegateHandler.d.ts +4 -0
  71. package/dist/types/core/handler/InvokeGlobalFunctionHandler.d.ts +8 -1
  72. package/dist/types/core/handler/InvokeInstanceMethodHandler.d.ts +8 -1
  73. package/dist/types/core/handler/InvokeStaticMethodHandler.d.ts +8 -1
  74. package/dist/types/core/handler/LoadLibraryHandler.d.ts +8 -3
  75. package/dist/types/core/handler/SetGlobalStaticFieldHandler.d.ts +4 -0
  76. package/dist/types/core/handler/SetInstanceFieldHandler.d.ts +8 -1
  77. package/dist/types/core/handler/SetStaticFieldHandler.d.ts +8 -1
  78. package/dist/types/core/handler/ValueHandler.d.ts +9 -1
  79. package/dist/types/core/interpreter/Interpreter.d.ts +11 -10
  80. package/dist/types/core/namespaceCache/NamespaceCache.d.ts +17 -5
  81. package/dist/types/core/protocol/CommandDeserializer.d.ts +10 -3
  82. package/dist/types/core/protocol/CommandSerializer.d.ts +19 -2
  83. package/dist/types/core/protocol/TypeDeserializer.d.ts +46 -11
  84. package/dist/types/core/protocol/TypeSerializer.d.ts +53 -13
  85. package/dist/types/core/receiver/Receiver.d.ts +2 -2
  86. package/dist/types/core/receiver/ReceiverNative.d.ts +8 -2
  87. package/dist/types/core/transmitter/Transmitter.d.ts +20 -4
  88. package/dist/types/core/transmitter/TransmitterWebsocket.d.ts +8 -4
  89. package/dist/types/core/transmitter/TransmitterWebsocketBrowser.d.ts +4 -7
  90. package/dist/types/core/transmitter/TransmitterWrapper.d.ts +12 -3
  91. package/dist/types/core/typeCache/TypeCache.d.ts +15 -5
  92. package/dist/types/core/webSocketClient/WebSocketClient.d.ts +17 -21
  93. package/dist/types/sdk/ConfigRuntimeFactory.d.ts +9 -6
  94. package/dist/types/sdk/InvocationContext.d.ts +38 -6
  95. package/dist/types/sdk/Javonet.d.ts +12 -7
  96. package/dist/types/sdk/RuntimeContext.d.ts +23 -7
  97. package/dist/types/sdk/RuntimeFactory.d.ts +9 -2
  98. package/dist/types/sdk/tools/ActivationHelper.d.ts +20 -0
  99. package/dist/types/sdk/tools/JsonResolver.d.ts +87 -0
  100. package/dist/types/utils/Command.d.ts +18 -14
  101. package/dist/types/utils/CreateRequire.browser.d.ts +1 -0
  102. package/dist/types/utils/CreateRequire.node.d.ts +2 -0
  103. package/dist/types/utils/CustomError.d.ts +5 -1
  104. package/dist/types/utils/Runtime.d.ts +2 -3
  105. package/dist/types/utils/RuntimeNameHandler.d.ts +6 -2
  106. package/dist/types/utils/Type.d.ts +1 -0
  107. package/dist/types/utils/TypesHandler.d.ts +16 -0
  108. package/dist/types/utils/UtilsConst.d.ts +32 -0
  109. package/dist/types/utils/connectionData/IConnectionData.d.ts +16 -3
  110. package/dist/types/utils/connectionData/InMemoryConnectionData.d.ts +4 -3
  111. package/dist/types/utils/connectionData/WsConnectionData.d.ts +7 -10
  112. package/dist/types/utils/nodejs/connectionData/TcpConnectionData.d.ts +17 -10
  113. package/dist/utils/Command.cjs +9 -9
  114. package/dist/utils/CreateRequire.browser.cjs +30 -0
  115. package/dist/utils/CreateRequire.node.cjs +28 -0
  116. package/dist/utils/CustomError.cjs +4 -0
  117. package/dist/utils/Runtime.cjs +24 -18
  118. package/dist/utils/RuntimeLogger.cjs +2 -4
  119. package/dist/utils/RuntimeLoggerBrowser.cjs +1 -3
  120. package/dist/utils/RuntimeNameHandler.cjs +1 -1
  121. package/dist/utils/Type.cjs +2 -1
  122. package/dist/utils/TypesHandler.cjs +55 -0
  123. package/dist/utils/UtilsConst.cjs +101 -0
  124. package/dist/utils/connectionData/IConnectionData.cjs +9 -0
  125. package/dist/utils/connectionData/InMemoryConnectionData.cjs +10 -0
  126. package/dist/utils/connectionData/WsConnectionData.cjs +4 -0
  127. package/dist/utils/nodejs/connectionData/TcpConnectionData.cjs +45 -25
  128. package/lib/core/delegatesCache/DelegatesCache.js +1 -0
  129. package/lib/core/handler/AbstractHandler.js +27 -9
  130. package/lib/core/handler/ArrayGetItemHandler.js +9 -1
  131. package/lib/core/handler/ArrayGetRankHandler.js +9 -0
  132. package/lib/core/handler/ArrayGetSizeHandler.js +8 -0
  133. package/lib/core/handler/ArrayHandler.js +8 -0
  134. package/lib/core/handler/ArraySetItemHandler.js +11 -1
  135. package/lib/core/handler/CastingHandler.js +8 -1
  136. package/lib/core/handler/ConvertTypeHandler.js +9 -4
  137. package/lib/core/handler/CreateClassInstanceHandler.js +10 -4
  138. package/lib/core/handler/DestructReferenceHandler.js +8 -0
  139. package/lib/core/handler/EnableNamespaceHandler.js +8 -0
  140. package/lib/core/handler/EnableTypeHandler.js +8 -0
  141. package/lib/core/handler/GetGlobalStaticFieldHandler.js +9 -0
  142. package/lib/core/handler/GetInstanceFieldHandler.js +8 -0
  143. package/lib/core/handler/GetInstanceMethodAsDelegateHandler.js +9 -4
  144. package/lib/core/handler/GetStaticFieldHandler.js +9 -0
  145. package/lib/core/handler/GetStaticMethodAsDelegateHandler.js +8 -7
  146. package/lib/core/handler/GetTypeHandler.js +15 -5
  147. package/lib/core/handler/Handler.js +13 -18
  148. package/lib/core/handler/InvokeDelegateHandler.js +5 -0
  149. package/lib/core/handler/InvokeGlobalFunctionHandler.js +11 -1
  150. package/lib/core/handler/InvokeInstanceMethodHandler.js +8 -0
  151. package/lib/core/handler/InvokeStaticMethodHandler.js +8 -0
  152. package/lib/core/handler/LoadLibraryHandler.js +11 -0
  153. package/lib/core/handler/SetGlobalStaticFieldHandler.js +10 -0
  154. package/lib/core/handler/SetInstanceFieldHandler.js +7 -0
  155. package/lib/core/handler/SetStaticFieldHandler.js +8 -0
  156. package/lib/core/handler/ValueHandler.js +9 -0
  157. package/lib/core/interpreter/Interpreter.js +42 -24
  158. package/lib/core/namespaceCache/NamespaceCache.js +14 -0
  159. package/lib/core/protocol/CommandDeserializer.js +11 -2
  160. package/lib/core/protocol/CommandSerializer.js +40 -9
  161. package/lib/core/protocol/TypeDeserializer.js +36 -0
  162. package/lib/core/protocol/TypeSerializer.js +62 -7
  163. package/lib/core/receiver/Receiver.js +3 -2
  164. package/lib/core/receiver/ReceiverNative.js +8 -0
  165. package/lib/core/transmitter/Transmitter.js +18 -1
  166. package/lib/core/transmitter/TransmitterWebsocket.js +12 -5
  167. package/lib/core/transmitter/TransmitterWebsocketBrowser.js +2 -4
  168. package/lib/core/transmitter/TransmitterWrapper.js +27 -6
  169. package/lib/core/typeCache/TypeCache.js +9 -0
  170. package/lib/core/webSocketClient/WebSocketClient.js +33 -30
  171. package/lib/core/webSocketClient/WebSocketClientBrowser.js +5 -6
  172. package/lib/sdk/ConfigRuntimeFactory.js +70 -68
  173. package/lib/sdk/InvocationContext.js +94 -26
  174. package/lib/sdk/Javonet.js +18 -36
  175. package/lib/sdk/RuntimeContext.js +109 -29
  176. package/lib/sdk/RuntimeFactory.js +7 -0
  177. package/lib/sdk/tools/ActivationHelper.js +51 -0
  178. package/lib/sdk/tools/JsonResolver.js +226 -0
  179. package/lib/types.d.ts +57 -0
  180. package/lib/utils/Command.js +14 -9
  181. package/lib/utils/CreateRequire.browser.js +5 -0
  182. package/lib/utils/CreateRequire.node.js +3 -0
  183. package/lib/utils/CustomError.js +5 -0
  184. package/lib/utils/Runtime.js +25 -6
  185. package/lib/utils/RuntimeLogger.js +3 -0
  186. package/lib/utils/RuntimeNameHandler.js +6 -1
  187. package/lib/utils/Type.js +2 -1
  188. package/lib/utils/TypesHandler.js +35 -0
  189. package/lib/utils/UtilsConst.js +88 -0
  190. package/lib/utils/connectionData/IConnectionData.js +14 -0
  191. package/lib/utils/connectionData/InMemoryConnectionData.js +15 -0
  192. package/lib/utils/connectionData/WsConnectionData.js +9 -0
  193. package/lib/utils/nodejs/connectionData/TcpConnectionData.js +35 -5
  194. package/package.json +13 -3
  195. package/dist/sdk/tools/browser/ConfigSourceResolver.cjs +0 -153
  196. package/dist/sdk/tools/nodejs/JsonFileResolver.cjs +0 -120
  197. package/dist/types/sdk/tools/browser/ConfigSourceResolver.d.ts +0 -46
  198. package/dist/types/sdk/tools/nodejs/JsonFileResolver.d.ts +0 -13
  199. package/dist/types/utils/nodejs/TypesConverter.d.ts +0 -48
  200. package/dist/utils/nodejs/TypesConverter.cjs +0 -102
  201. package/lib/declarations.d.ts +0 -35
  202. package/lib/sdk/tools/browser/ConfigSourceResolver.js +0 -146
  203. package/lib/sdk/tools/nodejs/JsonFileResolver.js +0 -106
  204. package/lib/utils/nodejs/TypesConverter.js +0 -91
@@ -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();
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,7 +16,6 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var InvokeGlobalFunctionHandler_exports = {};
22
20
  __export(InvokeGlobalFunctionHandler_exports, {
23
21
  InvokeGlobalFunctionHandler: () => InvokeGlobalFunctionHandler
@@ -25,10 +23,13 @@ __export(InvokeGlobalFunctionHandler_exports, {
25
23
  module.exports = __toCommonJS(InvokeGlobalFunctionHandler_exports);
26
24
  var import_AbstractHandler = require("./AbstractHandler.cjs");
27
25
  class InvokeGlobalFunctionHandler extends import_AbstractHandler.AbstractHandler {
26
+ requiredParametersCount = 1;
28
27
  constructor() {
29
28
  super();
30
- __publicField(this, "requiredParametersCount", 1);
31
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
32
33
  process(command) {
33
34
  try {
34
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,7 +16,6 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var InvokeInstanceMethodHandler_exports = {};
22
20
  __export(InvokeInstanceMethodHandler_exports, {
23
21
  InvokeInstanceMethodHandler: () => InvokeInstanceMethodHandler
@@ -25,10 +23,13 @@ __export(InvokeInstanceMethodHandler_exports, {
25
23
  module.exports = __toCommonJS(InvokeInstanceMethodHandler_exports);
26
24
  var import_AbstractHandler = require("./AbstractHandler.cjs");
27
25
  class InvokeInstanceMethodHandler extends import_AbstractHandler.AbstractHandler {
26
+ requiredParametersCount = 2;
28
27
  constructor() {
29
28
  super();
30
- __publicField(this, "requiredParametersCount", 2);
31
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
32
33
  process(command) {
33
34
  try {
34
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,7 +16,6 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var InvokeStaticMethodHandler_exports = {};
22
20
  __export(InvokeStaticMethodHandler_exports, {
23
21
  InvokeStaticMethodHandler: () => InvokeStaticMethodHandler
@@ -25,10 +23,13 @@ __export(InvokeStaticMethodHandler_exports, {
25
23
  module.exports = __toCommonJS(InvokeStaticMethodHandler_exports);
26
24
  var import_AbstractHandler = require("./AbstractHandler.cjs");
27
25
  class InvokeStaticMethodHandler extends import_AbstractHandler.AbstractHandler {
26
+ requiredParametersCount = 2;
28
27
  constructor() {
29
28
  super();
30
- __publicField(this, "requiredParametersCount", 2);
31
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
32
33
  process(command) {
33
34
  try {
34
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,21 +16,25 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var LoadLibraryHandler_exports = {};
22
20
  __export(LoadLibraryHandler_exports, {
23
21
  LoadLibraryHandler: () => LoadLibraryHandler
24
22
  });
25
23
  module.exports = __toCommonJS(LoadLibraryHandler_exports);
26
- const import_meta = {};
27
24
  var import_Runtime = require("../../utils/Runtime.cjs");
28
25
  var import_AbstractHandler = require("./AbstractHandler.cjs");
26
+ const import_meta = {};
29
27
  const dynamicImport = (0, import_Runtime.getRequire)(import_meta.url);
30
- const _LoadLibraryHandler = class _LoadLibraryHandler extends import_AbstractHandler.AbstractHandler {
28
+ class LoadLibraryHandler extends import_AbstractHandler.AbstractHandler {
29
+ requiredParametersCount = 1;
30
+ /** @type {string[]} */
31
+ static loadedLibraries = [];
31
32
  constructor() {
32
33
  super();
33
- __publicField(this, "requiredParametersCount", 1);
34
34
  }
35
+ /**
36
+ * @param {Command} command
37
+ */
35
38
  process(command) {
36
39
  if (command.payload.length < this.requiredParametersCount) {
37
40
  throw new Error("Load Library parameters mismatch");
@@ -44,7 +47,7 @@ const _LoadLibraryHandler = class _LoadLibraryHandler extends import_AbstractHan
44
47
  let moduleExports;
45
48
  try {
46
49
  moduleExports = dynamicImport(lib);
47
- _LoadLibraryHandler.loadedLibraries.push(lib);
50
+ LoadLibraryHandler.loadedLibraries.push(lib);
48
51
  } catch (error) {
49
52
  try {
50
53
  const modulePath = `${process.cwd()}/${lib}`;
@@ -60,11 +63,9 @@ const _LoadLibraryHandler = class _LoadLibraryHandler extends import_AbstractHan
60
63
  return 0;
61
64
  }
62
65
  getLoadedLibraries() {
63
- return _LoadLibraryHandler.loadedLibraries;
66
+ return LoadLibraryHandler.loadedLibraries;
64
67
  }
65
- };
66
- __publicField(_LoadLibraryHandler, "loadedLibraries", []);
67
- let LoadLibraryHandler = _LoadLibraryHandler;
68
+ }
68
69
  // Annotate the CommonJS export names for ESM import in node:
69
70
  0 && (module.exports = {
70
71
  LoadLibraryHandler
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,7 +16,6 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var PassDelegateHandler_exports = {};
22
20
  __export(PassDelegateHandler_exports, {
23
21
  PassDelegateHandler: () => PassDelegateHandler
@@ -28,10 +26,10 @@ var import_InMemoryConnectionData = require("../../utils/connectionData/InMemory
28
26
  var import_DelegatesCache = require("../delegatesCache/DelegatesCache.cjs");
29
27
  var import_AbstractHandler = require("./AbstractHandler.cjs");
30
28
  class PassDelegateHandler extends import_AbstractHandler.AbstractHandler {
29
+ /** @type {Interpreter | null | undefined} */
30
+ interpreter = null;
31
31
  constructor(interpreter = null) {
32
32
  super();
33
- /** @type {Interpreter | null | undefined} */
34
- __publicField(this, "interpreter", null);
35
33
  this.requiredParametersCount = 1;
36
34
  this.interpreter = interpreter;
37
35
  }
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,7 +16,6 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var SetGlobalStaticFieldHandler_exports = {};
22
20
  __export(SetGlobalStaticFieldHandler_exports, {
23
21
  SetGlobalStaticFieldHandler: () => SetGlobalStaticFieldHandler
@@ -25,10 +23,13 @@ __export(SetGlobalStaticFieldHandler_exports, {
25
23
  module.exports = __toCommonJS(SetGlobalStaticFieldHandler_exports);
26
24
  var import_AbstractHandler = require("./AbstractHandler.cjs");
27
25
  class SetGlobalStaticFieldHandler extends import_AbstractHandler.AbstractHandler {
26
+ requiredParametersCount = 2;
28
27
  constructor() {
29
28
  super();
30
- __publicField(this, "requiredParametersCount", 2);
31
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
32
33
  process(command) {
33
34
  try {
34
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,7 +16,6 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var SetInstanceFieldHandler_exports = {};
22
20
  __export(SetInstanceFieldHandler_exports, {
23
21
  SetInstanceFieldHandler: () => SetInstanceFieldHandler
@@ -25,10 +23,13 @@ __export(SetInstanceFieldHandler_exports, {
25
23
  module.exports = __toCommonJS(SetInstanceFieldHandler_exports);
26
24
  var import_AbstractHandler = require("./AbstractHandler.cjs");
27
25
  class SetInstanceFieldHandler extends import_AbstractHandler.AbstractHandler {
26
+ requiredParametersCount = 3;
28
27
  constructor() {
29
28
  super();
30
- __publicField(this, "requiredParametersCount", 3);
31
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
32
33
  process(command) {
33
34
  try {
34
35
  if (command.payload.length < this.requiredParametersCount) {
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,7 +16,6 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var SetStaticFieldHandler_exports = {};
22
20
  __export(SetStaticFieldHandler_exports, {
23
21
  SetStaticFieldHandler: () => SetStaticFieldHandler
@@ -25,10 +23,13 @@ __export(SetStaticFieldHandler_exports, {
25
23
  module.exports = __toCommonJS(SetStaticFieldHandler_exports);
26
24
  var import_AbstractHandler = require("./AbstractHandler.cjs");
27
25
  class SetStaticFieldHandler extends import_AbstractHandler.AbstractHandler {
26
+ requiredParametersCount = 3;
28
27
  constructor() {
29
28
  super();
30
- __publicField(this, "requiredParametersCount", 3);
31
29
  }
30
+ /**
31
+ * @param {Command} command
32
+ */
32
33
  process(command) {
33
34
  try {
34
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];
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,13 +16,11 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var Interpreter_exports = {};
22
20
  __export(Interpreter_exports, {
23
21
  Interpreter: () => Interpreter
24
22
  });
25
23
  module.exports = __toCommonJS(Interpreter_exports);
26
- const import_meta = {};
27
24
  var import_ConnectionType = require("../../utils/ConnectionType.cjs");
28
25
  var import_Runtime = require("../../utils/Runtime.cjs");
29
26
  var import_RuntimeName = require("../../utils/RuntimeName.cjs");
@@ -32,6 +29,7 @@ var import_CommandSerializer = require("../protocol/CommandSerializer.cjs");
32
29
  var import_TransmitterWebsocketBrowser = require("../transmitter/TransmitterWebsocketBrowser.cjs");
33
30
  var import_TransmitterWebsocket = require("../transmitter/TransmitterWebsocket.cjs");
34
31
  var import_Handler = require("../handler/Handler.cjs");
32
+ const import_meta = {};
35
33
  let _Receiver = null;
36
34
  let _Transmitter = null;
37
35
  let _TransmitterWebsocket = null;
@@ -40,9 +38,8 @@ if (!_TransmitterWebsocket) {
40
38
  }
41
39
  const requireDynamic = (0, import_Runtime.getRequire)(import_meta.url);
42
40
  class Interpreter {
43
- constructor() {
44
- __publicField(this, "handler");
45
- }
41
+ /** @type {Handler | null} */
42
+ handler = null;
46
43
  /**
47
44
  *
48
45
  * @param {Command} command
@@ -51,21 +48,24 @@ class Interpreter {
51
48
  */
52
49
  async executeAsync(command, connectionData) {
53
50
  try {
51
+ if (!this.handler) {
52
+ this.handler = new import_Handler.Handler(this);
53
+ }
54
54
  let messageByteArray = new import_CommandSerializer.CommandSerializer().serialize(command, connectionData);
55
- let responseByteArray;
55
+ let responseByteArray = void 0;
56
56
  if (command.runtimeName === import_RuntimeName.RuntimeName.Nodejs && connectionData.connectionType === import_ConnectionType.ConnectionType.IN_MEMORY) {
57
57
  if ((0, import_Runtime.isNodejsRuntime)()) {
58
58
  if (!_Receiver) {
59
59
  const { Receiver } = require("../receiver/Receiver.cjs");
60
60
  _Receiver = Receiver;
61
61
  }
62
- responseByteArray = _Receiver.sendCommand(messageByteArray);
62
+ responseByteArray = _Receiver?.sendCommand(messageByteArray);
63
63
  } else {
64
64
  throw new Error("Node.js runtime not found");
65
65
  }
66
66
  } else if (connectionData.connectionType === import_ConnectionType.ConnectionType.WEB_SOCKET) {
67
67
  try {
68
- const _response = await _TransmitterWebsocket.sendCommand(
68
+ const _response = await _TransmitterWebsocket?.sendCommand(
69
69
  messageByteArray,
70
70
  connectionData
71
71
  );
@@ -84,11 +84,14 @@ class Interpreter {
84
84
  const { Transmitter } = require("../transmitter/Transmitter.cjs");
85
85
  _Transmitter = Transmitter;
86
86
  }
87
- responseByteArray = await _Transmitter.sendCommand(messageByteArray);
87
+ responseByteArray = await _Transmitter?.sendCommand(messageByteArray);
88
88
  } else {
89
89
  throw new Error("Allowed only to run in nodejs runtime");
90
90
  }
91
91
  }
92
+ if (!responseByteArray) {
93
+ throw new Error("No response received from Transmitter");
94
+ }
92
95
  return new import_CommandDeserializer.CommandDeserializer(responseByteArray).deserialize();
93
96
  } catch (error) {
94
97
  throw error;
@@ -97,23 +100,29 @@ class Interpreter {
97
100
  /**
98
101
  *
99
102
  * @param {Command} command
100
- * @param {WsConnectionData} connectionData
101
- * @returns {Promise<Command>}
103
+ * @param {IConnectionData} connectionData
104
+ * @returns {Command | Promise<Command>}
102
105
  */
103
106
  execute(command, connectionData) {
104
107
  try {
108
+ if (!this.handler) {
109
+ this.handler = new import_Handler.Handler(this);
110
+ }
105
111
  let messageByteArray = new import_CommandSerializer.CommandSerializer().serialize(command, connectionData);
106
- let responseByteArray;
112
+ let responseByteArray = void 0;
107
113
  if (command.runtimeName === import_RuntimeName.RuntimeName.Nodejs && connectionData.connectionType === import_ConnectionType.ConnectionType.IN_MEMORY) {
108
114
  if ((0, import_Runtime.isNodejsRuntime)()) {
109
115
  if (!_Receiver) {
110
116
  const { Receiver } = require("../receiver/Receiver.cjs");
111
117
  _Receiver = Receiver;
112
118
  }
113
- responseByteArray = _Receiver.sendCommand(messageByteArray);
119
+ responseByteArray = _Receiver?.sendCommand(messageByteArray);
114
120
  }
115
121
  } else if (connectionData.connectionType === import_ConnectionType.ConnectionType.WEB_SOCKET) {
116
- const promise = _TransmitterWebsocket.sendCommand(messageByteArray, connectionData);
122
+ const promise = _TransmitterWebsocket?.sendCommand(messageByteArray, connectionData);
123
+ if (!promise) {
124
+ throw new Error("TransmitterWebsocket not found");
125
+ }
117
126
  return promise.then((_response) => {
118
127
  if (_response) {
119
128
  const command2 = new import_CommandDeserializer.CommandDeserializer(_response).deserialize();
@@ -130,11 +139,14 @@ class Interpreter {
130
139
  const { Transmitter } = require("../transmitter/Transmitter.cjs");
131
140
  _Transmitter = Transmitter;
132
141
  }
133
- responseByteArray = _Transmitter.sendCommand(messageByteArray);
142
+ responseByteArray = _Transmitter?.sendCommand(messageByteArray);
134
143
  } else {
135
144
  throw new Error("Allowed only to run in nodejs runtime");
136
145
  }
137
146
  }
147
+ if (!responseByteArray) {
148
+ throw new Error("No response received from Transmitter");
149
+ }
138
150
  return new import_CommandDeserializer.CommandDeserializer(responseByteArray).deserialize();
139
151
  } catch (error) {
140
152
  throw error;
@@ -142,7 +154,7 @@ class Interpreter {
142
154
  }
143
155
  /**
144
156
  *
145
- * @param {number[]} messageByteArray
157
+ * @param {Int8Array} messageByteArray
146
158
  * @returns {Command}
147
159
  */
148
160
  process(messageByteArray) {
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -17,26 +16,38 @@ var __copyProps = (to, from, except, desc) => {
17
16
  return to;
18
17
  };
19
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
19
  var NamespaceCache_exports = {};
22
20
  __export(NamespaceCache_exports, {
23
21
  NamespaceCache: () => NamespaceCache
24
22
  });
25
23
  module.exports = __toCommonJS(NamespaceCache_exports);
26
- const _NamespaceCache = class _NamespaceCache {
24
+ class NamespaceCache {
25
+ /** @type {NamespaceCache | null} */
26
+ static _instance = null;
27
+ /** @type {string[]} */
28
+ namespaceCache = [];
27
29
  constructor() {
28
- __publicField(this, "namespaceCache", []);
29
- if (_NamespaceCache._instance === null) {
30
- _NamespaceCache._instance = this;
30
+ if (NamespaceCache._instance === null) {
31
+ NamespaceCache._instance = this;
31
32
  }
32
- return _NamespaceCache._instance;
33
+ return NamespaceCache._instance;
33
34
  }
35
+ /**
36
+ * @param {string} namespaceRegex
37
+ */
34
38
  cacheNamespace(namespaceRegex) {
35
39
  this.namespaceCache.push(namespaceRegex);
36
40
  }
41
+ /**
42
+ * @returns {boolean}
43
+ */
37
44
  isNamespaceCacheEmpty() {
38
45
  return this.namespaceCache.length === 0;
39
46
  }
47
+ /**
48
+ * @param {string} typeToCheck
49
+ * @returns {boolean}
50
+ */
40
51
  isTypeAllowed(typeToCheck) {
41
52
  for (let pattern of this.namespaceCache) {
42
53
  if (new RegExp(pattern).test(typeToCheck.constructor.name)) {
@@ -52,9 +63,7 @@ const _NamespaceCache = class _NamespaceCache {
52
63
  this.namespaceCache = [];
53
64
  return 0;
54
65
  }
55
- };
56
- __publicField(_NamespaceCache, "_instance", null);
57
- let NamespaceCache = _NamespaceCache;
66
+ }
58
67
  // Annotate the CommonJS export names for ESM import in node:
59
68
  0 && (module.exports = {
60
69
  NamespaceCache
@@ -22,10 +22,12 @@ __export(CommandDeserializer_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(CommandDeserializer_exports);
24
24
  var import_Command = require("../../utils/Command.cjs");
25
- var import_CommandType = require("../../utils/CommandType.cjs");
26
25
  var import_Type = require("../../utils/Type.cjs");
27
26
  var import_TypeDeserializer = require("./TypeDeserializer.cjs");
28
27
  class CommandDeserializer {
28
+ /**
29
+ * @param {Int8Array} buffer
30
+ */
29
31
  constructor(buffer) {
30
32
  this.buffer = buffer;
31
33
  this.command = new import_Command.Command(buffer[0], buffer[10], []);
@@ -43,8 +45,14 @@ class CommandDeserializer {
43
45
  isAtEnd() {
44
46
  return this.position === this.buffer.length;
45
47
  }
48
+ /**
49
+ * @param {number} typeNum
50
+ * @returns {any}
51
+ */
46
52
  readObject(typeNum) {
47
- const type = Object.entries(import_Type.Type).find((entry) => entry[1] === typeNum)[0];
53
+ const entry = Object.entries(import_Type.Type).find((entry2) => entry2[1] === typeNum);
54
+ if (!entry) throw new Error("Unknown type number: " + typeNum);
55
+ const type = entry[0];
48
56
  switch (type) {
49
57
  case "JAVONET_COMMAND":
50
58
  return this.readCommand();
@@ -22,28 +22,48 @@ __export(CommandSerializer_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(CommandSerializer_exports);
24
24
  var import_TypeSerializer = require("./TypeSerializer.cjs");
25
+ var import_ReferencesCache = require("../referenceCache/ReferencesCache.cjs");
25
26
  var import_Command = require("../../utils/Command.cjs");
27
+ var import_CommandType = require("../../utils/CommandType.cjs");
26
28
  var import_RuntimeName = require("../../utils/RuntimeName.cjs");
29
+ var import_TypesHandler = require("../../utils/TypesHandler.cjs");
27
30
  class CommandSerializer {
28
- serialize(rootCommand, connectionData) {
31
+ /**
32
+ * Serializes the root command with connection data and optional runtime version.
33
+ * @param {Command} rootCommand
34
+ * @param {IConnectionData} connectionData
35
+ * @param {number} runtimeVersion
36
+ * @returns {Int8Array}
37
+ */
38
+ serialize(rootCommand, connectionData, runtimeVersion = 0) {
29
39
  const buffers = [];
30
- buffers.push(Uint8Array.of(rootCommand.runtimeName, 0));
40
+ buffers.push(Uint8Array.of(rootCommand.runtimeName, runtimeVersion));
31
41
  if (connectionData) {
32
42
  buffers.push(connectionData.serializeConnectionData());
33
43
  } else {
34
44
  buffers.push(Uint8Array.of(0, 0, 0, 0, 0, 0, 0));
35
45
  }
36
- buffers.push(Uint8Array.of(import_RuntimeName.RuntimeName.Nodejs, rootCommand.commandType));
46
+ buffers.push(Uint8Array.of(import_RuntimeName.RuntimeName.Python, rootCommand.commandType));
37
47
  this.serializeRecursively(rootCommand, buffers);
38
48
  return concatenateUint8Arrays(buffers);
39
49
  }
50
+ /**
51
+ * Recursively serializes command payload.
52
+ * @param {Command} command
53
+ * @param {Array<Uint8Array>} buffers
54
+ */
40
55
  serializeRecursively(command, buffers) {
41
56
  for (const item of command.payload) {
42
57
  if (item instanceof import_Command.Command) {
43
58
  buffers.push(import_TypeSerializer.TypeSerializer.serializeCommand(item));
44
59
  this.serializeRecursively(item, buffers);
45
- } else {
60
+ } else if (import_TypesHandler.TypesHandler.isPrimitiveOrNullOrUndefined(item)) {
46
61
  buffers.push(import_TypeSerializer.TypeSerializer.serializePrimitive(item));
62
+ } else {
63
+ const cachedReference = import_ReferencesCache.ReferencesCache.getInstance().cacheReference(item);
64
+ const refCommand = new import_Command.Command(import_RuntimeName.RuntimeName.Nodejs, import_CommandType.CommandType.Reference, cachedReference);
65
+ buffers.push(import_TypeSerializer.TypeSerializer.serializeCommand(refCommand));
66
+ this.serializeRecursively(refCommand, buffers);
47
67
  }
48
68
  }
49
69
  }