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.
- package/dist/core/handler/AbstractHandler.cjs +23 -6
- package/dist/core/handler/ArrayGetItemHandler.cjs +4 -1
- package/dist/core/handler/ArrayGetRankHandler.cjs +3 -0
- package/dist/core/handler/ArrayGetSizeHandler.cjs +3 -0
- package/dist/core/handler/ArrayHandler.cjs +3 -0
- package/dist/core/handler/ArraySetItemHandler.cjs +4 -1
- package/dist/core/handler/CastingHandler.cjs +3 -1
- package/dist/core/handler/ConvertTypeHandler.cjs +4 -4
- package/dist/core/handler/CreateClassInstanceHandler.cjs +5 -2
- package/dist/core/handler/DestructReferenceHandler.cjs +3 -0
- package/dist/core/handler/EnableNamespaceHandler.cjs +3 -0
- package/dist/core/handler/EnableTypeHandler.cjs +3 -0
- package/dist/core/handler/GetGlobalStaticFieldHandler.cjs +3 -0
- package/dist/core/handler/GetInstanceFieldHandler.cjs +3 -0
- package/dist/core/handler/GetInstanceMethodAsDelegateHandler.cjs +15 -4
- package/dist/core/handler/GetStaticFieldHandler.cjs +4 -0
- package/dist/core/handler/GetStaticMethodAsDelegateHandler.cjs +8 -6
- package/dist/core/handler/GetTypeHandler.cjs +10 -2
- package/dist/core/handler/Handler.cjs +8 -11
- package/dist/core/handler/InvokeGlobalFunctionHandler.cjs +3 -0
- package/dist/core/handler/InvokeInstanceMethodHandler.cjs +3 -0
- package/dist/core/handler/InvokeStaticMethodHandler.cjs +3 -0
- package/dist/core/handler/LoadLibraryHandler.cjs +4 -0
- package/dist/core/handler/SetGlobalStaticFieldHandler.cjs +3 -0
- package/dist/core/handler/SetInstanceFieldHandler.cjs +3 -0
- package/dist/core/handler/SetStaticFieldHandler.cjs +3 -0
- package/dist/core/handler/ValueHandler.cjs +4 -0
- package/dist/core/interpreter/Interpreter.cjs +28 -12
- package/dist/core/namespaceCache/NamespaceCache.cjs +12 -0
- package/dist/core/protocol/CommandDeserializer.cjs +10 -2
- package/dist/core/protocol/CommandSerializer.cjs +24 -4
- package/dist/core/protocol/TypeDeserializer.cjs +35 -0
- package/dist/core/protocol/TypeSerializer.cjs +51 -7
- package/dist/core/receiver/Receiver.cjs +1 -1
- package/dist/core/receiver/ReceiverNative.cjs +6 -0
- package/dist/core/transmitter/Transmitter.cjs +18 -2
- package/dist/core/transmitter/TransmitterWebsocket.cjs +8 -5
- package/dist/core/transmitter/TransmitterWebsocketBrowser.cjs +1 -1
- package/dist/core/transmitter/TransmitterWrapper.cjs +25 -8
- package/dist/core/typeCache/TypeCache.cjs +8 -0
- package/dist/core/webSocketClient/WebSocketClient.cjs +22 -12
- package/dist/core/webSocketClient/WebSocketClientBrowser.cjs +2 -2
- package/dist/sdk/ConfigRuntimeFactory.cjs +60 -55
- package/dist/sdk/InvocationContext.cjs +81 -23
- package/dist/sdk/Javonet.cjs +14 -33
- package/dist/sdk/RuntimeContext.cjs +89 -30
- package/dist/sdk/RuntimeFactory.cjs +3 -0
- package/dist/sdk/tools/ActivationHelper.cjs +66 -0
- package/dist/sdk/tools/JsonResolver.cjs +214 -0
- package/dist/types/core/handler/AbstractHandler.d.ts +23 -4
- package/dist/types/core/handler/ArrayGetItemHandler.d.ts +8 -1
- package/dist/types/core/handler/ArrayGetRankHandler.d.ts +8 -1
- package/dist/types/core/handler/ArrayGetSizeHandler.d.ts +8 -1
- package/dist/types/core/handler/ArrayHandler.d.ts +8 -1
- package/dist/types/core/handler/ArraySetItemHandler.d.ts +8 -1
- package/dist/types/core/handler/CastingHandler.d.ts +4 -0
- package/dist/types/core/handler/ConvertTypeHandler.d.ts +8 -4
- package/dist/types/core/handler/CreateClassInstanceHandler.d.ts +8 -1
- package/dist/types/core/handler/DestructReferenceHandler.d.ts +8 -1
- package/dist/types/core/handler/EnableNamespaceHandler.d.ts +8 -1
- package/dist/types/core/handler/EnableTypeHandler.d.ts +8 -1
- package/dist/types/core/handler/GetGlobalStaticFieldHandler.d.ts +8 -1
- package/dist/types/core/handler/GetInstanceFieldHandler.d.ts +8 -1
- package/dist/types/core/handler/GetStaticFieldHandler.d.ts +9 -1
- package/dist/types/core/handler/GetStaticMethodAsDelegateHandler.d.ts +4 -3
- package/dist/types/core/handler/GetTypeHandler.d.ts +17 -8
- package/dist/types/core/handler/Handler.d.ts +8 -8
- package/dist/types/core/handler/InvokeDelegateHandler.d.ts +4 -0
- package/dist/types/core/handler/InvokeGlobalFunctionHandler.d.ts +8 -1
- package/dist/types/core/handler/InvokeInstanceMethodHandler.d.ts +8 -1
- package/dist/types/core/handler/InvokeStaticMethodHandler.d.ts +8 -1
- package/dist/types/core/handler/LoadLibraryHandler.d.ts +8 -3
- package/dist/types/core/handler/SetGlobalStaticFieldHandler.d.ts +4 -0
- package/dist/types/core/handler/SetInstanceFieldHandler.d.ts +8 -1
- package/dist/types/core/handler/SetStaticFieldHandler.d.ts +8 -1
- package/dist/types/core/handler/ValueHandler.d.ts +9 -1
- package/dist/types/core/interpreter/Interpreter.d.ts +11 -10
- package/dist/types/core/namespaceCache/NamespaceCache.d.ts +17 -5
- package/dist/types/core/protocol/CommandDeserializer.d.ts +10 -3
- package/dist/types/core/protocol/CommandSerializer.d.ts +19 -2
- package/dist/types/core/protocol/TypeDeserializer.d.ts +46 -11
- package/dist/types/core/protocol/TypeSerializer.d.ts +53 -13
- package/dist/types/core/receiver/Receiver.d.ts +2 -2
- package/dist/types/core/receiver/ReceiverNative.d.ts +8 -2
- package/dist/types/core/transmitter/Transmitter.d.ts +20 -4
- package/dist/types/core/transmitter/TransmitterWebsocket.d.ts +8 -4
- package/dist/types/core/transmitter/TransmitterWebsocketBrowser.d.ts +4 -7
- package/dist/types/core/transmitter/TransmitterWrapper.d.ts +12 -3
- package/dist/types/core/typeCache/TypeCache.d.ts +15 -5
- package/dist/types/core/webSocketClient/WebSocketClient.d.ts +17 -21
- package/dist/types/sdk/ConfigRuntimeFactory.d.ts +9 -6
- package/dist/types/sdk/InvocationContext.d.ts +38 -6
- package/dist/types/sdk/Javonet.d.ts +12 -7
- package/dist/types/sdk/RuntimeContext.d.ts +23 -7
- package/dist/types/sdk/RuntimeFactory.d.ts +9 -2
- package/dist/types/sdk/tools/ActivationHelper.d.ts +20 -0
- package/dist/types/sdk/tools/JsonResolver.d.ts +87 -0
- package/dist/types/utils/Command.d.ts +18 -14
- package/dist/types/utils/CustomError.d.ts +5 -1
- package/dist/types/utils/Runtime.d.ts +1 -2
- package/dist/types/utils/RuntimeNameHandler.d.ts +6 -2
- package/dist/types/utils/Type.d.ts +1 -0
- package/dist/types/utils/TypesHandler.d.ts +16 -0
- package/dist/types/utils/UtilsConst.d.ts +32 -0
- package/dist/types/utils/connectionData/IConnectionData.d.ts +16 -3
- package/dist/types/utils/connectionData/InMemoryConnectionData.d.ts +4 -3
- package/dist/types/utils/connectionData/WsConnectionData.d.ts +7 -10
- package/dist/types/utils/nodejs/connectionData/TcpConnectionData.d.ts +17 -10
- package/dist/utils/Command.cjs +9 -9
- package/dist/utils/CustomError.cjs +4 -0
- package/dist/utils/RuntimeNameHandler.cjs +1 -1
- package/dist/utils/Type.cjs +2 -1
- package/dist/utils/TypesHandler.cjs +55 -0
- package/dist/utils/UtilsConst.cjs +101 -0
- package/dist/utils/connectionData/IConnectionData.cjs +9 -0
- package/dist/utils/connectionData/InMemoryConnectionData.cjs +10 -0
- package/dist/utils/connectionData/WsConnectionData.cjs +4 -0
- package/dist/utils/nodejs/connectionData/TcpConnectionData.cjs +33 -3
- package/lib/core/delegatesCache/DelegatesCache.js +1 -0
- package/lib/core/handler/AbstractHandler.js +27 -9
- package/lib/core/handler/ArrayGetItemHandler.js +9 -1
- package/lib/core/handler/ArrayGetRankHandler.js +9 -0
- package/lib/core/handler/ArrayGetSizeHandler.js +8 -0
- package/lib/core/handler/ArrayHandler.js +8 -0
- package/lib/core/handler/ArraySetItemHandler.js +11 -1
- package/lib/core/handler/CastingHandler.js +8 -1
- package/lib/core/handler/ConvertTypeHandler.js +9 -4
- package/lib/core/handler/CreateClassInstanceHandler.js +10 -4
- package/lib/core/handler/DestructReferenceHandler.js +8 -0
- package/lib/core/handler/EnableNamespaceHandler.js +8 -0
- package/lib/core/handler/EnableTypeHandler.js +8 -0
- package/lib/core/handler/GetGlobalStaticFieldHandler.js +9 -0
- package/lib/core/handler/GetInstanceFieldHandler.js +8 -0
- package/lib/core/handler/GetInstanceMethodAsDelegateHandler.js +9 -4
- package/lib/core/handler/GetStaticFieldHandler.js +9 -0
- package/lib/core/handler/GetStaticMethodAsDelegateHandler.js +8 -7
- package/lib/core/handler/GetTypeHandler.js +15 -5
- package/lib/core/handler/Handler.js +13 -18
- package/lib/core/handler/InvokeDelegateHandler.js +5 -0
- package/lib/core/handler/InvokeGlobalFunctionHandler.js +11 -1
- package/lib/core/handler/InvokeInstanceMethodHandler.js +8 -0
- package/lib/core/handler/InvokeStaticMethodHandler.js +8 -0
- package/lib/core/handler/LoadLibraryHandler.js +11 -0
- package/lib/core/handler/SetGlobalStaticFieldHandler.js +10 -0
- package/lib/core/handler/SetInstanceFieldHandler.js +7 -0
- package/lib/core/handler/SetStaticFieldHandler.js +8 -0
- package/lib/core/handler/ValueHandler.js +9 -0
- package/lib/core/interpreter/Interpreter.js +42 -24
- package/lib/core/namespaceCache/NamespaceCache.js +14 -0
- package/lib/core/protocol/CommandDeserializer.js +11 -2
- package/lib/core/protocol/CommandSerializer.js +40 -9
- package/lib/core/protocol/TypeDeserializer.js +36 -0
- package/lib/core/protocol/TypeSerializer.js +62 -7
- package/lib/core/receiver/Receiver.js +3 -2
- package/lib/core/receiver/ReceiverNative.js +8 -0
- package/lib/core/transmitter/Transmitter.js +18 -1
- package/lib/core/transmitter/TransmitterWebsocket.js +12 -5
- package/lib/core/transmitter/TransmitterWebsocketBrowser.js +2 -4
- package/lib/core/transmitter/TransmitterWrapper.js +27 -6
- package/lib/core/typeCache/TypeCache.js +9 -0
- package/lib/core/webSocketClient/WebSocketClient.js +33 -30
- package/lib/core/webSocketClient/WebSocketClientBrowser.js +5 -6
- package/lib/sdk/ConfigRuntimeFactory.js +70 -68
- package/lib/sdk/InvocationContext.js +94 -26
- package/lib/sdk/Javonet.js +18 -36
- package/lib/sdk/RuntimeContext.js +113 -29
- package/lib/sdk/RuntimeFactory.js +7 -0
- package/lib/sdk/tools/ActivationHelper.js +51 -0
- package/lib/sdk/tools/JsonResolver.js +226 -0
- package/lib/types.d.ts +57 -0
- package/lib/utils/Command.js +14 -9
- package/lib/utils/CustomError.js +5 -0
- package/lib/utils/Runtime.js +1 -1
- package/lib/utils/RuntimeLogger.js +3 -0
- package/lib/utils/RuntimeNameHandler.js +6 -1
- package/lib/utils/Type.js +2 -1
- package/lib/utils/TypesHandler.js +35 -0
- package/lib/utils/UtilsConst.js +88 -0
- package/lib/utils/connectionData/IConnectionData.js +14 -0
- package/lib/utils/connectionData/InMemoryConnectionData.js +15 -0
- package/lib/utils/connectionData/WsConnectionData.js +9 -0
- package/lib/utils/nodejs/connectionData/TcpConnectionData.js +35 -5
- package/package.json +4 -3
- package/dist/sdk/tools/browser/ConfigSourceResolver.cjs +0 -153
- package/dist/sdk/tools/nodejs/JsonFileResolver.cjs +0 -120
- package/dist/types/sdk/tools/browser/ConfigSourceResolver.d.ts +0 -46
- package/dist/types/sdk/tools/nodejs/JsonFileResolver.d.ts +0 -13
- package/dist/types/utils/nodejs/TypesConverter.d.ts +0 -48
- package/dist/utils/nodejs/TypesConverter.cjs +0 -102
- package/lib/declarations.d.ts +0 -35
- package/lib/sdk/tools/browser/ConfigSourceResolver.js +0 -146
- package/lib/sdk/tools/nodejs/JsonFileResolver.js +0 -106
- 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
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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"
|
|
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"
|
|
46
|
+
} else if (typeof payload_item === "string") {
|
|
44
47
|
return TypeSerializer.serializeString(payload_item);
|
|
45
|
-
} else if (typeof payload_item === "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
|
-
|
|
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
|
|
56
|
+
throw Error(
|
|
57
|
+
"Unsupported payload item type: " + typeof payload_item + " for payload item: " + payload_item
|
|
58
|
+
);
|
|
53
59
|
}
|
|
54
|
-
throw
|
|
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.
|
|
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 {
|
|
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
|
-
|
|
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 {
|
|
44
|
-
* @param {
|
|
45
|
-
* @returns {Promise<
|
|
43
|
+
* @param {Int8Array} messageByteArray
|
|
44
|
+
* @param {IConnectionData} connectionData
|
|
45
|
+
* @returns {Promise<Int8Array>} responseByteArray
|
|
46
46
|
*/
|
|
47
|
-
static
|
|
47
|
+
static sendCommand(messageByteArray, connectionData) {
|
|
48
48
|
const { hostname } = connectionData;
|
|
49
|
-
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
-
|
|
81
|
+
/**
|
|
82
|
+
* @param {string} path
|
|
83
|
+
*/
|
|
84
|
+
static setJavonetWorkingDirectory(path2) {
|
|
68
85
|
this.loadNativeLibrary();
|
|
69
|
-
library.setJavonetWorkingDirectory(
|
|
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 {
|
|
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<
|
|
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 {
|
|
80
|
-
* @returns {Promise<
|
|
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(
|
|
87
|
-
|
|
88
|
-
|
|
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<
|
|
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 (
|
|
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 (
|
|
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";
|