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,6 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { TypesHandler } from '../../utils/TypesHandler.js'
|
|
2
3
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
7
|
+
*/
|
|
8
|
+
|
|
4
9
|
/**
|
|
5
10
|
* ConvertTypeHandler class handles the conversion of JType to Type.
|
|
6
11
|
*/
|
|
@@ -16,17 +21,17 @@ class ConvertTypeHandler extends AbstractHandler {
|
|
|
16
21
|
|
|
17
22
|
/**
|
|
18
23
|
* Processes the given command to convert JType to Type.
|
|
19
|
-
* @param {
|
|
24
|
+
* @param {Command} command - The command to process.
|
|
20
25
|
* @returns {any} The converted type.
|
|
21
26
|
*/
|
|
22
27
|
process(command) {
|
|
23
28
|
this.validateCommand(command)
|
|
24
|
-
return
|
|
29
|
+
return TypesHandler.convertTypeToJType(command.payload[0])
|
|
25
30
|
}
|
|
26
31
|
|
|
27
32
|
/**
|
|
28
33
|
* Validates the command to ensure it has enough parameters.
|
|
29
|
-
* @param {
|
|
34
|
+
* @param {Command} command - The command to validate.
|
|
30
35
|
*/
|
|
31
36
|
validateCommand(command) {
|
|
32
37
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class CreateClassInstanceHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 1
|
|
5
10
|
|
|
@@ -7,6 +12,9 @@ class CreateClassInstanceHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -16,10 +24,8 @@ class CreateClassInstanceHandler extends AbstractHandler {
|
|
|
16
24
|
let constructorArguments = command.payload.slice(1)
|
|
17
25
|
let instance = new clazz(...constructorArguments)
|
|
18
26
|
if (typeof instance === 'undefined') {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// eslint-disable-next-line no-undef
|
|
22
|
-
return typeof type[property] === 'function'
|
|
27
|
+
let methods = Object.getOwnPropertyNames(clazz).filter(function (property) {
|
|
28
|
+
return typeof clazz[property] === 'function'
|
|
23
29
|
})
|
|
24
30
|
let message = `Method 'constructor' not found in class. Available methods:\n`
|
|
25
31
|
methods.forEach((methodIter) => {
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { ReferencesCache } from '../referenceCache/ReferencesCache.js'
|
|
2
3
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
7
|
+
*/
|
|
8
|
+
|
|
4
9
|
class DestructReferenceHandler extends AbstractHandler {
|
|
5
10
|
constructor() {
|
|
6
11
|
super()
|
|
7
12
|
}
|
|
8
13
|
|
|
14
|
+
/**
|
|
15
|
+
* @param {Command} command
|
|
16
|
+
*/
|
|
9
17
|
process(command) {
|
|
10
18
|
try {
|
|
11
19
|
let cache = ReferencesCache.getInstance()
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { NamespaceCache } from '../namespaceCache/NamespaceCache.js'
|
|
2
3
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
7
|
+
*/
|
|
8
|
+
|
|
4
9
|
class EnableNamespaceHandler extends AbstractHandler {
|
|
5
10
|
constructor() {
|
|
6
11
|
super()
|
|
7
12
|
this.requiredParametersCount = 1
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { TypeCache } from '../typeCache/TypeCache.js'
|
|
2
3
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
7
|
+
*/
|
|
8
|
+
|
|
4
9
|
class EnableTypeHandler extends AbstractHandler {
|
|
5
10
|
requiredParametersCount = 1
|
|
6
11
|
|
|
@@ -8,6 +13,9 @@ class EnableTypeHandler extends AbstractHandler {
|
|
|
8
13
|
super()
|
|
9
14
|
}
|
|
10
15
|
|
|
16
|
+
/**
|
|
17
|
+
* @param {Command} command
|
|
18
|
+
*/
|
|
11
19
|
process(command) {
|
|
12
20
|
try {
|
|
13
21
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class GetGlobalStaticFieldHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 1
|
|
5
10
|
|
|
@@ -7,6 +12,9 @@ class GetGlobalStaticFieldHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -17,6 +25,7 @@ class GetGlobalStaticFieldHandler extends AbstractHandler {
|
|
|
17
25
|
let fieldToGet
|
|
18
26
|
|
|
19
27
|
for (let i = 0; i < splitted.length; i++) {
|
|
28
|
+
// @ts-expect-error
|
|
20
29
|
fieldToGet = !fieldToGet ? global[splitted[i]] : fieldToGet[splitted[i]]
|
|
21
30
|
if (typeof fieldToGet === 'undefined') {
|
|
22
31
|
let fields = Object.keys(global)
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class GetInstanceFieldHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 2
|
|
5
10
|
|
|
@@ -7,6 +12,9 @@ class GetInstanceFieldHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -32,6 +33,10 @@ class GetInstanceMethodAsDelegateHandler extends AbstractHandler {
|
|
|
32
33
|
const methodName = command.payload[1]
|
|
33
34
|
this.args = command.payload.length > 2 ? command.payload.slice(2) : []
|
|
34
35
|
|
|
36
|
+
if (!this.instance) {
|
|
37
|
+
throw new Error('Instance is null or undefined')
|
|
38
|
+
}
|
|
39
|
+
|
|
35
40
|
// Find the method on the instance
|
|
36
41
|
this.method = this.getMethod(this.instance, methodName)
|
|
37
42
|
if (!this.method) {
|
|
@@ -50,7 +55,7 @@ class GetInstanceMethodAsDelegateHandler extends AbstractHandler {
|
|
|
50
55
|
* @returns {Function|null} The found method or null if not found.
|
|
51
56
|
*/
|
|
52
57
|
getMethod(type, methodName) {
|
|
53
|
-
const method = type[methodName]
|
|
58
|
+
const method = /** @type {any} */ (type)[methodName]
|
|
54
59
|
return typeof method === 'function' ? method : null
|
|
55
60
|
}
|
|
56
61
|
|
|
@@ -61,11 +66,11 @@ class GetInstanceMethodAsDelegateHandler extends AbstractHandler {
|
|
|
61
66
|
* @returns {Error} The error with detailed message.
|
|
62
67
|
*/
|
|
63
68
|
createMethodNotFoundError(type, methodName) {
|
|
64
|
-
const methods = Object.getOwnPropertyNames(type.prototype).filter(
|
|
65
|
-
(key) => typeof type.prototype[key] === 'function'
|
|
69
|
+
const methods = Object.getOwnPropertyNames(/** @type {{prototype: Object}} */ (type).prototype).filter(
|
|
70
|
+
(key) => typeof /** @type {any} */ (type).prototype[key] === 'function'
|
|
66
71
|
)
|
|
67
72
|
const availableMethods = methods.map((name) => `${name}()`)
|
|
68
|
-
const message = `Method ${methodName} not found in class ${type.name}. Available instance public methods:\n${availableMethods.join('\n')}`
|
|
73
|
+
const message = `Method ${methodName} not found in class ${/** @type {{name: string}} */ (type).name}. Available instance public methods:\n${availableMethods.join('\n')}`
|
|
69
74
|
return new Error(message)
|
|
70
75
|
}
|
|
71
76
|
}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class GetStaticFieldHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 2
|
|
5
10
|
|
|
@@ -7,6 +12,10 @@ class GetStaticFieldHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
* @returns {any}
|
|
18
|
+
*/
|
|
10
19
|
process(command) {
|
|
11
20
|
try {
|
|
12
21
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
//
|
|
1
|
+
// @ts-check
|
|
2
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
4
8
|
/**
|
|
5
9
|
* Handles retrieving a static method as a delegate.
|
|
6
10
|
*/
|
|
@@ -19,7 +23,6 @@ class GetStaticMethodAsDelegateHandler extends AbstractHandler {
|
|
|
19
23
|
/**
|
|
20
24
|
* Processes a command to retrieve a static method as a delegate.
|
|
21
25
|
* @param {Command} command - The command containing payload data.
|
|
22
|
-
* @param {Array<*>} command.payload - The payload containing type, method name, and arguments.
|
|
23
26
|
* @returns {Function} The delegate for the static method.
|
|
24
27
|
* @throws {Error} If the parameters mismatch or the method cannot be found.
|
|
25
28
|
*/
|
|
@@ -47,12 +50,10 @@ class GetStaticMethodAsDelegateHandler extends AbstractHandler {
|
|
|
47
50
|
* Retrieves the method from the type.
|
|
48
51
|
* @param {Object} type - The class or constructor to search for the method.
|
|
49
52
|
* @param {string} methodName - The name of the method.
|
|
50
|
-
* @param {Array<Function>} argsType - The argument types.
|
|
51
|
-
* @param {Object} modifier - Parameter modifier (not used in JS implementation).
|
|
52
53
|
* @returns {Function|null} The found method or null if not found.
|
|
53
54
|
*/
|
|
54
55
|
getMethod(type, methodName) {
|
|
55
|
-
const method = type[methodName]
|
|
56
|
+
const method = /** @type {any} */ (type)[methodName]
|
|
56
57
|
return typeof method === 'function' ? method : null
|
|
57
58
|
}
|
|
58
59
|
|
|
@@ -63,9 +64,9 @@ class GetStaticMethodAsDelegateHandler extends AbstractHandler {
|
|
|
63
64
|
* @returns {Error} The error with detailed message.
|
|
64
65
|
*/
|
|
65
66
|
createMethodNotFoundError(type, methodName) {
|
|
66
|
-
const methods = Object.keys(type).filter((key) => typeof type[key] === 'function')
|
|
67
|
+
const methods = Object.keys(type).filter((key) => typeof /** @type {any} */ (type)[key] === 'function')
|
|
67
68
|
const availableMethods = methods.map((name) => `${name}()`)
|
|
68
|
-
const message = `Method ${methodName} not found in class ${type.name}. Available public static methods:\n${availableMethods.join('\n')}`
|
|
69
|
+
const message = `Method ${methodName} not found in class ${/** @type {{name: string}} */ (type).name}. Available public static methods:\n${availableMethods.join('\n')}`
|
|
69
70
|
return new Error(message)
|
|
70
71
|
}
|
|
71
72
|
}
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
import { LoadLibraryHandler } from './LoadLibraryHandler.js'
|
|
3
4
|
import { NamespaceCache } from '../namespaceCache/NamespaceCache.js'
|
|
4
5
|
import { TypeCache } from '../typeCache/TypeCache.js'
|
|
5
6
|
import { getRequire } from '../../utils/Runtime.js'
|
|
6
7
|
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
10
|
+
*/
|
|
7
11
|
class GetTypeHandler extends AbstractHandler {
|
|
8
12
|
constructor() {
|
|
9
13
|
super()
|
|
10
14
|
/** @type {number} */
|
|
11
15
|
this.requiredParametersCount = 1
|
|
12
|
-
/** @type {NamespaceCache
|
|
16
|
+
/** @type {NamespaceCache} */
|
|
13
17
|
this.namespaceCache = new NamespaceCache()
|
|
14
|
-
/** @type {TypeCache
|
|
18
|
+
/** @type {TypeCache} */
|
|
15
19
|
this.typeCache = new TypeCache()
|
|
16
|
-
/** @type {LoadLibraryHandler
|
|
20
|
+
/** @type {LoadLibraryHandler} */
|
|
17
21
|
this.loadLibaryHandler = new LoadLibraryHandler()
|
|
18
22
|
}
|
|
19
23
|
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param {Command} command
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
20
29
|
process(command) {
|
|
21
30
|
try {
|
|
22
31
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -25,7 +34,7 @@ class GetTypeHandler extends AbstractHandler {
|
|
|
25
34
|
const { payload } = command
|
|
26
35
|
let typeName = payload[0]
|
|
27
36
|
typeName = typeName.replace('.js', '')
|
|
28
|
-
|
|
37
|
+
const typeToReturn = /** @type {any} */ (global)[typeName]
|
|
29
38
|
if (typeToReturn === undefined) {
|
|
30
39
|
let message = `Type ${typeName} not found\n`
|
|
31
40
|
message += 'Available types:\n'
|
|
@@ -54,7 +63,8 @@ class GetTypeHandler extends AbstractHandler {
|
|
|
54
63
|
}
|
|
55
64
|
|
|
56
65
|
getAvailableTypes() {
|
|
57
|
-
|
|
66
|
+
/** @type {string[]} */
|
|
67
|
+
const availableTypes = []
|
|
58
68
|
this.loadLibaryHandler.getLoadedLibraries().forEach((lib) => {
|
|
59
69
|
const dynamicRequire = getRequire(import.meta.url)
|
|
60
70
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
//@ts-check
|
|
1
2
|
import { ReferencesCache } from '../referenceCache/ReferencesCache.js'
|
|
2
3
|
import { ValueHandler } from './ValueHandler.js'
|
|
3
4
|
import { LoadLibraryHandler } from './LoadLibraryHandler.js'
|
|
@@ -26,26 +27,14 @@ import { InvokeDelegateHandler } from './InvokeDelegateHandler.js'
|
|
|
26
27
|
import { InvokeGlobalFunctionHandler } from './InvokeGlobalFunctionHandler.js'
|
|
27
28
|
import { CommandType } from '../../utils/CommandType.js'
|
|
28
29
|
import { Command } from '../../utils/Command.js'
|
|
30
|
+
import { TypesHandler } from '../../utils/TypesHandler.js'
|
|
29
31
|
import { ExceptionSerializer } from '../../utils/exception/ExceptionSerializer.js'
|
|
30
32
|
import { ConvertTypeHandler } from './ConvertTypeHandler.js'
|
|
31
33
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
32
34
|
|
|
33
35
|
/**
|
|
34
|
-
* @
|
|
35
|
-
* @returns {boolean}
|
|
36
|
+
* @typedef {import('../../types.d.ts').RuntimeName} RuntimeName
|
|
36
37
|
*/
|
|
37
|
-
function isResponseSimpleType(response) {
|
|
38
|
-
let type = typeof response
|
|
39
|
-
return ['string', 'boolean', 'number'].includes(type)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* @param {any} response
|
|
44
|
-
* @returns {boolean}
|
|
45
|
-
*/
|
|
46
|
-
function isResponseNull(response) {
|
|
47
|
-
return response === null
|
|
48
|
-
}
|
|
49
38
|
|
|
50
39
|
/**
|
|
51
40
|
* @type {Record<number, AbstractHandler>}
|
|
@@ -86,16 +75,22 @@ class Handler {
|
|
|
86
75
|
constructor(interpreter) {
|
|
87
76
|
this.interpreter = interpreter
|
|
88
77
|
|
|
78
|
+
if (!this.interpreter) {
|
|
79
|
+
throw new Error('interpreter is undefined in Handler constructor')
|
|
80
|
+
}
|
|
81
|
+
|
|
89
82
|
// dynamically create pass delegate handler with interpreter
|
|
90
|
-
|
|
83
|
+
// @ts-expect-error
|
|
84
|
+
handlers[CommandType.PassDelegate] = new PassDelegateHandler(this.interpreter)
|
|
91
85
|
|
|
92
86
|
Object.keys(handlers).forEach((commandTypeHandler) => {
|
|
87
|
+
// @ts-expect-error
|
|
93
88
|
handlers[commandTypeHandler].handlers = handlers
|
|
94
89
|
})
|
|
95
90
|
}
|
|
96
91
|
|
|
97
92
|
/**
|
|
98
|
-
* @param {
|
|
93
|
+
* @param {Command} command
|
|
99
94
|
*/
|
|
100
95
|
handleCommand(command) {
|
|
101
96
|
try {
|
|
@@ -112,11 +107,11 @@ class Handler {
|
|
|
112
107
|
|
|
113
108
|
/**
|
|
114
109
|
* @param {any} response
|
|
115
|
-
* @param {
|
|
110
|
+
* @param {RuntimeName} runtimeName
|
|
116
111
|
* @returns {Command}
|
|
117
112
|
*/
|
|
118
113
|
parseCommand(response, runtimeName) {
|
|
119
|
-
if (
|
|
114
|
+
if (TypesHandler.isPrimitiveOrNullOrUndefined(response)) {
|
|
120
115
|
return Command.createResponse(response, runtimeName)
|
|
121
116
|
} else {
|
|
122
117
|
let cache = ReferencesCache.getInstance()
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { delegatesCacheInstance } from '../delegatesCache/DelegatesCache.js'
|
|
2
3
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
7
|
+
*/
|
|
8
|
+
|
|
4
9
|
/**
|
|
5
10
|
* Handles invoking a delegate by GUID.
|
|
6
11
|
*/
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class InvokeGlobalFunctionHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 1
|
|
5
10
|
|
|
@@ -7,6 +12,9 @@ class InvokeGlobalFunctionHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -15,11 +23,13 @@ class InvokeGlobalFunctionHandler extends AbstractHandler {
|
|
|
15
23
|
const { payload } = command
|
|
16
24
|
const functionName = payload[0]
|
|
17
25
|
const args = payload.slice(1)
|
|
18
|
-
|
|
26
|
+
// @ts-expect-error
|
|
19
27
|
if (typeof global[functionName] === 'function') {
|
|
28
|
+
// @ts-expect-error
|
|
20
29
|
return Reflect.apply(global[functionName], undefined, args)
|
|
21
30
|
} else {
|
|
22
31
|
let methods = Object.getOwnPropertyNames(global).filter(function (property) {
|
|
32
|
+
// @ts-expect-error
|
|
23
33
|
return typeof global[property] === 'function'
|
|
24
34
|
})
|
|
25
35
|
let message = `Method ${functionName} not found in global. Available methods:\n`
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class InvokeInstanceMethodHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 2
|
|
5
10
|
|
|
@@ -7,6 +12,9 @@ class InvokeInstanceMethodHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class InvokeStaticMethodHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 2
|
|
5
10
|
|
|
@@ -7,6 +12,9 @@ class InvokeStaticMethodHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,15 +1,24 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { getRequire } from '../../utils/Runtime.js'
|
|
2
3
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
7
|
+
*/
|
|
8
|
+
|
|
4
9
|
const dynamicImport = getRequire(import.meta.url)
|
|
5
10
|
class LoadLibraryHandler extends AbstractHandler {
|
|
6
11
|
requiredParametersCount = 1
|
|
12
|
+
/** @type {string[]} */
|
|
7
13
|
static loadedLibraries = []
|
|
8
14
|
|
|
9
15
|
constructor() {
|
|
10
16
|
super()
|
|
11
17
|
}
|
|
12
18
|
|
|
19
|
+
/**
|
|
20
|
+
* @param {Command} command
|
|
21
|
+
*/
|
|
13
22
|
process(command) {
|
|
14
23
|
if (command.payload.length < this.requiredParametersCount) {
|
|
15
24
|
throw new Error('Load Library parameters mismatch')
|
|
@@ -34,10 +43,12 @@ class LoadLibraryHandler extends AbstractHandler {
|
|
|
34
43
|
throw this.process_stack_trace(error, this.constructor.name)
|
|
35
44
|
}
|
|
36
45
|
}
|
|
46
|
+
// @ts-expect-error
|
|
37
47
|
global[libraryName] = moduleExports
|
|
38
48
|
|
|
39
49
|
for (const [key, value] of Object.entries(moduleExports)) {
|
|
40
50
|
// Here, `key` is the name of the export, and `value` is the exported type itself.
|
|
51
|
+
// @ts-expect-error
|
|
41
52
|
global[key] = value
|
|
42
53
|
}
|
|
43
54
|
return 0
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class SetGlobalStaticFieldHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 2
|
|
5
10
|
|
|
@@ -7,6 +12,9 @@ class SetGlobalStaticFieldHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -18,6 +26,7 @@ class SetGlobalStaticFieldHandler extends AbstractHandler {
|
|
|
18
26
|
let fieldToSet
|
|
19
27
|
|
|
20
28
|
for (let i = 0; i < splitted.length; i++) {
|
|
29
|
+
// @ts-expect-error
|
|
21
30
|
if (typeof (fieldToSet ? fieldToSet[splitted[i]] : global[splitted[i]]) === 'undefined') {
|
|
22
31
|
let fields = Object.keys(fieldToSet ? fieldToSet : global)
|
|
23
32
|
let message = `Field ${splitted[i]} not found in object. Available fields:\n`
|
|
@@ -26,6 +35,7 @@ class SetGlobalStaticFieldHandler extends AbstractHandler {
|
|
|
26
35
|
})
|
|
27
36
|
throw new Error(message)
|
|
28
37
|
}
|
|
38
|
+
// @ts-expect-error
|
|
29
39
|
fieldToSet = !fieldToSet ? global[splitted[i]] : fieldToSet[splitted[i]]
|
|
30
40
|
}
|
|
31
41
|
fieldToSet = value
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
3
7
|
class SetInstanceFieldHandler extends AbstractHandler {
|
|
4
8
|
requiredParametersCount = 3
|
|
5
9
|
|
|
@@ -7,6 +11,9 @@ class SetInstanceFieldHandler extends AbstractHandler {
|
|
|
7
11
|
super()
|
|
8
12
|
}
|
|
9
13
|
|
|
14
|
+
/**
|
|
15
|
+
* @param {Command} command
|
|
16
|
+
*/
|
|
10
17
|
process(command) {
|
|
11
18
|
try {
|
|
12
19
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
7
|
+
|
|
3
8
|
class SetStaticFieldHandler extends AbstractHandler {
|
|
4
9
|
requiredParametersCount = 3
|
|
5
10
|
|
|
@@ -7,6 +12,9 @@ class SetStaticFieldHandler extends AbstractHandler {
|
|
|
7
12
|
super()
|
|
8
13
|
}
|
|
9
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @param {Command} command
|
|
17
|
+
*/
|
|
10
18
|
process(command) {
|
|
11
19
|
try {
|
|
12
20
|
if (command.payload.length < this.requiredParametersCount) {
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import { AbstractHandler } from './AbstractHandler.js'
|
|
2
3
|
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {import('../../utils/Command.js').Command} Command
|
|
6
|
+
*/
|
|
3
7
|
class ValueHandler extends AbstractHandler {
|
|
4
8
|
constructor() {
|
|
5
9
|
super()
|
|
6
10
|
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @param {Command} command
|
|
14
|
+
* @returns {unknown}
|
|
15
|
+
*/
|
|
7
16
|
process(command) {
|
|
8
17
|
const { payload } = command
|
|
9
18
|
return payload[0]
|