@voxgig/sdkgen 4.19.1 → 4.21.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 (1034) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/helpers/applicability.js +11 -6
  3. package/dist/helpers/applicability.js.map +1 -1
  4. package/dist/helpers/collectDeps.js +31 -6
  5. package/dist/helpers/collectDeps.js.map +1 -1
  6. package/dist/helpers/naming.js +2 -2
  7. package/dist/helpers/naming.js.map +1 -1
  8. package/dist/sdkgen.d.ts +2 -2
  9. package/dist/sdkgen.js +6 -3
  10. package/dist/sdkgen.js.map +1 -1
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/dist/utility.d.ts +4 -1
  13. package/dist/utility.js +60 -0
  14. package/dist/utility.js.map +1 -1
  15. package/model/sdkgen.aon +59 -3
  16. package/package.json +1 -1
  17. package/project/.sdk/model/feature/secrets.aon +128 -0
  18. package/project/.sdk/model/feature/validate.aon +3 -2
  19. package/project/.sdk/model/target/c.aon +1 -1
  20. package/project/.sdk/model/target/clojure.aon +1 -1
  21. package/project/.sdk/model/target/cpp.aon +1 -1
  22. package/project/.sdk/model/target/csharp.aon +1 -1
  23. package/project/.sdk/model/target/elixir.aon +1 -1
  24. package/project/.sdk/model/target/go.aon +1 -1
  25. package/project/.sdk/model/target/java.aon +1 -1
  26. package/project/.sdk/model/target/kotlin.aon +1 -1
  27. package/project/.sdk/model/target/lua.aon +1 -1
  28. package/project/.sdk/model/target/ocaml.aon +1 -1
  29. package/project/.sdk/model/target/perl.aon +1 -1
  30. package/project/.sdk/model/target/php.aon +1 -1
  31. package/project/.sdk/model/target/py.aon +1 -1
  32. package/project/.sdk/model/target/rb.aon +1 -1
  33. package/project/.sdk/model/target/rust.aon +1 -1
  34. package/project/.sdk/model/target/scala.aon +1 -1
  35. package/project/.sdk/model/target/swift.aon +1 -1
  36. package/project/.sdk/model/target/zig.aon +1 -1
  37. package/project/.sdk/src/cmp/c/Config_c.ts +15 -0
  38. package/project/.sdk/src/cmp/c/Main_c.ts +18 -0
  39. package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +371 -0
  40. package/project/.sdk/src/cmp/c/Schema_c.ts +106 -0
  41. package/project/.sdk/src/cmp/clojure/Config_clojure.ts +47 -1
  42. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +13 -1
  43. package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +374 -0
  44. package/project/.sdk/src/cmp/clojure/ReadmeExplanation_clojure.ts +1 -0
  45. package/project/.sdk/src/cmp/clojure/Schema_clojure.ts +73 -0
  46. package/project/.sdk/src/cmp/cpp/Config_cpp.ts +40 -0
  47. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +20 -0
  48. package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +441 -0
  49. package/project/.sdk/src/cmp/cpp/Schema_cpp.ts +105 -0
  50. package/project/.sdk/src/cmp/csharp/Config_csharp.ts +42 -1
  51. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +21 -0
  52. package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +392 -0
  53. package/project/.sdk/src/cmp/csharp/Schema_csharp.ts +85 -0
  54. package/project/.sdk/src/cmp/elixir/Config_elixir.ts +36 -1
  55. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +17 -0
  56. package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +418 -0
  57. package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +1 -0
  58. package/project/.sdk/src/cmp/elixir/Schema_elixir.ts +88 -0
  59. package/project/.sdk/src/cmp/go/Config_go.ts +12 -1
  60. package/project/.sdk/src/cmp/go/Main_go.ts +16 -0
  61. package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +322 -0
  62. package/project/.sdk/src/cmp/go/Schema_go.ts +93 -0
  63. package/project/.sdk/src/cmp/java/Config_java.ts +20 -1
  64. package/project/.sdk/src/cmp/java/Main_java.ts +16 -0
  65. package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +298 -0
  66. package/project/.sdk/src/cmp/java/Schema_java.ts +125 -0
  67. package/project/.sdk/src/cmp/js/Config_js.ts +12 -1
  68. package/project/.sdk/src/cmp/js/Main_js.ts +6 -0
  69. package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +244 -0
  70. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +23 -1
  71. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +22 -0
  72. package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +440 -0
  73. package/project/.sdk/src/cmp/kotlin/Schema_kotlin.ts +111 -0
  74. package/project/.sdk/src/cmp/lua/Config_lua.ts +15 -1
  75. package/project/.sdk/src/cmp/lua/Main_lua.ts +57 -9
  76. package/project/.sdk/src/cmp/lua/Package_lua.ts +1 -0
  77. package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +364 -0
  78. package/project/.sdk/src/cmp/lua/ReadmeExplanation_lua.ts +1 -0
  79. package/project/.sdk/src/cmp/lua/Schema_lua.ts +72 -0
  80. package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +55 -2
  81. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +53 -13
  82. package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +454 -0
  83. package/project/.sdk/src/cmp/ocaml/ReadmeExplanation_ocaml.ts +1 -0
  84. package/project/.sdk/src/cmp/ocaml/Schema_ocaml.ts +99 -0
  85. package/project/.sdk/src/cmp/perl/Config_perl.ts +30 -0
  86. package/project/.sdk/src/cmp/perl/Main_perl.ts +16 -0
  87. package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +387 -0
  88. package/project/.sdk/src/cmp/perl/ReadmeExplanation_perl.ts +1 -0
  89. package/project/.sdk/src/cmp/perl/Schema_perl.ts +107 -0
  90. package/project/.sdk/src/cmp/php/Config_php.ts +12 -1
  91. package/project/.sdk/src/cmp/php/Main_php.ts +9 -0
  92. package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
  93. package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +325 -0
  94. package/project/.sdk/src/cmp/php/ReadmeExplanation_php.ts +1 -0
  95. package/project/.sdk/src/cmp/php/Schema_php.ts +129 -0
  96. package/project/.sdk/src/cmp/py/Config_py.ts +12 -1
  97. package/project/.sdk/src/cmp/py/Main_py.ts +14 -0
  98. package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +389 -0
  99. package/project/.sdk/src/cmp/py/ReadmeExplanation_py.ts +1 -0
  100. package/project/.sdk/src/cmp/py/Schema_py.ts +72 -0
  101. package/project/.sdk/src/cmp/rb/Config_rb.ts +18 -1
  102. package/project/.sdk/src/cmp/rb/Main_rb.ts +12 -0
  103. package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +305 -0
  104. package/project/.sdk/src/cmp/rb/ReadmeExplanation_rb.ts +1 -0
  105. package/project/.sdk/src/cmp/rb/Schema_rb.ts +70 -0
  106. package/project/.sdk/src/cmp/rust/Config_rust.ts +41 -1
  107. package/project/.sdk/src/cmp/rust/Main_rust.ts +19 -0
  108. package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +410 -0
  109. package/project/.sdk/src/cmp/rust/Schema_rust.ts +107 -0
  110. package/project/.sdk/src/cmp/scala/Config_scala.ts +21 -1
  111. package/project/.sdk/src/cmp/scala/Main_scala.ts +17 -0
  112. package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +415 -0
  113. package/project/.sdk/src/cmp/scala/Schema_scala.ts +108 -0
  114. package/project/.sdk/src/cmp/swift/Config_swift.ts +37 -1
  115. package/project/.sdk/src/cmp/swift/Main_swift.ts +13 -0
  116. package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +439 -0
  117. package/project/.sdk/src/cmp/swift/Schema_swift.ts +92 -0
  118. package/project/.sdk/src/cmp/ts/Config_ts.ts +12 -1
  119. package/project/.sdk/src/cmp/ts/Main_ts.ts +5 -0
  120. package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +237 -0
  121. package/project/.sdk/src/cmp/zig/Config_zig.ts +33 -1
  122. package/project/.sdk/src/cmp/zig/Main_zig.ts +19 -0
  123. package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +545 -0
  124. package/project/.sdk/src/cmp/zig/Schema_zig.ts +114 -0
  125. package/project/.sdk/tm/c/core/context.c +3 -0
  126. package/project/.sdk/tm/c/core/sdk.h +14 -0
  127. package/project/.sdk/tm/c/feature/secrets/plugin/capability.c +2 -2
  128. package/project/.sdk/tm/c/feature/secrets/plugin/capability.h +2 -2
  129. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.c +2 -2
  130. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.h +2 -2
  131. package/project/.sdk/tm/c/feature/secrets/plugin/config.c +2 -2
  132. package/project/.sdk/tm/c/feature/secrets/plugin/config.h +2 -2
  133. package/project/.sdk/tm/c/feature/secrets/plugin/depend.c +2 -2
  134. package/project/.sdk/tm/c/feature/secrets/plugin/depend.h +2 -2
  135. package/project/.sdk/tm/c/feature/secrets/plugin/env.c +2 -2
  136. package/project/.sdk/tm/c/feature/secrets/plugin/env.h +2 -2
  137. package/project/.sdk/tm/c/feature/secrets/plugin/export.c +3 -3
  138. package/project/.sdk/tm/c/feature/secrets/plugin/export.h +2 -2
  139. package/project/.sdk/tm/c/feature/secrets/plugin/graph.c +2 -2
  140. package/project/.sdk/tm/c/feature/secrets/plugin/graph.h +2 -2
  141. package/project/.sdk/tm/c/feature/secrets/plugin/host.c +25 -2
  142. package/project/.sdk/tm/c/feature/secrets/plugin/host.h +3 -2
  143. package/project/.sdk/tm/c/feature/secrets/plugin/order.c +2 -2
  144. package/project/.sdk/tm/c/feature/secrets/plugin/order.h +2 -2
  145. package/project/.sdk/tm/c/feature/secrets/plugin/point.c +2 -2
  146. package/project/.sdk/tm/c/feature/secrets/plugin/point.h +2 -2
  147. package/project/.sdk/tm/c/feature/secrets/plugin/ref.c +2 -2
  148. package/project/.sdk/tm/c/feature/secrets/plugin/ref.h +2 -2
  149. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.c +2 -2
  150. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.h +2 -2
  151. package/project/.sdk/tm/c/feature/secrets/plugin/types.c +2 -2
  152. package/project/.sdk/tm/c/feature/secrets/plugin/types.h +2 -2
  153. package/project/.sdk/tm/c/feature/secrets/plugin/value.c +2 -2
  154. package/project/.sdk/tm/c/feature/secrets/plugin/value.h +2 -2
  155. package/project/.sdk/tm/c/feature/secrets/plugin/version.c +2 -2
  156. package/project/.sdk/tm/c/feature/secrets/plugin/version.h +2 -2
  157. package/project/.sdk/tm/c/feature/secrets/plugins/aws.c +2 -2
  158. package/project/.sdk/tm/c/feature/secrets/plugins/azuresecrets.c +2 -2
  159. package/project/.sdk/tm/c/feature/secrets/plugins/boru.c +2 -2
  160. package/project/.sdk/tm/c/feature/secrets/plugins/clock.c +2 -2
  161. package/project/.sdk/tm/c/feature/secrets/plugins/doppler.c +2 -2
  162. package/project/.sdk/tm/c/feature/secrets/plugins/encode.c +2 -2
  163. package/project/.sdk/tm/c/feature/secrets/plugins/gcpsecrets.c +2 -2
  164. package/project/.sdk/tm/c/feature/secrets/plugins/hashicorp.c +2 -2
  165. package/project/.sdk/tm/c/feature/secrets/plugins/httpjson.c +2 -2
  166. package/project/.sdk/tm/c/feature/secrets/plugins/infisical.c +2 -2
  167. package/project/.sdk/tm/c/feature/secrets/plugins/minivault.c +2072 -0
  168. package/project/.sdk/tm/c/feature/secrets/plugins/onepassword.c +2 -2
  169. package/project/.sdk/tm/c/feature/secrets/plugins/proc.c +2 -2
  170. package/project/.sdk/tm/c/feature/secrets/plugins/secretspec.c +2 -2
  171. package/project/.sdk/tm/c/feature/secrets/plugins/sekretoplugins.h +151 -10
  172. package/project/.sdk/tm/c/feature/secrets/plugins/sha256.c +16 -10
  173. package/project/.sdk/tm/c/feature/secrets/plugins/sigv4.c +2 -2
  174. package/project/.sdk/tm/c/feature/secrets/plugins/support.h +12 -8
  175. package/project/.sdk/tm/c/feature/secrets/plugins/tls.c +2 -2
  176. package/project/.sdk/tm/c/feature/secrets/sekreto/internal.h +17 -2
  177. package/project/.sdk/tm/c/feature/secrets/sekreto/json.c +5 -5
  178. package/project/.sdk/tm/c/feature/secrets/sekreto/providers.c +37 -9
  179. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.c +2 -2
  180. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.h +17 -2
  181. package/project/.sdk/tm/c/feature/secrets/sekreto/util.c +16 -2
  182. package/project/.sdk/tm/c/feature/validate.c +364 -0
  183. package/project/.sdk/tm/c/feature/validate.h +29 -0
  184. package/project/.sdk/tm/c/src/feature/validate/.gitkeep +0 -0
  185. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  186. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  187. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  188. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  189. package/project/.sdk/tm/c/utility/make_options.c +12 -24
  190. package/project/.sdk/tm/c/utility/make_spec.c +8 -0
  191. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +2 -2
  192. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +2 -2
  193. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +2 -2
  194. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +2 -2
  195. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +2 -2
  196. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +3 -3
  197. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +2 -2
  198. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +17 -2
  199. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +2 -2
  200. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +2 -2
  201. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +2 -2
  202. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +2 -2
  203. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +2 -2
  204. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +2 -2
  205. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +2 -2
  206. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +2 -2
  207. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +2 -2
  208. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +2 -2
  209. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +2 -2
  210. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +2 -2
  211. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +2 -2
  212. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +2 -2
  213. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +2 -2
  214. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +2 -2
  215. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +2 -2
  216. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +2 -2
  217. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +2 -2
  218. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +2 -2
  219. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/minivault.clj +837 -0
  220. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +2 -2
  221. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +2 -2
  222. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +2 -2
  223. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +2 -2
  224. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +2 -2
  225. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +6 -4
  226. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +2 -2
  227. package/project/.sdk/tm/clojure/src/feature/validate/.gitkeep +0 -0
  228. package/project/.sdk/tm/clojure/src/sdk/core.clj +52 -51
  229. package/project/.sdk/tm/clojure/src/sdk/features.clj +202 -0
  230. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  231. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  232. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  233. package/project/.sdk/tm/cpp/core/types.hpp +4 -0
  234. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.cpp +2 -2
  235. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.hpp +2 -2
  236. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.cpp +2 -2
  237. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.hpp +2 -2
  238. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.cpp +2 -2
  239. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.hpp +2 -2
  240. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.cpp +2 -2
  241. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.hpp +2 -2
  242. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.cpp +2 -2
  243. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.hpp +2 -2
  244. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.cpp +3 -3
  245. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.hpp +2 -2
  246. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.cpp +2 -2
  247. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.hpp +2 -2
  248. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.cpp +21 -2
  249. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.hpp +3 -2
  250. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.cpp +2 -2
  251. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.hpp +2 -2
  252. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.cpp +2 -2
  253. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.hpp +2 -2
  254. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.cpp +2 -2
  255. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.hpp +2 -2
  256. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.cpp +2 -2
  257. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.hpp +2 -2
  258. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.cpp +2 -2
  259. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.hpp +2 -2
  260. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.cpp +2 -2
  261. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.hpp +2 -2
  262. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.cpp +2 -2
  263. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.hpp +2 -2
  264. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.cpp +2 -2
  265. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.hpp +2 -2
  266. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.cpp +2 -2
  267. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.hpp +2 -2
  268. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.cpp +2 -2
  269. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.hpp +2 -2
  270. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.cpp +2 -2
  271. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.hpp +9 -7
  272. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.cpp +2 -2
  273. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.hpp +2 -2
  274. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.cpp +2 -2
  275. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.hpp +2 -2
  276. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.cpp +2 -2
  277. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.hpp +2 -2
  278. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.cpp +2 -2
  279. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.hpp +2 -2
  280. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.cpp +2 -2
  281. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.hpp +2 -2
  282. package/project/.sdk/tm/cpp/feature/secrets/plugins/Minivault.cpp +1345 -0
  283. package/project/.sdk/tm/cpp/feature/secrets/plugins/Minivault.hpp +219 -0
  284. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.cpp +2 -2
  285. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.hpp +2 -2
  286. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.cpp +2 -2
  287. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.hpp +2 -2
  288. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.cpp +2 -2
  289. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.hpp +2 -2
  290. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.cpp +2 -2
  291. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.hpp +2 -2
  292. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.cpp +2 -2
  293. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.hpp +2 -2
  294. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.cpp +2 -2
  295. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.hpp +2 -2
  296. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.cpp +22 -2
  297. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.hpp +12 -2
  298. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.cpp +3 -3
  299. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.hpp +2 -2
  300. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.cpp +2 -2
  301. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.hpp +2 -2
  302. package/project/.sdk/tm/cpp/feature/validate.hpp +301 -0
  303. package/project/.sdk/tm/cpp/src/feature/validate/.gitkeep +0 -0
  304. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  305. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  306. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  307. package/project/.sdk/tm/cpp/utility/pipeline.hpp +42 -63
  308. package/project/.sdk/tm/csharp/feature/ValidateFeature.cs +343 -0
  309. package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +2 -2
  310. package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +2 -2
  311. package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +2 -2
  312. package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +2 -2
  313. package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +2 -2
  314. package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +2 -2
  315. package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +2 -2
  316. package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +3 -3
  317. package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +2 -2
  318. package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +9 -2
  319. package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +21 -2
  320. package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +2 -2
  321. package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +2 -2
  322. package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +2 -2
  323. package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +2 -2
  324. package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +2 -2
  325. package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +2 -2
  326. package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +2 -2
  327. package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +2 -2
  328. package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +2 -2
  329. package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +2 -2
  330. package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +2 -2
  331. package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +2 -2
  332. package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +2 -2
  333. package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +2 -2
  334. package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +2 -2
  335. package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +2 -2
  336. package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +2 -2
  337. package/project/.sdk/tm/csharp/feature/secrets/plugins/MiniVault.cs +1572 -0
  338. package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +2 -2
  339. package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +2 -2
  340. package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +2 -2
  341. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +2 -2
  342. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +3 -2
  343. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +2 -2
  344. package/project/.sdk/tm/csharp/src/feature/validate/.gitkeep +0 -0
  345. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  346. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  347. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +12 -74
  348. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +24 -3
  349. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +2 -2
  350. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +2 -2
  351. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +2 -2
  352. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +2 -2
  353. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +2 -2
  354. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +2 -2
  355. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +7 -4
  356. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +2 -2
  357. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +13 -2
  358. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +15 -2
  359. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +2 -2
  360. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +2 -2
  361. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +2 -2
  362. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +2 -2
  363. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +2 -2
  364. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +2 -2
  365. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +2 -2
  366. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +2 -2
  367. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +2 -2
  368. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +2 -2
  369. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +2 -2
  370. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +2 -2
  371. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +2 -2
  372. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +2 -2
  373. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +2 -2
  374. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +3 -3
  375. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +3 -3
  376. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +2 -2
  377. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/minivault.ex +1033 -0
  378. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +2 -2
  379. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +2 -2
  380. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +2 -2
  381. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +2 -2
  382. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +2 -2
  383. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +17 -5
  384. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +2 -2
  385. package/project/.sdk/tm/elixir/lib/projectname/feature/validate.ex +320 -0
  386. package/project/.sdk/tm/elixir/lib/projectname/utility.ex +17 -66
  387. package/project/.sdk/tm/elixir/src/feature/validate/.gitkeep +0 -0
  388. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  389. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  390. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  391. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  392. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  393. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  394. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  395. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  396. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +2 -2
  397. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  398. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +25 -1
  399. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  400. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  401. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  402. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  403. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  404. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  405. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  406. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +2 -2
  407. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  408. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  409. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  410. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  411. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  412. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +2 -2
  413. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +2 -2
  414. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +2 -2
  415. package/project/.sdk/tm/go/feature/secrets/plugins/minivault/format.go +493 -0
  416. package/project/.sdk/tm/go/feature/secrets/plugins/minivault/minivault.go +1131 -0
  417. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  418. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  419. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  420. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +14 -2
  421. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +2 -2
  422. package/project/.sdk/tm/go/feature/validate_feature.go +346 -0
  423. package/project/.sdk/tm/go/src/feature/validate/.gitkeep +0 -0
  424. package/project/.sdk/tm/go/test/omni/omni.go +2 -2
  425. package/project/.sdk/tm/go/test/omni/util.go +2 -2
  426. package/project/.sdk/tm/go/utility/make_options.go +13 -54
  427. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +24 -8
  428. package/project/.sdk/tm/java/feature/ValidateFeature.java +330 -0
  429. package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +2 -2
  430. package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +2 -2
  431. package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +2 -2
  432. package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +2 -2
  433. package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +2 -2
  434. package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +2 -2
  435. package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +2 -2
  436. package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +3 -3
  437. package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +2 -2
  438. package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +3 -3
  439. package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +21 -2
  440. package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +2 -2
  441. package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +2 -2
  442. package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +2 -2
  443. package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +2 -2
  444. package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +2 -2
  445. package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +2 -2
  446. package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +2 -2
  447. package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +2 -2
  448. package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +2 -2
  449. package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +2 -2
  450. package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +4 -3
  451. package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +2 -2
  452. package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +2 -2
  453. package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +2 -2
  454. package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +2 -2
  455. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +2 -2
  456. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +2 -2
  457. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +2 -2
  458. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +2 -2
  459. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +2 -2
  460. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +2 -2
  461. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +2 -2
  462. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +2 -2
  463. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Minivault.java +1448 -0
  464. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +2 -2
  465. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +2 -2
  466. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +2 -2
  467. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +2 -2
  468. package/project/.sdk/tm/java/src/feature/validate/.gitkeep +0 -0
  469. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  470. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  471. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  472. package/project/.sdk/tm/java/utility/MakeOptions.java +13 -33
  473. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  474. package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +2 -2
  475. package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +2 -2
  476. package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +2 -2
  477. package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +2 -2
  478. package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +2 -2
  479. package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +3 -3
  480. package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +2 -2
  481. package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +17 -2
  482. package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +2 -2
  483. package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +2 -2
  484. package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +2 -2
  485. package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +2 -2
  486. package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +2 -2
  487. package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +2 -2
  488. package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +2 -2
  489. package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +2 -2
  490. package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +2 -2
  491. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +2 -2
  492. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +2 -2
  493. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +2 -2
  494. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +2 -2
  495. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +2 -2
  496. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +2 -2
  497. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +2 -2
  498. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +2 -2
  499. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/minivault.js +866 -0
  500. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +2 -2
  501. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +2 -2
  502. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +2 -2
  503. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +2 -2
  504. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +3 -2
  505. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +2 -2
  506. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +2 -2
  507. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +2 -2
  508. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +2 -2
  509. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +2 -2
  510. package/project/.sdk/tm/js/src/utility/StructUtility.js +1 -1
  511. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  512. package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
  513. package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
  514. package/project/.sdk/tm/kotlin/feature/ValidateFeature.kt +297 -0
  515. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +2 -2
  516. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +2 -2
  517. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +2 -2
  518. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +2 -2
  519. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +2 -2
  520. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +3 -3
  521. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +2 -2
  522. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +21 -2
  523. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +2 -2
  524. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +2 -2
  525. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +2 -2
  526. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +2 -2
  527. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +2 -2
  528. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +2 -2
  529. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +2 -2
  530. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +2 -2
  531. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +2 -2
  532. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +2 -2
  533. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +3 -2
  534. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +2 -2
  535. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +14 -2
  536. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +10 -2
  537. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +2 -2
  538. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +2 -2
  539. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +2 -2
  540. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +2 -2
  541. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +2 -2
  542. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +2 -2
  543. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +2 -2
  544. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +2 -2
  545. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Minivault.kt +1095 -0
  546. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +2 -2
  547. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +2 -2
  548. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +2 -2
  549. package/project/.sdk/tm/kotlin/src/feature/validate/.gitkeep +0 -0
  550. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  551. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  552. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  553. package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +13 -22
  554. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -0
  555. package/project/.sdk/tm/kotlin/utility/Prepare.kt +13 -46
  556. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  557. package/project/.sdk/tm/lua/feature/secrets/native/sekretonet.c +2 -2
  558. package/project/.sdk/tm/lua/feature/secrets/native/sekretovault.c +240 -0
  559. package/project/.sdk/tm/lua/feature/secrets/plugin/capability.lua +2 -2
  560. package/project/.sdk/tm/lua/feature/secrets/plugin/catalog.lua +2 -2
  561. package/project/.sdk/tm/lua/feature/secrets/plugin/config.lua +2 -2
  562. package/project/.sdk/tm/lua/feature/secrets/plugin/depend.lua +2 -2
  563. package/project/.sdk/tm/lua/feature/secrets/plugin/env.lua +2 -2
  564. package/project/.sdk/tm/lua/feature/secrets/plugin/export.lua +12 -3
  565. package/project/.sdk/tm/lua/feature/secrets/plugin/graph.lua +2 -2
  566. package/project/.sdk/tm/lua/feature/secrets/plugin/host.lua +18 -2
  567. package/project/.sdk/tm/lua/feature/secrets/plugin/json.lua +2 -2
  568. package/project/.sdk/tm/lua/feature/secrets/plugin/order.lua +2 -2
  569. package/project/.sdk/tm/lua/feature/secrets/plugin/point.lua +2 -2
  570. package/project/.sdk/tm/lua/feature/secrets/plugin/ref.lua +2 -2
  571. package/project/.sdk/tm/lua/feature/secrets/plugin/resolve.lua +2 -2
  572. package/project/.sdk/tm/lua/feature/secrets/plugin/types.lua +2 -2
  573. package/project/.sdk/tm/lua/feature/secrets/plugin/version.lua +2 -2
  574. package/project/.sdk/tm/lua/feature/secrets/plugin.lua +2 -2
  575. package/project/.sdk/tm/lua/feature/secrets/sekreto/addr.lua +2 -2
  576. package/project/.sdk/tm/lua/feature/secrets/sekreto/err.lua +2 -2
  577. package/project/.sdk/tm/lua/feature/secrets/sekreto/name.lua +2 -2
  578. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/aws.lua +2 -2
  579. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/azuresecrets.lua +2 -2
  580. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/boru.lua +2 -2
  581. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/crypto.lua +2 -2
  582. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/doppler.lua +2 -2
  583. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/gcpsecrets.lua +2 -2
  584. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/hashicorp.lua +2 -2
  585. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/httpjson.lua +2 -2
  586. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/infisical.lua +2 -2
  587. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/json.lua +2 -2
  588. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/minivault.lua +1227 -0
  589. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/net.lua +2 -2
  590. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/onepassword.lua +2 -2
  591. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/secretspec.lua +2 -2
  592. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/sigv4.lua +2 -2
  593. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/support.lua +2 -2
  594. package/project/.sdk/tm/lua/feature/secrets/sekreto/providers.lua +3 -2
  595. package/project/.sdk/tm/lua/feature/secrets/sekreto.lua +2 -2
  596. package/project/.sdk/tm/lua/feature/validate_feature.lua +333 -0
  597. package/project/.sdk/tm/lua/src/feature/validate/.gitkeep +0 -0
  598. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  599. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  600. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  601. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  602. package/project/.sdk/tm/lua/utility/make_options.lua +74 -55
  603. package/project/.sdk/tm/lua/utility/make_spec.lua +8 -1
  604. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  605. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  606. package/project/.sdk/tm/ocaml/Makefile +16 -1
  607. package/project/.sdk/tm/ocaml/feature/secrets/plugin/capability.ml +2 -2
  608. package/project/.sdk/tm/ocaml/feature/secrets/plugin/catalog.ml +2 -2
  609. package/project/.sdk/tm/ocaml/feature/secrets/plugin/config.ml +2 -2
  610. package/project/.sdk/tm/ocaml/feature/secrets/plugin/defs.ml +2 -2
  611. package/project/.sdk/tm/ocaml/feature/secrets/plugin/depend.ml +2 -2
  612. package/project/.sdk/tm/ocaml/feature/secrets/plugin/env.ml +2 -2
  613. package/project/.sdk/tm/ocaml/feature/secrets/plugin/export.ml +5 -3
  614. package/project/.sdk/tm/ocaml/feature/secrets/plugin/graph.ml +2 -2
  615. package/project/.sdk/tm/ocaml/feature/secrets/plugin/host.ml +18 -2
  616. package/project/.sdk/tm/ocaml/feature/secrets/plugin/order.ml +2 -2
  617. package/project/.sdk/tm/ocaml/feature/secrets/plugin/point.ml +2 -2
  618. package/project/.sdk/tm/ocaml/feature/secrets/plugin/ref.ml +2 -2
  619. package/project/.sdk/tm/ocaml/feature/secrets/plugin/resolve.ml +2 -2
  620. package/project/.sdk/tm/ocaml/feature/secrets/plugin/types.ml +2 -2
  621. package/project/.sdk/tm/ocaml/feature/secrets/plugin/value.ml +2 -2
  622. package/project/.sdk/tm/ocaml/feature/secrets/plugin/version.ml +2 -2
  623. package/project/.sdk/tm/ocaml/feature/secrets/plugins/aws.ml +2 -2
  624. package/project/.sdk/tm/ocaml/feature/secrets/plugins/azuresecrets.ml +2 -2
  625. package/project/.sdk/tm/ocaml/feature/secrets/plugins/boru.ml +2 -2
  626. package/project/.sdk/tm/ocaml/feature/secrets/plugins/crypto.ml +2 -2
  627. package/project/.sdk/tm/ocaml/feature/secrets/plugins/doppler.ml +2 -2
  628. package/project/.sdk/tm/ocaml/feature/secrets/plugins/gcpsecrets.ml +2 -2
  629. package/project/.sdk/tm/ocaml/feature/secrets/plugins/hashicorp.ml +2 -2
  630. package/project/.sdk/tm/ocaml/feature/secrets/plugins/http.ml +2 -2
  631. package/project/.sdk/tm/ocaml/feature/secrets/plugins/httpjson.ml +2 -2
  632. package/project/.sdk/tm/ocaml/feature/secrets/plugins/infisical.ml +2 -2
  633. package/project/.sdk/tm/ocaml/feature/secrets/plugins/minivault.ml +1086 -0
  634. package/project/.sdk/tm/ocaml/feature/secrets/plugins/minivault_stubs.c +222 -0
  635. package/project/.sdk/tm/ocaml/feature/secrets/plugins/onepassword.ml +2 -2
  636. package/project/.sdk/tm/ocaml/feature/secrets/plugins/runcmd.ml +2 -2
  637. package/project/.sdk/tm/ocaml/feature/secrets/plugins/secretspec.ml +2 -2
  638. package/project/.sdk/tm/ocaml/feature/secrets/plugins/sigv4.ml +2 -2
  639. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls.ml +2 -2
  640. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls_stubs.c +2 -2
  641. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/json.ml +2 -2
  642. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/provider.ml +33 -3
  643. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/secret.ml +2 -2
  644. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/sekreto.ml +4 -3
  645. package/project/.sdk/tm/ocaml/sdk_features.ml +174 -0
  646. package/project/.sdk/tm/ocaml/sdk_helpers.ml +15 -0
  647. package/project/.sdk/tm/ocaml/sdk_runtime.ml +30 -49
  648. package/project/.sdk/tm/ocaml/src/feature/validate/.gitkeep +0 -0
  649. package/project/.sdk/tm/ocaml/test/feature/secrets/t_secrets.ml +125 -12
  650. package/project/.sdk/tm/ocaml/test/t_pipeline.ml +64 -6
  651. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  652. package/project/.sdk/tm/perl/core/helpers.pm +64 -16
  653. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +2 -2
  654. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +2 -2
  655. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +2 -2
  656. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +2 -2
  657. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +2 -2
  658. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +3 -3
  659. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +2 -2
  660. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +19 -2
  661. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +2 -2
  662. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +2 -2
  663. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +2 -2
  664. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +2 -2
  665. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +2 -2
  666. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +2 -2
  667. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +2 -2
  668. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +2 -2
  669. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +2 -2
  670. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +2 -2
  671. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +2 -2
  672. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +2 -2
  673. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +2 -2
  674. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +2 -2
  675. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +2 -2
  676. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Minivault.pm +1380 -0
  677. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +2 -2
  678. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +2 -2
  679. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +2 -2
  680. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +2 -2
  681. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +2 -2
  682. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +4 -3
  683. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +2 -2
  684. package/project/.sdk/tm/perl/feature/validate_feature.pm +319 -0
  685. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  686. package/project/.sdk/tm/perl/src/feature/validate/.gitkeep +0 -0
  687. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  688. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  689. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  690. package/project/.sdk/tm/perl/utility/make_options.pm +25 -34
  691. package/project/.sdk/tm/php/feature/ValidateFeature.php +361 -0
  692. package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +2 -2
  693. package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +2 -2
  694. package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +2 -2
  695. package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +2 -2
  696. package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +2 -2
  697. package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +3 -3
  698. package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +2 -2
  699. package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +26 -2
  700. package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +2 -2
  701. package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +2 -2
  702. package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +2 -2
  703. package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +2 -2
  704. package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +2 -2
  705. package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +2 -2
  706. package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +2 -2
  707. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +2 -2
  708. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +2 -2
  709. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +2 -2
  710. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +2 -2
  711. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +2 -2
  712. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +2 -2
  713. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +2 -2
  714. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +2 -2
  715. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/minivault.php +1250 -0
  716. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +2 -2
  717. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +2 -2
  718. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +2 -2
  719. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +2 -2
  720. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +2 -2
  721. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +5 -3
  722. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +2 -2
  723. package/project/.sdk/tm/php/src/feature/validate/.gitkeep +0 -0
  724. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  725. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  726. package/project/.sdk/tm/php/utility/MakeOptions.php +15 -24
  727. package/project/.sdk/tm/php/utility/struct/Struct.php +56 -7
  728. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  729. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  730. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  731. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  732. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  733. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  734. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +2 -2
  735. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  736. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +17 -1
  737. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  738. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  739. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  740. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  741. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  742. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  743. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +1 -1
  744. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  745. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
  746. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  747. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  748. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  749. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  750. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
  751. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  752. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
  753. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/minivault.py +1202 -0
  754. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  755. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  756. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  757. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +2 -1
  758. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
  759. package/project/.sdk/tm/py/pkg/feature/validate_feature.py +273 -0
  760. package/project/.sdk/tm/py/pkg/utility/make_options.py +14 -53
  761. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  762. package/project/.sdk/tm/py/src/feature/validate/.gitkeep +0 -0
  763. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  764. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
  765. package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
  766. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +2 -2
  767. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +2 -2
  768. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +2 -2
  769. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +2 -2
  770. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +2 -2
  771. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +3 -3
  772. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +2 -2
  773. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +16 -2
  774. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +2 -2
  775. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +2 -2
  776. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +2 -2
  777. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +2 -2
  778. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +2 -2
  779. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +2 -2
  780. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +2 -2
  781. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +2 -2
  782. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +2 -2
  783. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +2 -2
  784. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +2 -2
  785. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +2 -2
  786. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +2 -2
  787. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +2 -2
  788. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +2 -2
  789. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +2 -2
  790. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/minivault.rb +979 -0
  791. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +2 -2
  792. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +2 -2
  793. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +2 -2
  794. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +6 -5
  795. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +2 -2
  796. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +2 -2
  797. package/project/.sdk/tm/rb/feature/validate_feature.rb +265 -0
  798. package/project/.sdk/tm/rb/src/feature/validate/.gitkeep +0 -0
  799. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  800. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  801. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  802. package/project/.sdk/tm/rb/utility/make_options.rb +15 -32
  803. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +24 -1
  804. package/project/.sdk/tm/rust/core/mod.rs +3 -2
  805. package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +2 -2
  806. package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +2 -2
  807. package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +2 -2
  808. package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +2 -2
  809. package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +2 -2
  810. package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +3 -3
  811. package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +2 -2
  812. package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +24 -2
  813. package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +2 -2
  814. package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +2 -2
  815. package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +2 -2
  816. package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +2 -2
  817. package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +2 -2
  818. package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +2 -2
  819. package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +2 -2
  820. package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +2 -2
  821. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +2 -2
  822. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +2 -2
  823. package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +2 -2
  824. package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +2 -2
  825. package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +2 -2
  826. package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +2 -2
  827. package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +2 -2
  828. package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +2 -2
  829. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +2 -2
  830. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +2 -2
  831. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +2 -2
  832. package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +2 -2
  833. package/project/.sdk/tm/rust/feature/secrets/plugins/minivault/format.rs +425 -0
  834. package/project/.sdk/tm/rust/feature/secrets/plugins/minivault.rs +1076 -0
  835. package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +2 -2
  836. package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +2 -2
  837. package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +2 -2
  838. package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +2 -2
  839. package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +30 -4
  840. package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +2 -2
  841. package/project/.sdk/tm/rust/feature/validate.rs +387 -0
  842. package/project/.sdk/tm/rust/src/feature/validate/.gitkeep +0 -0
  843. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  844. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  845. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  846. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  847. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  848. package/project/.sdk/tm/rust/utility/make_options.rs +12 -51
  849. package/project/.sdk/tm/rust/utility/make_spec.rs +10 -3
  850. package/project/.sdk/tm/scala/feature/ValidateFeature.scala +286 -0
  851. package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +2 -2
  852. package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +2 -2
  853. package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +2 -2
  854. package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +2 -2
  855. package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +3 -3
  856. package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +2 -2
  857. package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +19 -2
  858. package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +2 -2
  859. package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +2 -2
  860. package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +2 -2
  861. package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +2 -2
  862. package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +2 -2
  863. package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +2 -2
  864. package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +2 -2
  865. package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +2 -2
  866. package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +2 -2
  867. package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +2 -2
  868. package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +2 -2
  869. package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +3 -2
  870. package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +2 -2
  871. package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +13 -2
  872. package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +11 -2
  873. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +2 -2
  874. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +2 -2
  875. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +2 -2
  876. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +2 -2
  877. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +2 -2
  878. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +2 -2
  879. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +2 -2
  880. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +2 -2
  881. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Minivault.scala +979 -0
  882. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +2 -2
  883. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +2 -2
  884. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +2 -2
  885. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  886. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  887. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  888. package/project/.sdk/tm/scala/src/feature/validate/.gitkeep +0 -0
  889. package/project/.sdk/tm/scala/utility/Make.scala +12 -28
  890. package/project/.sdk/tm/scala/utility/MakeSpec.scala +8 -1
  891. package/project/.sdk/tm/scala/utility/Prepare.scala +16 -40
  892. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ValidateFeature.swift +273 -0
  893. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +2 -2
  894. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +2 -2
  895. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +2 -2
  896. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +2 -2
  897. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +2 -2
  898. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +3 -3
  899. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +2 -2
  900. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +17 -2
  901. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +2 -2
  902. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +2 -2
  903. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +2 -2
  904. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +2 -2
  905. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +2 -2
  906. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +2 -2
  907. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +2 -2
  908. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +2 -2
  909. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +2 -2
  910. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +2 -2
  911. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +2 -2
  912. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +2 -2
  913. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +2 -2
  914. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +2 -2
  915. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +2 -2
  916. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +2 -2
  917. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +2 -2
  918. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +2 -2
  919. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +2 -2
  920. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +2 -2
  921. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +2 -2
  922. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +2 -2
  923. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +2 -2
  924. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +2 -2
  925. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +2 -2
  926. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +2 -2
  927. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Make.swift +9 -3
  928. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +12 -60
  929. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +21 -39
  930. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +3 -3
  931. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  932. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  933. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  934. package/project/.sdk/tm/swift/src/feature/validate/.gitkeep +0 -0
  935. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  936. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  937. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  938. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  939. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  940. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +13 -2
  941. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  942. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  943. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +27 -1
  944. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  945. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  946. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  947. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  948. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  949. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  950. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  951. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  952. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  953. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  954. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  955. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  956. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  957. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  958. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  959. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  960. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  961. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/minivault.ts +1034 -0
  962. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  963. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  964. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  965. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  966. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +2 -1
  967. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  968. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  969. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  970. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  971. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +11 -1
  972. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1 -1
  973. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  974. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  975. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  976. package/project/.sdk/tm/zig/core/utility.zig +45 -77
  977. package/project/.sdk/tm/zig/feature/secrets/plugin/capability.zig +2 -2
  978. package/project/.sdk/tm/zig/feature/secrets/plugin/catalog.zig +2 -2
  979. package/project/.sdk/tm/zig/feature/secrets/plugin/config.zig +2 -2
  980. package/project/.sdk/tm/zig/feature/secrets/plugin/depend.zig +2 -2
  981. package/project/.sdk/tm/zig/feature/secrets/plugin/env.zig +2 -2
  982. package/project/.sdk/tm/zig/feature/secrets/plugin/export.zig +3 -3
  983. package/project/.sdk/tm/zig/feature/secrets/plugin/graph.zig +2 -2
  984. package/project/.sdk/tm/zig/feature/secrets/plugin/host.zig +18 -2
  985. package/project/.sdk/tm/zig/feature/secrets/plugin/inst.zig +2 -2
  986. package/project/.sdk/tm/zig/feature/secrets/plugin/order.zig +2 -2
  987. package/project/.sdk/tm/zig/feature/secrets/plugin/plugin.zig +2 -2
  988. package/project/.sdk/tm/zig/feature/secrets/plugin/point.zig +2 -2
  989. package/project/.sdk/tm/zig/feature/secrets/plugin/ref.zig +2 -2
  990. package/project/.sdk/tm/zig/feature/secrets/plugin/resolve.zig +2 -2
  991. package/project/.sdk/tm/zig/feature/secrets/plugin/types.zig +2 -2
  992. package/project/.sdk/tm/zig/feature/secrets/plugin/value.zig +2 -2
  993. package/project/.sdk/tm/zig/feature/secrets/plugin/version.zig +2 -2
  994. package/project/.sdk/tm/zig/feature/secrets/plugins/aws.zig +2 -2
  995. package/project/.sdk/tm/zig/feature/secrets/plugins/azuresecrets.zig +2 -2
  996. package/project/.sdk/tm/zig/feature/secrets/plugins/boru.zig +2 -2
  997. package/project/.sdk/tm/zig/feature/secrets/plugins/doppler.zig +2 -2
  998. package/project/.sdk/tm/zig/feature/secrets/plugins/gcpsecrets.zig +2 -2
  999. package/project/.sdk/tm/zig/feature/secrets/plugins/hashicorp.zig +2 -2
  1000. package/project/.sdk/tm/zig/feature/secrets/plugins/httpjson.zig +2 -2
  1001. package/project/.sdk/tm/zig/feature/secrets/plugins/infisical.zig +2 -2
  1002. package/project/.sdk/tm/zig/feature/secrets/plugins/minivault.zig +1930 -0
  1003. package/project/.sdk/tm/zig/feature/secrets/plugins/onepassword.zig +2 -2
  1004. package/project/.sdk/tm/zig/feature/secrets/plugins/secretspec.zig +2 -2
  1005. package/project/.sdk/tm/zig/feature/secrets/plugins/sigv4.zig +2 -2
  1006. package/project/.sdk/tm/zig/feature/secrets/sekreto/addr.zig +2 -2
  1007. package/project/.sdk/tm/zig/feature/secrets/sekreto/builtins.zig +3 -2
  1008. package/project/.sdk/tm/zig/feature/secrets/sekreto/provider.zig +19 -2
  1009. package/project/.sdk/tm/zig/feature/secrets/sekreto/sekreto.zig +2 -2
  1010. package/project/.sdk/tm/zig/feature/validate.zig +293 -0
  1011. package/project/.sdk/tm/zig/src/feature/validate/.gitkeep +0 -0
  1012. package/project/.sdk/tm/zig/test/pipeline_test.zig +34 -0
  1013. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +2 -2
  1014. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +2 -2
  1015. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +2 -2
  1016. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +2 -2
  1017. package/project/sdkgen-package.json +1 -1
  1018. package/src/helpers/applicability.ts +11 -6
  1019. package/src/helpers/collectDeps.ts +30 -5
  1020. package/src/helpers/naming.ts +2 -2
  1021. package/src/sdkgen.ts +4 -1
  1022. package/src/utility.ts +75 -0
  1023. package/project/.sdk/tm/c/utility/prepare_auth.c +0 -65
  1024. package/project/.sdk/tm/csharp/utility/PrepareAuth.cs +0 -54
  1025. package/project/.sdk/tm/go/utility/prepare_auth.go +0 -59
  1026. package/project/.sdk/tm/java/utility/PrepareAuth.java +0 -66
  1027. package/project/.sdk/tm/js/src/utility/PrepareAuthUtility.js +0 -49
  1028. package/project/.sdk/tm/lua/utility/prepare_auth.lua +0 -52
  1029. package/project/.sdk/tm/perl/utility/prepare_auth.pm +0 -56
  1030. package/project/.sdk/tm/php/utility/PrepareAuth.php +0 -45
  1031. package/project/.sdk/tm/py/pkg/utility/prepare_auth.py +0 -46
  1032. package/project/.sdk/tm/rb/utility/prepare_auth.rb +0 -35
  1033. package/project/.sdk/tm/rust/utility/prepare_auth.rs +0 -65
  1034. package/project/.sdk/tm/ts/src/utility/PrepareAuthUtility.ts +0 -78
@@ -0,0 +1,979 @@
1
+ # VENDORED: @voxgig/sekreto sdk-20260917-1242-0 (ruby/lib/voxgig_sekreto/plugins/minivault.rb)
2
+ # Source: https://github.com/voxgig/sekreto @ 108c4a914bee7b6534c30d1c68c25cd1b9377696 [tag: sdk-20260917-1242-0]
3
+ # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ # frozen_string_literal: true
5
+
6
+ # A port of typescript/plugins/minivault.ts, which is canonical.
7
+ #
8
+ # A mini vault: every secret a project owns, encrypted, in ONE FILE.
9
+ #
10
+ # THE KEY DECIDES WHAT THE VAULT HOLDS. A master key reads and writes
11
+ # every name and mints restricted keys. A restricted key reads the names
12
+ # it was granted and CANNOT DERIVE ANY OTHER - the restriction is the
13
+ # cryptography rather than a check this code performs. What that does and
14
+ # does not protect is set out in DOCS.md under "What the mini vault
15
+ # protects".
16
+ #
17
+ # OpenSSL is ruby's standard library and carries all four primitives, so
18
+ # nothing here is hand-rolled (AGENTS.md rule 3).
19
+
20
+ require 'json'
21
+ require 'openssl'
22
+
23
+ require_relative '../../voxgig_sekreto'
24
+
25
+ module VoxgigSekreto
26
+ # The mini vault: the format, the keys, the API and the definition.
27
+ module MiniVaultFormat
28
+ # --- the format ----------------------------------------------------
29
+ #
30
+ # magic 4 'SKMV'
31
+ # version 1 FORMAT
32
+ # kdf 1 1 = PBKDF2-HMAC-SHA256
33
+ # cipher 1 1 = AES-256-GCM
34
+ # reserved 1 0
35
+ # keycount 4 uint32
36
+ # per key:
37
+ # id 1 + bytes the key id, PLAINTEXT
38
+ # salt 1 + bytes
39
+ # iters 4 PBKDF2 rounds for this key
40
+ # ring 1 + iv, 4 + bytes sealed under the passphrase
41
+ # meta 1 + iv, 4 + bytes sealed under the vault's meta key
42
+ # entrycount 4 uint32
43
+ # per entry:
44
+ # id 1 + bytes the blinded lookup id
45
+ # name 1 + iv, 4 + bytes sealed under the vault's name key
46
+ # value 1 + iv, 4 + bytes sealed under that secret's own key
47
+ #
48
+ # Integers are big-endian, and every length precedes its bytes. A file
49
+ # one port writes is read by every other; `test/fixture` pins that
50
+ # with a committed vault rather than with agreement.
51
+
52
+ MAGIC = 'SKMV'
53
+ FORMAT = 1
54
+ KDF_PBKDF2 = 1
55
+ CIPHER_AESGCM = 1
56
+
57
+ # AES-256-GCM: 32-byte keys, 12-byte nonces, 16-byte tags.
58
+ KEYLEN = 32
59
+ IVLEN = 12
60
+ TAGLEN = 16
61
+ SALTLEN = 16
62
+
63
+ # PBKDF2-HMAC-SHA256 rounds when a caller names none.
64
+ ITERATIONS = 210_000
65
+
66
+ # The key id a vault gets when a caller names none.
67
+ MASTERKEY = 'master'
68
+
69
+ # Additional authenticated data. Every blob is bound to its PLACE in
70
+ # the file, so no ciphertext can be moved.
71
+ AAD_RING = 'skmv1:ring:'
72
+ AAD_META = 'skmv1:meta:'
73
+ AAD_NAME = 'skmv1:name'
74
+ AAD_SECRET = 'skmv1:secret:'
75
+
76
+ # Everything a master can reach is derived from the root key, so a
77
+ # rotation is one new random value rather than a re-wrap of each part.
78
+ LABEL_NAMES = 'skmv1:names'
79
+ LABEL_META = 'skmv1:meta'
80
+ LABEL_ID = 'skmv1:id'
81
+
82
+ # The largest key id the format can record.
83
+ #
84
+ # `small` writes a length in ONE byte. A longer id wrapped that byte
85
+ # and the writer then appended the whole thing, so every field after
86
+ # it shifted. Checked where an id is ACCEPTED, so the refusal names
87
+ # the id rather than the file.
88
+ IDMAX = 255
89
+
90
+ # The export key the vault API is published under, beside the
91
+ # `provider` key every kind publishes.
92
+ VAULT_EXPORT = 'vault'
93
+ end
94
+
95
+ module_function
96
+
97
+ def minivaultfail(text)
98
+ raise SekretoError, 'sekreto: minivault: ' + text
99
+ end
100
+
101
+ def minivaultcheckid(id, what)
102
+ minivaultfail(what) unless id.is_a?(String) && !id.empty?
103
+
104
+ if id.bytesize > MiniVaultFormat::IDMAX
105
+ minivaultfail('key id is longer than ' + MiniVaultFormat::IDMAX.to_s +
106
+ ' bytes: ' + id[0, 32] + '...')
107
+ end
108
+ id
109
+ end
110
+
111
+ # --- keys ------------------------------------------------------------
112
+
113
+ def minivaulthmac(key, text)
114
+ OpenSSL::HMAC.digest('sha256', key, text.dup.force_encoding('BINARY'))
115
+ end
116
+
117
+ # The key-encryption key a passphrase unwraps a ring with.
118
+ def minivaultkek(passphrase, salt, iters)
119
+ OpenSSL::PKCS5.pbkdf2_hmac(passphrase, salt, iters, MiniVaultFormat::KEYLEN,
120
+ OpenSSL::Digest.new('SHA256'))
121
+ end
122
+
123
+ # The key one named secret's value is encrypted with.
124
+ #
125
+ # DERIVED, never stored, for a master: it holds the root key and so
126
+ # reaches every name, including ones written after it was made. A
127
+ # restricted key holds the derived keys it was granted and nothing that
128
+ # produces another.
129
+ def minivaultsecretkey(root, name)
130
+ minivaulthmac(root, MiniVaultFormat::AAD_SECRET + name)
131
+ end
132
+
133
+ # Where a secret lives in the file, derived from its own key so that
134
+ # finding it needs no plaintext name.
135
+ def minivaultentryid(key)
136
+ minivaulthmac(key, MiniVaultFormat::LABEL_ID)
137
+ end
138
+
139
+ def minivaultrandom(len)
140
+ OpenSSL::Random.random_bytes(len)
141
+ end
142
+
143
+ # --- sealing ---------------------------------------------------------
144
+
145
+ def minivaultseal(key, plain, aad)
146
+ iv = minivaultrandom(MiniVaultFormat::IVLEN)
147
+ cipher = OpenSSL::Cipher.new('aes-256-gcm')
148
+ cipher.encrypt
149
+ cipher.key = key
150
+ cipher.iv = iv
151
+ cipher.auth_data = aad
152
+ body = cipher.update(plain) + cipher.final
153
+ { 'iv' => iv, 'blob' => body + cipher.auth_tag(MiniVaultFormat::TAGLEN) }
154
+ end
155
+
156
+ # The plaintext, or a refusal. A GCM tag that fails to verify is the
157
+ # only evidence there is, and it cannot tell a wrong passphrase from a
158
+ # damaged file, so `what` names the attempt and the message admits both.
159
+ def minivaultunseal(key, sealed, aad, what)
160
+ blob = sealed['blob']
161
+ iv = sealed['iv']
162
+
163
+ if blob.bytesize < MiniVaultFormat::TAGLEN || iv.bytesize != MiniVaultFormat::IVLEN
164
+ minivaultfail(what + ': truncated')
165
+ end
166
+
167
+ # The WHOLE round-trip is guarded, not only the final block. A nonce
168
+ # or tag of the wrong length makes the setter itself raise.
169
+ begin
170
+ cipher = OpenSSL::Cipher.new('aes-256-gcm')
171
+ cipher.decrypt
172
+ cipher.key = key
173
+ cipher.iv = iv
174
+ cipher.auth_tag = blob[-MiniVaultFormat::TAGLEN..]
175
+ cipher.auth_data = aad
176
+ cipher.update(blob[0...-MiniVaultFormat::TAGLEN]) + cipher.final
177
+ rescue OpenSSL::OpenSSLError, ArgumentError
178
+ minivaultfail(what)
179
+ end
180
+ end
181
+
182
+ def minivaultjsonof(plain, what)
183
+ JSON.parse(plain.dup.force_encoding('UTF-8'))
184
+ rescue JSON::ParserError, EncodingError
185
+ minivaultfail('unreadable ' + what)
186
+ end
187
+
188
+ def minivaultb64(bytes)
189
+ [bytes].pack('m0')
190
+ end
191
+
192
+ def minivaultunb64(text, what)
193
+ minivaultfail('missing ' + what) unless text.is_a?(String)
194
+ text.unpack1('m')
195
+ end
196
+
197
+ # --- the file --------------------------------------------------------
198
+
199
+ # A cursor, so that every length check is in one place: a truncated
200
+ # vault is refused rather than read as a short one.
201
+ class MiniVaultReader
202
+ def initialize(bytes)
203
+ @bytes = bytes
204
+ @at = 0
205
+ end
206
+
207
+ def take(len)
208
+ VoxgigSekreto.minivaultfail('the vault file is truncated') if @bytes.bytesize < @at + len
209
+
210
+ out = @bytes.byteslice(@at, len)
211
+ @at += len
212
+ out
213
+ end
214
+
215
+ def u8
216
+ take(1).unpack1('C')
217
+ end
218
+
219
+ def u32
220
+ take(4).unpack1('N')
221
+ end
222
+
223
+ def small
224
+ take(u8)
225
+ end
226
+
227
+ def large
228
+ take(u32)
229
+ end
230
+
231
+ def magic
232
+ take(4)
233
+ end
234
+
235
+ def sealed
236
+ { 'iv' => small, 'blob' => large }
237
+ end
238
+
239
+ def done?
240
+ @at == @bytes.bytesize
241
+ end
242
+ end
243
+
244
+ def minivaultreadfile(bytes)
245
+ read = MiniVaultReader.new(bytes)
246
+
247
+ minivaultfail('not a vault file') if read.magic != MiniVaultFormat::MAGIC
248
+
249
+ version = read.u8
250
+ minivaultfail('unsupported format version: ' + version.to_s) if version != MiniVaultFormat::FORMAT
251
+
252
+ kdf = read.u8
253
+ cipher = read.u8
254
+ if kdf != MiniVaultFormat::KDF_PBKDF2 || cipher != MiniVaultFormat::CIPHER_AESGCM
255
+ minivaultfail('unsupported kdf or cipher: ' + kdf.to_s + '/' + cipher.to_s)
256
+ end
257
+ read.u8
258
+
259
+ keys = []
260
+ read.u32.times do
261
+ id = read.small.force_encoding('UTF-8')
262
+ salt = read.small
263
+ iters = read.u32
264
+ keys.push({ 'id' => id, 'salt' => salt, 'iters' => iters,
265
+ 'ring' => read.sealed, 'meta' => read.sealed })
266
+ end
267
+
268
+ entries = []
269
+ read.u32.times do
270
+ entries.push({ 'id' => read.small, 'name' => read.sealed, 'value' => read.sealed })
271
+ end
272
+
273
+ minivaultfail('the vault file has trailing bytes') unless read.done?
274
+
275
+ { 'keys' => keys, 'entries' => entries }
276
+ end
277
+
278
+ def minivaultwritefile(vault)
279
+ out = +''
280
+ out.force_encoding('BINARY')
281
+
282
+ u8 = ->(value) { out << [value].pack('C') }
283
+ u32 = ->(value) { out << [value].pack('N') }
284
+ small = lambda { |bytes|
285
+ u8.call(bytes.bytesize)
286
+ out << bytes.dup.force_encoding('BINARY')
287
+ }
288
+ large = lambda { |bytes|
289
+ u32.call(bytes.bytesize)
290
+ out << bytes.dup.force_encoding('BINARY')
291
+ }
292
+ sealed = lambda { |value|
293
+ small.call(value['iv'])
294
+ large.call(value['blob'])
295
+ }
296
+
297
+ out << MiniVaultFormat::MAGIC.dup.force_encoding('BINARY')
298
+ u8.call(MiniVaultFormat::FORMAT)
299
+ u8.call(MiniVaultFormat::KDF_PBKDF2)
300
+ u8.call(MiniVaultFormat::CIPHER_AESGCM)
301
+ u8.call(0)
302
+
303
+ u32.call(vault['keys'].length)
304
+ vault['keys'].each do |key|
305
+ small.call(key['id'].dup.force_encoding('BINARY'))
306
+ small.call(key['salt'])
307
+ u32.call(key['iters'])
308
+ sealed.call(key['ring'])
309
+ sealed.call(key['meta'])
310
+ end
311
+
312
+ # SORTED BY ID, which is a blinded value: the file therefore records
313
+ # nothing about the order secrets were written in.
314
+ entries = vault['entries'].sort_by { |entry| entry['id'].dup.force_encoding('BINARY') }
315
+
316
+ u32.call(entries.length)
317
+ entries.each do |entry|
318
+ small.call(entry['id'])
319
+ sealed.call(entry['name'])
320
+ sealed.call(entry['value'])
321
+ end
322
+
323
+ out
324
+ end
325
+
326
+ # --- creating --------------------------------------------------------
327
+
328
+ # A new vault: one master key, no secrets.
329
+ def minivaultnew(keyid, passphrase, iterations)
330
+ root = minivaultrandom(MiniVaultFormat::KEYLEN)
331
+ salt = minivaultrandom(MiniVaultFormat::SALTLEN)
332
+
333
+ ring = { 'v' => MiniVaultFormat::FORMAT, 'write' => true, 'root' => minivaultb64(root) }
334
+ meta = { 'v' => MiniVaultFormat::FORMAT, 'master' => true, 'write' => true, 'grants' => [] }
335
+
336
+ {
337
+ 'keys' => [{
338
+ 'id' => keyid,
339
+ 'salt' => salt,
340
+ 'iters' => iterations,
341
+ 'ring' => minivaultseal(minivaultkek(passphrase, salt, iterations),
342
+ JSON.generate(ring), MiniVaultFormat::AAD_RING + keyid),
343
+ 'meta' => minivaultseal(minivaulthmac(root, MiniVaultFormat::LABEL_META),
344
+ JSON.generate(meta), MiniVaultFormat::AAD_META + keyid)
345
+ }],
346
+ 'entries' => []
347
+ }
348
+ end
349
+
350
+ # Write a vault file that is not there yet, and REFUSE one that is.
351
+ #
352
+ # Straight to the target under O_CREAT|O_EXCL rather than through a
353
+ # temporary and a rename. `rename` REPLACES its destination, so two
354
+ # processes creating the same vault both succeeded and the second
355
+ # discarded the first one's secrets.
356
+ def minivaultputnew(file, vault)
357
+ File.open(file, File::WRONLY | File::CREAT | File::EXCL, 0o600) do |handle|
358
+ handle.binmode
359
+ handle.write(minivaultwritefile(vault))
360
+ end
361
+ rescue Errno::EEXIST
362
+ minivaultfail('vault file already exists: ' + file)
363
+ rescue SystemCallError => e
364
+ minivaultfail('cannot write ' + file + ': ' + e.message)
365
+ end
366
+
367
+ # Is this the same sealed blob, byte for byte?
368
+ def minivaultsameseal(left, right)
369
+ left['iv'] == right['iv'] && left['blob'] == right['blob']
370
+ end
371
+
372
+ # --- what a key is ---------------------------------------------------
373
+
374
+ # A detached copy, so that what a caller is handed cannot become what
375
+ # this vault believes.
376
+ def minivaultcopyinfo(info)
377
+ {
378
+ 'key' => info['key'],
379
+ 'master' => info['master'],
380
+ 'write' => info['write'],
381
+ 'grants' => info['grants'].dup
382
+ }
383
+ end
384
+
385
+ # A handle on one vault file, opened as ONE key.
386
+ #
387
+ # Every method answers as that key: `list` shows the names it may read,
388
+ # `get` answers for those and misses on the rest, and the master-only
389
+ # methods refuse for any other key. Nothing is read or derived until the
390
+ # first call that needs the file.
391
+ # THE LOCK EVERY HANDLE ON ONE FILE SHARES.
392
+ #
393
+ # Each MiniVault is its own object, so two handles on one path did not
394
+ # coordinate: both could finish `load` before either saved, and the
395
+ # second `File.rename` then discarded the first one's change while
396
+ # reporting success. Keyed by the ABSOLUTE path, so two handles spelled
397
+ # differently still meet.
398
+ #
399
+ # A guarantee WITHIN one process, which is what DOCS.md promises and
400
+ # what the go port arranges the same way. Two processes still race, and
401
+ # the format's answer to that is the exclusive create and the atomic
402
+ # rename: a reader sees one whole vault or the other, never half of one.
403
+ # Ruby's Mutex is NOT re-entrant, so the five mutating methods must not
404
+ # call one another while holding it - and none of them does: `rotate`
405
+ # reads through `list` and `get`, and every one of them writes through
406
+ # `save`, which takes no lock of its own.
407
+ MINIVAULT_LOCKSMUTEX = Mutex.new
408
+ MINIVAULT_LOCKTABLE = {}
409
+
410
+ def self.minivaultlockfor(file)
411
+ key = begin
412
+ File.expand_path(file)
413
+ rescue StandardError
414
+ file
415
+ end
416
+
417
+ MINIVAULT_LOCKSMUTEX.synchronize { MINIVAULT_LOCKTABLE[key] ||= Mutex.new }
418
+ end
419
+
420
+ class MiniVault
421
+ def initialize(options)
422
+ opts = options || {}
423
+ @file = opts['file']
424
+ # AN EMPTY KEY IS NO KEY, so it means `master`. Ruby's `||` answers
425
+ # for nil alone and an empty String is truthy, where the canonical's
426
+ # `opts.key || MASTERKEY` answers for both. A CLI reaches this with
427
+ # SEKRETO_VAULT_KEY set and empty, which is what an unset shell
428
+ # variable expands to.
429
+ want = opts['key']
430
+ @keyid = want.nil? || want.to_s.empty? ? MiniVaultFormat::MASTERKEY : want
431
+ @passphrase = opts['passphrase']
432
+ @iterations = opts['iterations'] || MiniVaultFormat::ITERATIONS
433
+ @create = opts['create'] == true
434
+
435
+ VoxgigSekreto.minivaultfail('a vault needs a file') unless @file.is_a?(String) && !@file.empty?
436
+ unless @passphrase.is_a?(String) && !@passphrase.empty?
437
+ VoxgigSekreto.minivaultfail('a vault needs a passphrase')
438
+ end
439
+ VoxgigSekreto.minivaultcheckid(@keyid, 'a vault needs a key id')
440
+
441
+ @opened = nil
442
+ end
443
+
444
+ # The file this handle reads.
445
+ def file
446
+ @file
447
+ end
448
+
449
+ # The key id this handle opens with.
450
+ def key
451
+ @keyid
452
+ end
453
+
454
+ # Derive the key and read the file NOW rather than at first use.
455
+ def open
456
+ VoxgigSekreto.minivaultcopyinfo(load[1]['info'])
457
+ end
458
+
459
+ # Forget the derived keys. The next call opens again.
460
+ def close
461
+ @opened = nil
462
+ nil
463
+ end
464
+
465
+ # The names this key can read, sorted.
466
+ def list
467
+ vault, opened = load
468
+
469
+ if opened['root']
470
+ namekey = VoxgigSekreto.minivaulthmac(opened['root'], MiniVaultFormat::LABEL_NAMES)
471
+ return vault['entries'].map { |entry|
472
+ VoxgigSekreto.minivaultunseal(namekey, entry['name'], MiniVaultFormat::AAD_NAME,
473
+ 'a secret name is damaged').force_encoding('UTF-8')
474
+ }.sort
475
+ end
476
+
477
+ # A restricted key has no name key, so it reports the grants it can
478
+ # actually find: the vault never tells it what else is in there.
479
+ opened['info']['grants'].select { |name|
480
+ !findentry(vault, opened['grants'][name]).nil?
481
+ }.sort
482
+ end
483
+
484
+ def has?(name)
485
+ !get(name).nil?
486
+ end
487
+
488
+ # The value, or nil when the vault does not hold that name or this key
489
+ # was not granted it.
490
+ def get(name)
491
+ VoxgigSekreto.checkname(name)
492
+ vault, opened = load
493
+
494
+ key = keyfor(opened, name)
495
+ # OUTSIDE THE GRANT IS A MISS, deliberately. The vault answers as
496
+ # the key that opened it, so a name this key cannot read is a name
497
+ # this store does not hold for this caller.
498
+ return nil if key.nil?
499
+
500
+ entry = findentry(vault, key)
501
+ return nil if entry.nil?
502
+
503
+ VoxgigSekreto.minivaultunseal(key, entry['value'], MiniVaultFormat::AAD_SECRET + name,
504
+ 'the value of ' + name + ' is damaged').force_encoding('UTF-8')
505
+ end
506
+
507
+ # Write a value. A master writes any name; a restricted key holding
508
+ # `write` overwrites the names it was granted, and creates none.
509
+ def set(name, value)
510
+ # Every write on this file, from any handle in this process,
511
+ # serializes here; see minivaultlockfor.
512
+ VoxgigSekreto.minivaultlockfor(@file).synchronize do
513
+ VoxgigSekreto.checkname(name)
514
+ VoxgigSekreto.minivaultfail('a secret value must be text: ' + name) unless value.is_a?(String)
515
+
516
+ vault, opened = load
517
+
518
+ unless opened['info']['write']
519
+ VoxgigSekreto.minivaultfail('key ' + opened['info']['key'] + ' is read-only')
520
+ end
521
+
522
+ key = keyfor(opened, name)
523
+ if key.nil?
524
+ VoxgigSekreto.minivaultfail('key ' + opened['info']['key'] + ' was not granted ' + name)
525
+ end
526
+
527
+ sealedvalue = VoxgigSekreto.minivaultseal(key, value, MiniVaultFormat::AAD_SECRET + name)
528
+ id = VoxgigSekreto.minivaultentryid(key)
529
+ at = vault['entries'].index { |entry| entry['id'] == id }
530
+
531
+ if at
532
+ vault['entries'][at] = {
533
+ 'id' => vault['entries'][at]['id'],
534
+ 'name' => vault['entries'][at]['name'],
535
+ 'value' => sealedvalue
536
+ }
537
+ else
538
+ # A NEW NAME NEEDS THE NAME KEY, which only a master holds. So a
539
+ # restricted key with `write` updates what it was granted and
540
+ # cannot grow the vault.
541
+ root = rootof(opened, 'creating the secret ' + name)
542
+ vault['entries'].push({
543
+ 'id' => id,
544
+ 'name' => VoxgigSekreto.minivaultseal(
545
+ VoxgigSekreto.minivaulthmac(root, MiniVaultFormat::LABEL_NAMES),
546
+ name, MiniVaultFormat::AAD_NAME
547
+ ),
548
+ 'value' => sealedvalue
549
+ })
550
+ end
551
+
552
+ save(vault)
553
+ nil
554
+ end
555
+ end
556
+
557
+ # Drop a name. Master only.
558
+ def remove(name)
559
+ # Every write on this file, from any handle in this process,
560
+ # serializes here; see minivaultlockfor.
561
+ VoxgigSekreto.minivaultlockfor(@file).synchronize do
562
+ VoxgigSekreto.checkname(name)
563
+ vault, opened = load
564
+ root = rootof(opened, 'removing a secret')
565
+
566
+ wanted = VoxgigSekreto.minivaultentryid(VoxgigSekreto.minivaultsecretkey(root, name))
567
+ at = vault['entries'].index { |entry| entry['id'] == wanted }
568
+ VoxgigSekreto.minivaultfail('no such secret: ' + name) if at.nil?
569
+
570
+ vault['entries'].delete_at(at)
571
+ save(vault)
572
+ nil
573
+ end
574
+ end
575
+
576
+ # Every key in the file, with what it may do. Master only.
577
+ def keys
578
+ vault, opened = load
579
+ rootof(opened, 'listing the keys')
580
+
581
+ vault['keys'].map do |record|
582
+ meta = metaof(opened, record)
583
+ if meta.nil?
584
+ { 'key' => record['id'], 'master' => false, 'write' => false, 'grants' => [] }
585
+ else
586
+ { 'key' => record['id'], 'master' => meta['master'] == true,
587
+ 'write' => meta['write'] == true, 'grants' => (meta['grants'] || []).sort }
588
+ end
589
+ end
590
+ end
591
+
592
+ # Mint a restricted key. Master only.
593
+ def grant(spec)
594
+ # Every write on this file, from any handle in this process,
595
+ # serializes here; see minivaultlockfor.
596
+ VoxgigSekreto.minivaultlockfor(@file).synchronize do
597
+ vault, opened = load
598
+ root = rootof(opened, 'granting a key')
599
+
600
+ spec ||= {}
601
+ VoxgigSekreto.minivaultcheckid(spec['key'], 'a grant needs a key id')
602
+ unless spec['passphrase'].is_a?(String) && !spec['passphrase'].empty?
603
+ VoxgigSekreto.minivaultfail('a grant needs a passphrase')
604
+ end
605
+ if vault['keys'].any? { |k| k['id'] == spec['key'] }
606
+ VoxgigSekreto.minivaultfail('key already exists: ' + spec['key'])
607
+ end
608
+
609
+ names = (spec['names'] || []).sort
610
+ grants = {}
611
+ names.each do |name|
612
+ VoxgigSekreto.checkname(name)
613
+ grants[name] = VoxgigSekreto.minivaultb64(VoxgigSekreto.minivaultsecretkey(root, name))
614
+ end
615
+
616
+ write = spec['write'] == true
617
+ vault['keys'].push(sealkey(root, spec['key'], spec['passphrase'],
618
+ spec['iterations'] || @iterations,
619
+ { 'v' => MiniVaultFormat::FORMAT, 'write' => write,
620
+ 'grants' => grants },
621
+ { 'v' => MiniVaultFormat::FORMAT, 'master' => false,
622
+ 'write' => write, 'grants' => names }))
623
+
624
+ save(vault)
625
+ nil
626
+ end
627
+ end
628
+
629
+ # Drop a key. Master only.
630
+ #
631
+ # Anyone who already copied the file keeps whatever that key could
632
+ # read, so revoking bars future reads of the LIVE file and `rotate` is
633
+ # what takes a secret back.
634
+ def revoke(key)
635
+ # Every write on this file, from any handle in this process,
636
+ # serializes here; see minivaultlockfor.
637
+ VoxgigSekreto.minivaultlockfor(@file).synchronize do
638
+ vault, opened = load
639
+ rootof(opened, 'revoking a key')
640
+
641
+ VoxgigSekreto.minivaultfail('a key cannot revoke itself: ' + key) if key == opened['info']['key']
642
+
643
+ at = vault['keys'].index { |k| k['id'] == key }
644
+ VoxgigSekreto.minivaultfail('no such key: ' + key) if at.nil?
645
+
646
+ vault['keys'].delete_at(at)
647
+ save(vault)
648
+ nil
649
+ end
650
+ end
651
+
652
+ # A new root key, every value re-encrypted under it, and EVERY OTHER
653
+ # KEY DROPPED. Master only.
654
+ #
655
+ # The other keys go because they must: their rings are sealed under
656
+ # passphrases this process does not have. Re-grant afterwards.
657
+ def rotate
658
+ # Every write on this file, from any handle in this process,
659
+ # serializes here; see minivaultlockfor.
660
+ VoxgigSekreto.minivaultlockfor(@file).synchronize do
661
+ vault, opened = load
662
+ rootof(opened, 'rotating the vault')
663
+
664
+ # Read everything out under the old root before anything changes:
665
+ # once the root is replaced the old derived keys are unreachable.
666
+ plain = list.map { |name| [name, get(name)] }
667
+
668
+ root = VoxgigSekreto.minivaultrandom(MiniVaultFormat::KEYLEN)
669
+ namekey = VoxgigSekreto.minivaulthmac(root, MiniVaultFormat::LABEL_NAMES)
670
+
671
+ entries = plain.map do |name, value|
672
+ key = VoxgigSekreto.minivaultsecretkey(root, name)
673
+ {
674
+ 'id' => VoxgigSekreto.minivaultentryid(key),
675
+ 'name' => VoxgigSekreto.minivaultseal(namekey, name, MiniVaultFormat::AAD_NAME),
676
+ 'value' => VoxgigSekreto.minivaultseal(key, value,
677
+ MiniVaultFormat::AAD_SECRET + name)
678
+ }
679
+ end
680
+
681
+ record = vault['keys'].find { |k| k['id'] == @keyid }
682
+
683
+ fresh = sealkey(root, @keyid, @passphrase, record['iters'],
684
+ { 'v' => MiniVaultFormat::FORMAT, 'write' => true,
685
+ 'root' => VoxgigSekreto.minivaultb64(root) },
686
+ { 'v' => MiniVaultFormat::FORMAT, 'master' => true, 'write' => true,
687
+ 'grants' => [] })
688
+
689
+ # SAVE FIRST, adopt second. A handle holding the new root over a
690
+ # file that still holds the old one reads nothing and says the vault
691
+ # is damaged.
692
+ save({ 'keys' => [fresh], 'entries' => entries })
693
+
694
+ @opened = {
695
+ 'info' => { 'key' => @keyid, 'master' => true, 'write' => true, 'grants' => [] },
696
+ 'root' => root,
697
+ 'grants' => {},
698
+ 'ring' => fresh['ring']
699
+ }
700
+ nil
701
+ end
702
+ end
703
+
704
+ private
705
+
706
+ def bytes
707
+ File.binread(@file)
708
+ rescue Errno::ENOENT
709
+ # A vault is configured deliberately, with a key. Its absence is a
710
+ # broken deployment and never "no secrets here": answering a miss
711
+ # would send the chain on to a weaker store.
712
+ VoxgigSekreto.minivaultfail('no vault file: ' + @file) unless @create
713
+
714
+ VoxgigSekreto.minivaultputnew(@file,
715
+ VoxgigSekreto.minivaultnew(@keyid, @passphrase, @iterations))
716
+ File.binread(@file)
717
+ rescue SystemCallError => e
718
+ VoxgigSekreto.minivaultfail('cannot read ' + @file + ': ' + e.message)
719
+ end
720
+
721
+ def load
722
+ vault = VoxgigSekreto.minivaultreadfile(bytes)
723
+
724
+ record = vault['keys'].find { |k| k['id'] == @keyid }
725
+ if record.nil?
726
+ # REVOKED, or never there. Either way this handle is finished, and
727
+ # dropping what it derived is what stops the next call answering
728
+ # from memory.
729
+ @opened = nil
730
+ VoxgigSekreto.minivaultfail('no such key: ' + @keyid)
731
+ end
732
+
733
+ # The file still holds this key, and holds the SAME ring: a key
734
+ # revoked and re-granted under another passphrase is a different key
735
+ # wearing the id, and re-deriving is what refuses it.
736
+ return [vault, @opened] if @opened && VoxgigSekreto.minivaultsameseal(@opened['ring'],
737
+ record['ring'])
738
+
739
+ @opened = nil
740
+
741
+ plain = VoxgigSekreto.minivaultunseal(
742
+ VoxgigSekreto.minivaultkek(@passphrase, record['salt'], record['iters']),
743
+ record['ring'], MiniVaultFormat::AAD_RING + @keyid,
744
+ 'wrong passphrase for key ' + @keyid + ', or a damaged vault'
745
+ )
746
+
747
+ ring = VoxgigSekreto.minivaultjsonof(plain, 'key ring for ' + @keyid)
748
+
749
+ grants = {}
750
+ (ring['grants'] || {}).each do |name, key|
751
+ grants[name] = VoxgigSekreto.minivaultunb64(key, 'a granted key')
752
+ end
753
+
754
+ @opened = {
755
+ 'info' => {
756
+ 'key' => @keyid,
757
+ 'master' => !ring['root'].nil?,
758
+ 'write' => !ring['root'].nil? || ring['write'] == true,
759
+ 'grants' => grants.keys.sort
760
+ },
761
+ 'root' => ring['root'].nil? ? nil : VoxgigSekreto.minivaultunb64(ring['root'],
762
+ 'the root key'),
763
+ 'grants' => grants,
764
+ 'ring' => record['ring']
765
+ }
766
+
767
+ [vault, @opened]
768
+ end
769
+
770
+ def rootof(opened, what)
771
+ if opened['root'].nil?
772
+ VoxgigSekreto.minivaultfail(what + ' needs a master key, and ' +
773
+ opened['info']['key'] + ' is restricted')
774
+ end
775
+ opened['root']
776
+ end
777
+
778
+ # The key for one name, or nil when this key cannot reach it.
779
+ def keyfor(opened, name)
780
+ return VoxgigSekreto.minivaultsecretkey(opened['root'], name) unless opened['root'].nil?
781
+
782
+ opened['grants'][name]
783
+ end
784
+
785
+ def findentry(vault, key)
786
+ return nil if key.nil?
787
+
788
+ id = VoxgigSekreto.minivaultentryid(key)
789
+ vault['entries'].find { |entry| entry['id'] == id }
790
+ end
791
+
792
+ def metaof(opened, record)
793
+ root = rootof(opened, 'reading key metadata')
794
+ what = 'metadata for key ' + record['id']
795
+ VoxgigSekreto.minivaultjsonof(
796
+ VoxgigSekreto.minivaultunseal(
797
+ VoxgigSekreto.minivaulthmac(root, MiniVaultFormat::LABEL_META),
798
+ record['meta'], MiniVaultFormat::AAD_META + record['id'], what
799
+ ), what
800
+ )
801
+ rescue SekretoError
802
+ # A record written under a root key this one has replaced. The key
803
+ # is still in the file and still opens with its own passphrase, so
804
+ # it is reported rather than hidden - with what it can do unknown.
805
+ nil
806
+ end
807
+
808
+ def sealkey(root, id, phrase, iters, ring, meta)
809
+ salt = VoxgigSekreto.minivaultrandom(MiniVaultFormat::SALTLEN)
810
+ {
811
+ 'id' => id,
812
+ 'salt' => salt,
813
+ 'iters' => iters,
814
+ 'ring' => VoxgigSekreto.minivaultseal(VoxgigSekreto.minivaultkek(phrase, salt, iters),
815
+ JSON.generate(ring),
816
+ MiniVaultFormat::AAD_RING + id),
817
+ 'meta' => VoxgigSekreto.minivaultseal(
818
+ VoxgigSekreto.minivaulthmac(root, MiniVaultFormat::LABEL_META),
819
+ JSON.generate(meta), MiniVaultFormat::AAD_META + id
820
+ )
821
+ }
822
+ end
823
+
824
+ # Read, change, and REPLACE - never edit in place.
825
+ #
826
+ # THE TEMPORARY IS RANDOM AND EXCLUSIVE. `<vault>.<pid>.tmp` is a name
827
+ # anyone can predict, so anyone who can write the vault's directory
828
+ # could put a symlink there and have the next save truncate whatever
829
+ # it pointed at.
830
+ def save(vault)
831
+ temp = @file + '.' + VoxgigSekreto.minivaultrandom(8).unpack1('H*') + '.tmp'
832
+
833
+ begin
834
+ File.open(temp, File::WRONLY | File::CREAT | File::EXCL, 0o600) do |handle|
835
+ handle.binmode
836
+ handle.write(VoxgigSekreto.minivaultwritefile(vault))
837
+ end
838
+ File.rename(temp, @file)
839
+ rescue SystemCallError => e
840
+ begin
841
+ File.unlink(temp)
842
+ rescue SystemCallError
843
+ # The vault is unchanged either way, and the write error is what
844
+ # the caller needs to be told about.
845
+ end
846
+ VoxgigSekreto.minivaultfail('cannot write ' + @file + ': ' + e.message)
847
+ end
848
+ nil
849
+ end
850
+ end
851
+
852
+ module_function
853
+
854
+ # Open a vault file as one key.
855
+ #
856
+ # The handle is lazy. Nothing is read, and no passphrase is stretched,
857
+ # until a method needs the file.
858
+ def openvault(options)
859
+ MiniVault.new(options)
860
+ end
861
+
862
+ # Make a vault file and return a handle on its master key.
863
+ #
864
+ # Refuses a file that is already there: a vault is created once, and
865
+ # overwriting one discards every secret in it.
866
+ def createvault(options)
867
+ opts = options || {}
868
+
869
+ minivaultfail('a vault needs a file') unless opts['file'].is_a?(String) && !opts['file'].empty?
870
+ unless opts['passphrase'].is_a?(String) && !opts['passphrase'].empty?
871
+ minivaultfail('a vault needs a passphrase')
872
+ end
873
+ want = opts['key']
874
+ keyid = want.nil? || want.to_s.empty? ? MiniVaultFormat::MASTERKEY : want
875
+ minivaultcheckid(keyid, 'a vault needs a key id')
876
+
877
+ # No existence check first: the check and the write would be two
878
+ # steps, and `minivaultputnew` refuses an existing file in ONE.
879
+ minivaultputnew(opts['file'],
880
+ minivaultnew(keyid, opts['passphrase'],
881
+ opts['iterations'] || MiniVaultFormat::ITERATIONS))
882
+
883
+ openvault(opts)
884
+ end
885
+
886
+ # --- the provider ----------------------------------------------------
887
+
888
+ # Read a vault as one store in a chain.
889
+ #
890
+ # The provider is the READ half and nothing more: a chain resolves
891
+ # secrets, and writing one is a deliberate act with an API of its own.
892
+ class MiniVaultProvider
893
+ def initialize(vault)
894
+ @vault = vault
895
+ end
896
+
897
+ def lookup(name)
898
+ @vault.get(name)
899
+ end
900
+
901
+ def describe
902
+ 'minivault:' + @vault.file
903
+ end
904
+ end
905
+
906
+ module_function
907
+
908
+ def providerof(vault)
909
+ MiniVaultProvider.new(vault)
910
+ end
911
+
912
+ # A vault provider from options, for a chain built by hand.
913
+ def minivaultprovider(options)
914
+ providerof(openvault(options))
915
+ end
916
+
917
+ # The vault options a provider spec describes.
918
+ def minivaultoptions(spec)
919
+ {
920
+ 'file' => spec['file'] || '',
921
+ 'key' => spec['vaultkey'],
922
+ 'passphrase' => spec['passphrase'] || '',
923
+ 'iterations' => spec['iterations'],
924
+ 'create' => spec['create'] == true
925
+ }
926
+ end
927
+
928
+ # The vault behind a store in a chain, as its programmatic API.
929
+ #
930
+ # With no store named, the unqualified alias answers: one vault in the
931
+ # chain resolves whatever it is called, and two raise rather than
932
+ # picking one.
933
+ def vaultof(secrets, store = nil)
934
+ if store.nil?
935
+ found = secrets.host.exports('minivault/' + MiniVaultFormat::VAULT_EXPORT)
936
+ minivaultfail('no minivault store in this chain') if found.nil?
937
+ return found
938
+ end
939
+
940
+ # A NAMED STORE MUST EXIST, and the alias must not stand in for it.
941
+ # `host.exports` falls back to the alias when the exact ref misses, so
942
+ # asking for `minivault` in a chain whose only vault is named `app`
943
+ # used to hand back the `app` vault - and then write to it.
944
+ ref = store == 'minivault' ? 'minivault' : 'minivault$' + store
945
+
946
+ minivaultfail('no minivault store named ' + store + ' in this chain') if
947
+ secrets.host.instance(ref).nil?
948
+
949
+ secrets.host.exports(ref + '/' + MiniVaultFormat::VAULT_EXPORT)
950
+ end
951
+
952
+ module Plugins
953
+ # The `minivault` provider kind, as a voxgig/plugin definition.
954
+ #
955
+ # Written out rather than built by `providerplugin`, because this
956
+ # definition publishes TWO exports: `provider`, the read half every
957
+ # kind publishes, and `vault`, the programmatic API.
958
+ MINIVAULT = {
959
+ 'name' => 'minivault',
960
+ 'define' => lambda { |inst|
961
+ options = VoxgigSekreto.minivaultoptions(inst.options || {})
962
+
963
+ vault = begin
964
+ # `openvault` refuses bad configuration HERE, so a mistyped
965
+ # chain fails at construction. Reaching the FILE is not
966
+ # configuration: the handle is lazy.
967
+ VoxgigSekreto.openvault(options)
968
+ rescue SekretoError => e
969
+ raise VoxgigPlugin::PluginError.new(
970
+ ERROR_CODE, e.message, { 'ref' => inst.ref, 'cause' => e.message }
971
+ )
972
+ end
973
+
974
+ inst.export(PROVIDER_EXPORT, VoxgigSekreto.providerof(vault))
975
+ inst.export(MiniVaultFormat::VAULT_EXPORT, vault)
976
+ }
977
+ }.freeze
978
+ end
979
+ end