@voxgig/sdkgen 4.8.2 → 4.9.0

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 (407) 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/model/target/zig.aon +9 -0
  33. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +9 -2
  34. package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +3 -0
  35. package/project/.sdk/src/cmp/dart/Test_dart.ts +2 -0
  36. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +4 -1
  37. package/project/.sdk/src/cmp/go/Config_go.ts +59 -2
  38. package/project/.sdk/src/cmp/go/Main_go.ts +8 -2
  39. package/project/.sdk/src/cmp/java/Test_java.ts +6 -5
  40. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +6 -5
  41. package/project/.sdk/src/cmp/lean/Package_lean.ts +23 -0
  42. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +1 -0
  43. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +1 -0
  44. package/project/.sdk/src/cmp/ocaml/Gitignore_ocaml.ts +1 -0
  45. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +7 -3
  46. package/project/.sdk/src/cmp/py/Config_py.ts +82 -1
  47. package/project/.sdk/src/cmp/py/Main_py.ts +44 -0
  48. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +2 -0
  49. package/project/.sdk/src/cmp/swift/Main_swift.ts +10 -0
  50. package/project/.sdk/src/cmp/swift/Package_swift.ts +13 -1
  51. package/project/.sdk/src/cmp/ts/Config_ts.ts +42 -17
  52. package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +13 -1
  53. package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +13 -1
  54. package/project/.sdk/src/cmp/zig/Package_zig.ts +15 -11
  55. package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +3 -3
  56. package/project/.sdk/src/cmp/zig/fragment/EntityListOp.fragment.zig +3 -3
  57. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +3 -3
  58. package/project/.sdk/src/cmp/zig/utility_zig.ts +50 -1
  59. package/project/.sdk/tm/c/Makefile +38 -3
  60. package/project/.sdk/tm/c/tests/omni_resolver.h +361 -0
  61. package/project/.sdk/tm/c/tests/omni_smoke_test.c +237 -0
  62. package/project/.sdk/tm/c/tests/primary_corpus_test.c +205 -284
  63. package/project/.sdk/tm/c/tests/struct_corpus_test.c +292 -212
  64. package/project/.sdk/tm/c/tests/vendor/omni/json.c +811 -0
  65. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +240 -0
  66. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +940 -0
  67. package/project/.sdk/tm/c/tests/vendor/omni/util.c +351 -0
  68. package/project/.sdk/tm/c/utility/struct/utility.c +7 -2
  69. package/project/.sdk/tm/clojure/test/sdk/test/omni.clj +401 -0
  70. package/project/.sdk/tm/clojure/test/sdk/test/omni_smoke.clj +81 -0
  71. package/project/.sdk/tm/clojure/test/sdk/test/primary.clj +92 -58
  72. package/project/.sdk/tm/clojure/test/sdk/test/struct_corpus.clj +122 -149
  73. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +8 -3
  74. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +145 -0
  75. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +445 -0
  76. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +145 -0
  77. package/project/.sdk/tm/cpp/Makefile +5 -1
  78. package/project/.sdk/tm/cpp/test/omni_resolver.hpp +473 -0
  79. package/project/.sdk/tm/cpp/test/omni_smoke_test.cpp +209 -0
  80. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +243 -184
  81. package/project/.sdk/tm/cpp/test/runner_support.hpp +68 -181
  82. package/project/.sdk/tm/cpp/test/struct_corpus_test.cpp +183 -56
  83. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +406 -0
  84. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +751 -0
  85. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +256 -0
  86. package/project/.sdk/tm/cpp/utility/pipeline.hpp +7 -1
  87. package/project/.sdk/tm/csharp/test/OmniResolver.cs +491 -0
  88. package/project/.sdk/tm/csharp/test/OmniSmokeTest.cs +106 -0
  89. package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +299 -316
  90. package/project/.sdk/tm/csharp/test/Runner.cs +104 -269
  91. package/project/.sdk/tm/csharp/test/StructUtilityTest.cs +535 -724
  92. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +864 -0
  93. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +347 -0
  94. package/project/.sdk/tm/csharp/utility/MakeSpec.cs +3 -1
  95. package/project/.sdk/tm/csharp/utility/PrepareMethod.cs +6 -1
  96. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +21 -5
  97. package/project/.sdk/tm/dart/test/omni.dart +520 -0
  98. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +143 -0
  99. package/project/.sdk/tm/dart/test/primary_test.dart +86 -28
  100. package/project/.sdk/tm/dart/test/struct_test.dart +438 -11
  101. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +7 -0
  102. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +653 -0
  103. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +232 -0
  104. package/project/.sdk/tm/elixir/Makefile +11 -3
  105. package/project/.sdk/tm/elixir/test/omni_smoke_test.exs +117 -0
  106. package/project/.sdk/tm/elixir/test/primary_utility_test.exs +341 -16
  107. package/project/.sdk/tm/elixir/test/struct_corpus_test.exs +554 -9
  108. package/project/.sdk/tm/elixir/test/support/omni.ex +377 -0
  109. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +122 -0
  110. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +623 -0
  111. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +187 -0
  112. package/project/.sdk/tm/go/core/context.go +32 -16
  113. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +261 -0
  114. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +78 -0
  115. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +652 -0
  116. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +250 -0
  117. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +194 -0
  118. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +80 -0
  119. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +238 -0
  120. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1575 -0
  121. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +248 -0
  122. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +184 -0
  123. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +123 -0
  124. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +79 -0
  125. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +296 -0
  126. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +87 -0
  127. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +161 -0
  128. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +292 -0
  129. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +201 -0
  130. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +187 -0
  131. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +184 -0
  132. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +114 -0
  133. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +156 -0
  134. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +208 -0
  135. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +241 -0
  136. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +150 -0
  137. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +152 -0
  138. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +143 -0
  139. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +120 -0
  140. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +442 -0
  141. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +714 -0
  142. package/project/.sdk/tm/go/feature/secrets_feature.go +675 -0
  143. package/project/.sdk/tm/go/src/feature/secrets/.gitkeep +0 -0
  144. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +799 -0
  145. package/project/.sdk/tm/go/test/omni/omni.go +902 -0
  146. package/project/.sdk/tm/go/test/omni/util.go +381 -0
  147. package/project/.sdk/tm/go/test/omniresolver_test.go +748 -0
  148. package/project/.sdk/tm/go/test/omnismoke_test.go +112 -0
  149. package/project/.sdk/tm/go/test/primary_utility_test.go +123 -191
  150. package/project/.sdk/tm/go/test/struct_utility_test.go +323 -16
  151. package/project/.sdk/tm/go/test/testsupport_test.go +294 -0
  152. package/project/.sdk/tm/go/utility/make_options.go +8 -1
  153. package/project/.sdk/tm/go/utility/prepare_method.go +5 -1
  154. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +2 -2
  155. package/project/.sdk/tm/java/test/OmniResolver.java +355 -0
  156. package/project/.sdk/tm/java/test/OmniSmokeTest.java +99 -0
  157. package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +254 -280
  158. package/project/.sdk/tm/java/test/RunnerSupport.java +9 -194
  159. package/project/.sdk/tm/java/test/StructCorpusTest.java +119 -42
  160. package/project/.sdk/tm/java/test/vendor/omni/Json.java +287 -0
  161. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +851 -0
  162. package/project/.sdk/tm/java/test/vendor/omni/Util.java +322 -0
  163. package/project/.sdk/tm/java/utility/MakeSpec.java +3 -1
  164. package/project/.sdk/tm/java/utility/PrepareMethod.java +5 -5
  165. package/project/.sdk/tm/java/utility/struct/Struct.java +17 -4
  166. package/project/.sdk/tm/js/src/utility/StructUtility.js +3 -3
  167. package/project/.sdk/tm/js/test/omni.js +251 -0
  168. package/project/.sdk/tm/js/test/omni.test.js +105 -0
  169. package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +6 -2
  170. package/project/.sdk/tm/js/test/utility/StructUtility.test.js +27 -2
  171. package/project/.sdk/tm/js/test/vendor/omni/index.js +77 -0
  172. package/project/.sdk/tm/js/test/vendor/omni/runner.js +628 -0
  173. package/project/.sdk/tm/js/test/vendor/omni/util.js +229 -0
  174. package/project/.sdk/tm/kotlin/core/Utility.kt +1 -1
  175. package/project/.sdk/tm/kotlin/test/OmniResolver.kt +343 -0
  176. package/project/.sdk/tm/kotlin/test/OmniSmokeTest.kt +100 -0
  177. package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +244 -262
  178. package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +9 -178
  179. package/project/.sdk/tm/kotlin/test/StructCorpusTest.kt +121 -32
  180. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +264 -0
  181. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +615 -0
  182. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +139 -0
  183. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -3
  184. package/project/.sdk/tm/kotlin/utility/Prepare.kt +6 -6
  185. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +18 -2
  186. package/project/.sdk/tm/lean/Makefile +12 -5
  187. package/project/.sdk/tm/lean/src/SdkUtility.lean +14 -1
  188. package/project/.sdk/tm/lean/test/OmniResolver.lean +358 -0
  189. package/project/.sdk/tm/lean/test/OmniSmoke.lean +174 -0
  190. package/project/.sdk/tm/lean/test/StructCorpus.lean +245 -574
  191. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +155 -291
  192. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +997 -0
  193. package/project/.sdk/tm/lua/test/omni.lua +456 -0
  194. package/project/.sdk/tm/lua/test/omni_smoke_test.lua +103 -0
  195. package/project/.sdk/tm/lua/test/primary_utility_test.lua +250 -509
  196. package/project/.sdk/tm/lua/test/struct_utility_test.lua +161 -70
  197. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +268 -0
  198. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +385 -0
  199. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +641 -0
  200. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +282 -0
  201. package/project/.sdk/tm/lua/utility/prepare_method.lua +5 -1
  202. package/project/.sdk/tm/lua/utility/struct/regex.lua +663 -0
  203. package/project/.sdk/tm/lua/utility/struct/struct.lua +660 -420
  204. package/project/.sdk/tm/ocaml/Makefile +37 -12
  205. package/project/.sdk/tm/ocaml/test/omni_resolver.ml +284 -0
  206. package/project/.sdk/tm/ocaml/test/omni_smoke_test.ml +169 -0
  207. package/project/.sdk/tm/ocaml/test/primary_utility_test.ml +84 -100
  208. package/project/.sdk/tm/ocaml/test/struct_corpus.ml +225 -201
  209. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +1157 -0
  210. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +88 -12
  211. package/project/.sdk/tm/perl/t/omni.pm +647 -0
  212. package/project/.sdk/tm/perl/t/omni_smoke.t +87 -0
  213. package/project/.sdk/tm/perl/t/primary_utility.t +189 -487
  214. package/project/.sdk/tm/perl/t/struct_utility.t +455 -389
  215. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +649 -0
  216. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +253 -0
  217. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +24 -0
  218. package/project/.sdk/tm/perl/utility/prepare_method.pm +7 -2
  219. package/project/.sdk/tm/php/test/Omni.php +691 -0
  220. package/project/.sdk/tm/php/test/OmniSmokeTest.php +93 -0
  221. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +210 -571
  222. package/project/.sdk/tm/php/test/StructUtilityTest.php +320 -342
  223. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +644 -0
  224. package/project/.sdk/tm/php/test/vendor/omni/Util.php +283 -0
  225. package/project/.sdk/tm/php/utility/MakeSpec.php +10 -3
  226. package/project/.sdk/tm/php/utility/PrepareBody.php +7 -1
  227. package/project/.sdk/tm/php/utility/PrepareMethod.php +6 -2
  228. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +36 -0
  229. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +141 -0
  230. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +50 -0
  231. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +333 -0
  232. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +198 -0
  233. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +147 -0
  234. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +52 -0
  235. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +139 -0
  236. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1053 -0
  237. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +171 -0
  238. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +95 -0
  239. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +116 -0
  240. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +59 -0
  241. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +87 -0
  242. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +112 -0
  243. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +76 -0
  244. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +116 -0
  245. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +192 -0
  246. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +120 -0
  247. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +140 -0
  248. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +62 -0
  249. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +101 -0
  250. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +151 -0
  251. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +115 -0
  252. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +90 -0
  253. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +101 -0
  254. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +119 -0
  255. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +125 -0
  256. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +211 -0
  257. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +475 -0
  258. package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +467 -0
  259. package/project/.sdk/tm/py/pkg/utility/prepare_method.py +5 -1
  260. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/__init__.py +0 -2
  261. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +780 -529
  262. package/project/.sdk/tm/py/src/feature/secrets/.gitkeep +0 -0
  263. package/project/.sdk/tm/py/test/feature/__init__.py +0 -0
  264. package/project/.sdk/tm/py/test/feature/secrets/__init__.py +0 -0
  265. package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +337 -0
  266. package/project/.sdk/tm/py/test/omni.py +415 -0
  267. package/project/.sdk/tm/py/test/test_omni_smoke.py +74 -0
  268. package/project/.sdk/tm/py/test/test_primary_utility.py +144 -668
  269. package/project/.sdk/tm/py/test/test_struct_utility.py +74 -27
  270. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +62 -0
  271. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +580 -0
  272. package/project/.sdk/tm/py/test/voxgig_omni/util.py +252 -0
  273. package/project/.sdk/tm/rb/test/omni.rb +505 -0
  274. package/project/.sdk/tm/rb/test/omni_smoke_test.rb +72 -0
  275. package/project/.sdk/tm/rb/test/primary_utility_test.rb +174 -560
  276. package/project/.sdk/tm/rb/test/struct_utility_test.rb +13 -7
  277. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +493 -0
  278. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +199 -0
  279. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +15 -0
  280. package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -1
  281. package/project/.sdk/tm/rust/tests/common/mod.rs +19 -242
  282. package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +888 -0
  283. package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +286 -0
  284. package/project/.sdk/tm/rust/tests/primary_utility_test.rs +318 -312
  285. package/project/.sdk/tm/rust/tests/struct_utility_test.rs +66 -28
  286. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +412 -0
  287. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +38 -0
  288. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +392 -0
  289. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +1001 -0
  290. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +161 -0
  291. package/project/.sdk/tm/rust/utility/prepare_method.rs +5 -1
  292. package/project/.sdk/tm/scala/Makefile +16 -6
  293. package/project/.sdk/tm/scala/sdktest/OmniResolver.scala +497 -0
  294. package/project/.sdk/tm/scala/sdktest/OmniSmoke.scala +192 -0
  295. package/project/.sdk/tm/scala/sdktest/PrimaryCorpus.scala +47 -19
  296. package/project/.sdk/tm/scala/sdktest/StructCorpus.scala +0 -0
  297. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +229 -0
  298. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +552 -0
  299. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +104 -0
  300. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Constants.swift +10 -0
  301. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Inject.swift +28 -5
  302. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Injection.swift +5 -1
  303. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Minor.swift +4 -1
  304. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Validate.swift +15 -5
  305. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +6 -1
  306. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniResolver.swift +474 -0
  307. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniSmokeTest.swift +107 -0
  308. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +141 -178
  309. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/Runner.swift +17 -113
  310. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/StructUtilityTest.swift +295 -446
  311. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +364 -0
  312. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +730 -0
  313. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +162 -0
  314. package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +7 -0
  315. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +148 -0
  316. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +55 -0
  317. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +344 -0
  318. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +205 -0
  319. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +138 -0
  320. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +46 -0
  321. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +349 -0
  322. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +181 -0
  323. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1132 -0
  324. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +177 -0
  325. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +119 -0
  326. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +102 -0
  327. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +61 -0
  328. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +112 -0
  329. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +100 -0
  330. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +37 -0
  331. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +163 -30
  332. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +27 -22
  333. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/aws.ts +26 -36
  334. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/azuresecrets.ts +19 -21
  335. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/boru.ts +36 -17
  336. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/doppler.ts +14 -21
  337. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/gcpsecrets.ts +27 -27
  338. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/hashicorp.ts +25 -39
  339. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +99 -0
  340. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/infisical.ts +14 -16
  341. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/onepassword.ts +15 -22
  342. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +98 -0
  343. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{Sigv4.ts → plugins/sigv4.ts} +7 -6
  344. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +97 -23
  345. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +37 -0
  346. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +4 -17
  347. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +4 -16
  348. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +11 -25
  349. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +6 -23
  350. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +106 -39
  351. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +3 -3
  352. package/project/.sdk/tm/ts/test/omni.ts +104 -32
  353. package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +27 -0
  354. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +32 -5
  355. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +2 -2
  356. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +2 -2
  357. package/project/.sdk/tm/zig/Makefile +15 -1
  358. package/project/.sdk/tm/zig/build.zig +23 -5
  359. package/project/.sdk/tm/zig/core/helpers.zig +52 -11
  360. package/project/.sdk/tm/zig/core/mem.zig +17 -1
  361. package/project/.sdk/tm/zig/core/utility.zig +23 -19
  362. package/project/.sdk/tm/zig/feature/audit.zig +2 -2
  363. package/project/.sdk/tm/zig/feature/cache.zig +2 -2
  364. package/project/.sdk/tm/zig/feature/debug.zig +5 -5
  365. package/project/.sdk/tm/zig/feature/netsim.zig +2 -2
  366. package/project/.sdk/tm/zig/feature/paging.zig +2 -2
  367. package/project/.sdk/tm/zig/feature/proxy.zig +15 -8
  368. package/project/.sdk/tm/zig/feature/streaming.zig +5 -5
  369. package/project/.sdk/tm/zig/feature/support.zig +3 -3
  370. package/project/.sdk/tm/zig/feature/telemetry.zig +5 -5
  371. package/project/.sdk/tm/zig/feature/test.zig +10 -5
  372. package/project/.sdk/tm/zig/test/fh.zig +10 -10
  373. package/project/.sdk/tm/zig/test/gotcha_test.zig +5 -5
  374. package/project/.sdk/tm/zig/test/omniresolver.zig +515 -0
  375. package/project/.sdk/tm/zig/test/omnismoke_test.zig +284 -0
  376. package/project/.sdk/tm/zig/test/pipeline_test.zig +8 -8
  377. package/project/.sdk/tm/zig/test/primary_utility_test.zig +145 -155
  378. package/project/.sdk/tm/zig/test/struct_corpus.zig +264 -187
  379. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +1314 -0
  380. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +446 -0
  381. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +7 -4
  382. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +356 -157
  383. package/project/sdkgen-package.json +1 -1
  384. package/src/action/doctor.ts +66 -2
  385. package/src/helpers/naming.ts +4 -2
  386. package/project/.sdk/tm/c/tests/runner.h +0 -274
  387. package/project/.sdk/tm/cpp/test/struct_runner.hpp +0 -314
  388. package/project/.sdk/tm/csharp/test/StructRunner.cs +0 -276
  389. package/project/.sdk/tm/dart/test/runner.dart +0 -406
  390. package/project/.sdk/tm/dart/test/struct_corpus.dart +0 -531
  391. package/project/.sdk/tm/elixir/test/support/struct_corpus.ex +0 -1088
  392. package/project/.sdk/tm/go/test/runner_test.go +0 -629
  393. package/project/.sdk/tm/go/test/struct_runner_test.go +0 -1094
  394. package/project/.sdk/tm/java/test/StructRunner.java +0 -281
  395. package/project/.sdk/tm/js/test/runner.js +0 -387
  396. package/project/.sdk/tm/kotlin/test/StructRunner.kt +0 -177
  397. package/project/.sdk/tm/lua/test/struct_runner.lua +0 -602
  398. package/project/.sdk/tm/ocaml/test/corpus_runner.ml +0 -185
  399. package/project/.sdk/tm/perl/t/struct_runner.pm +0 -275
  400. package/project/.sdk/tm/php/test/StructRunner.php +0 -275
  401. package/project/.sdk/tm/py/test/struct_runner.py +0 -411
  402. package/project/.sdk/tm/rb/test/struct_runner.rb +0 -309
  403. package/project/.sdk/tm/rust/tests/struct_runner/mod.rs +0 -424
  404. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/Registry.ts +0 -90
  405. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/http.ts +0 -66
  406. package/project/.sdk/tm/ts/test/vendor/omni/compat.ts +0 -188
  407. package/project/.sdk/tm/zig/test/struct_runner.zig +0 -464
@@ -1,23 +1,88 @@
1
1
  // ProjectName SDK — drives the primary utility functions against the shared
2
- // test.json spec (../.sdk/test/test.json, section "primary"). Mirrors
3
- // java test/PrimaryUtilityTest.java + tm/go/test/primary_utility_test.go.
4
-
2
+ // test.json spec (../.sdk/test/test.json, section "primary") through the
3
+ // VENDORED omni runner (test/omni_resolver.hpp over test/vendor/omni).
4
+ // Mirrors java test/PrimaryUtilityTest.java + tm/go/test/primary_utility_test.go.
5
+ //
6
+ // Subjects receive omni's native argument list: a ctx entry arrives as
7
+ // args[0], a MAP — resolver::omni_ctx builds the typed Context a generated
8
+ // utility takes, and resolver::omni_sync_ctx writes the observable ctx
9
+ // state back for `match: {ctx: ...}` assertions (which the resolver has
10
+ // rewritten to `match: {args: [...]}`; see its decision 4). A failing entry
11
+ // throws omni::OmniError naming the entry, which T_RUN records.
12
+
13
+ #include <algorithm>
5
14
  #include <memory>
15
+ #include <set>
6
16
  #include <string>
7
17
  #include <vector>
8
18
 
9
- #include "runner_support.hpp"
19
+ #include "omni_resolver.hpp"
10
20
  #include "harness.hpp"
11
21
 
12
22
  using namespace sdk;
13
23
  using namespace sdk::fh;
24
+ namespace res = sdk::resolver;
25
+
26
+ static const char* TEST_JSON_FILE = "../.sdk/test/test.json";
14
27
 
15
- static Value primary() {
16
- return rs::get_spec(rs::load_test_spec(), {"primary"});
28
+ // One corpus runner for the whole binary. Its client is the runner's own
29
+ // (only a DEF.client entry would use it); each test still builds the client
30
+ // it drives, because several of them mutate it.
31
+ static res::Run& primaryRun() {
32
+ static res::Run run =
33
+ res::makeRunner(TEST_JSON_FILE, ProjectNameSDK::testSDK())
34
+ .runner("primary", Value::undef());
35
+ return run;
17
36
  }
18
37
 
19
38
  static std::shared_ptr<ProjectNameSDK> client() { return ProjectNameSDK::testSDK(); }
20
39
 
40
+ // args[0], or no value at all (an entry with no in/args/ctx, which this
41
+ // port's omni delivers as one absent argument).
42
+ static Value arg0(std::vector<Value>& args) {
43
+ return args.empty() ? Value::undef() : args[0];
44
+ }
45
+
46
+ // Every corpus section this binary ASKED to run, whether or not the guard
47
+ // below let it through. corpusCoverage() compares it against the fixture,
48
+ // which is the only way a section that NO test names can be noticed: the
49
+ // per-section guard cannot fire for a call nobody wrote.
50
+ static std::set<std::string>& drivenSections() {
51
+ static std::set<std::string> names;
52
+ return names;
53
+ }
54
+
55
+ // Run one corpus section's `basic` group, failing LOUDLY when it would run
56
+ // ZERO cases. A renamed section, a fixture that failed to compile, or an
57
+ // empty set used to report PASS while running no assertions at all — the
58
+ // whole point of a shared oracle lost without a single red test. (The guard
59
+ // lives here rather than in the runner, which is vendored verbatim; the
60
+ // shared corpus is a v0 spec, and v0 tolerates an empty set.)
61
+ static void runsection(const std::string& name, const res::Subject& subject) {
62
+ drivenSections().insert(name);
63
+
64
+ Value section = Helpers::toMapAny(primaryRun().set(name));
65
+ if (!section.is_map()) {
66
+ sdktest::record_fail(name, "test corpus section \"" + name +
67
+ "\" missing - check .sdk/test/primary/");
68
+ return;
69
+ }
70
+ Value basic = Helpers::toMapAny(getp(section, Value("basic")));
71
+ Value set = basic.is_map() ? getp(basic, Value("set")) : Value::undef();
72
+ if (!set.is_list()) {
73
+ sdktest::record_fail(name, "test corpus section \"" + name +
74
+ "\" has no basic.set list - zero cases would run");
75
+ return;
76
+ }
77
+ if (set.as_list()->empty()) {
78
+ sdktest::record_fail(name, "test corpus section \"" + name +
79
+ "\" is EMPTY - zero cases would run");
80
+ return;
81
+ }
82
+ sdktest::checks()++;
83
+ primaryRun().runsetflags(name, basic, true, subject);
84
+ }
85
+
21
86
  // Helper: create basic test context.
22
87
  static CtxPtr makeTestCtx(std::shared_ptr<ProjectNameSDK> client_, UtilityPtr utility) {
23
88
  CtxSpec cs;
@@ -104,15 +169,29 @@ static void cleanBasic() {
104
169
  ASSERT_TRUE(cleaned.is_map(), "cleaned should not be null");
105
170
  }
106
171
 
172
+ // The shared corpus drives the same function over four shapes the stub above
173
+ // cannot reach — an empty map, a bare string, a list — and asserts the value
174
+ // that comes back, not merely that one does. (The ts and java peers pair the
175
+ // stub with this section the same way.)
176
+ static void cleanCorpus() {
177
+ auto c = client();
178
+ UtilityPtr utility = c->getUtility();
179
+ runsection("clean", [&](std::vector<Value>& args) -> Value {
180
+ if (2 != args.size()) {
181
+ throw std::runtime_error("clean: expected 2 args, got " + std::to_string(args.size()));
182
+ }
183
+ CtxPtr ctx = res::omni_ctx(args[0], c, utility);
184
+ return utility->clean(ctx, args[1]);
185
+ });
186
+ }
187
+
107
188
  // --- done -------------------------------------------------------------------
108
189
 
109
190
  static void doneBasic() {
110
191
  auto c = client();
111
192
  UtilityPtr utility = c->getUtility();
112
- rs::runset("done-basic", rs::get_spec(primary(), {"done", "basic"}), [&](const Value& entry) -> Value {
113
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
114
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
115
- rs::fixctx(ctx, c);
193
+ runsection("done", [&](std::vector<Value>& args) -> Value {
194
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
116
195
  return utility->done(ctx);
117
196
  });
118
197
  }
@@ -122,19 +201,14 @@ static void doneBasic() {
122
201
  static void makeErrorBasic() {
123
202
  auto c = client();
124
203
  UtilityPtr utility = c->getUtility();
125
- rs::runset("makeError-basic", rs::get_spec(primary(), {"makeError", "basic"}), [&](const Value& entry) -> Value {
126
- Value args = getp(entry, "args");
127
- if (!args.is_list()) args = vlist();
128
- if (args.as_list()->empty()) args.as_list()->push_back(vmap());
129
-
130
- Value ctxmap = Helpers::toMapAny(vs::getelem(args, Value(int64_t(0))));
204
+ runsection("makeError", [&](std::vector<Value>& args) -> Value {
205
+ Value ctxmap = Helpers::toMapAny(arg0(args));
131
206
  if (!ctxmap.is_map()) ctxmap = vmap();
132
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
133
- rs::fixctx(ctx, c);
207
+ CtxPtr ctx = res::omni_ctx(ctxmap, c, utility);
134
208
 
135
209
  SdkErrorPtr err;
136
- if (args.as_list()->size() > 1) {
137
- err = errFromMap(Helpers::toMapAny(vs::getelem(args, Value(int64_t(1)))));
210
+ if (args.size() > 1) {
211
+ err = errFromMap(Helpers::toMapAny(args[1]));
138
212
  }
139
213
  return utility->makeError(ctx, err);
140
214
  });
@@ -283,9 +357,8 @@ static void fetcherBlockedTestMode() {
283
357
  static void makeContextBasic() {
284
358
  auto c = client();
285
359
  UtilityPtr utility = c->getUtility();
286
- rs::runset("makeContext-basic", rs::get_spec(primary(), {"makeContext", "basic"}),
287
- [&](const Value& entry) -> Value {
288
- Value in = Helpers::toMapAny(getp(entry, "in"));
360
+ runsection("makeContext", [&](std::vector<Value>& args) -> Value {
361
+ Value in = Helpers::toMapAny(arg0(args));
289
362
  if (!in.is_map()) return Value::undef();
290
363
  CtxPtr ctx = rs::make_ctx_from_map(in, c, utility);
291
364
  Value out = vmap();
@@ -354,9 +427,8 @@ static void makeFetchDefWithBody() {
354
427
  static void makeOptionsBasic() {
355
428
  auto c = client();
356
429
  UtilityPtr utility = c->getUtility();
357
- rs::runset("makeOptions-basic", rs::get_spec(primary(), {"makeOptions", "basic"}),
358
- [&](const Value& entry) -> Value {
359
- Value in = Helpers::toMapAny(getp(entry, "in"));
430
+ runsection("makeOptions", [&](std::vector<Value>& args) -> Value {
431
+ Value in = Helpers::toMapAny(arg0(args));
360
432
  CtxSpec cs;
361
433
  if (in.is_map()) {
362
434
  Value opt = Helpers::toMapAny(getp(in, "options"));
@@ -376,19 +448,13 @@ static void makeOptionsBasic() {
376
448
  static void makeRequestBasic() {
377
449
  auto c = client();
378
450
  UtilityPtr utility = c->getUtility();
379
- rs::runset("makeRequest-basic", rs::get_spec(primary(), {"makeRequest", "basic"}),
380
- [&](const Value& entry) -> Value {
381
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
382
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
451
+ runsection("makeRequest", [&](std::vector<Value>& args) -> Value {
452
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
383
453
  ctx->options = c->optionsMap();
384
454
 
385
455
  utility->makeRequest(ctx);
386
456
 
387
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
388
- if (entryCtx.is_map()) {
389
- if (ctx->response) map_put(entryCtx, "response", Value("exists"));
390
- if (ctx->result) map_put(entryCtx, "result", Value("exists"));
391
- }
457
+ res::omni_sync_ctx(arg0(args), ctx);
392
458
  return Value::undef();
393
459
  });
394
460
  }
@@ -398,23 +464,12 @@ static void makeRequestBasic() {
398
464
  static void makeResponseBasic() {
399
465
  auto c = client();
400
466
  UtilityPtr utility = c->getUtility();
401
- rs::runset("makeResponse-basic", rs::get_spec(primary(), {"makeResponse", "basic"}),
402
- [&](const Value& entry) -> Value {
403
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
404
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
405
- rs::fixctx(ctx, c);
467
+ runsection("makeResponse", [&](std::vector<Value>& args) -> Value {
468
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
406
469
 
407
470
  utility->makeResponse(ctx);
408
471
 
409
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
410
- if (entryCtx.is_map() && ctx->result) {
411
- map_put(entryCtx, "result", fhMap({
412
- {"ok", Value(ctx->result->ok)},
413
- {"status", Value(ctx->result->status)},
414
- {"statusText", Value(ctx->result->statusText)},
415
- {"headers", ctx->result->headers},
416
- {"body", ctx->result->body}}));
417
- }
472
+ res::omni_sync_ctx(arg0(args), ctx);
418
473
  return Value::undef();
419
474
  });
420
475
  }
@@ -482,52 +537,47 @@ static void makeResultNoResult() {
482
537
  // --- makeSpec ---------------------------------------------------------------
483
538
 
484
539
  static void makeSpecBasic() {
485
- Value setupOpts = rs::get_spec(primary(), {"makeSpec", "DEF", "setup", "a"});
540
+ // omni stamps ctx.client with PRESENCE, not identity, so a DEF-built
541
+ // client cannot be read back out of the ctx map: this section's
542
+ // specially-optioned client is constructed here (resolver decision 5).
543
+ Value setupOpts = rs::get_spec(primaryRun().spec, {"makeSpec", "DEF", "setup", "a"});
486
544
  auto specClient = ProjectNameSDK::testSDK(Value::undef(), setupOpts);
487
545
  UtilityPtr specUtility = specClient->getUtility();
488
546
 
489
- rs::runset("makeSpec-basic", rs::get_spec(primary(), {"makeSpec", "basic"}),
490
- [&](const Value& entry) -> Value {
491
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
492
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, specClient, specUtility);
547
+ runsection("makeSpec", [&](std::vector<Value>& args) -> Value {
548
+ CtxPtr ctx = res::omni_ctx(arg0(args), specClient, specUtility);
493
549
  ctx->options = specClient->optionsMap();
494
550
 
495
551
  specUtility->makeSpec(ctx);
496
552
 
497
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
498
- if (entryCtx.is_map() && ctx->spec) {
499
- map_put(entryCtx, "spec", fhMap({
500
- {"base", Value(ctx->spec->base)},
501
- {"prefix", Value(ctx->spec->prefix)},
502
- {"suffix", Value(ctx->spec->suffix)},
503
- {"method", Value(ctx->spec->method)},
504
- {"params", ctx->spec->params},
505
- {"query", ctx->spec->query},
506
- {"headers", ctx->spec->headers},
507
- {"step", Value(ctx->spec->step)}}));
508
- }
553
+ res::omni_sync_ctx(arg0(args), ctx);
509
554
  return Value::undef();
510
555
  });
511
556
  }
512
557
 
513
558
  // --- makePoint --------------------------------------------------------------
514
559
 
560
+ // Corpus-driven, like ts and java. Each entry carries the WHOLE endpoint
561
+ // lookup in its ctx — the API config, the entity it hangs off, the options
562
+ // that gate the operation, and the match/reqmatch that select among several
563
+ // points — which rs::make_ctx_from_map materialises (the entity cannot
564
+ // travel as a plain map: Context resolves the op through Entity::getName).
565
+ // Four of the seven entries assert a chosen point; three assert a REFUSAL
566
+ // the retired stub could not reach at all, since it only ever asserted that
567
+ // some point came back. TS returns the error AS the value while cpp throws
568
+ // an SdkErrorPtr, so the error is normalised to a map carrying its code
569
+ // rather than forking the fixture per language.
515
570
  static void makePointBasic() {
516
571
  auto c = client();
517
572
  UtilityPtr utility = c->getUtility();
518
- CtxPtr ctx = makeTestCtx(c, utility);
519
- Value point = fhMap({
520
- {"parts", vlist({Value("items"), Value("{id}")})},
521
- {"args", fhMap({{"params", vlist()}})},
522
- {"params", vlist()},
523
- {"alias", vmap()},
524
- {"select", vmap()},
525
- {"active", Value(true)},
526
- {"transform", vmap()}});
527
- ctx->op->points = std::vector<Value>{point};
528
-
529
- utility->makePoint(ctx);
530
- ASSERT_TRUE(ctx->point.is_map(), "expected point to be set");
573
+ runsection("makePoint", [&](std::vector<Value>& args) -> Value {
574
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
575
+ try {
576
+ return utility->makePoint(ctx);
577
+ } catch (const SdkErrorPtr& err) {
578
+ return fhMap({{"code", Value(err->code)}});
579
+ }
580
+ });
531
581
  }
532
582
 
533
583
  // --- makeUrl ----------------------------------------------------------------
@@ -535,10 +585,8 @@ static void makePointBasic() {
535
585
  static void makeUrlBasic() {
536
586
  auto c = client();
537
587
  UtilityPtr utility = c->getUtility();
538
- rs::runset("makeUrl-basic", rs::get_spec(primary(), {"makeUrl", "basic"}),
539
- [&](const Value& entry) -> Value {
540
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
541
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
588
+ runsection("makeUrl", [&](std::vector<Value>& args) -> Value {
589
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
542
590
  if (!ctx->result) ctx->result = std::make_shared<Result>(vmap());
543
591
  return Value(utility->makeUrl(ctx));
544
592
  });
@@ -547,9 +595,8 @@ static void makeUrlBasic() {
547
595
  // --- operator ---------------------------------------------------------------
548
596
 
549
597
  static void operatorBasic() {
550
- rs::runset("operator-basic", rs::get_spec(primary(), {"operator", "basic"}),
551
- [&](const Value& entry) -> Value {
552
- Value in = Helpers::toMapAny(getp(entry, "in"));
598
+ runsection("operator", [&](std::vector<Value>& args) -> Value {
599
+ Value in = Helpers::toMapAny(arg0(args));
553
600
  Operation op(in.is_map() ? in : vmap());
554
601
  return fhMap({
555
602
  {"entity", Value(op.entity)},
@@ -564,34 +611,17 @@ static void operatorBasic() {
564
611
  static void paramBasic() {
565
612
  auto c = client();
566
613
  UtilityPtr utility = c->getUtility();
567
- rs::runset("param-basic", rs::get_spec(primary(), {"param", "basic"}),
568
- [&](const Value& entry) -> Value {
569
- Value args = getp(entry, "args");
570
- if (!args.is_list() || args.as_list()->size() < 2) return Value::undef();
614
+ runsection("param", [&](std::vector<Value>& args) -> Value {
615
+ if (args.size() < 2) return Value::undef();
571
616
 
572
- Value ctxmap = Helpers::toMapAny(vs::getelem(args, Value(int64_t(0))));
617
+ Value ctxmap = Helpers::toMapAny(arg0(args));
573
618
  if (!ctxmap.is_map()) ctxmap = vmap();
574
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
575
- Value paramdef = vs::getelem(args, Value(int64_t(1)));
619
+ CtxPtr ctx = res::omni_ctx(ctxmap, c, utility);
620
+ Value paramdef = args[1];
576
621
 
577
622
  Value result = utility->param(ctx, paramdef);
578
623
 
579
- // Copy spec alias back to entry ctx for matching.
580
- Value matchSpec = Helpers::toMapAny(getp(entry, "match"));
581
- if (matchSpec.is_map()) {
582
- Value ctxMatch = Helpers::toMapAny(getp(matchSpec, "ctx"));
583
- if (ctxMatch.is_map()) {
584
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
585
- if (!entryCtx.is_map()) {
586
- entryCtx = vmap();
587
- map_put(entry, "ctx", entryCtx);
588
- }
589
- Value specMatch = Helpers::toMapAny(getp(ctxMatch, "spec"));
590
- if (specMatch.is_map() && ctx->spec && getp(specMatch, "alias").is_map()) {
591
- map_put(entryCtx, "spec", fhMap({{"alias", ctx->spec->alias}}));
592
- }
593
- }
594
- }
624
+ res::omni_sync_ctx(arg0(args), ctx);
595
625
  return result;
596
626
  });
597
627
  }
@@ -599,22 +629,17 @@ static void paramBasic() {
599
629
  // --- prepareAuth ------------------------------------------------------------
600
630
 
601
631
  static void prepareAuthBasic() {
602
- Value setupOpts = rs::get_spec(primary(), {"prepareAuth", "DEF", "setup", "a"});
632
+ // Constructed at the call site: see the note on makeSpec above.
633
+ Value setupOpts = rs::get_spec(primaryRun().spec, {"prepareAuth", "DEF", "setup", "a"});
603
634
  auto authClient = ProjectNameSDK::testSDK(Value::undef(), setupOpts);
604
635
  UtilityPtr authUtility = authClient->getUtility();
605
636
 
606
- rs::runset("prepareAuth-basic", rs::get_spec(primary(), {"prepareAuth", "basic"}),
607
- [&](const Value& entry) -> Value {
608
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
609
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, authClient, authUtility);
610
- rs::fixctx(ctx, authClient);
637
+ runsection("prepareAuth", [&](std::vector<Value>& args) -> Value {
638
+ CtxPtr ctx = res::omni_ctx(arg0(args), authClient, authUtility);
611
639
 
612
640
  authUtility->prepareAuth(ctx);
613
641
 
614
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
615
- if (entryCtx.is_map() && ctx->spec) {
616
- map_put(entryCtx, "spec", fhMap({{"headers", ctx->spec->headers}}));
617
- }
642
+ res::omni_sync_ctx(arg0(args), ctx);
618
643
  return Value::undef();
619
644
  });
620
645
  }
@@ -624,11 +649,8 @@ static void prepareAuthBasic() {
624
649
  static void prepareBodyBasic() {
625
650
  auto c = client();
626
651
  UtilityPtr utility = c->getUtility();
627
- rs::runset("prepareBody-basic", rs::get_spec(primary(), {"prepareBody", "basic"}),
628
- [&](const Value& entry) -> Value {
629
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
630
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
631
- rs::fixctx(ctx, c);
652
+ runsection("prepareBody", [&](std::vector<Value>& args) -> Value {
653
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
632
654
  return utility->prepareBody(ctx);
633
655
  });
634
656
  }
@@ -636,10 +658,8 @@ static void prepareBodyBasic() {
636
658
  static void prepareHeadersBasic() {
637
659
  auto c = client();
638
660
  UtilityPtr utility = c->getUtility();
639
- rs::runset("prepareHeaders-basic", rs::get_spec(primary(), {"prepareHeaders", "basic"}),
640
- [&](const Value& entry) -> Value {
641
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
642
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
661
+ runsection("prepareHeaders", [&](std::vector<Value>& args) -> Value {
662
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
643
663
  return utility->prepareHeaders(ctx);
644
664
  });
645
665
  }
@@ -647,21 +667,21 @@ static void prepareHeadersBasic() {
647
667
  static void prepareMethodBasic() {
648
668
  auto c = client();
649
669
  UtilityPtr utility = c->getUtility();
650
- rs::runset("prepareMethod-basic", rs::get_spec(primary(), {"prepareMethod", "basic"}),
651
- [&](const Value& entry) -> Value {
652
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
653
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
654
- return Value(utility->prepareMethod(ctx));
670
+ runsection("prepareMethod", [&](std::vector<Value>& args) -> Value {
671
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
672
+ // An op the API does not define resolves NO method; ts answers
673
+ // undefined there and C++ answers "" — both are "no value" to the
674
+ // corpus (the go subject does the same).
675
+ std::string method = utility->prepareMethod(ctx);
676
+ return method.empty() ? Value::undef() : Value(method);
655
677
  });
656
678
  }
657
679
 
658
680
  static void prepareParamsBasic() {
659
681
  auto c = client();
660
682
  UtilityPtr utility = c->getUtility();
661
- rs::runset("prepareParams-basic", rs::get_spec(primary(), {"prepareParams", "basic"}),
662
- [&](const Value& entry) -> Value {
663
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
664
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
683
+ runsection("prepareParams", [&](std::vector<Value>& args) -> Value {
684
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
665
685
  return utility->prepareParams(ctx);
666
686
  });
667
687
  }
@@ -673,10 +693,8 @@ static void preparePathBasic() {
673
693
  // preparePath fixture shipped as an empty `set: []`).
674
694
  auto c = client();
675
695
  UtilityPtr utility = c->getUtility();
676
- rs::runset("preparePath-basic", rs::get_spec(primary(), {"preparePath", "basic"}),
677
- [&](const Value& entry) -> Value {
678
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
679
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
696
+ runsection("preparePath", [&](std::vector<Value>& args) -> Value {
697
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
680
698
  return Value(utility->preparePath(ctx));
681
699
  });
682
700
  }
@@ -686,10 +704,8 @@ static void preparePathBasic() {
686
704
  static void prepareQueryBasic() {
687
705
  auto c = client();
688
706
  UtilityPtr utility = c->getUtility();
689
- rs::runset("prepareQuery-basic", rs::get_spec(primary(), {"prepareQuery", "basic"}),
690
- [&](const Value& entry) -> Value {
691
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
692
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
707
+ runsection("prepareQuery", [&](std::vector<Value>& args) -> Value {
708
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
693
709
  return utility->prepareQuery(ctx);
694
710
  });
695
711
  }
@@ -699,11 +715,8 @@ static void prepareQueryBasic() {
699
715
  static void resultBasicBasic() {
700
716
  auto c = client();
701
717
  UtilityPtr utility = c->getUtility();
702
- rs::runset("resultBasic-basic", rs::get_spec(primary(), {"resultBasic", "basic"}),
703
- [&](const Value& entry) -> Value {
704
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
705
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
706
- rs::fixctx(ctx, c);
718
+ runsection("resultBasic", [&](std::vector<Value>& args) -> Value {
719
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
707
720
 
708
721
  ResultPtr result = utility->resultBasic(ctx);
709
722
 
@@ -718,17 +731,12 @@ static void resultBasicBasic() {
718
731
  static void resultBodyBasic() {
719
732
  auto c = client();
720
733
  UtilityPtr utility = c->getUtility();
721
- rs::runset("resultBody-basic", rs::get_spec(primary(), {"resultBody", "basic"}),
722
- [&](const Value& entry) -> Value {
723
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
724
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
734
+ runsection("resultBody", [&](std::vector<Value>& args) -> Value {
735
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
725
736
 
726
737
  utility->resultBody(ctx);
727
738
 
728
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
729
- if (entryCtx.is_map() && ctx->result) {
730
- map_put(entryCtx, "result", fhMap({{"body", ctx->result->body}}));
731
- }
739
+ res::omni_sync_ctx(arg0(args), ctx);
732
740
  return Value::undef();
733
741
  });
734
742
  }
@@ -736,17 +744,12 @@ static void resultBodyBasic() {
736
744
  static void resultHeadersBasic() {
737
745
  auto c = client();
738
746
  UtilityPtr utility = c->getUtility();
739
- rs::runset("resultHeaders-basic", rs::get_spec(primary(), {"resultHeaders", "basic"}),
740
- [&](const Value& entry) -> Value {
741
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
742
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
747
+ runsection("resultHeaders", [&](std::vector<Value>& args) -> Value {
748
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
743
749
 
744
750
  utility->resultHeaders(ctx);
745
751
 
746
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
747
- if (entryCtx.is_map() && ctx->result) {
748
- map_put(entryCtx, "result", fhMap({{"headers", ctx->result->headers}}));
749
- }
752
+ res::omni_sync_ctx(arg0(args), ctx);
750
753
  return Value::undef();
751
754
  });
752
755
  }
@@ -756,18 +759,12 @@ static void resultHeadersBasic() {
756
759
  static void transformRequestBasic() {
757
760
  auto c = client();
758
761
  UtilityPtr utility = c->getUtility();
759
- rs::runset("transformRequest-basic", rs::get_spec(primary(), {"transformRequest", "basic"}),
760
- [&](const Value& entry) -> Value {
761
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
762
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
762
+ runsection("transformRequest", [&](std::vector<Value>& args) -> Value {
763
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
763
764
 
764
765
  Value result = utility->transformRequest(ctx);
765
766
 
766
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
767
- if (entryCtx.is_map() && ctx->spec) {
768
- Value specMap = Helpers::toMapAny(getp(entryCtx, "spec"));
769
- if (specMap.is_map()) map_put(specMap, "step", Value(ctx->spec->step));
770
- }
767
+ res::omni_sync_ctx(arg0(args), ctx);
771
768
  return result;
772
769
  });
773
770
  }
@@ -775,25 +772,84 @@ static void transformRequestBasic() {
775
772
  static void transformResponseBasic() {
776
773
  auto c = client();
777
774
  UtilityPtr utility = c->getUtility();
778
- rs::runset("transformResponse-basic", rs::get_spec(primary(), {"transformResponse", "basic"}),
779
- [&](const Value& entry) -> Value {
780
- Value ctxmap = Helpers::toMapAny(getp(entry, "ctx"));
781
- CtxPtr ctx = rs::make_ctx_from_map(ctxmap, c, utility);
775
+ runsection("transformResponse", [&](std::vector<Value>& args) -> Value {
776
+ CtxPtr ctx = res::omni_ctx(arg0(args), c, utility);
782
777
 
783
778
  Value result = utility->transformResponse(ctx);
784
779
 
785
- Value entryCtx = Helpers::toMapAny(getp(entry, "ctx"));
786
- if (entryCtx.is_map() && ctx->spec) {
787
- Value specMap = Helpers::toMapAny(getp(entryCtx, "spec"));
788
- if (specMap.is_map()) map_put(specMap, "step", Value(ctx->spec->step));
789
- }
780
+ res::omni_sync_ctx(arg0(args), ctx);
790
781
  return result;
791
782
  });
792
783
  }
793
784
 
785
+ // --- whole-corpus coverage --------------------------------------------------
786
+
787
+ // Sections under `primary` that are NOT this SDK's pipeline surface, with the
788
+ // reason each is exempt. `check` is omni's OWN runner fixture (it comes from
789
+ // .sdk/test/struct/test.aon, which the corpus build merges into primary); no
790
+ // port drives it from a primary suite.
791
+ static const std::vector<std::string>& notThisSuite() {
792
+ static const std::vector<std::string> names = {"check"};
793
+ return names;
794
+ }
795
+
796
+ static std::string joinnames(const std::vector<std::string>& names) {
797
+ std::string out;
798
+ for (const auto& name : names) {
799
+ if (!out.empty()) out += ", ";
800
+ out += name;
801
+ }
802
+ return out;
803
+ }
804
+
805
+ // The guard the PER-SECTION one cannot be. runsection() only fires for a
806
+ // section some test actually names, so a section no test names is invisible
807
+ // to it: `clean` (4 entries) and `makePoint` (7) sat undriven behind
808
+ // hand-written stubs while this binary reported "67 cases driven" — a number
809
+ // that was the sum of the sections it happened to call, and so could not
810
+ // tell full coverage from partial. Comparing the fixture against what was
811
+ // actually driven is what makes that line evidence.
812
+ static void corpusCoverage() {
813
+ Value spec = primaryRun().spec;
814
+ ASSERT_TRUE(spec.is_map(), "primary corpus did not resolve - no coverage to check");
815
+ if (!spec.is_map()) return;
816
+
817
+ std::vector<std::string> sections = Struct::keysof(spec);
818
+ ASSERT_TRUE(!sections.empty(), "primary corpus has NO sections - check ../.sdk/test/test.json");
819
+
820
+ std::vector<std::string> undriven;
821
+ std::vector<std::string> staleskip;
822
+
823
+ for (const auto& name : sections) {
824
+ Value section = Helpers::toMapAny(getp(spec, Value(name)));
825
+ Value basic = section.is_map() ? Helpers::toMapAny(getp(section, Value("basic"))) : Value::undef();
826
+ Value set = basic.is_map() ? getp(basic, Value("set")) : Value::undef();
827
+ bool hascases = set.is_list() && !set.as_list()->empty();
828
+
829
+ const auto& exempt = notThisSuite();
830
+ if (std::find(exempt.begin(), exempt.end(), name) != exempt.end()) {
831
+ // The exemption has to keep earning itself: a name that lost its cases
832
+ // (or was renamed away) no longer needs one, and a list nobody prunes
833
+ // is how the next hole gets excused.
834
+ if (!hascases) staleskip.push_back(name);
835
+ continue;
836
+ }
837
+
838
+ if (hascases && 0 == drivenSections().count(name)) undriven.push_back(name);
839
+ }
840
+
841
+ ASSERT_TRUE(undriven.empty(),
842
+ "primary corpus sections carry cases that NO test drives: " + joinnames(undriven) +
843
+ " - add a runsection() call; until then the \"cases driven\" count is not coverage");
844
+ ASSERT_TRUE(staleskip.empty(),
845
+ "these names are exempt from the coverage check but no longer carry cases: " +
846
+ joinnames(staleskip) + " - drop them from notThisSuite()");
847
+ }
848
+
794
849
  int main() {
795
850
  T_RUN(exists);
796
851
  T_RUN(cleanBasic);
852
+ T_RUN(cleanCorpus);
797
853
  T_RUN(doneBasic);
798
854
  T_RUN(makeErrorBasic);
799
855
  T_RUN(makeErrorNoThrow);
@@ -829,5 +885,8 @@ int main() {
829
885
  T_RUN(resultHeadersBasic);
830
886
  T_RUN(transformRequestBasic);
831
887
  T_RUN(transformResponseBasic);
888
+ // LAST: it reads what every test above actually drove.
889
+ T_RUN(corpusCoverage);
890
+ std::cout << "primary corpus: " << res::cases() << " cases driven\n";
832
891
  return sdktest::summary("primary_utility_test");
833
892
  }