javonet-nodejs-sdk 2.5.16 → 2.5.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/core/delegatesCache/DelegatesCache.cjs +1 -5
  2. package/dist/core/handler/AbstractHandler.cjs +24 -9
  3. package/dist/core/handler/ArrayGetItemHandler.cjs +5 -4
  4. package/dist/core/handler/ArrayGetRankHandler.cjs +4 -3
  5. package/dist/core/handler/ArrayGetSizeHandler.cjs +4 -3
  6. package/dist/core/handler/ArrayHandler.cjs +3 -0
  7. package/dist/core/handler/ArraySetItemHandler.cjs +5 -4
  8. package/dist/core/handler/CastingHandler.cjs +3 -1
  9. package/dist/core/handler/ConvertTypeHandler.cjs +4 -4
  10. package/dist/core/handler/CreateClassInstanceHandler.cjs +6 -5
  11. package/dist/core/handler/DestructReferenceHandler.cjs +3 -0
  12. package/dist/core/handler/EnableNamespaceHandler.cjs +3 -0
  13. package/dist/core/handler/EnableTypeHandler.cjs +4 -3
  14. package/dist/core/handler/GetGlobalStaticFieldHandler.cjs +4 -3
  15. package/dist/core/handler/GetInstanceFieldHandler.cjs +4 -3
  16. package/dist/core/handler/GetInstanceMethodAsDelegateHandler.cjs +15 -4
  17. package/dist/core/handler/GetStaticFieldHandler.cjs +5 -3
  18. package/dist/core/handler/GetStaticMethodAsDelegateHandler.cjs +10 -10
  19. package/dist/core/handler/GetTypeHandler.cjs +10 -2
  20. package/dist/core/handler/Handler.cjs +8 -11
  21. package/dist/core/handler/InvokeGlobalFunctionHandler.cjs +4 -3
  22. package/dist/core/handler/InvokeInstanceMethodHandler.cjs +4 -3
  23. package/dist/core/handler/InvokeStaticMethodHandler.cjs +4 -3
  24. package/dist/core/handler/LoadLibraryHandler.cjs +11 -10
  25. package/dist/core/handler/PassDelegateHandler.cjs +2 -4
  26. package/dist/core/handler/SetGlobalStaticFieldHandler.cjs +4 -3
  27. package/dist/core/handler/SetInstanceFieldHandler.cjs +4 -3
  28. package/dist/core/handler/SetStaticFieldHandler.cjs +4 -3
  29. package/dist/core/handler/ValueHandler.cjs +4 -0
  30. package/dist/core/interpreter/Interpreter.cjs +29 -17
  31. package/dist/core/namespaceCache/NamespaceCache.cjs +19 -10
  32. package/dist/core/protocol/CommandDeserializer.cjs +10 -2
  33. package/dist/core/protocol/CommandSerializer.cjs +24 -4
  34. package/dist/core/protocol/TypeDeserializer.cjs +35 -0
  35. package/dist/core/protocol/TypeSerializer.cjs +51 -7
  36. package/dist/core/receiver/Receiver.cjs +3 -5
  37. package/dist/core/receiver/ReceiverNative.cjs +6 -0
  38. package/dist/core/transmitter/Transmitter.cjs +19 -5
  39. package/dist/core/transmitter/TransmitterWebsocket.cjs +8 -5
  40. package/dist/core/transmitter/TransmitterWebsocketBrowser.cjs +1 -1
  41. package/dist/core/transmitter/TransmitterWrapper.cjs +25 -8
  42. package/dist/core/typeCache/TypeCache.cjs +15 -10
  43. package/dist/core/webSocketClient/WebSocketClient.cjs +22 -12
  44. package/dist/core/webSocketClient/WebSocketClientBrowser.cjs +2 -2
  45. package/dist/sdk/ConfigRuntimeFactory.cjs +92 -98
  46. package/dist/sdk/InvocationContext.cjs +229 -203
  47. package/dist/sdk/Javonet.cjs +14 -33
  48. package/dist/sdk/RuntimeContext.cjs +138 -99
  49. package/dist/sdk/RuntimeFactory.cjs +3 -0
  50. package/dist/sdk/tools/ActivationHelper.cjs +66 -0
  51. package/dist/sdk/tools/JsonResolver.cjs +214 -0
  52. package/dist/types/core/handler/AbstractHandler.d.ts +23 -4
  53. package/dist/types/core/handler/ArrayGetItemHandler.d.ts +8 -1
  54. package/dist/types/core/handler/ArrayGetRankHandler.d.ts +8 -1
  55. package/dist/types/core/handler/ArrayGetSizeHandler.d.ts +8 -1
  56. package/dist/types/core/handler/ArrayHandler.d.ts +8 -1
  57. package/dist/types/core/handler/ArraySetItemHandler.d.ts +8 -1
  58. package/dist/types/core/handler/CastingHandler.d.ts +4 -0
  59. package/dist/types/core/handler/ConvertTypeHandler.d.ts +8 -4
  60. package/dist/types/core/handler/CreateClassInstanceHandler.d.ts +8 -1
  61. package/dist/types/core/handler/DestructReferenceHandler.d.ts +8 -1
  62. package/dist/types/core/handler/EnableNamespaceHandler.d.ts +8 -1
  63. package/dist/types/core/handler/EnableTypeHandler.d.ts +8 -1
  64. package/dist/types/core/handler/GetGlobalStaticFieldHandler.d.ts +8 -1
  65. package/dist/types/core/handler/GetInstanceFieldHandler.d.ts +8 -1
  66. package/dist/types/core/handler/GetStaticFieldHandler.d.ts +9 -1
  67. package/dist/types/core/handler/GetStaticMethodAsDelegateHandler.d.ts +4 -3
  68. package/dist/types/core/handler/GetTypeHandler.d.ts +17 -8
  69. package/dist/types/core/handler/Handler.d.ts +8 -8
  70. package/dist/types/core/handler/InvokeDelegateHandler.d.ts +4 -0
  71. package/dist/types/core/handler/InvokeGlobalFunctionHandler.d.ts +8 -1
  72. package/dist/types/core/handler/InvokeInstanceMethodHandler.d.ts +8 -1
  73. package/dist/types/core/handler/InvokeStaticMethodHandler.d.ts +8 -1
  74. package/dist/types/core/handler/LoadLibraryHandler.d.ts +8 -3
  75. package/dist/types/core/handler/SetGlobalStaticFieldHandler.d.ts +4 -0
  76. package/dist/types/core/handler/SetInstanceFieldHandler.d.ts +8 -1
  77. package/dist/types/core/handler/SetStaticFieldHandler.d.ts +8 -1
  78. package/dist/types/core/handler/ValueHandler.d.ts +9 -1
  79. package/dist/types/core/interpreter/Interpreter.d.ts +11 -10
  80. package/dist/types/core/namespaceCache/NamespaceCache.d.ts +17 -5
  81. package/dist/types/core/protocol/CommandDeserializer.d.ts +10 -3
  82. package/dist/types/core/protocol/CommandSerializer.d.ts +19 -2
  83. package/dist/types/core/protocol/TypeDeserializer.d.ts +46 -11
  84. package/dist/types/core/protocol/TypeSerializer.d.ts +53 -13
  85. package/dist/types/core/receiver/Receiver.d.ts +2 -2
  86. package/dist/types/core/receiver/ReceiverNative.d.ts +8 -2
  87. package/dist/types/core/transmitter/Transmitter.d.ts +20 -4
  88. package/dist/types/core/transmitter/TransmitterWebsocket.d.ts +8 -4
  89. package/dist/types/core/transmitter/TransmitterWebsocketBrowser.d.ts +4 -7
  90. package/dist/types/core/transmitter/TransmitterWrapper.d.ts +12 -3
  91. package/dist/types/core/typeCache/TypeCache.d.ts +15 -5
  92. package/dist/types/core/webSocketClient/WebSocketClient.d.ts +17 -21
  93. package/dist/types/sdk/ConfigRuntimeFactory.d.ts +9 -6
  94. package/dist/types/sdk/InvocationContext.d.ts +38 -6
  95. package/dist/types/sdk/Javonet.d.ts +12 -7
  96. package/dist/types/sdk/RuntimeContext.d.ts +23 -7
  97. package/dist/types/sdk/RuntimeFactory.d.ts +9 -2
  98. package/dist/types/sdk/tools/ActivationHelper.d.ts +20 -0
  99. package/dist/types/sdk/tools/JsonResolver.d.ts +87 -0
  100. package/dist/types/utils/Command.d.ts +18 -14
  101. package/dist/types/utils/CreateRequire.browser.d.ts +1 -0
  102. package/dist/types/utils/CreateRequire.node.d.ts +2 -0
  103. package/dist/types/utils/CustomError.d.ts +5 -1
  104. package/dist/types/utils/Runtime.d.ts +2 -3
  105. package/dist/types/utils/RuntimeNameHandler.d.ts +6 -2
  106. package/dist/types/utils/Type.d.ts +1 -0
  107. package/dist/types/utils/TypesHandler.d.ts +16 -0
  108. package/dist/types/utils/UtilsConst.d.ts +32 -0
  109. package/dist/types/utils/connectionData/IConnectionData.d.ts +16 -3
  110. package/dist/types/utils/connectionData/InMemoryConnectionData.d.ts +4 -3
  111. package/dist/types/utils/connectionData/WsConnectionData.d.ts +7 -10
  112. package/dist/types/utils/nodejs/connectionData/TcpConnectionData.d.ts +17 -10
  113. package/dist/utils/Command.cjs +9 -9
  114. package/dist/utils/CreateRequire.browser.cjs +30 -0
  115. package/dist/utils/CreateRequire.node.cjs +28 -0
  116. package/dist/utils/CustomError.cjs +4 -0
  117. package/dist/utils/Runtime.cjs +24 -18
  118. package/dist/utils/RuntimeLogger.cjs +2 -4
  119. package/dist/utils/RuntimeLoggerBrowser.cjs +1 -3
  120. package/dist/utils/RuntimeNameHandler.cjs +1 -1
  121. package/dist/utils/Type.cjs +2 -1
  122. package/dist/utils/TypesHandler.cjs +55 -0
  123. package/dist/utils/UtilsConst.cjs +101 -0
  124. package/dist/utils/connectionData/IConnectionData.cjs +9 -0
  125. package/dist/utils/connectionData/InMemoryConnectionData.cjs +10 -0
  126. package/dist/utils/connectionData/WsConnectionData.cjs +4 -0
  127. package/dist/utils/nodejs/connectionData/TcpConnectionData.cjs +45 -25
  128. package/lib/core/delegatesCache/DelegatesCache.js +1 -0
  129. package/lib/core/handler/AbstractHandler.js +27 -9
  130. package/lib/core/handler/ArrayGetItemHandler.js +9 -1
  131. package/lib/core/handler/ArrayGetRankHandler.js +9 -0
  132. package/lib/core/handler/ArrayGetSizeHandler.js +8 -0
  133. package/lib/core/handler/ArrayHandler.js +8 -0
  134. package/lib/core/handler/ArraySetItemHandler.js +11 -1
  135. package/lib/core/handler/CastingHandler.js +8 -1
  136. package/lib/core/handler/ConvertTypeHandler.js +9 -4
  137. package/lib/core/handler/CreateClassInstanceHandler.js +10 -4
  138. package/lib/core/handler/DestructReferenceHandler.js +8 -0
  139. package/lib/core/handler/EnableNamespaceHandler.js +8 -0
  140. package/lib/core/handler/EnableTypeHandler.js +8 -0
  141. package/lib/core/handler/GetGlobalStaticFieldHandler.js +9 -0
  142. package/lib/core/handler/GetInstanceFieldHandler.js +8 -0
  143. package/lib/core/handler/GetInstanceMethodAsDelegateHandler.js +9 -4
  144. package/lib/core/handler/GetStaticFieldHandler.js +9 -0
  145. package/lib/core/handler/GetStaticMethodAsDelegateHandler.js +8 -7
  146. package/lib/core/handler/GetTypeHandler.js +15 -5
  147. package/lib/core/handler/Handler.js +13 -18
  148. package/lib/core/handler/InvokeDelegateHandler.js +5 -0
  149. package/lib/core/handler/InvokeGlobalFunctionHandler.js +11 -1
  150. package/lib/core/handler/InvokeInstanceMethodHandler.js +8 -0
  151. package/lib/core/handler/InvokeStaticMethodHandler.js +8 -0
  152. package/lib/core/handler/LoadLibraryHandler.js +11 -0
  153. package/lib/core/handler/SetGlobalStaticFieldHandler.js +10 -0
  154. package/lib/core/handler/SetInstanceFieldHandler.js +7 -0
  155. package/lib/core/handler/SetStaticFieldHandler.js +8 -0
  156. package/lib/core/handler/ValueHandler.js +9 -0
  157. package/lib/core/interpreter/Interpreter.js +42 -24
  158. package/lib/core/namespaceCache/NamespaceCache.js +14 -0
  159. package/lib/core/protocol/CommandDeserializer.js +11 -2
  160. package/lib/core/protocol/CommandSerializer.js +40 -9
  161. package/lib/core/protocol/TypeDeserializer.js +36 -0
  162. package/lib/core/protocol/TypeSerializer.js +62 -7
  163. package/lib/core/receiver/Receiver.js +3 -2
  164. package/lib/core/receiver/ReceiverNative.js +8 -0
  165. package/lib/core/transmitter/Transmitter.js +18 -1
  166. package/lib/core/transmitter/TransmitterWebsocket.js +12 -5
  167. package/lib/core/transmitter/TransmitterWebsocketBrowser.js +2 -4
  168. package/lib/core/transmitter/TransmitterWrapper.js +27 -6
  169. package/lib/core/typeCache/TypeCache.js +9 -0
  170. package/lib/core/webSocketClient/WebSocketClient.js +33 -30
  171. package/lib/core/webSocketClient/WebSocketClientBrowser.js +5 -6
  172. package/lib/sdk/ConfigRuntimeFactory.js +70 -68
  173. package/lib/sdk/InvocationContext.js +94 -26
  174. package/lib/sdk/Javonet.js +18 -36
  175. package/lib/sdk/RuntimeContext.js +109 -29
  176. package/lib/sdk/RuntimeFactory.js +7 -0
  177. package/lib/sdk/tools/ActivationHelper.js +51 -0
  178. package/lib/sdk/tools/JsonResolver.js +226 -0
  179. package/lib/types.d.ts +57 -0
  180. package/lib/utils/Command.js +14 -9
  181. package/lib/utils/CreateRequire.browser.js +5 -0
  182. package/lib/utils/CreateRequire.node.js +3 -0
  183. package/lib/utils/CustomError.js +5 -0
  184. package/lib/utils/Runtime.js +25 -6
  185. package/lib/utils/RuntimeLogger.js +3 -0
  186. package/lib/utils/RuntimeNameHandler.js +6 -1
  187. package/lib/utils/Type.js +2 -1
  188. package/lib/utils/TypesHandler.js +35 -0
  189. package/lib/utils/UtilsConst.js +88 -0
  190. package/lib/utils/connectionData/IConnectionData.js +14 -0
  191. package/lib/utils/connectionData/InMemoryConnectionData.js +15 -0
  192. package/lib/utils/connectionData/WsConnectionData.js +9 -0
  193. package/lib/utils/nodejs/connectionData/TcpConnectionData.js +35 -5
  194. package/package.json +13 -3
  195. package/dist/sdk/tools/browser/ConfigSourceResolver.cjs +0 -153
  196. package/dist/sdk/tools/nodejs/JsonFileResolver.cjs +0 -120
  197. package/dist/types/sdk/tools/browser/ConfigSourceResolver.d.ts +0 -46
  198. package/dist/types/sdk/tools/nodejs/JsonFileResolver.d.ts +0 -13
  199. package/dist/types/utils/nodejs/TypesConverter.d.ts +0 -48
  200. package/dist/utils/nodejs/TypesConverter.cjs +0 -102
  201. package/lib/declarations.d.ts +0 -35
  202. package/lib/sdk/tools/browser/ConfigSourceResolver.js +0 -146
  203. package/lib/sdk/tools/nodejs/JsonFileResolver.js +0 -106
  204. package/lib/utils/nodejs/TypesConverter.js +0 -91
@@ -1,6 +1,11 @@
1
- import { TypesConverter } from '../../utils/nodejs/TypesConverter.js'
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 {Object} command - The command to process.
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 TypesConverter.convertJTypeToType(command.payload[0])
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 {Object} command - The command to validate.
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
- // eslint-disable-next-line no-undef
20
- let methods = Object.getOwnPropertyNames(type).filter(function (property) {
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
- // eslint-disable-next-line no-unused-vars
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 | null} */
16
+ /** @type {NamespaceCache} */
13
17
  this.namespaceCache = new NamespaceCache()
14
- /** @type {TypeCache | null} */
18
+ /** @type {TypeCache} */
15
19
  this.typeCache = new TypeCache()
16
- /** @type {LoadLibraryHandler | null} */
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
- let typeToReturn = global[typeName]
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
- let availableTypes = []
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
- * @param {any} response
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
- handlers[CommandType.PassDelegate] = new PassDelegateHandler(interpreter)
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 {{ commandType: number; payload: any[]; runtimeName: number; }} command
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 {number} runtimeName
110
+ * @param {RuntimeName} runtimeName
116
111
  * @returns {Command}
117
112
  */
118
113
  parseCommand(response, runtimeName) {
119
- if (isResponseNull(response) || isResponseSimpleType(response)) {
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]