@voxgig/sdkgen 4.20.0 → 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 (966) 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/tsconfig.tsbuildinfo +1 -1
  9. package/model/sdkgen.aon +49 -3
  10. package/package.json +1 -1
  11. package/project/.sdk/model/feature/secrets.aon +128 -0
  12. package/project/.sdk/model/feature/validate.aon +3 -2
  13. package/project/.sdk/model/target/c.aon +1 -1
  14. package/project/.sdk/model/target/clojure.aon +1 -1
  15. package/project/.sdk/model/target/cpp.aon +1 -1
  16. package/project/.sdk/model/target/csharp.aon +1 -1
  17. package/project/.sdk/model/target/elixir.aon +1 -1
  18. package/project/.sdk/model/target/go.aon +1 -1
  19. package/project/.sdk/model/target/java.aon +1 -1
  20. package/project/.sdk/model/target/kotlin.aon +1 -1
  21. package/project/.sdk/model/target/lua.aon +1 -1
  22. package/project/.sdk/model/target/ocaml.aon +1 -1
  23. package/project/.sdk/model/target/perl.aon +1 -1
  24. package/project/.sdk/model/target/php.aon +1 -1
  25. package/project/.sdk/model/target/py.aon +1 -1
  26. package/project/.sdk/model/target/rb.aon +1 -1
  27. package/project/.sdk/model/target/rust.aon +1 -1
  28. package/project/.sdk/model/target/scala.aon +1 -1
  29. package/project/.sdk/model/target/swift.aon +1 -1
  30. package/project/.sdk/model/target/zig.aon +1 -1
  31. package/project/.sdk/src/cmp/c/Main_c.ts +3 -0
  32. package/project/.sdk/src/cmp/c/Schema_c.ts +106 -0
  33. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +2 -0
  34. package/project/.sdk/src/cmp/clojure/ReadmeExplanation_clojure.ts +1 -0
  35. package/project/.sdk/src/cmp/clojure/Schema_clojure.ts +73 -0
  36. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +3 -0
  37. package/project/.sdk/src/cmp/cpp/Schema_cpp.ts +105 -0
  38. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +3 -0
  39. package/project/.sdk/src/cmp/csharp/Schema_csharp.ts +85 -0
  40. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +2 -0
  41. package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +1 -0
  42. package/project/.sdk/src/cmp/elixir/Schema_elixir.ts +88 -0
  43. package/project/.sdk/src/cmp/go/Main_go.ts +2 -0
  44. package/project/.sdk/src/cmp/go/Schema_go.ts +93 -0
  45. package/project/.sdk/src/cmp/java/Main_java.ts +2 -0
  46. package/project/.sdk/src/cmp/java/Schema_java.ts +125 -0
  47. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +2 -0
  48. package/project/.sdk/src/cmp/kotlin/Schema_kotlin.ts +111 -0
  49. package/project/.sdk/src/cmp/lua/Main_lua.ts +46 -9
  50. package/project/.sdk/src/cmp/lua/Package_lua.ts +1 -0
  51. package/project/.sdk/src/cmp/lua/ReadmeExplanation_lua.ts +1 -0
  52. package/project/.sdk/src/cmp/lua/Schema_lua.ts +72 -0
  53. package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +24 -1
  54. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +34 -13
  55. package/project/.sdk/src/cmp/ocaml/ReadmeExplanation_ocaml.ts +1 -0
  56. package/project/.sdk/src/cmp/ocaml/Schema_ocaml.ts +99 -0
  57. package/project/.sdk/src/cmp/perl/Main_perl.ts +2 -0
  58. package/project/.sdk/src/cmp/perl/ReadmeExplanation_perl.ts +1 -0
  59. package/project/.sdk/src/cmp/perl/Schema_perl.ts +107 -0
  60. package/project/.sdk/src/cmp/php/Main_php.ts +2 -0
  61. package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
  62. package/project/.sdk/src/cmp/php/ReadmeExplanation_php.ts +1 -0
  63. package/project/.sdk/src/cmp/php/Schema_php.ts +129 -0
  64. package/project/.sdk/src/cmp/py/Main_py.ts +2 -0
  65. package/project/.sdk/src/cmp/py/ReadmeExplanation_py.ts +1 -0
  66. package/project/.sdk/src/cmp/py/Schema_py.ts +72 -0
  67. package/project/.sdk/src/cmp/rb/Main_rb.ts +2 -0
  68. package/project/.sdk/src/cmp/rb/ReadmeExplanation_rb.ts +1 -0
  69. package/project/.sdk/src/cmp/rb/Schema_rb.ts +70 -0
  70. package/project/.sdk/src/cmp/rust/Main_rust.ts +3 -0
  71. package/project/.sdk/src/cmp/rust/Schema_rust.ts +107 -0
  72. package/project/.sdk/src/cmp/scala/Main_scala.ts +3 -0
  73. package/project/.sdk/src/cmp/scala/Schema_scala.ts +108 -0
  74. package/project/.sdk/src/cmp/swift/Main_swift.ts +3 -0
  75. package/project/.sdk/src/cmp/swift/Schema_swift.ts +92 -0
  76. package/project/.sdk/src/cmp/zig/Main_zig.ts +3 -0
  77. package/project/.sdk/src/cmp/zig/Schema_zig.ts +114 -0
  78. package/project/.sdk/tm/c/core/context.c +3 -0
  79. package/project/.sdk/tm/c/core/sdk.h +14 -0
  80. package/project/.sdk/tm/c/feature/secrets/plugin/capability.c +2 -2
  81. package/project/.sdk/tm/c/feature/secrets/plugin/capability.h +2 -2
  82. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.c +2 -2
  83. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.h +2 -2
  84. package/project/.sdk/tm/c/feature/secrets/plugin/config.c +2 -2
  85. package/project/.sdk/tm/c/feature/secrets/plugin/config.h +2 -2
  86. package/project/.sdk/tm/c/feature/secrets/plugin/depend.c +2 -2
  87. package/project/.sdk/tm/c/feature/secrets/plugin/depend.h +2 -2
  88. package/project/.sdk/tm/c/feature/secrets/plugin/env.c +2 -2
  89. package/project/.sdk/tm/c/feature/secrets/plugin/env.h +2 -2
  90. package/project/.sdk/tm/c/feature/secrets/plugin/export.c +3 -3
  91. package/project/.sdk/tm/c/feature/secrets/plugin/export.h +2 -2
  92. package/project/.sdk/tm/c/feature/secrets/plugin/graph.c +2 -2
  93. package/project/.sdk/tm/c/feature/secrets/plugin/graph.h +2 -2
  94. package/project/.sdk/tm/c/feature/secrets/plugin/host.c +25 -2
  95. package/project/.sdk/tm/c/feature/secrets/plugin/host.h +3 -2
  96. package/project/.sdk/tm/c/feature/secrets/plugin/order.c +2 -2
  97. package/project/.sdk/tm/c/feature/secrets/plugin/order.h +2 -2
  98. package/project/.sdk/tm/c/feature/secrets/plugin/point.c +2 -2
  99. package/project/.sdk/tm/c/feature/secrets/plugin/point.h +2 -2
  100. package/project/.sdk/tm/c/feature/secrets/plugin/ref.c +2 -2
  101. package/project/.sdk/tm/c/feature/secrets/plugin/ref.h +2 -2
  102. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.c +2 -2
  103. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.h +2 -2
  104. package/project/.sdk/tm/c/feature/secrets/plugin/types.c +2 -2
  105. package/project/.sdk/tm/c/feature/secrets/plugin/types.h +2 -2
  106. package/project/.sdk/tm/c/feature/secrets/plugin/value.c +2 -2
  107. package/project/.sdk/tm/c/feature/secrets/plugin/value.h +2 -2
  108. package/project/.sdk/tm/c/feature/secrets/plugin/version.c +2 -2
  109. package/project/.sdk/tm/c/feature/secrets/plugin/version.h +2 -2
  110. package/project/.sdk/tm/c/feature/secrets/plugins/aws.c +2 -2
  111. package/project/.sdk/tm/c/feature/secrets/plugins/azuresecrets.c +2 -2
  112. package/project/.sdk/tm/c/feature/secrets/plugins/boru.c +2 -2
  113. package/project/.sdk/tm/c/feature/secrets/plugins/clock.c +2 -2
  114. package/project/.sdk/tm/c/feature/secrets/plugins/doppler.c +2 -2
  115. package/project/.sdk/tm/c/feature/secrets/plugins/encode.c +2 -2
  116. package/project/.sdk/tm/c/feature/secrets/plugins/gcpsecrets.c +2 -2
  117. package/project/.sdk/tm/c/feature/secrets/plugins/hashicorp.c +2 -2
  118. package/project/.sdk/tm/c/feature/secrets/plugins/httpjson.c +2 -2
  119. package/project/.sdk/tm/c/feature/secrets/plugins/infisical.c +2 -2
  120. package/project/.sdk/tm/c/feature/secrets/plugins/minivault.c +2072 -0
  121. package/project/.sdk/tm/c/feature/secrets/plugins/onepassword.c +2 -2
  122. package/project/.sdk/tm/c/feature/secrets/plugins/proc.c +2 -2
  123. package/project/.sdk/tm/c/feature/secrets/plugins/secretspec.c +2 -2
  124. package/project/.sdk/tm/c/feature/secrets/plugins/sekretoplugins.h +151 -10
  125. package/project/.sdk/tm/c/feature/secrets/plugins/sha256.c +16 -10
  126. package/project/.sdk/tm/c/feature/secrets/plugins/sigv4.c +2 -2
  127. package/project/.sdk/tm/c/feature/secrets/plugins/support.h +12 -8
  128. package/project/.sdk/tm/c/feature/secrets/plugins/tls.c +2 -2
  129. package/project/.sdk/tm/c/feature/secrets/sekreto/internal.h +17 -2
  130. package/project/.sdk/tm/c/feature/secrets/sekreto/json.c +5 -5
  131. package/project/.sdk/tm/c/feature/secrets/sekreto/providers.c +37 -9
  132. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.c +2 -2
  133. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.h +17 -2
  134. package/project/.sdk/tm/c/feature/secrets/sekreto/util.c +16 -2
  135. package/project/.sdk/tm/c/feature/validate.c +364 -0
  136. package/project/.sdk/tm/c/feature/validate.h +29 -0
  137. package/project/.sdk/tm/c/src/feature/validate/.gitkeep +0 -0
  138. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  139. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  140. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  141. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  142. package/project/.sdk/tm/c/utility/make_options.c +12 -24
  143. package/project/.sdk/tm/c/utility/make_spec.c +8 -0
  144. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +2 -2
  145. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +2 -2
  146. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +2 -2
  147. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +2 -2
  148. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +2 -2
  149. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +3 -3
  150. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +2 -2
  151. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +17 -2
  152. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +2 -2
  153. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +2 -2
  154. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +2 -2
  155. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +2 -2
  156. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +2 -2
  157. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +2 -2
  158. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +2 -2
  159. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +2 -2
  160. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +2 -2
  161. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +2 -2
  162. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +2 -2
  163. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +2 -2
  164. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +2 -2
  165. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +2 -2
  166. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +2 -2
  167. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +2 -2
  168. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +2 -2
  169. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +2 -2
  170. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +2 -2
  171. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +2 -2
  172. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/minivault.clj +837 -0
  173. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +2 -2
  174. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +2 -2
  175. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +2 -2
  176. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +2 -2
  177. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +2 -2
  178. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +6 -4
  179. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +2 -2
  180. package/project/.sdk/tm/clojure/src/feature/validate/.gitkeep +0 -0
  181. package/project/.sdk/tm/clojure/src/sdk/core.clj +31 -41
  182. package/project/.sdk/tm/clojure/src/sdk/features.clj +202 -0
  183. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  184. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  185. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  186. package/project/.sdk/tm/cpp/core/types.hpp +4 -0
  187. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.cpp +2 -2
  188. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.hpp +2 -2
  189. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.cpp +2 -2
  190. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.hpp +2 -2
  191. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.cpp +2 -2
  192. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.hpp +2 -2
  193. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.cpp +2 -2
  194. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.hpp +2 -2
  195. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.cpp +2 -2
  196. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.hpp +2 -2
  197. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.cpp +3 -3
  198. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.hpp +2 -2
  199. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.cpp +2 -2
  200. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.hpp +2 -2
  201. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.cpp +21 -2
  202. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.hpp +3 -2
  203. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.cpp +2 -2
  204. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.hpp +2 -2
  205. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.cpp +2 -2
  206. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.hpp +2 -2
  207. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.cpp +2 -2
  208. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.hpp +2 -2
  209. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.cpp +2 -2
  210. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.hpp +2 -2
  211. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.cpp +2 -2
  212. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.hpp +2 -2
  213. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.cpp +2 -2
  214. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.hpp +2 -2
  215. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.cpp +2 -2
  216. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.hpp +2 -2
  217. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.cpp +2 -2
  218. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.hpp +2 -2
  219. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.cpp +2 -2
  220. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.hpp +2 -2
  221. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.cpp +2 -2
  222. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.hpp +2 -2
  223. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.cpp +2 -2
  224. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.hpp +9 -7
  225. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.cpp +2 -2
  226. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.hpp +2 -2
  227. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.cpp +2 -2
  228. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.hpp +2 -2
  229. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.cpp +2 -2
  230. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.hpp +2 -2
  231. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.cpp +2 -2
  232. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.hpp +2 -2
  233. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.cpp +2 -2
  234. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.hpp +2 -2
  235. package/project/.sdk/tm/cpp/feature/secrets/plugins/Minivault.cpp +1345 -0
  236. package/project/.sdk/tm/cpp/feature/secrets/plugins/Minivault.hpp +219 -0
  237. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.cpp +2 -2
  238. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.hpp +2 -2
  239. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.cpp +2 -2
  240. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.hpp +2 -2
  241. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.cpp +2 -2
  242. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.hpp +2 -2
  243. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.cpp +2 -2
  244. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.hpp +2 -2
  245. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.cpp +2 -2
  246. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.hpp +2 -2
  247. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.cpp +2 -2
  248. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.hpp +2 -2
  249. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.cpp +22 -2
  250. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.hpp +12 -2
  251. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.cpp +3 -3
  252. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.hpp +2 -2
  253. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.cpp +2 -2
  254. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.hpp +2 -2
  255. package/project/.sdk/tm/cpp/feature/validate.hpp +301 -0
  256. package/project/.sdk/tm/cpp/src/feature/validate/.gitkeep +0 -0
  257. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  258. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  259. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  260. package/project/.sdk/tm/cpp/utility/pipeline.hpp +24 -41
  261. package/project/.sdk/tm/csharp/feature/ValidateFeature.cs +343 -0
  262. package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +2 -2
  263. package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +2 -2
  264. package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +2 -2
  265. package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +2 -2
  266. package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +2 -2
  267. package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +2 -2
  268. package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +2 -2
  269. package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +3 -3
  270. package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +2 -2
  271. package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +9 -2
  272. package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +21 -2
  273. package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +2 -2
  274. package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +2 -2
  275. package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +2 -2
  276. package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +2 -2
  277. package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +2 -2
  278. package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +2 -2
  279. package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +2 -2
  280. package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +2 -2
  281. package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +2 -2
  282. package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +2 -2
  283. package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +2 -2
  284. package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +2 -2
  285. package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +2 -2
  286. package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +2 -2
  287. package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +2 -2
  288. package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +2 -2
  289. package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +2 -2
  290. package/project/.sdk/tm/csharp/feature/secrets/plugins/MiniVault.cs +1572 -0
  291. package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +2 -2
  292. package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +2 -2
  293. package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +2 -2
  294. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +2 -2
  295. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +3 -2
  296. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +2 -2
  297. package/project/.sdk/tm/csharp/src/feature/validate/.gitkeep +0 -0
  298. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  299. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  300. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +12 -85
  301. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +24 -3
  302. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +2 -2
  303. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +2 -2
  304. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +2 -2
  305. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +2 -2
  306. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +2 -2
  307. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +2 -2
  308. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +7 -4
  309. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +2 -2
  310. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +13 -2
  311. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +15 -2
  312. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +2 -2
  313. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +2 -2
  314. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +2 -2
  315. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +2 -2
  316. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +2 -2
  317. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +2 -2
  318. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +2 -2
  319. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +2 -2
  320. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +2 -2
  321. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +2 -2
  322. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +2 -2
  323. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +2 -2
  324. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +2 -2
  325. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +2 -2
  326. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +2 -2
  327. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +3 -3
  328. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +3 -3
  329. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +2 -2
  330. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/minivault.ex +1033 -0
  331. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +2 -2
  332. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +2 -2
  333. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +2 -2
  334. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +2 -2
  335. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +2 -2
  336. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +17 -5
  337. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +2 -2
  338. package/project/.sdk/tm/elixir/lib/projectname/feature/validate.ex +320 -0
  339. package/project/.sdk/tm/elixir/lib/projectname/utility.ex +10 -46
  340. package/project/.sdk/tm/elixir/src/feature/validate/.gitkeep +0 -0
  341. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  342. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  343. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  344. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  345. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  346. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  347. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  348. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  349. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +2 -2
  350. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  351. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +25 -1
  352. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  353. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  354. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  355. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  356. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  357. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  358. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  359. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +2 -2
  360. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  361. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  362. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  363. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  364. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  365. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +2 -2
  366. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +2 -2
  367. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +2 -2
  368. package/project/.sdk/tm/go/feature/secrets/plugins/minivault/format.go +493 -0
  369. package/project/.sdk/tm/go/feature/secrets/plugins/minivault/minivault.go +1131 -0
  370. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  371. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  372. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  373. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +14 -2
  374. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +2 -2
  375. package/project/.sdk/tm/go/feature/validate_feature.go +346 -0
  376. package/project/.sdk/tm/go/src/feature/validate/.gitkeep +0 -0
  377. package/project/.sdk/tm/go/test/omni/omni.go +2 -2
  378. package/project/.sdk/tm/go/test/omni/util.go +2 -2
  379. package/project/.sdk/tm/go/utility/make_options.go +13 -54
  380. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +24 -8
  381. package/project/.sdk/tm/java/feature/ValidateFeature.java +330 -0
  382. package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +2 -2
  383. package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +2 -2
  384. package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +2 -2
  385. package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +2 -2
  386. package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +2 -2
  387. package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +2 -2
  388. package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +2 -2
  389. package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +3 -3
  390. package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +2 -2
  391. package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +3 -3
  392. package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +21 -2
  393. package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +2 -2
  394. package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +2 -2
  395. package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +2 -2
  396. package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +2 -2
  397. package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +2 -2
  398. package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +2 -2
  399. package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +2 -2
  400. package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +2 -2
  401. package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +2 -2
  402. package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +2 -2
  403. package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +4 -3
  404. package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +2 -2
  405. package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +2 -2
  406. package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +2 -2
  407. package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +2 -2
  408. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +2 -2
  409. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +2 -2
  410. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +2 -2
  411. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +2 -2
  412. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +2 -2
  413. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +2 -2
  414. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +2 -2
  415. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +2 -2
  416. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Minivault.java +1448 -0
  417. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +2 -2
  418. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +2 -2
  419. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +2 -2
  420. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +2 -2
  421. package/project/.sdk/tm/java/src/feature/validate/.gitkeep +0 -0
  422. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  423. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  424. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  425. package/project/.sdk/tm/java/utility/MakeOptions.java +13 -45
  426. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  427. package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +2 -2
  428. package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +2 -2
  429. package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +2 -2
  430. package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +2 -2
  431. package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +2 -2
  432. package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +3 -3
  433. package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +2 -2
  434. package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +17 -2
  435. package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +2 -2
  436. package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +2 -2
  437. package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +2 -2
  438. package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +2 -2
  439. package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +2 -2
  440. package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +2 -2
  441. package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +2 -2
  442. package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +2 -2
  443. package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +2 -2
  444. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +2 -2
  445. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +2 -2
  446. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +2 -2
  447. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +2 -2
  448. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +2 -2
  449. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +2 -2
  450. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +2 -2
  451. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +2 -2
  452. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/minivault.js +866 -0
  453. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +2 -2
  454. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +2 -2
  455. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +2 -2
  456. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +2 -2
  457. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +3 -2
  458. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +2 -2
  459. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +2 -2
  460. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +2 -2
  461. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +2 -2
  462. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +2 -2
  463. package/project/.sdk/tm/js/src/utility/StructUtility.js +1 -1
  464. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  465. package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
  466. package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
  467. package/project/.sdk/tm/kotlin/feature/ValidateFeature.kt +297 -0
  468. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +2 -2
  469. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +2 -2
  470. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +2 -2
  471. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +2 -2
  472. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +2 -2
  473. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +3 -3
  474. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +2 -2
  475. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +21 -2
  476. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +2 -2
  477. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +2 -2
  478. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +2 -2
  479. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +2 -2
  480. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +2 -2
  481. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +2 -2
  482. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +2 -2
  483. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +2 -2
  484. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +2 -2
  485. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +2 -2
  486. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +3 -2
  487. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +2 -2
  488. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +14 -2
  489. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +10 -2
  490. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +2 -2
  491. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +2 -2
  492. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +2 -2
  493. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +2 -2
  494. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +2 -2
  495. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +2 -2
  496. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +2 -2
  497. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +2 -2
  498. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Minivault.kt +1095 -0
  499. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +2 -2
  500. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +2 -2
  501. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +2 -2
  502. package/project/.sdk/tm/kotlin/src/feature/validate/.gitkeep +0 -0
  503. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  504. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  505. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  506. package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +13 -35
  507. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -0
  508. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  509. package/project/.sdk/tm/lua/feature/secrets/native/sekretonet.c +2 -2
  510. package/project/.sdk/tm/lua/feature/secrets/native/sekretovault.c +240 -0
  511. package/project/.sdk/tm/lua/feature/secrets/plugin/capability.lua +2 -2
  512. package/project/.sdk/tm/lua/feature/secrets/plugin/catalog.lua +2 -2
  513. package/project/.sdk/tm/lua/feature/secrets/plugin/config.lua +2 -2
  514. package/project/.sdk/tm/lua/feature/secrets/plugin/depend.lua +2 -2
  515. package/project/.sdk/tm/lua/feature/secrets/plugin/env.lua +2 -2
  516. package/project/.sdk/tm/lua/feature/secrets/plugin/export.lua +12 -3
  517. package/project/.sdk/tm/lua/feature/secrets/plugin/graph.lua +2 -2
  518. package/project/.sdk/tm/lua/feature/secrets/plugin/host.lua +18 -2
  519. package/project/.sdk/tm/lua/feature/secrets/plugin/json.lua +2 -2
  520. package/project/.sdk/tm/lua/feature/secrets/plugin/order.lua +2 -2
  521. package/project/.sdk/tm/lua/feature/secrets/plugin/point.lua +2 -2
  522. package/project/.sdk/tm/lua/feature/secrets/plugin/ref.lua +2 -2
  523. package/project/.sdk/tm/lua/feature/secrets/plugin/resolve.lua +2 -2
  524. package/project/.sdk/tm/lua/feature/secrets/plugin/types.lua +2 -2
  525. package/project/.sdk/tm/lua/feature/secrets/plugin/version.lua +2 -2
  526. package/project/.sdk/tm/lua/feature/secrets/plugin.lua +2 -2
  527. package/project/.sdk/tm/lua/feature/secrets/sekreto/addr.lua +2 -2
  528. package/project/.sdk/tm/lua/feature/secrets/sekreto/err.lua +2 -2
  529. package/project/.sdk/tm/lua/feature/secrets/sekreto/name.lua +2 -2
  530. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/aws.lua +2 -2
  531. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/azuresecrets.lua +2 -2
  532. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/boru.lua +2 -2
  533. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/crypto.lua +2 -2
  534. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/doppler.lua +2 -2
  535. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/gcpsecrets.lua +2 -2
  536. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/hashicorp.lua +2 -2
  537. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/httpjson.lua +2 -2
  538. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/infisical.lua +2 -2
  539. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/json.lua +2 -2
  540. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/minivault.lua +1227 -0
  541. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/net.lua +2 -2
  542. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/onepassword.lua +2 -2
  543. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/secretspec.lua +2 -2
  544. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/sigv4.lua +2 -2
  545. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/support.lua +2 -2
  546. package/project/.sdk/tm/lua/feature/secrets/sekreto/providers.lua +3 -2
  547. package/project/.sdk/tm/lua/feature/secrets/sekreto.lua +2 -2
  548. package/project/.sdk/tm/lua/feature/validate_feature.lua +333 -0
  549. package/project/.sdk/tm/lua/src/feature/validate/.gitkeep +0 -0
  550. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  551. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  552. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  553. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  554. package/project/.sdk/tm/lua/utility/make_options.lua +74 -55
  555. package/project/.sdk/tm/lua/utility/make_spec.lua +8 -1
  556. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  557. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  558. package/project/.sdk/tm/ocaml/Makefile +12 -7
  559. package/project/.sdk/tm/ocaml/feature/secrets/plugin/capability.ml +2 -2
  560. package/project/.sdk/tm/ocaml/feature/secrets/plugin/catalog.ml +2 -2
  561. package/project/.sdk/tm/ocaml/feature/secrets/plugin/config.ml +2 -2
  562. package/project/.sdk/tm/ocaml/feature/secrets/plugin/defs.ml +2 -2
  563. package/project/.sdk/tm/ocaml/feature/secrets/plugin/depend.ml +2 -2
  564. package/project/.sdk/tm/ocaml/feature/secrets/plugin/env.ml +2 -2
  565. package/project/.sdk/tm/ocaml/feature/secrets/plugin/export.ml +5 -3
  566. package/project/.sdk/tm/ocaml/feature/secrets/plugin/graph.ml +2 -2
  567. package/project/.sdk/tm/ocaml/feature/secrets/plugin/host.ml +18 -2
  568. package/project/.sdk/tm/ocaml/feature/secrets/plugin/order.ml +2 -2
  569. package/project/.sdk/tm/ocaml/feature/secrets/plugin/point.ml +2 -2
  570. package/project/.sdk/tm/ocaml/feature/secrets/plugin/ref.ml +2 -2
  571. package/project/.sdk/tm/ocaml/feature/secrets/plugin/resolve.ml +2 -2
  572. package/project/.sdk/tm/ocaml/feature/secrets/plugin/types.ml +2 -2
  573. package/project/.sdk/tm/ocaml/feature/secrets/plugin/value.ml +2 -2
  574. package/project/.sdk/tm/ocaml/feature/secrets/plugin/version.ml +2 -2
  575. package/project/.sdk/tm/ocaml/feature/secrets/plugins/aws.ml +2 -2
  576. package/project/.sdk/tm/ocaml/feature/secrets/plugins/azuresecrets.ml +2 -2
  577. package/project/.sdk/tm/ocaml/feature/secrets/plugins/boru.ml +2 -2
  578. package/project/.sdk/tm/ocaml/feature/secrets/plugins/crypto.ml +2 -2
  579. package/project/.sdk/tm/ocaml/feature/secrets/plugins/doppler.ml +2 -2
  580. package/project/.sdk/tm/ocaml/feature/secrets/plugins/gcpsecrets.ml +2 -2
  581. package/project/.sdk/tm/ocaml/feature/secrets/plugins/hashicorp.ml +2 -2
  582. package/project/.sdk/tm/ocaml/feature/secrets/plugins/http.ml +2 -2
  583. package/project/.sdk/tm/ocaml/feature/secrets/plugins/httpjson.ml +2 -2
  584. package/project/.sdk/tm/ocaml/feature/secrets/plugins/infisical.ml +2 -2
  585. package/project/.sdk/tm/ocaml/feature/secrets/plugins/minivault.ml +1086 -0
  586. package/project/.sdk/tm/ocaml/feature/secrets/plugins/minivault_stubs.c +222 -0
  587. package/project/.sdk/tm/ocaml/feature/secrets/plugins/onepassword.ml +2 -2
  588. package/project/.sdk/tm/ocaml/feature/secrets/plugins/runcmd.ml +2 -2
  589. package/project/.sdk/tm/ocaml/feature/secrets/plugins/secretspec.ml +2 -2
  590. package/project/.sdk/tm/ocaml/feature/secrets/plugins/sigv4.ml +2 -2
  591. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls.ml +2 -2
  592. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls_stubs.c +2 -2
  593. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/json.ml +2 -2
  594. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/provider.ml +33 -3
  595. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/secret.ml +2 -2
  596. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/sekreto.ml +4 -3
  597. package/project/.sdk/tm/ocaml/sdk_features.ml +174 -0
  598. package/project/.sdk/tm/ocaml/sdk_runtime.ml +12 -37
  599. package/project/.sdk/tm/ocaml/src/feature/validate/.gitkeep +0 -0
  600. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  601. package/project/.sdk/tm/perl/core/helpers.pm +64 -16
  602. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +2 -2
  603. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +2 -2
  604. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +2 -2
  605. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +2 -2
  606. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +2 -2
  607. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +3 -3
  608. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +2 -2
  609. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +19 -2
  610. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +2 -2
  611. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +2 -2
  612. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +2 -2
  613. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +2 -2
  614. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +2 -2
  615. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +2 -2
  616. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +2 -2
  617. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +2 -2
  618. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +2 -2
  619. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +2 -2
  620. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +2 -2
  621. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +2 -2
  622. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +2 -2
  623. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +2 -2
  624. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +2 -2
  625. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Minivault.pm +1380 -0
  626. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +2 -2
  627. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +2 -2
  628. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +2 -2
  629. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +2 -2
  630. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +2 -2
  631. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +4 -3
  632. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +2 -2
  633. package/project/.sdk/tm/perl/feature/validate_feature.pm +319 -0
  634. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  635. package/project/.sdk/tm/perl/src/feature/validate/.gitkeep +0 -0
  636. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  637. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  638. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  639. package/project/.sdk/tm/perl/utility/make_options.pm +25 -43
  640. package/project/.sdk/tm/php/feature/ValidateFeature.php +361 -0
  641. package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +2 -2
  642. package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +2 -2
  643. package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +2 -2
  644. package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +2 -2
  645. package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +2 -2
  646. package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +3 -3
  647. package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +2 -2
  648. package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +26 -2
  649. package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +2 -2
  650. package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +2 -2
  651. package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +2 -2
  652. package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +2 -2
  653. package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +2 -2
  654. package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +2 -2
  655. package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +2 -2
  656. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +2 -2
  657. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +2 -2
  658. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +2 -2
  659. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +2 -2
  660. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +2 -2
  661. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +2 -2
  662. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +2 -2
  663. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +2 -2
  664. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/minivault.php +1250 -0
  665. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +2 -2
  666. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +2 -2
  667. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +2 -2
  668. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +2 -2
  669. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +2 -2
  670. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +5 -3
  671. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +2 -2
  672. package/project/.sdk/tm/php/src/feature/validate/.gitkeep +0 -0
  673. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  674. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  675. package/project/.sdk/tm/php/utility/MakeOptions.php +15 -31
  676. package/project/.sdk/tm/php/utility/struct/Struct.php +56 -7
  677. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  678. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  679. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  680. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  681. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  682. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  683. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +2 -2
  684. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  685. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +17 -1
  686. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  687. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  688. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  689. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  690. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  691. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  692. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +1 -1
  693. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  694. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
  695. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  696. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  697. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  698. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  699. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
  700. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  701. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
  702. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/minivault.py +1202 -0
  703. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  704. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  705. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  706. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +2 -1
  707. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
  708. package/project/.sdk/tm/py/pkg/feature/validate_feature.py +273 -0
  709. package/project/.sdk/tm/py/pkg/utility/make_options.py +14 -53
  710. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  711. package/project/.sdk/tm/py/src/feature/validate/.gitkeep +0 -0
  712. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  713. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
  714. package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
  715. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +2 -2
  716. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +2 -2
  717. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +2 -2
  718. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +2 -2
  719. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +2 -2
  720. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +3 -3
  721. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +2 -2
  722. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +16 -2
  723. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +2 -2
  724. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +2 -2
  725. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +2 -2
  726. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +2 -2
  727. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +2 -2
  728. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +2 -2
  729. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +2 -2
  730. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +2 -2
  731. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +2 -2
  732. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +2 -2
  733. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +2 -2
  734. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +2 -2
  735. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +2 -2
  736. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +2 -2
  737. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +2 -2
  738. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +2 -2
  739. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/minivault.rb +979 -0
  740. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +2 -2
  741. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +2 -2
  742. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +2 -2
  743. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +6 -5
  744. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +2 -2
  745. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +2 -2
  746. package/project/.sdk/tm/rb/feature/validate_feature.rb +265 -0
  747. package/project/.sdk/tm/rb/src/feature/validate/.gitkeep +0 -0
  748. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  749. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  750. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  751. package/project/.sdk/tm/rb/utility/make_options.rb +15 -32
  752. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +24 -1
  753. package/project/.sdk/tm/rust/core/mod.rs +3 -2
  754. package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +2 -2
  755. package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +2 -2
  756. package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +2 -2
  757. package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +2 -2
  758. package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +2 -2
  759. package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +3 -3
  760. package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +2 -2
  761. package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +24 -2
  762. package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +2 -2
  763. package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +2 -2
  764. package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +2 -2
  765. package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +2 -2
  766. package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +2 -2
  767. package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +2 -2
  768. package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +2 -2
  769. package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +2 -2
  770. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +2 -2
  771. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +2 -2
  772. package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +2 -2
  773. package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +2 -2
  774. package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +2 -2
  775. package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +2 -2
  776. package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +2 -2
  777. package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +2 -2
  778. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +2 -2
  779. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +2 -2
  780. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +2 -2
  781. package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +2 -2
  782. package/project/.sdk/tm/rust/feature/secrets/plugins/minivault/format.rs +425 -0
  783. package/project/.sdk/tm/rust/feature/secrets/plugins/minivault.rs +1076 -0
  784. package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +2 -2
  785. package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +2 -2
  786. package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +2 -2
  787. package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +2 -2
  788. package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +30 -4
  789. package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +2 -2
  790. package/project/.sdk/tm/rust/feature/validate.rs +387 -0
  791. package/project/.sdk/tm/rust/src/feature/validate/.gitkeep +0 -0
  792. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  793. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  794. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  795. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  796. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  797. package/project/.sdk/tm/rust/utility/make_options.rs +12 -63
  798. package/project/.sdk/tm/rust/utility/make_spec.rs +10 -3
  799. package/project/.sdk/tm/scala/feature/ValidateFeature.scala +286 -0
  800. package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +2 -2
  801. package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +2 -2
  802. package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +2 -2
  803. package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +2 -2
  804. package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +3 -3
  805. package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +2 -2
  806. package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +19 -2
  807. package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +2 -2
  808. package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +2 -2
  809. package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +2 -2
  810. package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +2 -2
  811. package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +2 -2
  812. package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +2 -2
  813. package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +2 -2
  814. package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +2 -2
  815. package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +2 -2
  816. package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +2 -2
  817. package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +2 -2
  818. package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +3 -2
  819. package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +2 -2
  820. package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +13 -2
  821. package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +11 -2
  822. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +2 -2
  823. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +2 -2
  824. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +2 -2
  825. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +2 -2
  826. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +2 -2
  827. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +2 -2
  828. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +2 -2
  829. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +2 -2
  830. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Minivault.scala +979 -0
  831. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +2 -2
  832. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +2 -2
  833. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +2 -2
  834. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  835. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  836. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  837. package/project/.sdk/tm/scala/src/feature/validate/.gitkeep +0 -0
  838. package/project/.sdk/tm/scala/utility/Make.scala +12 -41
  839. package/project/.sdk/tm/scala/utility/MakeSpec.scala +8 -1
  840. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ValidateFeature.swift +273 -0
  841. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +2 -2
  842. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +2 -2
  843. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +2 -2
  844. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +2 -2
  845. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +2 -2
  846. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +3 -3
  847. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +2 -2
  848. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +17 -2
  849. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +2 -2
  850. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +2 -2
  851. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +2 -2
  852. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +2 -2
  853. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +2 -2
  854. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +2 -2
  855. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +2 -2
  856. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +2 -2
  857. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +2 -2
  858. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +2 -2
  859. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +2 -2
  860. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +2 -2
  861. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +2 -2
  862. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +2 -2
  863. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +2 -2
  864. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +2 -2
  865. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +2 -2
  866. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +2 -2
  867. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +2 -2
  868. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +2 -2
  869. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +2 -2
  870. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +2 -2
  871. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +2 -2
  872. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +2 -2
  873. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +2 -2
  874. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +2 -2
  875. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Make.swift +9 -3
  876. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +12 -87
  877. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +3 -3
  878. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  879. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  880. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  881. package/project/.sdk/tm/swift/src/feature/validate/.gitkeep +0 -0
  882. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  883. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  884. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  885. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  886. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  887. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +13 -2
  888. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  889. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  890. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +27 -1
  891. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  892. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  893. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  894. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  895. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  896. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  897. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  898. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  899. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  900. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  901. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  902. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  903. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  904. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  905. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  906. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  907. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  908. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/minivault.ts +1034 -0
  909. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  910. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  911. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  912. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  913. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +2 -1
  914. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  915. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  916. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  917. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  918. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +11 -1
  919. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1 -1
  920. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  921. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  922. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  923. package/project/.sdk/tm/zig/core/utility.zig +20 -44
  924. package/project/.sdk/tm/zig/feature/secrets/plugin/capability.zig +2 -2
  925. package/project/.sdk/tm/zig/feature/secrets/plugin/catalog.zig +2 -2
  926. package/project/.sdk/tm/zig/feature/secrets/plugin/config.zig +2 -2
  927. package/project/.sdk/tm/zig/feature/secrets/plugin/depend.zig +2 -2
  928. package/project/.sdk/tm/zig/feature/secrets/plugin/env.zig +2 -2
  929. package/project/.sdk/tm/zig/feature/secrets/plugin/export.zig +3 -3
  930. package/project/.sdk/tm/zig/feature/secrets/plugin/graph.zig +2 -2
  931. package/project/.sdk/tm/zig/feature/secrets/plugin/host.zig +18 -2
  932. package/project/.sdk/tm/zig/feature/secrets/plugin/inst.zig +2 -2
  933. package/project/.sdk/tm/zig/feature/secrets/plugin/order.zig +2 -2
  934. package/project/.sdk/tm/zig/feature/secrets/plugin/plugin.zig +2 -2
  935. package/project/.sdk/tm/zig/feature/secrets/plugin/point.zig +2 -2
  936. package/project/.sdk/tm/zig/feature/secrets/plugin/ref.zig +2 -2
  937. package/project/.sdk/tm/zig/feature/secrets/plugin/resolve.zig +2 -2
  938. package/project/.sdk/tm/zig/feature/secrets/plugin/types.zig +2 -2
  939. package/project/.sdk/tm/zig/feature/secrets/plugin/value.zig +2 -2
  940. package/project/.sdk/tm/zig/feature/secrets/plugin/version.zig +2 -2
  941. package/project/.sdk/tm/zig/feature/secrets/plugins/aws.zig +2 -2
  942. package/project/.sdk/tm/zig/feature/secrets/plugins/azuresecrets.zig +2 -2
  943. package/project/.sdk/tm/zig/feature/secrets/plugins/boru.zig +2 -2
  944. package/project/.sdk/tm/zig/feature/secrets/plugins/doppler.zig +2 -2
  945. package/project/.sdk/tm/zig/feature/secrets/plugins/gcpsecrets.zig +2 -2
  946. package/project/.sdk/tm/zig/feature/secrets/plugins/hashicorp.zig +2 -2
  947. package/project/.sdk/tm/zig/feature/secrets/plugins/httpjson.zig +2 -2
  948. package/project/.sdk/tm/zig/feature/secrets/plugins/infisical.zig +2 -2
  949. package/project/.sdk/tm/zig/feature/secrets/plugins/minivault.zig +1930 -0
  950. package/project/.sdk/tm/zig/feature/secrets/plugins/onepassword.zig +2 -2
  951. package/project/.sdk/tm/zig/feature/secrets/plugins/secretspec.zig +2 -2
  952. package/project/.sdk/tm/zig/feature/secrets/plugins/sigv4.zig +2 -2
  953. package/project/.sdk/tm/zig/feature/secrets/sekreto/addr.zig +2 -2
  954. package/project/.sdk/tm/zig/feature/secrets/sekreto/builtins.zig +3 -2
  955. package/project/.sdk/tm/zig/feature/secrets/sekreto/provider.zig +19 -2
  956. package/project/.sdk/tm/zig/feature/secrets/sekreto/sekreto.zig +2 -2
  957. package/project/.sdk/tm/zig/feature/validate.zig +293 -0
  958. package/project/.sdk/tm/zig/src/feature/validate/.gitkeep +0 -0
  959. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +2 -2
  960. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +2 -2
  961. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +2 -2
  962. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +2 -2
  963. package/project/sdkgen-package.json +1 -1
  964. package/src/helpers/applicability.ts +11 -6
  965. package/src/helpers/collectDeps.ts +30 -5
  966. package/src/helpers/naming.ts +2 -2
@@ -0,0 +1,1227 @@
1
+ -- VENDORED: @voxgig/sekreto sdk-20260917-1242-0 (lua/src/sekreto/plugins/minivault.lua)
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
+ -- A mini vault: every secret a project owns, encrypted, in ONE FILE.
5
+ --
6
+ -- The store to reach for before there is a vault server. There is
7
+ -- nothing to run and nothing to reach over a socket - the whole store is
8
+ -- a single binary file - and the same chain that reads it in development
9
+ -- reads HashiCorp or AWS in production by changing config, which is the
10
+ -- reason sekreto exists.
11
+ --
12
+ -- A PLUGIN, not a built-in: this kind needs crypto, which is the line the
13
+ -- four built-in kinds stay behind. Lua 5.4's standard library has no
14
+ -- cryptography at all and the no-new-package rule stands, so the four
15
+ -- primitives come from the OpenSSL this port already links, through
16
+ -- `native/sekretovault.c` - a LOADABLE MODULE rather than a child
17
+ -- process, for the reason its header gives: a vault `list` over a hundred
18
+ -- secrets is a hundred AEAD opens, and a hundred spawns is not a store
19
+ -- anybody would use.
20
+ --
21
+ -- THE KEY DECIDES WHAT THE VAULT HOLDS. A master key reads and writes
22
+ -- every name and mints restricted keys. A restricted key reads the names
23
+ -- it was granted and CANNOT DERIVE ANY OTHER - the restriction is the
24
+ -- cryptography rather than a check this code performs, so a copy of the
25
+ -- file plus a restricted passphrase yields exactly what was granted and
26
+ -- nothing else. What that does and does not protect is set out in DOCS.md
27
+ -- under "What the mini vault protects".
28
+ --
29
+ -- THE FILE FORMAT, which is the contract between the ports:
30
+ --
31
+ -- magic 4 'SKMV'
32
+ -- version 1 FORMAT
33
+ -- kdf 1 1 = PBKDF2-HMAC-SHA256
34
+ -- cipher 1 1 = AES-256-GCM
35
+ -- reserved 1 0
36
+ -- keycount 4 uint32
37
+ -- per key:
38
+ -- id 1 + bytes the key id, PLAINTEXT
39
+ -- salt 1 + bytes
40
+ -- iters 4 PBKDF2 rounds for this key
41
+ -- ring 1 + iv, 4 + bytes sealed under the passphrase
42
+ -- meta 1 + iv, 4 + bytes sealed under the vault's meta key
43
+ -- entrycount 4 uint32
44
+ -- per entry:
45
+ -- id 1 + bytes the blinded lookup id
46
+ -- name 1 + iv, 4 + bytes sealed under the vault's name key
47
+ -- value 1 + iv, 4 + bytes sealed under that secret's own key
48
+ --
49
+ -- Integers are big-endian and every length precedes its bytes, so the
50
+ -- file is written with the same two primitives it is read with.
51
+ --
52
+ -- NOTHING OUTSIDE A KEY RECORD IS PLAINTEXT. Secret names are sealed, and
53
+ -- an entry is addressed by a blinded id derived from its own key, so a
54
+ -- restricted key finds what it was granted without the file ever naming
55
+ -- the rest. What the file does show anyone is the key ids and how many
56
+ -- secrets there are.
57
+ --
58
+ -- A port of typescript/plugins/minivault.ts, which is canonical. The
59
+ -- bytes are pinned by the vaults in test/fixture rather than left to
60
+ -- agreement between implementations.
61
+
62
+ local err = require('feature.secrets.sekreto.err')
63
+ local name = require('feature.secrets.sekreto.name')
64
+ local providers = require('feature.secrets.sekreto.providers')
65
+ local json = require('feature.secrets.sekreto.plugins.json')
66
+
67
+ local fail = err.fail
68
+ local checkname = name.checkname
69
+
70
+ local M = {}
71
+
72
+ -- ------------------------------------------------------- the primitives
73
+
74
+ --- Where the crypto module is, worked out from THIS FILE'S OWN PATH
75
+ --- rather than from the working directory or `package.cpath`: the CLI is
76
+ --- run from an empty directory with the environment wiped, exactly as
77
+ --- `net.lua` finds the transport helper.
78
+ local function vaultlib()
79
+ local source = debug.getinfo(1, 'S').source
80
+
81
+ if '@' == source:sub(1, 1) then
82
+ local dir = source:sub(2):match('^(.*)/feature/secrets/sekreto/plugins/minivault%.lua$')
83
+ if nil ~= dir then
84
+ return dir .. '/feature/secrets/native/sekretovault.so'
85
+ end
86
+ end
87
+
88
+ return 'feature/secrets/native/sekretovault.so'
89
+ end
90
+
91
+ M.VAULTLIB = vaultlib()
92
+
93
+ --- Loaded on first use, not at require time: a consumer that requires
94
+ --- this module and never builds a chain must not be stopped by a missing
95
+ --- `.so`, and the refusal when there IS one names what to build.
96
+ local loaded = nil
97
+
98
+ local function native()
99
+ if nil ~= loaded then
100
+ return loaded
101
+ end
102
+
103
+ local open = package.loadlib(M.VAULTLIB, 'luaopen_sekretovault')
104
+ if nil == open then
105
+ fail('sekreto: minivault: the vault crypto module is missing (is '
106
+ .. M.VAULTLIB .. ' built?)')
107
+ end
108
+
109
+ loaded = open()
110
+
111
+ return loaded
112
+ end
113
+
114
+ -- ------------------------------------------------------------ the format
115
+
116
+ local MAGIC = 'SKMV'
117
+ local FORMAT = 1
118
+ local KDF_PBKDF2 = 1
119
+ local CIPHER_AESGCM = 1
120
+
121
+ --- AES-256-GCM: 32-byte keys, 12-byte nonces, 16-byte tags.
122
+ local KEYLEN = 32
123
+ local IVLEN = 12
124
+ local TAGLEN = 16
125
+ local SALTLEN = 16
126
+
127
+ --- The PBKDF2-HMAC-SHA256 round count when a caller names none.
128
+ M.ITERATIONS = 210000
129
+
130
+ --- The key id a vault gets when a caller names none.
131
+ M.MASTERKEY = 'master'
132
+
133
+ --- The export key the vault API is published under, beside the `provider`
134
+ --- key every kind publishes.
135
+ M.VAULT_EXPORT = 'vault'
136
+
137
+ -- Additional authenticated data. Every blob is bound to its PLACE in the
138
+ -- file, so no ciphertext can be moved: a restricted key's ring cannot be
139
+ -- relabelled as the master's, and one secret's value cannot be served
140
+ -- under a name it was never written for.
141
+ local AAD_RING = 'skmv1:ring:'
142
+ local AAD_META = 'skmv1:meta:'
143
+ local AAD_NAME = 'skmv1:name'
144
+ local AAD_SECRET = 'skmv1:secret:'
145
+
146
+ -- Everything a master reaches is derived from the root key, so rotating
147
+ -- is one new random value rather than a re-wrap of each part.
148
+ local LABEL_NAMES = 'skmv1:names'
149
+ local LABEL_META = 'skmv1:meta'
150
+ local LABEL_ID = 'skmv1:id'
151
+
152
+ --- The largest key id the format can record.
153
+ ---
154
+ --- A length is written in ONE byte. A longer id wrapped that byte and the
155
+ --- writer then appended the whole thing, so every field after it shifted:
156
+ --- a grant with a 300-character id replaced a working vault with an
157
+ --- unreadable one, and said nothing. Checked where an id is ACCEPTED, so
158
+ --- the refusal names the id rather than the file.
159
+ local IDMAX = 255
160
+
161
+ local function mvfail(why)
162
+ fail('sekreto: minivault: ' .. why)
163
+ end
164
+
165
+ local function checkid(id, what)
166
+ if nil == id or '' == id then
167
+ mvfail(what)
168
+ end
169
+ if IDMAX < #id then
170
+ mvfail('key id is longer than ' .. IDMAX .. ' bytes: ' .. id:sub(1, 32) .. '...')
171
+ end
172
+ return id
173
+ end
174
+
175
+ -- ---------------------------------------------------------------- keys
176
+
177
+ local function mac(key, text)
178
+ return native().hmac(key, text)
179
+ end
180
+
181
+ --- The key-encryption key a passphrase unwraps a ring with.
182
+ ---
183
+ --- A round count below one is refused in the module, which is what a
184
+ --- damaged or hostile file records to make the derivation free.
185
+ local function kek(passphrase, salt, iters)
186
+ local ok, got = pcall(function() return native().pbkdf2(passphrase, salt, iters) end)
187
+ if not ok then
188
+ mvfail('unusable round count: ' .. tostring(iters))
189
+ end
190
+ return got
191
+ end
192
+
193
+ --- The key one named secret's value is encrypted with.
194
+ ---
195
+ --- DERIVED, never stored, for a master: it holds the root key and so
196
+ --- reaches every name, including ones written after it was made. A
197
+ --- restricted key holds the derived keys it was granted and nothing that
198
+ --- produces another, so every other name is ciphertext to it in exactly
199
+ --- the way it is to a stranger.
200
+ local function secretkey(root, secret)
201
+ return mac(root, AAD_SECRET .. secret)
202
+ end
203
+
204
+ --- Where a secret lives in the file, derived from its own key so that
205
+ --- finding it needs no plaintext name. One-way: an id yields nothing
206
+ --- about the key that produced it.
207
+ local function entryid(key)
208
+ return mac(key, LABEL_ID)
209
+ end
210
+
211
+ local function random(len)
212
+ local ok, got = pcall(function() return native().random(len) end)
213
+ if not ok then
214
+ mvfail('no randomness available')
215
+ end
216
+ return got
217
+ end
218
+
219
+ -- -------------------------------------------------------------- sealing
220
+
221
+ --- The tag rides at the END of the blob, which is where every other
222
+ --- port's AEAD leaves it and therefore what the format records.
223
+ local function seal(key, plain, aad)
224
+ if KEYLEN ~= #key then
225
+ mvfail('bad key')
226
+ end
227
+
228
+ local iv = random(IVLEN)
229
+ local ok, blob = pcall(function() return native().seal(key, iv, plain, aad) end)
230
+
231
+ if not ok then
232
+ mvfail('cannot seal')
233
+ end
234
+
235
+ return { iv = iv, blob = blob }
236
+ end
237
+
238
+ --- The plaintext, or a refusal. A GCM tag that fails to verify is the
239
+ --- only evidence there is, and it cannot tell a wrong passphrase from a
240
+ --- damaged file, so `what` names the attempt and the message admits both.
241
+ local function unseal(key, box, aad, what)
242
+ if TAGLEN > #box.blob or IVLEN ~= #box.iv then
243
+ mvfail(what .. ': truncated')
244
+ end
245
+ if KEYLEN ~= #key then
246
+ mvfail('bad key')
247
+ end
248
+
249
+ local ok, plain = pcall(function() return native().unseal(key, box.iv, box.blob, aad) end)
250
+
251
+ if not ok or nil == plain then
252
+ mvfail(what)
253
+ end
254
+
255
+ return plain
256
+ end
257
+
258
+ local function sameseal(left, right)
259
+ return left.iv == right.iv and left.blob == right.blob
260
+ end
261
+
262
+ -- --------------------------------------------------------------- base64
263
+
264
+ -- Here rather than in `support.lua`, which the HTTP stores share:
265
+ -- requiring that module would load the transport and the TLS binding
266
+ -- behind it into a program whose only store opens nothing, which is the
267
+ -- cost the core/plugin split exists to remove.
268
+ local B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
269
+
270
+ local function b64(raw)
271
+ local out = {}
272
+
273
+ for at = 1, #raw, 3 do
274
+ local left = #raw - at + 1
275
+ local a = raw:byte(at)
276
+ local b = 1 < left and raw:byte(at + 1) or 0
277
+ local c = 2 < left and raw:byte(at + 2) or 0
278
+ local triple = a * 65536 + b * 256 + c
279
+
280
+ out[#out + 1] = B64:sub((triple >> 18 & 0x3f) + 1, (triple >> 18 & 0x3f) + 1)
281
+ out[#out + 1] = B64:sub((triple >> 12 & 0x3f) + 1, (triple >> 12 & 0x3f) + 1)
282
+ out[#out + 1] = 1 < left and B64:sub((triple >> 6 & 0x3f) + 1, (triple >> 6 & 0x3f) + 1) or '='
283
+ out[#out + 1] = 2 < left and B64:sub((triple & 0x3f) + 1, (triple & 0x3f) + 1) or '='
284
+ end
285
+
286
+ return table.concat(out)
287
+ end
288
+
289
+ --- STRICT. A lenient decoder hands back plausible bytes for a corrupted
290
+ --- payload, and those bytes are then used AS A KEY.
291
+ local function unb64(text, what)
292
+ if 'string' ~= type(text) or '' == text or 0 ~= #text % 4 then
293
+ mvfail('missing ' .. what)
294
+ end
295
+
296
+ local body, pad = text:match('^([^=]*)(=*)$')
297
+ if nil == body or 2 < #pad then
298
+ mvfail('missing ' .. what)
299
+ end
300
+
301
+ local out = {}
302
+ local held = 0
303
+ local bits = 0
304
+
305
+ for at = 1, #body do
306
+ local sextet = B64:find(body:sub(at, at), 1, true)
307
+ if nil == sextet then
308
+ mvfail('missing ' .. what)
309
+ end
310
+
311
+ held = (held << 6) | (sextet - 1)
312
+ bits = bits + 6
313
+
314
+ if 8 <= bits then
315
+ bits = bits - 8
316
+ out[#out + 1] = string.char(held >> bits & 0xff)
317
+ end
318
+ end
319
+
320
+ return table.concat(out)
321
+ end
322
+
323
+ -- ------------------------------------------------------------- the file
324
+
325
+ --- A cursor, so that every length check is in one place: a truncated
326
+ --- vault is refused rather than read as a short one.
327
+ local Reader = {}
328
+ Reader.__index = Reader
329
+
330
+ local function reader(raw)
331
+ return setmetatable({ raw = raw, at = 1 }, Reader)
332
+ end
333
+
334
+ --- Reads `len` bytes, or refuses.
335
+ ---
336
+ --- The bound is checked AGAINST WHAT IS LEFT, never by adding the length
337
+ --- to the cursor. Lua's integers are 64-bit so the sum cannot wrap here,
338
+ --- but the check reads the same in every port and is the one that is
339
+ --- right everywhere.
340
+ function Reader:take(len)
341
+ if 0 > len or #self.raw - self.at + 1 < len then
342
+ mvfail('the vault file is truncated')
343
+ end
344
+
345
+ local out = self.raw:sub(self.at, self.at + len - 1)
346
+ self.at = self.at + len
347
+
348
+ return out
349
+ end
350
+
351
+ function Reader:u8()
352
+ return self:take(1):byte(1)
353
+ end
354
+
355
+ function Reader:u32()
356
+ local four = self:take(4)
357
+ return four:byte(1) * 16777216 + four:byte(2) * 65536 + four:byte(3) * 256 + four:byte(4)
358
+ end
359
+
360
+ function Reader:small()
361
+ return self:take(self:u8())
362
+ end
363
+
364
+ function Reader:large()
365
+ return self:take(self:u32())
366
+ end
367
+
368
+ function Reader:sealed()
369
+ -- The iv is read before the blob, and the two statements keep that
370
+ -- order; a table constructor would not, because Lua leaves the order
371
+ -- its fields are evaluated in unspecified.
372
+ local iv = self:small()
373
+ return { iv = iv, blob = self:large() }
374
+ end
375
+
376
+ function Reader:left()
377
+ return #self.raw - self.at + 1
378
+ end
379
+
380
+ local function readfile(raw)
381
+ local read = reader(raw)
382
+
383
+ if MAGIC ~= read:take(4) then
384
+ mvfail('not a vault file')
385
+ end
386
+
387
+ local version = read:u8()
388
+ if FORMAT ~= version then
389
+ mvfail('unsupported format version: ' .. version)
390
+ end
391
+
392
+ local kdf = read:u8()
393
+ local cipher = read:u8()
394
+ if KDF_PBKDF2 ~= kdf or CIPHER_AESGCM ~= cipher then
395
+ mvfail('unsupported kdf or cipher: ' .. kdf .. '/' .. cipher)
396
+ end
397
+ read:u8()
398
+
399
+ local file = { keys = {}, entries = {} }
400
+
401
+ -- A COUNT IS BOUNDED BY WHAT IS LEFT. Each record carries at least a
402
+ -- few bytes, so a file claiming four billion of them is damaged; the
403
+ -- loop would find that out one truncation at a time.
404
+ local keycount = read:u32()
405
+ if read:left() < keycount then
406
+ mvfail('the vault file is truncated')
407
+ end
408
+ for _ = 1, keycount do
409
+ local id = read:small()
410
+ local salt = read:small()
411
+ local iters = read:u32()
412
+ local ring = read:sealed()
413
+ file.keys[#file.keys + 1] =
414
+ { id = id, salt = salt, iters = iters, ring = ring, meta = read:sealed() }
415
+ end
416
+
417
+ local entrycount = read:u32()
418
+ if read:left() < entrycount then
419
+ mvfail('the vault file is truncated')
420
+ end
421
+ for _ = 1, entrycount do
422
+ local id = read:small()
423
+ local secretname = read:sealed()
424
+ file.entries[#file.entries + 1] =
425
+ { id = id, name = secretname, value = read:sealed() }
426
+ end
427
+
428
+ if read.at ~= #raw + 1 then
429
+ mvfail('the vault file has trailing bytes')
430
+ end
431
+
432
+ return file
433
+ end
434
+
435
+ local function keyof(file, id)
436
+ for _, record in ipairs(file.keys) do
437
+ if id == record.id then
438
+ return record
439
+ end
440
+ end
441
+ return nil
442
+ end
443
+
444
+ local function entryof(file, id)
445
+ for _, record in ipairs(file.entries) do
446
+ if id == record.id then
447
+ return record
448
+ end
449
+ end
450
+ return nil
451
+ end
452
+
453
+ local function putu32(value)
454
+ return string.char(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff)
455
+ end
456
+
457
+ local function putsmall(value)
458
+ return string.char(#value & 0xff) .. value
459
+ end
460
+
461
+ local function putlarge(value)
462
+ return putu32(#value) .. value
463
+ end
464
+
465
+ local function putsealed(box)
466
+ return putsmall(box.iv) .. putlarge(box.blob)
467
+ end
468
+
469
+ local function writefile(file)
470
+ local out = { MAGIC, string.char(FORMAT, KDF_PBKDF2, CIPHER_AESGCM, 0) }
471
+
472
+ out[#out + 1] = putu32(#file.keys)
473
+ for _, record in ipairs(file.keys) do
474
+ out[#out + 1] = putsmall(record.id)
475
+ out[#out + 1] = putsmall(record.salt)
476
+ out[#out + 1] = putu32(record.iters)
477
+ out[#out + 1] = putsealed(record.ring)
478
+ out[#out + 1] = putsealed(record.meta)
479
+ end
480
+
481
+ -- SORTED BY ID, which is a blinded value: the file therefore records
482
+ -- nothing about the order secrets were written in.
483
+ local entries = {}
484
+ for at, record in ipairs(file.entries) do
485
+ entries[at] = record
486
+ end
487
+ table.sort(entries, function(left, right) return left.id < right.id end)
488
+
489
+ out[#out + 1] = putu32(#entries)
490
+ for _, record in ipairs(entries) do
491
+ out[#out + 1] = putsmall(record.id)
492
+ out[#out + 1] = putsealed(record.name)
493
+ out[#out + 1] = putsealed(record.value)
494
+ end
495
+
496
+ return table.concat(out)
497
+ end
498
+
499
+ -- ----------------------------------------------------- the file on disk
500
+
501
+ --- Read as BINARY, byte for byte: a vault is full of NULs and of bytes no
502
+ --- encoding claims.
503
+ local function slurp(path)
504
+ local handle = io.open(path, 'rb')
505
+ if nil == handle then
506
+ return nil
507
+ end
508
+
509
+ local raw = handle:read('a')
510
+ handle:close()
511
+
512
+ return raw
513
+ end
514
+
515
+ --- Owner-only, because a vault file is the whole store.
516
+ ---
517
+ --- LUA CANNOT ASK FOR AN EXCLUSIVE CREATE, and it cannot chmod: `io.open`
518
+ --- has `w` and nothing else, and the mode is the process umask's to
519
+ --- decide. So the two guarantees the other ports get from `O_EXCL | 0600`
520
+ --- are arranged differently here: `putnew` looks first and refuses a file
521
+ --- that is there - a check-then-write that two processes could both pass,
522
+ --- which is stated rather than hidden - and the file is created under the
523
+ --- umask a service normally runs with. A deployment that needs 0600 on a
524
+ --- shared host sets its umask, and the port says so rather than implying
525
+ --- a protection it cannot give.
526
+ local function spill(path, raw)
527
+ local handle = io.open(path, 'wb')
528
+ if nil == handle then
529
+ mvfail('cannot write ' .. path)
530
+ end
531
+
532
+ local ok = handle:write(raw)
533
+ handle:close()
534
+
535
+ if not ok then
536
+ os.remove(path)
537
+ mvfail('cannot write ' .. path)
538
+ end
539
+ end
540
+
541
+ local function hex(raw)
542
+ local out = {}
543
+ for at = 1, #raw do
544
+ out[at] = string.format('%02x', raw:byte(at))
545
+ end
546
+ return table.concat(out)
547
+ end
548
+
549
+ -- ------------------------------------------------------------ the vault
550
+
551
+ -- A MASTER'S ring holds the root and no grants; a RESTRICTED key's holds
552
+ -- grants and no root, even when it was granted nothing. That asymmetry is
553
+ -- the format rather than a saving: a ring with a root reaches every name
554
+ -- there will ever be, so a grant list beside it would be a second answer
555
+ -- to the same question.
556
+ local function masterring(root)
557
+ return json.stringify(json.obj({
558
+ { 'v', FORMAT },
559
+ { 'write', true },
560
+ { 'root', b64(root) },
561
+ }))
562
+ end
563
+
564
+ local function grantring(write, grants)
565
+ local held = {}
566
+ for _, pair in ipairs(grants) do
567
+ held[#held + 1] = { pair[1], b64(pair[2]) }
568
+ end
569
+
570
+ return json.stringify(json.obj({
571
+ { 'v', FORMAT },
572
+ { 'write', write },
573
+ { 'grants', json.obj(held) },
574
+ }))
575
+ end
576
+
577
+ local function metaof(master, write, names)
578
+ return json.stringify(json.obj({
579
+ { 'v', FORMAT },
580
+ { 'master', master },
581
+ { 'write', write },
582
+ -- An ARRAY here and an OBJECT in the ring, which is the format and
583
+ -- not an accident: the ring holds a key per name, and the record
584
+ -- holds only the names.
585
+ { 'grants', json.arr(names) },
586
+ }))
587
+ end
588
+
589
+ local function sealkey(root, id, passphrase, iters, ring, meta)
590
+ local salt = random(SALTLEN)
591
+
592
+ return {
593
+ id = id,
594
+ salt = salt,
595
+ iters = iters,
596
+ ring = seal(kek(passphrase, salt, iters), ring, AAD_RING .. id),
597
+ meta = seal(mac(root, LABEL_META), meta, AAD_META .. id),
598
+ }
599
+ end
600
+
601
+ --- The one key record a new or rotated vault starts with: a master
602
+ --- holding the root, granted nothing because it needs nothing.
603
+ local function masterrecord(root, id, passphrase, iters)
604
+ return sealkey(root, id, passphrase, iters, masterring(root), metaof(true, true, {}))
605
+ end
606
+
607
+ local function newvault(id, passphrase, iters)
608
+ return { keys = { masterrecord(random(KEYLEN), id, passphrase, iters) }, entries = {} }
609
+ end
610
+
611
+ --- Writes a vault file that is not there yet, and REFUSES one that is.
612
+ ---
613
+ --- A LOOK AND THEN A WRITE, which is two steps: see `spill` for why this
614
+ --- port cannot make it one. Two processes racing to create the same vault
615
+ --- can therefore both pass the look, and the second overwrites the first;
616
+ --- every other port refuses that in one syscall.
617
+ local function putnew(path, made)
618
+ if nil ~= slurp(path) then
619
+ mvfail('vault file already exists: ' .. path)
620
+ end
621
+
622
+ spill(path, writefile(made))
623
+ end
624
+
625
+ --- A handle on one vault file, opened as ONE key.
626
+ ---
627
+ --- Every method answers as that key: `list` shows the names it may read,
628
+ --- `get` answers for those and misses on the rest, and the master-only
629
+ --- methods refuse for any other key. Nothing is read or derived until the
630
+ --- first call that needs the file, so putting a vault in a chain costs no
631
+ --- key derivation until a secret is actually wanted.
632
+ local Vault = {}
633
+ Vault.__index = Vault
634
+
635
+ function Vault:file()
636
+ return self.path
637
+ end
638
+
639
+ function Vault:key()
640
+ return self.keyid
641
+ end
642
+
643
+ --- Forget the derived keys. The next call opens again.
644
+ function Vault:close()
645
+ self.opened = nil
646
+ end
647
+
648
+ --- Replaces the file rather than editing it in place. The rename is what
649
+ --- makes a concurrent reader see either the old file or the new one, so a
650
+ --- write interrupted halfway leaves a vault rather than wreckage.
651
+ ---
652
+ --- THE TEMPORARY IS RANDOM, though it cannot be exclusive here: see
653
+ --- `spill`. `<vault>.<pid>.tmp` is a name anyone can predict, and the
654
+ --- random suffix is what stops that and what stops two writers colliding.
655
+ function Vault:save(made)
656
+ local temp = self.path .. '.' .. hex(random(8)) .. '.tmp'
657
+
658
+ spill(temp, writefile(made))
659
+
660
+ local ok = os.rename(temp, self.path)
661
+ if not ok then
662
+ -- The vault is unchanged either way, and the write error is what the
663
+ -- caller needs to be told about.
664
+ os.remove(temp)
665
+ mvfail('cannot write ' .. self.path)
666
+ end
667
+ end
668
+
669
+ function Vault:bytes()
670
+ local raw = slurp(self.path)
671
+ if nil ~= raw then
672
+ return raw
673
+ end
674
+
675
+ -- A vault is configured deliberately, with a key. Its absence is a
676
+ -- broken deployment and never "no secrets here": answering a miss would
677
+ -- send the chain on to a weaker store, which is the failure mode this
678
+ -- library most has to avoid. `create` is the caller saying the
679
+ -- opposite, in writing.
680
+ if not self.create then
681
+ mvfail('no vault file: ' .. self.path)
682
+ end
683
+
684
+ putnew(self.path, newvault(self.keyid, self.passphrase, self.iterations))
685
+
686
+ raw = slurp(self.path)
687
+ if nil == raw then
688
+ mvfail('cannot read ' .. self.path)
689
+ end
690
+
691
+ return raw
692
+ end
693
+
694
+ local function jsontrue(held, key)
695
+ return true == json.dig(held, key)
696
+ end
697
+
698
+ --- The file as this key sees it: parsed every call - it is different
699
+ --- bytes every time - while the unwrapped ring is kept, because
700
+ --- stretching a passphrase once per lookup is the cost that caching
701
+ --- exists to avoid.
702
+ function Vault:load()
703
+ local file = readfile(self:bytes())
704
+ local record = keyof(file, self.keyid)
705
+
706
+ if nil == record then
707
+ -- REVOKED, or never there. Either way this handle is finished, and
708
+ -- dropping what it derived is what stops the next call answering from
709
+ -- memory.
710
+ self:close()
711
+ mvfail('no such key: ' .. self.keyid)
712
+ end
713
+
714
+ -- The file still holds this key, and holds the SAME ring: a key revoked
715
+ -- and re-granted under another passphrase is a different key wearing
716
+ -- the id, and re-deriving is what refuses it.
717
+ if nil ~= self.opened and sameseal(self.opened.ring, record.ring) then
718
+ return file
719
+ end
720
+ self:close()
721
+
722
+ local plain = unseal(
723
+ kek(self.passphrase, record.salt, record.iters),
724
+ record.ring,
725
+ AAD_RING .. self.keyid,
726
+ 'wrong passphrase for key ' .. self.keyid .. ', or a damaged vault')
727
+
728
+ local held = json.parse(plain)
729
+ if not json.isobj(held) then
730
+ mvfail('unreadable key ring for ' .. self.keyid)
731
+ end
732
+
733
+ local grants = {}
734
+ local names = {}
735
+
736
+ local listed = json.dig(held, 'grants')
737
+ if json.isobj(listed) then
738
+ for _, key in ipairs(listed.keys) do
739
+ local text = json.asstr(listed.vals[key])
740
+ if nil == text then
741
+ mvfail('missing a granted key')
742
+ end
743
+ grants[key] = unb64(text, 'a granted key')
744
+ names[#names + 1] = key
745
+ end
746
+ end
747
+ table.sort(names)
748
+
749
+ local root = json.asstr(json.dig(held, 'root'))
750
+ if nil ~= root then
751
+ root = unb64(root, 'the root key')
752
+ end
753
+
754
+ self.opened = {
755
+ root = root,
756
+ grants = grants,
757
+ names = names,
758
+ write = nil ~= root or jsontrue(held, 'write'),
759
+ ring = record.ring,
760
+ }
761
+
762
+ return file
763
+ end
764
+
765
+ --- The root key, or a refusal naming what needed it.
766
+ function Vault:rootof(what)
767
+ if nil == self.opened.root then
768
+ mvfail(what .. ' needs a master key, and ' .. self.keyid .. ' is restricted')
769
+ end
770
+ return self.opened.root
771
+ end
772
+
773
+ --- The key for one name, or nil when this key cannot reach it.
774
+ function Vault:keyfor(secret)
775
+ if nil ~= self.opened.root then
776
+ return secretkey(self.opened.root, secret)
777
+ end
778
+ return self.opened.grants[secret]
779
+ end
780
+
781
+ --- Derive the key and read the file NOW rather than at first use.
782
+ ---
783
+ --- A COPY, built fresh. `set` asks this whether the key may write, and
784
+ --- handing back the table that answer lives in let a caller flip its own
785
+ --- permission: `local info = v:open(); info.write = true` turned a
786
+ --- read-only key into a writing one. Authorization state does not leave
787
+ --- this object.
788
+ function Vault:open()
789
+ self:load()
790
+
791
+ local grants = {}
792
+ for at, held in ipairs(self.opened.names) do
793
+ grants[at] = held
794
+ end
795
+
796
+ return {
797
+ key = self.keyid,
798
+ master = nil ~= self.opened.root,
799
+ write = self.opened.write,
800
+ grants = grants,
801
+ }
802
+ end
803
+
804
+ --- The names this key can read, sorted.
805
+ function Vault:list()
806
+ local file = self:load()
807
+ local names = {}
808
+
809
+ if nil ~= self.opened.root then
810
+ local namekey = mac(self.opened.root, LABEL_NAMES)
811
+ for _, entry in ipairs(file.entries) do
812
+ names[#names + 1] = unseal(namekey, entry.name, AAD_NAME, 'a secret name is damaged')
813
+ end
814
+ else
815
+ -- A restricted key has no name key, so it reports the grants it can
816
+ -- actually find: the vault never tells it what else is there.
817
+ for _, held in ipairs(self.opened.names) do
818
+ if nil ~= entryof(file, entryid(self.opened.grants[held])) then
819
+ names[#names + 1] = held
820
+ end
821
+ end
822
+ end
823
+
824
+ table.sort(names)
825
+
826
+ return names
827
+ end
828
+
829
+ --- The value, or nil for a MISS. A name the vault does not hold and a
830
+ --- name this key was not granted are both a miss.
831
+ function Vault:get(secret)
832
+ checkname(secret)
833
+
834
+ local file = self:load()
835
+
836
+ -- OUTSIDE THE GRANT IS A MISS, deliberately. The vault answers as the
837
+ -- key that opened it, so a name this key cannot read is a name this
838
+ -- store does not hold for this caller - the same answer a stranger's
839
+ -- vault gives, and the one that makes a restricted key in front of a
840
+ -- broader store a workable chain.
841
+ local key = self:keyfor(secret)
842
+ if nil == key then
843
+ return nil
844
+ end
845
+
846
+ local entry = entryof(file, entryid(key))
847
+ if nil == entry then
848
+ return nil
849
+ end
850
+
851
+ return unseal(key, entry.value, AAD_SECRET .. secret,
852
+ 'the value of ' .. secret .. ' is damaged')
853
+ end
854
+
855
+ function Vault:has(secret)
856
+ return nil ~= self:get(secret)
857
+ end
858
+
859
+ --- Write a value. A master writes any name; a restricted key holding
860
+ --- `write` overwrites the names it was granted, and creates none.
861
+ function Vault:set(secret, value)
862
+ checkname(secret)
863
+
864
+ local file = self:load()
865
+
866
+ if not self.opened.write then
867
+ mvfail('key ' .. self.keyid .. ' is read-only')
868
+ end
869
+
870
+ local key = self:keyfor(secret)
871
+ if nil == key then
872
+ mvfail('key ' .. self.keyid .. ' was not granted ' .. secret)
873
+ end
874
+
875
+ local box = seal(key, value, AAD_SECRET .. secret)
876
+ local id = entryid(key)
877
+ local entry = entryof(file, id)
878
+
879
+ if nil ~= entry then
880
+ entry.value = box
881
+ else
882
+ -- A NEW NAME NEEDS THE NAME KEY, which only a master holds. So a
883
+ -- restricted key with `write` updates what it was granted and cannot
884
+ -- grow the vault, which is what "restricted" has to mean for the
885
+ -- grant list to stay the whole story.
886
+ local root = self:rootof('creating the secret ' .. secret)
887
+ file.entries[#file.entries + 1] = {
888
+ id = id,
889
+ name = seal(mac(root, LABEL_NAMES), secret, AAD_NAME),
890
+ value = box,
891
+ }
892
+ end
893
+
894
+ self:save(file)
895
+ end
896
+
897
+ --- Drop a name. Master only.
898
+ function Vault:remove(secret)
899
+ checkname(secret)
900
+
901
+ local file = self:load()
902
+ local root = self:rootof('removing a secret')
903
+ local want = entryid(secretkey(root, secret))
904
+
905
+ local kept = {}
906
+ local found = false
907
+
908
+ for _, entry in ipairs(file.entries) do
909
+ if not found and want == entry.id then
910
+ found = true
911
+ else
912
+ kept[#kept + 1] = entry
913
+ end
914
+ end
915
+
916
+ if not found then
917
+ mvfail('no such secret: ' .. secret)
918
+ end
919
+
920
+ file.entries = kept
921
+
922
+ self:save(file)
923
+ end
924
+
925
+ --- Every key in the file, with what it may do. Master only.
926
+ function Vault:keys()
927
+ local file = self:load()
928
+ local metakey = mac(self:rootof('listing the keys'), LABEL_META)
929
+ local out = {}
930
+
931
+ for _, record in ipairs(file.keys) do
932
+ local info = { key = record.id, master = false, write = false, grants = {} }
933
+
934
+ -- A record written under a root key this one has replaced is still in
935
+ -- the file and still opens with its own passphrase, so it is reported
936
+ -- rather than hidden - with what it can do unknown.
937
+ local ok, plain = pcall(function()
938
+ return unseal(metakey, record.meta, AAD_META .. record.id, 'metadata')
939
+ end)
940
+
941
+ if ok then
942
+ local noted = json.parse(plain)
943
+ if not json.isobj(noted) then
944
+ mvfail('unreadable metadata for key ' .. record.id)
945
+ end
946
+
947
+ info.master = jsontrue(noted, 'master')
948
+ info.write = jsontrue(noted, 'write')
949
+
950
+ local listed = json.dig(noted, 'grants')
951
+ if json.isarr(listed) then
952
+ for _, held in ipairs(listed.items) do
953
+ if 'string' == type(held) then
954
+ info.grants[#info.grants + 1] = held
955
+ end
956
+ end
957
+ end
958
+ table.sort(info.grants)
959
+ end
960
+
961
+ out[#out + 1] = info
962
+ end
963
+
964
+ return out
965
+ end
966
+
967
+ --- Mint a restricted key. Master only.
968
+ function Vault:grant(spec)
969
+ local file = self:load()
970
+ local root = self:rootof('granting a key')
971
+ local want = spec or {}
972
+
973
+ checkid(want.key, 'a grant needs a key id')
974
+ if nil == want.passphrase or '' == want.passphrase then
975
+ mvfail('a grant needs a passphrase')
976
+ end
977
+ if nil ~= keyof(file, want.key) then
978
+ mvfail('key already exists: ' .. want.key)
979
+ end
980
+
981
+ local names = {}
982
+ for at, held in ipairs(want.names or {}) do
983
+ names[at] = held
984
+ end
985
+ table.sort(names)
986
+
987
+ local grants = {}
988
+ for at, held in ipairs(names) do
989
+ checkname(held)
990
+ grants[at] = { held, secretkey(root, held) }
991
+ end
992
+
993
+ local record = sealkey(root, want.key, want.passphrase,
994
+ (nil ~= want.iterations and 0 < want.iterations) and want.iterations or self.iterations,
995
+ grantring(true == want.write, grants),
996
+ metaof(false, true == want.write, names))
997
+
998
+ file.keys[#file.keys + 1] = record
999
+
1000
+ self:save(file)
1001
+ end
1002
+
1003
+ --- Drop a key. Master only.
1004
+ ---
1005
+ --- Anyone who already copied the file keeps whatever that key could read,
1006
+ --- so revoking bars future reads of the LIVE file and `rotate` is what
1007
+ --- takes a secret back.
1008
+ function Vault:revoke(id)
1009
+ local file = self:load()
1010
+ self:rootof('revoking a key')
1011
+
1012
+ if id == self.keyid then
1013
+ mvfail('a key cannot revoke itself: ' .. id)
1014
+ end
1015
+ if nil == keyof(file, id) then
1016
+ mvfail('no such key: ' .. tostring(id))
1017
+ end
1018
+
1019
+ local kept = {}
1020
+ for _, record in ipairs(file.keys) do
1021
+ if id ~= record.id then
1022
+ kept[#kept + 1] = record
1023
+ end
1024
+ end
1025
+ file.keys = kept
1026
+
1027
+ self:save(file)
1028
+ end
1029
+
1030
+ --- Take a new root key, re-encrypt every value under it, and DROP EVERY
1031
+ --- OTHER KEY. Master only.
1032
+ ---
1033
+ --- The other keys go because they must: their rings are sealed under
1034
+ --- passphrases this process does not have, so there is no way to hand
1035
+ --- them keys they can unwrap. Re-grant afterwards.
1036
+ function Vault:rotate()
1037
+ local file = self:load()
1038
+ local oldroot = self:rootof('rotating the vault')
1039
+ local iters = keyof(file, self.keyid).iters
1040
+
1041
+ -- Read everything out under the old root before anything changes: once
1042
+ -- the root is replaced the old derived keys are unreachable.
1043
+ local oldnamekey = mac(oldroot, LABEL_NAMES)
1044
+ local held = {}
1045
+
1046
+ for _, entry in ipairs(file.entries) do
1047
+ local secret = unseal(oldnamekey, entry.name, AAD_NAME, 'a secret name is damaged')
1048
+ held[#held + 1] = {
1049
+ secret,
1050
+ unseal(secretkey(oldroot, secret), entry.value, AAD_SECRET .. secret,
1051
+ 'the value of ' .. secret .. ' is damaged'),
1052
+ }
1053
+ end
1054
+
1055
+ local root = random(KEYLEN)
1056
+ local namekey = mac(root, LABEL_NAMES)
1057
+ local entries = {}
1058
+
1059
+ for at, pair in ipairs(held) do
1060
+ local key = secretkey(root, pair[1])
1061
+ entries[at] = {
1062
+ id = entryid(key),
1063
+ name = seal(namekey, pair[1], AAD_NAME),
1064
+ value = seal(key, pair[2], AAD_SECRET .. pair[1]),
1065
+ }
1066
+ end
1067
+
1068
+ -- SAVE FIRST, adopt second. A handle holding the new root over a file
1069
+ -- that still holds the old one reads nothing and says the vault is
1070
+ -- damaged, which is the wrong story about a failed write.
1071
+ self:save({
1072
+ keys = { masterrecord(root, self.keyid, self.passphrase, iters) },
1073
+ entries = entries,
1074
+ })
1075
+
1076
+ -- Dropped rather than replaced: the next call re-derives from the file
1077
+ -- this one just wrote, which is the same rule every other change
1078
+ -- follows.
1079
+ self:close()
1080
+ end
1081
+
1082
+ -- --------------------------------------------------- opening and creating
1083
+
1084
+ --- Open a vault file as one key.
1085
+ ---
1086
+ --- The handle is LAZY. Nothing is read, and no passphrase is stretched,
1087
+ --- until a call needs the file - so a chain of ten providers costs ten
1088
+ --- tables rather than ten PBKDF2 runs.
1089
+ function M.openvault(options)
1090
+ local want = options or {}
1091
+
1092
+ if nil == want.file or '' == want.file then
1093
+ mvfail('a vault needs a file')
1094
+ end
1095
+ if nil == want.passphrase or '' == want.passphrase then
1096
+ mvfail('a vault needs a passphrase')
1097
+ end
1098
+
1099
+ local keyid = checkid(
1100
+ (nil ~= want.key and '' ~= want.key) and want.key or M.MASTERKEY,
1101
+ 'a vault needs a key id')
1102
+
1103
+ return setmetatable({
1104
+ path = want.file,
1105
+ keyid = keyid,
1106
+ passphrase = want.passphrase,
1107
+ iterations = (nil ~= want.iterations and 0 < want.iterations)
1108
+ and want.iterations or M.ITERATIONS,
1109
+ create = true == want.create,
1110
+ opened = nil,
1111
+ }, Vault)
1112
+ end
1113
+
1114
+ --- Make a vault file and answer a handle on its master key.
1115
+ ---
1116
+ --- Refuses a file that is already there: a vault is created once, and
1117
+ --- overwriting one discards every secret in it along with every key that
1118
+ --- could read them.
1119
+ function M.createvault(options)
1120
+ local vault = M.openvault(options)
1121
+
1122
+ putnew(vault.path, newvault(vault.keyid, vault.passphrase, vault.iterations))
1123
+
1124
+ return vault
1125
+ end
1126
+
1127
+ -- ------------------------------------------------------------ the provider
1128
+
1129
+ --- Reads a vault as one store in a chain.
1130
+ ---
1131
+ --- The provider is the READ half and nothing more: a chain resolves
1132
+ --- secrets, and writing one is a deliberate act with an API of its own.
1133
+ --- That API is the same handle, reached with `vaultof` off a chain or
1134
+ --- built directly with `openvault`.
1135
+ local function minivaultprovider(vault)
1136
+ return {
1137
+ lookup = function(secret) return vault:get(secret) end,
1138
+ describe = function() return 'minivault:' .. vault:file() end,
1139
+ }
1140
+ end
1141
+
1142
+ --- The `minivault` provider kind, as a voxgig/plugin definition.
1143
+ ---
1144
+ --- Written out rather than built by `providerplugin`, because this
1145
+ --- definition publishes TWO exports: `provider`, the read half every kind
1146
+ --- publishes, and `vault`, the programmatic API. voxgig/plugin's exports
1147
+ --- are how a definition offers an application more than the host's own
1148
+ --- vocabulary, and a store that can only be read is half a vault.
1149
+ ---
1150
+ --- The `sekreto_error` wrapping is what `providerplugin` would have done:
1151
+ --- plugin wraps a code-less error raised in `define` as
1152
+ --- `plugin_define_failed` and keeps one that already carries a code, so a
1153
+ --- refusal of this provider's own configuration travels under
1154
+ --- `sekreto_error` and comes back out of the host as itself.
1155
+ M.minivault = {
1156
+ name = 'minivault',
1157
+ define = function(inst)
1158
+ local spec = inst:options() or {}
1159
+
1160
+ -- Configuration is refused HERE, so a mistyped chain fails at
1161
+ -- construction. Reaching the file is not configuration: the handle is
1162
+ -- lazy, and nothing is read or stretched until a lookup.
1163
+ local ok, built = pcall(M.openvault, {
1164
+ file = spec.file,
1165
+ key = spec.vaultkey,
1166
+ passphrase = spec.passphrase,
1167
+ iterations = spec.iterations,
1168
+ create = spec.create,
1169
+ })
1170
+
1171
+ if not ok then
1172
+ if err.issekretoerror(built) then
1173
+ local message = err.message(built)
1174
+ local plugin = require('plugin')
1175
+ plugin.types.fail(providers.ERROR_CODE, message,
1176
+ plugin.types.map({ ref = inst.ref, cause = message }))
1177
+ end
1178
+ error(built, 0)
1179
+ end
1180
+
1181
+ inst:export(providers.PROVIDER_EXPORT, minivaultprovider(built))
1182
+ inst:export(M.VAULT_EXPORT, built)
1183
+ end,
1184
+ }
1185
+
1186
+ --- The vault behind a store in a chain, as its programmatic API.
1187
+ ---
1188
+ --- `secrets.host` is the voxgig/plugin host the chain is made of, and a
1189
+ --- definition's exports are readable off it by ref. This is the one call
1190
+ --- that turns a store into an API, and it lives here rather than on
1191
+ --- `Sekreto` because the core knows no plugin.
1192
+ ---
1193
+ --- With no store named, the unqualified alias answers: one vault in the
1194
+ --- chain resolves whatever it is called, and two refuse rather than
1195
+ --- picking one.
1196
+ function M.vaultof(secrets, store)
1197
+ if nil == store or '' == store then
1198
+ local found = secrets.host:exports('minivault/' .. M.VAULT_EXPORT)
1199
+ if nil == found then
1200
+ mvfail('no minivault store in this chain')
1201
+ end
1202
+ return found
1203
+ end
1204
+
1205
+ -- A NAMED STORE MUST EXIST, and the alias must not stand in for it.
1206
+ -- `host:exports` falls back to the alias when the exact ref misses, so
1207
+ -- asking for `minivault` in a chain whose only vault is named `app`
1208
+ -- used to hand back the `app` vault - and then write to it. Naming a
1209
+ -- store that is not there refuses, which is the rule the whole library
1210
+ -- follows: `try` already means "may not have it", so it cannot also
1211
+ -- mean "may not exist".
1212
+ local missing = 'no minivault store named ' .. store .. ' in this chain'
1213
+ local ref = ('minivault' == store) and 'minivault' or ('minivault$' .. store)
1214
+
1215
+ if nil == secrets.host:instance(ref) then
1216
+ mvfail(missing)
1217
+ end
1218
+
1219
+ local found = secrets.host:exports(ref .. '/' .. M.VAULT_EXPORT)
1220
+ if nil == found then
1221
+ mvfail(missing)
1222
+ end
1223
+
1224
+ return found
1225
+ end
1226
+
1227
+ return M