javonet-nodejs-sdk 2.5.12 → 2.5.14

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 (212) hide show
  1. package/Binaries/Clr/Javonet.Clr.Utils.dll +0 -0
  2. package/Binaries/Clr/JavonetClrRuntime.dll +0 -0
  3. package/Binaries/Jvm/JavonetJvmRuntime.jar +0 -0
  4. package/Binaries/Native/Linux/ARM64/libJavonetActivationService.so +0 -0
  5. package/Binaries/Native/Linux/ARM64/libJavonetCppRuntimeNative.so +0 -0
  6. package/Binaries/Native/Linux/ARM64/libJavonetGoRuntimeNative.so +0 -0
  7. package/Binaries/Native/Linux/ARM64/libJavonetJvmRuntimeNative.so +0 -0
  8. package/Binaries/Native/Linux/ARM64/libJavonetNetcoreRuntimeNative.so +0 -0
  9. package/Binaries/Native/Linux/ARM64/libJavonetPythonRuntimeNative.so +0 -0
  10. package/Binaries/Native/Linux/ARM64/libJavonetRuby278RuntimeNative.so +0 -0
  11. package/Binaries/Native/Linux/ARM64/libJavonetRubyRuntimeNative.so +0 -0
  12. package/Binaries/Native/Linux/ARM64/libJavonetTcpClient.so +0 -0
  13. package/Binaries/Native/Linux/ARM64/libJavonetTcpTlsClient.so +0 -0
  14. package/Binaries/Native/Linux/ARM64/libUtils.so +0 -0
  15. package/Binaries/Native/Linux/ARM64/version.txt +1 -1
  16. package/Binaries/Native/Linux/X64/NativeUtilsUnitTests.xml +30 -30
  17. package/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  18. package/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  19. package/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  20. package/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  21. package/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  22. package/Binaries/Native/Linux/X64/libJavonetNodejs1816RuntimeNative.so +0 -0
  23. package/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  24. package/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  25. package/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  26. package/Binaries/Native/Linux/X64/libJavonetRuby278RuntimeNative.so +0 -0
  27. package/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  28. package/Binaries/Native/Linux/X64/libJavonetTcpClient.so +0 -0
  29. package/Binaries/Native/Linux/X64/libJavonetTcpTlsClient.so +0 -0
  30. package/Binaries/Native/Linux/X64/libUtils.so +0 -0
  31. package/Binaries/Native/Linux/X64/openssl3/libJavonetActivationService.so +0 -0
  32. package/Binaries/Native/Linux/X64/openssl3/libJavonetTcpTlsClient.so +0 -0
  33. package/Binaries/Native/Linux/X64/openssl3/libUtils.so +0 -0
  34. package/Binaries/Native/Linux/X64/version.txt +1 -1
  35. package/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  36. package/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  37. package/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  38. package/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  39. package/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  40. package/Binaries/Native/MacOs/X64/libJavonetNodejs1816RuntimeNative.dylib +0 -0
  41. package/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  42. package/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  43. package/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  44. package/Binaries/Native/MacOs/X64/libJavonetRuby278RuntimeNative.dylib +0 -0
  45. package/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  46. package/Binaries/Native/MacOs/X64/libJavonetTcpClient.dylib +0 -0
  47. package/Binaries/Native/MacOs/X64/libJavonetTcpTlsClient.dylib +0 -0
  48. package/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  49. package/Binaries/Native/MacOs/X64/version.txt +1 -1
  50. package/Binaries/Native/Windows/ARM64/JavonetActivationService.dll +0 -0
  51. package/Binaries/Native/Windows/ARM64/JavonetCppRuntimeNative.dll +0 -0
  52. package/Binaries/Native/Windows/ARM64/JavonetGoRuntimeNative.dll +0 -0
  53. package/Binaries/Native/Windows/ARM64/JavonetJvmRuntimeNative.dll +0 -0
  54. package/Binaries/Native/Windows/ARM64/JavonetNetcoreRuntimeNative.dll +0 -0
  55. package/Binaries/Native/Windows/ARM64/JavonetPythonRuntimeNative.dll +0 -0
  56. package/Binaries/Native/Windows/ARM64/JavonetRuby278RuntimeNative.dll +0 -0
  57. package/Binaries/Native/Windows/ARM64/JavonetRubyRuntimeNative.dll +0 -0
  58. package/Binaries/Native/Windows/ARM64/JavonetTcpClient.dll +0 -0
  59. package/Binaries/Native/Windows/ARM64/JavonetTcpTlsClient.dll +0 -0
  60. package/Binaries/Native/Windows/ARM64/Utils.dll +0 -0
  61. package/Binaries/Native/Windows/ARM64/version.txt +0 -0
  62. package/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  63. package/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  64. package/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  65. package/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  66. package/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  67. package/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  68. package/Binaries/Native/Windows/X64/JavonetNodejs1816RuntimeNative.dll +0 -0
  69. package/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  70. package/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  71. package/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  72. package/Binaries/Native/Windows/X64/JavonetRuby278RuntimeNative.dll +0 -0
  73. package/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  74. package/Binaries/Native/Windows/X64/JavonetTcpClient.dll +0 -0
  75. package/Binaries/Native/Windows/X64/JavonetTcpTlsClient.dll +0 -0
  76. package/Binaries/Native/Windows/X64/Utils.dll +0 -0
  77. package/Binaries/Native/Windows/X64/version.txt +1 -1
  78. package/Binaries/Native/Windows/X86/JavonetActivationService.dll +0 -0
  79. package/Binaries/Native/Windows/X86/JavonetClrRuntimeNative.dll +0 -0
  80. package/Binaries/Native/Windows/X86/JavonetCppRuntimeNative.dll +0 -0
  81. package/Binaries/Native/Windows/X86/JavonetGoRuntimeNative.dll +0 -0
  82. package/Binaries/Native/Windows/X86/JavonetJvmRuntimeNative.dll +0 -0
  83. package/Binaries/Native/Windows/X86/JavonetNetcoreRuntimeNative.dll +0 -0
  84. package/Binaries/Native/Windows/X86/JavonetPythonRuntimeNative.dll +0 -0
  85. package/Binaries/Native/Windows/X86/JavonetTcpClient.dll +0 -0
  86. package/Binaries/Native/Windows/X86/JavonetTcpTlsClient.dll +0 -0
  87. package/Binaries/Native/Windows/X86/Utils.dll +0 -0
  88. package/Binaries/Native/Windows/X86/version.txt +1 -1
  89. package/Binaries/Netcore/Javonet.Netcore.Core.dll +0 -0
  90. package/Binaries/Netcore/Javonet.Netcore.Utils.dll +0 -0
  91. package/Binaries/Nodejs/lib/core/interpreter/Interpreter.js +4 -0
  92. package/Binaries/Nodejs/lib/core/protocol/CommandDeserializer.js +30 -14
  93. package/Binaries/Nodejs/lib/core/protocol/CommandSerializer.js +38 -25
  94. package/Binaries/Nodejs/lib/core/protocol/TypeSerializer.js +1 -1
  95. package/Binaries/Nodejs/lib/core/webSocketClient/WebSocketClient.js +53 -48
  96. package/Binaries/Nodejs/lib/sdk/InvocationContext.js +3 -5
  97. package/Binaries/Nodejs/lib/sdk/RuntimeContext.js +2 -4
  98. package/Binaries/Perl/Linux/X64/deps/lib/perl5/Path/Tiny.pm +74 -15
  99. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Attribute-Util-1.07/install.json +1 -1
  100. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Capture-Tiny-0.50/install.json +1 -1
  101. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Class-Load-0.25/install.json +1 -1
  102. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Class-Load-XS-0.10/install.json +1 -1
  103. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Clone-0.47/install.json +1 -1
  104. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-Cmp-0.010/install.json +1 -1
  105. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-OptList-0.114/install.json +1 -1
  106. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Data-UUID-1.227/install.json +1 -1
  107. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-GlobalDestruction-0.14/install.json +1 -1
  108. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-OverloadInfo-0.007/install.json +1 -1
  109. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Devel-StackTrace-2.05/install.json +1 -1
  110. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Dist-CheckConflicts-0.11/install.json +1 -1
  111. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Eval-Closure-0.14/install.json +1 -1
  112. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-Config-0.010/install.json +1 -1
  113. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-Helpers-0.028/install.json +1 -1
  114. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/ExtUtils-InstallPaths-0.014/install.json +1 -1
  115. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/FFI-CheckLib-0.31/install.json +1 -1
  116. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/FFI-Platypus-2.10/install.json +1 -1
  117. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/File-Which-1.27/install.json +1 -1
  118. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/IPC-System-Simple-1.30/install.json +1 -1
  119. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/MRO-Compat-0.15/install.json +1 -1
  120. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Build-0.4234/install.json +1 -1
  121. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Build-Tiny-0.051/install.json +1 -1
  122. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Implementation-0.09/install.json +1 -1
  123. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Runtime-0.016/install.json +1 -1
  124. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Module-Runtime-Conflicts-0.003/install.json +1 -1
  125. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Moose-2.2207/install.json +1 -1
  126. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Nice-Try-v1.3.15/install.json +1 -1
  127. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/PPI-1.281/install.json +1 -1
  128. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/PPI-XS-0.910/install.json +1 -1
  129. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-DeprecationManager-0.18/install.json +1 -1
  130. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-Stash-0.40/install.json +1 -1
  131. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Package-Stash-XS-0.30/install.json +1 -1
  132. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Params-Util-1.102/install.json +1 -1
  133. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/{Path-Tiny-0.146 → Path-Tiny-0.148}/MYMETA.json +10 -6
  134. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Path-Tiny-0.148/install.json +1 -0
  135. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Safe-Isa-1.000010/install.json +1 -1
  136. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scalar-List-Utils-1.68/install.json +1 -1
  137. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scalar-Util-Numeric-0.40/install.json +1 -1
  138. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Scope-Guard-0.21/install.json +1 -1
  139. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Exporter-0.991/install.json +1 -1
  140. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Exporter-Progressive-0.001013/install.json +1 -1
  141. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Sub-Install-0.929/install.json +1 -1
  142. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Task-Weaken-1.06/install.json +1 -1
  143. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Test-Fatal-0.017/install.json +1 -1
  144. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Try-Tiny-0.32/install.json +1 -1
  145. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Want-0.29/install.json +1 -1
  146. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/YAML-PP-v0.39.0/install.json +1 -1
  147. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/aliased-0.34/install.json +1 -1
  148. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/autobox-v3.0.2/install.json +1 -1
  149. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  150. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  151. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  152. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  153. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  154. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  155. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  156. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  157. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  158. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +95 -95
  159. package/Binaries/Perl/Linux/X64/lib/Javonet/Core/Transmitter/PerlTransmitterWrapper.pm +10 -2
  160. package/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Core/PerlCommandType.pm +1 -1
  161. package/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/InvocationContext.pm +53 -22
  162. package/Binaries/Perl/Linux/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +17 -18
  163. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Attribute-Util-1.07/install.json +1 -1
  164. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-Cmp-0.010/install.json +1 -1
  165. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.227/install.json +1 -1
  166. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Nice-Try-v1.3.15/install.json +1 -1
  167. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/PPI-1.281/install.json +1 -1
  168. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/PPI-XS-0.910/install.json +1 -1
  169. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Safe-Isa-1.000010/install.json +1 -1
  170. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-Util-Numeric-0.40/install.json +1 -1
  171. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Fatal-0.017/install.json +1 -1
  172. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/Want-0.29/install.json +1 -1
  173. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/YAML-PP-v0.39.0/install.json +1 -1
  174. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/.meta/autobox-v3.0.2/install.json +1 -1
  175. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  176. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  177. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  178. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  179. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  180. package/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +25 -25
  181. package/Binaries/Perl/Windows/X64/lib/Javonet/Core/Transmitter/PerlTransmitterWrapper.pm +10 -2
  182. package/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Core/PerlCommandType.pm +1 -1
  183. package/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/InvocationContext.pm +53 -22
  184. package/Binaries/Perl/Windows/X64/lib/Javonet/Sdk/Internal/RuntimeContext.pm +17 -18
  185. package/Binaries/Python/javonet/core/interpreter/Interpreter.py +28 -2
  186. package/Binaries/Python/javonet/core/protocol/CommandDeserializer.py +24 -10
  187. package/Binaries/Python/javonet/core/protocol/CommandSerializer.py +18 -17
  188. package/Binaries/Python/javonet/core/receiver/Receiver.py +20 -0
  189. package/Binaries/Python/javonet/utils/Command.py +23 -0
  190. package/Binaries/Python/javonet/utils/RuntimeName.py +3 -0
  191. package/Binaries/Python/javonet/utils/UtilsConst.py +42 -0
  192. package/Binaries/Python/javonet/utils/exception/ExceptionThrower.py +43 -39
  193. package/Binaries/Python/javonet/utils/messageHelper/MessageHelper.py +86 -0
  194. package/Binaries/Python/javonet/utils/messageHelper/__init__.py +0 -0
  195. package/Binaries/Ruby/Linux/X64/core/protocol/command_deserializer.rb +40 -33
  196. package/Binaries/Ruby/Linux/X64/core/protocol/command_serializer.rb +12 -19
  197. package/Binaries/Ruby/MacOs/X64/core/protocol/command_deserializer.rb +40 -33
  198. package/Binaries/Ruby/MacOs/X64/core/protocol/command_serializer.rb +12 -19
  199. package/Binaries/Ruby/Windows/X64/core/protocol/command_deserializer.rb +40 -33
  200. package/Binaries/Ruby/Windows/X64/core/protocol/command_serializer.rb +12 -19
  201. package/Binaries/version.txt +1 -1
  202. package/dist/Javonet.d.ts +34 -47
  203. package/dist/lib/core/interpreter/Interpreter.js +4 -0
  204. package/dist/lib/core/protocol/CommandDeserializer.js +30 -14
  205. package/dist/lib/core/protocol/CommandSerializer.js +38 -25
  206. package/dist/lib/core/protocol/TypeSerializer.js +1 -1
  207. package/dist/lib/core/webSocketClient/WebSocketClient.js +53 -48
  208. package/dist/lib/sdk/InvocationContext.js +3 -5
  209. package/dist/lib/sdk/RuntimeContext.js +2 -4
  210. package/lib/core/webSocketClient/WebSocketClient.js +53 -48
  211. package/package.json +1 -1
  212. package/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/.meta/Path-Tiny-0.146/install.json +0 -1
@@ -331,8 +331,8 @@ sub get_ref_value {
331
331
  );
332
332
  return Javonet::Sdk::Internal::InvocationContext->new(
333
333
  $self->{runtime_name},
334
- $self->get_connection_type(),
335
- $self->get_tcp_address(),
334
+ $self->{connection_type},
335
+ $self->{tcp_address},
336
336
  $self->build_command($command),
337
337
  0
338
338
  );
@@ -347,8 +347,40 @@ sub create_null {
347
347
  );
348
348
  return Javonet::Sdk::Internal::InvocationContext->new(
349
349
  $self->{runtime_name},
350
- $self->get_connection_type(),
351
- $self->get_tcp_address(),
350
+ $self->{connection_type},
351
+ $self->{tcp_address},
352
+ $self->build_command($command),
353
+ 0
354
+ );
355
+ }
356
+
357
+ sub get_static_method_as_delegate {
358
+ my ($self, @arguments) = @_;
359
+ my $command = PerlCommand->new(
360
+ runtime => $self->{runtime_name},
361
+ command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('GetStaticMethodAsDelegate'),
362
+ payload => \@arguments
363
+ );
364
+ return Javonet::Sdk::Internal::InvocationContext->new(
365
+ $self->{runtime_name},
366
+ $self->{connection_type},
367
+ $self->{tcp_address},
368
+ $self->build_command($command),
369
+ 0
370
+ );
371
+ }
372
+
373
+ sub get_instance_method_as_delegate {
374
+ my ($self, @arguments) = @_;
375
+ my $command = PerlCommand->new(
376
+ runtime => $self->{runtime_name},
377
+ command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('GetInstanceMethodAsDelegate'),
378
+ payload => \@arguments
379
+ );
380
+ return Javonet::Sdk::Internal::InvocationContext->new(
381
+ $self->{runtime_name},
382
+ $self->{connection_type},
383
+ $self->{tcp_address},
352
384
  $self->build_command($command),
353
385
  0
354
386
  );
@@ -377,15 +409,25 @@ sub build_command {
377
409
  sub encapsulate_payload_item {
378
410
  my ($self, $payload_item) = @_;
379
411
 
380
- if(!defined $payload_item) {
412
+ if (!defined $payload_item) {
381
413
  return PerlCommand->new(
382
- runtime => $self->{runtime_name},
414
+ runtime => $self->{runtime_name},
383
415
  command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('Value'),
384
- payload => []
416
+ payload => []
385
417
  );
386
418
  }
387
-
388
- if ($payload_item->isa('Command')) {
419
+ if (ref($payload_item) eq 'ARRAY') {
420
+ my $payload_length = @$payload_item;
421
+ for (my $i = 0; $i < $payload_length; $i++) {
422
+ $payload_item->[$i] = $self->encapsulate_payload_item($payload_item->[$i]);
423
+ }
424
+ return PerlCommand->new(
425
+ runtime => $self->{runtime_name},
426
+ command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('Array'),
427
+ payload => $payload_item
428
+ );
429
+ }
430
+ elsif ($payload_item->isa('Command')) {
389
431
  my $payload_length = @{$payload_item->{payload}};
390
432
  for (my $i = 0; $i < $payload_length; $i++) {
391
433
  $payload_item->{payload}[$i] = $self->encapsulate_payload_item($payload_item->{payload}[$i]);
@@ -395,22 +437,11 @@ sub encapsulate_payload_item {
395
437
  elsif ($payload_item->isa('Javonet::Sdk::Internal::InvocationContext')) {
396
438
  return $payload_item->get_current_command();
397
439
  }
398
- elsif (ref($payload_item) eq 'ARRAY') {
399
- my $payload_length = @$payload_item;
400
- for (my $i = 0; $i < $payload_length; $i++) {
401
- $payload_item->[$i] = $self->encapsulate_payload_item($payload_item->[$i]);
402
- }
403
- return PerlCommand->new(
404
- runtime => $self->{runtime_name},
405
- command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('Array'),
406
- payload => $payload_item
407
- );
408
- }
409
440
  else {
410
441
  return PerlCommand->new(
411
- runtime => $self->{runtime_name},
442
+ runtime => $self->{runtime_name},
412
443
  command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('Value'),
413
- payload => [$payload_item]
444
+ payload => [ $payload_item ]
414
445
  );
415
446
  }
416
447
  }
@@ -239,15 +239,25 @@ sub build_command {
239
239
  sub encapsulate_payload_item {
240
240
  my ($self, $payload_item) = @_;
241
241
 
242
- if(!defined $payload_item) {
242
+ if (!defined $payload_item) {
243
243
  return PerlCommand->new(
244
- runtime => $self->{runtime_name},
244
+ runtime => $self->{runtime_name},
245
245
  command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('Value'),
246
- payload => []
246
+ payload => []
247
247
  );
248
248
  }
249
-
250
- if ($payload_item->isa('Command')) {
249
+ if (ref($payload_item) eq 'ARRAY') {
250
+ my $payload_length = @$payload_item;
251
+ for (my $i = 0; $i < $payload_length; $i++) {
252
+ $payload_item->[$i] = $self->encapsulate_payload_item($payload_item->[$i]);
253
+ }
254
+ return PerlCommand->new(
255
+ runtime => $self->{runtime_name},
256
+ command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('Array'),
257
+ payload => $payload_item
258
+ );
259
+ }
260
+ elsif ($payload_item->isa('Command')) {
251
261
  my $payload_length = @{$payload_item->{payload}};
252
262
  for (my $i = 0; $i < $payload_length; $i++) {
253
263
  $payload_item->{payload}[$i] = $self->encapsulate_payload_item($payload_item->{payload}[$i]);
@@ -257,22 +267,11 @@ sub encapsulate_payload_item {
257
267
  elsif ($payload_item->isa('Javonet::Sdk::Internal::InvocationContext')) {
258
268
  return $payload_item->get_current_command();
259
269
  }
260
- elsif (ref($payload_item) eq 'ARRAY') {
261
- my $payload_length = @$payload_item;
262
- for (my $i = 0; $i < $payload_length; $i++) {
263
- $payload_item->[$i] = $self->encapsulate_payload_item($payload_item->[$i]);
264
- }
265
- return PerlCommand->new(
266
- runtime => $self->{runtime_name},
267
- command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('Array'),
268
- payload => $payload_item
269
- );
270
- }
271
270
  else {
272
271
  return PerlCommand->new(
273
- runtime => $self->{runtime_name},
272
+ runtime => $self->{runtime_name},
274
273
  command_type => Javonet::Sdk::Core::PerlCommandType::get_command_type('Value'),
275
- payload => [$payload_item]
274
+ payload => [ $payload_item ]
276
275
  );
277
276
  }
278
277
  }
@@ -1,16 +1,25 @@
1
+ import os
1
2
  from javonet.core.handler.Handler import Handler
2
3
  from javonet.core.protocol.CommandDeserializer import CommandDeserializer
3
4
  from javonet.core.protocol.CommandSerializer import CommandSerializer
4
5
  from javonet.utils.ConnectionType import ConnectionType
5
6
  from javonet.utils.RuntimeName import RuntimeName
6
7
  from javonet.utils.connectionData.IConnectionData import IConnectionData
8
+ from javonet.utils.messageHelper.MessageHelper import MessageHelper
7
9
 
8
10
  handler = Handler()
9
11
 
12
+
10
13
  class Interpreter:
14
+ debug_mode = os.environ.get("JAVONET_DEBUG") == "TRUE"
11
15
 
12
16
  def execute(self, command, connection_data: IConnectionData):
17
+ if self.debug_mode:
18
+ print("Sent command: " + str(command))
19
+ MessageHelper.send_message_to_app_insights("SentCommand", str(command))
20
+
13
21
  message_byte_array = CommandSerializer().serialize(command, connection_data)
22
+
14
23
  if connection_data.connection_type == ConnectionType.WebSocket:
15
24
  from javonet.core.webSocketClient.WebSocketClient import WebSocketClient
16
25
  response_byte_array = WebSocketClient().send_message(connection_data, message_byte_array)
@@ -22,8 +31,25 @@ class Interpreter:
22
31
  from javonet.core.transmitter.Transmitter import Transmitter
23
32
  response_byte_array = Transmitter.send_command(message_byte_array)
24
33
 
25
- return CommandDeserializer(response_byte_array).deserialize()
34
+ response = CommandDeserializer(response_byte_array).deserialize()
35
+
36
+ if self.debug_mode:
37
+ print("Response command: " + str(response))
38
+ MessageHelper.send_message_to_app_insights("ResponseCommand", str(response))
39
+
40
+ return response
26
41
 
27
42
  def process(self, message_byte_array):
28
43
  received_command = CommandDeserializer(message_byte_array).deserialize()
29
- return handler.handle_command(received_command)
44
+
45
+ if self.debug_mode:
46
+ print("Received command: " + str(received_command))
47
+ MessageHelper.send_message_to_app_insights("ReceivedCommand", str(received_command))
48
+
49
+ response = handler.handle_command(received_command)
50
+
51
+ if self.debug_mode:
52
+ print("Response command: " + str(response))
53
+ MessageHelper.send_message_to_app_insights("ResponseCommand", str(response))
54
+
55
+ return response
@@ -56,16 +56,30 @@ class CommandDeserializer:
56
56
  runtime = self.buffer[p + 5]
57
57
  command_type = self.buffer[p + 6]
58
58
  self.position += 7
59
- return_command = Command(RuntimeName(runtime), CommandType(command_type), [])
60
- return self.read_command_recursively(number_of_elements_in_payload, return_command)
61
-
62
- def read_command_recursively(self, number_of_elements_in_payload_left, cmd):
63
- if number_of_elements_in_payload_left == 0:
64
- return cmd
65
- else:
66
- p = self.position
67
- cmd = cmd.add_arg_to_payload(self.read_object(self.buffer[p]))
68
- return self.read_command_recursively(number_of_elements_in_payload_left - 1, cmd)
59
+
60
+ payload = [
61
+ self.read_object(self.buffer[self.position])
62
+ for _ in range(number_of_elements_in_payload)
63
+ ]
64
+ return Command(RuntimeName(runtime), CommandType(command_type), payload)
65
+
66
+ # old implementation
67
+ # def read_command(self):
68
+ # p = self.position
69
+ # number_of_elements_in_payload = TypeDeserializer.deserialize_int(self.buffer[p + 1: p + 5])
70
+ # runtime = self.buffer[p + 5]
71
+ # command_type = self.buffer[p + 6]
72
+ # self.position += 7
73
+ # return_command = Command(RuntimeName(runtime), CommandType(command_type), [])
74
+ # return self.read_command_recursively(number_of_elements_in_payload, return_command)
75
+ #
76
+ # def read_command_recursively(self, number_of_elements_in_payload_left, cmd):
77
+ # if number_of_elements_in_payload_left == 0:
78
+ # return cmd
79
+ # else:
80
+ # p = self.position
81
+ # cmd = cmd.add_arg_to_payload(self.read_object(self.buffer[p]))
82
+ # return self.read_command_recursively(number_of_elements_in_payload_left - 1, cmd)
69
83
 
70
84
  def read_string(self):
71
85
  p = self.position
@@ -1,28 +1,29 @@
1
+ import io
1
2
  from javonet.core.protocol.TypeSerializer import TypeSerializer
2
3
  from javonet.utils.Command import Command
3
4
  from javonet.utils.RuntimeName import RuntimeName
4
5
  from javonet.utils.connectionData.IConnectionData import IConnectionData
5
6
 
6
-
7
7
  class CommandSerializer:
8
- buffer = []
9
-
10
8
  def serialize(self, root_command: Command, connection_data: IConnectionData, runtime_version=0):
11
- self.insert_into_buffer([root_command.runtime_name.value, runtime_version])
12
- self.insert_into_buffer(connection_data.serialize_connection_data())
13
- self.insert_into_buffer([RuntimeName.python.value, root_command.command_type.value])
14
- self.serialize_recursively(root_command)
15
- return self.buffer
9
+ ms = io.BytesIO()
10
+
11
+ ms.write(bytes([root_command.runtime_name.value, runtime_version]))
12
+
13
+ if connection_data is not None:
14
+ ms.write(bytes(connection_data.serialize_connection_data()))
15
+ else:
16
+ ms.write(bytes([0, 0, 0, 0, 0, 0, 0]))
16
17
 
17
- def serialize_recursively(self, command):
18
+ ms.write(bytes([RuntimeName.python.value, root_command.command_type.value]))
19
+
20
+ self.serialize_recursively(root_command, ms)
21
+ return ms.getvalue()
22
+
23
+ def serialize_recursively(self, command: Command, ms: io.BytesIO):
18
24
  for item in command.get_payload():
19
25
  if isinstance(item, Command):
20
- self.insert_into_buffer(TypeSerializer.serialize_command(item))
21
- self.serialize_recursively(item)
26
+ ms.write(bytes(TypeSerializer.serialize_command(item)))
27
+ self.serialize_recursively(item, ms)
22
28
  else:
23
- self.insert_into_buffer(TypeSerializer.serialize_primitive(item))
24
-
25
- return
26
-
27
- def insert_into_buffer(self, arguments):
28
- self.buffer = self.buffer + arguments
29
+ ms.write(bytes(TypeSerializer.serialize_primitive(item)))
@@ -1,7 +1,11 @@
1
+ import sys
2
+ import traceback
3
+
1
4
  from javonet.core.interpreter.Interpreter import Interpreter
2
5
  from javonet.core.protocol.CommandSerializer import CommandSerializer
3
6
  from javonet.utils.RuntimeLogger import RuntimeLogger
4
7
  from javonet.utils.connectionData.InMemoryConnectionData import InMemoryConnectionData
8
+ from javonet.utils.messageHelper.MessageHelper import MessageHelper
5
9
 
6
10
 
7
11
  class Receiver:
@@ -9,6 +13,22 @@ class Receiver:
9
13
  def __init__(self):
10
14
  self.connection_data = InMemoryConnectionData()
11
15
 
16
+ # Store the original excepthook
17
+ self.original_excepthook = sys.excepthook
18
+
19
+ # Set up global exception handler
20
+ def custom_excepthook(exc_type, exc_value, exc_traceback):
21
+ # Format the exception
22
+ exception_string = "".join(traceback.format_exception(exc_type, exc_value, exc_traceback))
23
+ # Send to App Insights
24
+ MessageHelper.send_message_to_app_insights_sync("ReceiverUnhandledException", exception_string)
25
+ print(exception_string)
26
+ # Call the original handler
27
+ self.original_excepthook(exc_type, exc_value, exc_traceback)
28
+
29
+ # Register the custom exception handler
30
+ sys.excepthook = custom_excepthook
31
+
12
32
  def SendCommand(self, message_byte_array, messageByteArrayLen):
13
33
  return bytearray(CommandSerializer().serialize(Interpreter().process(message_byte_array), self.connection_data))
14
34
 
@@ -65,3 +65,26 @@ class Command:
65
65
  else:
66
66
  self.is_equal = False
67
67
  return self.is_equal
68
+
69
+ def __str__(self):
70
+ try:
71
+ result = "RuntimeName "
72
+ result += str(self.runtime_name).capitalize()
73
+ result += " "
74
+ result += "CommandType "
75
+ result += str(self.command_type)
76
+ result += " "
77
+ result += "Payload "
78
+
79
+ for i, item in enumerate(self.payload):
80
+ if item is None:
81
+ result += "null"
82
+ else:
83
+ result += str(item)
84
+
85
+ if i < len(self.payload) - 1:
86
+ result += " "
87
+
88
+ return result
89
+ except Exception as ex:
90
+ return f"Error while converting command to string: {str(ex)}"
@@ -11,3 +11,6 @@ class RuntimeName(Enum):
11
11
  ruby = 6
12
12
  nodejs = 7
13
13
  cpp = 8
14
+
15
+ def __str__(self):
16
+ return self.name
@@ -0,0 +1,42 @@
1
+ import os
2
+ from pathlib import Path
3
+
4
+ class UtilsConst:
5
+ _javonet_working_directory = str(Path().absolute()) + "/"
6
+ _config_source = ""
7
+ _license_key = "License key not set"
8
+
9
+ @staticmethod
10
+ def set_javonet_working_directory(path: str) -> None:
11
+ path = path.replace("\\", "/")
12
+ if not path.endswith("/"):
13
+ path = path + "/"
14
+
15
+ if not os.path.exists(path):
16
+ os.makedirs(path)
17
+ os.chmod(path, 0o700)
18
+
19
+ UtilsConst._javonet_working_directory = path
20
+
21
+ @staticmethod
22
+ def get_javonet_working_directory() -> str:
23
+ return UtilsConst._javonet_working_directory
24
+
25
+ @staticmethod
26
+ def set_config_source(value: str) -> None:
27
+ UtilsConst._config_source = value
28
+
29
+ @staticmethod
30
+ def get_config_source() -> str:
31
+ return UtilsConst._config_source
32
+
33
+ @staticmethod
34
+ def set_license_key(value: str) -> None:
35
+ if not value or value == "" or value == "your-license-key":
36
+ return
37
+
38
+ UtilsConst._license_key = value
39
+
40
+ @staticmethod
41
+ def get_license_key() -> str:
42
+ return UtilsConst._license_key
@@ -9,45 +9,49 @@ class ExceptionThrower:
9
9
 
10
10
  @staticmethod
11
11
  def throw_exception(command_exception: Command):
12
- stack_classes, stack_methods, stack_lines, stack_files = "", "", "", ""
13
- exception_message = "Python Exception with empty message"
14
- exception_name = "Python exception"
15
- javonet_stack_command = ""
16
- traceback_str = ""
17
-
18
- exception_payload_len = len(command_exception.payload)
19
- if exception_payload_len >=8:
20
- stack_classes, stack_methods, stack_lines, stack_files = ExceptionThrower.get_local_stack_trace(
21
- command_exception.get_payload()[4],
22
- command_exception.get_payload()[5],
23
- command_exception.get_payload()[6],
24
- command_exception.get_payload()[7])
25
-
26
- if exception_payload_len >= 4:
27
- exception_message = command_exception.get_payload()[3]
28
-
29
- if exception_payload_len >= 3:
30
- exception_name = command_exception.get_payload()[2]
31
-
32
- if exception_payload_len >= 2:
33
- javonet_stack_command = command_exception.get_payload()[1]
34
-
35
- if exception_payload_len >= 1:
36
- original_exception = ExceptionType.to_exception(command_exception.get_payload()[0])
37
-
38
-
39
- for i in range(len(stack_classes)):
40
- if i < len(stack_files) and stack_files[i]:
41
- traceback_str += "File \"{}\"".format(stack_files[i])
42
- if i < len(stack_lines) and stack_lines[i]:
43
- traceback_str += ", line {}".format(stack_lines[i])
44
- if i < len(stack_methods) and stack_methods[i]:
45
- traceback_str += ", in {}".format(stack_methods[i])
46
- traceback_str += "\n"
47
- if i < len(stack_classes) and stack_classes[i]:
48
- traceback_str += " {}\n".format(stack_classes[i])
49
-
50
- return ExceptionThrower.raise_exception(original_exception, exception_message, traceback_str)
12
+ try:
13
+ stack_classes, stack_methods, stack_lines, stack_files = "", "", "", ""
14
+ exception_message = "Python Exception with empty message"
15
+ exception_name = "Python exception"
16
+ javonet_stack_command = ""
17
+ traceback_str = ""
18
+ original_exception = ""
19
+
20
+ exception_payload_len = len(command_exception.payload)
21
+ if exception_payload_len >=8:
22
+ stack_classes, stack_methods, stack_lines, stack_files = ExceptionThrower.get_local_stack_trace(
23
+ command_exception.get_payload()[4],
24
+ command_exception.get_payload()[5],
25
+ command_exception.get_payload()[6],
26
+ command_exception.get_payload()[7])
27
+
28
+ if exception_payload_len >= 4:
29
+ exception_message = command_exception.get_payload()[3]
30
+
31
+ if exception_payload_len >= 3:
32
+ exception_name = command_exception.get_payload()[2]
33
+
34
+ if exception_payload_len >= 2:
35
+ javonet_stack_command = command_exception.get_payload()[1]
36
+
37
+ if exception_payload_len >= 1:
38
+ original_exception = ExceptionType.to_exception(command_exception.get_payload()[0])
39
+
40
+
41
+ for i in range(len(stack_classes)):
42
+ if i < len(stack_files) and stack_files[i]:
43
+ traceback_str += "File \"{}\"".format(stack_files[i])
44
+ if i < len(stack_lines) and stack_lines[i]:
45
+ traceback_str += ", line {}".format(stack_lines[i])
46
+ if i < len(stack_methods) and stack_methods[i]:
47
+ traceback_str += ", in {}".format(stack_methods[i])
48
+ traceback_str += "\n"
49
+ if i < len(stack_classes) and stack_classes[i]:
50
+ traceback_str += " {}\n".format(stack_classes[i])
51
+
52
+ return ExceptionThrower.raise_exception(original_exception, exception_message, traceback_str)
53
+ except Exception as e:
54
+ return JavonetException(str(e), "Error while processing exception: " + str(command_exception), "")
51
55
 
52
56
  @staticmethod
53
57
  def raise_exception(original_exception, exception_message, traceback_str):
@@ -0,0 +1,86 @@
1
+ # File: javonet/utils/messageHelper/MessageHelper.py
2
+ import datetime
3
+ import importlib.metadata
4
+ import os
5
+ import platform
6
+ import socket
7
+ import threading
8
+ import urllib.request
9
+ import urllib.error
10
+ import json
11
+
12
+ from javonet.utils.UtilsConst import UtilsConst
13
+
14
+
15
+ def __get_host_name():
16
+ try:
17
+ return socket.gethostname()
18
+ except socket.error:
19
+ return "Unknown Host"
20
+
21
+
22
+ def __get_package_version():
23
+ try:
24
+ return importlib.metadata.version("javonet-python-sdk")
25
+ except importlib.metadata.PackageNotFoundError:
26
+ return None
27
+
28
+
29
+ address = "https://dc.services.visualstudio.com/v2/track"
30
+ instrumentation_key = os.environ.get("JAVONET_INSTRUMENTATION_KEY", "2c751560-90c8-40e9-b5dd-534566514723")
31
+ calling_runtime_name = "Python"
32
+ javonet_version = __get_package_version()
33
+ node_name = __get_host_name()
34
+ os_name = platform.system()
35
+
36
+
37
+ class MessageHelper:
38
+
39
+ @staticmethod
40
+ def send_message_to_app_insights(operation_name, message):
41
+ thread = threading.Thread(target=MessageHelper.send_message_to_app_insights_sync,
42
+ args=(operation_name, message))
43
+ thread.start()
44
+
45
+ @staticmethod
46
+ def send_message_to_app_insights_sync(operation_name, message):
47
+ try:
48
+ formatted_datetime = datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%S")
49
+ license_key = UtilsConst.get_license_key()
50
+
51
+ json_payload = {
52
+ "name": "AppEvents",
53
+ "time": formatted_datetime,
54
+ "iKey": instrumentation_key,
55
+ "tags": {
56
+ "ai.application.ver": javonet_version,
57
+ "ai.cloud.roleInstance": node_name,
58
+ "ai.operation.id": "0",
59
+ "ai.operation.parentId": "0",
60
+ "ai.operation.name": operation_name,
61
+ "ai.internal.sdkVersion": "javonet:2",
62
+ "ai.internal.nodeName": node_name
63
+ },
64
+ "data": {
65
+ "baseType": "EventData",
66
+ "baseData": {
67
+ "ver": 2,
68
+ "name": message,
69
+ "properties": {
70
+ "OperatingSystem": os_name,
71
+ "LicenseKey": license_key,
72
+ "CallingTechnology": calling_runtime_name
73
+ }
74
+ }
75
+ }
76
+ }
77
+
78
+ data = json.dumps(json_payload).encode("utf-8")
79
+ req = urllib.request.Request(address, data=data, headers={'Content-Type': 'application/json'})
80
+ with urllib.request.urlopen(req) as response:
81
+ status_code = response.getcode()
82
+ return status_code
83
+ except urllib.error.HTTPError as e:
84
+ return e.code
85
+ except Exception:
86
+ pass