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.
- package/dist/core/delegatesCache/DelegatesCache.cjs +1 -5
- package/dist/core/handler/AbstractHandler.cjs +24 -9
- package/dist/core/handler/ArrayGetItemHandler.cjs +5 -4
- package/dist/core/handler/ArrayGetRankHandler.cjs +4 -3
- package/dist/core/handler/ArrayGetSizeHandler.cjs +4 -3
- package/dist/core/handler/ArrayHandler.cjs +3 -0
- package/dist/core/handler/ArraySetItemHandler.cjs +5 -4
- package/dist/core/handler/CastingHandler.cjs +3 -1
- package/dist/core/handler/ConvertTypeHandler.cjs +4 -4
- package/dist/core/handler/CreateClassInstanceHandler.cjs +6 -5
- package/dist/core/handler/DestructReferenceHandler.cjs +3 -0
- package/dist/core/handler/EnableNamespaceHandler.cjs +3 -0
- package/dist/core/handler/EnableTypeHandler.cjs +4 -3
- package/dist/core/handler/GetGlobalStaticFieldHandler.cjs +4 -3
- package/dist/core/handler/GetInstanceFieldHandler.cjs +4 -3
- package/dist/core/handler/GetInstanceMethodAsDelegateHandler.cjs +15 -4
- package/dist/core/handler/GetStaticFieldHandler.cjs +5 -3
- package/dist/core/handler/GetStaticMethodAsDelegateHandler.cjs +10 -10
- package/dist/core/handler/GetTypeHandler.cjs +10 -2
- package/dist/core/handler/Handler.cjs +8 -11
- package/dist/core/handler/InvokeGlobalFunctionHandler.cjs +4 -3
- package/dist/core/handler/InvokeInstanceMethodHandler.cjs +4 -3
- package/dist/core/handler/InvokeStaticMethodHandler.cjs +4 -3
- package/dist/core/handler/LoadLibraryHandler.cjs +11 -10
- package/dist/core/handler/PassDelegateHandler.cjs +2 -4
- package/dist/core/handler/SetGlobalStaticFieldHandler.cjs +4 -3
- package/dist/core/handler/SetInstanceFieldHandler.cjs +4 -3
- package/dist/core/handler/SetStaticFieldHandler.cjs +4 -3
- package/dist/core/handler/ValueHandler.cjs +4 -0
- package/dist/core/interpreter/Interpreter.cjs +29 -17
- package/dist/core/namespaceCache/NamespaceCache.cjs +19 -10
- 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 +3 -5
- package/dist/core/receiver/ReceiverNative.cjs +6 -0
- package/dist/core/transmitter/Transmitter.cjs +19 -5
- 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 +15 -10
- package/dist/core/webSocketClient/WebSocketClient.cjs +22 -12
- package/dist/core/webSocketClient/WebSocketClientBrowser.cjs +2 -2
- package/dist/sdk/ConfigRuntimeFactory.cjs +92 -98
- package/dist/sdk/InvocationContext.cjs +229 -203
- package/dist/sdk/Javonet.cjs +14 -33
- package/dist/sdk/RuntimeContext.cjs +138 -99
- 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/CreateRequire.browser.d.ts +1 -0
- package/dist/types/utils/CreateRequire.node.d.ts +2 -0
- package/dist/types/utils/CustomError.d.ts +5 -1
- package/dist/types/utils/Runtime.d.ts +2 -3
- 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/CreateRequire.browser.cjs +30 -0
- package/dist/utils/CreateRequire.node.cjs +28 -0
- package/dist/utils/CustomError.cjs +4 -0
- package/dist/utils/Runtime.cjs +24 -18
- package/dist/utils/RuntimeLogger.cjs +2 -4
- package/dist/utils/RuntimeLoggerBrowser.cjs +1 -3
- 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 +45 -25
- 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 +109 -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/CreateRequire.browser.js +5 -0
- package/lib/utils/CreateRequire.node.js +3 -0
- package/lib/utils/CustomError.js +5 -0
- package/lib/utils/Runtime.js +25 -6
- 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 +13 -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
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { ConnectionType } from '../../utils/ConnectionType.js'
|
|
2
|
-
import { isNodejsRuntime,
|
|
3
|
+
import { isNodejsRuntime, getRequire } from '../../utils/Runtime.js'
|
|
3
4
|
import { RuntimeName } from '../../utils/RuntimeName.js'
|
|
4
5
|
import { CommandDeserializer } from '../protocol/CommandDeserializer.js'
|
|
5
6
|
import { CommandSerializer } from '../protocol/CommandSerializer.js'
|
|
@@ -8,17 +9,16 @@ import { TransmitterWebsocket } from '../transmitter/TransmitterWebsocket.js'
|
|
|
8
9
|
import { Handler } from '../handler/Handler.js'
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
|
-
* @typedef {import('
|
|
12
|
-
* @typedef {import('
|
|
13
|
-
* @typedef {import('
|
|
14
|
-
* @typedef {import('../transmitter/TransmitterWebsocketBrowser.js').TransmitterWebsocketBrowser} TransmitterWebsocketBrowser
|
|
12
|
+
* @typedef {import('../../utils/connectionData/IConnectionData.js').IConnectionData} IConnectionData
|
|
13
|
+
* @typedef {typeof import('../../types.d.ts').RuntimeName} RuntimeNameType
|
|
14
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
/** @type {Receiver | null} */
|
|
17
|
+
/** @type {typeof import('../receiver/Receiver.js').Receiver | null} */
|
|
18
18
|
let _Receiver = null
|
|
19
|
-
/** @type {Transmitter | null} */
|
|
19
|
+
/** @type {typeof import('../transmitter/Transmitter.js').Transmitter | null} */
|
|
20
20
|
let _Transmitter = null
|
|
21
|
-
/** @type {TransmitterWebsocket | null} */
|
|
21
|
+
/** @type {typeof import('../transmitter/TransmitterWebsocket.js').TransmitterWebsocket | typeof import('../transmitter/TransmitterWebsocketBrowser.js').TransmitterWebsocketBrowser | null} */
|
|
22
22
|
let _TransmitterWebsocket = null
|
|
23
23
|
|
|
24
24
|
if (!_TransmitterWebsocket) {
|
|
@@ -28,7 +28,8 @@ if (!_TransmitterWebsocket) {
|
|
|
28
28
|
const requireDynamic = getRequire(import.meta.url)
|
|
29
29
|
|
|
30
30
|
export class Interpreter {
|
|
31
|
-
|
|
31
|
+
/** @type {Handler | null} */
|
|
32
|
+
handler = null
|
|
32
33
|
/**
|
|
33
34
|
*
|
|
34
35
|
* @param {Command} command
|
|
@@ -37,8 +38,12 @@ export class Interpreter {
|
|
|
37
38
|
*/
|
|
38
39
|
async executeAsync(command, connectionData) {
|
|
39
40
|
try {
|
|
41
|
+
if (!this.handler) {
|
|
42
|
+
this.handler = new Handler(this)
|
|
43
|
+
}
|
|
40
44
|
let messageByteArray = new CommandSerializer().serialize(command, connectionData)
|
|
41
|
-
|
|
45
|
+
/** @type {Int8Array | undefined} */
|
|
46
|
+
let responseByteArray = undefined
|
|
42
47
|
|
|
43
48
|
if (
|
|
44
49
|
command.runtimeName === RuntimeName.Nodejs &&
|
|
@@ -47,16 +52,16 @@ export class Interpreter {
|
|
|
47
52
|
if (isNodejsRuntime()) {
|
|
48
53
|
// lazy receiver loading
|
|
49
54
|
if (!_Receiver) {
|
|
50
|
-
const { Receiver } = requireDynamic('../receiver/Receiver.js')
|
|
55
|
+
const { Receiver } = requireDynamic('../receiver/Receiver.js')
|
|
51
56
|
_Receiver = Receiver
|
|
52
57
|
}
|
|
53
|
-
responseByteArray = _Receiver
|
|
58
|
+
responseByteArray = _Receiver?.sendCommand(messageByteArray)
|
|
54
59
|
} else {
|
|
55
60
|
throw new Error('Node.js runtime not found')
|
|
56
61
|
}
|
|
57
62
|
} else if (connectionData.connectionType === ConnectionType.WEB_SOCKET) {
|
|
58
63
|
try {
|
|
59
|
-
const _response = await _TransmitterWebsocket
|
|
64
|
+
const _response = await _TransmitterWebsocket?.sendCommand(
|
|
60
65
|
messageByteArray,
|
|
61
66
|
connectionData
|
|
62
67
|
)
|
|
@@ -76,13 +81,15 @@ export class Interpreter {
|
|
|
76
81
|
const { Transmitter } = requireDynamic('../transmitter/Transmitter.js')
|
|
77
82
|
_Transmitter = Transmitter
|
|
78
83
|
}
|
|
79
|
-
responseByteArray = await _Transmitter
|
|
84
|
+
responseByteArray = await _Transmitter?.sendCommand(messageByteArray)
|
|
80
85
|
} else {
|
|
81
86
|
throw new Error('Allowed only to run in nodejs runtime')
|
|
82
87
|
}
|
|
83
88
|
}
|
|
89
|
+
if (!responseByteArray) {
|
|
90
|
+
throw new Error('No response received from Transmitter')
|
|
91
|
+
}
|
|
84
92
|
return new CommandDeserializer(responseByteArray).deserialize()
|
|
85
|
-
// eslint-disable-next-line no-unused-vars
|
|
86
93
|
} catch (error) {
|
|
87
94
|
throw error
|
|
88
95
|
}
|
|
@@ -91,13 +98,17 @@ export class Interpreter {
|
|
|
91
98
|
/**
|
|
92
99
|
*
|
|
93
100
|
* @param {Command} command
|
|
94
|
-
* @param {
|
|
95
|
-
* @returns {Promise<Command>}
|
|
101
|
+
* @param {IConnectionData} connectionData
|
|
102
|
+
* @returns {Command | Promise<Command>}
|
|
96
103
|
*/
|
|
97
104
|
execute(command, connectionData) {
|
|
98
105
|
try {
|
|
106
|
+
if (!this.handler) {
|
|
107
|
+
this.handler = new Handler(this)
|
|
108
|
+
}
|
|
99
109
|
let messageByteArray = new CommandSerializer().serialize(command, connectionData)
|
|
100
|
-
|
|
110
|
+
/** @type {Int8Array | undefined} */
|
|
111
|
+
let responseByteArray = undefined
|
|
101
112
|
|
|
102
113
|
if (
|
|
103
114
|
command.runtimeName === RuntimeName.Nodejs &&
|
|
@@ -106,14 +117,18 @@ export class Interpreter {
|
|
|
106
117
|
if (isNodejsRuntime()) {
|
|
107
118
|
// lazy receiver loading
|
|
108
119
|
if (!_Receiver) {
|
|
109
|
-
const { Receiver } = requireDynamic('../receiver/Receiver.js')
|
|
120
|
+
const { Receiver } = requireDynamic('../receiver/Receiver.js')
|
|
110
121
|
_Receiver = Receiver
|
|
111
122
|
}
|
|
112
|
-
responseByteArray = _Receiver
|
|
123
|
+
responseByteArray = _Receiver?.sendCommand(messageByteArray)
|
|
113
124
|
}
|
|
114
125
|
} else if (connectionData.connectionType === ConnectionType.WEB_SOCKET) {
|
|
115
126
|
// lazy transmitter websocket loading
|
|
116
|
-
const promise = _TransmitterWebsocket
|
|
127
|
+
const promise = _TransmitterWebsocket?.sendCommand(messageByteArray, connectionData)
|
|
128
|
+
|
|
129
|
+
if (!promise) {
|
|
130
|
+
throw new Error('TransmitterWebsocket not found')
|
|
131
|
+
}
|
|
117
132
|
|
|
118
133
|
return promise
|
|
119
134
|
.then((_response) => {
|
|
@@ -133,13 +148,16 @@ export class Interpreter {
|
|
|
133
148
|
const { Transmitter } = requireDynamic('../transmitter/Transmitter.js')
|
|
134
149
|
_Transmitter = Transmitter
|
|
135
150
|
}
|
|
136
|
-
|
|
151
|
+
|
|
152
|
+
responseByteArray = _Transmitter?.sendCommand(messageByteArray)
|
|
137
153
|
} else {
|
|
138
154
|
throw new Error('Allowed only to run in nodejs runtime')
|
|
139
155
|
}
|
|
140
156
|
}
|
|
157
|
+
if (!responseByteArray) {
|
|
158
|
+
throw new Error('No response received from Transmitter')
|
|
159
|
+
}
|
|
141
160
|
return new CommandDeserializer(responseByteArray).deserialize()
|
|
142
|
-
// eslint-disable-next-line no-unused-vars
|
|
143
161
|
} catch (error) {
|
|
144
162
|
throw error
|
|
145
163
|
}
|
|
@@ -147,7 +165,7 @@ export class Interpreter {
|
|
|
147
165
|
|
|
148
166
|
/**
|
|
149
167
|
*
|
|
150
|
-
* @param {
|
|
168
|
+
* @param {Int8Array} messageByteArray
|
|
151
169
|
* @returns {Command}
|
|
152
170
|
*/
|
|
153
171
|
process(messageByteArray) {
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
class NamespaceCache {
|
|
4
|
+
/** @type {NamespaceCache | null} */
|
|
2
5
|
static _instance = null
|
|
6
|
+
/** @type {string[]} */
|
|
3
7
|
namespaceCache = []
|
|
4
8
|
|
|
5
9
|
constructor() {
|
|
@@ -9,14 +13,24 @@ class NamespaceCache {
|
|
|
9
13
|
return NamespaceCache._instance
|
|
10
14
|
}
|
|
11
15
|
|
|
16
|
+
/**
|
|
17
|
+
* @param {string} namespaceRegex
|
|
18
|
+
*/
|
|
12
19
|
cacheNamespace(namespaceRegex) {
|
|
13
20
|
this.namespaceCache.push(namespaceRegex)
|
|
14
21
|
}
|
|
15
22
|
|
|
23
|
+
/**
|
|
24
|
+
* @returns {boolean}
|
|
25
|
+
*/
|
|
16
26
|
isNamespaceCacheEmpty() {
|
|
17
27
|
return this.namespaceCache.length === 0
|
|
18
28
|
}
|
|
19
29
|
|
|
30
|
+
/**
|
|
31
|
+
* @param {string} typeToCheck
|
|
32
|
+
* @returns {boolean}
|
|
33
|
+
*/
|
|
20
34
|
isTypeAllowed(typeToCheck) {
|
|
21
35
|
for (let pattern of this.namespaceCache) {
|
|
22
36
|
if (new RegExp(pattern).test(typeToCheck.constructor.name)) {
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { Command } from '../../utils/Command.js'
|
|
2
|
-
import { CommandType } from '../../utils/CommandType.js'
|
|
3
3
|
import { Type } from '../../utils/Type.js'
|
|
4
4
|
import { TypeDeserializer } from './TypeDeserializer.js'
|
|
5
5
|
|
|
6
6
|
export class CommandDeserializer {
|
|
7
|
+
/**
|
|
8
|
+
* @param {Int8Array} buffer
|
|
9
|
+
*/
|
|
7
10
|
constructor(buffer) {
|
|
8
11
|
this.buffer = buffer
|
|
9
12
|
this.command = new Command(buffer[0], buffer[10], [])
|
|
@@ -24,8 +27,14 @@ export class CommandDeserializer {
|
|
|
24
27
|
return this.position === this.buffer.length
|
|
25
28
|
}
|
|
26
29
|
|
|
30
|
+
/**
|
|
31
|
+
* @param {number} typeNum
|
|
32
|
+
* @returns {any}
|
|
33
|
+
*/
|
|
27
34
|
readObject(typeNum) {
|
|
28
|
-
const
|
|
35
|
+
const entry = Object.entries(Type).find((entry) => entry[1] === typeNum)
|
|
36
|
+
if (!entry) throw new Error('Unknown type number: ' + typeNum)
|
|
37
|
+
const type = entry[0]
|
|
29
38
|
switch (type) {
|
|
30
39
|
case 'JAVONET_COMMAND':
|
|
31
40
|
return this.readCommand()
|
|
@@ -1,42 +1,73 @@
|
|
|
1
|
-
import { TypeSerializer } from './TypeSerializer.js'
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { TypeSerializer } from './TypeSerializer.js'
|
|
2
|
+
import { ReferencesCache } from '../referenceCache/ReferencesCache.js'
|
|
3
|
+
import { Command } from '../../utils/Command.js'
|
|
4
|
+
import { CommandType } from '../../utils/CommandType.js'
|
|
5
|
+
import { RuntimeName } from '../../utils/RuntimeName.js'
|
|
6
|
+
import { TypesHandler } from '../../utils/TypesHandler.js'
|
|
4
7
|
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {import('../../utils/connectionData/IConnectionData.js').IConnectionData} IConnectionData
|
|
10
|
+
*/
|
|
5
11
|
class CommandSerializer {
|
|
6
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Serializes the root command with connection data and optional runtime version.
|
|
14
|
+
* @param {Command} rootCommand
|
|
15
|
+
* @param {IConnectionData} connectionData
|
|
16
|
+
* @param {number} runtimeVersion
|
|
17
|
+
* @returns {Int8Array}
|
|
18
|
+
*/
|
|
19
|
+
serialize(rootCommand, connectionData, runtimeVersion = 0) {
|
|
7
20
|
const buffers = []
|
|
8
|
-
// Write runtime name and a zero byte for runtime version.
|
|
9
|
-
buffers.push(Uint8Array.of(rootCommand.runtimeName, 0))
|
|
10
21
|
|
|
22
|
+
// Write runtime name and version
|
|
23
|
+
buffers.push(Uint8Array.of(rootCommand.runtimeName, runtimeVersion))
|
|
24
|
+
|
|
25
|
+
// Write connection data or default zeros
|
|
11
26
|
if (connectionData) {
|
|
12
27
|
buffers.push(connectionData.serializeConnectionData())
|
|
13
28
|
} else {
|
|
14
29
|
buffers.push(Uint8Array.of(0, 0, 0, 0, 0, 0, 0))
|
|
15
30
|
}
|
|
16
31
|
|
|
17
|
-
|
|
32
|
+
// Write target runtime and command type
|
|
33
|
+
buffers.push(Uint8Array.of(RuntimeName.Python, rootCommand.commandType))
|
|
18
34
|
|
|
35
|
+
// Recursively serialize command and its payload
|
|
19
36
|
this.serializeRecursively(rootCommand, buffers)
|
|
20
37
|
|
|
21
38
|
return concatenateUint8Arrays(buffers)
|
|
22
39
|
}
|
|
23
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Recursively serializes command payload.
|
|
43
|
+
* @param {Command} command
|
|
44
|
+
* @param {Array<Uint8Array>} buffers
|
|
45
|
+
*/
|
|
24
46
|
serializeRecursively(command, buffers) {
|
|
25
47
|
for (const item of command.payload) {
|
|
26
48
|
if (item instanceof Command) {
|
|
27
49
|
buffers.push(TypeSerializer.serializeCommand(item))
|
|
28
50
|
this.serializeRecursively(item, buffers)
|
|
29
|
-
} else {
|
|
51
|
+
} else if (TypesHandler.isPrimitiveOrNullOrUndefined(item)) {
|
|
30
52
|
buffers.push(TypeSerializer.serializePrimitive(item))
|
|
53
|
+
} else {
|
|
54
|
+
const cachedReference = ReferencesCache.getInstance().cacheReference(item)
|
|
55
|
+
const refCommand = new Command(RuntimeName.Nodejs, CommandType.Reference, cachedReference)
|
|
56
|
+
buffers.push(TypeSerializer.serializeCommand(refCommand))
|
|
57
|
+
this.serializeRecursively(refCommand, buffers)
|
|
31
58
|
}
|
|
32
59
|
}
|
|
33
60
|
}
|
|
34
61
|
}
|
|
35
62
|
|
|
63
|
+
/**
|
|
64
|
+
* Concatenates multiple Uint8Array buffers into one.
|
|
65
|
+
* @param {Array<Uint8Array>} arrays
|
|
66
|
+
* @returns {Uint8Array}
|
|
67
|
+
*/
|
|
36
68
|
function concatenateUint8Arrays(arrays) {
|
|
37
69
|
let totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0)
|
|
38
70
|
const result = new Uint8Array(totalLength)
|
|
39
|
-
|
|
40
71
|
let offset = 0
|
|
41
72
|
for (const arr of arrays) {
|
|
42
73
|
result.set(arr, offset)
|
|
@@ -1,12 +1,21 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { Command } from '../../utils/Command.js'
|
|
2
3
|
import { Buffer } from 'buffer'
|
|
3
4
|
import { StringEncodingMode } from '../../utils/StringEncodingMode.js'
|
|
4
5
|
|
|
5
6
|
export class TypeDeserializer {
|
|
7
|
+
/**
|
|
8
|
+
* @param {Int8Array} encodedCommand
|
|
9
|
+
* @returns {Command}
|
|
10
|
+
*/
|
|
6
11
|
static deserializeCommand(encodedCommand) {
|
|
7
12
|
return new Command(encodedCommand[0], encodedCommand[1], [])
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {number} stringEncodingMode
|
|
17
|
+
* @param {Int8Array} encodedString
|
|
18
|
+
*/
|
|
10
19
|
static deserializeString(stringEncodingMode, encodedString) {
|
|
11
20
|
switch (stringEncodingMode) {
|
|
12
21
|
case StringEncodingMode.ASCII:
|
|
@@ -33,6 +42,9 @@ export class TypeDeserializer {
|
|
|
33
42
|
}
|
|
34
43
|
}
|
|
35
44
|
|
|
45
|
+
/**
|
|
46
|
+
* @param {Int8Array} encodedInt
|
|
47
|
+
*/
|
|
36
48
|
static deserializeInt(encodedInt) {
|
|
37
49
|
return (
|
|
38
50
|
(encodedInt[0] & 0xff) |
|
|
@@ -42,34 +54,58 @@ export class TypeDeserializer {
|
|
|
42
54
|
)
|
|
43
55
|
}
|
|
44
56
|
|
|
57
|
+
/**
|
|
58
|
+
* @param {Int8Array} encodedBool
|
|
59
|
+
*/
|
|
45
60
|
static deserializeBool(encodedBool) {
|
|
46
61
|
return encodedBool[0] === 1
|
|
47
62
|
}
|
|
48
63
|
|
|
64
|
+
/**
|
|
65
|
+
* @param {Int8Array} encodedFloat
|
|
66
|
+
*/
|
|
49
67
|
static deserializeFloat(encodedFloat) {
|
|
50
68
|
return Buffer.from(encodedFloat).readFloatLE()
|
|
51
69
|
}
|
|
52
70
|
|
|
71
|
+
/**
|
|
72
|
+
* @param {Int8Array} encodedByte
|
|
73
|
+
*/
|
|
53
74
|
static deserializeByte(encodedByte) {
|
|
54
75
|
return Buffer.from(encodedByte).readUint8()
|
|
55
76
|
}
|
|
56
77
|
|
|
78
|
+
/**
|
|
79
|
+
* @param {Int8Array} encodedChar
|
|
80
|
+
*/
|
|
57
81
|
static deserializeChar(encodedChar) {
|
|
58
82
|
return Buffer.from(encodedChar).readUint8()
|
|
59
83
|
}
|
|
60
84
|
|
|
85
|
+
/**
|
|
86
|
+
* @param {Int8Array} encodedLongLong
|
|
87
|
+
*/
|
|
61
88
|
static deserializeLongLong(encodedLongLong) {
|
|
62
89
|
return Buffer.from(encodedLongLong).readBigInt64LE()
|
|
63
90
|
}
|
|
64
91
|
|
|
92
|
+
/**
|
|
93
|
+
* @param {Int8Array} encodedDouble
|
|
94
|
+
*/
|
|
65
95
|
static deserializeDouble(encodedDouble) {
|
|
66
96
|
return Buffer.from(encodedDouble).readDoubleLE()
|
|
67
97
|
}
|
|
68
98
|
|
|
99
|
+
/**
|
|
100
|
+
* @param {Int8Array} encodedULLong
|
|
101
|
+
*/
|
|
69
102
|
static deserializeULLong(encodedULLong) {
|
|
70
103
|
return Buffer.from(encodedULLong).readBigUInt64LE()
|
|
71
104
|
}
|
|
72
105
|
|
|
106
|
+
/**
|
|
107
|
+
* @param {Int8Array} encodedUInt
|
|
108
|
+
*/
|
|
73
109
|
static deserializeUInt(encodedUInt) {
|
|
74
110
|
return Buffer.from(encodedUInt).readUIntLE(0, 4)
|
|
75
111
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { Command } from '../../utils/Command.js'
|
|
2
3
|
import { Type } from '../../utils/Type.js'
|
|
3
4
|
import { StringEncodingMode } from '../../utils/StringEncodingMode.js'
|
|
@@ -7,42 +8,66 @@ import { CustomError } from '../../utils/CustomError.js'
|
|
|
7
8
|
const encoder = new TextEncoder()
|
|
8
9
|
|
|
9
10
|
class TypeSerializer {
|
|
11
|
+
/**
|
|
12
|
+
* @param {unknown} payload_item
|
|
13
|
+
*/
|
|
10
14
|
static serializePrimitive(payload_item) {
|
|
11
15
|
if (payload_item === null) {
|
|
12
16
|
return TypeSerializer.serializeNull()
|
|
13
17
|
}
|
|
14
18
|
if (payload_item instanceof Command) {
|
|
15
19
|
return TypeSerializer.serializeCommand(payload_item)
|
|
16
|
-
} else if (typeof payload_item === 'number'
|
|
20
|
+
} else if (typeof payload_item === 'number') {
|
|
17
21
|
if (Number.isInteger(payload_item)) {
|
|
18
22
|
return TypeSerializer.serializeInt(payload_item)
|
|
19
23
|
} else {
|
|
20
24
|
return TypeSerializer.serializeDouble(payload_item)
|
|
21
25
|
}
|
|
22
|
-
} else if (typeof payload_item === 'string'
|
|
26
|
+
} else if (typeof payload_item === 'string') {
|
|
23
27
|
return TypeSerializer.serializeString(payload_item)
|
|
24
|
-
} else if (typeof payload_item === 'boolean'
|
|
28
|
+
} else if (typeof payload_item === 'boolean') {
|
|
25
29
|
return TypeSerializer.serializeBool(payload_item)
|
|
26
30
|
} else {
|
|
27
31
|
if (payload_item instanceof Promise) {
|
|
28
|
-
|
|
32
|
+
const message =
|
|
33
|
+
'Unsupported payload item type: ' +
|
|
34
|
+
(payload_item?.constructor?.name || typeof payload_item) +
|
|
35
|
+
' for payload item: ' +
|
|
36
|
+
payload_item
|
|
37
|
+
throw new CustomError(message, 'JAVONET_PROMISE')
|
|
29
38
|
}
|
|
30
39
|
if (payload_item === undefined) {
|
|
31
|
-
throw
|
|
40
|
+
throw Error(
|
|
41
|
+
'Unsupported payload item type: ' +
|
|
42
|
+
typeof payload_item +
|
|
43
|
+
' for payload item: ' +
|
|
44
|
+
payload_item
|
|
45
|
+
)
|
|
32
46
|
}
|
|
33
|
-
throw
|
|
47
|
+
throw Error(
|
|
48
|
+
'Unsupported payload item type: ' +
|
|
49
|
+
(payload_item?.constructor?.name || typeof payload_item) +
|
|
50
|
+
' for payload item: ' +
|
|
51
|
+
payload_item
|
|
52
|
+
)
|
|
34
53
|
}
|
|
35
54
|
}
|
|
36
55
|
|
|
56
|
+
/**
|
|
57
|
+
* @param {Command} command
|
|
58
|
+
*/
|
|
37
59
|
static serializeCommand(command) {
|
|
38
60
|
const buffer = Buffer.alloc(7)
|
|
39
61
|
buffer.writeUInt8(Type.JAVONET_COMMAND, 0)
|
|
40
62
|
buffer.fill(Buffer.from(this.serializeIntValue(command.payload.length)), 1, 5)
|
|
41
|
-
buffer.writeUInt8(command.
|
|
63
|
+
buffer.writeUInt8(command.runtimeName, 5)
|
|
42
64
|
buffer.writeUInt8(command.commandType, 6)
|
|
43
65
|
return buffer
|
|
44
66
|
}
|
|
45
67
|
|
|
68
|
+
/**
|
|
69
|
+
* @param {string} string_value
|
|
70
|
+
*/
|
|
46
71
|
static serializeString(string_value) {
|
|
47
72
|
let bytes = encoder.encode(string_value)
|
|
48
73
|
const buffer = Buffer.alloc(6 + bytes.length)
|
|
@@ -53,6 +78,9 @@ class TypeSerializer {
|
|
|
53
78
|
return buffer
|
|
54
79
|
}
|
|
55
80
|
|
|
81
|
+
/**
|
|
82
|
+
* @param {number} int_value
|
|
83
|
+
*/
|
|
56
84
|
static serializeInt(int_value) {
|
|
57
85
|
const buffer = Buffer.alloc(6)
|
|
58
86
|
buffer.writeUInt8(Type.JAVONET_INTEGER, 0)
|
|
@@ -61,6 +89,9 @@ class TypeSerializer {
|
|
|
61
89
|
return buffer
|
|
62
90
|
}
|
|
63
91
|
|
|
92
|
+
/**
|
|
93
|
+
* @param {boolean} bool_value
|
|
94
|
+
*/
|
|
64
95
|
static serializeBool(bool_value) {
|
|
65
96
|
const buffer = Buffer.alloc(3)
|
|
66
97
|
buffer.writeUInt8(Type.JAVONET_BOOLEAN, 0)
|
|
@@ -69,6 +100,9 @@ class TypeSerializer {
|
|
|
69
100
|
return buffer
|
|
70
101
|
}
|
|
71
102
|
|
|
103
|
+
/**
|
|
104
|
+
* @param {number} float_value
|
|
105
|
+
*/
|
|
72
106
|
static serializeFloat(float_value) {
|
|
73
107
|
const buffer = Buffer.alloc(6)
|
|
74
108
|
buffer.writeUInt8(Type.JAVONET_FLOAT, 0)
|
|
@@ -77,6 +111,9 @@ class TypeSerializer {
|
|
|
77
111
|
return buffer
|
|
78
112
|
}
|
|
79
113
|
|
|
114
|
+
/**
|
|
115
|
+
* @param {number} byte_value
|
|
116
|
+
*/
|
|
80
117
|
static serializeByte(byte_value) {
|
|
81
118
|
const buffer = Buffer.alloc(3)
|
|
82
119
|
buffer.writeUInt8(Type.JAVONET_BYTE, 0)
|
|
@@ -85,6 +122,9 @@ class TypeSerializer {
|
|
|
85
122
|
return buffer
|
|
86
123
|
}
|
|
87
124
|
|
|
125
|
+
/**
|
|
126
|
+
* @param {number} char_value
|
|
127
|
+
*/
|
|
88
128
|
static serializeChar(char_value) {
|
|
89
129
|
const buffer = Buffer.alloc(3)
|
|
90
130
|
buffer.writeUInt8(Type.JAVONET_CHAR, 0)
|
|
@@ -93,6 +133,9 @@ class TypeSerializer {
|
|
|
93
133
|
return buffer
|
|
94
134
|
}
|
|
95
135
|
|
|
136
|
+
/**
|
|
137
|
+
* @param {number} longlong_value
|
|
138
|
+
*/
|
|
96
139
|
static serializeLongLong(longlong_value) {
|
|
97
140
|
const buffer = Buffer.alloc(10)
|
|
98
141
|
buffer.writeUInt8(Type.JAVONET_LONG_LONG, 0)
|
|
@@ -101,6 +144,9 @@ class TypeSerializer {
|
|
|
101
144
|
return buffer
|
|
102
145
|
}
|
|
103
146
|
|
|
147
|
+
/**
|
|
148
|
+
* @param {number} double_value
|
|
149
|
+
*/
|
|
104
150
|
static serializeDouble(double_value) {
|
|
105
151
|
const buffer = Buffer.alloc(10)
|
|
106
152
|
buffer.writeUInt8(Type.JAVONET_DOUBLE, 0)
|
|
@@ -109,6 +155,9 @@ class TypeSerializer {
|
|
|
109
155
|
return buffer
|
|
110
156
|
}
|
|
111
157
|
|
|
158
|
+
/**
|
|
159
|
+
* @param {bigint} ullong_value
|
|
160
|
+
*/
|
|
112
161
|
static serializeULLong(ullong_value) {
|
|
113
162
|
const buffer = Buffer.alloc(10)
|
|
114
163
|
buffer.writeUInt8(Type.JAVONET_UNSIGNED_LONG_LONG, 0)
|
|
@@ -117,6 +166,9 @@ class TypeSerializer {
|
|
|
117
166
|
return buffer
|
|
118
167
|
}
|
|
119
168
|
|
|
169
|
+
/**
|
|
170
|
+
* @param {number} uint_value
|
|
171
|
+
*/
|
|
120
172
|
static serializeUInt(uint_value) {
|
|
121
173
|
const buffer = Buffer.alloc(6)
|
|
122
174
|
buffer.writeUInt8(Type.JAVONET_UNSIGNED_INTEGER, 0)
|
|
@@ -133,6 +185,9 @@ class TypeSerializer {
|
|
|
133
185
|
return buffer
|
|
134
186
|
}
|
|
135
187
|
|
|
188
|
+
/**
|
|
189
|
+
* @param {number} int_value
|
|
190
|
+
*/
|
|
136
191
|
static serializeIntValue(int_value) {
|
|
137
192
|
const buffer = Buffer.alloc(4)
|
|
138
193
|
buffer.writeInt32LE(int_value, 0)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { Interpreter } from '../interpreter/Interpreter.js'
|
|
2
3
|
import { CommandSerializer } from '../protocol/CommandSerializer.js'
|
|
3
4
|
import { getRequire } from '../../utils/Runtime.js'
|
|
4
5
|
import { InMemoryConnectionData } from '../../utils/connectionData/InMemoryConnectionData.js'
|
|
5
6
|
|
|
6
|
-
/** @type {import('../../utils/RuntimeLogger.js').RuntimeLogger | null} */
|
|
7
|
+
/** @type {typeof import('../../utils/RuntimeLogger.js').RuntimeLogger | null} */
|
|
7
8
|
let _RuntimeLogger = null
|
|
8
9
|
|
|
9
10
|
const requireDynamic = getRequire(import.meta.url)
|
|
@@ -19,7 +20,7 @@ export class Receiver {
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
|
-
* @param {
|
|
23
|
+
* @param {Int8Array} messageByteArray
|
|
23
24
|
*/
|
|
24
25
|
static sendCommand(messageByteArray) {
|
|
25
26
|
return new CommandSerializer().serialize(
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { Receiver } from './Receiver.js'
|
|
2
3
|
|
|
3
4
|
export class ReceiverNative {
|
|
5
|
+
/**
|
|
6
|
+
* @param {Int8Array} messageByteArray
|
|
7
|
+
*/
|
|
4
8
|
static sendCommand(messageByteArray) {
|
|
5
9
|
return Receiver.sendCommand(messageByteArray)
|
|
6
10
|
}
|
|
7
11
|
|
|
12
|
+
/**
|
|
13
|
+
* @param {Int8Array} messageByteArray
|
|
14
|
+
*/
|
|
8
15
|
static heartBeat(messageByteArray) {
|
|
9
16
|
return Receiver.heartBeat(messageByteArray)
|
|
10
17
|
}
|
|
11
18
|
}
|
|
12
19
|
|
|
20
|
+
// @ts-expect-error
|
|
13
21
|
global.ReceiverNative = ReceiverNative
|
|
@@ -1,18 +1,35 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { TransmitterWrapper } from './TransmitterWrapper.js'
|
|
2
3
|
|
|
3
4
|
export class Transmitter {
|
|
5
|
+
/**
|
|
6
|
+
* @param {Int8Array} messageArray
|
|
7
|
+
* @returns {Int8Array}
|
|
8
|
+
*/
|
|
4
9
|
static sendCommand(messageArray) {
|
|
5
10
|
return TransmitterWrapper.sendCommand(messageArray)
|
|
6
11
|
}
|
|
7
12
|
|
|
8
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @param {string} licenseKey
|
|
15
|
+
* @returns {void}
|
|
16
|
+
*/
|
|
17
|
+
static activate (licenseKey) {
|
|
9
18
|
return TransmitterWrapper.activate(licenseKey)
|
|
10
19
|
}
|
|
11
20
|
|
|
21
|
+
/**
|
|
22
|
+
* @param {string} configSource
|
|
23
|
+
* @returns {void}
|
|
24
|
+
*/
|
|
12
25
|
static setConfigSource(configSource) {
|
|
13
26
|
return TransmitterWrapper.setConfigSource(configSource)
|
|
14
27
|
}
|
|
15
28
|
|
|
29
|
+
/**
|
|
30
|
+
* @param {string} workingDirectory
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
16
33
|
static setJavonetWorkingDirectory(workingDirectory) {
|
|
17
34
|
return TransmitterWrapper.setJavonetWorkingDirectory(workingDirectory)
|
|
18
35
|
}
|