@voxgig/sdkgen 4.8.2 → 4.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/doctor.d.ts +1 -0
  3. package/dist/action/doctor.js +50 -2
  4. package/dist/action/doctor.js.map +1 -1
  5. package/dist/helpers/naming.js +4 -2
  6. package/dist/helpers/naming.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/model/sdkgen.aon +21 -0
  9. package/package.json +1 -1
  10. package/project/.sdk/model/feature/secrets.aon +120 -18
  11. package/project/.sdk/model/target/c.aon +10 -0
  12. package/project/.sdk/model/target/clojure.aon +13 -0
  13. package/project/.sdk/model/target/cpp.aon +10 -0
  14. package/project/.sdk/model/target/csharp.aon +9 -0
  15. package/project/.sdk/model/target/dart.aon +10 -0
  16. package/project/.sdk/model/target/elixir.aon +9 -0
  17. package/project/.sdk/model/target/go.aon +13 -0
  18. package/project/.sdk/model/target/java.aon +9 -0
  19. package/project/.sdk/model/target/js.aon +7 -0
  20. package/project/.sdk/model/target/kotlin.aon +9 -0
  21. package/project/.sdk/model/target/lean.aon +17 -0
  22. package/project/.sdk/model/target/lua.aon +8 -0
  23. package/project/.sdk/model/target/ocaml.aon +9 -0
  24. package/project/.sdk/model/target/perl.aon +8 -0
  25. package/project/.sdk/model/target/php.aon +8 -0
  26. package/project/.sdk/model/target/py.aon +13 -0
  27. package/project/.sdk/model/target/rb.aon +8 -0
  28. package/project/.sdk/model/target/rust.aon +10 -0
  29. package/project/.sdk/model/target/scala.aon +21 -2
  30. package/project/.sdk/model/target/swift.aon +18 -0
  31. package/project/.sdk/model/target/ts.aon +13 -0
  32. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +9 -2
  33. package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +3 -0
  34. package/project/.sdk/src/cmp/dart/Test_dart.ts +2 -0
  35. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +4 -1
  36. package/project/.sdk/src/cmp/go/Config_go.ts +59 -2
  37. package/project/.sdk/src/cmp/go/Main_go.ts +8 -2
  38. package/project/.sdk/src/cmp/java/Test_java.ts +6 -5
  39. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +6 -5
  40. package/project/.sdk/src/cmp/lean/Package_lean.ts +23 -0
  41. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +1 -0
  42. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +1 -0
  43. package/project/.sdk/src/cmp/ocaml/Gitignore_ocaml.ts +1 -0
  44. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +7 -3
  45. package/project/.sdk/src/cmp/py/Config_py.ts +82 -1
  46. package/project/.sdk/src/cmp/py/Main_py.ts +44 -0
  47. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +2 -0
  48. package/project/.sdk/src/cmp/swift/Main_swift.ts +10 -0
  49. package/project/.sdk/src/cmp/swift/Package_swift.ts +13 -1
  50. package/project/.sdk/src/cmp/ts/Config_ts.ts +42 -17
  51. package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +13 -1
  52. package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +13 -1
  53. package/project/.sdk/tm/c/Makefile +38 -3
  54. package/project/.sdk/tm/c/tests/omni_resolver.h +361 -0
  55. package/project/.sdk/tm/c/tests/omni_smoke_test.c +237 -0
  56. package/project/.sdk/tm/c/tests/primary_corpus_test.c +205 -284
  57. package/project/.sdk/tm/c/tests/struct_corpus_test.c +292 -212
  58. package/project/.sdk/tm/c/tests/vendor/omni/json.c +811 -0
  59. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +240 -0
  60. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +940 -0
  61. package/project/.sdk/tm/c/tests/vendor/omni/util.c +351 -0
  62. package/project/.sdk/tm/c/utility/struct/utility.c +7 -2
  63. package/project/.sdk/tm/clojure/test/sdk/test/omni.clj +401 -0
  64. package/project/.sdk/tm/clojure/test/sdk/test/omni_smoke.clj +81 -0
  65. package/project/.sdk/tm/clojure/test/sdk/test/primary.clj +92 -58
  66. package/project/.sdk/tm/clojure/test/sdk/test/struct_corpus.clj +122 -149
  67. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +8 -3
  68. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +145 -0
  69. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +445 -0
  70. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +145 -0
  71. package/project/.sdk/tm/cpp/Makefile +5 -1
  72. package/project/.sdk/tm/cpp/test/omni_resolver.hpp +473 -0
  73. package/project/.sdk/tm/cpp/test/omni_smoke_test.cpp +209 -0
  74. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +243 -184
  75. package/project/.sdk/tm/cpp/test/runner_support.hpp +68 -181
  76. package/project/.sdk/tm/cpp/test/struct_corpus_test.cpp +183 -56
  77. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +406 -0
  78. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +751 -0
  79. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +256 -0
  80. package/project/.sdk/tm/cpp/utility/pipeline.hpp +7 -1
  81. package/project/.sdk/tm/csharp/test/OmniResolver.cs +491 -0
  82. package/project/.sdk/tm/csharp/test/OmniSmokeTest.cs +106 -0
  83. package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +299 -316
  84. package/project/.sdk/tm/csharp/test/Runner.cs +104 -269
  85. package/project/.sdk/tm/csharp/test/StructUtilityTest.cs +535 -724
  86. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +864 -0
  87. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +347 -0
  88. package/project/.sdk/tm/csharp/utility/MakeSpec.cs +3 -1
  89. package/project/.sdk/tm/csharp/utility/PrepareMethod.cs +6 -1
  90. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +21 -5
  91. package/project/.sdk/tm/dart/test/omni.dart +520 -0
  92. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +143 -0
  93. package/project/.sdk/tm/dart/test/primary_test.dart +86 -28
  94. package/project/.sdk/tm/dart/test/struct_test.dart +438 -11
  95. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +7 -0
  96. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +653 -0
  97. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +232 -0
  98. package/project/.sdk/tm/elixir/Makefile +11 -3
  99. package/project/.sdk/tm/elixir/test/omni_smoke_test.exs +117 -0
  100. package/project/.sdk/tm/elixir/test/primary_utility_test.exs +341 -16
  101. package/project/.sdk/tm/elixir/test/struct_corpus_test.exs +554 -9
  102. package/project/.sdk/tm/elixir/test/support/omni.ex +377 -0
  103. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +122 -0
  104. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +623 -0
  105. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +187 -0
  106. package/project/.sdk/tm/go/core/context.go +32 -16
  107. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +261 -0
  108. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +78 -0
  109. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +652 -0
  110. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +250 -0
  111. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +194 -0
  112. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +80 -0
  113. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +238 -0
  114. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1575 -0
  115. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +248 -0
  116. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +184 -0
  117. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +123 -0
  118. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +79 -0
  119. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +296 -0
  120. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +87 -0
  121. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +161 -0
  122. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +292 -0
  123. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +201 -0
  124. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +187 -0
  125. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +184 -0
  126. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +114 -0
  127. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +156 -0
  128. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +209 -0
  129. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +241 -0
  130. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +151 -0
  131. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +152 -0
  132. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +143 -0
  133. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +120 -0
  134. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +439 -0
  135. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +685 -0
  136. package/project/.sdk/tm/go/feature/secrets_feature.go +675 -0
  137. package/project/.sdk/tm/go/src/feature/secrets/.gitkeep +0 -0
  138. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +799 -0
  139. package/project/.sdk/tm/go/test/omni/omni.go +897 -0
  140. package/project/.sdk/tm/go/test/omni/util.go +360 -0
  141. package/project/.sdk/tm/go/test/omniresolver_test.go +748 -0
  142. package/project/.sdk/tm/go/test/omnismoke_test.go +112 -0
  143. package/project/.sdk/tm/go/test/primary_utility_test.go +123 -191
  144. package/project/.sdk/tm/go/test/struct_utility_test.go +323 -16
  145. package/project/.sdk/tm/go/test/testsupport_test.go +294 -0
  146. package/project/.sdk/tm/go/utility/make_options.go +8 -1
  147. package/project/.sdk/tm/go/utility/prepare_method.go +5 -1
  148. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +2 -2
  149. package/project/.sdk/tm/java/test/OmniResolver.java +355 -0
  150. package/project/.sdk/tm/java/test/OmniSmokeTest.java +99 -0
  151. package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +254 -280
  152. package/project/.sdk/tm/java/test/RunnerSupport.java +9 -194
  153. package/project/.sdk/tm/java/test/StructCorpusTest.java +119 -42
  154. package/project/.sdk/tm/java/test/vendor/omni/Json.java +287 -0
  155. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +851 -0
  156. package/project/.sdk/tm/java/test/vendor/omni/Util.java +322 -0
  157. package/project/.sdk/tm/java/utility/MakeSpec.java +3 -1
  158. package/project/.sdk/tm/java/utility/PrepareMethod.java +5 -5
  159. package/project/.sdk/tm/java/utility/struct/Struct.java +17 -4
  160. package/project/.sdk/tm/js/src/utility/StructUtility.js +3 -3
  161. package/project/.sdk/tm/js/test/omni.js +251 -0
  162. package/project/.sdk/tm/js/test/omni.test.js +105 -0
  163. package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +6 -2
  164. package/project/.sdk/tm/js/test/utility/StructUtility.test.js +27 -2
  165. package/project/.sdk/tm/js/test/vendor/omni/index.js +77 -0
  166. package/project/.sdk/tm/js/test/vendor/omni/runner.js +613 -0
  167. package/project/.sdk/tm/js/test/vendor/omni/util.js +212 -0
  168. package/project/.sdk/tm/kotlin/core/Utility.kt +1 -1
  169. package/project/.sdk/tm/kotlin/test/OmniResolver.kt +343 -0
  170. package/project/.sdk/tm/kotlin/test/OmniSmokeTest.kt +100 -0
  171. package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +244 -262
  172. package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +9 -178
  173. package/project/.sdk/tm/kotlin/test/StructCorpusTest.kt +121 -32
  174. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +264 -0
  175. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +615 -0
  176. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +139 -0
  177. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -3
  178. package/project/.sdk/tm/kotlin/utility/Prepare.kt +6 -6
  179. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +18 -2
  180. package/project/.sdk/tm/lean/Makefile +12 -5
  181. package/project/.sdk/tm/lean/src/SdkUtility.lean +14 -1
  182. package/project/.sdk/tm/lean/test/OmniResolver.lean +358 -0
  183. package/project/.sdk/tm/lean/test/OmniSmoke.lean +174 -0
  184. package/project/.sdk/tm/lean/test/StructCorpus.lean +245 -574
  185. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +155 -291
  186. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +997 -0
  187. package/project/.sdk/tm/lua/test/omni.lua +456 -0
  188. package/project/.sdk/tm/lua/test/omni_smoke_test.lua +103 -0
  189. package/project/.sdk/tm/lua/test/primary_utility_test.lua +250 -509
  190. package/project/.sdk/tm/lua/test/struct_utility_test.lua +161 -70
  191. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +268 -0
  192. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +385 -0
  193. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +641 -0
  194. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +282 -0
  195. package/project/.sdk/tm/lua/utility/prepare_method.lua +5 -1
  196. package/project/.sdk/tm/lua/utility/struct/regex.lua +663 -0
  197. package/project/.sdk/tm/lua/utility/struct/struct.lua +660 -420
  198. package/project/.sdk/tm/ocaml/Makefile +37 -12
  199. package/project/.sdk/tm/ocaml/test/omni_resolver.ml +284 -0
  200. package/project/.sdk/tm/ocaml/test/omni_smoke_test.ml +169 -0
  201. package/project/.sdk/tm/ocaml/test/primary_utility_test.ml +84 -100
  202. package/project/.sdk/tm/ocaml/test/struct_corpus.ml +225 -201
  203. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +1157 -0
  204. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +88 -12
  205. package/project/.sdk/tm/perl/t/omni.pm +647 -0
  206. package/project/.sdk/tm/perl/t/omni_smoke.t +87 -0
  207. package/project/.sdk/tm/perl/t/primary_utility.t +189 -487
  208. package/project/.sdk/tm/perl/t/struct_utility.t +455 -389
  209. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +649 -0
  210. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +253 -0
  211. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +24 -0
  212. package/project/.sdk/tm/perl/utility/prepare_method.pm +7 -2
  213. package/project/.sdk/tm/php/test/Omni.php +691 -0
  214. package/project/.sdk/tm/php/test/OmniSmokeTest.php +93 -0
  215. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +210 -571
  216. package/project/.sdk/tm/php/test/StructUtilityTest.php +320 -342
  217. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +644 -0
  218. package/project/.sdk/tm/php/test/vendor/omni/Util.php +283 -0
  219. package/project/.sdk/tm/php/utility/MakeSpec.php +10 -3
  220. package/project/.sdk/tm/php/utility/PrepareBody.php +7 -1
  221. package/project/.sdk/tm/php/utility/PrepareMethod.php +6 -2
  222. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +36 -0
  223. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +141 -0
  224. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +50 -0
  225. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +333 -0
  226. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +198 -0
  227. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +147 -0
  228. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +52 -0
  229. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +139 -0
  230. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1053 -0
  231. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +171 -0
  232. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +95 -0
  233. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +116 -0
  234. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +59 -0
  235. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +87 -0
  236. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +112 -0
  237. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +74 -0
  238. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +116 -0
  239. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +192 -0
  240. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +120 -0
  241. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +140 -0
  242. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +62 -0
  243. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +101 -0
  244. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +152 -0
  245. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +115 -0
  246. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +92 -0
  247. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +101 -0
  248. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +119 -0
  249. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +125 -0
  250. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +211 -0
  251. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +455 -0
  252. package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +467 -0
  253. package/project/.sdk/tm/py/pkg/utility/prepare_method.py +5 -1
  254. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/__init__.py +0 -2
  255. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +780 -529
  256. package/project/.sdk/tm/py/src/feature/secrets/.gitkeep +0 -0
  257. package/project/.sdk/tm/py/test/feature/__init__.py +0 -0
  258. package/project/.sdk/tm/py/test/feature/secrets/__init__.py +0 -0
  259. package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +337 -0
  260. package/project/.sdk/tm/py/test/omni.py +415 -0
  261. package/project/.sdk/tm/py/test/test_omni_smoke.py +74 -0
  262. package/project/.sdk/tm/py/test/test_primary_utility.py +144 -668
  263. package/project/.sdk/tm/py/test/test_struct_utility.py +74 -27
  264. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +62 -0
  265. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +566 -0
  266. package/project/.sdk/tm/py/test/voxgig_omni/util.py +237 -0
  267. package/project/.sdk/tm/rb/test/omni.rb +505 -0
  268. package/project/.sdk/tm/rb/test/omni_smoke_test.rb +72 -0
  269. package/project/.sdk/tm/rb/test/primary_utility_test.rb +174 -560
  270. package/project/.sdk/tm/rb/test/struct_utility_test.rb +13 -7
  271. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +493 -0
  272. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +199 -0
  273. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +15 -0
  274. package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -1
  275. package/project/.sdk/tm/rust/tests/common/mod.rs +19 -242
  276. package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +888 -0
  277. package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +286 -0
  278. package/project/.sdk/tm/rust/tests/primary_utility_test.rs +318 -312
  279. package/project/.sdk/tm/rust/tests/struct_utility_test.rs +66 -28
  280. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +412 -0
  281. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +38 -0
  282. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +392 -0
  283. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +1001 -0
  284. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +161 -0
  285. package/project/.sdk/tm/rust/utility/prepare_method.rs +5 -1
  286. package/project/.sdk/tm/scala/Makefile +16 -6
  287. package/project/.sdk/tm/scala/sdktest/OmniResolver.scala +497 -0
  288. package/project/.sdk/tm/scala/sdktest/OmniSmoke.scala +192 -0
  289. package/project/.sdk/tm/scala/sdktest/PrimaryCorpus.scala +47 -19
  290. package/project/.sdk/tm/scala/sdktest/StructCorpus.scala +0 -0
  291. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +229 -0
  292. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +552 -0
  293. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +104 -0
  294. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Constants.swift +10 -0
  295. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Inject.swift +28 -5
  296. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Injection.swift +5 -1
  297. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Minor.swift +4 -1
  298. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Validate.swift +15 -5
  299. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +6 -1
  300. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniResolver.swift +474 -0
  301. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniSmokeTest.swift +107 -0
  302. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +141 -178
  303. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/Runner.swift +17 -113
  304. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/StructUtilityTest.swift +295 -446
  305. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +364 -0
  306. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +730 -0
  307. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +162 -0
  308. package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +7 -0
  309. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +148 -0
  310. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +55 -0
  311. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +344 -0
  312. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +205 -0
  313. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +138 -0
  314. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +46 -0
  315. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +349 -0
  316. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +181 -0
  317. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1132 -0
  318. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +177 -0
  319. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +119 -0
  320. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +102 -0
  321. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +61 -0
  322. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +112 -0
  323. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +100 -0
  324. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +37 -0
  325. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +163 -30
  326. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +27 -22
  327. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/aws.ts +26 -36
  328. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/azuresecrets.ts +19 -21
  329. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/boru.ts +36 -17
  330. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/doppler.ts +14 -21
  331. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/gcpsecrets.ts +27 -27
  332. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/hashicorp.ts +25 -39
  333. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +99 -0
  334. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/infisical.ts +14 -16
  335. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/onepassword.ts +15 -22
  336. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +98 -0
  337. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{Sigv4.ts → plugins/sigv4.ts} +7 -6
  338. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +97 -23
  339. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +37 -0
  340. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +4 -17
  341. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +4 -16
  342. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +11 -25
  343. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +6 -23
  344. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +106 -39
  345. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +3 -3
  346. package/project/.sdk/tm/ts/test/omni.ts +104 -32
  347. package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +27 -0
  348. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +32 -5
  349. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +2 -2
  350. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +2 -2
  351. package/project/.sdk/tm/zig/test/primary_utility_test.zig +1 -1
  352. package/project/.sdk/tm/zig/test/struct_runner.zig +5 -4
  353. package/project/sdkgen-package.json +1 -1
  354. package/src/action/doctor.ts +66 -2
  355. package/src/helpers/naming.ts +4 -2
  356. package/project/.sdk/tm/c/tests/runner.h +0 -274
  357. package/project/.sdk/tm/cpp/test/struct_runner.hpp +0 -314
  358. package/project/.sdk/tm/csharp/test/StructRunner.cs +0 -276
  359. package/project/.sdk/tm/dart/test/runner.dart +0 -406
  360. package/project/.sdk/tm/dart/test/struct_corpus.dart +0 -531
  361. package/project/.sdk/tm/elixir/test/support/struct_corpus.ex +0 -1088
  362. package/project/.sdk/tm/go/test/runner_test.go +0 -629
  363. package/project/.sdk/tm/go/test/struct_runner_test.go +0 -1094
  364. package/project/.sdk/tm/java/test/StructRunner.java +0 -281
  365. package/project/.sdk/tm/js/test/runner.js +0 -387
  366. package/project/.sdk/tm/kotlin/test/StructRunner.kt +0 -177
  367. package/project/.sdk/tm/lua/test/struct_runner.lua +0 -602
  368. package/project/.sdk/tm/ocaml/test/corpus_runner.ml +0 -185
  369. package/project/.sdk/tm/perl/t/struct_runner.pm +0 -275
  370. package/project/.sdk/tm/php/test/StructRunner.php +0 -275
  371. package/project/.sdk/tm/py/test/struct_runner.py +0 -411
  372. package/project/.sdk/tm/rb/test/struct_runner.rb +0 -309
  373. package/project/.sdk/tm/rust/tests/struct_runner/mod.rs +0 -424
  374. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/Registry.ts +0 -90
  375. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/http.ts +0 -66
  376. package/project/.sdk/tm/ts/test/vendor/omni/compat.ts +0 -188
@@ -1,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. */