javonet-ruby-sdk 2.6.4 → 2.6.5

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 (586) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/README.md +1 -1
  4. data/Rakefile +30 -30
  5. data/VERSION +1 -1
  6. data/javonet-ruby-sdk.gemspec +38 -38
  7. data/lib/javonet-ruby-sdk/Binaries/Jvm/JavonetJvmRuntime.jar +0 -0
  8. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libConfigs.so +0 -0
  9. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetActivationService.so +0 -0
  10. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetCppRuntimeNative.so +0 -0
  11. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetGoRuntimeNative.so +0 -0
  12. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetJvmRuntimeNative.so +0 -0
  13. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetNetcoreRuntimeNative.so +0 -0
  14. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPhpRuntimeNative.so +0 -0
  15. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPythonRuntimeNative.so +0 -0
  16. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetRubyRuntimeNative.so +0 -0
  17. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpClient.so +0 -0
  18. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpTlsClient.so +0 -0
  19. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libUtils.so +0 -0
  20. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/version.txt +1 -1
  21. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libConfigs.so +0 -0
  22. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  23. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  24. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  25. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  26. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  27. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs2218RuntimeNative.so +0 -0
  28. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  29. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerl534RuntimeNative.so +0 -0
  30. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  31. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPhp848RuntimeNative.so +0 -0
  32. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPhpRuntimeNative.so +0 -0
  33. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPython2RuntimeNative.so +0 -0
  34. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  35. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  36. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpClient.so +0 -0
  37. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpTlsClient.so +0 -0
  38. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libUtils.so +0 -0
  39. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/version.txt +1 -1
  40. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/NetVersion31LatestPatch.runtimeconfig.json +10 -0
  41. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/NetVersion60LatestPatch.runtimeconfig.json +10 -0
  42. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/NetVersion70LatestPatch.runtimeconfig.json +10 -0
  43. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/NetVersion80LatestPatch.runtimeconfig.json +10 -0
  44. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/NetVersion90LatestPatch.runtimeconfig.json +10 -0
  45. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/NetVersionLatest.runtimeconfig.json +10 -0
  46. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/dynamicCompilationHeaders/Linux/jni.h +1960 -0
  47. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/dynamicCompilationHeaders/Linux/jni_md.h +51 -0
  48. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/dynamicCompilationHeaders/MacOs/jni.h +1960 -0
  49. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/dynamicCompilationHeaders/MacOs/jni_md.h +51 -0
  50. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/dynamicCompilationHeaders/Windows/jni.h +1960 -0
  51. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/dynamicCompilationHeaders/Windows/jni_md.h +37 -0
  52. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libConfigs.dylib +0 -0
  53. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetActivationService.dylib +0 -0
  54. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetCppRuntimeNative.dylib +0 -0
  55. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetGoRuntimeNative.dylib +0 -0
  56. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetJvmRuntimeNative.dylib +0 -0
  57. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  58. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetPythonRuntimeNative.dylib +0 -0
  59. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetRubyRuntimeNative.dylib +0 -0
  60. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetTcpClient.dylib +0 -0
  61. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetTcpTlsClient.dylib +0 -0
  62. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libUtils.dylib +0 -0
  63. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libnethost.dylib +0 -0
  64. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/version.txt +1 -0
  65. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libConfigs.dylib +0 -0
  66. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  67. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  68. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  69. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  70. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  71. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejs2218RuntimeNative.dylib +0 -0
  72. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  73. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  74. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPhp848RuntimeNative.dylib +0 -0
  75. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPhpRuntimeNative.dylib +0 -0
  76. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  77. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  78. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpClient.dylib +0 -0
  79. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpTlsClient.dylib +0 -0
  80. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  81. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/version.txt +1 -1
  82. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Configs.dll +0 -0
  83. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetActivationService.dll +0 -0
  84. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetCppRuntimeNative.dll +0 -0
  85. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetGoRuntimeNative.dll +0 -0
  86. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetJvmRuntimeNative.dll +0 -0
  87. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetNetcoreRuntimeNative.dll +0 -0
  88. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPhpRuntimeNative.dll +0 -0
  89. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPythonRuntimeNative.dll +0 -0
  90. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRubyRuntimeNative.dll +0 -0
  91. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpClient.dll +0 -0
  92. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpTlsClient.dll +0 -0
  93. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Utils.dll +0 -0
  94. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/version.txt +0 -0
  95. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Configs.dll +0 -0
  96. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  97. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  98. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  99. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  100. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  101. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  102. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejs2218RuntimeNative.dll +0 -0
  103. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  104. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  105. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhp848RuntimeNative.dll +0 -0
  106. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhpRuntimeNative.dll +0 -0
  107. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPython2RuntimeNative.dll +0 -0
  108. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  109. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  110. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpClient.dll +0 -0
  111. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpTlsClient.dll +0 -0
  112. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Utils.dll +0 -0
  113. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/version.txt +1 -1
  114. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Configs.dll +0 -0
  115. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetActivationService.dll +0 -0
  116. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetClrRuntimeNative.dll +0 -0
  117. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetCppRuntimeNative.dll +0 -0
  118. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetGoRuntimeNative.dll +0 -0
  119. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetJvmRuntimeNative.dll +0 -0
  120. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetNetcoreRuntimeNative.dll +0 -0
  121. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPhpRuntimeNative.dll +0 -0
  122. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPython2RuntimeNative.dll +0 -0
  123. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPythonRuntimeNative.dll +0 -0
  124. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpClient.dll +0 -0
  125. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpTlsClient.dll +0 -0
  126. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Utils.dll +0 -0
  127. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/version.txt +1 -1
  128. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Core.dll +0 -0
  129. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Plugins.dll +0 -0
  130. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Utils.dll +0 -0
  131. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/Handler.cjs +15 -4
  132. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/LoadLibraryHandler.cjs +10 -6
  133. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/interpreter/Interpreter.cjs +42 -16
  134. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandDeserializer.cjs +4 -4
  135. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandSerializer.cjs +7 -2
  136. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/TypeDeserializer.cjs +11 -11
  137. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/receiver/Receiver.cjs +7 -8
  138. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/receiver/ReceiverNative.cjs +4 -2
  139. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/transmitter/Transmitter.cjs +2 -2
  140. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/transmitter/TransmitterWebsocket.cjs +2 -2
  141. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/transmitter/TransmitterWebsocketBrowser.cjs +2 -2
  142. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/transmitter/TransmitterWrapper.cjs +2 -1
  143. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/webSocketClient/WebSocketClient.cjs +4 -4
  144. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/webSocketClient/WebSocketClientBrowser.cjs +7 -7
  145. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/InvocationContext.cjs +47 -38
  146. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/tools/ComplexTypeResolver.cjs +28 -3
  147. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/Handler.d.ts +3 -3
  148. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/interpreter/Interpreter.d.ts +3 -3
  149. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/protocol/CommandDeserializer.d.ts +3 -3
  150. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/protocol/CommandSerializer.d.ts +3 -3
  151. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/protocol/TypeDeserializer.d.ts +22 -22
  152. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/receiver/Receiver.d.ts +6 -5
  153. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/receiver/ReceiverNative.d.ts +6 -4
  154. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/transmitter/Transmitter.d.ts +3 -3
  155. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/transmitter/TransmitterWebsocket.d.ts +3 -3
  156. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/transmitter/TransmitterWebsocketBrowser.d.ts +3 -3
  157. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/transmitter/TransmitterWrapper.d.ts +3 -2
  158. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/webSocketClient/WebSocketClient.d.ts +7 -7
  159. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/webSocketClient/WebSocketClientBrowser.d.ts +9 -9
  160. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/InvocationContext.d.ts +7 -11
  161. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/tools/ComplexTypeResolver.d.ts +2 -2
  162. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Cache.pm +1 -1
  163. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Document/File.pm +1 -1
  164. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Document/Fragment.pm +1 -1
  165. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Document/Normalized.pm +1 -1
  166. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Document.pm +1 -1
  167. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Dumper.pm +1 -1
  168. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Element.pm +1 -1
  169. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Exception/ParserRejection.pm +1 -1
  170. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Exception.pm +1 -1
  171. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Find.pm +1 -1
  172. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Lexer.pm +1 -1
  173. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Node.pm +1 -1
  174. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Normal/Standard.pm +1 -1
  175. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Normal.pm +1 -1
  176. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Singletons.pm +1 -1
  177. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Break.pm +1 -1
  178. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Compound.pm +2 -2
  179. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Data.pm +1 -1
  180. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/End.pm +1 -1
  181. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Expression.pm +1 -1
  182. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Given.pm +1 -1
  183. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Include/Perl6.pm +1 -1
  184. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Include.pm +1 -1
  185. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Null.pm +1 -1
  186. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Package.pm +1 -1
  187. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Scheduled.pm +1 -1
  188. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Sub.pm +1 -1
  189. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Unknown.pm +1 -1
  190. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/UnmatchedBrace.pm +1 -1
  191. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/Variable.pm +1 -1
  192. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement/When.pm +1 -1
  193. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Statement.pm +1 -1
  194. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/Block.pm +1 -1
  195. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/Condition.pm +1 -1
  196. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/Constructor.pm +1 -1
  197. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/For.pm +1 -1
  198. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/Given.pm +1 -1
  199. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/List.pm +1 -1
  200. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/Signature.pm +1 -1
  201. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/Subscript.pm +1 -1
  202. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/Unknown.pm +1 -1
  203. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure/When.pm +1 -1
  204. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Structure.pm +1 -1
  205. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/ArrayIndex.pm +1 -1
  206. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Attribute.pm +1 -1
  207. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/BOM.pm +1 -1
  208. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Cast.pm +1 -1
  209. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Comment.pm +1 -1
  210. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/DashedWord.pm +1 -1
  211. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Data.pm +1 -1
  212. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/End.pm +1 -1
  213. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/HereDoc.pm +1 -1
  214. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Label.pm +1 -1
  215. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Magic.pm +1 -1
  216. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Number/Binary.pm +1 -1
  217. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Number/Exp.pm +1 -1
  218. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Number/Float.pm +1 -1
  219. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Number/Hex.pm +1 -1
  220. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Number/Octal.pm +1 -1
  221. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Number/Version.pm +1 -1
  222. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Number.pm +1 -1
  223. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Operator.pm +1 -1
  224. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Pod.pm +1 -1
  225. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Prototype.pm +1 -1
  226. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Quote/Double.pm +1 -1
  227. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Quote/Interpolate.pm +1 -1
  228. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Quote/Literal.pm +1 -1
  229. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Quote/Single.pm +1 -1
  230. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Quote.pm +1 -1
  231. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/QuoteLike/Backtick.pm +1 -1
  232. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/QuoteLike/Command.pm +1 -1
  233. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/QuoteLike/Readline.pm +1 -1
  234. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/QuoteLike/Regexp.pm +1 -1
  235. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/QuoteLike/Words.pm +1 -1
  236. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/QuoteLike.pm +1 -1
  237. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Regexp/Match.pm +1 -1
  238. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Regexp/Substitute.pm +1 -1
  239. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Regexp/Transliterate.pm +1 -1
  240. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Regexp.pm +1 -1
  241. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Separator.pm +1 -1
  242. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Structure.pm +1 -1
  243. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Symbol.pm +1 -1
  244. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Unknown.pm +1 -1
  245. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Whitespace.pm +1 -1
  246. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/Word.pm +1 -1
  247. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/_QuoteEngine/Full.pm +1 -1
  248. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/_QuoteEngine/Simple.pm +1 -1
  249. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token/_QuoteEngine.pm +1 -1
  250. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Token.pm +1 -1
  251. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Tokenizer.pm +1 -1
  252. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Transform/UpdateCopyright.pm +1 -1
  253. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Transform.pm +1 -1
  254. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/Util.pm +1 -1
  255. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI/XSAccessor.pm +1 -1
  256. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/PPI.pm +5 -4
  257. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/Test/Fatal.pm +27 -19
  258. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  259. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  260. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  261. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  262. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  263. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  264. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  265. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  266. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  267. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/lib/libplfill.so +0 -0
  268. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +90 -90
  269. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-events.bat +0 -0
  270. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-highlight.bat +0 -0
  271. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-load-dump.bat +0 -0
  272. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-load.bat +0 -0
  273. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/bin/yamlpp-parse-emit.bat +0 -0
  274. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  275. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  276. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  277. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  278. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  279. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +39 -17
  280. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Cache.pm +1 -1
  281. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Document/File.pm +1 -1
  282. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Document/Fragment.pm +1 -1
  283. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Document/Normalized.pm +1 -1
  284. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Document.pm +1 -1
  285. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Dumper.pm +1 -1
  286. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Element.pm +1 -1
  287. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Exception/ParserRejection.pm +1 -1
  288. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Exception.pm +1 -1
  289. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Find.pm +1 -1
  290. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Lexer.pm +1 -1
  291. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Node.pm +1 -1
  292. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Normal/Standard.pm +1 -1
  293. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Normal.pm +1 -1
  294. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Singletons.pm +1 -1
  295. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Break.pm +1 -1
  296. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Compound.pm +2 -2
  297. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Data.pm +1 -1
  298. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/End.pm +1 -1
  299. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Expression.pm +1 -1
  300. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Given.pm +1 -1
  301. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Include/Perl6.pm +1 -1
  302. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Include.pm +1 -1
  303. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Null.pm +1 -1
  304. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Package.pm +1 -1
  305. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Scheduled.pm +1 -1
  306. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Sub.pm +1 -1
  307. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Unknown.pm +1 -1
  308. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/UnmatchedBrace.pm +1 -1
  309. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/Variable.pm +1 -1
  310. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement/When.pm +1 -1
  311. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Statement.pm +1 -1
  312. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/Block.pm +1 -1
  313. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/Condition.pm +1 -1
  314. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/Constructor.pm +1 -1
  315. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/For.pm +1 -1
  316. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/Given.pm +1 -1
  317. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/List.pm +1 -1
  318. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/Signature.pm +1 -1
  319. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/Subscript.pm +1 -1
  320. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/Unknown.pm +1 -1
  321. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure/When.pm +1 -1
  322. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Structure.pm +1 -1
  323. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/ArrayIndex.pm +1 -1
  324. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Attribute.pm +1 -1
  325. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/BOM.pm +1 -1
  326. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Cast.pm +1 -1
  327. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Comment.pm +1 -1
  328. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/DashedWord.pm +1 -1
  329. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Data.pm +1 -1
  330. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/End.pm +1 -1
  331. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/HereDoc.pm +1 -1
  332. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Label.pm +1 -1
  333. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Magic.pm +1 -1
  334. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Number/Binary.pm +1 -1
  335. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Number/Exp.pm +1 -1
  336. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Number/Float.pm +1 -1
  337. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Number/Hex.pm +1 -1
  338. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Number/Octal.pm +1 -1
  339. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Number/Version.pm +1 -1
  340. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Number.pm +1 -1
  341. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Operator.pm +1 -1
  342. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Pod.pm +1 -1
  343. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Prototype.pm +1 -1
  344. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Quote/Double.pm +1 -1
  345. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Quote/Interpolate.pm +1 -1
  346. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Quote/Literal.pm +1 -1
  347. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Quote/Single.pm +1 -1
  348. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Quote.pm +1 -1
  349. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/QuoteLike/Backtick.pm +1 -1
  350. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/QuoteLike/Command.pm +1 -1
  351. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/QuoteLike/Readline.pm +1 -1
  352. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/QuoteLike/Regexp.pm +1 -1
  353. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/QuoteLike/Words.pm +1 -1
  354. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/QuoteLike.pm +1 -1
  355. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Regexp/Match.pm +1 -1
  356. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Regexp/Substitute.pm +1 -1
  357. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Regexp/Transliterate.pm +1 -1
  358. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Regexp.pm +1 -1
  359. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Separator.pm +1 -1
  360. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Structure.pm +1 -1
  361. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Symbol.pm +1 -1
  362. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Unknown.pm +1 -1
  363. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Whitespace.pm +1 -1
  364. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/Word.pm +1 -1
  365. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/_QuoteEngine/Full.pm +1 -1
  366. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/_QuoteEngine/Simple.pm +1 -1
  367. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token/_QuoteEngine.pm +1 -1
  368. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Token.pm +1 -1
  369. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Tokenizer.pm +1 -1
  370. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Transform/UpdateCopyright.pm +1 -1
  371. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Transform.pm +1 -1
  372. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/Util.pm +1 -1
  373. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI/XSAccessor.pm +1 -1
  374. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/PPI.pm +5 -4
  375. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/Test/Fatal.pm +485 -0
  376. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/webSocketClient/WebSocketClient.php +436 -122
  377. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/__pycache__/__init__.cpython-312.pyc +0 -0
  378. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/DelegatesCache.cpython-312.pyc +0 -0
  379. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/__init__.cpython-312.pyc +0 -0
  380. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/GetGlobalFieldHandler.py +4 -1
  381. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/GetInstanceFieldHandler.py +3 -2
  382. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/GetInstanceMethodAsDelegateHandler.py +3 -2
  383. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/GetStaticFieldHandler.py +3 -2
  384. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/GetStaticMethodAsDelegateHandler.py +3 -2
  385. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/GetTypeHandler.py +41 -6
  386. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/InvokeGlobalFunctionHandler.py +4 -1
  387. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/InvokeInstanceMethodHandler.py +3 -2
  388. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/InvokeStaticMethodHandler.py +3 -2
  389. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/LoadLibraryHandler.py +4 -5
  390. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/SetInstanceFieldHandler.py +2 -1
  391. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/SetStaticFieldHandler.py +2 -1
  392. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractCommandHandler.cpython-312.pyc +0 -0
  393. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractHandler.cpython-312.pyc +0 -0
  394. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AddEventListenerHandler.cpython-312.pyc +0 -0
  395. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetItemHandler.cpython-312.pyc +0 -0
  396. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetRankHandler.cpython-312.pyc +0 -0
  397. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetSizeHandler.cpython-312.pyc +0 -0
  398. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayHandler.cpython-312.pyc +0 -0
  399. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayReferenceHandler.cpython-312.pyc +0 -0
  400. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArraySetItemHandler.cpython-312.pyc +0 -0
  401. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsOutHandler.cpython-312.pyc +0 -0
  402. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsRefHandler.cpython-312.pyc +0 -0
  403. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CastingHandler.cpython-312.pyc +0 -0
  404. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ConvertTypeHandler.cpython-312.pyc +0 -0
  405. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateClassInstanceHandler.cpython-312.pyc +0 -0
  406. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateNullHandler.cpython-312.pyc +0 -0
  407. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/DestructReferenceHandler.cpython-312.pyc +0 -0
  408. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableNamespaceHandler.cpython-312.pyc +0 -0
  409. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableTypeHandler.cpython-312.pyc +0 -0
  410. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ExceptionHandler.cpython-312.pyc +0 -0
  411. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GenerateLibHandler.cpython-312.pyc +0 -0
  412. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetAsyncOperationResultHandler.cpython-312.pyc +0 -0
  413. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumItemHandler.cpython-312.pyc +0 -0
  414. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumNameHandler.cpython-312.pyc +0 -0
  415. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumValueHandler.cpython-312.pyc +0 -0
  416. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetGlobalFieldHandler.cpython-312.pyc +0 -0
  417. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceFieldHandler.cpython-312.pyc +0 -0
  418. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceMethodAsDelegateHandler.cpython-312.pyc +0 -0
  419. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetKwargHandler.cpython-312.pyc +0 -0
  420. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetModuleHandler.cpython-312.pyc +0 -0
  421. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetRefValueHandler.cpython-312.pyc +0 -0
  422. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetResultTypeHandler.cpython-312.pyc +0 -0
  423. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticFieldHandler.cpython-312.pyc +0 -0
  424. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticMethodAsDelegateHandler.cpython-312.pyc +0 -0
  425. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetTypeHandler.cpython-312.pyc +0 -0
  426. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/Handler.cpython-312.pyc +0 -0
  427. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HandlerDictionary.cpython-312.pyc +0 -0
  428. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HeartBeatHandler.cpython-312.pyc +0 -0
  429. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeDelegateHandler.cpython-312.pyc +0 -0
  430. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericMethodHandler.cpython-312.pyc +0 -0
  431. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericStaticMethodHandler.cpython-312.pyc +0 -0
  432. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGlobalFunctionHandler.cpython-312.pyc +0 -0
  433. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeInstanceMethodHandler.cpython-312.pyc +0 -0
  434. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeStaticMethodHandler.cpython-312.pyc +0 -0
  435. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/LoadLibraryHandler.cpython-312.pyc +0 -0
  436. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/OptimizeHandler.cpython-312.pyc +0 -0
  437. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PassDelegateHandler.cpython-312.pyc +0 -0
  438. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PluginWrapperHandler.cpython-312.pyc +0 -0
  439. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ResolveInstanceHandler.cpython-312.pyc +0 -0
  440. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/RetrieveArrayHandler.cpython-312.pyc +0 -0
  441. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetInstanceFieldHandler.cpython-312.pyc +0 -0
  442. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetStaticFieldHandler.cpython-312.pyc +0 -0
  443. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ValueHandler.cpython-312.pyc +0 -0
  444. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/__init__.cpython-312.pyc +0 -0
  445. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/Interpreter.py +1 -1
  446. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/Interpreter.cpython-312.pyc +0 -0
  447. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/__init__.cpython-312.pyc +0 -0
  448. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/NamespaceCache.cpython-312.pyc +0 -0
  449. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  450. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandDeserializer.cpython-312.pyc +0 -0
  451. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandSerializer.cpython-312.pyc +0 -0
  452. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeDeserializer.cpython-312.pyc +0 -0
  453. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeSerializer.cpython-312.pyc +0 -0
  454. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/__init__.cpython-312.pyc +0 -0
  455. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/Receiver.py +2 -2
  456. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/Receiver.cpython-312.pyc +0 -0
  457. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/__init__.cpython-312.pyc +0 -0
  458. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/ReferencesCache.cpython-312.pyc +0 -0
  459. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  460. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/TypeCache.cpython-312.pyc +0 -0
  461. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/__init__.cpython-312.pyc +0 -0
  462. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/LazyModuleLoader.py +55 -0
  463. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Command.cpython-312.pyc +0 -0
  464. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/CommandType.cpython-312.pyc +0 -0
  465. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ConnectionType.cpython-312.pyc +0 -0
  466. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ExceptionType.cpython-312.pyc +0 -0
  467. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/LazyModuleLoader.cpython-312.pyc +0 -0
  468. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeLogger.cpython-312.pyc +0 -0
  469. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeName.cpython-312.pyc +0 -0
  470. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/StringEncodingMode.cpython-312.pyc +0 -0
  471. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Type.cpython-312.pyc +0 -0
  472. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/TypesHandler.cpython-312.pyc +0 -0
  473. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/UtilsConst.cpython-312.pyc +0 -0
  474. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  475. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/IConnectionData.cpython-312.pyc +0 -0
  476. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/InMemoryConnectionData.cpython-312.pyc +0 -0
  477. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/__init__.cpython-312.pyc +0 -0
  478. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionSerializer.cpython-312.pyc +0 -0
  479. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionThrower.cpython-312.pyc +0 -0
  480. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/JavonetException.cpython-312.pyc +0 -0
  481. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/__init__.cpython-312.pyc +0 -0
  482. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/MessageHelper.cpython-312.pyc +0 -0
  483. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/__init__.cpython-312.pyc +0 -0
  484. data/lib/javonet-ruby-sdk/Binaries/version.txt +1 -1
  485. data/lib/javonet-ruby-sdk/core/handler/abstract_command_handler.rb +23 -23
  486. data/lib/javonet-ruby-sdk/core/handler/abstract_handler.rb +4 -4
  487. data/lib/javonet-ruby-sdk/core/handler/add_event_listener_handler.rb +12 -12
  488. data/lib/javonet-ruby-sdk/core/handler/array_get_item_handler.rb +47 -47
  489. data/lib/javonet-ruby-sdk/core/handler/array_get_rank_handler.rb +22 -22
  490. data/lib/javonet-ruby-sdk/core/handler/array_get_size_handler.rb +36 -36
  491. data/lib/javonet-ruby-sdk/core/handler/array_handler.rb +12 -12
  492. data/lib/javonet-ruby-sdk/core/handler/array_reference_handler.rb +12 -12
  493. data/lib/javonet-ruby-sdk/core/handler/array_set_item_handler.rb +46 -46
  494. data/lib/javonet-ruby-sdk/core/handler/as_kwargs_handler.rb +12 -12
  495. data/lib/javonet-ruby-sdk/core/handler/as_out_handler.rb +12 -12
  496. data/lib/javonet-ruby-sdk/core/handler/as_ref_handler.rb +11 -11
  497. data/lib/javonet-ruby-sdk/core/handler/casting_handler.rb +11 -11
  498. data/lib/javonet-ruby-sdk/core/handler/convert_type_handler.rb +11 -11
  499. data/lib/javonet-ruby-sdk/core/handler/create_class_instance_handler.rb +34 -34
  500. data/lib/javonet-ruby-sdk/core/handler/create_null_handler.rb +12 -12
  501. data/lib/javonet-ruby-sdk/core/handler/destruct_reference_handler.rb +20 -20
  502. data/lib/javonet-ruby-sdk/core/handler/enable_namespace_handler.rb +30 -30
  503. data/lib/javonet-ruby-sdk/core/handler/enable_type_handler.rb +32 -32
  504. data/lib/javonet-ruby-sdk/core/handler/exception_handler.rb +12 -12
  505. data/lib/javonet-ruby-sdk/core/handler/generate_lib_handler.rb +12 -12
  506. data/lib/javonet-ruby-sdk/core/handler/get_async_operation_result_handler.rb +12 -12
  507. data/lib/javonet-ruby-sdk/core/handler/get_enum_item_handler.rb +12 -12
  508. data/lib/javonet-ruby-sdk/core/handler/get_enum_name_handler.rb +12 -12
  509. data/lib/javonet-ruby-sdk/core/handler/get_enum_value_handler.rb +12 -12
  510. data/lib/javonet-ruby-sdk/core/handler/get_global_field_handler.rb +11 -11
  511. data/lib/javonet-ruby-sdk/core/handler/get_instance_field_handler.rb +34 -34
  512. data/lib/javonet-ruby-sdk/core/handler/get_instance_method_as_delegate_handler.rb +11 -11
  513. data/lib/javonet-ruby-sdk/core/handler/get_module_handler.rb +11 -11
  514. data/lib/javonet-ruby-sdk/core/handler/get_ref_value_handler.rb +11 -11
  515. data/lib/javonet-ruby-sdk/core/handler/get_result_type_handler.rb +12 -12
  516. data/lib/javonet-ruby-sdk/core/handler/get_static_field_handler.rb +34 -34
  517. data/lib/javonet-ruby-sdk/core/handler/get_static_method_as_delegate_handler.rb +11 -11
  518. data/lib/javonet-ruby-sdk/core/handler/get_type_handler.rb +70 -70
  519. data/lib/javonet-ruby-sdk/core/handler/handler.rb +184 -183
  520. data/lib/javonet-ruby-sdk/core/handler/handler_dictionary.rb +7 -7
  521. data/lib/javonet-ruby-sdk/core/handler/heartbeat_handler.rb +12 -12
  522. data/lib/javonet-ruby-sdk/core/handler/invoke_delegate_handler.rb +12 -12
  523. data/lib/javonet-ruby-sdk/core/handler/invoke_generic_method_handler.rb +11 -11
  524. data/lib/javonet-ruby-sdk/core/handler/invoke_generic_static_method_handler.rb +12 -12
  525. data/lib/javonet-ruby-sdk/core/handler/invoke_global_function_handler.rb +45 -45
  526. data/lib/javonet-ruby-sdk/core/handler/invoke_instance_method_handler.rb +35 -35
  527. data/lib/javonet-ruby-sdk/core/handler/invoke_static_method_handler.rb +38 -38
  528. data/lib/javonet-ruby-sdk/core/handler/load_library_handler.rb +36 -36
  529. data/lib/javonet-ruby-sdk/core/handler/optimize_handler.rb +12 -12
  530. data/lib/javonet-ruby-sdk/core/handler/pass_delegate_handler.rb +11 -11
  531. data/lib/javonet-ruby-sdk/core/handler/plugin_wrapper_handler.rb +12 -12
  532. data/lib/javonet-ruby-sdk/core/handler/resolve_instance_handler.rb +29 -29
  533. data/lib/javonet-ruby-sdk/core/handler/retrieve_array_handler.rb +12 -12
  534. data/lib/javonet-ruby-sdk/core/handler/set_instance_field_handler.rb +35 -35
  535. data/lib/javonet-ruby-sdk/core/handler/set_static_field_handler.rb +31 -31
  536. data/lib/javonet-ruby-sdk/core/handler/value_handler.rb +6 -6
  537. data/lib/javonet-ruby-sdk/core/interpreter/interpreter.rb +28 -28
  538. data/lib/javonet-ruby-sdk/core/namespace_cache/namespace_cache.rb +42 -42
  539. data/lib/javonet-ruby-sdk/core/protocol/command_deserializer.rb +184 -182
  540. data/lib/javonet-ruby-sdk/core/protocol/command_serializer.rb +36 -39
  541. data/lib/javonet-ruby-sdk/core/protocol/type_deserializer.rb +65 -126
  542. data/lib/javonet-ruby-sdk/core/protocol/type_serializer.rb +120 -260
  543. data/lib/javonet-ruby-sdk/core/receiver/receiver_new.rb +42 -42
  544. data/lib/javonet-ruby-sdk/core/reference_cache/references_cache.rb +39 -39
  545. data/lib/javonet-ruby-sdk/core/transmitter/transmitter.rb +58 -58
  546. data/lib/javonet-ruby-sdk/core/transmitter/transmitter_wrapper.rb +31 -31
  547. data/lib/javonet-ruby-sdk/core/type_cache/type_cache.rb +41 -41
  548. data/lib/javonet-ruby-sdk/core/web_socket_client/web_socket_client.rb +228 -108
  549. data/lib/javonet-ruby-sdk/sdk/config_runtime_factory.rb +124 -124
  550. data/lib/javonet-ruby-sdk/sdk/internal/abstract_config_runtime_factory.rb +33 -33
  551. data/lib/javonet-ruby-sdk/sdk/internal/abstract_invocation_context.rb +70 -70
  552. data/lib/javonet-ruby-sdk/sdk/internal/abstract_runtime_context.rb +10 -10
  553. data/lib/javonet-ruby-sdk/sdk/internal/abstract_runtime_factory.rb +37 -37
  554. data/lib/javonet-ruby-sdk/sdk/internal/invocation_context_iterator.rb +27 -27
  555. data/lib/javonet-ruby-sdk/sdk/invocation_context.rb +319 -319
  556. data/lib/javonet-ruby-sdk/sdk/javonet.rb +106 -106
  557. data/lib/javonet-ruby-sdk/sdk/runtime_context.rb +218 -218
  558. data/lib/javonet-ruby-sdk/sdk/runtime_factory.rb +78 -78
  559. data/lib/javonet-ruby-sdk/sdk/tools/activation_helper.rb +37 -37
  560. data/lib/javonet-ruby-sdk/sdk/tools/json_file_resolver.rb +62 -62
  561. data/lib/javonet-ruby-sdk/sdk/tools/sdk_message_helper.rb +70 -70
  562. data/lib/javonet-ruby-sdk/utils/command.rb +93 -93
  563. data/lib/javonet-ruby-sdk/utils/command_type.rb +148 -148
  564. data/lib/javonet-ruby-sdk/utils/connection_type.rb +5 -5
  565. data/lib/javonet-ruby-sdk/utils/exceptions/exception_serializer.rb +117 -127
  566. data/lib/javonet-ruby-sdk/utils/exceptions/exception_thrower.rb +65 -65
  567. data/lib/javonet-ruby-sdk/utils/exceptions/exception_type.rb +10 -10
  568. data/lib/javonet-ruby-sdk/utils/os_helper.rb +21 -21
  569. data/lib/javonet-ruby-sdk/utils/runtime_logger.rb +43 -30
  570. data/lib/javonet-ruby-sdk/utils/runtime_name_handler.rb +40 -40
  571. data/lib/javonet-ruby-sdk/utils/runtime_name_javonet.rb +13 -13
  572. data/lib/javonet-ruby-sdk/utils/string_encoding_mode_javonet.rb +6 -6
  573. data/lib/javonet-ruby-sdk/utils/tcp_connection_data.rb +36 -36
  574. data/lib/javonet-ruby-sdk/utils/type.rb +15 -15
  575. data/lib/javonet-ruby-sdk/utils/types_handler.rb +10 -10
  576. data/lib/javonet-ruby-sdk/utils/ws_connection_data.rb +19 -19
  577. metadata +140 -24
  578. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetRubyOnLinuxRuntimeNative.so +0 -0
  579. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRubyOnLinuxRuntimeNative.so +0 -0
  580. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRubyOnLinuxRuntimeNative.dylib +0 -0
  581. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRuby278RuntimeNative.dll +0 -0
  582. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRuby278RuntimeNative.dll +0 -0
  583. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNativeAuxiliary.dll +0 -0
  584. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/x64-msvcrt-ruby270.dll +0 -0
  585. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/aliased.pm +0 -371
  586. data/lib/javonet-ruby-sdk/core/receiver/receiver.rb +0 -39
@@ -5,207 +5,521 @@ declare(strict_types=1);
5
5
  namespace core\webSocketClient;
6
6
 
7
7
  use RuntimeException;
8
- use utils\Uri;
8
+ use utils\Uri as URI;
9
9
 
10
10
  final class WebSocketClient
11
11
  {
12
- private const SECURE_PORT_NUMBER = 443;
12
+ private const SECURE_PORT_NUMBER = 443;
13
13
  private const UNSECURE_PORT_NUMBER = 80;
14
- private $socket;
14
+
15
+ /** @var resource|null */
16
+ private $socket = null;
17
+
15
18
  private URI $uri;
16
19
  private bool $connected = false;
20
+ private string $secKey;
17
21
 
18
- public function __construct(URI $uri)
19
- {
20
- $this->uri = $uri;
21
- $port = $this->getPort();
22
+ /** ---------- Static cache & helpers (mirror Ruby) ---------- */
22
23
 
23
- $this->socket = fsockopen($this->getUri(), $port, $errno, $errstr);
24
+ /** @var array<string,WebSocketClient> */
25
+ private static array $cache = [];
24
26
 
25
- if ($this->socket === false) {
26
- throw new RuntimeException(sprintf('Could not connect to %s : %d - %s (%s)', $uri->getHost(), $port, $errstr, $errno));
27
+ private static function uriKey(URI $uri): string
28
+ {
29
+ $scheme = strtolower($uri->getScheme());
30
+ $host = $uri->getHost();
31
+ $port = $uri->getPort();
32
+ $path = method_exists($uri, 'isEmptyPath') && $uri->isEmptyPath() ? '/' : $uri->getPath();
33
+ if ($path === null || $path === '') {
34
+ $path = '/';
27
35
  }
36
+ $query = method_exists($uri, 'getQuery') ? $uri->getQuery() : null;
28
37
 
29
- $this->connect();
38
+ $url = sprintf('%s://%s', $scheme, $host);
39
+ if ($port !== null) {
40
+ $url .= ':' . $port;
41
+ }
42
+ $url .= $path;
43
+ if ($query !== null && $query !== '') {
44
+ $url .= (strpos($url, '?') !== false ? '&' : '?') . $query;
45
+ }
46
+ return $url;
30
47
  }
31
48
 
32
- private function connect(): void
49
+ public static function addOrGetClient(URI $uri): WebSocketClient
33
50
  {
34
- $request = sprintf(
35
- "GET %s HTTP/1.1\r\n" .
36
- "Host: %s\r\n" .
37
- "Upgrade: websocket\r\n" .
38
- "Connection: Upgrade\r\n" .
39
- "Sec-WebSocket-Key: %s\r\n" .
40
- "Sec-WebSocket-Version: 13\r\n\r\n",
41
- $this->getPath(),
42
- $this->getHost(),
43
- $this->generateWebSocketKey()
44
- );
45
-
46
- fwrite($this->socket, ...unpack('C*',mb_convert_encoding($request, 'UTF-8')));
47
- fflush($this->socket);
48
-
49
- $response = fread($this->socket, 1024);
50
- if ($response === false) {
51
- fclose($this->socket);
52
- throw new RuntimeException('Response read error');
51
+ $key = self::uriKey($uri);
52
+ if (isset(self::$cache[$key]) && self::$cache[$key]->open()) {
53
+ return self::$cache[$key];
54
+ }
55
+ if (isset(self::$cache[$key])) {
56
+ self::$cache[$key]->close(true); // suppress close frame
53
57
  }
58
+ return self::$cache[$key] = new WebSocketClient($uri);
59
+ }
54
60
 
55
- if (strpos($response, '101 Switching Protocols') === false) {
56
- fclose($this->socket);
57
- throw new RuntimeException('Failed to upgrade to WebSocket');
61
+ /**
62
+ * Sends message (array of 0..255) and returns response bytes (array<int>).
63
+ * Reconnects once on broken/idle sockets by dropping the cached client
64
+ * WITHOUT sending a close frame (to avoid EPIPE).
65
+ */
66
+ public static function sendMessage(URI $uri, array $message): array
67
+ {
68
+ $client = self::addOrGetClient($uri);
69
+ try {
70
+ $client->sendByteArray($message);
71
+ $resp = $client->receiveByteArray();
72
+ if ($resp === null) {
73
+ throw new RuntimeException('No response');
74
+ }
75
+ return $resp;
76
+ } catch (\Throwable $e) {
77
+ self::closeClient($uri, true); // suppress close frame
78
+ $client = self::addOrGetClient($uri);
79
+ $client->sendByteArray($message);
80
+ $resp = $client->receiveByteArray();
81
+ if ($resp === null) {
82
+ throw new RuntimeException('No response after reconnect');
83
+ }
84
+ return $resp;
58
85
  }
86
+ }
59
87
 
60
- $this->connected = true;
88
+ public static function closeClient(URI $uri, bool $suppressCloseFrame = false): void
89
+ {
90
+ $key = self::uriKey($uri);
91
+ if (isset(self::$cache[$key])) {
92
+ self::$cache[$key]->close($suppressCloseFrame);
93
+ unset(self::$cache[$key]);
94
+ }
61
95
  }
62
96
 
63
- private function getPath(): string
97
+ /** Returns 'OPEN' | 'CLOSED' | null */
98
+ public static function getState(URI $uri): ?string
64
99
  {
65
- return $this->uri->isEmptyPath() ? '/' : $this->uri->getPath();
100
+ $key = self::uriKey($uri);
101
+ if (!isset(self::$cache[$key])) return null;
102
+ return self::$cache[$key]->open() ? 'OPEN' : 'CLOSED';
66
103
  }
67
104
 
68
- private function isSecureConnect(): bool
105
+ /** ---------- Instance ---------- */
106
+
107
+ public function __construct(URI $uri)
69
108
  {
70
- return strtolower($this->uri->getScheme()) === 'wss';
109
+ $this->uri = $uri;
110
+ $this->secKey = $this->generateWebSocketKey();
111
+
112
+ $this->socket = $this->openSocket();
113
+ $this->performHandshake();
114
+ $this->connected = true;
71
115
  }
72
116
 
73
- private function getPort(): int
117
+ public function __destruct()
74
118
  {
75
- return $this->uri->getPort() ?? $this->isSecureConnect() ? self::SECURE_PORT_NUMBER : self::UNSECURE_PORT_NUMBER;
119
+ $this->close();
76
120
  }
77
121
 
78
- private function getProtocol(): string
122
+ public function open(): bool
79
123
  {
80
- return $this->isSecureConnect() ? 'ssl' : 'tcp';
124
+ if (!is_resource($this->socket)) return false;
125
+ $meta = @stream_get_meta_data($this->socket);
126
+ return is_array($meta) && !$meta['eof'];
81
127
  }
82
128
 
83
- private function getHost(): string
129
+ /**
130
+ * @param bool $suppressCloseFrame when true, do not attempt to send CLOSE frame
131
+ */
132
+ public function close(bool $suppressCloseFrame = false): void
84
133
  {
85
- $host = $this->uri->getHost();
86
- if ($this->uri->isNotEmptyPort()) {
87
- return $host . ':' . $this->uri->getPort();
134
+ if (is_resource($this->socket)) {
135
+ if (!$suppressCloseFrame) {
136
+ // Try to send CLOSE frame (0x88 0x00); ignore failures
137
+ @fwrite($this->socket, "\x88\x00");
138
+ @fflush($this->socket);
139
+ }
140
+ $this->connected = false;
141
+ @stream_socket_shutdown($this->socket, STREAM_SHUT_RDWR);
142
+ @fclose($this->socket);
88
143
  }
89
-
90
- return $host;
144
+ $this->socket = null;
91
145
  }
92
146
 
93
- private function getUri(): string
147
+ /** ---------- Core I/O ---------- */
148
+
149
+ /** Send a binary message from an array of bytes (0..255) */
150
+ private function sendByteArray(array $message): void
94
151
  {
95
- return $this->getProtocol() . '://' . $this->uri->getHost();
152
+ if (!$this->open()) {
153
+ throw new RuntimeException('Socket not open');
154
+ }
155
+
156
+ // Ensure all items are 0..255 ints
157
+ $normalized = [];
158
+ foreach ($message as $b) {
159
+ $normalized[] = (int)$b & 0xFF;
160
+ }
161
+
162
+ $payload = pack('C*', ...$normalized);
163
+ $frame = $this->buildClientBinaryFrame($payload);
164
+
165
+ $this->writeAll($frame);
96
166
  }
97
167
 
98
- private function generateWebSocketKey(): string
168
+ /**
169
+ * Receive a single complete message as array<int>. Returns null on timeout/close.
170
+ * Handles fragmentation and control frames (ping/pong/close).
171
+ */
172
+ private function receiveByteArray(int $timeoutSec = 5): ?array
99
173
  {
100
- return base64_encode(random_bytes(16));
174
+ $deadline = microtime(true) + $timeoutSec;
175
+ $messagePayload = '';
176
+
177
+ while (true) {
178
+ $remaining = $deadline - microtime(true);
179
+ if ($remaining <= 0) return null;
180
+
181
+ $read = [$this->socket];
182
+ $write = $except = [];
183
+ $sec = (int)$remaining;
184
+ $usec = (int)(($remaining - $sec) * 1_000_000);
185
+ $n = @stream_select($read, $write, $except, $sec, $usec);
186
+ if ($n === false) {
187
+ return null;
188
+ }
189
+ if ($n === 0) {
190
+ continue;
191
+ }
192
+
193
+ $frame = $this->readFrame();
194
+ if ($frame === null) {
195
+ return null; // peer closed
196
+ }
197
+
198
+ $opcode = $frame['opcode'];
199
+ $fin = $frame['fin'];
200
+ $data = $frame['payload'];
201
+
202
+ switch ($opcode) {
203
+ case 0x1: // text
204
+ case 0x2: // binary
205
+ case 0x0: // continuation
206
+ $messagePayload .= $data;
207
+ if ($fin) {
208
+ return array_values(unpack('C*', $messagePayload));
209
+ }
210
+ break;
211
+
212
+ case 0x8: // close
213
+ $this->safeSendClose();
214
+ return null;
215
+
216
+ case 0x9: // ping
217
+ $this->safeSendPong($data);
218
+ break;
219
+
220
+ case 0xA: // pong
221
+ // ignore
222
+ break;
223
+
224
+ default:
225
+ // ignore unknown opcode
226
+ break;
227
+ }
228
+ }
101
229
  }
102
230
 
103
- public static function sendMessage(URI $uri, array $message): array
231
+ /** ---------- Handshake & framing ---------- */
232
+
233
+ private function performHandshake(): void
104
234
  {
105
- $client = new WebSocketClient($uri);
106
- try {
107
- if (!$client->connected) {
108
- throw new RuntimeException('WebSocket is not connected');
109
- }
110
- $client->sendByteArray($message);
235
+ $path = $this->getPathWithQuery();
236
+ $hostHeader = $this->hostWithPort();
237
+
238
+ $request =
239
+ "GET {$path} HTTP/1.1\r\n" .
240
+ "Host: {$hostHeader}\r\n" .
241
+ "Upgrade: websocket\r\n" .
242
+ "Connection: Upgrade\r\n" .
243
+ "Sec-WebSocket-Key: {$this->secKey}\r\n" .
244
+ "Sec-WebSocket-Version: 13\r\n\r\n";
245
+
246
+ $this->writeAll($request);
111
247
 
112
- return $client->receiveByteArray();
113
- } finally {
114
- $client->close();
248
+ // Read HTTP response headers
249
+ $headers = $this->readHttpHeaders(8192, 5);
250
+ if ($headers === null) {
251
+ throw new RuntimeException('Handshake timeout');
252
+ }
253
+ if (!preg_match('#^HTTP/1\.[01]\s+101#i', $headers)) {
254
+ throw new RuntimeException('Failed to upgrade to WebSocket: ' . strtok($headers, "\r\n"));
255
+ }
256
+
257
+ // Validate Sec-WebSocket-Accept
258
+ if (!preg_match('/Sec-WebSocket-Accept:\s*(.+)\r?$/mi', $headers, $m)) {
259
+ throw new RuntimeException('Missing Sec-WebSocket-Accept');
260
+ }
261
+ $accept = trim($m[1]);
262
+ $expected = base64_encode(sha1($this->secKey . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11', true));
263
+ if (!hash_equals($expected, $accept)) {
264
+ throw new RuntimeException('Invalid Sec-WebSocket-Accept');
115
265
  }
116
266
  }
117
267
 
118
- private function sendByteArray(array $message): void
268
+ /** Build a masked client binary frame (handles any length) */
269
+ private function buildClientBinaryFrame(string $payload): string
119
270
  {
120
- $length = count($message);
121
- $mask = [];
122
- for ($i = 0; $i < 4; $i++) {
123
- $mask[] = rand(0, 255);
271
+ $finOpcode = chr(0x80 | 0x2); // FIN + binary
272
+ $maskBit = 0x80;
273
+
274
+ $len = strlen($payload);
275
+ $header = $finOpcode;
276
+
277
+ $mask = random_bytes(4);
278
+
279
+ if ($len < 126) {
280
+ $header .= chr($maskBit | $len);
281
+ } elseif ($len <= 0xFFFF) {
282
+ $header .= chr($maskBit | 126) . pack('n', $len);
283
+ } else {
284
+ // 64-bit network byte order using two 32-bit words
285
+ $hi = (int) (($len & 0xFFFFFFFF00000000) >> 32);
286
+ $lo = (int) ($len & 0x00000000FFFFFFFF);
287
+ $header .= chr($maskBit | 127) . pack('N2', $hi, $lo);
124
288
  }
125
289
 
126
- $frame[0] = 0x82;
127
- $frame[1] = 0x80 | $length;
290
+ // Mask the payload: repeat 4-byte mask and XOR
291
+ $repeat = (int)ceil($len / 4);
292
+ $masked = $payload ^ str_repeat($mask, $repeat);
293
+
294
+ return $header . $mask . substr($masked, 0, $len);
295
+ }
128
296
 
129
- for ($i = 0; $i < 4; $i++) {
130
- $frame[2 + $i] = $mask[$i];
297
+ /**
298
+ * Reads a single frame (may be control or data). Returns:
299
+ * ['fin'=>bool,'opcode'=>int,'payload'=>string] or null on EOF.
300
+ */
301
+ private function readFrame(): ?array
302
+ {
303
+ $h = $this->readExact(2);
304
+ if ($h === null) return null;
305
+
306
+ $arr = unpack('C2', $h);
307
+ $b1 = $arr[1];
308
+ $b2 = $arr[2];
309
+
310
+ $fin = (bool)($b1 & 0x80);
311
+ $opcode = $b1 & 0x0F;
312
+ $masked = (bool)($b2 & 0x80);
313
+ $len = ($b2 & 0x7F);
314
+
315
+ if ($len === 126) {
316
+ $ext = $this->readExact(2);
317
+ if ($ext === null) return null;
318
+ $len = current(unpack('n', $ext));
319
+ } elseif ($len === 127) {
320
+ $ext = $this->readExact(8);
321
+ if ($ext === null) return null;
322
+ $parts = unpack('N2', $ext);
323
+ $hi = $parts[1];
324
+ $lo = $parts[2];
325
+ $len = ($hi << 32) | $lo;
326
+ }
327
+
328
+ $maskKey = '';
329
+ if ($masked) {
330
+ // Servers should not mask; handle defensively
331
+ $maskKey = $this->readExact(4);
332
+ if ($maskKey === null) return null;
131
333
  }
132
334
 
133
- for ($i = 0; $i < $length; $i++) {
134
- $frame[6 + $i] = $message[$i] ^ $mask[$i % 4];
335
+ $payload = ($len > 0) ? ($this->readExact($len) ?? '') : '';
336
+ if ($payload === '' && $len > 0) return null;
337
+
338
+ if ($masked) {
339
+ $repeat = (int)ceil($len / 4);
340
+ $payload = $payload ^ str_repeat($maskKey, $repeat);
341
+ $payload = substr($payload, 0, $len);
135
342
  }
136
343
 
137
- fwrite($this->socket, ...$frame);
138
- fflush($this->socket);
344
+ return ['fin' => $fin, 'opcode' => $opcode, 'payload' => $payload];
139
345
  }
140
346
 
141
- private function receiveByteArray(): array
347
+ /** ---------- Low-level utilities ---------- */
348
+
349
+ /** Open TCP/SSL socket; port taken from URI or defaulted by scheme like Ruby */
350
+ private function openSocket()
142
351
  {
143
- $header = fread($this->socket, 2);
144
- if (strlen($header) !== 2) {
145
- throw new \RuntimeException('Failed to read WebSocket frame header');
352
+ $host = $this->uri->getHost();
353
+ $port = $this->resolvePort();
354
+ $scheme = $this->isSecure() ? 'ssl' : 'tcp';
355
+
356
+ // Always create a context (PHP 7.4 requires a resource, not null)
357
+ $opts = [];
358
+ if ($this->isSecure()) {
359
+ $opts = [
360
+ 'ssl' => [
361
+ // For production, set verify_peer => true and provide a CA bundle.
362
+ 'verify_peer' => false,
363
+ 'verify_peer_name' => false,
364
+ 'allow_self_signed' => true,
365
+
366
+ // SNI
367
+ 'peer_name' => $host,
368
+ 'SNI_enabled' => true,
369
+ ],
370
+ ];
146
371
  }
372
+ $ctx = stream_context_create($opts);
373
+
374
+ $remote = sprintf('%s://%s:%d', $scheme, $host, $port);
375
+ $errNo = 0;
376
+ $errStr = '';
377
+
378
+ $socket = @stream_socket_client(
379
+ $remote,
380
+ $errNo,
381
+ $errStr,
382
+ 5.0, // connect timeout (sec)
383
+ STREAM_CLIENT_CONNECT,
384
+ $ctx // <- always a resource
385
+ );
147
386
 
148
- $headerBytes = unpack('C*', $header);
149
- $isMasked = ($headerBytes[1] & 0x80) !== 0;
150
- $payloadLength = $headerBytes[1] & 0x7F;
387
+ if ($socket === false) {
388
+ throw new \RuntimeException(sprintf('Could not connect to %s:%d - %s (%d)', $host, $port, $errStr, $errNo));
389
+ }
151
390
 
152
- if ($payloadLength === 126) {
153
- $extendedPayloadLength = fread($this->socket, 2);
154
- if (strlen($extendedPayloadLength) !== 2) {
155
- throw new \RuntimeException('Failed to read extended payload length');
156
- }
157
- $extendedPayloadLengthBytes = unpack('C*', $extendedPayloadLength);
158
- $payloadLength = (($extendedPayloadLengthBytes[0] & 0xFF) << 8) | ($extendedPayloadLengthBytes[1] & 0xFF);
159
- } elseif ($payloadLength === 127) {
160
- $extendedPayloadLength = fread($this->socket, 8);
161
- if (strlen($extendedPayloadLength) !== 8) {
162
- throw new \RuntimeException('Failed to read extended payload length');
163
- }
164
- $extendedPayloadLengthBytes = unpack('C*', $extendedPayloadLength);
165
- $payloadLength = 0;
166
- for ($i = 0; $i < 8; $i++) {
167
- $payloadLength = ($payloadLength << 8) | ($extendedPayloadLengthBytes[$i] & 0xFF);
391
+ stream_set_blocking($socket, true);
392
+ stream_set_timeout($socket, 5);
393
+ return $socket;
394
+ }
395
+
396
+ private function readHttpHeaders(int $maxBytes, int $timeoutSec): ?string
397
+ {
398
+ $deadline = microtime(true) + $timeoutSec;
399
+ $buf = '';
400
+ while (strlen($buf) < $maxBytes) {
401
+ $remaining = $deadline - microtime(true);
402
+ if ($remaining <= 0) return null;
403
+
404
+ $read = [$this->socket];
405
+ $write = $except = [];
406
+ $sec = (int)$remaining;
407
+ $usec = (int)(($remaining - $sec) * 1_000_000);
408
+ $n = @stream_select($read, $write, $except, $sec, $usec);
409
+ if ($n === false) return null;
410
+ if ($n === 0) continue;
411
+
412
+ $chunk = @fread($this->socket, 1024);
413
+ if ($chunk === '' || $chunk === false) break;
414
+ $buf .= $chunk;
415
+
416
+ if (strpos($buf, "\r\n\r\n") !== false) {
417
+ return $buf;
168
418
  }
169
419
  }
420
+ return null;
421
+ }
170
422
 
171
- $mask = [];
172
- if ($isMasked) {
173
- $maskBytes = fread($this->socket, 4);
174
- if (strlen($maskBytes) !== 4) {
175
- throw new \RuntimeException('Failed to read mask');
423
+ private function writeAll(string $data): void
424
+ {
425
+ $len = strlen($data);
426
+ $off = 0;
427
+ while ($off < $len) {
428
+ $w = @fwrite($this->socket, substr($data, $off));
429
+ if ($w === false || $w === 0) {
430
+ throw new RuntimeException('Write failed');
176
431
  }
177
- $mask = unpack('C*', $maskBytes);
432
+ $off += $w;
178
433
  }
434
+ @fflush($this->socket);
435
+ }
179
436
 
180
- $payloadBytes = fread($this->socket, $payloadLength);
181
- if (strlen($payloadBytes) !== $payloadLength) {
182
- throw new \RuntimeException('Failed to read payload');
437
+ private function readExact(int $len): ?string
438
+ {
439
+ $buf = '';
440
+ while (strlen($buf) < $len) {
441
+ $chunk = @fread($this->socket, $len - strlen($buf));
442
+ if ($chunk === false) return null;
443
+ if ($chunk === '') {
444
+ $meta = @stream_get_meta_data($this->socket);
445
+ if (!$meta || $meta['eof']) return null;
446
+ // brief wait
447
+ $r = [$this->socket]; $w = $e = [];
448
+ $n = @stream_select($r, $w, $e, 1, 0);
449
+ if ($n === 0) continue;
450
+ if ($n === false) return null;
451
+ continue;
452
+ }
453
+ $buf .= $chunk;
183
454
  }
455
+ return $buf;
456
+ }
184
457
 
185
- $payload = unpack('C*', $payloadBytes);
186
- if ($isMasked) {
187
- for ($i = 0; $i < $payloadLength; $i++) {
188
- $payload[$i] ^= $mask[$i % 4];
458
+ private function safeSendPong(string $payload): void
459
+ {
460
+ try {
461
+ $hdr = chr(0x80 | 0xA); // FIN + pong
462
+ $len = strlen($payload);
463
+ if ($len < 126) {
464
+ $hdr .= chr(0x00 | $len);
465
+ } elseif ($len <= 0xFFFF) {
466
+ $hdr .= chr(0x00 | 126) . pack('n', $len);
467
+ } else {
468
+ $hi = (int) (($len & 0xFFFFFFFF00000000) >> 32);
469
+ $lo = (int) ($len & 0x00000000FFFFFFFF);
470
+ $hdr .= chr(0x00 | 127) . pack('N2', $hi, $lo);
189
471
  }
472
+ $this->writeAll($hdr . $payload);
473
+ } catch (\Throwable $e) {
474
+ // ignore
190
475
  }
476
+ }
191
477
 
192
- return $payload;
478
+ private function safeSendClose(): void
479
+ {
480
+ try {
481
+ $this->writeAll("\x88\x00");
482
+ } catch (\Throwable $e) {
483
+ // ignore
484
+ }
193
485
  }
194
486
 
195
- public function __destruct()
487
+ /** ---------- URI helpers ---------- */
488
+
489
+ private function isSecure(): bool
196
490
  {
197
- $this->close();
491
+ return strtolower($this->uri->getScheme()) === 'wss';
198
492
  }
199
493
 
200
- public function close(): void
494
+ private function resolvePort(): int
201
495
  {
202
- if ($this->socket) {
203
- fwrite($this->socket, "\x88\x00");
204
- fflush($this->socket);
496
+ $p = $this->uri->getPort();
497
+ if ($p !== null) return $p;
498
+ return $this->isSecure() ? self::SECURE_PORT_NUMBER : self::UNSECURE_PORT_NUMBER;
499
+ }
205
500
 
206
- $this->connected = false;
501
+ private function hostWithPort(): string
502
+ {
503
+ $host = $this->uri->getHost();
504
+ $p = $this->uri->getPort();
505
+ return ($p !== null) ? ($host . ':' . $p) : $host;
506
+ }
507
+
508
+ private function getPathWithQuery(): string
509
+ {
510
+ $path = method_exists($this->uri, 'isEmptyPath') && $this->uri->isEmptyPath() ? '/' : $this->uri->getPath();
511
+ if ($path === null || $path === '') {
512
+ $path = '/';
513
+ }
514
+ $query = method_exists($this->uri, 'getQuery') ? $this->uri->getQuery() : null;
515
+ if ($query !== null && $query !== '') {
516
+ $path .= (strpos($path, '?') !== false ? '&' : '?') . $query;
207
517
  }
518
+ return $path;
519
+ }
208
520
 
209
- fclose($this->socket);
521
+ private function generateWebSocketKey(): string
522
+ {
523
+ return base64_encode(random_bytes(16));
210
524
  }
211
- }
525
+ }
@@ -9,6 +9,7 @@ from javonet.core.handler.AbstractCommandHandler import AbstractCommandHandler
9
9
  from javonet.core.handler.LoadLibraryHandler import LoadLibraryHandler
10
10
  from javonet.core.namespaceCache.NamespaceCache import NamespaceCache
11
11
  from javonet.core.typeCache.TypeCache import TypeCache
12
+ from javonet.utils.LazyModuleLoader import LazyModuleLoader
12
13
 
13
14
 
14
15
  class GetGlobalFieldHandler(AbstractCommandHandler):
@@ -27,7 +28,9 @@ class GetGlobalFieldHandler(AbstractCommandHandler):
27
28
  module_name, field_name = full_field_name.rsplit(".", 1)
28
29
 
29
30
  try:
30
- module = importlib.import_module(module_name)
31
+ module = LazyModuleLoader.get_module(module_name)
32
+ if module is None:
33
+ raise ImportError(f"Could not import module '{module_name}'.")
31
34
  except ImportError as e:
32
35
  raise ImportError(f"Could not import module '{module_name}'.") from e
33
36