@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,424 +0,0 @@
1
- // Struct corpus runner — drives the shared JSON test spec
2
- // (../.sdk/test/test.json, `struct` subtree) against the vendored voxgig
3
- // struct port. Vendored/adapted from the struct rust port's corpus runner
4
- // (mirrors tm/go/test/struct_runner_test.go).
5
- #![allow(dead_code)]
6
-
7
- use std::fs;
8
- use std::path::PathBuf;
9
-
10
- use RUSTCRATE::utility::voxgigstruct::ordered_map::OrderedMap;
11
-
12
- use RUSTCRATE::utility::voxgigstruct::value::Value;
13
- use RUSTCRATE::utility::voxgigstruct::*;
14
-
15
- pub const NULLMARK: &str = "__NULL__";
16
- pub const UNDEFMARK: &str = "__UNDEF__";
17
- pub const EXISTSMARK: &str = "__EXISTS__";
18
-
19
- // ---- JSON -> Value -----------------------------------------------------
20
- // The shared SDK test spec, parsed with the crate's own JSON parser (no
21
- // external dependency).
22
-
23
- pub fn test_json() -> Value {
24
- let mut p = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
25
- p.push("..");
26
- p.push(".sdk");
27
- p.push("test");
28
- p.push("test.json");
29
- let txt = fs::read_to_string(&p).unwrap_or_else(|e| panic!("read {:?}: {e}", p));
30
- RUSTCRATE::utility::jsonparse::json_parse(&txt).expect("parse test.json")
31
- }
32
-
33
- // ---- value helpers -----------------------------------------------------
34
-
35
- // Raw field extraction from corpus entries: preserves a stored JSON null so a
36
- // field declared `null` (e.g. `in: null`, `{val:null}`) reaches the subject as
37
- // Value::Null and is not silently dropped (Group A null-unification only
38
- // applies to the public get_prop API under test, not to test-harness plumbing).
39
- // Mirrors the canonical TS runner reading entry fields by direct property access.
40
- pub fn vget(v: &Value, key: &str) -> Value {
41
- lookup(v, &Value::str(key))
42
- }
43
-
44
- pub fn vget_path(v: &Value, keys: &[&str]) -> Value {
45
- let mut cur = v.clone();
46
- for k in keys {
47
- cur = vget(&cur, k);
48
- }
49
- cur
50
- }
51
-
52
- pub fn as_i64_opt(v: &Value) -> Option<i64> {
53
- match v {
54
- Value::Num(n) => Some(*n as i64),
55
- _ => None,
56
- }
57
- }
58
-
59
- pub fn as_str_opt(v: &Value) -> Option<String> {
60
- match v {
61
- Value::Str(s) => Some(s.clone()),
62
- _ => None,
63
- }
64
- }
65
-
66
- // fixJSON: deep-replace JSON null (and undefined) with NULLMARK (when
67
- // null_flag). Matches `JSON.parse(JSON.stringify(val, replacer))` with the
68
- // null->NULLMARK replacer used by ts/test/runner.ts.
69
- pub fn fix_json(v: &Value, null_flag: bool) -> Value {
70
- match v {
71
- Value::Null | Value::Noval => {
72
- if null_flag {
73
- Value::str(NULLMARK)
74
- } else {
75
- v.clone()
76
- }
77
- }
78
- Value::List(l) => Value::list(l.borrow().iter().map(|x| fix_json(x, null_flag)).collect()),
79
- Value::Map(m) => {
80
- let mut nm = OrderedMap::new();
81
- for (k, x) in m.borrow().iter() {
82
- nm.insert(k.clone(), fix_json(x, null_flag));
83
- }
84
- Value::map(nm)
85
- }
86
- Value::Func(_) => {
87
- // JSON.stringify drops functions (object key) / -> null (array elem).
88
- // At the comparison boundary, treat as null-ish.
89
- if null_flag {
90
- Value::str(NULLMARK)
91
- } else {
92
- Value::Null
93
- }
94
- }
95
- other => other.clone(),
96
- }
97
- }
98
-
99
- // match check for the `match` field of a test entry (substring / regex / etc).
100
- pub fn matchval(check: &Value, base: &Value) -> bool {
101
- if check == base {
102
- return true;
103
- }
104
- if let Value::Str(cs) = check {
105
- let bstr = stringify(base, None, false);
106
- if let Some(rem) = cs.strip_prefix('/').and_then(|s| s.strip_suffix('/')) {
107
- if let Ok(re) = RUSTCRATE::utility::voxgigstruct::re::Regex::new(rem) {
108
- return re.is_match(&bstr);
109
- }
110
- }
111
- return bstr
112
- .to_lowercase()
113
- .contains(&stringify(check, None, false).to_lowercase());
114
- }
115
- false
116
- }
117
-
118
- // ---- the test loop -----------------------------------------------------
119
-
120
- pub struct Run {
121
- pub failures: Vec<String>,
122
- pub passed: usize,
123
- }
124
-
125
- impl Run {
126
- pub fn new() -> Self {
127
- Run {
128
- failures: Vec::new(),
129
- passed: 0,
130
- }
131
- }
132
-
133
- /// Run a test set: `label` for messages, `null_flag` matches the TS
134
- /// `flags.null` (`runset` => true, `runsetflags({null:false})` => false),
135
- /// `subject` takes the (cloned) `vin` and returns the result Value.
136
- pub fn run_set<F>(&mut self, set: &Value, null_flag: bool, label: &str, mut subject: F)
137
- where
138
- F: FnMut(Value) -> Value,
139
- {
140
- if set.is_noval() {
141
- // Section absent from this SDK's test.json subset.
142
- return;
143
- }
144
- let fixed = fix_json(set, null_flag);
145
- let testset = vget(&fixed, "set");
146
- let entries = match testset.as_list() {
147
- Some(l) => l.borrow().clone(),
148
- None => {
149
- self.failures.push(format!("{label}: no `set` array"));
150
- return;
151
- }
152
- };
153
- for (i, entry) in entries.iter().enumerate() {
154
- // resolveEntry: missing `out` + null_flag => NULLMARK
155
- let out0 = vget(entry, "out");
156
- let expected = if out0.is_noval() && null_flag {
157
- Value::str(NULLMARK)
158
- } else {
159
- out0
160
- };
161
- let err_expected = vget(entry, "err");
162
- let match_spec = vget(entry, "match");
163
-
164
- // `vin` = clone(entry.in) (deep). The subject gets a shallow
165
- // Rc-clone of it, so any in-place mutation it makes (setpath,
166
- // setprop, …) is visible through `vin` afterwards.
167
- let vin = clone(&vget(entry, "in"));
168
- let res = fix_json(&subject(vin.clone()), null_flag);
169
-
170
- if !err_expected.is_noval() {
171
- self.failures.push(format!(
172
- "{label}#{i}: expected error [{}] but got {}",
173
- stringify(&err_expected, Some(80), false),
174
- stringify(&res, Some(80), false),
175
- ));
176
- continue;
177
- }
178
-
179
- let mut matched = false;
180
- if !match_spec.is_noval() {
181
- // base = { in: entry.in (original), args: [vin (post-call)], out: res }
182
- let mut base = OrderedMap::new();
183
- base.insert("in".to_string(), vget(entry, "in"));
184
- base.insert("args".to_string(), Value::list(vec![vin.clone()]));
185
- base.insert("out".to_string(), res.clone());
186
- let base = Value::map(base);
187
- if let Some(why) = match_check(&match_spec, &base) {
188
- self.failures.push(format!(
189
- "{label}#{i}: match failed ({why}); got {}",
190
- stringify(&res, Some(160), false)
191
- ));
192
- continue;
193
- }
194
- matched = true;
195
- }
196
-
197
- if res == expected {
198
- self.passed += 1;
199
- continue;
200
- }
201
- if matched
202
- && (expected == Value::str(NULLMARK) || expected.is_noval() || expected.is_null())
203
- {
204
- self.passed += 1;
205
- continue;
206
- }
207
-
208
- self.failures.push(format!(
209
- "{label}#{i}: in={} -> got {}, want {}",
210
- stringify(&vget(entry, "in"), Some(120), false),
211
- stringify(&res, Some(120), false),
212
- stringify(&expected, Some(120), false),
213
- ));
214
- }
215
- }
216
- }
217
-
218
- impl Run {
219
- /// Like `run_set`, but the subject may return `Err(message)` — matched
220
- /// (substring / regex, case-insensitive) against the entry's `err` field.
221
- pub fn run_set_fallible<F>(&mut self, set: &Value, null_flag: bool, label: &str, mut subject: F)
222
- where
223
- F: FnMut(Value) -> Result<Value, String>,
224
- {
225
- if set.is_noval() {
226
- // Section absent from this SDK's test.json subset.
227
- return;
228
- }
229
- let fixed = fix_json(set, null_flag);
230
- let testset = vget(&fixed, "set");
231
- let entries = match testset.as_list() {
232
- Some(l) => l.borrow().clone(),
233
- None => {
234
- self.failures.push(format!("{label}: no `set` array"));
235
- return;
236
- }
237
- };
238
- for (i, entry) in entries.iter().enumerate() {
239
- let out0 = vget(entry, "out");
240
- let expected = if out0.is_noval() && null_flag {
241
- Value::str(NULLMARK)
242
- } else {
243
- out0
244
- };
245
- let err_expected = vget(entry, "err");
246
- let match_spec = vget(entry, "match");
247
- let vin = clone(&vget(entry, "in"));
248
- let result = subject(vin.clone());
249
-
250
- match result {
251
- Err(msg) => {
252
- if err_expected.is_noval() {
253
- self.failures
254
- .push(format!("{label}#{i}: unexpected error: {msg}"));
255
- continue;
256
- }
257
- let want = match &err_expected {
258
- Value::Bool(true) => {
259
- self.passed += 1;
260
- continue;
261
- }
262
- Value::Str(s) => s.clone(),
263
- other => stringify(other, None, false),
264
- };
265
- let ok = if let Some(rem) =
266
- want.strip_prefix('/').and_then(|s| s.strip_suffix('/'))
267
- {
268
- RUSTCRATE::utility::voxgigstruct::re::Regex::new(rem)
269
- .map(|re| re.is_match(&msg))
270
- .unwrap_or(false)
271
- } else {
272
- msg.to_lowercase().contains(&want.to_lowercase())
273
- };
274
- if ok {
275
- self.passed += 1;
276
- } else {
277
- self.failures.push(format!(
278
- "{label}#{i}: error mismatch: got [{}] want [{}]",
279
- msg, want
280
- ));
281
- }
282
- }
283
- Ok(v) => {
284
- if !err_expected.is_noval() {
285
- self.failures.push(format!(
286
- "{label}#{i}: expected error [{}] but got value {}",
287
- stringify(&err_expected, Some(80), false),
288
- stringify(&fix_json(&v, null_flag), Some(80), false)
289
- ));
290
- continue;
291
- }
292
- let res = fix_json(&v, null_flag);
293
- let mut matched = false;
294
- if !match_spec.is_noval() {
295
- let mut base = OrderedMap::new();
296
- base.insert("in".to_string(), vget(entry, "in"));
297
- base.insert("args".to_string(), Value::list(vec![vin.clone()]));
298
- base.insert("out".to_string(), res.clone());
299
- let base = Value::map(base);
300
- if let Some(why) = match_check(&match_spec, &base) {
301
- self.failures
302
- .push(format!("{label}#{i}: match failed ({why})"));
303
- continue;
304
- }
305
- matched = true;
306
- }
307
- if res == expected
308
- || (matched && (expected == Value::str(NULLMARK) || expected.is_nullish()))
309
- {
310
- self.passed += 1;
311
- } else {
312
- self.failures.push(format!(
313
- "{label}#{i}: in={} -> got {}, want {}",
314
- stringify(&vget(entry, "in"), Some(120), false),
315
- stringify(&res, Some(120), false),
316
- stringify(&expected, Some(120), false),
317
- ));
318
- }
319
- }
320
- }
321
- }
322
- }
323
- }
324
-
325
- /// Walk `check`; every leaf must equal/match `getpath(base, path)`. Returns
326
- /// `Some(reason)` on the first mismatch, `None` if all leaves match.
327
- pub fn match_check(check: &Value, base: &Value) -> Option<String> {
328
- fn rec(check: &Value, base: &Value, path: &mut Vec<String>) -> Option<String> {
329
- match check {
330
- Value::Map(cm) => {
331
- for (k, cv) in cm.borrow().iter() {
332
- path.push(k.clone());
333
- let r = rec(cv, base, path);
334
- path.pop();
335
- if r.is_some() {
336
- return r;
337
- }
338
- }
339
- None
340
- }
341
- Value::List(cl) => {
342
- for (i, cv) in cl.borrow().iter().enumerate() {
343
- path.push(i.to_string());
344
- let r = rec(cv, base, path);
345
- path.pop();
346
- if r.is_some() {
347
- return r;
348
- }
349
- }
350
- None
351
- }
352
- leaf => {
353
- let bv = get_path(
354
- base,
355
- &Value::list(path.iter().cloned().map(Value::Str).collect()),
356
- None,
357
- );
358
- if leaf == &bv {
359
- return None;
360
- }
361
- if let Value::Str(s) = leaf {
362
- if s == UNDEFMARK && bv.is_noval() {
363
- return None;
364
- }
365
- if s == EXISTSMARK && !bv.is_nullish() {
366
- return None;
367
- }
368
- }
369
- if matchval(leaf, &bv) {
370
- return None;
371
- }
372
- Some(format!(
373
- "{}: {} <=> {}",
374
- path.join("."),
375
- stringify(leaf, Some(40), false),
376
- stringify(&bv, Some(40), false)
377
- ))
378
- }
379
- }
380
- }
381
- let mut path = Vec::new();
382
- rec(check, base, &mut path)
383
- }
384
-
385
- // ---- adapters helpers --------------------------------------------------
386
-
387
- pub fn b(v: bool) -> Value {
388
- Value::Bool(v)
389
- }
390
-
391
- pub fn inject_def_from_value(v: &Value) -> InjectDef {
392
- let mut d = InjectDef::default();
393
- if let Value::Map(_) = v {
394
- let key = vget(v, "key");
395
- if !key.is_noval() {
396
- d.key = Some(key);
397
- }
398
- let meta = vget(v, "meta");
399
- if !meta.is_noval() {
400
- d.meta = Some(meta);
401
- }
402
- let base = vget(v, "base");
403
- if let Value::Str(s) = base {
404
- d.base = Some(s);
405
- }
406
- let dparent = vget(v, "dparent");
407
- if !dparent.is_noval() {
408
- d.dparent = Some(dparent);
409
- }
410
- let dpath = vget(v, "dpath");
411
- if let Value::Str(s) = dpath {
412
- d.dpath = Some(s.split('.').map(|x| x.to_string()).collect());
413
- } else if let Value::List(l) = &dpath {
414
- d.dpath = Some(
415
- l.borrow()
416
- .iter()
417
- .map(|x| as_str_opt(x).unwrap_or_default())
418
- .collect(),
419
- );
420
- }
421
- }
422
- d
423
- }
424
-
@@ -1,90 +0,0 @@
1
- // VENDORED: @voxgig/sekreto 0.1.2 (typescript/src/provider/Registry.ts)
2
- // Source: https://github.com/voxgig/sekreto @ 65009cb5758850db767785ab666e71895f86086b
3
- // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
- /* Copyright (c) 2025 Voxgig Ltd, MIT License */
5
-
6
- // THE PROVIDER REGISTRY — the seam that replaced the `makeprovider`
7
- // switch, and the reason an SDK no longer carries thirteen providers to
8
- // use two.
9
- //
10
- // The switch named every kind in one function, so every kind was
11
- // statically reachable from `Sekreto` and no bundler could drop one. Its
12
- // replacement is a map that a provider ADDS ITSELF to. A kind that is
13
- // never imported is never registered, is never reachable, and is not in
14
- // the build — which is the whole point.
15
- //
16
- // The vocabulary is voxgig/plugin's (docs/design/plugin-providers.md): a
17
- // provider kind is a plugin `Definition`, a configured provider is an
18
- // instance addressed by name+tag. What sekreto does NOT route through
19
- // plugin is the lookup itself: `Provider.lookup` is async, and plugin's
20
- // dispatch is synchronous by design — twenty ports, many with no
21
- // async/await. So plugin owns the catalog, the instances and their
22
- // order; sekreto walks them in each language's own idiom.
23
- //
24
- // `define` is the definition's factory: spec in, Provider out. It is
25
- // separate from the plugin `Definition.define` callback on purpose —
26
- // this one runs at construction and returns a value, while plugin's runs
27
- // at load and binds. They are bridged in Catalog.ts.
28
-
29
- import { Provider, ProviderSpec, SekretoError } from './support'
30
-
31
- export type ProviderDefinition = {
32
- /** The `kind` a ProviderSpec names. */
33
- name: string
34
- /** What this provider needs of its runtime, so a host can refuse or
35
- * report before a lookup fails: 'fs', 'fetch', 'crypto', 'process'. */
36
- needs?: string[]
37
- /** Build the provider from its declarative spec. */
38
- define: (spec: ProviderSpec) => Provider
39
- }
40
-
41
- const registry: { [kind: string]: ProviderDefinition } = {}
42
-
43
- /** Register a provider kind. Called by each provider module at import,
44
- * so importing the module IS installing it. Re-registering the same name
45
- * replaces it, which is how a host substitutes an implementation. */
46
- export function register(def: ProviderDefinition): void {
47
- if (null == def || 'string' !== typeof def.name || '' === def.name) {
48
- throw new SekretoError('sekreto: invalid provider definition')
49
- }
50
- registry[def.name] = def
51
- }
52
-
53
- export function registered(kind: string): ProviderDefinition | undefined {
54
- return registry[kind]
55
- }
56
-
57
- export function kinds(): string[] {
58
- return Object.keys(registry).sort()
59
- }
60
-
61
- /** Build a provider from its spec.
62
- *
63
- * An UNREGISTERED kind is not the same failure as an unknown one, and the
64
- * message says which: a kind sekreto has never heard of is a typo, while
65
- * a known kind that was not imported is the leanness mechanism working as
66
- * designed and telling you to import it. Collapsing the two was the first
67
- * thing that made the split confusing to use. */
68
- export function makeprovider(spec: ProviderSpec): Provider {
69
- const kind = null == spec ? undefined : (spec as any).kind
70
- const def = registry[kind as string]
71
-
72
- if (null == def) {
73
- throw new SekretoError(
74
- 'sekreto: unknown provider kind: ' + String(kind) +
75
- ' (registered: ' + (kinds().join(', ') || 'none') + ')' +
76
- (KNOWN.indexOf(String(kind)) < 0 ? '' :
77
- " - that kind exists but its module was not imported; import" +
78
- " '@voxgig/sekreto/provider/" + String(kind) + "' to register it"))
79
- }
80
-
81
- return def.define(spec)
82
- }
83
-
84
- /** Every kind this library ships, registered or not. Used only to tell a
85
- * typo from a module that was not imported. */
86
- const KNOWN = [
87
- 'env', 'memory', 'dotenv', 'file', 'hashicorp', 'boru',
88
- 'awssecrets', 'awsparams', 'gcpsecrets', 'azuresecrets',
89
- 'onepassword', 'doppler', 'infisical',
90
- ]
@@ -1,66 +0,0 @@
1
- // VENDORED: @voxgig/sekreto 0.1.2 (typescript/src/provider/http.ts)
2
- // Source: https://github.com/voxgig/sekreto @ 65009cb5758850db767785ab666e71895f86086b
3
- // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
- /* Copyright (c) 2025 Voxgig Ltd, MIT License */
5
-
6
- import { SekretoError } from './support'
7
- import { checkaddr } from './addr'
8
-
9
- // Moved here with fetchjson, its only consumer.
10
- const HTTP_TIMEOUT_MS = 10000
11
-
12
- export async function fetchjson(
13
- method: string,
14
- url: string,
15
- headers: Record<string, string>,
16
- body?: string,
17
- ): Promise<{ status: number; body: any }> {
18
- let res: Response
19
- try {
20
- res = await fetch(url, {
21
- method,
22
- headers,
23
- body,
24
- // A vault API never legitimately redirects, and a followed redirect
25
- // carries X-Vault-Token to the redirect's host (and can downgrade
26
- // https to http), which checkaddr - it only validates the configured
27
- // address - cannot see. Refuse to follow one.
28
- redirect: 'error',
29
- // Bound the wait so an accepted-but-silent endpoint cannot hang the
30
- // caller (and the app's startup) forever.
31
- signal: AbortSignal.timeout(HTTP_TIMEOUT_MS),
32
- })
33
- } catch (err: any) {
34
- throw new SekretoError('sekreto: cannot reach ' + url.split('?')[0] + ': ' + err.message)
35
- }
36
-
37
- let parsed: any = undefined
38
- try {
39
- parsed = await res.json()
40
- } catch (err: any) {
41
- // A success status promised JSON; a body that does not parse means
42
- // the store could not answer coherently, and treating it as a miss
43
- // would fall through to a weaker store. Error statuses may carry
44
- // any body - they are decided on status alone.
45
- if (200 === res.status) {
46
- throw new SekretoError('sekreto: malformed response from ' + url.split('?')[0])
47
- }
48
- }
49
-
50
- return { status: res.status, body: parsed }
51
- }
52
-
53
- /** HashiCorp Vault.
54
- *
55
- * KV v2 (the default): `api.token` reads `{addr}/v1/{mount}/data/api`
56
- * and takes the `token` field of `data.data`. KV v1 (`kv: 1`) reads
57
- * `{addr}/v1/{mount}/api` and takes the field of `data`. A 404 means
58
- * "not here" - a miss - so a vault can sit in a chain with fallbacks.
59
- *
60
- * A Vault Enterprise namespace rides the X-Vault-Namespace header, on
61
- * logins as well as reads.
62
- *
63
- * Instead of being handed a token, the provider can log in: Kubernetes
64
- * auth (the pod's service-account JWT, from its conventional path) or
65
- * AppRole. A failed login is an error, never a miss - it means this
66
- * store could not answer at all. */