@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,363 +1,227 @@
1
- /- ProjectName SDK primary utility test.
1
+ /- ProjectName SDK primary utility corpus.
2
2
 
3
3
  Drives the SHARED language-neutral corpus (.sdk/test/test.json, section
4
- `primary`) — the same fixtures every other target executes — so this suite
5
- cannot drift from the reference implementation. Each section is looked up
6
- with `getSpec` and executed with `runset`, as the ts/js reference harness
7
- does. -/
4
+ `primary`) — the same fixtures every other target executes — through this
5
+ SDK's request-shaping utilities, so the cases cannot drift from the
6
+ reference implementation. Each section is looked up by name and executed on
7
+ the VENDORED @voxgig/omni engine through OmniResolver, exactly as the ts/js
8
+ reference harness does.
9
+
10
+ The ENGINE used to be in this file: `runset`, `deepEq`, `strCheck`,
11
+ `matchDeep` and the pass/fail tally were this port's own copy of omni's
12
+ algorithm. All of it is gone. What remains is what belongs to this SDK:
13
+ which corpus section drives which utility, and how a corpus map becomes a
14
+ live context. The file keeps its name (and the `primary` executable keeps
15
+ its root), so no call site needed churn.
16
+
17
+ Every section uses `runsetArgs`: a `ctx` entry arrives as `args[0]`, a MAP
18
+ on this SDK's own heap, which the call site wires to the client
19
+ options/config, runs the utility on, and which the resolver writes back
20
+ after the call — which is what makes `match: {ctx: ...}` (retargeted onto
21
+ `match: {args: {"0": ...}}` by the resolver, decision 4) read the POST-call
22
+ state rather than a stale pre-call copy. This port needs no separate
23
+ "typed context" step: `ctx` here IS a struct map, heap-backed and
24
+ reference-stable, and the utilities mutate it in place. -/
8
25
 
9
26
  import VoxgigStruct
10
27
  import Vregex
11
28
  import SdkJson
12
29
  import SdkUtility
13
30
  import SdkConfig
31
+ import Omni
32
+ import OmniResolver
14
33
 
15
34
  open VoxgigStruct
16
-
17
- initialize npass : IO.Ref Nat ← IO.mkRef 0
18
- initialize nfail : IO.Ref Nat ← IO.mkRef 0
19
- initialize failures : IO.Ref (Array String) ← IO.mkRef #[]
20
-
21
- def pass : SIO Unit := do npass.modify (· + 1)
22
-
23
- def fail (msg : String) : SIO Unit := do
24
- nfail.modify (· + 1)
25
- failures.modify (·.push msg)
26
-
27
- -- ---------------------------------------------------------------------------
28
- -- corpus navigation
29
- -- ---------------------------------------------------------------------------
30
-
31
- /-- Navigate into the nested corpus map by keys. -/
32
- def getSpec (root : Value) (path : Array String) : SIO Value := do
33
- let mut cur := root
34
- for k in path do
35
- cur ← SdkUtility.gp cur k
36
- pure cur
37
-
38
- def itemsOf (v : Value) : SIO (Array Value) := do
39
- match v with
40
- | .list i => listItems i
41
- | _ => pure #[]
42
-
43
- def argAt (args : Value) (i : Nat) : SIO Value := do
44
- pure ((← itemsOf args)[i]?.getD .noval)
45
-
46
- -- ---------------------------------------------------------------------------
47
- -- comparison
48
- -- ---------------------------------------------------------------------------
49
-
50
- /-- Deep structural equality; an empty list and an empty map are equivalent. -/
51
- partial def deepEq (a b : Value) : SIO Bool := do
52
- match a, b with
53
- | .map ia, .map ib => do
54
- let ka ← keysof (.map ia)
55
- let kb ← keysof (.map ib)
56
- if ka.size != kb.size then pure false
57
- else do
58
- let mut ok := true
59
- for k in ka do
60
- let va ← SdkUtility.gp (.map ia) k
61
- let vb ← SdkUtility.gp (.map ib) k
62
- if !(← deepEq va vb) then ok := false
63
- pure ok
64
- | .list ia, .list ib => do
65
- let la ← listItems ia
66
- let lb ← listItems ib
67
- if la.size != lb.size then pure false
68
- else do
69
- let mut ok := true
70
- for i in [0:la.size] do
71
- if !(← deepEq (la[i]!) (lb[i]!)) then ok := false
72
- pure ok
73
- | .map ia, .list ib => do
74
- pure ((← keysof (.map ia)).isEmpty && (← listItems ib).isEmpty)
75
- | .list ia, .map ib => do
76
- pure ((← listItems ia).isEmpty && (← keysof (.map ib)).isEmpty)
77
- | x, y => pure (x == y)
78
-
79
- /-- A corpus string check: `/re/` is a regex, otherwise substring containment. -/
80
- def strCheck (checkStr subject : String) : Bool :=
81
- if checkStr.length > 1 && checkStr.startsWith "/" && checkStr.endsWith "/" then
82
- let inner := String.ofList (checkStr.toList.drop 1).dropLast
83
- Vregex.testStr inner subject
84
- else if checkStr == subject then true
85
- else (subject.splitOn checkStr).length > 1
86
-
87
- /-- Partial deep match: every key present in `check` must hold in `base`. -/
88
- partial def matchDeep (check base : Value) (path : String) (errs : IO.Ref (Array String)) :
89
- SIO Unit := do
90
- match check with
91
- | .map ic =>
92
- for k in (← keysof (.map ic)) do
93
- let cv ← SdkUtility.gp (.map ic) k
94
- let bv ← SdkUtility.gp base k
95
- matchDeep cv bv (if path == "" then k else path ++ "." ++ k) errs
96
- | .list ic => do
97
- let items ← listItems ic
98
- let bitems ← itemsOf base
99
- for i in [0:items.size] do
100
- let bv := bitems[i]?.getD .noval
101
- matchDeep (items[i]!) bv (path ++ "[" ++ toString i ++ "]") errs
102
- | .str s =>
103
- if s == "__EXISTS__" then
104
- (if SdkUtility.isNov base then errs.modify (·.push (path ++ ": expected to exist")) else pure ())
105
- else if s == "__UNDEF__" then
106
- (if SdkUtility.isNov base then pure () else errs.modify (·.push (path ++ ": expected undefined")))
107
- else do
108
- let bs := SdkUtility.vs base
109
- if strCheck s bs then pure ()
110
- else errs.modify (·.push (path ++ ": want " ++ s ++ ", got " ++ bs))
111
- | _ => do
112
- if (← deepEq check base) then pure ()
113
- else do
114
- let cs ← stringify check
115
- let bs ← stringify base
116
- errs.modify (·.push (path ++ ": want " ++ cs ++ ", got " ++ bs))
117
-
118
- -- ---------------------------------------------------------------------------
119
- -- the runner
120
- -- ---------------------------------------------------------------------------
121
-
122
- abbrev Subject := Value → SIO (Value × Option Value)
123
-
124
- def runset (secname : String) (spec : Value) (subject : Subject) : SIO Unit := do
125
- let entries ← itemsOf (← SdkUtility.gp spec "set")
126
- for idx in [0:entries.size] do
127
- let entry := entries[idx]!
128
- let label := secname ++ "[" ++ toString idx ++ "]"
129
- let errs ← IO.mkRef (#[] : Array String)
130
- let (res, merr) ← subject entry
131
- let expErr ← SdkUtility.gp entry "err"
132
- let mspec ← SdkUtility.gp entry "match"
133
- match merr with
134
- | some e => do
135
- let em ← SdkUtility.gpS e "message"
136
- if SdkUtility.isNov expErr then fail (label ++ ": unexpected error: " ++ em)
137
- else do
138
- let ok := match expErr with
139
- | .str s => strCheck s em
140
- | .bool b => b
141
- | _ => false
142
- if !ok then fail (label ++ ": error mismatch: got " ++ em)
143
- else do
144
- if !(SdkUtility.isNov mspec) then do
145
- let rm ← emptyMap
146
- let emap ← newMap #[("message", .str em)]
147
- SdkUtility.sp rm "err" emap
148
- SdkUtility.sp rm "out" res
149
- matchDeep mspec rm "" errs
150
- let es ← errs.get
151
- if es.isEmpty then pass else fail (label ++ ": " ++ String.intercalate "; " es.toList)
152
- | none => do
153
- if !(SdkUtility.isNov expErr) then fail (label ++ ": expected an error, got a result")
154
- else do
155
- if !(SdkUtility.isNov mspec) then do
156
- let rm ← emptyMap
157
- SdkUtility.sp rm "out" res
158
- SdkUtility.sp rm "in" (← SdkUtility.gp entry "in")
159
- SdkUtility.sp rm "ctx" (← SdkUtility.gp entry "ctx")
160
- SdkUtility.sp rm "args" (← SdkUtility.gp entry "args")
161
- matchDeep mspec rm "" errs
162
- let expOut ← SdkUtility.gp entry "out"
163
- if !(SdkUtility.isNov expOut) then
164
- if !(← deepEq expOut res) then do
165
- let rs ← stringify res
166
- let os ← stringify expOut
167
- errs.modify (·.push ("out: want " ++ os ++ ", got " ++ rs))
168
- let es ← errs.get
169
- if es.isEmpty then pass else fail (label ++ ": " ++ String.intercalate "; " es.toList)
35
+ open OmniResolver
170
36
 
171
37
  -- ---------------------------------------------------------------------------
172
38
  -- context construction
173
39
  -- ---------------------------------------------------------------------------
174
40
 
175
- /-- The entry's own `ctx` map (created and attached when absent), wired to the
176
- client options/config so the utilities see them. -/
177
- def entryCtx (entry options config : Value) : SIO Value := do
178
- let ctx ← match (← SdkUtility.gp entry "ctx") with
179
- | .map i => pure (Value.map i)
180
- | _ => do
181
- let m ← emptyMap
182
- SdkUtility.sp entry "ctx" m
183
- pure m
184
- SdkUtility.sp ctx "options" options
185
- SdkUtility.sp ctx "config" config
186
- pure ctx
41
+ /-- The entry's ctx map, wired to the client options/config so the utilities
42
+ see them. `args[0]` IS the map omni handed over, so every write the
43
+ utility makes to it is what `match.args.0` reads back.
187
44
 
188
- /-- A ctx from a bare map (args-style sections); published back onto the entry
189
- as `ctx` so a `match: ctx:` assertion sees the mutated context. -/
190
- def mapCtx (entry v options config : Value) : SIO Value := do
191
- let ctx match v with
45
+ A non-map first argument cannot occur in the shipped corpus (every entry
46
+ of every ctx section supplies one); a fresh map is used rather than
47
+ failing, so a future fixture degrades to "asserts nothing about the ctx"
48
+ instead of crashing the suite. -/
49
+ def ctxOf (vals : Array Value) (options config : Value) : SIO Value := do
50
+ let ctx ← match arg vals 0 with
192
51
  | .map i => pure (Value.map i)
193
52
  | _ => emptyMap
194
53
  SdkUtility.sp ctx "options" options
195
54
  SdkUtility.sp ctx "config" config
196
- SdkUtility.sp entry "ctx" ctx
197
55
  pure ctx
198
56
 
57
+ /-- A utility that answers `(result, error?)`. omni reports a subject failure
58
+ by its MESSAGE, so a returned SDK error becomes a thrown `IO.userError`
59
+ carrying exactly the message the corpus's `err` expectations match on. -/
60
+ def unwrap (pair : Value × Option Value) : SIO Value := do
61
+ match pair.2 with
62
+ | some e => throw (IO.userError (← SdkUtility.gpS e "message"))
63
+ | none => pure pair.1
64
+
199
65
  -- ---------------------------------------------------------------------------
200
66
  -- main
201
67
  -- ---------------------------------------------------------------------------
202
68
 
203
- def specPaths : Array String :=
204
- #["../.sdk/test/test.json", ".sdk/test/test.json", "test/test.json"]
205
-
206
- def readSpecFile : IO String := do
207
- match (← IO.getEnv "SDK_TEST_SPEC") with
208
- | some p => IO.FS.readFile p
209
- | none => do
210
- for p in specPaths do
211
- if ← System.FilePath.pathExists p then
212
- return (← IO.FS.readFile p)
213
- throw (IO.userError "cannot find .sdk/test/test.json (set SDK_TEST_SPEC)")
214
-
215
- def main : IO UInt32 := do
216
- let raw ← readSpecFile
69
+ def main (argv : List String) : IO UInt32 := do
70
+ let testfile ← resolveSpecPath argv
71
+ let r ← makeRun testfile "primary"
217
72
  let sctx ← mkCtx
73
+
218
74
  let go : SIO Unit := do
219
- let root ← SdkJson.jsonRead raw
220
- let primary ← SdkUtility.gp root "primary"
221
75
  let config ← SdkJson.jsonRead SdkConfig.configJson
222
76
  let opts ← SdkUtility.makeOptions config (← emptyMap)
223
77
 
224
- runset "done" ( getSpec primary #["done", "basic"]) fun entry => do
225
- SdkUtility.done (← entryCtx entry opts config)
78
+ runsetArgs r "done" (getset r ["done", "basic"]) (fun vals => do
79
+ unwrap (← SdkUtility.done (← ctxOf vals opts config)))
226
80
 
227
- runset "makeContext" ( getSpec primary #["makeContext", "basic"]) fun entry => do
228
- let ctx ← mapCtx entry (← SdkUtility.gp entry "in") opts config
229
- pure ((← SdkUtility.makeContext ctx), none)
81
+ runsetArgs r "makeContext" (getset r ["makeContext", "basic"]) (fun vals => do
82
+ SdkUtility.makeContext (← ctxOf vals opts config))
230
83
 
231
- runset "makeError" (← getSpec primary #["makeError", "basic"]) fun entry => do
232
- let args SdkUtility.gp entry "args"
233
- let ctx mapCtx entry (← argAt args 0) opts config
234
- pure (.noval, some ( SdkUtility.makeError ctx ( argAt args 1)))
84
+ -- makeError RETURNS the error rather than raising it, and the corpus
85
+ -- asserts it as one (`err`, and one `match: {err: ...}`), so the message
86
+ -- is thrown here.
87
+ runsetArgs r "makeError" (getset r ["makeError", "basic"]) (fun vals => do
88
+ let ctx ← ctxOf vals opts config
89
+ let e ← SdkUtility.makeError ctx (arg vals 1)
90
+ throw (IO.userError (← SdkUtility.gpS e "message")))
235
91
 
236
- runset "makeOptions" ( getSpec primary #["makeOptions", "basic"]) fun entry => do
237
- let inv SdkUtility.gp entry "in"
238
- pure ((← SdkUtility.makeOptions (← SdkUtility.gp inv "config") (← SdkUtility.gp inv "options")), none)
92
+ runsetArgs r "makeOptions" (getset r ["makeOptions", "basic"]) (fun vals => do
93
+ let inv := arg vals 0
94
+ SdkUtility.makeOptions (← getp inv "config") (← getp inv "options"))
239
95
 
240
- runset "makeRequest" ( getSpec primary #["makeRequest", "basic"]) fun entry => do
241
- SdkUtility.makeRequest (← entryCtx entry opts config)
96
+ runsetArgs r "makeRequest" (getset r ["makeRequest", "basic"]) (fun vals => do
97
+ unwrap (← SdkUtility.makeRequest (← ctxOf vals opts config)))
242
98
 
243
- runset "makeResponse" ( getSpec primary #["makeResponse", "basic"]) fun entry => do
244
- SdkUtility.makeResponse (← entryCtx entry opts config)
99
+ runsetArgs r "makeResponse" (getset r ["makeResponse", "basic"]) (fun vals => do
100
+ unwrap (← SdkUtility.makeResponse (← ctxOf vals opts config)))
245
101
 
246
- let specOpts SdkUtility.makeOptions config (← getSpec primary #["makeSpec", "DEF", "setup", "a"])
247
- runset "makeSpec" (← getSpec primary #["makeSpec", "basic"]) fun entry => do
248
- SdkUtility.makeSpec ( entryCtx entry specOpts config)
102
+ -- Sections configured by their own DEF.setup.a block get their own
103
+ -- options: prepareAuth reads the CLIENT's options, as the ts reference
104
+ -- does via client.options(), so a section's setup cannot reach it
105
+ -- through ctx.options.
106
+ let specOpts ← SdkUtility.makeOptions config
107
+ (← tostruct (getset r ["makeSpec", "DEF", "setup", "a"]))
108
+ runsetArgs r "makeSpec" (getset r ["makeSpec", "basic"]) (fun vals => do
109
+ unwrap (← SdkUtility.makeSpec (← ctxOf vals specOpts config)))
249
110
 
250
- runset "makeUrl" ( getSpec primary #["makeUrl", "basic"]) fun entry => do
251
- SdkUtility.makeUrl (← entryCtx entry opts config)
111
+ runsetArgs r "makeUrl" (getset r ["makeUrl", "basic"]) (fun vals => do
112
+ unwrap (← SdkUtility.makeUrl (← ctxOf vals opts config)))
252
113
 
253
- runset "operator" ( getSpec primary #["operator", "basic"]) fun entry => do
254
- pure ((← SdkUtility.operator ( SdkUtility.gp entry "in")), none)
114
+ runsetArgs r "operator" (getset r ["operator", "basic"]) (fun vals => do
115
+ SdkUtility.operator (arg vals 0))
255
116
 
256
- runset "param" ( getSpec primary #["param", "basic"]) fun entry => do
257
- let args SdkUtility.gp entry "args"
258
- let ctx ← mapCtx entry (← argAt args 0) opts config
259
- pure ((← SdkUtility.param ctx (← argAt args 1)), none)
117
+ runsetArgs r "param" (getset r ["param", "basic"]) (fun vals => do
118
+ SdkUtility.param (ctxOf vals opts config) (arg vals 1))
260
119
 
261
- let authOpts ← SdkUtility.makeOptions config (← getSpec primary #["prepareAuth", "DEF", "setup", "a"])
262
- runset "prepareAuth" ( getSpec primary #["prepareAuth", "basic"]) fun entry => do
263
- SdkUtility.prepareAuth ( entryCtx entry authOpts config)
120
+ let authOpts ← SdkUtility.makeOptions config
121
+ (← tostruct (getset r ["prepareAuth", "DEF", "setup", "a"]))
122
+ runsetArgs r "prepareAuth" (getset r ["prepareAuth", "basic"]) (fun vals => do
123
+ unwrap (← SdkUtility.prepareAuth (← ctxOf vals authOpts config)))
264
124
 
265
- runset "prepareBody" ( getSpec primary #["prepareBody", "basic"]) fun entry => do
266
- pure ((← SdkUtility.prepareBody (← entryCtx entry opts config)), none)
125
+ runsetArgs r "prepareBody" (getset r ["prepareBody", "basic"]) (fun vals => do
126
+ SdkUtility.prepareBody (← ctxOf vals opts config))
267
127
 
268
- runset "prepareHeaders" ( getSpec primary #["prepareHeaders", "basic"]) fun entry => do
269
- pure ((← SdkUtility.prepareHeaders (← entryCtx entry opts config)), none)
128
+ runsetArgs r "prepareHeaders" (getset r ["prepareHeaders", "basic"]) (fun vals => do
129
+ SdkUtility.prepareHeaders (← ctxOf vals opts config))
270
130
 
271
- runset "prepareMethod" (← getSpec primary #["prepareMethod", "basic"]) fun entry => do
272
- let m SdkUtility.prepareMethod (← entryCtx entry opts config)
273
- pure (.str m, none)
131
+ -- An op the API does not define resolves NO method: ts answers undefined
132
+ -- there and this port answers "", and both are "no value" to the corpus
133
+ -- (`prepareMethod` case 6, opname "bad", authors no `out`).
134
+ runsetArgs r "prepareMethod" (getset r ["prepareMethod", "basic"]) (fun vals => do
135
+ let m ← SdkUtility.prepareMethod (← ctxOf vals opts config)
136
+ pure (if m == "" then .noval else .str m))
274
137
 
275
- runset "prepareParams" ( getSpec primary #["prepareParams", "basic"]) fun entry => do
276
- pure ((← SdkUtility.prepareParams (← entryCtx entry opts config)), none)
138
+ runsetArgs r "prepareParams" (getset r ["prepareParams", "basic"]) (fun vals => do
139
+ SdkUtility.prepareParams (← ctxOf vals opts config))
277
140
 
278
- runset "preparePath" ( getSpec primary #["preparePath", "basic"]) fun entry => do
279
- let p ← SdkUtility.preparePath (← entryCtx entry opts config)
280
- pure (.str p, none)
141
+ runsetArgs r "preparePath" (getset r ["preparePath", "basic"]) (fun vals => do
142
+ pure (.str (← SdkUtility.preparePath (← ctxOf vals opts config))))
281
143
 
282
- runset "prepareQuery" ( getSpec primary #["prepareQuery", "basic"]) fun entry => do
283
- pure ((← SdkUtility.prepareQuery (← entryCtx entry opts config)), none)
144
+ runsetArgs r "prepareQuery" (getset r ["prepareQuery", "basic"]) (fun vals => do
145
+ SdkUtility.prepareQuery (← ctxOf vals opts config))
284
146
 
285
- runset "resultBasic" ( getSpec primary #["resultBasic", "basic"]) fun entry => do
286
- let ctx ← entryCtx entry opts config
147
+ runsetArgs r "resultBasic" (getset r ["resultBasic", "basic"]) (fun vals => do
148
+ let ctx ← ctxOf vals opts config
287
149
  SdkUtility.resultBasic ctx
288
- pure ((← SdkUtility.gp ctx "result"), none)
150
+ getp ctx "result")
289
151
 
290
- runset "resultBody" ( getSpec primary #["resultBody", "basic"]) fun entry => do
291
- let ctx ← entryCtx entry opts config
152
+ runsetArgs r "resultBody" (getset r ["resultBody", "basic"]) (fun vals => do
153
+ let ctx ← ctxOf vals opts config
292
154
  SdkUtility.resultBody ctx
293
- pure ((← SdkUtility.gp ctx "result"), none)
155
+ getp ctx "result")
294
156
 
295
- runset "resultHeaders" ( getSpec primary #["resultHeaders", "basic"]) fun entry => do
296
- let ctx ← entryCtx entry opts config
157
+ runsetArgs r "resultHeaders" (getset r ["resultHeaders", "basic"]) (fun vals => do
158
+ let ctx ← ctxOf vals opts config
297
159
  SdkUtility.resultHeaders ctx
298
- pure ((← SdkUtility.gp ctx "result"), none)
160
+ getp ctx "result")
299
161
 
300
- runset "transformRequest" ( getSpec primary #["transformRequest", "basic"]) fun entry => do
301
- pure ((← SdkUtility.transformRequest (← entryCtx entry opts config)), none)
162
+ runsetArgs r "transformRequest" (getset r ["transformRequest", "basic"]) (fun vals => do
163
+ SdkUtility.transformRequest (← ctxOf vals opts config))
302
164
 
303
- runset "transformResponse" ( getSpec primary #["transformResponse", "basic"]) fun entry => do
304
- pure ((← SdkUtility.transformResponse (← entryCtx entry opts config)), none)
305
-
306
- -- The remaining corpus sections. They carry no cases in this project's
307
- -- corpus, but are driven here so any future fixture runs against Lean too.
165
+ runsetArgs r "transformResponse" (getset r ["transformResponse", "basic"]) (fun vals => do
166
+ SdkUtility.transformResponse (← ctxOf vals opts config))
308
167
 
309
168
  -- clean takes (ctx, val), so the fixture supplies `args`, not `in` —
310
- -- same shape as param/makeError above.
311
- runset "clean" ( getSpec primary #["clean", "basic"]) fun entry => do
312
- let args SdkUtility.gp entry "args"
313
- let ctx ← mapCtx entry (← argAt args 0) opts config
314
- pure ((← SdkUtility.clean ctx (← argAt args 1)), none)
169
+ -- the same shape as param/makeError above.
170
+ runsetArgs r "clean" (getset r ["clean", "basic"]) (fun vals => do
171
+ SdkUtility.clean (ctxOf vals opts config) (arg vals 1))
172
+
173
+ -- The remaining corpus sections carry no cases in this project's corpus.
174
+ -- They are driven anyway so a future fixture runs against Lean too — and
175
+ -- the resolver now NAMES each one as SKIPPED rather than passing it
176
+ -- silently, which is the whole point of driving an empty group.
177
+ runsetArgs r "makeResult" (getset r ["makeResult", "basic"]) (fun vals => do
178
+ SdkUtility.makeResult (← ctxOf vals opts config))
179
+
180
+ runsetArgs r "makeFetchDef" (getset r ["makeFetchDef", "basic"]) (fun vals => do
181
+ SdkUtility.makeFetchDef (← ctxOf vals opts config))
182
+
183
+ -- fetcher/featureHook take extra scalars. The retired engine read them
184
+ -- off the ENTRY (`entry.url`, `entry.stage`); omni never shows an entry
185
+ -- to a subject, so they are read from the ctx map — where an authored
186
+ -- fixture puts everything the subject needs. Both sections are empty
187
+ -- today, so this is the shape the first fixture must use.
188
+ runsetArgs r "fetcher" (getset r ["fetcher", "basic"]) (fun vals => do
189
+ let ctx ← ctxOf vals opts config
190
+ SdkUtility.fetcher ctx (← SdkUtility.gpS ctx "url") (← getp ctx "fetchdef"))
191
+
192
+ runsetArgs r "featureAdd" (getset r ["featureAdd", "basic"]) (fun vals => do
193
+ let client ← emptyMap
194
+ SdkUtility.featureAdd client (arg vals 0)
195
+ getp client "features")
315
196
 
316
- runset "makeResult" ( getSpec primary #["makeResult", "basic"]) fun entry => do
317
- pure ((← SdkUtility.makeResult (entryCtx entry opts config)), none)
197
+ runsetArgs r "featureInit" (getset r ["featureInit", "basic"]) (fun vals => do
198
+ let clientemptyMap
199
+ SdkUtility.featureInit client (← ctxOf vals opts config)
200
+ getp client "features")
201
+
202
+ runsetArgs r "featureHook" (getset r ["featureHook", "basic"]) (fun vals => do
203
+ let client ← emptyMap
204
+ let ctx ← ctxOf vals opts config
205
+ SdkUtility.featureHook client (← SdkUtility.gpS ctx "stage") ctx
206
+ getp client "features")
318
207
 
319
208
  -- makePoint is NOT driven here, and this is deliberate.
320
209
  --
321
210
  -- The section used to be empty, so running it asserted nothing. It now
322
211
  -- carries seven cases, and every one supplies its own `options` (for
323
- -- allow.op) and `config` (for the operation's points) — but `entryCtx`
212
+ -- allow.op) and `config` (for the operation's points) — but `ctxOf`
324
213
  -- OVERWRITES both with the SDK's, so the cases would not run as authored.
325
- -- Wiring it up needs entryCtx to prefer a fixture-supplied options/config,
214
+ -- Wiring it up needs ctxOf to prefer a fixture-supplied options/config,
326
215
  -- which changes every section here and could not be compiled or run when
327
216
  -- this change was made.
328
217
  --
329
218
  -- Left out rather than left in: an entry that runs with the wrong context
330
219
  -- is worse than one that does not run, and no coverage is lost — this
331
220
  -- section asserted nothing before either.
332
-
333
- runset "makeFetchDef" (← getSpec primary #["makeFetchDef", "basic"]) fun entry => do
334
- pure ((← SdkUtility.makeFetchDef (← entryCtx entry opts config)), none)
335
-
336
- runset "fetcher" (← getSpec primary #["fetcher", "basic"]) fun entry => do
337
- let ctx ← entryCtx entry opts config
338
- let url ← SdkUtility.gpS entry "url"
339
- pure ((← SdkUtility.fetcher ctx url (← SdkUtility.gp entry "fetchdef")), none)
340
-
341
- runset "featureAdd" (← getSpec primary #["featureAdd", "basic"]) fun entry => do
342
- let client ← emptyMap
343
- SdkUtility.featureAdd client (← SdkUtility.gp entry "in")
344
- pure ((← SdkUtility.gp client "features"), none)
345
-
346
- runset "featureInit" (← getSpec primary #["featureInit", "basic"]) fun entry => do
347
- let client ← emptyMap
348
- SdkUtility.featureInit client (← entryCtx entry opts config)
349
- pure ((← SdkUtility.gp client "features"), none)
350
-
351
- runset "featureHook" (← getSpec primary #["featureHook", "basic"]) fun entry => do
352
- let client ← emptyMap
353
- SdkUtility.featureHook client (← SdkUtility.gpS entry "stage") (← entryCtx entry opts config)
354
- pure ((← SdkUtility.gp client "features"), none)
221
+ --
222
+ -- `primary.check` is likewise not driven: it is omni's OWN
223
+ -- provider/DEF.client conformance group, not an SDK utility, and this
224
+ -- suite passes its subjects explicitly rather than through a provider.
355
225
 
356
226
  go.run sctx
357
- for f in (← failures.get) do
358
- IO.println ("FAIL - " ++ f)
359
- let p ← npass.get
360
- let f ← nfail.get
361
- IO.println ""
362
- IO.println s!"primary-utility: PASS {p} FAIL {f}"
363
- if f > 0 then return 1 else return 0
227
+ report r "PRIMARY CORPUS: "