@voxgig/sdkgen 4.8.2 → 4.8.3

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 (376) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/doctor.d.ts +1 -0
  3. package/dist/action/doctor.js +50 -2
  4. package/dist/action/doctor.js.map +1 -1
  5. package/dist/helpers/naming.js +4 -2
  6. package/dist/helpers/naming.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/model/sdkgen.aon +21 -0
  9. package/package.json +1 -1
  10. package/project/.sdk/model/feature/secrets.aon +120 -18
  11. package/project/.sdk/model/target/c.aon +10 -0
  12. package/project/.sdk/model/target/clojure.aon +13 -0
  13. package/project/.sdk/model/target/cpp.aon +10 -0
  14. package/project/.sdk/model/target/csharp.aon +9 -0
  15. package/project/.sdk/model/target/dart.aon +10 -0
  16. package/project/.sdk/model/target/elixir.aon +9 -0
  17. package/project/.sdk/model/target/go.aon +13 -0
  18. package/project/.sdk/model/target/java.aon +9 -0
  19. package/project/.sdk/model/target/js.aon +7 -0
  20. package/project/.sdk/model/target/kotlin.aon +9 -0
  21. package/project/.sdk/model/target/lean.aon +17 -0
  22. package/project/.sdk/model/target/lua.aon +8 -0
  23. package/project/.sdk/model/target/ocaml.aon +9 -0
  24. package/project/.sdk/model/target/perl.aon +8 -0
  25. package/project/.sdk/model/target/php.aon +8 -0
  26. package/project/.sdk/model/target/py.aon +13 -0
  27. package/project/.sdk/model/target/rb.aon +8 -0
  28. package/project/.sdk/model/target/rust.aon +10 -0
  29. package/project/.sdk/model/target/scala.aon +21 -2
  30. package/project/.sdk/model/target/swift.aon +18 -0
  31. package/project/.sdk/model/target/ts.aon +13 -0
  32. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +9 -2
  33. package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +3 -0
  34. package/project/.sdk/src/cmp/dart/Test_dart.ts +2 -0
  35. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +4 -1
  36. package/project/.sdk/src/cmp/go/Config_go.ts +59 -2
  37. package/project/.sdk/src/cmp/go/Main_go.ts +8 -2
  38. package/project/.sdk/src/cmp/java/Test_java.ts +6 -5
  39. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +6 -5
  40. package/project/.sdk/src/cmp/lean/Package_lean.ts +23 -0
  41. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +1 -0
  42. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +1 -0
  43. package/project/.sdk/src/cmp/ocaml/Gitignore_ocaml.ts +1 -0
  44. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +7 -3
  45. package/project/.sdk/src/cmp/py/Config_py.ts +82 -1
  46. package/project/.sdk/src/cmp/py/Main_py.ts +44 -0
  47. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +2 -0
  48. package/project/.sdk/src/cmp/swift/Main_swift.ts +10 -0
  49. package/project/.sdk/src/cmp/swift/Package_swift.ts +13 -1
  50. package/project/.sdk/src/cmp/ts/Config_ts.ts +42 -17
  51. package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +13 -1
  52. package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +13 -1
  53. package/project/.sdk/tm/c/Makefile +38 -3
  54. package/project/.sdk/tm/c/tests/omni_resolver.h +361 -0
  55. package/project/.sdk/tm/c/tests/omni_smoke_test.c +237 -0
  56. package/project/.sdk/tm/c/tests/primary_corpus_test.c +205 -284
  57. package/project/.sdk/tm/c/tests/struct_corpus_test.c +292 -212
  58. package/project/.sdk/tm/c/tests/vendor/omni/json.c +811 -0
  59. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +240 -0
  60. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +940 -0
  61. package/project/.sdk/tm/c/tests/vendor/omni/util.c +351 -0
  62. package/project/.sdk/tm/c/utility/struct/utility.c +7 -2
  63. package/project/.sdk/tm/clojure/test/sdk/test/omni.clj +401 -0
  64. package/project/.sdk/tm/clojure/test/sdk/test/omni_smoke.clj +81 -0
  65. package/project/.sdk/tm/clojure/test/sdk/test/primary.clj +92 -58
  66. package/project/.sdk/tm/clojure/test/sdk/test/struct_corpus.clj +122 -149
  67. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +8 -3
  68. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +145 -0
  69. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +445 -0
  70. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +145 -0
  71. package/project/.sdk/tm/cpp/Makefile +5 -1
  72. package/project/.sdk/tm/cpp/test/omni_resolver.hpp +473 -0
  73. package/project/.sdk/tm/cpp/test/omni_smoke_test.cpp +209 -0
  74. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +243 -184
  75. package/project/.sdk/tm/cpp/test/runner_support.hpp +68 -181
  76. package/project/.sdk/tm/cpp/test/struct_corpus_test.cpp +183 -56
  77. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +406 -0
  78. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +751 -0
  79. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +256 -0
  80. package/project/.sdk/tm/cpp/utility/pipeline.hpp +7 -1
  81. package/project/.sdk/tm/csharp/test/OmniResolver.cs +491 -0
  82. package/project/.sdk/tm/csharp/test/OmniSmokeTest.cs +106 -0
  83. package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +299 -316
  84. package/project/.sdk/tm/csharp/test/Runner.cs +104 -269
  85. package/project/.sdk/tm/csharp/test/StructUtilityTest.cs +535 -724
  86. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +864 -0
  87. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +347 -0
  88. package/project/.sdk/tm/csharp/utility/MakeSpec.cs +3 -1
  89. package/project/.sdk/tm/csharp/utility/PrepareMethod.cs +6 -1
  90. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +21 -5
  91. package/project/.sdk/tm/dart/test/omni.dart +520 -0
  92. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +143 -0
  93. package/project/.sdk/tm/dart/test/primary_test.dart +86 -28
  94. package/project/.sdk/tm/dart/test/struct_test.dart +438 -11
  95. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +7 -0
  96. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +653 -0
  97. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +232 -0
  98. package/project/.sdk/tm/elixir/Makefile +11 -3
  99. package/project/.sdk/tm/elixir/test/omni_smoke_test.exs +117 -0
  100. package/project/.sdk/tm/elixir/test/primary_utility_test.exs +341 -16
  101. package/project/.sdk/tm/elixir/test/struct_corpus_test.exs +554 -9
  102. package/project/.sdk/tm/elixir/test/support/omni.ex +377 -0
  103. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +122 -0
  104. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +623 -0
  105. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +187 -0
  106. package/project/.sdk/tm/go/core/context.go +32 -16
  107. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +261 -0
  108. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +78 -0
  109. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +652 -0
  110. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +250 -0
  111. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +194 -0
  112. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +80 -0
  113. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +238 -0
  114. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1575 -0
  115. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +248 -0
  116. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +184 -0
  117. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +123 -0
  118. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +79 -0
  119. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +296 -0
  120. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +87 -0
  121. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +161 -0
  122. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +292 -0
  123. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +201 -0
  124. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +187 -0
  125. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +184 -0
  126. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +114 -0
  127. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +156 -0
  128. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +209 -0
  129. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +241 -0
  130. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +151 -0
  131. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +152 -0
  132. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +143 -0
  133. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +120 -0
  134. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +439 -0
  135. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +685 -0
  136. package/project/.sdk/tm/go/feature/secrets_feature.go +675 -0
  137. package/project/.sdk/tm/go/src/feature/secrets/.gitkeep +0 -0
  138. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +799 -0
  139. package/project/.sdk/tm/go/test/omni/omni.go +897 -0
  140. package/project/.sdk/tm/go/test/omni/util.go +360 -0
  141. package/project/.sdk/tm/go/test/omniresolver_test.go +748 -0
  142. package/project/.sdk/tm/go/test/omnismoke_test.go +112 -0
  143. package/project/.sdk/tm/go/test/primary_utility_test.go +123 -191
  144. package/project/.sdk/tm/go/test/struct_utility_test.go +323 -16
  145. package/project/.sdk/tm/go/test/testsupport_test.go +294 -0
  146. package/project/.sdk/tm/go/utility/make_options.go +8 -1
  147. package/project/.sdk/tm/go/utility/prepare_method.go +5 -1
  148. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +2 -2
  149. package/project/.sdk/tm/java/test/OmniResolver.java +355 -0
  150. package/project/.sdk/tm/java/test/OmniSmokeTest.java +99 -0
  151. package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +254 -280
  152. package/project/.sdk/tm/java/test/RunnerSupport.java +9 -194
  153. package/project/.sdk/tm/java/test/StructCorpusTest.java +119 -42
  154. package/project/.sdk/tm/java/test/vendor/omni/Json.java +287 -0
  155. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +851 -0
  156. package/project/.sdk/tm/java/test/vendor/omni/Util.java +322 -0
  157. package/project/.sdk/tm/java/utility/MakeSpec.java +3 -1
  158. package/project/.sdk/tm/java/utility/PrepareMethod.java +5 -5
  159. package/project/.sdk/tm/java/utility/struct/Struct.java +17 -4
  160. package/project/.sdk/tm/js/src/utility/StructUtility.js +3 -3
  161. package/project/.sdk/tm/js/test/omni.js +251 -0
  162. package/project/.sdk/tm/js/test/omni.test.js +105 -0
  163. package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +6 -2
  164. package/project/.sdk/tm/js/test/utility/StructUtility.test.js +27 -2
  165. package/project/.sdk/tm/js/test/vendor/omni/index.js +77 -0
  166. package/project/.sdk/tm/js/test/vendor/omni/runner.js +613 -0
  167. package/project/.sdk/tm/js/test/vendor/omni/util.js +212 -0
  168. package/project/.sdk/tm/kotlin/core/Utility.kt +1 -1
  169. package/project/.sdk/tm/kotlin/test/OmniResolver.kt +343 -0
  170. package/project/.sdk/tm/kotlin/test/OmniSmokeTest.kt +100 -0
  171. package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +244 -262
  172. package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +9 -178
  173. package/project/.sdk/tm/kotlin/test/StructCorpusTest.kt +121 -32
  174. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +264 -0
  175. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +615 -0
  176. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +139 -0
  177. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -3
  178. package/project/.sdk/tm/kotlin/utility/Prepare.kt +6 -6
  179. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +18 -2
  180. package/project/.sdk/tm/lean/Makefile +12 -5
  181. package/project/.sdk/tm/lean/src/SdkUtility.lean +14 -1
  182. package/project/.sdk/tm/lean/test/OmniResolver.lean +358 -0
  183. package/project/.sdk/tm/lean/test/OmniSmoke.lean +174 -0
  184. package/project/.sdk/tm/lean/test/StructCorpus.lean +245 -574
  185. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +155 -291
  186. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +997 -0
  187. package/project/.sdk/tm/lua/test/omni.lua +456 -0
  188. package/project/.sdk/tm/lua/test/omni_smoke_test.lua +103 -0
  189. package/project/.sdk/tm/lua/test/primary_utility_test.lua +250 -509
  190. package/project/.sdk/tm/lua/test/struct_utility_test.lua +161 -70
  191. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +268 -0
  192. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +385 -0
  193. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +641 -0
  194. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +282 -0
  195. package/project/.sdk/tm/lua/utility/prepare_method.lua +5 -1
  196. package/project/.sdk/tm/lua/utility/struct/regex.lua +663 -0
  197. package/project/.sdk/tm/lua/utility/struct/struct.lua +660 -420
  198. package/project/.sdk/tm/ocaml/Makefile +37 -12
  199. package/project/.sdk/tm/ocaml/test/omni_resolver.ml +284 -0
  200. package/project/.sdk/tm/ocaml/test/omni_smoke_test.ml +169 -0
  201. package/project/.sdk/tm/ocaml/test/primary_utility_test.ml +84 -100
  202. package/project/.sdk/tm/ocaml/test/struct_corpus.ml +225 -201
  203. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +1157 -0
  204. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +88 -12
  205. package/project/.sdk/tm/perl/t/omni.pm +647 -0
  206. package/project/.sdk/tm/perl/t/omni_smoke.t +87 -0
  207. package/project/.sdk/tm/perl/t/primary_utility.t +189 -487
  208. package/project/.sdk/tm/perl/t/struct_utility.t +455 -389
  209. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +649 -0
  210. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +253 -0
  211. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +24 -0
  212. package/project/.sdk/tm/perl/utility/prepare_method.pm +7 -2
  213. package/project/.sdk/tm/php/test/Omni.php +691 -0
  214. package/project/.sdk/tm/php/test/OmniSmokeTest.php +93 -0
  215. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +210 -571
  216. package/project/.sdk/tm/php/test/StructUtilityTest.php +320 -342
  217. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +644 -0
  218. package/project/.sdk/tm/php/test/vendor/omni/Util.php +283 -0
  219. package/project/.sdk/tm/php/utility/MakeSpec.php +10 -3
  220. package/project/.sdk/tm/php/utility/PrepareBody.php +7 -1
  221. package/project/.sdk/tm/php/utility/PrepareMethod.php +6 -2
  222. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +36 -0
  223. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +141 -0
  224. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +50 -0
  225. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +333 -0
  226. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +198 -0
  227. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +147 -0
  228. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +52 -0
  229. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +139 -0
  230. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1053 -0
  231. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +171 -0
  232. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +95 -0
  233. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +116 -0
  234. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +59 -0
  235. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +87 -0
  236. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +112 -0
  237. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +74 -0
  238. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +116 -0
  239. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +192 -0
  240. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +120 -0
  241. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +140 -0
  242. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +62 -0
  243. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +101 -0
  244. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +152 -0
  245. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +115 -0
  246. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +92 -0
  247. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +101 -0
  248. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +119 -0
  249. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +125 -0
  250. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +211 -0
  251. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +455 -0
  252. package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +467 -0
  253. package/project/.sdk/tm/py/pkg/utility/prepare_method.py +5 -1
  254. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/__init__.py +0 -2
  255. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +780 -529
  256. package/project/.sdk/tm/py/src/feature/secrets/.gitkeep +0 -0
  257. package/project/.sdk/tm/py/test/feature/__init__.py +0 -0
  258. package/project/.sdk/tm/py/test/feature/secrets/__init__.py +0 -0
  259. package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +337 -0
  260. package/project/.sdk/tm/py/test/omni.py +415 -0
  261. package/project/.sdk/tm/py/test/test_omni_smoke.py +74 -0
  262. package/project/.sdk/tm/py/test/test_primary_utility.py +144 -668
  263. package/project/.sdk/tm/py/test/test_struct_utility.py +74 -27
  264. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +62 -0
  265. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +566 -0
  266. package/project/.sdk/tm/py/test/voxgig_omni/util.py +237 -0
  267. package/project/.sdk/tm/rb/test/omni.rb +505 -0
  268. package/project/.sdk/tm/rb/test/omni_smoke_test.rb +72 -0
  269. package/project/.sdk/tm/rb/test/primary_utility_test.rb +174 -560
  270. package/project/.sdk/tm/rb/test/struct_utility_test.rb +13 -7
  271. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +493 -0
  272. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +199 -0
  273. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +15 -0
  274. package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -1
  275. package/project/.sdk/tm/rust/tests/common/mod.rs +19 -242
  276. package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +888 -0
  277. package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +286 -0
  278. package/project/.sdk/tm/rust/tests/primary_utility_test.rs +318 -312
  279. package/project/.sdk/tm/rust/tests/struct_utility_test.rs +66 -28
  280. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +412 -0
  281. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +38 -0
  282. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +392 -0
  283. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +1001 -0
  284. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +161 -0
  285. package/project/.sdk/tm/rust/utility/prepare_method.rs +5 -1
  286. package/project/.sdk/tm/scala/Makefile +16 -6
  287. package/project/.sdk/tm/scala/sdktest/OmniResolver.scala +497 -0
  288. package/project/.sdk/tm/scala/sdktest/OmniSmoke.scala +192 -0
  289. package/project/.sdk/tm/scala/sdktest/PrimaryCorpus.scala +47 -19
  290. package/project/.sdk/tm/scala/sdktest/StructCorpus.scala +0 -0
  291. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +229 -0
  292. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +552 -0
  293. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +104 -0
  294. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Constants.swift +10 -0
  295. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Inject.swift +28 -5
  296. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Injection.swift +5 -1
  297. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Minor.swift +4 -1
  298. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Validate.swift +15 -5
  299. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +6 -1
  300. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniResolver.swift +474 -0
  301. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniSmokeTest.swift +107 -0
  302. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +141 -178
  303. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/Runner.swift +17 -113
  304. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/StructUtilityTest.swift +295 -446
  305. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +364 -0
  306. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +730 -0
  307. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +162 -0
  308. package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +7 -0
  309. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +148 -0
  310. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +55 -0
  311. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +344 -0
  312. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +205 -0
  313. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +138 -0
  314. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +46 -0
  315. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +349 -0
  316. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +181 -0
  317. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1132 -0
  318. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +177 -0
  319. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +119 -0
  320. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +102 -0
  321. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +61 -0
  322. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +112 -0
  323. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +100 -0
  324. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +37 -0
  325. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +163 -30
  326. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +27 -22
  327. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/aws.ts +26 -36
  328. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/azuresecrets.ts +19 -21
  329. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/boru.ts +36 -17
  330. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/doppler.ts +14 -21
  331. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/gcpsecrets.ts +27 -27
  332. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/hashicorp.ts +25 -39
  333. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +99 -0
  334. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/infisical.ts +14 -16
  335. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/onepassword.ts +15 -22
  336. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +98 -0
  337. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{Sigv4.ts → plugins/sigv4.ts} +7 -6
  338. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +97 -23
  339. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +37 -0
  340. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +4 -17
  341. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +4 -16
  342. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +11 -25
  343. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +6 -23
  344. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +106 -39
  345. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +3 -3
  346. package/project/.sdk/tm/ts/test/omni.ts +104 -32
  347. package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +27 -0
  348. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +32 -5
  349. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +2 -2
  350. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +2 -2
  351. package/project/.sdk/tm/zig/test/primary_utility_test.zig +1 -1
  352. package/project/.sdk/tm/zig/test/struct_runner.zig +5 -4
  353. package/project/sdkgen-package.json +1 -1
  354. package/src/action/doctor.ts +66 -2
  355. package/src/helpers/naming.ts +4 -2
  356. package/project/.sdk/tm/c/tests/runner.h +0 -274
  357. package/project/.sdk/tm/cpp/test/struct_runner.hpp +0 -314
  358. package/project/.sdk/tm/csharp/test/StructRunner.cs +0 -276
  359. package/project/.sdk/tm/dart/test/runner.dart +0 -406
  360. package/project/.sdk/tm/dart/test/struct_corpus.dart +0 -531
  361. package/project/.sdk/tm/elixir/test/support/struct_corpus.ex +0 -1088
  362. package/project/.sdk/tm/go/test/runner_test.go +0 -629
  363. package/project/.sdk/tm/go/test/struct_runner_test.go +0 -1094
  364. package/project/.sdk/tm/java/test/StructRunner.java +0 -281
  365. package/project/.sdk/tm/js/test/runner.js +0 -387
  366. package/project/.sdk/tm/kotlin/test/StructRunner.kt +0 -177
  367. package/project/.sdk/tm/lua/test/struct_runner.lua +0 -602
  368. package/project/.sdk/tm/ocaml/test/corpus_runner.ml +0 -185
  369. package/project/.sdk/tm/perl/t/struct_runner.pm +0 -275
  370. package/project/.sdk/tm/php/test/StructRunner.php +0 -275
  371. package/project/.sdk/tm/py/test/struct_runner.py +0 -411
  372. package/project/.sdk/tm/rb/test/struct_runner.rb +0 -309
  373. package/project/.sdk/tm/rust/tests/struct_runner/mod.rs +0 -424
  374. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/Registry.ts +0 -90
  375. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/http.ts +0 -66
  376. package/project/.sdk/tm/ts/test/vendor/omni/compat.ts +0 -188
@@ -0,0 +1,355 @@
1
+ package JAVAPACKAGE.sdktest;
2
+
3
+ // The corpus test runner: vendored @voxgig/omni driven through its NATIVE
4
+ // API (com.voxgig.omni.Runner.makeRunner(specref, provider)), presented to
5
+ // the corpus tests in the struct-runner shape they already use (run.spec,
6
+ // run.runset, run.runsetflags, run.client). No compat shim is vendored:
7
+ // the adapter below IS the whole bridge, per language, per the vendor-tag
8
+ // rollout (docs/design/vendor-tag-rollout.md, Decision 4). It supersedes
9
+ // the engine half of RunnerSupport (runset/matchDeep) and the whole
10
+ // StructRunner class (support lives on in RunnerSupport).
11
+ //
12
+ // Java-specific decisions, each load-bearing:
13
+ //
14
+ // 1. CONTEXTS STAY MAPS ACROSS THE RUNNER. omni sets `entry.ctx` to the
15
+ // contextified args[0] and `match: {ctx: ...}` assertions read THROUGH
16
+ // it with omni's own getpath, which walks JSON maps only. A typed
17
+ // Context there would make every ctx assertion read "absent". So the
18
+ // subjects receive the MAP, build the typed Context with
19
+ // OmniResolver.omniCtx(args[0], ...) at the call site, run the
20
+ // utility, and write the observable ctx state back into the same map
21
+ // with omniSyncCtx - which is what makes the live SDK reachable
22
+ // through ctx.client for the generated utilities (the ts resolver gets
23
+ // both for free from prototype delegation; maps-plus-sync is the same
24
+ // idiom the go resolver uses for the same contract, omni#56).
25
+ //
26
+ // 2. ZERO-ARGUMENT ENTRIES. The corpus carries entries with no `in`,
27
+ // `args` or `ctx`, meaning "call the subject with NO argument". The
28
+ // vendored java port already distinguishes that case natively - such
29
+ // an entry arrives as one Json.ABSENT argument (java has no
30
+ // `undefined`, so absence is a sentinel) - which is why java needs no
31
+ // novalargs spec rewrite (go) and no compat shim (lua/php). The
32
+ // resolver's ONE conversion is the sentinel swap at the call boundary:
33
+ // Json.ABSENT -> Struct.UNDEF on the way in (a whole argument only -
34
+ // a parsed corpus value never contains one), Struct.UNDEF ->
35
+ // Json.ABSENT on the way out, walked, because getpath can leave UNDEF
36
+ // inside a partially-resolved node. Ported from the struct java port's
37
+ // own omni bridge (voxgig/struct java/src/test/Omni.java).
38
+ //
39
+ // 3. THE VENDORED JAVA PORT LACKS THE omni#54 RUNNER FIXES the
40
+ // TypeScript port has at this tag (voxgig/omni#64 landed them for
41
+ // js/go/py only): Util.jsonstr has no cycle guard, and Runner.match
42
+ // clones its base with Util.clone. Both only bite on CYCLIC values,
43
+ // and java's Util.clone/jsonstr pass non-JSON values (a typed Context,
44
+ // an SDK client) through without walking them - so decision 1 above
45
+ // (JSON-only maps in entries, typed state kept out of them) is also
46
+ // what keeps every value the runner clones or stringifies acyclic.
47
+ // The errify half (non-Error throwables) cannot arise: java subjects
48
+ // fail by THROWING, and the errify hook below keeps the SDK error's
49
+ // code for `match: {err: {code: ...}}` assertions.
50
+ //
51
+ // 4. NO subject-by-name provider hook. Java's Utility fields are TYPED
52
+ // functional interfaces (CtxFn<T> takes a Context), so a generic name
53
+ // lookup cannot produce omni's (Object...) subject without a per-name
54
+ // adapter; every generated call site passes its subject explicitly,
55
+ // so the hook would be dead weight. DEF.client entries still resolve:
56
+ // the client hook below builds another live test SDK.
57
+
58
+ import java.nio.file.Path;
59
+ import java.util.ArrayList;
60
+ import java.util.IdentityHashMap;
61
+ import java.util.LinkedHashMap;
62
+ import java.util.List;
63
+ import java.util.Map;
64
+ import java.util.Set;
65
+
66
+ import com.voxgig.omni.Json;
67
+ import com.voxgig.omni.Runner;
68
+ import com.voxgig.omni.Util;
69
+
70
+ import JAVAPACKAGE.core.Context;
71
+ import JAVAPACKAGE.core.Helpers;
72
+ import JAVAPACKAGE.core.ProjectNameSDK;
73
+ import JAVAPACKAGE.core.SdkError;
74
+ import JAVAPACKAGE.core.Utility;
75
+ import JAVAPACKAGE.utility.struct.Struct;
76
+
77
+ @SuppressWarnings({"unchecked"})
78
+ public final class OmniResolver {
79
+
80
+ // The sentinels, under the names the corpus tests already use.
81
+ public static final String NULLMARK = Runner.NULLMARK;
82
+ public static final String UNDEFMARK = Runner.UNDEFMARK;
83
+ public static final String EXISTSMARK = Runner.EXISTSMARK;
84
+
85
+ private OmniResolver() {}
86
+
87
+ /** The function under test, in omni's native argument shape. */
88
+ @FunctionalInterface
89
+ public interface Subject {
90
+ Object call(Object... args) throws Exception;
91
+ }
92
+
93
+ /** Resolves one named section of the spec. */
94
+ @FunctionalInterface
95
+ public interface NamedRunner {
96
+ Run runner(String name, Object store);
97
+ }
98
+
99
+ /**
100
+ * What the runner returns for one named spec section - the struct-runner
101
+ * shape the corpus call sites consume. A failing entry throws
102
+ * {@link Runner.OmniError}, which fails the JUnit test with the entry
103
+ * named.
104
+ */
105
+ public static final class Run {
106
+ public final Map<String, Object> spec;
107
+ public final Object client;
108
+
109
+ private final Runner.RunPack pack;
110
+
111
+ private Run(Runner.RunPack pack, Object client) {
112
+ this.pack = pack;
113
+ this.client = client;
114
+ this.spec = Helpers.toMapAny(pack.spec);
115
+ }
116
+
117
+ /** A named group of the resolved spec. */
118
+ public Object set(String name) {
119
+ return pack.set(name);
120
+ }
121
+
122
+ /** Run one set of test entries with omni's default flags. */
123
+ public void runset(Object testspec, Subject subject) {
124
+ runsetflags(testspec, null, subject);
125
+ }
126
+
127
+ /** Run one set of test entries with explicit flags. */
128
+ public void runsetflags(Object testspec, Map<String, Object> flags, Subject subject) {
129
+ Runner.Subject wrapped =
130
+ null == subject
131
+ ? null
132
+ : args -> {
133
+ Object[] sargs = new Object[args.length];
134
+ for (int index = 0; index < args.length; index++) {
135
+ sargs[index] =
136
+ Util.isabsent(args[index]) ? Struct.UNDEF : args[index];
137
+ }
138
+ return toomni(subject.call(sargs));
139
+ };
140
+ pack.runsetflags(
141
+ testspec, null == flags ? new LinkedHashMap<>() : flags, wrapped);
142
+ }
143
+ }
144
+
145
+ /** Run-time options for a set of test entries ({@code flags("null", false)}). */
146
+ public static Map<String, Object> flags(Object... pairs) {
147
+ return Runner.flags(pairs);
148
+ }
149
+
150
+ /**
151
+ * The struct runner's makeRunner(testfile, client) signature, backed by
152
+ * vendored omni. `testfile` is a spec path (absolutized against the
153
+ * working directory - omni's docs say a port must resolve the path
154
+ * itself) or an already-parsed spec value (omni's own capability), which
155
+ * keeps smoke tests free of fixture files.
156
+ */
157
+ public static NamedRunner makeRunner(Object testfile, Object client) {
158
+ Object specref = testfile;
159
+ if (testfile instanceof String) {
160
+ specref = Path.of((String) testfile).toAbsolutePath().normalize().toString();
161
+ }
162
+
163
+ Runner.Provider provider = sdkProvider(client);
164
+ Runner.RunnerPack runner = Runner.makeRunner(specref, provider);
165
+
166
+ return (name, store) -> new Run(runner.runner(name, store), client);
167
+ }
168
+
169
+ /**
170
+ * This port's model -> omni's. Walked, because {@code Struct.UNDEF} CAN
171
+ * sit inside a result - getpath leaves it in a partially-resolved node -
172
+ * and a container built by the port is its own, so rewriting it harms
173
+ * nothing. (Subject ARGUMENTS are never walked: containers must cross by
174
+ * identity so `match.args` sees in-place mutation, e.g. setpath.)
175
+ */
176
+ static Object toomni(Object val) {
177
+ if (Struct.UNDEF == val) {
178
+ return Json.ABSENT;
179
+ }
180
+ if (val instanceof Map) {
181
+ Map<String, Object> out = new LinkedHashMap<>();
182
+ for (Map.Entry<String, Object> entry : ((Map<String, Object>) val).entrySet()) {
183
+ out.put(entry.getKey(), toomni(entry.getValue()));
184
+ }
185
+ return out;
186
+ }
187
+ if (val instanceof List) {
188
+ List<Object> out = new ArrayList<>();
189
+ for (Object entry : (List<Object>) val) {
190
+ out.add(toomni(entry));
191
+ }
192
+ return out;
193
+ }
194
+ return val;
195
+ }
196
+
197
+ // defProviders marks the providers a spec's DEF.client block built - the
198
+ // only ones omniCtx lets override a call site's explicit client (the
199
+ // base provider rides on EVERY ctx entry, and letting it win would
200
+ // defeat sections that deliberately construct a differently-optioned
201
+ // client). Identity maps, guarded: JUnit may run tests concurrently.
202
+ private static final Map<Runner.Provider, Object> PROVIDER_CLIENTS =
203
+ new IdentityHashMap<>();
204
+ private static final Set<Runner.Provider> DEF_PROVIDERS =
205
+ java.util.Collections.newSetFromMap(new IdentityHashMap<>());
206
+
207
+ private static synchronized void registerProvider(
208
+ Runner.Provider provider, Object client) {
209
+ PROVIDER_CLIENTS.put(provider, client);
210
+ }
211
+
212
+ private static synchronized void markDefProvider(Runner.Provider provider) {
213
+ DEF_PROVIDERS.add(provider);
214
+ }
215
+
216
+ private static synchronized Object defProviderClient(Runner.Provider provider) {
217
+ return DEF_PROVIDERS.contains(provider) ? PROVIDER_CLIENTS.get(provider) : null;
218
+ }
219
+
220
+ /** Wrap a live client as an omni provider (see decisions 1 and 4 above). */
221
+ static Runner.Provider sdkProvider(Object client) {
222
+ Runner.Provider provider = new Runner.Provider();
223
+
224
+ // A DEF.client entry becomes another live test SDK, wrapped the same
225
+ // way and marked as DEF-built so omniCtx resolves it back.
226
+ provider.client = (options) -> {
227
+ Map<String, Object> opts = Helpers.toMapAny(options);
228
+ Runner.Provider sub =
229
+ sdkProvider(ProjectNameSDK.testSDK(null,
230
+ null == opts ? new LinkedHashMap<>() : opts));
231
+ markDefProvider(sub);
232
+ return sub;
233
+ };
234
+
235
+ // Client options may reference the runner store.
236
+ provider.inject = (options, store) -> {
237
+ Struct.inject(options, store);
238
+ return options;
239
+ };
240
+
241
+ // Keep the SDK error's code beside its message, so a corpus
242
+ // `match: {err: {code: ...}}` can assert on it - the java analogue of
243
+ // the omni#54 errify fix (see decision 3 above).
244
+ provider.errify = (err) -> {
245
+ if (err instanceof SdkError) {
246
+ SdkError sdkerr = (SdkError) err;
247
+ Map<String, Object> out = new LinkedHashMap<>();
248
+ out.put("name", "SdkError");
249
+ out.put("message", sdkerr.getMessage());
250
+ if (null != sdkerr.code && !sdkerr.code.isEmpty()) {
251
+ out.put("code", sdkerr.code);
252
+ }
253
+ return out;
254
+ }
255
+ return Runner.errify(err);
256
+ };
257
+
258
+ registerProvider(provider, client);
259
+
260
+ return provider;
261
+ }
262
+
263
+ /**
264
+ * Build the typed Context a generated utility takes from the ctx MAP
265
+ * omni handed the subject (args[0]). The map's `client` entry - an omni
266
+ * provider when a DEF entry selected one - resolves back to the live SDK
267
+ * it wraps; otherwise the given client is used. (The engine half of the
268
+ * retired RunnerSupport.runset call sites did this as makeCtxFromMap +
269
+ * fixctx, per section, by hand.)
270
+ */
271
+ public static Context omniCtx(Object arg, ProjectNameSDK client, Utility utility) {
272
+ Map<String, Object> ctxmap = Helpers.toMapAny(arg);
273
+ if (null == ctxmap) {
274
+ ctxmap = new LinkedHashMap<>();
275
+ }
276
+
277
+ // Only a DEF-built client overrides the caller's: the base provider is
278
+ // on every ctx entry, and a call site that constructed a special
279
+ // client (a DEF.setup options set) must keep it.
280
+ Object p = ctxmap.get("client");
281
+ if (p instanceof Runner.Provider) {
282
+ Object live = defProviderClient((Runner.Provider) p);
283
+ if (live instanceof ProjectNameSDK) {
284
+ client = (ProjectNameSDK) live;
285
+ utility = client.getUtility();
286
+ }
287
+ }
288
+
289
+ Context ctx = RunnerSupport.makeCtxFromMap(ctxmap, client, utility);
290
+ RunnerSupport.fixctx(ctx, client);
291
+ return ctx;
292
+ }
293
+
294
+ /**
295
+ * Write the OBSERVABLE state of a typed context back into the ctx map
296
+ * the entry holds, which is where a `match: {ctx: ...}` assertion reads.
297
+ * The subject mutated the typed context; the map is what the runner can
298
+ * walk. (The retired engine call sites did this per section, by hand,
299
+ * as "update entry ctx for match".)
300
+ */
301
+ public static void omniSyncCtx(Object arg, Context ctx) {
302
+ Map<String, Object> ctxmap = Helpers.toMapAny(arg);
303
+ if (null == ctxmap || null == ctx) {
304
+ return;
305
+ }
306
+
307
+ if (null != ctx.spec) {
308
+ Map<String, Object> spec = new LinkedHashMap<>();
309
+ spec.put("base", ctx.spec.base);
310
+ spec.put("prefix", ctx.spec.prefix);
311
+ spec.put("suffix", ctx.spec.suffix);
312
+ spec.put("path", ctx.spec.path);
313
+ spec.put("method", ctx.spec.method);
314
+ spec.put("params", ctx.spec.params);
315
+ spec.put("query", ctx.spec.query);
316
+ spec.put("headers", ctx.spec.headers);
317
+ spec.put("step", ctx.spec.step);
318
+ spec.put("alias", ctx.spec.alias);
319
+ if (null != ctx.spec.body) {
320
+ spec.put("body", ctx.spec.body);
321
+ }
322
+ if (null != ctx.spec.url && !ctx.spec.url.isEmpty()) {
323
+ spec.put("url", ctx.spec.url);
324
+ }
325
+ ctxmap.put("spec", spec);
326
+ }
327
+
328
+ if (null != ctx.result) {
329
+ Map<String, Object> res = new LinkedHashMap<>();
330
+ res.put("ok", ctx.result.ok);
331
+ res.put("status", ctx.result.status);
332
+ res.put("statusText", ctx.result.statusText);
333
+ res.put("headers", ctx.result.headers);
334
+ if (null != ctx.result.body) {
335
+ res.put("body", ctx.result.body);
336
+ }
337
+ if (null != ctx.result.err) {
338
+ Map<String, Object> err = new LinkedHashMap<>();
339
+ err.put("message", ctx.result.err.getMessage());
340
+ res.put("err", err);
341
+ }
342
+ if (null != ctx.result.resdata) {
343
+ res.put("resdata", ctx.result.resdata);
344
+ }
345
+ if (null != ctx.result.resmatch) {
346
+ res.put("resmatch", ctx.result.resmatch);
347
+ }
348
+ ctxmap.put("result", res);
349
+ }
350
+
351
+ if (null != ctx.response) {
352
+ ctxmap.put("response", "exists");
353
+ }
354
+ }
355
+ }
@@ -0,0 +1,99 @@
1
+ package JAVAPACKAGE.sdktest;
2
+
3
+ // Smoke tests for the vendored omni runner itself: a runner that cannot
4
+ // FAIL a bad entry would turn every corpus suite vacuously green, so pin
5
+ // the failure paths, not just the happy one. (The java peer of
6
+ // tm/ts/test/omni.test.ts and tm/go/test/omnismoke_test.go.)
7
+
8
+ import static org.junit.jupiter.api.Assertions.assertNotNull;
9
+ import static org.junit.jupiter.api.Assertions.assertThrows;
10
+ import static org.junit.jupiter.api.Assertions.assertTrue;
11
+
12
+ import java.util.LinkedHashMap;
13
+ import java.util.List;
14
+ import java.util.Map;
15
+
16
+ import org.junit.jupiter.api.Test;
17
+
18
+ import com.voxgig.omni.Runner;
19
+
20
+ import JAVAPACKAGE.core.ProjectNameSDK;
21
+
22
+ public class OmniSmokeTest {
23
+
24
+ // A minimal in-memory spec: no fixture file, no OMNI block (lenient v0,
25
+ // like the shared corpus).
26
+ static Map<String, Object> smokeSpec() {
27
+ Map<String, Object> spec = new LinkedHashMap<>();
28
+ Map<String, Object> primary = new LinkedHashMap<>();
29
+ Map<String, Object> smoke = new LinkedHashMap<>();
30
+
31
+ Map<String, Object> basic = new LinkedHashMap<>();
32
+ basic.put("set", List.of(
33
+ Map.of("in", 1, "out", 2),
34
+ Map.of("in", 41, "out", 42)));
35
+ smoke.put("basic", basic);
36
+
37
+ Map<String, Object> bad = new LinkedHashMap<>();
38
+ bad.put("set", List.of(Map.of("in", 1, "out", 999)));
39
+ smoke.put("bad", bad);
40
+
41
+ Map<String, Object> err = new LinkedHashMap<>();
42
+ err.put("set", List.of(Map.of("in", 0, "err", "zero refused")));
43
+ smoke.put("err", err);
44
+
45
+ primary.put("smoke", smoke);
46
+ spec.put("primary", primary);
47
+ return spec;
48
+ }
49
+
50
+ static Object smokeInc(Object... args) {
51
+ int n = ((Number) args[0]).intValue();
52
+ if (0 == n) {
53
+ throw new RuntimeException("smoke: zero refused");
54
+ }
55
+ return n + 1;
56
+ }
57
+
58
+ static OmniResolver.Run smokeRun() {
59
+ OmniResolver.NamedRunner runner =
60
+ OmniResolver.makeRunner(smokeSpec(), ProjectNameSDK.testSDK());
61
+ OmniResolver.Run run = runner.runner("smoke", null);
62
+ assertNotNull(run.spec, "smoke spec section did not resolve");
63
+ return run;
64
+ }
65
+
66
+ @Test
67
+ public void runsetPassesACorrectSubject() {
68
+ OmniResolver.Run run = smokeRun();
69
+ run.runset(run.spec.get("basic"), OmniSmokeTest::smokeInc);
70
+ }
71
+
72
+ @Test
73
+ public void runsetFailsAWrongResult() {
74
+ OmniResolver.Run run = smokeRun();
75
+
76
+ Runner.OmniError err = assertThrows(Runner.OmniError.class,
77
+ () -> run.runset(run.spec.get("bad"), OmniSmokeTest::smokeInc),
78
+ "a wrong result went unreported - the corpus suites would be vacuously green");
79
+
80
+ assertTrue(err.getMessage().contains("result mismatch"),
81
+ "expected a result mismatch failure, got: " + err.getMessage());
82
+ }
83
+
84
+ @Test
85
+ public void expectedErrorIsMatchedAndAMissingOneFails() {
86
+ OmniResolver.Run run = smokeRun();
87
+
88
+ // The erroring subject satisfies the expected-error entry.
89
+ run.runset(run.spec.get("err"), OmniSmokeTest::smokeInc);
90
+
91
+ // A subject that does NOT raise must fail that same entry.
92
+ Runner.OmniError err = assertThrows(Runner.OmniError.class,
93
+ () -> run.runset(run.spec.get("err"), (args) -> args[0]),
94
+ "a missing expected error went unreported");
95
+
96
+ assertTrue(err.getMessage().contains("expected error did not occur"),
97
+ "expected an expected-error failure, got: " + err.getMessage());
98
+ }
99
+ }