@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
@@ -0,0 +1,199 @@
1
+ # VENDORED: @voxgig/omni sdk-20260907-0029-0 (ruby/lib/voxgig_omni/util.rb)
2
+ # Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
+ # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ # Omni internal JSON utilities.
5
+ #
6
+ # This module is deliberately self-contained: the omni runner must be able
7
+ # to test *any* library, including libraries that provide these same
8
+ # operations, so it can never borrow them from the system under test.
9
+ # Zero third-party dependencies, by design.
10
+
11
+ module VoxgigOmni
12
+ NULLMARK = '__NULL__' # Value is JSON null.
13
+ UNDEFMARK = '__UNDEF__' # Value is not present (thus, undefined).
14
+ EXISTSMARK = '__EXISTS__' # Value exists (not undefined).
15
+
16
+ # Ruby has no `undefined`, so absence needs its own marker.
17
+ class AbsentClass
18
+ def to_s
19
+ 'ABSENT'
20
+ end
21
+
22
+ def inspect
23
+ 'ABSENT'
24
+ end
25
+ end
26
+
27
+ ABSENT = AbsentClass.new
28
+
29
+ module Util
30
+ module_function
31
+
32
+ # A map (JSON object)?
33
+ def ismap(val)
34
+ val.is_a?(Hash)
35
+ end
36
+
37
+ # A list (JSON array)?
38
+ def islist(val)
39
+ val.is_a?(Array)
40
+ end
41
+
42
+ # A container (map or list)?
43
+ def isnode(val)
44
+ ismap(val) || islist(val)
45
+ end
46
+
47
+ # A JSON number? Booleans are not numbers.
48
+ def isnum(val)
49
+ val.is_a?(Numeric) && !val.is_a?(TrueClass) && !val.is_a?(FalseClass)
50
+ end
51
+
52
+ # Deep copy a JSON value. Other values pass through by reference.
53
+ def clone(val)
54
+ return val.map { |entry| clone(entry) } if islist(val)
55
+
56
+ if ismap(val)
57
+ out = {}
58
+ val.each { |key, subval| out[key] = clone(subval) }
59
+ return out
60
+ end
61
+
62
+ val
63
+ end
64
+
65
+ # Read a value by path. Returns ABSENT when any step is missing.
66
+ def getpath(val, path)
67
+ current = val
68
+
69
+ path.each do |part|
70
+ if islist(current)
71
+ index = part.is_a?(Integer) ? part : Integer(part.to_s, exception: false)
72
+ return ABSENT if index.nil? || index.negative? || index >= current.length
73
+
74
+ current = current[index]
75
+ elsif ismap(current)
76
+ key = part.to_s
77
+ return ABSENT unless current.key?(key)
78
+
79
+ current = current[key]
80
+ else
81
+ return ABSENT
82
+ end
83
+ end
84
+
85
+ current
86
+ end
87
+
88
+ # Depth-first walk: children first, then the containing node.
89
+ def walk(val, apply, key = nil, parent = nil, path = nil)
90
+ curpath = path || []
91
+
92
+ if isnode(val)
93
+ if islist(val)
94
+ val.each_index do |index|
95
+ val[index] = walk(val[index], apply, index, val, curpath + [index])
96
+ end
97
+ else
98
+ val.keys.each do |childkey|
99
+ val[childkey] = walk(val[childkey], apply, childkey, val, curpath + [childkey])
100
+ end
101
+ end
102
+ end
103
+
104
+ apply.call(key, val, parent, curpath)
105
+ end
106
+
107
+ # Deep structural equality: numbers by value, bools never numbers.
108
+ def deepequal(a, b)
109
+ return true if a.equal?(b)
110
+
111
+ abool = a.is_a?(TrueClass) || a.is_a?(FalseClass)
112
+ bbool = b.is_a?(TrueClass) || b.is_a?(FalseClass)
113
+ return a == b if abool || bbool
114
+
115
+ # NaN equals NaN: deepequal is structural, not IEEE (as canonical).
116
+ if isnum(a) && isnum(b)
117
+ return true if a.is_a?(Float) && a.nan? && b.is_a?(Float) && b.nan?
118
+
119
+ return a == b
120
+ end
121
+
122
+ return a.equal?(b) if a.nil? || b.nil? || a.equal?(ABSENT) || b.equal?(ABSENT)
123
+
124
+ if islist(a) && islist(b)
125
+ return false if a.length != b.length
126
+
127
+ return a.each_index.all? { |i| deepequal(a[i], b[i]) }
128
+ end
129
+
130
+ if ismap(a) && ismap(b)
131
+ return false if a.length != b.length
132
+
133
+ return a.all? { |key, val| b.key?(key) && deepequal(val, b[key]) }
134
+ end
135
+
136
+ return false if islist(a) != islist(b) || ismap(a) != ismap(b)
137
+
138
+ a == b
139
+ end
140
+
141
+ # Render a number the same way in every port: 5.0 prints as 5.
142
+ def numstr(val)
143
+ if val.is_a?(Float)
144
+ return 'null' if val.nan? || val.infinite?
145
+ return val.to_i.to_s if val == val.to_i && val.abs < 2**53
146
+
147
+ return val.to_s
148
+ end
149
+
150
+ val.to_s
151
+ end
152
+
153
+ def quote(val)
154
+ out = +'"'
155
+ val.to_s.each_char do |char|
156
+ out << case char
157
+ when '"' then '\\"'
158
+ when '\\' then '\\\\'
159
+ when "\n" then '\\n'
160
+ when "\r" then '\\r'
161
+ when "\t" then '\\t'
162
+ else
163
+ char.ord < 0x20 ? format('\\u%04x', char.ord) : char
164
+ end
165
+ end
166
+ out << '"'
167
+ out
168
+ end
169
+
170
+ # Compact JSON text with map keys sorted, identical in every port.
171
+ def jsonstr(val)
172
+ return 'undefined' if val.equal?(ABSENT)
173
+ return 'null' if val.nil?
174
+ return val ? 'true' : 'false' if val.is_a?(TrueClass) || val.is_a?(FalseClass)
175
+ return quote(val) if val.is_a?(String)
176
+ return numstr(val) if isnum(val)
177
+ return '[' + val.map { |entry| jsonstr(entry) }.join(',') + ']' if islist(val)
178
+
179
+ if ismap(val)
180
+ keys = val.keys.map(&:to_s).sort
181
+ return '{' + keys.map { |key| quote(key) + ':' + jsonstr(val[key]) }.join(',') + '}'
182
+ end
183
+
184
+ return '[Function]' if val.is_a?(Proc) || val.is_a?(Method)
185
+
186
+ quote(val.to_s)
187
+ end
188
+
189
+ # Strings verbatim, everything else as compact JSON.
190
+ def stringify(val)
191
+ val.is_a?(String) ? val : jsonstr(val)
192
+ end
193
+
194
+ # Render a path as a dotted string.
195
+ def pathify(path)
196
+ (path || []).map(&:to_s).join('.')
197
+ end
198
+ end
199
+ end
@@ -0,0 +1,15 @@
1
+ # VENDORED: @voxgig/omni sdk-20260907-0029-0 (ruby/lib/voxgig_omni.rb)
2
+ # Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
+ # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ # voxgig_omni - shared multi-language test runner.
5
+
6
+ require_relative 'util'
7
+ require_relative 'runner'
8
+
9
+ module VoxgigOmni
10
+ module_function
11
+
12
+ def make_runner(specref, provider = nil)
13
+ Runner.make_runner(specref, provider)
14
+ end
15
+ end
@@ -9,6 +9,10 @@ module ProjectNameUtilities
9
9
  PrepareMethod = ->(ctx) {
10
10
  method = VoxgigStruct.getprop(ctx.point, "method")
11
11
  next method.upcase if method.is_a?(String) && "" != method
12
- METHOD_MAP[ctx.op.name] || "GET"
12
+ # No default: an op name outside the convention resolves to no method,
13
+ # exactly as the ts reference (`methodMap[key]` is undefined there).
14
+ # The silent-pass inline runner hid a stray "GET" fallback here; the
15
+ # shared corpus (prepareMethod, opname "bad" -> null) pins it now.
16
+ METHOD_MAP[ctx.op.name]
13
17
  }
14
18
  end
@@ -1,6 +1,13 @@
1
- // Shared SDK test infrastructure (mirrors tm/go/test/runner_test.go plus
2
- // the fh* feature-test harness from tm/go/test/feature_test.go). Each test
3
- // binary includes this module with `mod common;`.
1
+ // Shared SDK test SUPPORT: the helpers the generated entity/direct tests and
2
+ // the corpus call sites share — env loading, the sdk-test-control.json skip
3
+ // and pacing machinery, corpus access, entity-data conversion, ctx
4
+ // construction from a JSON test entry, and the fh* feature-test harness
5
+ // (mirrors tm/go/test/testsupport_test.go plus the fh* harness from
6
+ // tm/go/test/feature_test.go). Each test binary includes it with
7
+ // `mod common;`.
8
+ //
9
+ // The corpus ENGINE half of this file was retired by the vendor-tag rollout:
10
+ // see the note where it used to be, and tests/omni_resolver/mod.rs.
4
11
 
5
12
  #![allow(dead_code)]
6
13
 
@@ -9,7 +16,7 @@ use std::path::PathBuf;
9
16
  use std::rc::Rc;
10
17
 
11
18
  use RUSTCRATE::core::helpers::{
12
- get_bool, get_str, getp, ja, jo, json_thunk, now_ms, setp, to_int, to_map,
19
+ get_bool, get_str, getp, jo, json_thunk, now_ms, setp, to_int, to_map,
13
20
  };
14
21
  use RUSTCRATE::utility::voxgigstruct as vs;
15
22
  use RUSTCRATE::{
@@ -233,244 +240,14 @@ pub fn json_normalize(v: &Value) -> Value {
233
240
  }
234
241
  }
235
242
 
236
- /// matchString: /re/ patterns via the vendored regex engine, otherwise
237
- /// case-insensitive substring.
238
- pub fn match_string(pattern: &str, val: &str) -> bool {
239
- if pattern.len() >= 2 && pattern.starts_with('/') && pattern.ends_with('/') {
240
- return RUSTCRATE::utility::voxgigstruct::re::Regex::new(
241
- &pattern[1..pattern.len() - 1],
242
- )
243
- .map(|re| re.is_match(val))
244
- .unwrap_or(false);
245
- }
246
- val.to_lowercase().contains(&pattern.to_lowercase())
247
- }
248
-
249
- /// matchDeep (mirrors go): every leaf of `check` must equal/match the same
250
- /// path in `base`; returns Some(reason) on the first mismatch.
251
- pub fn match_deep(check: &Value, base: &Value) -> Option<String> {
252
- fn rec(check: &Value, base: &Value, path: &mut Vec<String>) -> Option<String> {
253
- match check {
254
- Value::Map(cm) => {
255
- for (k, cv) in cm.borrow().iter() {
256
- let bv = getp(base, k);
257
- path.push(k.clone());
258
- let r = rec(cv, &bv, path);
259
- path.pop();
260
- if r.is_some() {
261
- return r;
262
- }
263
- }
264
- None
265
- }
266
- Value::List(cl) => {
267
- for (i, cv) in cl.borrow().iter().enumerate() {
268
- let bv = vs::get_elem(base, &Value::Num(i as f64), Value::Noval);
269
- path.push(i.to_string());
270
- let r = rec(cv, &bv, path);
271
- path.pop();
272
- if r.is_some() {
273
- return r;
274
- }
275
- }
276
- None
277
- }
278
- leaf => {
279
- if let Value::Str(s) = leaf {
280
- if s == EXISTSMARK {
281
- if base.is_noval() || base.is_null() {
282
- return Some(format!(
283
- "{}: expected value to exist",
284
- path.join(".")
285
- ));
286
- }
287
- return None;
288
- }
289
- if s == UNDEFMARK {
290
- if !base.is_noval() && !base.is_null() {
291
- return Some(format!(
292
- "{}: expected undefined, got {}",
293
- path.join("."),
294
- vs::stringify(base, Some(60), false)
295
- ));
296
- }
297
- return None;
298
- }
299
- }
300
-
301
- let nc = json_normalize(leaf);
302
- let nb = json_normalize(base);
303
- if nc == nb {
304
- return None;
305
- }
306
- if let Value::Str(cs) = leaf {
307
- if !cs.is_empty() && match_string(cs, &vs::stringify(base, None, false)) {
308
- return None;
309
- }
310
- }
311
- Some(format!(
312
- "{}: got {}, want {}",
313
- path.join("."),
314
- vs::stringify(&nb, Some(120), false),
315
- vs::stringify(&nc, Some(120), false)
316
- ))
317
- }
318
- }
319
- }
320
- let mut path = Vec::new();
321
- rec(check, base, &mut path)
322
- }
323
-
324
- // ---- runset (mirrors go runner_test.go runset) -----------------------------------
325
-
326
- // Sections deliberately left empty in the shared corpus
327
- // (.sdk/test/primary/<name>.aon carries a PENDING header). Everything else
328
- // MUST contribute cases.
329
- pub const PENDING_SECTIONS: &[&str] = &[
330
- "fetcher", "makeFetchDef", "makeResult", "featureAdd",
331
- "featureHook", "featureInit",
332
- ];
333
-
334
- pub fn runset(
335
- testspec: &Value,
336
- subject: &mut dyn FnMut(&Value) -> Result<Value, ProjectNameError>,
337
- ) {
338
- runset_named("", testspec, subject)
339
- }
340
-
341
- /// Drive one section of the shared test corpus.
342
- ///
343
- /// This used to `return` silently when "set" was missing or not a list, so a
344
- /// renamed section, a fixture that failed to compile, or an empty set reported
345
- /// PASS while running zero assertions — the whole point of a shared oracle lost
346
- /// without a single red test. Both conditions now panic, except for the
347
- /// sections explicitly marked PENDING in the corpus.
348
- pub fn runset_named(
349
- name: &str,
350
- testspec: &Value,
351
- subject: &mut dyn FnMut(&Value) -> Result<Value, ProjectNameError>,
352
- ) {
353
- let set = match getp(testspec, "set") {
354
- Value::List(l) => Value::List(l),
355
- _ => panic!(
356
- "test corpus section {:?} has no `set` list — zero cases would run",
357
- name
358
- ),
359
- };
360
-
361
- if let Value::List(l) = &set {
362
- if l.borrow().is_empty() && !PENDING_SECTIONS.contains(&name) {
363
- panic!(
364
- "test corpus section {:?} is EMPTY — zero cases would run; add \
365
- cases, or mark the fixture PENDING in .sdk/test/primary/",
366
- name
367
- );
368
- }
369
- }
370
-
371
- let entries: Vec<Value> = match &set {
372
- Value::List(l) => l.borrow().clone(),
373
- _ => Vec::new(),
374
- };
375
-
376
- for (i, entry) in entries.iter().enumerate() {
377
- if !matches!(entry, Value::Map(_)) {
378
- continue;
379
- }
380
-
381
- let mark = match getp(entry, "mark") {
382
- Value::Noval => String::new(),
383
- m => format!(" (mark={})", vs::stringify(&m, None, false)),
384
- };
385
-
386
- let result = subject(entry);
387
- let expected_err = getp(entry, "err");
388
-
389
- match result {
390
- Err(err) => {
391
- if !expected_err.is_noval() && !expected_err.is_null() {
392
- let errmsg = err.msg.clone();
393
- if let Value::Str(exp) = &expected_err {
394
- if !match_string(exp, &errmsg) {
395
- panic!(
396
- "entry {}{}: error mismatch: got {:?}, want contains {:?}",
397
- i, mark, errmsg, exp
398
- );
399
- }
400
- }
401
- // err: true means any error is acceptable.
402
- if let Value::Map(_) = getp(entry, "match") {
403
- let result_map = jo(vec![
404
- ("in", getp(entry, "in")),
405
- (
406
- "err",
407
- jo(vec![("message", Value::str(errmsg.clone()))]),
408
- ),
409
- ]);
410
- if let Some(why) =
411
- match_deep(&getp(entry, "match"), &result_map)
412
- {
413
- panic!("entry {}{}: match: {}", i, mark, why);
414
- }
415
- }
416
- continue;
417
- }
418
- panic!("entry {}{}: unexpected error: {}", i, mark, err.msg);
419
- }
420
- Ok(out) => {
421
- if !expected_err.is_noval() && !expected_err.is_null() {
422
- panic!(
423
- "entry {}{}: expected error containing {} but got result: {}",
424
- i,
425
- mark,
426
- vs::stringify(&expected_err, None, false),
427
- vs::stringify(&out, Some(160), false)
428
- );
429
- }
430
-
431
- let mut matched = false;
432
- if let Value::Map(_) = getp(entry, "match") {
433
- let result_map = jo(vec![
434
- ("in", getp(entry, "in")),
435
- ("out", json_normalize(&out)),
436
- ]);
437
- let args = getp(entry, "args");
438
- if !args.is_noval() {
439
- setp(&result_map, "args", args);
440
- } else if !getp(entry, "in").is_noval() {
441
- setp(&result_map, "args", ja(vec![getp(entry, "in")]));
442
- }
443
- let ctx_data = getp(entry, "ctx");
444
- if !ctx_data.is_noval() {
445
- setp(&result_map, "ctx", ctx_data);
446
- }
447
- if let Some(why) = match_deep(&getp(entry, "match"), &result_map) {
448
- panic!("entry {}{}: match: {}", i, mark, why);
449
- }
450
- matched = true;
451
- }
452
-
453
- let expected_out = getp(entry, "out");
454
- if expected_out.is_noval() && matched {
455
- continue;
456
- }
457
- if !expected_out.is_noval() {
458
- let norm_result = json_normalize(&out);
459
- let norm_expected = json_normalize(&expected_out);
460
- if norm_result != norm_expected {
461
- panic!(
462
- "entry {}{}: output mismatch:\n got: {}\n want: {}",
463
- i,
464
- mark,
465
- vs::stringify(&norm_result, Some(240), false),
466
- vs::stringify(&norm_expected, Some(240), false)
467
- );
468
- }
469
- }
470
- }
471
- }
472
- }
473
- }
243
+ // The corpus ENGINE that used to live here — `runset` / `runset_named`
244
+ // (the entry loop) and `match_deep` / `match_string` (the match engine) —
245
+ // is superseded by the vendored @voxgig/omni runner, driven through the
246
+ // adapter in tests/omni_resolver/mod.rs (vendor-tag rollout, Decision 4).
247
+ // This file keeps its SUPPORT half under its own name — env loading, the
248
+ // sdk-test-control skip/pacing machinery, corpus and entity-data access,
249
+ // ctx construction from a JSON entry, and the fh feature harness — so the
250
+ // emitted call sites did not move.
474
251
 
475
252
  // ---- ctx construction from JSON test entries --------------------------------------
476
253