javonet-nodejs-sdk 2.5.17 → 2.5.19

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 +89 -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 +113 -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
@@ -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
  }
@@ -25,9 +25,17 @@ var import_Command = require("../../utils/Command.cjs");
25
25
  var import_buffer = require("buffer");
26
26
  var import_StringEncodingMode = require("../../utils/StringEncodingMode.cjs");
27
27
  class TypeDeserializer {
28
+ /**
29
+ * @param {Int8Array} encodedCommand
30
+ * @returns {Command}
31
+ */
28
32
  static deserializeCommand(encodedCommand) {
29
33
  return new import_Command.Command(encodedCommand[0], encodedCommand[1], []);
30
34
  }
35
+ /**
36
+ * @param {number} stringEncodingMode
37
+ * @param {Int8Array} encodedString
38
+ */
31
39
  static deserializeString(stringEncodingMode, encodedString) {
32
40
  switch (stringEncodingMode) {
33
41
  case import_StringEncodingMode.StringEncodingMode.ASCII:
@@ -53,30 +61,57 @@ class TypeDeserializer {
53
61
  throw "Unknown string encoding - not supported in JavaScript";
54
62
  }
55
63
  }
64
+ /**
65
+ * @param {Int8Array} encodedInt
66
+ */
56
67
  static deserializeInt(encodedInt) {
57
68
  return encodedInt[0] & 255 | (encodedInt[1] & 255) << 8 | (encodedInt[2] & 255) << 16 | (encodedInt[3] & 255) << 24;
58
69
  }
70
+ /**
71
+ * @param {Int8Array} encodedBool
72
+ */
59
73
  static deserializeBool(encodedBool) {
60
74
  return encodedBool[0] === 1;
61
75
  }
76
+ /**
77
+ * @param {Int8Array} encodedFloat
78
+ */
62
79
  static deserializeFloat(encodedFloat) {
63
80
  return import_buffer.Buffer.from(encodedFloat).readFloatLE();
64
81
  }
82
+ /**
83
+ * @param {Int8Array} encodedByte
84
+ */
65
85
  static deserializeByte(encodedByte) {
66
86
  return import_buffer.Buffer.from(encodedByte).readUint8();
67
87
  }
88
+ /**
89
+ * @param {Int8Array} encodedChar
90
+ */
68
91
  static deserializeChar(encodedChar) {
69
92
  return import_buffer.Buffer.from(encodedChar).readUint8();
70
93
  }
94
+ /**
95
+ * @param {Int8Array} encodedLongLong
96
+ */
71
97
  static deserializeLongLong(encodedLongLong) {
72
98
  return import_buffer.Buffer.from(encodedLongLong).readBigInt64LE();
73
99
  }
100
+ /**
101
+ * @param {Int8Array} encodedDouble
102
+ */
74
103
  static deserializeDouble(encodedDouble) {
75
104
  return import_buffer.Buffer.from(encodedDouble).readDoubleLE();
76
105
  }
106
+ /**
107
+ * @param {Int8Array} encodedULLong
108
+ */
77
109
  static deserializeULLong(encodedULLong) {
78
110
  return import_buffer.Buffer.from(encodedULLong).readBigUInt64LE();
79
111
  }
112
+ /**
113
+ * @param {Int8Array} encodedUInt
114
+ */
80
115
  static deserializeUInt(encodedUInt) {
81
116
  return import_buffer.Buffer.from(encodedUInt).readUIntLE(0, 4);
82
117
  }
@@ -28,40 +28,54 @@ var import_buffer = require("buffer");
28
28
  var import_CustomError = require("../../utils/CustomError.cjs");
29
29
  const encoder = new TextEncoder();
30
30
  class TypeSerializer {
31
+ /**
32
+ * @param {unknown} payload_item
33
+ */
31
34
  static serializePrimitive(payload_item) {
32
35
  if (payload_item === null) {
33
36
  return TypeSerializer.serializeNull();
34
37
  }
35
38
  if (payload_item instanceof import_Command.Command) {
36
39
  return TypeSerializer.serializeCommand(payload_item);
37
- } else if (typeof payload_item === "number" || payload_item instanceof Number) {
40
+ } else if (typeof payload_item === "number") {
38
41
  if (Number.isInteger(payload_item)) {
39
42
  return TypeSerializer.serializeInt(payload_item);
40
43
  } else {
41
44
  return TypeSerializer.serializeDouble(payload_item);
42
45
  }
43
- } else if (typeof payload_item === "string" || payload_item instanceof String) {
46
+ } else if (typeof payload_item === "string") {
44
47
  return TypeSerializer.serializeString(payload_item);
45
- } else if (typeof payload_item === "boolean" || payload_item instanceof Boolean) {
48
+ } else if (typeof payload_item === "boolean") {
46
49
  return TypeSerializer.serializeBool(payload_item);
47
50
  } else {
48
51
  if (payload_item instanceof Promise) {
49
- throw new import_CustomError.CustomError("Type not supported - Promise", JSON.stringify(payload_item));
52
+ const message = "Unsupported payload item type: " + (payload_item?.constructor?.name || typeof payload_item) + " for payload item: " + payload_item;
53
+ throw new import_CustomError.CustomError(message, "JAVONET_PROMISE");
50
54
  }
51
55
  if (payload_item === void 0) {
52
- throw "Type not supported - undefined";
56
+ throw Error(
57
+ "Unsupported payload item type: " + typeof payload_item + " for payload item: " + payload_item
58
+ );
53
59
  }
54
- throw "Unknown type - not supported in JavaScript";
60
+ throw Error(
61
+ "Unsupported payload item type: " + (payload_item?.constructor?.name || typeof payload_item) + " for payload item: " + payload_item
62
+ );
55
63
  }
56
64
  }
65
+ /**
66
+ * @param {Command} command
67
+ */
57
68
  static serializeCommand(command) {
58
69
  const buffer = import_buffer.Buffer.alloc(7);
59
70
  buffer.writeUInt8(import_Type.Type.JAVONET_COMMAND, 0);
60
71
  buffer.fill(import_buffer.Buffer.from(this.serializeIntValue(command.payload.length)), 1, 5);
61
- buffer.writeUInt8(command.runtime, 5);
72
+ buffer.writeUInt8(command.runtimeName, 5);
62
73
  buffer.writeUInt8(command.commandType, 6);
63
74
  return buffer;
64
75
  }
76
+ /**
77
+ * @param {string} string_value
78
+ */
65
79
  static serializeString(string_value) {
66
80
  let bytes = encoder.encode(string_value);
67
81
  const buffer = import_buffer.Buffer.alloc(6 + bytes.length);
@@ -71,6 +85,9 @@ class TypeSerializer {
71
85
  buffer.fill(import_buffer.Buffer.from(bytes), 6, 6 + bytes.length);
72
86
  return buffer;
73
87
  }
88
+ /**
89
+ * @param {number} int_value
90
+ */
74
91
  static serializeInt(int_value) {
75
92
  const buffer = import_buffer.Buffer.alloc(6);
76
93
  buffer.writeUInt8(import_Type.Type.JAVONET_INTEGER, 0);
@@ -78,6 +95,9 @@ class TypeSerializer {
78
95
  buffer.writeInt32LE(int_value, 2);
79
96
  return buffer;
80
97
  }
98
+ /**
99
+ * @param {boolean} bool_value
100
+ */
81
101
  static serializeBool(bool_value) {
82
102
  const buffer = import_buffer.Buffer.alloc(3);
83
103
  buffer.writeUInt8(import_Type.Type.JAVONET_BOOLEAN, 0);
@@ -85,6 +105,9 @@ class TypeSerializer {
85
105
  buffer.writeUInt8(bool_value ? 1 : 0, 2);
86
106
  return buffer;
87
107
  }
108
+ /**
109
+ * @param {number} float_value
110
+ */
88
111
  static serializeFloat(float_value) {
89
112
  const buffer = import_buffer.Buffer.alloc(6);
90
113
  buffer.writeUInt8(import_Type.Type.JAVONET_FLOAT, 0);
@@ -92,6 +115,9 @@ class TypeSerializer {
92
115
  buffer.writeFloatLE(float_value, 2);
93
116
  return buffer;
94
117
  }
118
+ /**
119
+ * @param {number} byte_value
120
+ */
95
121
  static serializeByte(byte_value) {
96
122
  const buffer = import_buffer.Buffer.alloc(3);
97
123
  buffer.writeUInt8(import_Type.Type.JAVONET_BYTE, 0);
@@ -99,6 +125,9 @@ class TypeSerializer {
99
125
  buffer.writeUInt8(byte_value, 2);
100
126
  return buffer;
101
127
  }
128
+ /**
129
+ * @param {number} char_value
130
+ */
102
131
  static serializeChar(char_value) {
103
132
  const buffer = import_buffer.Buffer.alloc(3);
104
133
  buffer.writeUInt8(import_Type.Type.JAVONET_CHAR, 0);
@@ -106,6 +135,9 @@ class TypeSerializer {
106
135
  buffer.writeUInt8(char_value, 2);
107
136
  return buffer;
108
137
  }
138
+ /**
139
+ * @param {number} longlong_value
140
+ */
109
141
  static serializeLongLong(longlong_value) {
110
142
  const buffer = import_buffer.Buffer.alloc(10);
111
143
  buffer.writeUInt8(import_Type.Type.JAVONET_LONG_LONG, 0);
@@ -113,6 +145,9 @@ class TypeSerializer {
113
145
  buffer.writeBigInt64LE(BigInt(longlong_value), 2);
114
146
  return buffer;
115
147
  }
148
+ /**
149
+ * @param {number} double_value
150
+ */
116
151
  static serializeDouble(double_value) {
117
152
  const buffer = import_buffer.Buffer.alloc(10);
118
153
  buffer.writeUInt8(import_Type.Type.JAVONET_DOUBLE, 0);
@@ -120,6 +155,9 @@ class TypeSerializer {
120
155
  buffer.writeDoubleLE(double_value, 2);
121
156
  return buffer;
122
157
  }
158
+ /**
159
+ * @param {bigint} ullong_value
160
+ */
123
161
  static serializeULLong(ullong_value) {
124
162
  const buffer = import_buffer.Buffer.alloc(10);
125
163
  buffer.writeUInt8(import_Type.Type.JAVONET_UNSIGNED_LONG_LONG, 0);
@@ -127,6 +165,9 @@ class TypeSerializer {
127
165
  buffer.writeBigUInt64LE(ullong_value, 2);
128
166
  return buffer;
129
167
  }
168
+ /**
169
+ * @param {number} uint_value
170
+ */
130
171
  static serializeUInt(uint_value) {
131
172
  const buffer = import_buffer.Buffer.alloc(6);
132
173
  buffer.writeUInt8(import_Type.Type.JAVONET_UNSIGNED_INTEGER, 0);
@@ -141,6 +182,9 @@ class TypeSerializer {
141
182
  buffer.writeUInt8(0, 2);
142
183
  return buffer;
143
184
  }
185
+ /**
186
+ * @param {number} int_value
187
+ */
144
188
  static serializeIntValue(int_value) {
145
189
  const buffer = import_buffer.Buffer.alloc(4);
146
190
  buffer.writeInt32LE(int_value, 0);
@@ -38,7 +38,7 @@ class Receiver {
38
38
  _RuntimeLogger?.printRuntimeInfo();
39
39
  }
40
40
  /**
41
- * @param {number[]} messageByteArray
41
+ * @param {Int8Array} messageByteArray
42
42
  */
43
43
  static sendCommand(messageByteArray) {
44
44
  return new import_CommandSerializer.CommandSerializer().serialize(
@@ -23,9 +23,15 @@ __export(ReceiverNative_exports, {
23
23
  module.exports = __toCommonJS(ReceiverNative_exports);
24
24
  var import_Receiver = require("./Receiver.cjs");
25
25
  class ReceiverNative {
26
+ /**
27
+ * @param {Int8Array} messageByteArray
28
+ */
26
29
  static sendCommand(messageByteArray) {
27
30
  return import_Receiver.Receiver.sendCommand(messageByteArray);
28
31
  }
32
+ /**
33
+ * @param {Int8Array} messageByteArray
34
+ */
29
35
  static heartBeat(messageByteArray) {
30
36
  return import_Receiver.Receiver.heartBeat(messageByteArray);
31
37
  }
@@ -23,15 +23,31 @@ __export(Transmitter_exports, {
23
23
  module.exports = __toCommonJS(Transmitter_exports);
24
24
  var import_TransmitterWrapper = require("./TransmitterWrapper.cjs");
25
25
  class Transmitter {
26
+ /**
27
+ * @param {Int8Array} messageArray
28
+ * @returns {Int8Array}
29
+ */
26
30
  static sendCommand(messageArray) {
27
31
  return import_TransmitterWrapper.TransmitterWrapper.sendCommand(messageArray);
28
32
  }
29
- static activate = function(licenseKey) {
33
+ /**
34
+ * @param {string} licenseKey
35
+ * @returns {void}
36
+ */
37
+ static activate(licenseKey) {
30
38
  return import_TransmitterWrapper.TransmitterWrapper.activate(licenseKey);
31
- };
39
+ }
40
+ /**
41
+ * @param {string} configSource
42
+ * @returns {void}
43
+ */
32
44
  static setConfigSource(configSource) {
33
45
  return import_TransmitterWrapper.TransmitterWrapper.setConfigSource(configSource);
34
46
  }
47
+ /**
48
+ * @param {string} workingDirectory
49
+ * @returns
50
+ */
35
51
  static setJavonetWorkingDirectory(workingDirectory) {
36
52
  return import_TransmitterWrapper.TransmitterWrapper.setJavonetWorkingDirectory(workingDirectory);
37
53
  }
@@ -40,13 +40,16 @@ class TransmitterWebsocket {
40
40
  }
41
41
  /**
42
42
  * @async
43
- * @param {number[]} messageByteArray
44
- * @param {WsConnectionData} connectionData
45
- * @returns {Promise<number[]>} responseByteArray
43
+ * @param {Int8Array} messageByteArray
44
+ * @param {IConnectionData} connectionData
45
+ * @returns {Promise<Int8Array>} responseByteArray
46
46
  */
47
- static async sendCommand(messageByteArray, connectionData) {
47
+ static sendCommand(messageByteArray, connectionData) {
48
48
  const { hostname } = connectionData;
49
- return new import_WebSocketClient.WebSocketClient(hostname).send(messageByteArray);
49
+ const options = {
50
+ isDisconnectedAfterMessage: true
51
+ };
52
+ return new import_WebSocketClient.WebSocketClient(hostname, options).send(messageByteArray);
50
53
  }
51
54
  }
52
55
  // Annotate the CommonJS export names for ESM import in node:
@@ -36,7 +36,7 @@ class TransmitterWebsocketBrowser {
36
36
  /**
37
37
  * @async
38
38
  * @param {Int8Array} messageByteArray
39
- * @param {ConnectionData} connectionData
39
+ * @param {IConnectionData} connectionData
40
40
  * @returns {Promise<Int8Array>} responseByteArray
41
41
  */
42
42
  static async sendCommand(messageByteArray, connectionData) {
@@ -24,11 +24,12 @@ module.exports = __toCommonJS(TransmitterWrapper_exports);
24
24
  var import_Runtime = require("../../utils/Runtime.cjs");
25
25
  var import_ReceiverNative = require("../receiver/ReceiverNative.cjs");
26
26
  const import_meta = {};
27
- let library;
27
+ let library = null;
28
+ let path = null;
28
29
  const requireDynamic = (0, import_Runtime.getRequire)(import_meta.url);
29
30
  class TransmitterWrapper {
30
31
  static isNativeLibraryLoaded() {
31
- return library !== void 0;
32
+ return Boolean(library);
32
33
  }
33
34
  static loadNativeLibrary() {
34
35
  if (!(0, import_Runtime.isNodejsRuntime)()) {
@@ -38,35 +39,51 @@ class TransmitterWrapper {
38
39
  return;
39
40
  }
40
41
  try {
41
- const path = requireDynamic("path");
42
+ if (!path) {
43
+ path = requireDynamic("path");
44
+ }
42
45
  const packagePath = (0, import_Runtime.getDependency)("javonet-binaries", import_meta.url);
43
46
  const binariesRootPath = path.dirname(packagePath);
44
- const nativeAddonPath = path.join(binariesRootPath, "build", "Release", "JavonetNodejsRuntimeAddon.node");
47
+ const nativeAddonPath = path.join(
48
+ binariesRootPath,
49
+ "build",
50
+ "Release",
51
+ "JavonetNodejsRuntimeAddon.node"
52
+ );
45
53
  library = requireDynamic(nativeAddonPath);
46
54
  library.initializeTransmitter(binariesRootPath);
47
- library.setReceiverNative(global.ReceiverNative);
55
+ library.setReceiverNative(global?.ReceiverNative);
48
56
  } catch (error) {
49
57
  throw error;
50
58
  }
51
59
  }
52
60
  /**
53
- * @param {string} licenseKey
61
+ * @param {string} licenseKey
54
62
  */
55
63
  static activate(licenseKey) {
56
64
  this.loadNativeLibrary();
57
65
  return library.activate(licenseKey);
58
66
  }
67
+ /**
68
+ * @param {Int8Array} messageArray
69
+ */
59
70
  static sendCommand(messageArray) {
60
71
  this.loadNativeLibrary();
61
72
  return library.sendCommand(messageArray);
62
73
  }
74
+ /**
75
+ * @param {string} configSource
76
+ */
63
77
  static setConfigSource(configSource) {
64
78
  this.loadNativeLibrary();
65
79
  return library.setConfigSource(configSource);
66
80
  }
67
- static setJavonetWorkingDirectory(path) {
81
+ /**
82
+ * @param {string} path
83
+ */
84
+ static setJavonetWorkingDirectory(path2) {
68
85
  this.loadNativeLibrary();
69
- library.setJavonetWorkingDirectory(path);
86
+ library.setJavonetWorkingDirectory(path2);
70
87
  }
71
88
  }
72
89
  // Annotate the CommonJS export names for ESM import in node:
@@ -22,7 +22,9 @@ __export(TypeCache_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(TypeCache_exports);
24
24
  class TypeCache {
25
+ /** @type {TypeCache | null} */
25
26
  static _instance = null;
27
+ /** @type {string[]} */
26
28
  typeCache = [];
27
29
  constructor() {
28
30
  if (TypeCache._instance === null) {
@@ -30,12 +32,18 @@ class TypeCache {
30
32
  }
31
33
  return TypeCache._instance;
32
34
  }
35
+ /**
36
+ * @param {string} typRegex
37
+ */
33
38
  cacheType(typRegex) {
34
39
  this.typeCache.push(typRegex);
35
40
  }
36
41
  isTypeCacheEmpty() {
37
42
  return this.typeCache.length === 0;
38
43
  }
44
+ /**
45
+ * @param {{ name: string }} typeToCheck
46
+ */
39
47
  isTypeAllowed(typeToCheck) {
40
48
  for (let pattern of this.typeCache) {
41
49
  if (new RegExp(pattern).test(typeToCheck.name)) {
@@ -33,7 +33,7 @@ let WebSocket = null;
33
33
  class WebSocketClient {
34
34
  /**
35
35
  * @param {string} url
36
- * @param {object} options
36
+ * @param {{ isDisconnectedAfterMessage: boolean }} options
37
37
  */
38
38
  constructor(url, options) {
39
39
  this.url = url;
@@ -44,7 +44,7 @@ class WebSocketClient {
44
44
  /**
45
45
  * Connects to the WebSocket server.
46
46
  * @async
47
- * @returns {Promise<WebSocket>} - A promise that resolves when the connection is established.
47
+ * @returns {Promise<wsClient>} - A promise that resolves when the connection is established.
48
48
  */
49
49
  async connect() {
50
50
  if (!WebSocket) {
@@ -52,7 +52,7 @@ class WebSocketClient {
52
52
  try {
53
53
  WebSocket = requireDynamic("ws");
54
54
  } catch (error) {
55
- if (error.code === "MODULE_NOT_FOUND") {
55
+ if (typeof error === "object" && error && "code" in error && error.code === "MODULE_NOT_FOUND") {
56
56
  throw new Error("ws module not found. Please install it using npm install ws");
57
57
  }
58
58
  throw error;
@@ -60,6 +60,10 @@ class WebSocketClient {
60
60
  }
61
61
  }
62
62
  return new Promise((resolve, reject) => {
63
+ if (!WebSocket) {
64
+ reject(new Error("ws client is null"));
65
+ return;
66
+ }
63
67
  const client = new WebSocket(this.url);
64
68
  client.on(WebSocketStateEnum.OPEN, () => {
65
69
  this.instance = client;
@@ -76,18 +80,17 @@ class WebSocketClient {
76
80
  /**
77
81
  * Sends messageArray through websocket connection
78
82
  * @async
79
- * @param {Buffer|ArrayBuffer|Buffer[]} messageArray
80
- * @returns {Promise<Buffer|ArrayBuffer|Buffer[]>}
83
+ * @param {Int8Array} messageArray
84
+ * @returns {Promise<Int8Array>}
81
85
  */
82
86
  send(messageArray) {
83
87
  return new Promise((resolve, reject) => {
84
88
  ;
85
89
  (this.instance ? Promise.resolve(this.instance) : this._connect()).then((client) => {
86
- client.send(messageArray, (err) => {
87
- if (err) {
88
- reject(err);
89
- }
90
- });
90
+ client.send(
91
+ /** @type {any} */
92
+ messageArray
93
+ );
91
94
  client.on("message", (message) => {
92
95
  resolve(message);
93
96
  if (this.isDisconnectedAfterMessage) {
@@ -113,7 +116,7 @@ class WebSocketClient {
113
116
  * Connects to the WebSocket server.
114
117
  * @private
115
118
  * @async
116
- * @returns {Promise<WebSocket>} - A promise that resolves when the connection is established.
119
+ * @returns {Promise<wsClient>} - A promise that resolves when the connection is established.
117
120
  */
118
121
  _connect() {
119
122
  if (!WebSocket) {
@@ -121,7 +124,10 @@ class WebSocketClient {
121
124
  try {
122
125
  WebSocket = requireDynamic("ws");
123
126
  } catch (error) {
124
- if (error.code === "MODULE_NOT_FOUND") {
127
+ if (
128
+ /** @type {{ code?: string }} */
129
+ error.code === "MODULE_NOT_FOUND"
130
+ ) {
125
131
  throw new Error("ws module not found. Please install it using npm install ws");
126
132
  }
127
133
  throw error;
@@ -129,6 +135,10 @@ class WebSocketClient {
129
135
  }
130
136
  }
131
137
  return new Promise((resolve, reject) => {
138
+ if (!WebSocket) {
139
+ reject(new Error("ws client is null"));
140
+ return;
141
+ }
132
142
  const client = new WebSocket(this.url);
133
143
  client.on(WebSocketStateEnum.OPEN, () => {
134
144
  this.isConnected = true;
@@ -86,8 +86,8 @@ class WebSocketClientBrowser {
86
86
  */
87
87
  _connect() {
88
88
  return new Promise((resolve, reject) => {
89
- if (!WsClient || WsClient === null) {
90
- reject(new Error("missing WebSocket client"));
89
+ if (WsClient === null) {
90
+ return reject(new Error("missing WebSocket client"));
91
91
  }
92
92
  this.instance = new WsClient(this.url);
93
93
  this.instance.binaryType = "arraybuffer";