javonet-nodejs-sdk 2.5.0 → 2.5.2

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 (311) hide show
  1. package/.prettierrc +12 -0
  2. package/Binaries/Clr/Javonet.Clr.Utils.dll +0 -0
  3. package/Binaries/Clr/JavonetClrRuntime.dll +0 -0
  4. package/Binaries/Jvm/JavonetJvmRuntime.jar +0 -0
  5. package/Binaries/Native/Linux/ARM64/dynamicCompilationHeaders/Linux/jni.h +1960 -0
  6. package/Binaries/Native/Linux/ARM64/dynamicCompilationHeaders/Linux/jni_md.h +51 -0
  7. package/Binaries/Native/Linux/ARM64/dynamicCompilationHeaders/MacOs/jni.h +1960 -0
  8. package/Binaries/Native/Linux/ARM64/dynamicCompilationHeaders/MacOs/jni_md.h +51 -0
  9. package/Binaries/Native/Linux/ARM64/dynamicCompilationHeaders/Windows/jni.h +1960 -0
  10. package/Binaries/Native/Linux/ARM64/dynamicCompilationHeaders/Windows/jni_md.h +37 -0
  11. package/Binaries/Native/Linux/ARM64/libJavonetActivationService.so +0 -0
  12. package/Binaries/Native/Linux/ARM64/libJavonetCppRuntimeNative.so +0 -0
  13. package/Binaries/Native/Linux/ARM64/libJavonetGoRuntimeNative.so +0 -0
  14. package/Binaries/Native/Linux/ARM64/libJavonetJvmRuntimeNative.so +0 -0
  15. package/Binaries/Native/Linux/ARM64/libJavonetNetcoreRuntimeNative.so +0 -0
  16. package/Binaries/Native/Linux/ARM64/libJavonetPythonRuntimeNative.so +0 -0
  17. package/Binaries/Native/Linux/ARM64/libJavonetRuby278RuntimeNative.so +0 -0
  18. package/Binaries/Native/Linux/ARM64/libJavonetRubyRuntimeNative.so +0 -0
  19. package/Binaries/Native/Linux/ARM64/libJavonetTcpClient.so +0 -0
  20. package/Binaries/Native/Linux/ARM64/libJavonetTcpTlsClient.so +0 -0
  21. package/Binaries/Native/Linux/ARM64/libUtils.so +0 -0
  22. package/Binaries/Native/Linux/ARM64/version.txt +1 -1
  23. package/Binaries/Native/Linux/X64/NativeUtilsUnitTests.xml +18 -18
  24. package/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  25. package/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  26. package/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  27. package/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  28. package/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  29. package/Binaries/Native/Linux/X64/libJavonetNodejs1816RuntimeNative.so +0 -0
  30. package/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  31. package/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  32. package/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  33. package/Binaries/Native/Linux/X64/libJavonetRuby278RuntimeNative.so +0 -0
  34. package/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  35. package/Binaries/Native/Linux/X64/libJavonetTcpClient.so +0 -0
  36. package/Binaries/Native/Linux/X64/libJavonetTcpTlsClient.so +0 -0
  37. package/Binaries/Native/Linux/X64/libUtils.so +0 -0
  38. package/Binaries/Native/Linux/X64/libnethost.so +0 -0
  39. package/Binaries/Native/Linux/X64/openssl3/libJavonetActivationService.so +0 -0
  40. package/Binaries/Native/Linux/X64/openssl3/libJavonetTcpTlsClient.so +0 -0
  41. package/Binaries/Native/Linux/X64/openssl3/libUtils.so +0 -0
  42. package/Binaries/Native/Linux/X64/version.txt +1 -1
  43. package/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  44. package/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  45. package/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  46. package/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  47. package/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  48. package/Binaries/Native/MacOs/X64/libJavonetNodejs1816RuntimeNative.dylib +0 -0
  49. package/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  50. package/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  51. package/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  52. package/Binaries/Native/MacOs/X64/libJavonetRuby278RuntimeNative.dylib +0 -0
  53. package/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  54. package/Binaries/Native/MacOs/X64/libJavonetTcpClient.dylib +0 -0
  55. package/Binaries/Native/MacOs/X64/libJavonetTcpTlsClient.dylib +0 -0
  56. package/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  57. package/Binaries/Native/MacOs/X64/libnethost.dylib +0 -0
  58. package/Binaries/Native/MacOs/X64/version.txt +1 -1
  59. package/Binaries/Native/Windows/ARM64/JavonetActivationService.dll +0 -0
  60. package/Binaries/Native/Windows/ARM64/JavonetCppRuntimeNative.dll +0 -0
  61. package/Binaries/Native/Windows/ARM64/JavonetGoRuntimeNative.dll +0 -0
  62. package/Binaries/Native/Windows/ARM64/JavonetJvmRuntimeNative.dll +0 -0
  63. package/Binaries/Native/Windows/ARM64/JavonetNetcoreRuntimeNative.dll +0 -0
  64. package/Binaries/Native/Windows/ARM64/JavonetPythonRuntimeNative.dll +0 -0
  65. package/Binaries/Native/Windows/ARM64/JavonetRuby278RuntimeNative.dll +0 -0
  66. package/Binaries/Native/Windows/ARM64/JavonetRubyRuntimeNative.dll +0 -0
  67. package/Binaries/Native/Windows/ARM64/JavonetTcpClient.dll +0 -0
  68. package/Binaries/Native/Windows/ARM64/JavonetTcpTlsClient.dll +0 -0
  69. package/Binaries/Native/Windows/ARM64/NetVersion31LatestPatch.runtimeconfig.json +10 -0
  70. package/Binaries/Native/Windows/ARM64/NetVersion60LatestPatch.runtimeconfig.json +10 -0
  71. package/Binaries/Native/Windows/ARM64/NetVersion70LatestPatch.runtimeconfig.json +10 -0
  72. package/Binaries/Native/Windows/ARM64/NetVersion80LatestPatch.runtimeconfig.json +10 -0
  73. package/Binaries/Native/Windows/ARM64/NetVersionLatest.runtimeconfig.json +10 -0
  74. package/Binaries/Native/Windows/ARM64/Utils.dll +0 -0
  75. package/Binaries/Native/Windows/ARM64/dynamicCompilationHeaders/Linux/jni.h +1960 -0
  76. package/Binaries/Native/Windows/ARM64/dynamicCompilationHeaders/Linux/jni_md.h +51 -0
  77. package/Binaries/Native/Windows/ARM64/dynamicCompilationHeaders/MacOs/jni.h +1960 -0
  78. package/Binaries/Native/Windows/ARM64/dynamicCompilationHeaders/MacOs/jni_md.h +51 -0
  79. package/Binaries/Native/Windows/ARM64/dynamicCompilationHeaders/Windows/jni.h +1960 -0
  80. package/Binaries/Native/Windows/ARM64/dynamicCompilationHeaders/Windows/jni_md.h +37 -0
  81. package/Binaries/Native/Windows/ARM64/libcrypto-3-arm64.dll +0 -0
  82. package/Binaries/Native/Windows/ARM64/libssl-3-arm64.dll +0 -0
  83. package/Binaries/Native/Windows/ARM64/libxml2.dll +0 -0
  84. package/Binaries/Native/Windows/ARM64/libxmlsec-openssl.dll +0 -0
  85. package/Binaries/Native/Windows/ARM64/libxmlsec.dll +0 -0
  86. package/Binaries/Native/Windows/ARM64/libxslt.dll +0 -0
  87. package/Binaries/Native/Windows/ARM64/nethost.dll +0 -0
  88. package/Binaries/Native/Windows/ARM64/python312.dll +0 -0
  89. package/Binaries/Native/Windows/ARM64/version.txt +0 -0
  90. package/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  91. package/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  92. package/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  93. package/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  94. package/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  95. package/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  96. package/Binaries/Native/Windows/X64/JavonetNodejs1816RuntimeNative.dll +0 -0
  97. package/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  98. package/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  99. package/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  100. package/Binaries/Native/Windows/X64/JavonetRuby278RuntimeNative.dll +0 -0
  101. package/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  102. package/Binaries/Native/Windows/X64/JavonetTcpClient.dll +0 -0
  103. package/Binaries/Native/Windows/X64/JavonetTcpTlsClient.dll +0 -0
  104. package/Binaries/Native/Windows/X64/Utils.dll +0 -0
  105. package/Binaries/Native/Windows/X64/version.txt +1 -1
  106. package/Binaries/Native/Windows/X86/JavonetActivationService.dll +0 -0
  107. package/Binaries/Native/Windows/X86/JavonetClrRuntimeNative.dll +0 -0
  108. package/Binaries/Native/Windows/X86/JavonetCppRuntimeNative.dll +0 -0
  109. package/Binaries/Native/Windows/X86/JavonetGoRuntimeNative.dll +0 -0
  110. package/Binaries/Native/Windows/X86/JavonetJvmRuntimeNative.dll +0 -0
  111. package/Binaries/Native/Windows/X86/JavonetNetcoreRuntimeNative.dll +0 -0
  112. package/Binaries/Native/Windows/X86/JavonetPythonRuntimeNative.dll +0 -0
  113. package/Binaries/Native/Windows/X86/JavonetTcpClient.dll +0 -0
  114. package/Binaries/Native/Windows/X86/JavonetTcpTlsClient.dll +0 -0
  115. package/Binaries/Native/Windows/X86/Utils.dll +0 -0
  116. package/Binaries/Native/Windows/X86/version.txt +1 -1
  117. package/Binaries/Netcore/Javonet.Netcore.Core.dll +0 -0
  118. package/Binaries/Netcore/Javonet.Netcore.Utils.dll +0 -0
  119. package/Binaries/Nodejs/core/interpreter/Interpreter.js +43 -24
  120. package/Binaries/Nodejs/core/protocol/CommandSerializer.js +7 -31
  121. package/Binaries/Nodejs/core/receiver/Receiver.js +6 -1
  122. package/Binaries/Nodejs/core/transmitter/Transmitter.js +2 -14
  123. package/Binaries/Nodejs/core/webSocketClient/WebSocketClient.js +133 -0
  124. package/Binaries/Nodejs/utils/ConnectionType.js +2 -1
  125. package/Binaries/Nodejs/utils/connectionData/IConnectionData.js +17 -0
  126. package/Binaries/Nodejs/utils/connectionData/InMemoryConnectionData.js +28 -0
  127. package/Binaries/Nodejs/utils/{TcpConnectionData.js → connectionData/TcpConnectionData.js} +26 -6
  128. package/Binaries/Nodejs/utils/connectionData/WsConnectionData.js +33 -0
  129. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Attribute-Util-1.07/install.json +1 -1
  130. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Capture-Tiny-0.48/install.json +1 -1
  131. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Class-Load-0.25/install.json +1 -1
  132. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Class-Load-XS-0.10/install.json +1 -1
  133. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Clone-0.47/install.json +1 -1
  134. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-Cmp-0.010/install.json +1 -1
  135. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-OptList-0.114/install.json +1 -1
  136. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-UUID-1.227/install.json +1 -1
  137. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-GlobalDestruction-0.14/install.json +1 -1
  138. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-OverloadInfo-0.007/install.json +1 -1
  139. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-StackTrace-2.05/install.json +1 -1
  140. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Dist-CheckConflicts-0.11/install.json +1 -1
  141. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Eval-Closure-0.14/install.json +1 -1
  142. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-Config-0.010/install.json +1 -1
  143. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-Helpers-0.028/install.json +1 -1
  144. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-InstallPaths-0.014/install.json +1 -1
  145. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/FFI-CheckLib-0.31/install.json +1 -1
  146. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/FFI-Platypus-2.09/install.json +1 -1
  147. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/File-Which-1.27/install.json +1 -1
  148. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/IPC-System-Simple-1.30/install.json +1 -1
  149. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/MRO-Compat-0.15/install.json +1 -1
  150. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Build-0.4234/install.json +1 -1
  151. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Build-Tiny-0.051/install.json +1 -1
  152. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Implementation-0.09/install.json +1 -1
  153. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Runtime-0.016/install.json +1 -1
  154. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Runtime-Conflicts-0.003/install.json +1 -1
  155. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Moose-2.2207/install.json +1 -1
  156. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Nice-Try-v1.3.13/install.json +1 -1
  157. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/PPI-1.279/install.json +1 -1
  158. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/PPI-XS-0.910/install.json +1 -1
  159. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-DeprecationManager-0.18/install.json +1 -1
  160. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-Stash-0.40/install.json +1 -1
  161. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-Stash-XS-0.30/install.json +1 -1
  162. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Params-Util-1.102/install.json +1 -1
  163. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Path-Tiny-0.146/install.json +1 -1
  164. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/{Scalar-List-Utils-1.66 → Scalar-List-Utils-1.68}/MYMETA.json +1 -1
  165. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scalar-List-Utils-1.68/install.json +1 -0
  166. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scalar-Util-Numeric-0.40/install.json +1 -1
  167. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scope-Guard-0.21/install.json +1 -1
  168. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Exporter-0.991/install.json +1 -1
  169. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Exporter-Progressive-0.001013/install.json +1 -1
  170. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Install-0.929/install.json +1 -1
  171. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Task-Weaken-1.06/install.json +1 -1
  172. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Test-Fatal-0.017/install.json +1 -1
  173. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Try-Tiny-0.32/install.json +1 -1
  174. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Want-0.29/install.json +1 -1
  175. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/aliased-0.34/install.json +1 -1
  176. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/autobox-v3.0.2/install.json +1 -1
  177. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/List/Util/XS.pm +1 -1
  178. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/List/Util.pm +1 -1
  179. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/Scalar/List/Utils.pm +43 -0
  180. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/Scalar/Util.pm +1 -1
  181. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/Sub/Util.pm +1 -1
  182. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  183. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  184. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  185. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/.packlist +2 -0
  186. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  187. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  188. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  189. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  190. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  191. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  192. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/lib/libplfill.so +0 -0
  193. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/probe/bin/dlrun +0 -0
  194. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +89 -89
  195. package/Binaries/Perl/Linux/X64/lib/Javonet/Core/Transmitter/PerlTransmitterWrapper.pm +12 -1
  196. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Attribute-Util-1.07/install.json +1 -1
  197. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-Cmp-0.010/install.json +1 -1
  198. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.227/install.json +1 -1
  199. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Nice-Try-v1.3.13/install.json +1 -1
  200. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/PPI-1.279/install.json +1 -1
  201. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/PPI-XS-0.910/install.json +1 -1
  202. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-Util-Numeric-0.40/install.json +1 -1
  203. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Fatal-0.017/install.json +1 -1
  204. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Want-0.29/install.json +1 -1
  205. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/autobox-v3.0.2/install.json +1 -1
  206. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  207. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  208. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  209. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  210. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  211. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +19 -19
  212. package/Binaries/Perl/Windows/X64/lib/Javonet/Core/Transmitter/PerlTransmitterWrapper.pm +12 -1
  213. package/Binaries/Python/javonet/core/__pycache__/__init__.cpython-312.pyc +0 -0
  214. package/Binaries/Python/javonet/core/generator/__pycache__/__init__.cpython-312.pyc +0 -0
  215. package/Binaries/Python/javonet/core/generator/internal/__pycache__/PythonStringBuilder.cpython-312.pyc +0 -0
  216. package/Binaries/Python/javonet/core/generator/internal/__pycache__/__init__.cpython-312.pyc +0 -0
  217. package/Binaries/Python/javonet/core/handler/CreateClassInstanceHandler.py +1 -7
  218. package/Binaries/Python/javonet/core/handler/GetTypeHandler.py +4 -3
  219. package/Binaries/Python/javonet/core/handler/__pycache__/AbstractCommandHandler.cpython-312.pyc +0 -0
  220. package/Binaries/Python/javonet/core/handler/__pycache__/AbstractHandler.cpython-312.pyc +0 -0
  221. package/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetItemHandler.cpython-312.pyc +0 -0
  222. package/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetRankHandler.cpython-312.pyc +0 -0
  223. package/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetSizeHandler.cpython-312.pyc +0 -0
  224. package/Binaries/Python/javonet/core/handler/__pycache__/ArrayHandler.cpython-312.pyc +0 -0
  225. package/Binaries/Python/javonet/core/handler/__pycache__/ArraySetItemHandler.cpython-312.pyc +0 -0
  226. package/Binaries/Python/javonet/core/handler/__pycache__/CastingHandler.cpython-312.pyc +0 -0
  227. package/Binaries/Python/javonet/core/handler/__pycache__/CreateClassInstanceHandler.cpython-312.pyc +0 -0
  228. package/Binaries/Python/javonet/core/handler/__pycache__/DestructReferenceHandler.cpython-312.pyc +0 -0
  229. package/Binaries/Python/javonet/core/handler/__pycache__/EnableNamespaceHandler.cpython-312.pyc +0 -0
  230. package/Binaries/Python/javonet/core/handler/__pycache__/EnableTypeHandler.cpython-312.pyc +0 -0
  231. package/Binaries/Python/javonet/core/handler/__pycache__/GetEnumItemHandler.cpython-312.pyc +0 -0
  232. package/Binaries/Python/javonet/core/handler/__pycache__/GetEnumNameHandler.cpython-312.pyc +0 -0
  233. package/Binaries/Python/javonet/core/handler/__pycache__/GetEnumValueHandler.cpython-312.pyc +0 -0
  234. package/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceFieldHandler.cpython-312.pyc +0 -0
  235. package/Binaries/Python/javonet/core/handler/__pycache__/GetStaticFieldHandler.cpython-312.pyc +0 -0
  236. package/Binaries/Python/javonet/core/handler/__pycache__/GetTypeHandler.cpython-312.pyc +0 -0
  237. package/Binaries/Python/javonet/core/handler/__pycache__/Handler.cpython-312.pyc +0 -0
  238. package/Binaries/Python/javonet/core/handler/__pycache__/HandlerDictionary.cpython-312.pyc +0 -0
  239. package/Binaries/Python/javonet/core/handler/__pycache__/InvokeInstanceMethodHandler.cpython-312.pyc +0 -0
  240. package/Binaries/Python/javonet/core/handler/__pycache__/InvokeStaticMethodHandler.cpython-312.pyc +0 -0
  241. package/Binaries/Python/javonet/core/handler/__pycache__/LoadLibraryHandler.cpython-312.pyc +0 -0
  242. package/Binaries/Python/javonet/core/handler/__pycache__/ResolveInstanceHandler.cpython-312.pyc +0 -0
  243. package/Binaries/Python/javonet/core/handler/__pycache__/SetInstanceFieldHandler.cpython-312.pyc +0 -0
  244. package/Binaries/Python/javonet/core/handler/__pycache__/SetStaticFieldHandler.cpython-312.pyc +0 -0
  245. package/Binaries/Python/javonet/core/handler/__pycache__/ValueHandler.cpython-312.pyc +0 -0
  246. package/Binaries/Python/javonet/core/handler/__pycache__/__init__.cpython-312.pyc +0 -0
  247. package/Binaries/Python/javonet/core/interpreter/Interpreter.py +13 -17
  248. package/Binaries/Python/javonet/core/interpreter/__pycache__/Interpreter.cpython-312.pyc +0 -0
  249. package/Binaries/Python/javonet/core/interpreter/__pycache__/__init__.cpython-312.pyc +0 -0
  250. package/Binaries/Python/javonet/core/namespaceCache/__pycache__/NamespaceCache.cpython-312.pyc +0 -0
  251. package/Binaries/Python/javonet/core/namespaceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  252. package/Binaries/Python/javonet/core/protocol/CommandDeserializer.py +9 -9
  253. package/Binaries/Python/javonet/core/protocol/__pycache__/CommandDeserializer.cpython-312.pyc +0 -0
  254. package/Binaries/Python/javonet/core/protocol/__pycache__/CommandSerializer.cpython-312.pyc +0 -0
  255. package/Binaries/Python/javonet/core/protocol/__pycache__/TypeDeserializer.cpython-312.pyc +0 -0
  256. package/Binaries/Python/javonet/core/protocol/__pycache__/TypeSerializer.cpython-312.pyc +0 -0
  257. package/Binaries/Python/javonet/core/protocol/__pycache__/__init__.cpython-312.pyc +0 -0
  258. package/Binaries/Python/javonet/core/receiver/Receiver.py +6 -6
  259. package/Binaries/Python/javonet/core/receiver/__pycache__/Receiver.cpython-312.pyc +0 -0
  260. package/Binaries/Python/javonet/core/receiver/__pycache__/__init__.cpython-312.pyc +0 -0
  261. package/Binaries/Python/javonet/core/referenceCache/__pycache__/ReferencesCache.cpython-312.pyc +0 -0
  262. package/Binaries/Python/javonet/core/referenceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  263. package/Binaries/Python/javonet/core/transmitter/TransmitterWrapper.py +7 -1
  264. package/Binaries/Python/javonet/core/typeCache/__pycache__/TypeCache.cpython-312.pyc +0 -0
  265. package/Binaries/Python/javonet/core/typeCache/__pycache__/__init__.cpython-312.pyc +0 -0
  266. package/Binaries/Python/javonet/core/webSocketClient/WebSocketClient.py +0 -1
  267. package/Binaries/Python/javonet/utils/__pycache__/Command.cpython-312.pyc +0 -0
  268. package/Binaries/Python/javonet/utils/__pycache__/CommandType.cpython-312.pyc +0 -0
  269. package/Binaries/Python/javonet/utils/__pycache__/ConnectionType.cpython-312.pyc +0 -0
  270. package/Binaries/Python/javonet/utils/__pycache__/ExceptionType.cpython-312.pyc +0 -0
  271. package/Binaries/Python/javonet/utils/__pycache__/RuntimeName.cpython-312.pyc +0 -0
  272. package/Binaries/Python/javonet/utils/__pycache__/StringEncodingMode.cpython-312.pyc +0 -0
  273. package/Binaries/Python/javonet/utils/__pycache__/Type.cpython-312.pyc +0 -0
  274. package/Binaries/Python/javonet/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  275. package/Binaries/Python/javonet/utils/connectionData/__pycache__/IConnectionData.cpython-312.pyc +0 -0
  276. package/Binaries/Python/javonet/utils/connectionData/__pycache__/InMemoryConnectionData.cpython-312.pyc +0 -0
  277. package/Binaries/Python/javonet/utils/connectionData/__pycache__/__init__.cpython-312.pyc +0 -0
  278. package/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionSerializer.cpython-312.pyc +0 -0
  279. package/Binaries/Python/javonet/utils/exception/__pycache__/__init__.cpython-312.pyc +0 -0
  280. package/Binaries/Ruby/Linux/X64/core/interpreter/interpreter.rb +6 -10
  281. package/Binaries/Ruby/Linux/X64/core/protocol/command_deserializer.rb +2 -2
  282. package/Binaries/Ruby/Linux/X64/core/transmitter/transmitter.rb +4 -16
  283. package/Binaries/Ruby/Linux/X64/core/transmitter/transmitter_wrapper.rb +12 -1
  284. package/Binaries/Ruby/MacOs/X64/core/interpreter/interpreter.rb +6 -10
  285. package/Binaries/Ruby/MacOs/X64/core/protocol/command_deserializer.rb +2 -2
  286. package/Binaries/Ruby/MacOs/X64/core/transmitter/transmitter.rb +4 -16
  287. package/Binaries/Ruby/MacOs/X64/core/transmitter/transmitter_wrapper.rb +12 -1
  288. package/Binaries/Ruby/Windows/X64/core/interpreter/interpreter.rb +6 -10
  289. package/Binaries/Ruby/Windows/X64/core/protocol/command_deserializer.rb +2 -2
  290. package/Binaries/Ruby/Windows/X64/core/transmitter/transmitter.rb +4 -16
  291. package/Binaries/Ruby/Windows/X64/core/transmitter/transmitter_wrapper.rb +12 -1
  292. package/Binaries/version.txt +1 -1
  293. package/addon/JavonetNodejsRuntimeAddon.cpp +27 -7
  294. package/lib/core/interpreter/Interpreter.js +43 -24
  295. package/lib/core/protocol/CommandSerializer.js +7 -31
  296. package/lib/core/receiver/Receiver.js +6 -1
  297. package/lib/core/transmitter/Transmitter.js +2 -14
  298. package/lib/core/webSocketClient/WebSocketClient.js +133 -0
  299. package/lib/sdk/ConfigRuntimeFactory.js +16 -8
  300. package/lib/sdk/InvocationContext.js +104 -115
  301. package/lib/sdk/Javonet.js +20 -7
  302. package/lib/sdk/RuntimeContext.js +220 -215
  303. package/lib/sdk/RuntimeFactory.js +9 -10
  304. package/lib/sdk/tools/SdkExceptionHelper.js +1 -1
  305. package/lib/utils/ConnectionType.js +2 -1
  306. package/lib/utils/connectionData/IConnectionData.js +17 -0
  307. package/lib/utils/connectionData/InMemoryConnectionData.js +28 -0
  308. package/lib/utils/{TcpConnectionData.js → connectionData/TcpConnectionData.js} +26 -6
  309. package/lib/utils/connectionData/WsConnectionData.js +33 -0
  310. package/package.json +6 -3
  311. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scalar-List-Utils-1.66/install.json +0 -1
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Copyright (c) 1996, 1998, Oracle and/or its affiliates. All rights reserved.
3
+ * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
4
+ *
5
+ *
6
+ *
7
+ *
8
+ *
9
+ *
10
+ *
11
+ *
12
+ *
13
+ *
14
+ *
15
+ *
16
+ *
17
+ *
18
+ *
19
+ *
20
+ *
21
+ *
22
+ *
23
+ *
24
+ */
25
+
26
+ #ifndef _JAVASOFT_JNI_MD_H_
27
+ #define _JAVASOFT_JNI_MD_H_
28
+
29
+ #define JNIEXPORT __declspec(dllexport)
30
+ #define JNIIMPORT __declspec(dllimport)
31
+ #define JNICALL __stdcall
32
+
33
+ typedef long jint;
34
+ typedef __int64 jlong;
35
+ typedef signed char jbyte;
36
+
37
+ #endif /* !_JAVASOFT_JNI_MD_H_ */
@@ -1 +1 @@
1
- '2.5.0'
1
+ '2.5.2'
@@ -1 +1 @@
1
- '2.5.0'
1
+ '2.5.2'
@@ -10,36 +10,55 @@ let Receiver
10
10
  class Interpreter {
11
11
  handler = new Handler()
12
12
 
13
- execute(command, connectionType, tcpAddress) {
14
- let commandSerializer = new CommandSerializer()
15
- let byteMessage = commandSerializer.serialize(command,connectionType, tcpAddress)
16
- let responseByteArray
17
-
18
- if (command.runtimeName === Runtime.Nodejs && connectionType === ConnectionType.IN_MEMORY)
19
- {
20
- // lazy receiver loading
21
- if (!Receiver) {
22
- Receiver = require('../receiver/Receiver')
23
- }
24
- responseByteArray = Receiver.sendCommand(byteMessage)
13
+ async executeAsync(command, connectionData) {
14
+ try {
15
+ const messageByteArray = new CommandSerializer().serialize(command, connectionData)
16
+
17
+ if (connectionData.connectionType === ConnectionType.WEB_SOCKET) {
18
+ const { WebSocketClient } = require("../webSocketClient/WebSocketClient");
19
+ const wsClient = new WebSocketClient(connectionData.hostname, null)
25
20
 
21
+ const responseByteArray = await wsClient.send(messageByteArray)
22
+ return new CommandDeserializer(responseByteArray).deserialize()
23
+ }
24
+ else {
25
+ return this.execute(command, connectionData)
26
+ }
27
+ } catch (error) {
28
+ // TODO: handle error exception log?
26
29
  }
27
- else {
28
- // lazy transmitter loading
29
- if (!Transmitter) {
30
- Transmitter = require('../transmitter/Transmitter')
30
+ }
31
+
32
+ execute(command, connectionData) {
33
+ try {
34
+ let messageByteArray = new CommandSerializer().serialize(command, connectionData)
35
+ let responseByteArray
36
+
37
+ if (command.runtimeName === Runtime.Nodejs && connectionData.connectionType === ConnectionType.IN_MEMORY)
38
+ {
39
+ // lazy receiver loading
40
+ if (!Receiver) {
41
+ Receiver = require('../receiver/Receiver')
42
+ }
43
+ responseByteArray = Receiver.sendCommand(messageByteArray)
44
+
45
+ }
46
+ else {
47
+ // lazy transmitter loading
48
+ if (!Transmitter) {
49
+ Transmitter = require('../transmitter/Transmitter')
50
+ }
51
+ responseByteArray = Transmitter.sendCommand(messageByteArray)
31
52
  }
32
- responseByteArray = Transmitter.sendCommand(byteMessage)
53
+ return new CommandDeserializer(responseByteArray).deserialize()
54
+ } catch (error) {
55
+ // TODO: handle error exception log?
33
56
  }
34
- return new CommandDeserializer(responseByteArray).deserialize()
35
57
  }
36
58
 
37
- process(byteArray) {
38
- let commandDeserializer = new CommandDeserializer(byteArray)
39
- let receivedCommand = commandDeserializer.deserialize()
40
- let responseCommand = this.handler.handleCommand(receivedCommand)
41
- let commandSerializer = new CommandSerializer()
42
- return commandSerializer.serialize(responseCommand, ConnectionType.IN_MEMORY)
59
+ process(messageByteArray) {
60
+ let receivedCommand = new CommandDeserializer(messageByteArray).deserialize()
61
+ return this.handler.handleCommand(receivedCommand)
43
62
  }
44
63
  }
45
64
 
@@ -1,45 +1,21 @@
1
1
  const Command = require("../../utils/Command")
2
2
  const TypeEncoder = require('./TypeSerializer')
3
- const ConnectionType = require("../../utils/ConnectionType");
4
3
  const Runtime = require('../../utils/RuntimeName')
5
4
 
6
5
  class CommandSerializer {
7
6
  buffer = new Int8Array(2)
8
7
 
9
- serialize(command, connectionType, tcpConnectionData = null, runtimeVersion = 0) {
8
+
9
+ serialize(command, connectionData, runtimeVersion = 0) {
10
10
  let deque = [command]
11
11
  this.buffer[0] = command.runtimeName
12
12
  this.buffer[1] = runtimeVersion
13
- this.#insertIntoBuffer(this.#serialize_tcp(connectionType, tcpConnectionData))
13
+ this.#insertIntoBuffer(connectionData.serializeConnectionData())
14
14
  this.#insertIntoBuffer(new Int8Array([Runtime.Nodejs, command.commandType]))
15
- return this.#encodeRecursively(deque)
16
- }
17
-
18
- #serialize_tcp = function(connectionType, tcpConnectionData) {
19
- let encodedTcp = new Int8Array(7)
20
- encodedTcp[0] = connectionType
21
- if (connectionType === ConnectionType.IN_MEMORY || tcpConnectionData === null) {
22
- encodedTcp[1] = 0
23
- encodedTcp[2] = 0
24
- encodedTcp[3] = 0
25
- encodedTcp[4] = 0
26
- encodedTcp[5] = 0
27
- encodedTcp[6] = 0
28
- }
29
- else if (ConnectionType.TCP === connectionType) {
30
- let address = tcpConnectionData.getAddressBytes()
31
- let port = tcpConnectionData.getPortBytes()
32
- encodedTcp[1] = address[0]
33
- encodedTcp[2] = address[1]
34
- encodedTcp[3] = address[2]
35
- encodedTcp[4] = address[3]
36
- encodedTcp[5] = port[0]
37
- encodedTcp[6] = port[1]
38
- }
39
- return encodedTcp
15
+ return this.#serializeRecursively(deque)
40
16
  }
41
17
 
42
- #encodeRecursively = function(deque) {
18
+ #serializeRecursively = function(deque) {
43
19
  if (deque.length === 0) return this.buffer;
44
20
  let cmd = deque.pop()
45
21
  deque.push(cmd.dropFirstPayloadArg())
@@ -52,11 +28,11 @@ class CommandSerializer {
52
28
  let result = TypeEncoder.encodePrimitive(cmd.payload[0])
53
29
  this.#insertIntoBuffer(result)
54
30
  }
55
- return this.#encodeRecursively(deque)
31
+ return this.#serializeRecursively(deque)
56
32
  } else {
57
33
  deque.pop()
58
34
  }
59
- return this.#encodeRecursively(deque)
35
+ return this.#serializeRecursively(deque)
60
36
  }
61
37
 
62
38
  #insertIntoBuffer = function(arg) {
@@ -1,9 +1,14 @@
1
1
  const Interpreter = require('../interpreter/Interpreter')
2
+ const CommandSerializer = require("../protocol/CommandSerializer");
3
+ const InMemoryConnectionData = require("../../utils/connectionData/InMemoryConnectionData");
2
4
  const interpreter = new Interpreter()
3
5
 
4
6
  class Receiver {
7
+
8
+ static connectionData = new InMemoryConnectionData();
9
+
5
10
  static sendCommand(messageByteArray) {
6
- return interpreter.process(messageByteArray)
11
+ return new CommandSerializer().serialize(interpreter.process(messageByteArray), this.connectionData)
7
12
  }
8
13
  static heartBeat(messageByteArray) {
9
14
  let response = new Int8Array(2)
@@ -6,20 +6,8 @@ class Transmitter {
6
6
  return wrapper.sendCommand(messageArray)
7
7
  }
8
8
 
9
- static #activate = function(licenseKey = "", proxyHost = "", proxyUserName="", proxyUserPassword="") {
10
- return wrapper.activate(licenseKey, proxyHost, proxyUserName, proxyUserPassword)
11
- }
12
-
13
- static activateWithLicenseFile() {
14
- return this.#activate()
15
- }
16
-
17
- static activateWithCredentials(licenseKey) {
18
- return this.#activate(licenseKey)
19
- }
20
-
21
- static activateWithCredentialsAndProxy(licenseKey, proxyHost, proxyUserName, proxyUserPassword) {
22
- return this.#activate(licenseKey, proxyHost, proxyUserName, proxyUserPassword)
9
+ static activate = function(licenseKey = "") {
10
+ return wrapper.activate(licenseKey, "", "", "")
23
11
  }
24
12
 
25
13
  static setConfigSource(configSource) {
@@ -0,0 +1,133 @@
1
+ const WebSocket = require('ws');
2
+
3
+ /**
4
+ * Enum for WebSocket states.
5
+ * @readonly
6
+ * @enum {string}
7
+ */
8
+ const WebSocketStateEnum = {
9
+ OPEN: 'open',
10
+ CLOSE: 'close',
11
+ ERROR: 'error',
12
+ };
13
+
14
+ /**
15
+ * WebSocketClient class that handles WebSocket connection, message sending, and automatic disconnection.
16
+ */
17
+ class WebSocketClient {
18
+ /**
19
+ * @param {string} url
20
+ * @param {object} options
21
+ */
22
+ constructor(url, options) {
23
+ /**
24
+ * @type {string}
25
+ */
26
+ this.url = url;
27
+
28
+ /**
29
+ * @type {WebSocket | null}
30
+ */
31
+ this.instance = null;
32
+
33
+ /**
34
+ * @type {boolean} isConnected indicates whether the WebSocket is connected.
35
+ */
36
+ this.isConnected = false;
37
+
38
+ /**
39
+ * @type {boolean}
40
+ */
41
+ this.isDisconnectedAfterMessage = options?.isDisconnectedAfterMessage ?? false;
42
+ }
43
+
44
+ /**
45
+ * Sends data through websocket connection
46
+ * @async
47
+ * @param {Buffer|ArrayBuffer|Buffer[]} data
48
+ * @returns {Promise<Buffer|ArrayBuffer|Buffer[]>}
49
+ */
50
+ send(data) {
51
+ return new Promise((resolve, reject) => {
52
+ try {
53
+ if (this.isConnected) {
54
+ this._sendMessage(data, resolve, reject);
55
+ } else {
56
+ this._connect().then(() => {
57
+ this._sendMessage(data, resolve, reject);
58
+ });
59
+ }
60
+ } catch (error) {
61
+ reject(error);
62
+ }
63
+ });
64
+ }
65
+
66
+ /**
67
+ * Disconnects the WebSocket by terminating the connection.
68
+ */
69
+ disconnect() {
70
+ if (this.instance) {
71
+ this.instance.terminate();
72
+ }
73
+ this.isConnected = false;
74
+ }
75
+
76
+ /**
77
+ * Connects to the WebSocket server.
78
+ * @private
79
+ * @async
80
+ * @returns {Promise<void>} - A promise that resolves when the connection is established.
81
+ */
82
+ _connect() {
83
+ return new Promise((resolve, reject) => {
84
+ this.instance = new WebSocket(this.url);
85
+
86
+ this.instance.on(WebSocketStateEnum.OPEN, () => {
87
+ console.log('[WebSocketClient] connected');
88
+ this.isConnected = true;
89
+ resolve();
90
+ });
91
+
92
+ this.instance.on(WebSocketStateEnum.ERROR, (error) => {
93
+ console.log('[WebSocketClient] error', error);
94
+ reject(error);
95
+ });
96
+
97
+ this.instance.on(WebSocketStateEnum.CLOSE, () => {
98
+ console.log('[WebSocketClient] closed');
99
+ this.isConnected = false;
100
+ });
101
+ });
102
+ }
103
+
104
+ /**
105
+ * Sends the data to the WebSocket server and listens for a response.
106
+ * @private
107
+ * @async
108
+ * @param {string|Buffer|ArrayBuffer|Buffer[]} data - The data to send.
109
+ * @param {Function} resolve - The resolve function for the Promise.
110
+ * @param {Function} reject - The reject function for the Promise.
111
+ */
112
+ _sendMessage(data, resolve, reject) {
113
+ this.instance.send(data, (err) => {
114
+ if (err) {
115
+ reject(err);
116
+ }
117
+ });
118
+
119
+ this.instance.on('message', (message) => {
120
+ resolve(message);
121
+
122
+ if (this.isDisconnectedAfterMessage) {
123
+ this.disconnect();
124
+ }
125
+ });
126
+
127
+ this.instance.on('error', (error) => {
128
+ reject(error);
129
+ });
130
+ }
131
+ }
132
+
133
+ module.exports = { WebSocketClient }
@@ -1,4 +1,5 @@
1
1
  module.exports = {
2
2
  IN_MEMORY: 0,
3
- TCP: 1
3
+ TCP: 1,
4
+ WEB_SOCKET: 2
4
5
  }
@@ -0,0 +1,17 @@
1
+ const ConnectionType = require('../../utils/ConnectionType');
2
+
3
+ class IConnectionData {
4
+ get connectionType() {
5
+ throw new Error('You have to implement the method connectionType!');
6
+ }
7
+
8
+ get hostname() {
9
+ throw new Error('You have to implement the method hostname!');
10
+ }
11
+
12
+ serializeConnectionData() {
13
+ throw new Error('You have to implement the method serializeConnectionData!');
14
+ }
15
+ }
16
+
17
+ module.exports = IConnectionData;
@@ -0,0 +1,28 @@
1
+ const ConnectionType = require('../../utils/ConnectionType');
2
+ const IConnectionData = require('./IConnectionData');
3
+
4
+ class InMemoryConnectionData extends IConnectionData {
5
+ constructor() {
6
+ super();
7
+ this._connectionType = ConnectionType.IN_MEMORY;
8
+ this._hostname = ""
9
+ }
10
+
11
+ get connectionType() {
12
+ return this._connectionType;
13
+ }
14
+
15
+ get hostname() {
16
+ return this._hostname;
17
+ }
18
+
19
+ serializeConnectionData() {
20
+ return [this.connectionType, 0, 0, 0, 0, 0, 0];
21
+ }
22
+
23
+ equals(other) {
24
+ return other instanceof InMemoryConnectionData;
25
+ }
26
+ }
27
+
28
+ module.exports = InMemoryConnectionData;
@@ -1,9 +1,14 @@
1
1
  const dns = require('dns');
2
+ const ConnectionType = require('../../utils/ConnectionType');
3
+ const IConnectionData = require("./IConnectionData");
2
4
 
3
- class TcpConnectionData {
5
+ class TcpConnectionData extends IConnectionData{
4
6
 
5
7
  constructor(hostname, port) {
6
- this.port = port;
8
+ super();
9
+ this._port = port;
10
+ this._hostname = hostname;
11
+ this._connectionType = ConnectionType.TCP;
7
12
  if (hostname === "localhost") {
8
13
  this.ipAddress = "127.0.0.1";
9
14
  } else {
@@ -11,9 +16,17 @@ class TcpConnectionData {
11
16
  }
12
17
  }
13
18
 
19
+ get connectionType() {
20
+ return this._connectionType;
21
+ }
22
+
23
+ get hostname() {
24
+ return this._hostname;
25
+ }
26
+
14
27
  equals(other) {
15
28
  if (other instanceof TcpConnectionData) {
16
- return this.ipAddress === other.ipAddress && this.port === other.port;
29
+ return this.ipAddress === other.ipAddress && this._port === other._port;
17
30
  }
18
31
  return false;
19
32
  }
@@ -36,12 +49,19 @@ class TcpConnectionData {
36
49
  }
37
50
  }
38
51
 
39
- getAddressBytes() {
52
+ serializeConnectionData() {
53
+ let result = [this.connectionType];
54
+ result = result.concat(this.#getAddressBytes());
55
+ result = result.concat(this.#getPortBytes());
56
+ return result;
57
+ }
58
+
59
+ #getAddressBytes() {
40
60
  return this.ipAddress.split('.').map(Number);
41
61
  }
42
62
 
43
- getPortBytes() {
44
- return [this.port & 0xFF, this.port >> 8];
63
+ #getPortBytes() {
64
+ return [this._port & 0xFF, this._port >> 8];
45
65
  }
46
66
 
47
67
  }
@@ -0,0 +1,33 @@
1
+ const ConnectionType = require('../../utils/ConnectionType');
2
+ const IConnectionData = require('./IConnectionData');
3
+
4
+ class WsConnectionData extends IConnectionData {
5
+ constructor(hostname) {
6
+ super();
7
+ this._hostname = hostname;
8
+ this._connectionType = ConnectionType.WEB_SOCKET;
9
+ }
10
+
11
+ get connectionType() {
12
+ return this._connectionType;
13
+ }
14
+
15
+ get hostname() {
16
+ return this._hostname;
17
+ }
18
+
19
+ set hostname(value) {
20
+ this._hostname = value;
21
+ }
22
+
23
+ serializeConnectionData() {
24
+ return [this.connectionType, 0, 0, 0, 0, 0, 0];
25
+ }
26
+
27
+ equals(other) {
28
+ return other instanceof WsConnectionData && this._hostname === other.hostname;
29
+ }
30
+
31
+ }
32
+
33
+ module.exports = WsConnectionData;
@@ -1 +1 @@
1
- {"target":"Attribute::Abstract","version":"1.07","pathname":"D/DA/DANKOGAI/Attribute-Util-1.07.tar.gz","dist":"Attribute-Util-1.07","name":"Attribute::Util","provides":{"Attribute::Method":{"version":"1.04","file":"lib/Attribute/Method.pm"},"Attribute::Util":{"version":"1.07","file":"lib/Attribute/Util.pm"},"Attribute::SigHandler":{"file":"lib/Attribute/SigHandler.pm","version":"1.02"},"Attribute::Alias":{"version":"1.02","file":"lib/Attribute/Alias.pm"},"Attribute::Memoize":{"file":"lib/Attribute/Memoize.pm","version":"1.02"},"Attribute::Abstract":{"file":"lib/Attribute/Abstract.pm","version":"1.02"}}}
1
+ {"provides":{"Attribute::Util":{"version":"1.07","file":"lib/Attribute/Util.pm"},"Attribute::Memoize":{"version":"1.02","file":"lib/Attribute/Memoize.pm"},"Attribute::Alias":{"file":"lib/Attribute/Alias.pm","version":"1.02"},"Attribute::Abstract":{"version":"1.02","file":"lib/Attribute/Abstract.pm"},"Attribute::Method":{"version":"1.04","file":"lib/Attribute/Method.pm"},"Attribute::SigHandler":{"file":"lib/Attribute/SigHandler.pm","version":"1.02"}},"dist":"Attribute-Util-1.07","name":"Attribute::Util","version":"1.07","target":"Attribute::Abstract","pathname":"D/DA/DANKOGAI/Attribute-Util-1.07.tar.gz"}
@@ -1 +1 @@
1
- {"pathname":"D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz","dist":"Capture-Tiny-0.48","name":"Capture::Tiny","provides":{"Capture::Tiny":{"version":"0.48","file":"lib/Capture/Tiny.pm"}},"target":"Capture::Tiny","version":"0.48"}
1
+ {"provides":{"Capture::Tiny":{"file":"lib/Capture/Tiny.pm","version":"0.48"}},"dist":"Capture-Tiny-0.48","name":"Capture::Tiny","version":"0.48","target":"Capture::Tiny","pathname":"D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz"}
@@ -1 +1 @@
1
- {"name":"Class::Load","pathname":"E/ET/ETHER/Class-Load-0.25.tar.gz","dist":"Class-Load-0.25","provides":{"Class::Load::PP":{"version":"0.25","file":"lib/Class/Load/PP.pm"},"Class::Load":{"file":"lib/Class/Load.pm","version":"0.25"}},"target":"Class::Load","version":"0.25"}
1
+ {"provides":{"Class::Load::PP":{"version":"0.25","file":"lib/Class/Load/PP.pm"},"Class::Load":{"version":"0.25","file":"lib/Class/Load.pm"}},"target":"Class::Load","pathname":"E/ET/ETHER/Class-Load-0.25.tar.gz","dist":"Class-Load-0.25","name":"Class::Load","version":"0.25"}
@@ -1 +1 @@
1
- {"pathname":"E/ET/ETHER/Class-Load-XS-0.10.tar.gz","dist":"Class-Load-XS-0.10","name":"Class::Load::XS","provides":{"Class::Load::XS":{"version":"0.10","file":"lib/Class/Load/XS.pm"}},"target":"Class::Load::XS","version":"0.10"}
1
+ {"pathname":"E/ET/ETHER/Class-Load-XS-0.10.tar.gz","target":"Class::Load::XS","version":"0.10","name":"Class::Load::XS","dist":"Class-Load-XS-0.10","provides":{"Class::Load::XS":{"version":"0.10","file":"lib/Class/Load/XS.pm"}}}
@@ -1 +1 @@
1
- {"pathname":"A/AT/ATOOMIC/Clone-0.47.tar.gz","dist":"Clone-0.47","name":"Clone","provides":{"Clone":{"version":"0.47","file":"Clone.pm"}},"target":"Clone","version":"0.47"}
1
+ {"target":"Clone","pathname":"A/AT/ATOOMIC/Clone-0.47.tar.gz","name":"Clone","dist":"Clone-0.47","version":"0.47","provides":{"Clone":{"file":"Clone.pm","version":"0.47"}}}
@@ -1 +1 @@
1
- {"pathname":"P/PE/PERLANCAR/Data-Cmp-0.010.tar.gz","dist":"Data-Cmp-0.010","name":"Data::Cmp","provides":{"Data::Cmp::Numeric":{"version":"0.010","file":"lib/Data/Cmp/Numeric.pm"},"Data::Cmp::StrOrNumeric":{"file":"lib/Data/Cmp/StrOrNumeric.pm","version":"0.010"},"Data::Cmp":{"file":"lib/Data/Cmp.pm","version":"0.010"}},"target":"Data::Cmp","version":"0.010"}
1
+ {"provides":{"Data::Cmp":{"version":"0.010","file":"lib/Data/Cmp.pm"},"Data::Cmp::Numeric":{"version":"0.010","file":"lib/Data/Cmp/Numeric.pm"},"Data::Cmp::StrOrNumeric":{"file":"lib/Data/Cmp/StrOrNumeric.pm","version":"0.010"}},"dist":"Data-Cmp-0.010","name":"Data::Cmp","version":"0.010","target":"Data::Cmp","pathname":"P/PE/PERLANCAR/Data-Cmp-0.010.tar.gz"}
@@ -1 +1 @@
1
- {"dist":"Data-OptList-0.114","pathname":"R/RJ/RJBS/Data-OptList-0.114.tar.gz","name":"Data::OptList","provides":{"Data::OptList":{"version":"0.114","file":"lib/Data/OptList.pm"}},"target":"Data::OptList","version":"0.114"}
1
+ {"provides":{"Data::OptList":{"file":"lib/Data/OptList.pm","version":"0.114"}},"dist":"Data-OptList-0.114","name":"Data::OptList","version":"0.114","target":"Data::OptList","pathname":"R/RJ/RJBS/Data-OptList-0.114.tar.gz"}