javonet-ruby-sdk 2.6.7 → 2.6.10

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 (252) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/javonet-ruby-sdk/Binaries/Clr/Javonet.Clr.Utils.dll +0 -0
  4. data/lib/javonet-ruby-sdk/Binaries/Clr/JavonetClrRuntime.dll +0 -0
  5. data/lib/javonet-ruby-sdk/Binaries/Jvm/JavonetJvmRuntime.jar +0 -0
  6. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetActivationService.so +0 -0
  7. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetJvmRuntimeNative.so +0 -0
  8. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libUtils.so +0 -0
  9. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/version.txt +1 -1
  10. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  11. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  12. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs2218RuntimeNative.so +0 -0
  13. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libUtils.so +0 -0
  14. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/version.txt +1 -1
  15. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetActivationService.dylib +0 -0
  16. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libJavonetJvmRuntimeNative.dylib +0 -0
  17. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/libUtils.dylib +0 -0
  18. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/ARM64/version.txt +1 -1
  19. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  20. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  21. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejs2218RuntimeNative.dylib +0 -0
  22. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  23. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/version.txt +1 -1
  24. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Configs.dll +0 -0
  25. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetActivationService.dll +0 -0
  26. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetCppRuntimeNative.dll +0 -0
  27. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetGoRuntimeNative.dll +0 -0
  28. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetJvmRuntimeNative.dll +0 -0
  29. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetNetcoreRuntimeNative.dll +0 -0
  30. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPhpRuntimeNative.dll +0 -0
  31. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPythonRuntimeNative.dll +0 -0
  32. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRubyRuntimeNative.dll +0 -0
  33. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpClient.dll +0 -0
  34. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpTlsClient.dll +0 -0
  35. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Utils.dll +0 -0
  36. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/version.txt +0 -0
  37. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Configs.dll +0 -0
  38. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  39. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  40. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  41. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  42. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  43. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  44. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejs2218RuntimeNative.dll +0 -0
  45. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  46. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  47. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhp848RuntimeNative.dll +0 -0
  48. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhpRuntimeNative.dll +0 -0
  49. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPython2RuntimeNative.dll +0 -0
  50. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  51. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  52. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpClient.dll +0 -0
  53. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpTlsClient.dll +0 -0
  54. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Utils.dll +0 -0
  55. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/version.txt +1 -1
  56. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Configs.dll +0 -0
  57. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetActivationService.dll +0 -0
  58. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetClrRuntimeNative.dll +0 -0
  59. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetCppRuntimeNative.dll +0 -0
  60. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetGoRuntimeNative.dll +0 -0
  61. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetJvmRuntimeNative.dll +0 -0
  62. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetNetcoreRuntimeNative.dll +0 -0
  63. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPhpRuntimeNative.dll +0 -0
  64. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPython2RuntimeNative.dll +0 -0
  65. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPythonRuntimeNative.dll +0 -0
  66. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpClient.dll +0 -0
  67. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpTlsClient.dll +0 -0
  68. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Utils.dll +0 -0
  69. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/version.txt +1 -1
  70. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Core.dll +0 -0
  71. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Plugins.dll +0 -0
  72. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Utils.dll +0 -0
  73. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/Handler.cjs +51 -18
  74. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/InvokeInstanceMethodHandler.cjs +1 -1
  75. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/InvokeStaticMethodHandler.cjs +1 -1
  76. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/LoadLibraryHandler.cjs +15 -9
  77. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/PassDelegateHandler.cjs +2 -2
  78. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/RegisterForUpdateHandler.cjs +60 -0
  79. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/handler/ValueForUpdateHandler.cjs +36 -0
  80. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/interpreter/Interpreter.cjs +11 -33
  81. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/protocol/CommandSerializer.cjs +3 -8
  82. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/receiver/Receiver.cjs +6 -6
  83. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/Activator.cjs +44 -0
  84. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/ActivatorDetails.cjs +13 -3
  85. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/ConfigRuntimeFactory.cjs +9 -0
  86. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/InvocationContext.cjs +140 -62
  87. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/Javonet.cjs +3 -0
  88. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeContext.cjs +9 -9
  89. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/configuration/ConfigSourceResolver.cjs +43 -21
  90. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/tools/ComplexTypeResolver.cjs +84 -34
  91. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/Handler.d.ts +9 -1
  92. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/PassDelegateHandler.d.ts +2 -2
  93. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/RegisterForUpdateHandler.d.ts +17 -0
  94. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/handler/ValueForUpdateHandler.d.ts +7 -0
  95. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/interpreter/Interpreter.d.ts +2 -2
  96. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/protocol/CommandSerializer.d.ts +3 -3
  97. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/receiver/Receiver.d.ts +4 -4
  98. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/Activator.d.ts +12 -0
  99. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/ActivatorDetails.d.ts +5 -3
  100. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/ConfigRuntimeFactory.d.ts +7 -0
  101. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/InvocationContext.d.ts +20 -22
  102. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/Javonet.d.ts +2 -1
  103. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/RuntimeContext.d.ts +4 -3
  104. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/configuration/ConfigSourceResolver.d.ts +21 -4
  105. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/sdk/tools/ComplexTypeResolver.d.ts +21 -5
  106. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/utils/CommandType.d.ts +2 -0
  107. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/utils/Primitives.d.ts +5 -0
  108. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/utils/CommandType.cjs +3 -1
  109. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/utils/Primitives.cjs +201 -0
  110. 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
  111. 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
  112. 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
  113. 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
  114. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  115. 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
  116. 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
  117. 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
  118. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  119. 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
  120. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +86 -86
  121. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/LoadLibraryHandler.pm +108 -11
  122. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/RegisterForUpdateHandler.pm +29 -0
  123. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/PerlHandler.pm +16 -9
  124. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Core/PerlCommandType.pm +2 -1
  125. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  126. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  127. 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
  128. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  129. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  130. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +24 -24
  131. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Handler/CommandHandler/LoadLibraryHandler.pm +108 -11
  132. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Handler/CommandHandler/RegisterForUpdateHandler.pm +29 -0
  133. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Core/Handler/PerlHandler.pm +16 -9
  134. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Core/PerlCommandType.pm +2 -1
  135. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/handler/LoadLibraryHandler.php +56 -21
  136. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/interpreter/Interpreter.php +2 -2
  137. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/protocol/CommandDeserializer.php +219 -106
  138. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/core/protocol/CommandSerializer.php +55 -13
  139. data/lib/javonet-ruby-sdk/Binaries/Php/javonet/utils/Command.php +27 -9
  140. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/__pycache__/__init__.cpython-312.pyc +0 -0
  141. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/DelegatesCache.cpython-312.pyc +0 -0
  142. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/delegateCache/__pycache__/__init__.cpython-312.pyc +0 -0
  143. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/AsOutHandler.py +1 -1
  144. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/CreateClassInstanceHandler.py +0 -2
  145. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/GetTypeHandler.py +2 -2
  146. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/Handler.py +26 -1
  147. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/LoadLibraryHandler.py +54 -14
  148. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/RegisterForUpdateHandler.py +38 -0
  149. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/ValueForUpdateHandler.py +6 -0
  150. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractCommandHandler.cpython-312.pyc +0 -0
  151. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AbstractHandler.cpython-312.pyc +0 -0
  152. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AddEventListenerHandler.cpython-312.pyc +0 -0
  153. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetItemHandler.cpython-312.pyc +0 -0
  154. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetRankHandler.cpython-312.pyc +0 -0
  155. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayGetSizeHandler.cpython-312.pyc +0 -0
  156. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayHandler.cpython-312.pyc +0 -0
  157. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArrayReferenceHandler.cpython-312.pyc +0 -0
  158. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ArraySetItemHandler.cpython-312.pyc +0 -0
  159. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsOutHandler.cpython-312.pyc +0 -0
  160. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/AsRefHandler.cpython-312.pyc +0 -0
  161. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CastingHandler.cpython-312.pyc +0 -0
  162. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ConvertTypeHandler.cpython-312.pyc +0 -0
  163. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateClassInstanceHandler.cpython-312.pyc +0 -0
  164. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/CreateNullHandler.cpython-312.pyc +0 -0
  165. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/DestructReferenceHandler.cpython-312.pyc +0 -0
  166. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableNamespaceHandler.cpython-312.pyc +0 -0
  167. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/EnableTypeHandler.cpython-312.pyc +0 -0
  168. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ExceptionHandler.cpython-312.pyc +0 -0
  169. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GenerateLibHandler.cpython-312.pyc +0 -0
  170. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetAsyncOperationResultHandler.cpython-312.pyc +0 -0
  171. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumItemHandler.cpython-312.pyc +0 -0
  172. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumNameHandler.cpython-312.pyc +0 -0
  173. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetEnumValueHandler.cpython-312.pyc +0 -0
  174. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetGlobalFieldHandler.cpython-312.pyc +0 -0
  175. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceFieldHandler.cpython-312.pyc +0 -0
  176. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetInstanceMethodAsDelegateHandler.cpython-312.pyc +0 -0
  177. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetKwargHandler.cpython-312.pyc +0 -0
  178. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetModuleHandler.cpython-312.pyc +0 -0
  179. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetRefValueHandler.cpython-312.pyc +0 -0
  180. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetResultTypeHandler.cpython-312.pyc +0 -0
  181. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticFieldHandler.cpython-312.pyc +0 -0
  182. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetStaticMethodAsDelegateHandler.cpython-312.pyc +0 -0
  183. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/GetTypeHandler.cpython-312.pyc +0 -0
  184. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/Handler.cpython-312.pyc +0 -0
  185. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HandlerDictionary.cpython-312.pyc +0 -0
  186. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/HeartBeatHandler.cpython-312.pyc +0 -0
  187. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeDelegateHandler.cpython-312.pyc +0 -0
  188. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericMethodHandler.cpython-312.pyc +0 -0
  189. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGenericStaticMethodHandler.cpython-312.pyc +0 -0
  190. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeGlobalFunctionHandler.cpython-312.pyc +0 -0
  191. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeInstanceMethodHandler.cpython-312.pyc +0 -0
  192. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/InvokeStaticMethodHandler.cpython-312.pyc +0 -0
  193. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/LoadLibraryHandler.cpython-312.pyc +0 -0
  194. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/OptimizeHandler.cpython-312.pyc +0 -0
  195. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PassDelegateHandler.cpython-312.pyc +0 -0
  196. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/PluginWrapperHandler.cpython-312.pyc +0 -0
  197. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/RegisterForUpdateHandler.cpython-312.pyc +0 -0
  198. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ResolveInstanceHandler.cpython-312.pyc +0 -0
  199. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/RetrieveArrayHandler.cpython-312.pyc +0 -0
  200. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetInstanceFieldHandler.cpython-312.pyc +0 -0
  201. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/SetStaticFieldHandler.cpython-312.pyc +0 -0
  202. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ValueForUpdateHandler.cpython-312.pyc +0 -0
  203. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/ValueHandler.cpython-312.pyc +0 -0
  204. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/handler/__pycache__/__init__.cpython-312.pyc +0 -0
  205. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/Interpreter.cpython-312.pyc +0 -0
  206. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/__pycache__/__init__.cpython-312.pyc +0 -0
  207. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/NamespaceCache.cpython-312.pyc +0 -0
  208. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/namespaceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  209. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandDeserializer.cpython-312.pyc +0 -0
  210. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/CommandSerializer.cpython-312.pyc +0 -0
  211. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeDeserializer.cpython-312.pyc +0 -0
  212. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/TypeSerializer.cpython-312.pyc +0 -0
  213. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/protocol/__pycache__/__init__.cpython-312.pyc +0 -0
  214. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/Receiver.cpython-312.pyc +0 -0
  215. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/receiver/__pycache__/__init__.cpython-312.pyc +0 -0
  216. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/ReferencesCache.cpython-312.pyc +0 -0
  217. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/referenceCache/__pycache__/__init__.cpython-312.pyc +0 -0
  218. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/TypeCache.cpython-312.pyc +0 -0
  219. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/typeCache/__pycache__/__init__.cpython-312.pyc +0 -0
  220. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/CommandType.py +3 -1
  221. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/LazyModuleLoader.py +8 -11
  222. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Command.cpython-312.pyc +0 -0
  223. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/CommandType.cpython-312.pyc +0 -0
  224. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ConnectionType.cpython-312.pyc +0 -0
  225. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/ExceptionType.cpython-312.pyc +0 -0
  226. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/LazyModuleLoader.cpython-312.pyc +0 -0
  227. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeLogger.cpython-312.pyc +0 -0
  228. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/RuntimeName.cpython-312.pyc +0 -0
  229. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/StringEncodingMode.cpython-312.pyc +0 -0
  230. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/Type.cpython-312.pyc +0 -0
  231. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/TypesHandler.cpython-312.pyc +0 -0
  232. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/UtilsConst.cpython-312.pyc +0 -0
  233. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  234. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/IConnectionData.cpython-312.pyc +0 -0
  235. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/InMemoryConnectionData.cpython-312.pyc +0 -0
  236. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/connectionData/__pycache__/__init__.cpython-312.pyc +0 -0
  237. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/ExceptionSerializer.py +1 -1
  238. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionSerializer.cpython-312.pyc +0 -0
  239. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/ExceptionThrower.cpython-312.pyc +0 -0
  240. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/JavonetException.cpython-312.pyc +0 -0
  241. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/exception/__pycache__/__init__.cpython-312.pyc +0 -0
  242. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/MessageHelper.cpython-312.pyc +0 -0
  243. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/utils/messageHelper/__pycache__/__init__.cpython-312.pyc +0 -0
  244. data/lib/javonet-ruby-sdk/Binaries/version.txt +1 -1
  245. data/lib/javonet-ruby-sdk/core/handler/handler.rb +50 -9
  246. data/lib/javonet-ruby-sdk/core/handler/load_library_handler.rb +22 -9
  247. data/lib/javonet-ruby-sdk/core/handler/register_for_update_handler.rb +28 -0
  248. data/lib/javonet-ruby-sdk/core/handler/value_for_update_handler.rb +11 -0
  249. data/lib/javonet-ruby-sdk/sdk/config_runtime_factory.rb +8 -0
  250. data/lib/javonet-ruby-sdk/utils/command_type.rb +6 -0
  251. data/lib/javonet-ruby-sdk/utils/exceptions/exception_serializer.rb +0 -1
  252. metadata +18 -2
@@ -39,11 +39,11 @@ class Receiver {
39
39
  }
40
40
  /**
41
41
  * @param {Uint8Array} messageByteArray
42
- * @returns {Promise<Uint8Array> | Uint8Array}
42
+ * @returns {Promise<Uint8Array>}
43
43
  */
44
- static sendCommand(messageByteArray) {
44
+ static async sendCommand(messageByteArray) {
45
45
  try {
46
- let command = new import_Interpreter.Interpreter().process(messageByteArray);
46
+ let command = await new import_Interpreter.Interpreter().process(messageByteArray);
47
47
  return new import_CommandSerializer.CommandSerializer().serialize(command, this.connectionData);
48
48
  } catch (error) {
49
49
  const exceptionCommand = import_ExceptionSerializer.ExceptionSerializer.serializeException(
@@ -55,13 +55,13 @@ class Receiver {
55
55
  }
56
56
  /**
57
57
  * @param {Uint8Array} messageByteArray
58
- * @returns {Promise<Uint8Array> | Uint8Array}
58
+ * @returns {Promise<Uint8Array>}
59
59
  */
60
- static heartBeat(messageByteArray) {
60
+ static async heartBeat(messageByteArray) {
61
61
  let response = new Uint8Array(2);
62
62
  response[0] = messageByteArray[11];
63
63
  response[1] = messageByteArray[12] - 2;
64
- return response;
64
+ return Promise.resolve(response);
65
65
  }
66
66
  }
67
67
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var Activator_exports = {};
20
+ __export(Activator_exports, {
21
+ Activator: () => Activator
22
+ });
23
+ module.exports = __toCommonJS(Activator_exports);
24
+ class Activator {
25
+ /**
26
+ * Create a new instance of a type
27
+ * @param {Function} Type - The constructor function/class
28
+ * @param {any[] | any} args - The arguments to pass to the constructor
29
+ * @returns {any} The new instance
30
+ */
31
+ static createInstance(Type, args) {
32
+ if (args == null) {
33
+ args = [];
34
+ }
35
+ if (!Array.isArray(args)) {
36
+ args = [args];
37
+ }
38
+ return new Type(...args);
39
+ }
40
+ }
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ Activator
44
+ });
@@ -22,13 +22,23 @@ __export(ActivatorDetails_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(ActivatorDetails_exports);
24
24
  class ActivatorDetails {
25
+ /** @type {Function} */
26
+ Type;
27
+ /** @type {any[]} */
28
+ arguments;
25
29
  /**
26
30
  * @param {Function} type - The constructor function/class
27
- * @param {any[]} [args] - Arguments to pass to constructor
31
+ * @param {any[]|any} [args] - Arguments to pass to constructor (array or single value)
28
32
  */
29
33
  constructor(type, args = []) {
30
- this.type = type;
31
- this.arguments = args;
34
+ this.Type = type;
35
+ if (args == null) {
36
+ this.arguments = [];
37
+ } else if (Array.isArray(args)) {
38
+ this.arguments = args;
39
+ } else {
40
+ this.arguments = [args];
41
+ }
32
42
  }
33
43
  }
34
44
  // Annotate the CommonJS export names for ESM import in node:
@@ -105,6 +105,15 @@ class ConfigRuntimeFactory {
105
105
  nodejs(configName = "default") {
106
106
  return this.#getRuntimeContext(import_RuntimeName.RuntimeName.Nodejs, configName);
107
107
  }
108
+ /**
109
+ * Creates RuntimeContext instance to interact with the Php runtime.
110
+ * @param {string} [configName="default"] - The name of the configuration to use (optional).
111
+ * @return {RuntimeContext} a RuntimeContext instance for the Php runtime
112
+ * @see [Javonet Guides](https://www.javonet.com/guides/v2/javascript/foundations/runtime-context)
113
+ */
114
+ php(configName = "default") {
115
+ return this.#getRuntimeContext(import_RuntimeName.RuntimeName.Php, configName);
116
+ }
108
117
  /**
109
118
  * Creates RuntimeContext instance to interact with the Python 2.7 runtime.
110
119
  * @param {string} [configName="default"] - The name of the configuration to use (optional).
@@ -25,10 +25,22 @@ var import_DelegatesCache = require("../core/delegatesCache/DelegatesCache.cjs")
25
25
  var import_Interpreter = require("../core/interpreter/Interpreter.cjs");
26
26
  var import_Command = require("../utils/Command.cjs");
27
27
  var import_CommandType = require("../utils/CommandType.cjs");
28
- var import_ConnectionType = require("../utils/ConnectionType.cjs");
29
28
  var import_ExceptionThrower = require("../utils/exception/ExceptionThrower.cjs");
30
29
  var import_RuntimeName = require("../utils/RuntimeName.cjs");
31
30
  var import_TypesHandler = require("../utils/TypesHandler.cjs");
31
+ var import_uuid = require("uuid");
32
+ class AsyncLock {
33
+ constructor() {
34
+ this._tail = Promise.resolve();
35
+ }
36
+ async lock() {
37
+ let release;
38
+ const prev = this._tail;
39
+ this._tail = new Promise((res) => release = res);
40
+ await prev;
41
+ return () => release(void 0);
42
+ }
43
+ }
32
44
  class InvocationContext {
33
45
  /** @type {RuntimeNameType} */
34
46
  #runtimeName;
@@ -36,12 +48,18 @@ class InvocationContext {
36
48
  #connectionData;
37
49
  /** @type {Command | null} */
38
50
  #currentCommand = null;
39
- /** @type {Command | Promise<Command> | null} */
51
+ /** @type {Command | null} */
40
52
  #responseCommand = null;
41
53
  /** @type {boolean} */
42
54
  #isExecuted = false;
43
55
  /** @type {Interpreter | null} */
44
56
  #interpreter = null;
57
+ /** @type {string | null} */
58
+ #guid = null;
59
+ /** @type {AsyncLock} */
60
+ #materializationLock = new AsyncLock();
61
+ // Static map holding contexts waiting for materialization (guid -> InvocationContext)
62
+ static _invocationContexts = /* @__PURE__ */ new Map();
45
63
  /**
46
64
  *
47
65
  * @param {RuntimeNameType} runtimeName
@@ -56,6 +74,13 @@ class InvocationContext {
56
74
  this.#responseCommand = null;
57
75
  this.#isExecuted = isExecuted;
58
76
  this.#interpreter = null;
77
+ this.#guid = (0, import_uuid.v4)();
78
+ }
79
+ /**
80
+ * @returns {string} guid of this InvocationContext
81
+ */
82
+ getGuid() {
83
+ return this.#guid;
59
84
  }
60
85
  /**
61
86
  * @param {Command} localCommand
@@ -71,7 +96,7 @@ class InvocationContext {
71
96
  /**
72
97
  * @returns {Command|null}
73
98
  */
74
- get_current_command() {
99
+ getCurrentCommand() {
75
100
  return this.#currentCommand;
76
101
  }
77
102
  //destructor() {
@@ -84,69 +109,102 @@ class InvocationContext {
84
109
  // this.execute();
85
110
  // }
86
111
  //}
87
- [Symbol.iterator] = () => {
112
+ /**
113
+ * Async iterator for InvocationContext arrays
114
+ * Use: for await (const item of invocationContext) { ... }
115
+ * @returns {AsyncGenerator<InvocationContext, void, unknown>}
116
+ */
117
+ async *[Symbol.asyncIterator]() {
88
118
  if (this.#currentCommand?.commandType !== import_CommandType.CommandType.Reference) {
89
119
  throw new Error("Object is not iterable");
90
120
  }
91
- let position = -1;
92
- let arraySize = 0;
93
- const sizeCtx = (
94
- /** @type {any} */
95
- this.getSize().execute()
96
- );
97
- if (sizeCtx instanceof Promise) {
98
- sizeCtx.then((ctx) => {
99
- arraySize = Number(ctx.getValue());
100
- });
101
- } else {
102
- arraySize = Number(sizeCtx.getValue());
121
+ const sizeCtx = await this.getSize().execute();
122
+ const arraySize = Number(sizeCtx.getValue());
123
+ for (let position = 0; position < arraySize; position++) {
124
+ yield this.getIndex(position);
103
125
  }
104
- return {
105
- next: () => ({
106
- value: this.getIndex(++position),
107
- done: position >= arraySize
108
- })
109
- };
110
- };
126
+ }
111
127
  /**
112
128
  * Executes the current command.
113
- * Because invocation context is building the intent of executing particular expression on target environment, we call the initial state of invocation context as non-materialized.
114
- * The non-materialized context wraps either single command or chain of recursively nested commands.
115
- * Commands are becoming nested through each invocation of methods on Invocation Context.
116
- * Each invocation triggers the creation of new Invocation Context instance wrapping the current command with new parent command valid for invoked method.
117
- * Developer can decide on any moment of the materialization for the context taking full control of the chunks of the expression being transferred and processed on target runtime.
118
- * @returns {Promise<InvocationContext> | InvocationContext} the InvocationContext after executing the command.
119
- * @see [Javonet Guides](https://www.javonet.com/guides/v2/javascript/foundations/execute-method)
129
+ * Returns the InvocationContext after executing the command.
130
+ * @returns {Promise<InvocationContext>}
120
131
  * @method
121
132
  */
122
- execute() {
133
+ async execute() {
123
134
  if (this.#currentCommand === null) {
124
135
  throw new Error("currentCommand is undefined in Invocation Context execute method");
125
136
  }
126
137
  if (!this.#interpreter) {
127
138
  this.#interpreter = new import_Interpreter.Interpreter();
128
139
  }
129
- this.#responseCommand = this.#interpreter.execute(this.#currentCommand, this.#connectionData);
130
- const handleResponse = (resolvedResponse) => {
131
- if (!resolvedResponse) {
140
+ const entries = Array.from(InvocationContext._invocationContexts.entries());
141
+ entries.sort((a, b) => String(a[0]).localeCompare(String(b[0])));
142
+ const releases = [];
143
+ for (const [, ic] of entries) {
144
+ const release = await ic.#materializationLock.lock();
145
+ releases.push(release);
146
+ }
147
+ try {
148
+ this.#responseCommand = await this.#interpreter.execute(this.#currentCommand, this.#connectionData);
149
+ if (!this.#responseCommand) {
132
150
  throw new Error("responseCommand is undefined in Invocation Context execute method");
133
151
  }
134
- if (resolvedResponse.commandType === import_CommandType.CommandType.Exception) {
135
- throw import_ExceptionThrower.ExceptionThrower.throwException(resolvedResponse);
152
+ if (this.#responseCommand.commandType === import_CommandType.CommandType.Exception) {
153
+ throw import_ExceptionThrower.ExceptionThrower.throwException(this.#responseCommand);
136
154
  }
137
- if (resolvedResponse.commandType === import_CommandType.CommandType.CreateClassInstance) {
138
- this.#currentCommand = resolvedResponse;
155
+ this.#responseCommand = this.#processUpdateInvocationContextCommands(this.#responseCommand);
156
+ if (this.#responseCommand.commandType === import_CommandType.CommandType.CreateClassInstance) {
157
+ this.#currentCommand = this.#responseCommand;
139
158
  this.#isExecuted = true;
140
159
  return this;
141
160
  }
142
- return new InvocationContext(this.#runtimeName, this.#connectionData, resolvedResponse, true);
143
- };
144
- if (this.#responseCommand instanceof Promise) {
145
- return this.#responseCommand.then(handleResponse);
146
- } else {
147
- return handleResponse(this.#responseCommand);
161
+ return new InvocationContext(this.#runtimeName, this.#connectionData, this.#responseCommand, true);
162
+ } finally {
163
+ for (let i = releases.length - 1; i >= 0; i--) {
164
+ try {
165
+ releases[i]();
166
+ } catch {
167
+ }
168
+ }
148
169
  }
149
170
  }
171
+ /**
172
+ * Process UpdateInvocationContext commands in the provided responseCommand payload.
173
+ * For each ValueForUpdate command, set the referenced InvocationContext's currentCommand to a Reference command,
174
+ * remove that InvocationContext from the static map and remove ValueForUpdate items from response payload.
175
+ * @param {Command} responseCommand
176
+ * @returns {Command}
177
+ */
178
+ #processUpdateInvocationContextCommands(responseCommand) {
179
+ if (!responseCommand?.payload || responseCommand.payload.length === 0) {
180
+ return responseCommand;
181
+ }
182
+ const commandsToUpdate = [];
183
+ for (const item of responseCommand.payload) {
184
+ if (item instanceof import_Command.Command && item.commandType === import_CommandType.CommandType.ValueForUpdate) {
185
+ commandsToUpdate.push(item);
186
+ }
187
+ }
188
+ if (commandsToUpdate.length === 0) {
189
+ return responseCommand;
190
+ }
191
+ const updatedPayload = Array.from(responseCommand.payload);
192
+ for (const cmd of commandsToUpdate) {
193
+ const cmdPayload = cmd.payload;
194
+ if (cmdPayload && cmdPayload.length >= 2) {
195
+ const contextGuid = String(cmdPayload[0]);
196
+ const instanceGuid = String(cmdPayload[1]);
197
+ const invCtx = InvocationContext._invocationContexts.get(contextGuid);
198
+ if (invCtx) {
199
+ invCtx.#currentCommand = new import_Command.Command(invCtx.#runtimeName, import_CommandType.CommandType.Reference, [instanceGuid]);
200
+ InvocationContext._invocationContexts.delete(contextGuid);
201
+ }
202
+ }
203
+ const idx = updatedPayload.indexOf(cmd);
204
+ if (idx >= 0) updatedPayload.splice(idx, 1);
205
+ }
206
+ return new import_Command.Command(responseCommand.runtimeName, responseCommand.commandType, updatedPayload);
207
+ }
150
208
  /**
151
209
  * Invokes a static method on the target runtime.
152
210
  * @param {string} methodName - The name of the method to invoke.
@@ -187,14 +245,25 @@ class InvocationContext {
187
245
  }
188
246
  /**
189
247
  * Creates a new instance of a class in the target runtime.
248
+ * Adds the newly created context to the static invocation contexts map and
249
+ * includes the context GUID as the first argument of CreateClassInstance command payload.
190
250
  * @param {...any} args - The arguments to pass to the class constructor
191
251
  * @returns {InvocationContext} A new InvocationContext instance that wraps the command to create the instance.
192
- * @see [Javonet Guides](https://www.javonet.com/guides/v2/javascript/calling-methods/creating-instance-and-calling-instance-methods)
193
252
  * @method
194
253
  */
195
254
  createInstance(...args) {
196
- let localCommand = new import_Command.Command(this.#runtimeName, import_CommandType.CommandType.CreateClassInstance, args);
197
- return this.#createInstanceContext(localCommand);
255
+ const localCommand = new import_Command.Command(this.#runtimeName, import_CommandType.CommandType.CreateClassInstance, [...args]);
256
+ const createInstanceInvCtx = this.#createInstanceContext(localCommand);
257
+ return createInstanceInvCtx.#registerForUpdate();
258
+ }
259
+ /**
260
+ * Registers the current InvocationContext for updates.
261
+ * @returns {InvocationContext}
262
+ */
263
+ #registerForUpdate() {
264
+ this.#currentCommand = this.#buildCommand(new import_Command.Command(this.#runtimeName, import_CommandType.CommandType.RegisterForUpdate, [this.getGuid()]));
265
+ InvocationContext._invocationContexts.set(this.getGuid(), this);
266
+ return this;
198
267
  }
199
268
  /**
200
269
  * Retrieves the value of an instance field from the target runtime.
@@ -382,21 +451,19 @@ class InvocationContext {
382
451
  }
383
452
  /**
384
453
  * Retrieves the type of the object from the target runtime.
385
- * @returns {Promise<string> | string} The type of the object.
454
+ * @returns {Promise<string>} The type of the object.
386
455
  * @see [Javonet Guides](https://www.javonet.com/guides/v2/javascript/type-handling/getting-object-type)
387
456
  * @method
388
457
  */
389
- getResultType() {
458
+ async getResultType() {
390
459
  const localCommand = new import_Command.Command(this.#runtimeName, import_CommandType.CommandType.GetResultType, []);
391
460
  const invocationContext = new InvocationContext(
392
461
  this.#runtimeName,
393
462
  this.#connectionData,
394
463
  this.#buildCommand(localCommand)
395
464
  );
396
- const execCtx = invocationContext.execute();
397
- const extract = (invCtx) => String(invCtx.getValue());
398
- console.log(execCtx);
399
- return execCtx instanceof Promise ? execCtx.then(extract) : extract(execCtx);
465
+ const execCtx = await invocationContext.execute();
466
+ return String(execCtx.getValue());
400
467
  }
401
468
  /**
402
469
  * Retrieves the name of the runtime where the command is executed.
@@ -409,21 +476,33 @@ class InvocationContext {
409
476
  }
410
477
  /**
411
478
  * Retrieves an array from the target runtime.
479
+ * @async
412
480
  * @returns {Promise<any[]>}
413
481
  * @method
414
482
  */
415
- retrieveArray() {
483
+ async retrieveArray() {
416
484
  const localCommand = new import_Command.Command(this.#runtimeName, import_CommandType.CommandType.RetrieveArray, []);
417
485
  const localInvCtx = new InvocationContext(
418
486
  this.#runtimeName,
419
487
  this.#connectionData,
420
488
  this.#buildCommand(localCommand)
421
489
  );
422
- localInvCtx.execute();
423
- const extract = (respCommand) => {
424
- return respCommand.payload;
490
+ await localInvCtx.execute();
491
+ const resolve = (item) => {
492
+ return item?.commandType === import_CommandType.CommandType.Reference ? new InvocationContext(
493
+ this.#runtimeName,
494
+ this.#connectionData,
495
+ item
496
+ ) : item;
425
497
  };
426
- return localInvCtx.#responseCommand instanceof Promise ? localInvCtx.#responseCommand.then(extract) : localInvCtx.#responseCommand?.payload;
498
+ const respCommand = localInvCtx.#responseCommand;
499
+ if (!respCommand) {
500
+ return [];
501
+ }
502
+ if (respCommand.payload) {
503
+ return respCommand.payload.map((item) => resolve(item));
504
+ }
505
+ return respCommand.payload || [];
427
506
  }
428
507
  /**
429
508
  * Returns the primitive value from the target runtime. This could be any primitive type in JavaScript,
@@ -456,7 +535,7 @@ class InvocationContext {
456
535
  }
457
536
  return payloadItem;
458
537
  } else if (payloadItem instanceof InvocationContext) {
459
- return payloadItem.get_current_command();
538
+ return payloadItem.getCurrentCommand();
460
539
  } else if (payloadItem instanceof Array) {
461
540
  const copiedArray = payloadItem.map((item) => this.#encapsulatePayloadItem(item));
462
541
  return new import_Command.Command(this.#runtimeName, import_CommandType.CommandType.Array, copiedArray);
@@ -465,9 +544,8 @@ class InvocationContext {
465
544
  for (let i = 0; i < newArray.length; i++) {
466
545
  newArray[i] = typeof Object;
467
546
  }
468
- const args = [import_DelegatesCache.delegatesCacheInstance.addDelegate(payloadItem), import_RuntimeName.RuntimeName.Nodejs].push(
469
- ...newArray
470
- );
547
+ const args = [import_DelegatesCache.delegatesCacheInstance.addDelegate(payloadItem), import_RuntimeName.RuntimeName.Nodejs];
548
+ args.push(...newArray);
471
549
  return new import_Command.Command(this.#runtimeName, import_CommandType.CommandType.PassDelegate, args);
472
550
  } else if (import_TypesHandler.TypesHandler.isPrimitiveOrNullOrUndefined(payloadItem)) {
473
551
  return new import_Command.Command(this.#runtimeName, import_CommandType.CommandType.Value, [payloadItem]);
@@ -20,6 +20,7 @@ var Javonet_exports = {};
20
20
  __export(Javonet_exports, {
21
21
  CommandDeserializer: () => import_CommandDeserializer.CommandDeserializer,
22
22
  CommandSerializer: () => import_CommandSerializer.CommandSerializer,
23
+ ComplexTypeResolver: () => import_ComplexTypeResolver.ComplexTypeResolver,
23
24
  ConfigPriority: () => import_ConfigPriority.ConfigPriority,
24
25
  Javonet: () => Javonet,
25
26
  TcpConnectionData: () => import_TcpConnectionData.TcpConnectionData,
@@ -39,6 +40,7 @@ var import_WsConnectionData = require("../utils/connectionData/WsConnectionData.
39
40
  var import_UtilsConst = require("../utils/UtilsConst.cjs");
40
41
  var import_ConfigSourceResolver = require("./configuration/ConfigSourceResolver.cjs");
41
42
  var import_ConfigPriority = require("./configuration/ConfigPriority.cjs");
43
+ var import_ComplexTypeResolver = require("./tools/ComplexTypeResolver.cjs");
42
44
  class Javonet {
43
45
  /**
44
46
  * Initializes Javonet using an in-memory channel on the same machine.
@@ -134,6 +136,7 @@ class Javonet {
134
136
  0 && (module.exports = {
135
137
  CommandDeserializer,
136
138
  CommandSerializer,
139
+ ComplexTypeResolver,
137
140
  ConfigPriority,
138
141
  Javonet,
139
142
  TcpConnectionData,
@@ -136,10 +136,11 @@ class RuntimeContext {
136
136
  * Each invocation triggers the creation of a new RuntimeContext instance wrapping the current command with a new parent command.
137
137
  * The developer can decide at any moment of the materialization for the context, taking full control of the chunks of the expression being transferred and processed on the target runtime.
138
138
  * @see [Javonet Guides](https://www.javonet.com/guides/v2/javascript/foundations/execute-method)
139
+ * @returns {Promise<void>}
139
140
  * @method
140
141
  */
141
- execute() {
142
- this.#responseCommand = this.#interpreter?.execute(this.#currentCommand, this.connectionData);
142
+ async execute() {
143
+ this.#responseCommand = await this.#interpreter?.execute(this.#currentCommand, this.connectionData);
143
144
  this.#currentCommand = null;
144
145
  if (this.#responseCommand === void 0) {
145
146
  throw new Error("responseCommand is undefined in Runtime Context execute method");
@@ -154,14 +155,14 @@ class RuntimeContext {
154
155
  * The argument is a relative or full path to the library. If the library has dependencies on other libraries, the latter needs to be added first.
155
156
  * After referencing the library, any objects stored in this package can be used. Use static classes, create instances, call methods, use fields and properties, and much more.
156
157
  * @param {string} libraryPath - The relative or full path to the library.
157
- * @returns {RuntimeContext} RuntimeContext instance.
158
+ * @returns {Promise<RuntimeContext>} RuntimeContext instance.
158
159
  * @see [Javonet Guides](https://www.javonet.com/guides/v2/javascript/getting-started/adding-references-to-libraries)
159
160
  * @method
160
161
  */
161
- loadLibrary(libraryPath) {
162
+ async loadLibrary(libraryPath) {
162
163
  let localCommand = new import_Command.Command(this.runtimeName, import_CommandType.CommandType.LoadLibrary, [libraryPath]);
163
164
  this.#currentCommand = this.#buildCommand(localCommand);
164
- this.execute();
165
+ await this.execute();
165
166
  return this;
166
167
  }
167
168
  /**
@@ -283,7 +284,7 @@ class RuntimeContext {
283
284
  }
284
285
  return payloadItem;
285
286
  } else if (payloadItem instanceof import_InvocationContext.InvocationContext) {
286
- const command = payloadItem?.get_current_command();
287
+ const command = payloadItem?.getCurrentCommand();
287
288
  if (!command) {
288
289
  throw new Error("Command not found");
289
290
  }
@@ -296,9 +297,8 @@ class RuntimeContext {
296
297
  for (let i = 0; i < newArray.length; i++) {
297
298
  newArray[i] = "object";
298
299
  }
299
- const args = [import_DelegatesCache.delegatesCacheInstance.addDelegate(payloadItem), import_RuntimeName.RuntimeName.Nodejs].push(
300
- ...newArray
301
- );
300
+ const args = [import_DelegatesCache.delegatesCacheInstance.addDelegate(payloadItem), import_RuntimeName.RuntimeName.Nodejs];
301
+ args.push(...newArray);
302
302
  return new import_Command.Command(this.runtimeName, import_CommandType.CommandType.PassDelegate, args);
303
303
  } else if (import_TypesHandler.TypesHandler.isPrimitiveOrNullOrUndefined(payloadItem)) {
304
304
  return new import_Command.Command(this.runtimeName, import_CommandType.CommandType.Value, [payloadItem]);
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,32 +15,39 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var ConfigSourceResolver_exports = {};
30
20
  __export(ConfigSourceResolver_exports, {
31
21
  ConfigSourceResolver: () => ConfigSourceResolver
32
22
  });
33
23
  module.exports = __toCommonJS(ConfigSourceResolver_exports);
34
- var import_fs = __toESM(require("fs"), 1);
35
- var import_process = __toESM(require("process"), 1);
36
24
  var import_ConfigsDictionary = require("./ConfigsDictionary.cjs");
37
25
  var import_JsonConfigResolver = require("./configResolvers/JsonConfigResolver.cjs");
38
26
  var import_YamlConfigResolver = require("./configResolvers/YamlConfigResolver.cjs");
39
27
  var import_ConnectionStringConfigResolver = require("./configResolvers/ConnectionStringConfigResolver.cjs");
28
+ var import_Runtime = require("../../utils/Runtime.cjs");
29
+ const import_meta = {};
30
+ let fs = null;
31
+ let process = null;
32
+ const requireDynamic = (0, import_Runtime.getRequire)(import_meta.url);
40
33
  class ConfigSourceResolver {
34
+ /**
35
+ * @param {import('./ConfigPriority.js').ConfigPriority} priority
36
+ * @param {string | any} configSource
37
+ */
41
38
  static addConfigs(priority, configSource) {
42
39
  console.log(`Adding config from source: ${configSource} with priority '${priority}'`);
43
- const configString = ConfigSourceResolver._getConfigSourceAsString(configSource);
44
- ConfigSourceResolver._parseConfigsAndAddToCollection(priority, configString);
40
+ if (configSource && typeof configSource === "object") {
41
+ import_JsonConfigResolver.JsonConfigResolver.addConfigs(priority, configSource);
42
+ } else {
43
+ const configString = ConfigSourceResolver._getConfigSourceAsString(configSource);
44
+ ConfigSourceResolver._parseConfigsAndAddToCollection(priority, configString);
45
+ }
45
46
  }
47
+ /**
48
+ * @param {string} configName
49
+ * @returns {*}
50
+ */
46
51
  static getConfig(configName) {
47
52
  console.log(`Retrieving config ${configName}`);
48
53
  return import_ConfigsDictionary.ConfigsDictionary.getConfig(configName);
@@ -50,19 +55,36 @@ class ConfigSourceResolver {
50
55
  static clearConfigs() {
51
56
  import_ConfigsDictionary.ConfigsDictionary.clearConfigs();
52
57
  }
58
+ /**
59
+ * @param {string} configSource
60
+ * @returns {string}
61
+ */
53
62
  static _getConfigSourceAsString(configSource) {
54
63
  if (!configSource || configSource.trim() === "") {
55
64
  throw new Error("Config source cannot be null or whitespace.");
56
65
  }
57
- const envValue = import_process.default.env[configSource];
58
- if (envValue && envValue.trim() !== "") {
59
- configSource = envValue;
60
- }
61
- if (import_fs.default.existsSync(configSource) && import_fs.default.statSync(configSource).isFile()) {
62
- configSource = import_fs.default.readFileSync(configSource, { encoding: "utf-8" });
66
+ if ((0, import_Runtime.isNodejsRuntime)()) {
67
+ if (!process) {
68
+ process = requireDynamic("process");
69
+ }
70
+ if (!fs) {
71
+ fs = requireDynamic("fs");
72
+ }
73
+ const envValue = process?.env[configSource];
74
+ if (envValue && envValue.trim() !== "") {
75
+ configSource = envValue;
76
+ }
77
+ if (fs?.existsSync(configSource) && fs?.statSync(configSource).isFile()) {
78
+ configSource = fs.readFileSync(configSource, { encoding: "utf-8" });
79
+ }
63
80
  }
64
81
  return configSource.trim();
65
82
  }
83
+ /**
84
+ * @param {import('./ConfigPriority.js').ConfigPriority} priority
85
+ * @param {string} configString
86
+ * @returns
87
+ */
66
88
  static _parseConfigsAndAddToCollection(priority, configString) {
67
89
  try {
68
90
  const jsonObject = JSON.parse(configString);
@@ -78,7 +100,7 @@ class ConfigSourceResolver {
78
100
  import_YamlConfigResolver.YamlConfigResolver.addConfigs(priority, configString);
79
101
  return;
80
102
  } catch (ex) {
81
- if (ex.name === "SyntaxError") {
103
+ if (ex?.name === "SyntaxError") {
82
104
  } else {
83
105
  console.log("Failed to parse config source as YAML: " + ex);
84
106
  }