@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
@@ -1,29 +1,81 @@
1
1
  // Primary utility tests — run the shared `primary` subtree of
2
2
  // ../.sdk/test/test.json against the SDK pipeline utilities (mirrors
3
3
  // tm/go/test/primary_utility_test.go).
4
+ //
5
+ // The corpus is driven by the VENDORED omni runner through the adapter in
6
+ // tests/omni_resolver/mod.rs. Subjects receive omni's native argument list:
7
+ // a `ctx` entry arrives as args[0], a MAP — `make_ctx_from_map` builds the
8
+ // typed context a generated utility takes, and the subject writes the
9
+ // observable ctx state back into that same map, which is what a
10
+ // `match: {ctx: ...}` assertion reads (see the resolver's decision 3).
4
11
 
5
12
  mod common;
13
+ mod omni_resolver;
6
14
 
7
15
  use std::cell::RefCell;
8
16
  use std::rc::Rc;
9
17
 
10
18
  use common::*;
19
+ use omni_resolver::{entrycount, jpath, tostruct, Run};
11
20
 
12
21
  use RUSTCRATE::core::helpers::{get_str, getp, ja, jo, setp, to_map, vfn};
13
22
  use RUSTCRATE::utility::voxgigstruct as vs;
14
23
  use RUSTCRATE::{
15
24
  new as new_sdk, test_sdk, BaseFeature, Context, CtxSpec, Feature, FeatureRef, Operation,
16
- ProjectNameSDK, SdkResult, Spec, Utility, Value,
25
+ ProjectNameError, ProjectNameSDK, SdkResult, Spec, Utility, Value,
17
26
  };
18
27
 
19
- fn primary() -> Value {
20
- let spec = load_test_spec();
21
- let primary = get_spec(&spec, &["primary"]);
28
+ // Sections deliberately left empty in the shared corpus
29
+ // (.sdk/test/primary/<name>.aon carries a PENDING header). Everything else
30
+ // MUST contribute cases.
31
+ const PENDING_SECTIONS: &[&str] = &[
32
+ "fetcher", "makeFetchDef", "makeResult", "featureAdd",
33
+ "featureHook", "featureInit",
34
+ ];
35
+
36
+ fn primary_run() -> Run {
37
+ let run = Run::section("primary");
22
38
  assert!(
23
- matches!(primary, Value::Map(_)),
39
+ run.spec.ismap(),
24
40
  "primary section not found in test.json"
25
41
  );
26
- primary
42
+ run
43
+ }
44
+
45
+ /// Run one corpus section, failing loudly when it would run ZERO cases.
46
+ ///
47
+ /// A renamed section, a fixture that failed to compile, or an empty set used
48
+ /// to report PASS while running zero assertions — the whole point of a shared
49
+ /// oracle lost without a single red test. The guard lives here rather than in
50
+ /// the runner, which is vendored verbatim; the shared corpus is a v0 spec,
51
+ /// and v0 tolerates an empty set.
52
+ fn runsection<F>(run: &mut Run, name: &str, subject: F)
53
+ where
54
+ F: FnMut(&mut Vec<Value>) -> Result<Value, ProjectNameError> + 'static,
55
+ {
56
+ let basic = run.set(&[name, "basic"]);
57
+ assert!(
58
+ basic.ismap(),
59
+ "test corpus section {:?} missing — check the name against .sdk/test/primary/",
60
+ name
61
+ );
62
+ assert!(
63
+ basic.get("set").islist(),
64
+ "test corpus section {:?} has no basic.set list — zero cases would run",
65
+ name
66
+ );
67
+ assert!(
68
+ 0 < entrycount(&basic) || PENDING_SECTIONS.contains(&name),
69
+ "test corpus section {:?} is EMPTY — zero cases would run; add cases, \
70
+ or mark the fixture PENDING in .sdk/test/primary/",
71
+ name
72
+ );
73
+
74
+ let before = run.failures.len();
75
+ run.run_set_args(&basic, true, name, subject);
76
+ if before < run.failures.len() {
77
+ panic!("{}", run.failures[before..].join("\n"));
78
+ }
27
79
  }
28
80
 
29
81
  fn base_client() -> (Rc<ProjectNameSDK>, Rc<Utility>) {
@@ -100,9 +152,9 @@ fn primary_clean_basic() {
100
152
  #[test]
101
153
  fn primary_done_basic() {
102
154
  let (client, utility) = base_client();
103
- let primary = primary();
104
- runset(&get_spec(&primary, &["done", "basic"]), &mut |entry| {
105
- let ctx = make_ctx_from_map(&getp(entry, "ctx"), &client, &utility);
155
+ let mut run = primary_run();
156
+ runsection(&mut run, "done", move |args| {
157
+ let ctx = make_ctx_from_map(&args[0], &client, &utility);
106
158
  fixctx(&ctx, &client);
107
159
  utility.done(&ctx)
108
160
  });
@@ -111,17 +163,14 @@ fn primary_done_basic() {
111
163
  #[test]
112
164
  fn primary_make_error_basic() {
113
165
  let (client, utility) = base_client();
114
- let primary = primary();
115
- runset(&get_spec(&primary, &["makeError", "basic"]), &mut |entry| {
116
- let args = match getp(entry, "args") {
117
- Value::List(l) => Value::List(l),
118
- _ => ja(vec![Value::empty_map()]),
119
- };
120
- let ctxmap = vs::get_elem(&args, &Value::Num(0.0), Value::empty_map());
166
+ let mut run = primary_run();
167
+ runsection(&mut run, "makeError", move |args| {
168
+ let arglist = Value::list(args.clone());
169
+ let ctxmap = vs::get_elem(&arglist, &Value::Num(0.0), Value::empty_map());
121
170
  let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
122
171
  fixctx(&ctx, &client);
123
172
 
124
- let err = match vs::get_elem(&args, &Value::Num(1.0), Value::Noval) {
173
+ let err = match vs::get_elem(&arglist, &Value::Num(1.0), Value::Noval) {
125
174
  Value::Map(m) => err_from_map(&Value::Map(m)),
126
175
  _ => None,
127
176
  };
@@ -349,28 +398,25 @@ fn primary_fetcher_blocked_test_mode() {
349
398
  #[test]
350
399
  fn primary_make_context_basic() {
351
400
  let (client, utility) = base_client();
352
- let primary = primary();
353
- runset(
354
- &get_spec(&primary, &["makeContext", "basic"]),
355
- &mut |entry| {
356
- let vin = getp(entry, "in");
357
- if let Value::Map(_) = vin {
358
- let ctx = make_ctx_from_map(&vin, &client, &utility);
359
- let out = jo(vec![("id", Value::str(ctx.id.clone()))]);
360
- let op = ctx.op.borrow().clone();
361
- setp(
362
- &out,
363
- "op",
364
- jo(vec![
365
- ("name", Value::str(op.name.clone())),
366
- ("input", Value::str(op.input.clone())),
367
- ]),
368
- );
369
- return Ok(out);
370
- }
371
- Ok(Value::Noval)
372
- },
373
- );
401
+ let mut run = primary_run();
402
+ runsection(&mut run, "makeContext", move |args| {
403
+ let vin = args[0].clone();
404
+ if let Value::Map(_) = vin {
405
+ let ctx = make_ctx_from_map(&vin, &client, &utility);
406
+ let out = jo(vec![("id", Value::str(ctx.id.clone()))]);
407
+ let op = ctx.op.borrow().clone();
408
+ setp(
409
+ &out,
410
+ "op",
411
+ jo(vec![
412
+ ("name", Value::str(op.name.clone())),
413
+ ("input", Value::str(op.input.clone())),
414
+ ]),
415
+ );
416
+ return Ok(out);
417
+ }
418
+ Ok(Value::Noval)
419
+ });
374
420
  }
375
421
 
376
422
  #[test]
@@ -443,92 +489,83 @@ fn primary_make_fetch_def_with_body() {
443
489
  #[test]
444
490
  fn primary_make_options_basic() {
445
491
  let (client, utility) = base_client();
446
- let primary = primary();
447
- runset(
448
- &get_spec(&primary, &["makeOptions", "basic"]),
449
- &mut |entry| {
450
- let vin = getp(entry, "in");
451
- let ctx = utility.make_context(
452
- CtxSpec {
453
- options: match getp(&vin, "options") {
454
- Value::Map(m) => Some(Value::Map(m)),
455
- _ => None,
456
- },
457
- config: match getp(&vin, "config") {
458
- Value::Map(m) => Some(Value::Map(m)),
459
- _ => None,
460
- },
461
- ..Default::default()
492
+ let mut run = primary_run();
493
+ runsection(&mut run, "makeOptions", move |args| {
494
+ let vin = args[0].clone();
495
+ let ctx = utility.make_context(
496
+ CtxSpec {
497
+ options: match getp(&vin, "options") {
498
+ Value::Map(m) => Some(Value::Map(m)),
499
+ _ => None,
462
500
  },
463
- None,
464
- );
465
- *ctx.client.borrow_mut() = Some(client.clone());
466
- *ctx.utility.borrow_mut() = Some(utility.clone());
467
- Ok(utility.make_options(&ctx))
468
- },
469
- );
501
+ config: match getp(&vin, "config") {
502
+ Value::Map(m) => Some(Value::Map(m)),
503
+ _ => None,
504
+ },
505
+ ..Default::default()
506
+ },
507
+ None,
508
+ );
509
+ *ctx.client.borrow_mut() = Some(client.clone());
510
+ *ctx.utility.borrow_mut() = Some(utility.clone());
511
+ Ok(utility.make_options(&ctx))
512
+ });
470
513
  }
471
514
 
472
515
  #[test]
473
516
  fn primary_make_request_basic() {
474
517
  let (client, utility) = base_client();
475
- let primary = primary();
476
- runset(
477
- &get_spec(&primary, &["makeRequest", "basic"]),
478
- &mut |entry| {
479
- let ctxmap = getp(entry, "ctx");
480
- let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
481
- *ctx.options.borrow_mut() = client.options_map();
482
-
483
- utility.make_request(&ctx)?;
484
-
485
- // Update entry ctx for match checking.
486
- if let Value::Map(_) = &ctxmap {
487
- if ctx.response.borrow().is_some() {
488
- setp(&ctxmap, "response", Value::str("exists"));
489
- }
490
- if ctx.result.borrow().is_some() {
491
- setp(&ctxmap, "result", Value::str("exists"));
492
- }
518
+ let mut run = primary_run();
519
+ runsection(&mut run, "makeRequest", move |args| {
520
+ let ctxmap = args[0].clone();
521
+ let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
522
+ *ctx.options.borrow_mut() = client.options_map();
523
+
524
+ utility.make_request(&ctx)?;
525
+
526
+ // Write the observable ctx state back into args[0] for the match.
527
+ if let Value::Map(_) = &ctxmap {
528
+ if ctx.response.borrow().is_some() {
529
+ setp(&ctxmap, "response", Value::str("exists"));
530
+ }
531
+ if ctx.result.borrow().is_some() {
532
+ setp(&ctxmap, "result", Value::str("exists"));
493
533
  }
534
+ }
494
535
 
495
- Ok(Value::Noval)
496
- },
497
- );
536
+ Ok(Value::Noval)
537
+ });
498
538
  }
499
539
 
500
540
  #[test]
501
541
  fn primary_make_response_basic() {
502
542
  let (client, utility) = base_client();
503
- let primary = primary();
504
- runset(
505
- &get_spec(&primary, &["makeResponse", "basic"]),
506
- &mut |entry| {
507
- let ctxmap = getp(entry, "ctx");
508
- let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
509
- fixctx(&ctx, &client);
510
-
511
- utility.make_response(&ctx)?;
512
-
513
- // Update entry ctx for match checking with result data.
514
- if let (Value::Map(_), Some(result)) = (&ctxmap, ctx.result.borrow().clone()) {
515
- let r = result.borrow();
516
- setp(
517
- &ctxmap,
518
- "result",
519
- jo(vec![
520
- ("ok", Value::Bool(r.ok)),
521
- ("status", Value::Num(r.status as f64)),
522
- ("statusText", Value::str(r.status_text.clone())),
523
- ("headers", r.headers.clone()),
524
- ("body", r.body.clone()),
525
- ]),
526
- );
527
- }
543
+ let mut run = primary_run();
544
+ runsection(&mut run, "makeResponse", move |args| {
545
+ let ctxmap = args[0].clone();
546
+ let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
547
+ fixctx(&ctx, &client);
528
548
 
529
- Ok(Value::Noval)
530
- },
531
- );
549
+ utility.make_response(&ctx)?;
550
+
551
+ // Update entry ctx for match checking with result data.
552
+ if let (Value::Map(_), Some(result)) = (&ctxmap, ctx.result.borrow().clone()) {
553
+ let r = result.borrow();
554
+ setp(
555
+ &ctxmap,
556
+ "result",
557
+ jo(vec![
558
+ ("ok", Value::Bool(r.ok)),
559
+ ("status", Value::Num(r.status as f64)),
560
+ ("statusText", Value::str(r.status_text.clone())),
561
+ ("headers", r.headers.clone()),
562
+ ("body", r.body.clone()),
563
+ ]),
564
+ );
565
+ }
566
+
567
+ Ok(Value::Noval)
568
+ });
532
569
  }
533
570
 
534
571
  #[test]
@@ -595,13 +632,13 @@ fn primary_make_result_no_result() {
595
632
 
596
633
  #[test]
597
634
  fn primary_make_spec_basic() {
598
- let primary = primary();
599
- let setup_opts = get_spec(&primary, &["makeSpec", "DEF", "setup", "a"]);
635
+ let mut run = primary_run();
636
+ let setup_opts = tostruct(&jpath(&run.spec, &["makeSpec", "DEF", "setup", "a"]));
600
637
  let spec_client = test_sdk(Value::Noval, setup_opts);
601
638
  let spec_utility = spec_client.get_utility();
602
639
 
603
- runset(&get_spec(&primary, &["makeSpec", "basic"]), &mut |entry| {
604
- let ctxmap = getp(entry, "ctx");
640
+ runsection(&mut run, "makeSpec", move |args| {
641
+ let ctxmap = args[0].clone();
605
642
  let ctx = make_ctx_from_map(&ctxmap, &spec_client, &spec_utility);
606
643
  *ctx.options.borrow_mut() = spec_client.options_map();
607
644
 
@@ -659,9 +696,9 @@ fn primary_make_point_basic() {
659
696
  #[test]
660
697
  fn primary_make_url_basic() {
661
698
  let (client, utility) = base_client();
662
- let primary = primary();
663
- runset(&get_spec(&primary, &["makeUrl", "basic"]), &mut |entry| {
664
- let ctxmap = getp(entry, "ctx");
699
+ let mut run = primary_run();
700
+ runsection(&mut run, "makeUrl", move |args| {
701
+ let ctxmap = args[0].clone();
665
702
  let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
666
703
  if ctx.result.borrow().is_none() {
667
704
  *ctx.result.borrow_mut() = Some(Rc::new(RefCell::new(SdkResult::new(
@@ -675,9 +712,9 @@ fn primary_make_url_basic() {
675
712
  #[test]
676
713
  fn primary_operator_basic() {
677
714
  let (_client, _utility) = base_client();
678
- let primary = primary();
679
- runset(&get_spec(&primary, &["operator", "basic"]), &mut |entry| {
680
- let vin = getp(entry, "in");
715
+ let mut run = primary_run();
716
+ runsection(&mut run, "operator", move |args| {
717
+ let vin = args[0].clone();
681
718
  let op = Operation::new(&vin);
682
719
  Ok(jo(vec![
683
720
  ("entity", Value::str(op.entity.clone())),
@@ -691,36 +728,34 @@ fn primary_operator_basic() {
691
728
  #[test]
692
729
  fn primary_param_basic() {
693
730
  let (client, utility) = base_client();
694
- let primary = primary();
695
- runset(&get_spec(&primary, &["param", "basic"]), &mut |entry| {
696
- let args = getp(entry, "args");
697
- if vs::size(&args) < 2 {
731
+ let mut run = primary_run();
732
+ runsection(&mut run, "param", move |args| {
733
+ if args.len() < 2 {
698
734
  return Ok(Value::Noval);
699
735
  }
700
736
 
701
- let ctxmap = vs::get_elem(&args, &Value::Num(0.0), Value::empty_map());
737
+ let ctxmap = match &args[0] {
738
+ Value::Map(m) => Value::Map(m.clone()),
739
+ _ => {
740
+ let fresh = Value::empty_map();
741
+ args[0] = fresh.clone();
742
+ fresh
743
+ }
744
+ };
702
745
  let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
703
- let paramdef = vs::get_elem(&args, &Value::Num(1.0), Value::Noval);
746
+ let paramdef = args[1].clone();
704
747
 
705
748
  let result = utility.param(&ctx, &paramdef);
706
749
 
707
- // Copy spec alias back to entry ctx for matching.
708
- if let Value::Map(_) = getp(&getp(&getp(entry, "match"), "ctx"), "spec") {
709
- let entry_ctx = match getp(entry, "ctx") {
710
- Value::Map(m) => Value::Map(m),
711
- _ => {
712
- let e = Value::empty_map();
713
- setp(entry, "ctx", e.clone());
714
- e
715
- }
716
- };
717
- if let Some(spec) = ctx.spec.borrow().clone() {
718
- setp(
719
- &entry_ctx,
720
- "spec",
721
- jo(vec![("alias", spec.borrow().alias.clone())]),
722
- );
723
- }
750
+ // Write the resolved spec alias back into args[0] the map a
751
+ // `match: {ctx: {spec: {alias: ...}}}` assertion reads (resolver
752
+ // decision 3 retargets it onto `args.0`).
753
+ if let Some(spec) = ctx.spec.borrow().clone() {
754
+ setp(
755
+ &ctxmap,
756
+ "spec",
757
+ jo(vec![("alias", spec.borrow().alias.clone())]),
758
+ );
724
759
  }
725
760
 
726
761
  Ok(result)
@@ -729,85 +764,77 @@ fn primary_param_basic() {
729
764
 
730
765
  #[test]
731
766
  fn primary_prepare_auth_basic() {
732
- let primary = primary();
733
- let setup_opts = get_spec(&primary, &["prepareAuth", "DEF", "setup", "a"]);
767
+ let mut run = primary_run();
768
+ let setup_opts = tostruct(&jpath(&run.spec, &["prepareAuth", "DEF", "setup", "a"]));
734
769
  let auth_client = test_sdk(Value::Noval, setup_opts);
735
770
  let auth_utility = auth_client.get_utility();
736
771
 
737
- runset(
738
- &get_spec(&primary, &["prepareAuth", "basic"]),
739
- &mut |entry| {
740
- let ctxmap = getp(entry, "ctx");
741
- let ctx = make_ctx_from_map(&ctxmap, &auth_client, &auth_utility);
742
- fixctx(&ctx, &auth_client);
772
+ runsection(&mut run, "prepareAuth", move |args| {
773
+ let ctxmap = args[0].clone();
774
+ let ctx = make_ctx_from_map(&ctxmap, &auth_client, &auth_utility);
775
+ fixctx(&ctx, &auth_client);
743
776
 
744
- auth_utility.prepare_auth(&ctx)?;
777
+ auth_utility.prepare_auth(&ctx)?;
745
778
 
746
- // Update entry ctx for match.
747
- if let (Value::Map(_), Some(spec)) = (&ctxmap, ctx.spec.borrow().clone()) {
748
- setp(
749
- &ctxmap,
750
- "spec",
751
- jo(vec![("headers", spec.borrow().headers.clone())]),
752
- );
753
- }
779
+ // Update entry ctx for match.
780
+ if let (Value::Map(_), Some(spec)) = (&ctxmap, ctx.spec.borrow().clone()) {
781
+ setp(
782
+ &ctxmap,
783
+ "spec",
784
+ jo(vec![("headers", spec.borrow().headers.clone())]),
785
+ );
786
+ }
754
787
 
755
- Ok(Value::Noval)
756
- },
757
- );
788
+ Ok(Value::Noval)
789
+ });
758
790
  }
759
791
 
760
792
  #[test]
761
793
  fn primary_prepare_body_basic() {
762
794
  let (client, utility) = base_client();
763
- let primary = primary();
764
- runset(
765
- &get_spec(&primary, &["prepareBody", "basic"]),
766
- &mut |entry| {
767
- let ctx = make_ctx_from_map(&getp(entry, "ctx"), &client, &utility);
768
- fixctx(&ctx, &client);
769
- Ok(utility.prepare_body(&ctx))
770
- },
771
- );
795
+ let mut run = primary_run();
796
+ runsection(&mut run, "prepareBody", move |args| {
797
+ let ctx = make_ctx_from_map(&args[0].clone(), &client, &utility);
798
+ fixctx(&ctx, &client);
799
+ Ok(utility.prepare_body(&ctx))
800
+ });
772
801
  }
773
802
 
774
803
  #[test]
775
804
  fn primary_prepare_headers_basic() {
776
805
  let (client, utility) = base_client();
777
- let primary = primary();
778
- runset(
779
- &get_spec(&primary, &["prepareHeaders", "basic"]),
780
- &mut |entry| {
781
- let ctx = make_ctx_from_map(&getp(entry, "ctx"), &client, &utility);
782
- Ok(utility.prepare_headers(&ctx))
783
- },
784
- );
806
+ let mut run = primary_run();
807
+ runsection(&mut run, "prepareHeaders", move |args| {
808
+ let ctx = make_ctx_from_map(&args[0].clone(), &client, &utility);
809
+ Ok(utility.prepare_headers(&ctx))
810
+ });
785
811
  }
786
812
 
787
813
  #[test]
788
814
  fn primary_prepare_method_basic() {
789
815
  let (client, utility) = base_client();
790
- let primary = primary();
791
- runset(
792
- &get_spec(&primary, &["prepareMethod", "basic"]),
793
- &mut |entry| {
794
- let ctx = make_ctx_from_map(&getp(entry, "ctx"), &client, &utility);
795
- Ok(Value::str(utility.prepare_method(&ctx)))
796
- },
797
- );
816
+ let mut run = primary_run();
817
+ runsection(&mut run, "prepareMethod", move |args| {
818
+ let ctx = make_ctx_from_map(&args[0].clone(), &client, &utility);
819
+ // An op the API does not define resolves NO method: ts answers
820
+ // undefined and rust answers "" both are "no value" to the
821
+ // corpus, which pins it with an entry that declares no `out`.
822
+ let method = utility.prepare_method(&ctx);
823
+ if method.is_empty() {
824
+ return Ok(Value::Noval);
825
+ }
826
+ Ok(Value::str(method))
827
+ });
798
828
  }
799
829
 
800
830
  #[test]
801
831
  fn primary_prepare_params_basic() {
802
832
  let (client, utility) = base_client();
803
- let primary = primary();
804
- runset(
805
- &get_spec(&primary, &["prepareParams", "basic"]),
806
- &mut |entry| {
807
- let ctx = make_ctx_from_map(&getp(entry, "ctx"), &client, &utility);
808
- Ok(utility.prepare_params(&ctx))
809
- },
810
- );
833
+ let mut run = primary_run();
834
+ runsection(&mut run, "prepareParams", move |args| {
835
+ let ctx = make_ctx_from_map(&args[0].clone(), &client, &utility);
836
+ Ok(utility.prepare_params(&ctx))
837
+ });
811
838
  }
812
839
 
813
840
  // Was two hand-written cases that had drifted out of the shared corpus (the
@@ -817,163 +844,142 @@ fn primary_prepare_params_basic() {
817
844
  #[test]
818
845
  fn primary_prepare_path_basic() {
819
846
  let (client, utility) = base_client();
820
- let primary = primary();
821
- runset(
822
- &get_spec(&primary, &["preparePath", "basic"]),
823
- &mut |entry| {
824
- let ctx = make_ctx_from_map(&getp(entry, "ctx"), &client, &utility);
825
- Ok(Value::str(utility.prepare_path(&ctx)))
826
- },
827
- );
847
+ let mut run = primary_run();
848
+ runsection(&mut run, "preparePath", move |args| {
849
+ let ctx = make_ctx_from_map(&args[0].clone(), &client, &utility);
850
+ Ok(Value::str(utility.prepare_path(&ctx)))
851
+ });
828
852
  }
829
853
 
830
854
  #[test]
831
855
  fn primary_prepare_query_basic() {
832
856
  let (client, utility) = base_client();
833
- let primary = primary();
834
- runset(
835
- &get_spec(&primary, &["prepareQuery", "basic"]),
836
- &mut |entry| {
837
- let ctx = make_ctx_from_map(&getp(entry, "ctx"), &client, &utility);
838
- Ok(utility.prepare_query(&ctx))
839
- },
840
- );
857
+ let mut run = primary_run();
858
+ runsection(&mut run, "prepareQuery", move |args| {
859
+ let ctx = make_ctx_from_map(&args[0].clone(), &client, &utility);
860
+ Ok(utility.prepare_query(&ctx))
861
+ });
841
862
  }
842
863
 
843
864
  #[test]
844
865
  fn primary_result_basic_basic() {
845
866
  let (client, utility) = base_client();
846
- let primary = primary();
847
- runset(
848
- &get_spec(&primary, &["resultBasic", "basic"]),
849
- &mut |entry| {
850
- let ctx = make_ctx_from_map(&getp(entry, "ctx"), &client, &utility);
851
- fixctx(&ctx, &client);
852
-
853
- let result = utility.result_basic(&ctx);
854
-
855
- let out = Value::empty_map();
856
- if let Some(result) = result {
857
- let r = result.borrow();
858
- setp(&out, "status", Value::Num(r.status as f64));
859
- setp(&out, "statusText", Value::str(r.status_text.clone()));
860
- if let Some(err) = &r.err {
861
- setp(
862
- &out,
863
- "err",
864
- jo(vec![("message", Value::str(err.msg.clone()))]),
865
- );
866
- }
867
+ let mut run = primary_run();
868
+ runsection(&mut run, "resultBasic", move |args| {
869
+ let ctx = make_ctx_from_map(&args[0].clone(), &client, &utility);
870
+ fixctx(&ctx, &client);
871
+
872
+ let result = utility.result_basic(&ctx);
873
+
874
+ let out = Value::empty_map();
875
+ if let Some(result) = result {
876
+ let r = result.borrow();
877
+ setp(&out, "status", Value::Num(r.status as f64));
878
+ setp(&out, "statusText", Value::str(r.status_text.clone()));
879
+ if let Some(err) = &r.err {
880
+ setp(
881
+ &out,
882
+ "err",
883
+ jo(vec![("message", Value::str(err.msg.clone()))]),
884
+ );
867
885
  }
886
+ }
868
887
 
869
- Ok(out)
870
- },
871
- );
888
+ Ok(out)
889
+ });
872
890
  }
873
891
 
874
892
  #[test]
875
893
  fn primary_result_body_basic() {
876
894
  let (client, utility) = base_client();
877
- let primary = primary();
878
- runset(
879
- &get_spec(&primary, &["resultBody", "basic"]),
880
- &mut |entry| {
881
- let ctxmap = getp(entry, "ctx");
882
- let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
895
+ let mut run = primary_run();
896
+ runsection(&mut run, "resultBody", move |args| {
897
+ let ctxmap = args[0].clone();
898
+ let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
883
899
 
884
- utility.result_body(&ctx);
900
+ utility.result_body(&ctx);
885
901
 
886
- if let (Value::Map(_), Some(result)) = (&ctxmap, ctx.result.borrow().clone()) {
887
- setp(
888
- &ctxmap,
889
- "result",
890
- jo(vec![("body", result.borrow().body.clone())]),
891
- );
892
- }
902
+ if let (Value::Map(_), Some(result)) = (&ctxmap, ctx.result.borrow().clone()) {
903
+ setp(
904
+ &ctxmap,
905
+ "result",
906
+ jo(vec![("body", result.borrow().body.clone())]),
907
+ );
908
+ }
893
909
 
894
- Ok(Value::Noval)
895
- },
896
- );
910
+ Ok(Value::Noval)
911
+ });
897
912
  }
898
913
 
899
914
  #[test]
900
915
  fn primary_result_headers_basic() {
901
916
  let (client, utility) = base_client();
902
- let primary = primary();
903
- runset(
904
- &get_spec(&primary, &["resultHeaders", "basic"]),
905
- &mut |entry| {
906
- let ctxmap = getp(entry, "ctx");
907
- let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
917
+ let mut run = primary_run();
918
+ runsection(&mut run, "resultHeaders", move |args| {
919
+ let ctxmap = args[0].clone();
920
+ let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
908
921
 
909
- utility.result_headers(&ctx);
922
+ utility.result_headers(&ctx);
910
923
 
911
- if let (Value::Map(_), Some(result)) = (&ctxmap, ctx.result.borrow().clone()) {
912
- setp(
913
- &ctxmap,
914
- "result",
915
- jo(vec![("headers", result.borrow().headers.clone())]),
916
- );
917
- }
924
+ if let (Value::Map(_), Some(result)) = (&ctxmap, ctx.result.borrow().clone()) {
925
+ setp(
926
+ &ctxmap,
927
+ "result",
928
+ jo(vec![("headers", result.borrow().headers.clone())]),
929
+ );
930
+ }
918
931
 
919
- Ok(Value::Noval)
920
- },
921
- );
932
+ Ok(Value::Noval)
933
+ });
922
934
  }
923
935
 
924
936
  #[test]
925
937
  fn primary_transform_request_basic() {
926
938
  let (client, utility) = base_client();
927
- let primary = primary();
928
- runset(
929
- &get_spec(&primary, &["transformRequest", "basic"]),
930
- &mut |entry| {
931
- let ctxmap = getp(entry, "ctx");
932
- let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
933
-
934
- let result = utility.transform_request(&ctx);
935
-
936
- // Update entry ctx for match (step changed).
937
- if let Some(spec) = ctx.spec.borrow().clone() {
938
- if let Value::Map(_) = getp(&ctxmap, "spec") {
939
- setp(
940
- &getp(&ctxmap, "spec"),
941
- "step",
942
- Value::str(spec.borrow().step.clone()),
943
- );
944
- }
939
+ let mut run = primary_run();
940
+ runsection(&mut run, "transformRequest", move |args| {
941
+ let ctxmap = args[0].clone();
942
+ let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
943
+
944
+ let result = utility.transform_request(&ctx);
945
+
946
+ // Update entry ctx for match (step changed).
947
+ if let Some(spec) = ctx.spec.borrow().clone() {
948
+ if let Value::Map(_) = getp(&ctxmap, "spec") {
949
+ setp(
950
+ &getp(&ctxmap, "spec"),
951
+ "step",
952
+ Value::str(spec.borrow().step.clone()),
953
+ );
945
954
  }
955
+ }
946
956
 
947
- Ok(result)
948
- },
949
- );
957
+ Ok(result)
958
+ });
950
959
  }
951
960
 
952
961
  #[test]
953
962
  fn primary_transform_response_basic() {
954
963
  let (client, utility) = base_client();
955
- let primary = primary();
956
- runset(
957
- &get_spec(&primary, &["transformResponse", "basic"]),
958
- &mut |entry| {
959
- let ctxmap = getp(entry, "ctx");
960
- let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
961
-
962
- let result = utility.transform_response(&ctx);
963
-
964
- if let Some(spec) = ctx.spec.borrow().clone() {
965
- if let Value::Map(_) = getp(&ctxmap, "spec") {
966
- setp(
967
- &getp(&ctxmap, "spec"),
968
- "step",
969
- Value::str(spec.borrow().step.clone()),
970
- );
971
- }
964
+ let mut run = primary_run();
965
+ runsection(&mut run, "transformResponse", move |args| {
966
+ let ctxmap = args[0].clone();
967
+ let ctx = make_ctx_from_map(&ctxmap, &client, &utility);
968
+
969
+ let result = utility.transform_response(&ctx);
970
+
971
+ if let Some(spec) = ctx.spec.borrow().clone() {
972
+ if let Value::Map(_) = getp(&ctxmap, "spec") {
973
+ setp(
974
+ &getp(&ctxmap, "spec"),
975
+ "step",
976
+ Value::str(spec.borrow().step.clone()),
977
+ );
972
978
  }
979
+ }
973
980
 
974
- Ok(result)
975
- },
976
- );
981
+ Ok(result)
982
+ });
977
983
  }
978
984
 
979
985
  // keep new_sdk / to_map referenced (parity helpers).