@voxgig/sdkgen 4.20.0 → 4.22.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 (1561) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/action.js +0 -65
  3. package/dist/action/action.js.map +1 -1
  4. package/dist/action/check.js +0 -88
  5. package/dist/action/check.js.map +1 -1
  6. package/dist/action/dispatch.js +0 -27
  7. package/dist/action/dispatch.js.map +1 -1
  8. package/dist/action/doctor.d.ts +1 -0
  9. package/dist/action/doctor.js +55 -321
  10. package/dist/action/doctor.js.map +1 -1
  11. package/dist/action/edition.js +1 -87
  12. package/dist/action/edition.js.map +1 -1
  13. package/dist/action/feature.js +0 -48
  14. package/dist/action/feature.js.map +1 -1
  15. package/dist/action/kind.js +0 -132
  16. package/dist/action/kind.js.map +1 -1
  17. package/dist/action/package.js +0 -221
  18. package/dist/action/package.js.map +1 -1
  19. package/dist/action/resolve.js +0 -145
  20. package/dist/action/resolve.js.map +1 -1
  21. package/dist/action/target.js +0 -177
  22. package/dist/action/target.js.map +1 -1
  23. package/dist/cmp/AgentGuide.js +0 -7
  24. package/dist/cmp/AgentGuide.js.map +1 -1
  25. package/dist/cmp/AgentGuideContent.js +0 -24
  26. package/dist/cmp/AgentGuideContent.js.map +1 -1
  27. package/dist/cmp/AgentGuideTop.js +0 -7
  28. package/dist/cmp/AgentGuideTop.js.map +1 -1
  29. package/dist/cmp/Changelog.js +0 -14
  30. package/dist/cmp/Changelog.js.map +1 -1
  31. package/dist/cmp/Deploy.js +1 -31
  32. package/dist/cmp/Deploy.js.map +1 -1
  33. package/dist/cmp/Entity.js +0 -4
  34. package/dist/cmp/Entity.js.map +1 -1
  35. package/dist/cmp/ExternalTarget.js +0 -36
  36. package/dist/cmp/ExternalTarget.js.map +1 -1
  37. package/dist/cmp/Feature.js +0 -14
  38. package/dist/cmp/Feature.js.map +1 -1
  39. package/dist/cmp/FeatureDocs.js +0 -25
  40. package/dist/cmp/FeatureDocs.js.map +1 -1
  41. package/dist/cmp/PublishWorkflow.js +0 -60
  42. package/dist/cmp/PublishWorkflow.js.map +1 -1
  43. package/dist/cmp/ReadmeErrors.js +0 -2
  44. package/dist/cmp/ReadmeErrors.js.map +1 -1
  45. package/dist/cmp/ReadmeExplanation.js +0 -5
  46. package/dist/cmp/ReadmeExplanation.js.map +1 -1
  47. package/dist/cmp/ReadmeFeatures.js +0 -10
  48. package/dist/cmp/ReadmeFeatures.js.map +1 -1
  49. package/dist/cmp/ReadmeRefFeatures.js +0 -19
  50. package/dist/cmp/ReadmeRefFeatures.js.map +1 -1
  51. package/dist/cmp/ReadmeStation.js +0 -19
  52. package/dist/cmp/ReadmeStation.js.map +1 -1
  53. package/dist/cmp/ReadmeTop.js +0 -80
  54. package/dist/cmp/ReadmeTop.js.map +1 -1
  55. package/dist/cmp/ReadmeUnions.js +0 -15
  56. package/dist/cmp/ReadmeUnions.js.map +1 -1
  57. package/dist/cmp/Registered.js +0 -30
  58. package/dist/cmp/Registered.js.map +1 -1
  59. package/dist/cmp/Security.js +0 -2
  60. package/dist/cmp/Security.js.map +1 -1
  61. package/dist/cmp/Test.js +2 -1
  62. package/dist/cmp/Test.js.map +1 -1
  63. package/dist/cmp/TestControl.js +0 -25
  64. package/dist/cmp/TestControl.js.map +1 -1
  65. package/dist/helpers/applicability.js +0 -55
  66. package/dist/helpers/applicability.js.map +1 -1
  67. package/dist/helpers/buildIdNames.js +0 -12
  68. package/dist/helpers/buildIdNames.js.map +1 -1
  69. package/dist/helpers/canonSpec.js +0 -114
  70. package/dist/helpers/canonSpec.js.map +1 -1
  71. package/dist/helpers/canonType.js +0 -87
  72. package/dist/helpers/canonType.js.map +1 -1
  73. package/dist/helpers/collectDeps.js +22 -24
  74. package/dist/helpers/collectDeps.js.map +1 -1
  75. package/dist/helpers/definition.js +0 -29
  76. package/dist/helpers/definition.js.map +1 -1
  77. package/dist/helpers/dryrun.js +0 -8
  78. package/dist/helpers/dryrun.js.map +1 -1
  79. package/dist/helpers/featureSource.js +0 -145
  80. package/dist/helpers/featureSource.js.map +1 -1
  81. package/dist/helpers/getMatchEntries.js +0 -4
  82. package/dist/helpers/getMatchEntries.js.map +1 -1
  83. package/dist/helpers/junk.js +9 -85
  84. package/dist/helpers/junk.js.map +1 -1
  85. package/dist/helpers/manifest.js +0 -138
  86. package/dist/helpers/manifest.js.map +1 -1
  87. package/dist/helpers/modelNames.js +0 -78
  88. package/dist/helpers/modelNames.js.map +1 -1
  89. package/dist/helpers/modelcheck.js +0 -106
  90. package/dist/helpers/modelcheck.js.map +1 -1
  91. package/dist/helpers/naming.d.ts +0 -1
  92. package/dist/helpers/naming.js +2 -305
  93. package/dist/helpers/naming.js.map +1 -1
  94. package/dist/helpers/opExample.js +0 -51
  95. package/dist/helpers/opExample.js.map +1 -1
  96. package/dist/helpers/opShape.js +0 -198
  97. package/dist/helpers/opShape.js.map +1 -1
  98. package/dist/helpers/optspec.js +0 -77
  99. package/dist/helpers/optspec.js.map +1 -1
  100. package/dist/helpers/packageMeta.js +1 -200
  101. package/dist/helpers/packageMeta.js.map +1 -1
  102. package/dist/helpers/pointPath.js +0 -55
  103. package/dist/helpers/pointPath.js.map +1 -1
  104. package/dist/helpers/resolved.d.ts +6 -0
  105. package/dist/helpers/resolved.js +49 -0
  106. package/dist/helpers/resolved.js.map +1 -0
  107. package/dist/helpers/semver.js +0 -61
  108. package/dist/helpers/semver.js.map +1 -1
  109. package/dist/helpers/serverVars.js +0 -44
  110. package/dist/helpers/serverVars.js.map +1 -1
  111. package/dist/helpers/shipped.js +0 -14
  112. package/dist/helpers/shipped.js.map +1 -1
  113. package/dist/helpers/station.js +0 -32
  114. package/dist/helpers/station.js.map +1 -1
  115. package/dist/helpers/stdrep.js +0 -26
  116. package/dist/helpers/stdrep.js.map +1 -1
  117. package/dist/helpers/testPolicy.js +0 -4
  118. package/dist/helpers/testPolicy.js.map +1 -1
  119. package/dist/sdkgen.d.ts +2 -1
  120. package/dist/sdkgen.js +13 -242
  121. package/dist/sdkgen.js.map +1 -1
  122. package/dist/testkit.js +6 -266
  123. package/dist/testkit.js.map +1 -1
  124. package/dist/tsconfig.tsbuildinfo +1 -1
  125. package/dist/utility.js +0 -243
  126. package/dist/utility.js.map +1 -1
  127. package/model/sdkgen.aon +19 -450
  128. package/package.json +4 -4
  129. package/project/.sdk/model/feature/audit.aon +0 -7
  130. package/project/.sdk/model/feature/cache.aon +0 -7
  131. package/project/.sdk/model/feature/clienttrack.aon +0 -7
  132. package/project/.sdk/model/feature/cost.aon +0 -13
  133. package/project/.sdk/model/feature/debug.aon +0 -7
  134. package/project/.sdk/model/feature/idempotency.aon +0 -7
  135. package/project/.sdk/model/feature/log.aon +0 -7
  136. package/project/.sdk/model/feature/metrics.aon +0 -7
  137. package/project/.sdk/model/feature/netsim.aon +0 -10
  138. package/project/.sdk/model/feature/paging.aon +0 -7
  139. package/project/.sdk/model/feature/proxy.aon +0 -7
  140. package/project/.sdk/model/feature/ratelimit.aon +0 -7
  141. package/project/.sdk/model/feature/retry.aon +0 -7
  142. package/project/.sdk/model/feature/secrets.aon +96 -450
  143. package/project/.sdk/model/feature/streaming.aon +0 -7
  144. package/project/.sdk/model/feature/telemetry.aon +0 -7
  145. package/project/.sdk/model/feature/test.aon +1 -8
  146. package/project/.sdk/model/feature/timeout.aon +0 -7
  147. package/project/.sdk/model/feature/validate.aon +0 -31
  148. package/project/.sdk/model/target/c.aon +1 -42
  149. package/project/.sdk/model/target/clojure.aon +1 -37
  150. package/project/.sdk/model/target/cpp.aon +1 -43
  151. package/project/.sdk/model/target/csharp.aon +1 -27
  152. package/project/.sdk/model/target/elixir.aon +1 -23
  153. package/project/.sdk/model/target/go-cli.aon +0 -30
  154. package/project/.sdk/model/target/go-mcp.aon +0 -21
  155. package/project/.sdk/model/target/go.aon +1 -10
  156. package/project/.sdk/model/target/java.aon +1 -30
  157. package/project/.sdk/model/target/js.aon +2 -21
  158. package/project/.sdk/model/target/kotlin.aon +1 -32
  159. package/project/.sdk/model/target/lua.aon +1 -33
  160. package/project/.sdk/model/target/ocaml.aon +1 -65
  161. package/project/.sdk/model/target/perl.aon +1 -21
  162. package/project/.sdk/model/target/php.aon +1 -18
  163. package/project/.sdk/model/target/py-data.aon +0 -33
  164. package/project/.sdk/model/target/py.aon +1 -18
  165. package/project/.sdk/model/target/rb.aon +1 -18
  166. package/project/.sdk/model/target/rust.aon +1 -26
  167. package/project/.sdk/model/target/scala.aon +1 -75
  168. package/project/.sdk/model/target/swift.aon +1 -42
  169. package/project/.sdk/model/target/ts.aon +3 -25
  170. package/project/.sdk/model/target/zig.aon +1 -51
  171. package/project/.sdk/src/cmp/c/Config_c.ts +0 -100
  172. package/project/.sdk/src/cmp/c/EntityTypes_c.ts +0 -36
  173. package/project/.sdk/src/cmp/c/Main_c.ts +3 -44
  174. package/project/.sdk/src/cmp/c/Package_c.ts +0 -14
  175. package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +0 -85
  176. package/project/.sdk/src/cmp/c/ReadmeExamplesTest_c.ts +0 -20
  177. package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +2 -5
  178. package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +0 -2
  179. package/project/.sdk/src/cmp/c/Schema_c.ts +87 -0
  180. package/project/.sdk/src/cmp/c/utility_c.ts +0 -47
  181. package/project/.sdk/src/cmp/clojure/Config_clojure.ts +0 -63
  182. package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +0 -1
  183. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +2 -41
  184. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +0 -20
  185. package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +0 -130
  186. package/project/.sdk/src/cmp/clojure/ReadmeExamplesTest_clojure.ts +0 -16
  187. package/project/.sdk/src/cmp/clojure/ReadmeExplanation_clojure.ts +1 -0
  188. package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +2 -5
  189. package/project/.sdk/src/cmp/clojure/Schema_clojure.ts +53 -0
  190. package/project/.sdk/src/cmp/clojure/TestDirect_clojure.ts +0 -6
  191. package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +0 -10
  192. package/project/.sdk/src/cmp/clojure/Test_clojure.ts +0 -8
  193. package/project/.sdk/src/cmp/clojure/featureextra_clojure.ts +0 -34
  194. package/project/.sdk/src/cmp/clojure/utility_clojure.ts +0 -47
  195. package/project/.sdk/src/cmp/cpp/Config_cpp.ts +0 -109
  196. package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +0 -36
  197. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +3 -47
  198. package/project/.sdk/src/cmp/cpp/Package_cpp.ts +0 -14
  199. package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +0 -125
  200. package/project/.sdk/src/cmp/cpp/ReadmeExamplesTest_cpp.ts +0 -19
  201. package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +0 -7
  202. package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +2 -5
  203. package/project/.sdk/src/cmp/cpp/Schema_cpp.ts +84 -0
  204. package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +0 -3
  205. package/project/.sdk/src/cmp/cpp/Test_cpp.ts +0 -3
  206. package/project/.sdk/src/cmp/cpp/utility_cpp.ts +0 -28
  207. package/project/.sdk/src/cmp/csharp/Config_csharp.ts +0 -79
  208. package/project/.sdk/src/cmp/csharp/EntityOperation_csharp.ts +0 -3
  209. package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +0 -50
  210. package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +0 -1
  211. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +3 -24
  212. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +0 -20
  213. package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +0 -81
  214. package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +0 -1
  215. package/project/.sdk/src/cmp/csharp/ReadmeExamplesTest_csharp.ts +0 -23
  216. package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +2 -5
  217. package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +0 -2
  218. package/project/.sdk/src/cmp/csharp/Schema_csharp.ts +67 -0
  219. package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +0 -4
  220. package/project/.sdk/src/cmp/csharp/utility_csharp.ts +0 -72
  221. package/project/.sdk/src/cmp/elixir/Config_elixir.ts +0 -78
  222. package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +0 -38
  223. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +2 -40
  224. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +0 -13
  225. package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +0 -123
  226. package/project/.sdk/src/cmp/elixir/ReadmeExamplesTest_elixir.ts +0 -19
  227. package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +1 -0
  228. package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +2 -5
  229. package/project/.sdk/src/cmp/elixir/Schema_elixir.ts +64 -0
  230. package/project/.sdk/src/cmp/elixir/utility_elixir.ts +0 -34
  231. package/project/.sdk/src/cmp/go/Config_go.ts +0 -41
  232. package/project/.sdk/src/cmp/go/EntityTypes_go.ts +0 -71
  233. package/project/.sdk/src/cmp/go/Entity_go.ts +0 -5
  234. package/project/.sdk/src/cmp/go/Main_go.ts +2 -28
  235. package/project/.sdk/src/cmp/go/Package_go.ts +0 -7
  236. package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +0 -64
  237. package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +0 -5
  238. package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +0 -30
  239. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +0 -3
  240. package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +0 -7
  241. package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +0 -11
  242. package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +0 -21
  243. package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +2 -14
  244. package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +0 -9
  245. package/project/.sdk/src/cmp/go/Schema_go.ts +72 -0
  246. package/project/.sdk/src/cmp/go/TestDirect_go.ts +0 -23
  247. package/project/.sdk/src/cmp/go/TestEntity_go.ts +0 -8
  248. package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +0 -21
  249. package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +0 -12
  250. package/project/.sdk/src/cmp/go/utility_go.ts +0 -70
  251. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +0 -49
  252. package/project/.sdk/src/cmp/go-cli/fragment/words.fragment.go +0 -12
  253. package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +0 -36
  254. package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +0 -20
  255. package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +0 -3
  256. package/project/.sdk/src/cmp/java/Config_java.ts +0 -63
  257. package/project/.sdk/src/cmp/java/EntityTypes_java.ts +0 -50
  258. package/project/.sdk/src/cmp/java/Entity_java.ts +0 -6
  259. package/project/.sdk/src/cmp/java/Main_java.ts +2 -24
  260. package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +0 -55
  261. package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +0 -1
  262. package/project/.sdk/src/cmp/java/ReadmeExamplesTest_java.ts +0 -20
  263. package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +0 -4
  264. package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +2 -5
  265. package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +0 -7
  266. package/project/.sdk/src/cmp/java/Schema_java.ts +106 -0
  267. package/project/.sdk/src/cmp/java/TestDirect_java.ts +0 -7
  268. package/project/.sdk/src/cmp/java/TestEntity_java.ts +0 -4
  269. package/project/.sdk/src/cmp/java/Test_java.ts +0 -6
  270. package/project/.sdk/src/cmp/java/utility_java.ts +0 -33
  271. package/project/.sdk/src/cmp/js/Config_js.ts +0 -46
  272. package/project/.sdk/src/cmp/js/EntityTypes_js.ts +0 -33
  273. package/project/.sdk/src/cmp/js/Main_js.ts +0 -33
  274. package/project/.sdk/src/cmp/js/Package_js.ts +2 -7
  275. package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +0 -57
  276. package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +0 -9
  277. package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +0 -2
  278. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +0 -15
  279. package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +2 -7
  280. package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +0 -7
  281. package/project/.sdk/src/cmp/js/Schema_js.ts +0 -21
  282. package/project/.sdk/src/cmp/js/TestDirect_js.ts +2 -16
  283. package/project/.sdk/src/cmp/js/TestEntity_js.ts +3 -13
  284. package/project/.sdk/src/cmp/js/TestLive_js.ts +10 -3
  285. package/project/.sdk/src/cmp/js/utility_js.ts +0 -58
  286. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +0 -46
  287. package/project/.sdk/src/cmp/kotlin/EntityOperation_kotlin.ts +0 -2
  288. package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +0 -53
  289. package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +0 -4
  290. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +2 -46
  291. package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +0 -113
  292. package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +0 -1
  293. package/project/.sdk/src/cmp/kotlin/ReadmeExamplesTest_kotlin.ts +0 -20
  294. package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +2 -5
  295. package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +0 -5
  296. package/project/.sdk/src/cmp/kotlin/Schema_kotlin.ts +92 -0
  297. package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +0 -4
  298. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +0 -6
  299. package/project/.sdk/src/cmp/kotlin/utility_kotlin.ts +0 -33
  300. package/project/.sdk/src/cmp/lua/Config_lua.ts +0 -56
  301. package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +0 -30
  302. package/project/.sdk/src/cmp/lua/Entity_lua.ts +0 -7
  303. package/project/.sdk/src/cmp/lua/Main_lua.ts +38 -59
  304. package/project/.sdk/src/cmp/lua/Package_lua.ts +1 -20
  305. package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +0 -61
  306. package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +0 -8
  307. package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +0 -24
  308. package/project/.sdk/src/cmp/lua/ReadmeExplanation_lua.ts +1 -0
  309. package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +0 -10
  310. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +0 -21
  311. package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +2 -12
  312. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +0 -3
  313. package/project/.sdk/src/cmp/lua/Schema_lua.ts +56 -0
  314. package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +0 -2
  315. package/project/.sdk/src/cmp/lua/utility_lua.ts +0 -30
  316. package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +18 -93
  317. package/project/.sdk/src/cmp/ocaml/EntityOperation_ocaml.ts +0 -6
  318. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +27 -84
  319. package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +0 -13
  320. package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +0 -145
  321. package/project/.sdk/src/cmp/ocaml/ReadmeExamplesTest_ocaml.ts +0 -17
  322. package/project/.sdk/src/cmp/ocaml/ReadmeExplanation_ocaml.ts +1 -0
  323. package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +2 -5
  324. package/project/.sdk/src/cmp/ocaml/Schema_ocaml.ts +76 -0
  325. package/project/.sdk/src/cmp/ocaml/SdkError_ocaml.ts +0 -4
  326. package/project/.sdk/src/cmp/ocaml/TestEntity_ocaml.ts +0 -5
  327. package/project/.sdk/src/cmp/ocaml/utility_ocaml.ts +0 -27
  328. package/project/.sdk/src/cmp/perl/Config_perl.ts +0 -52
  329. package/project/.sdk/src/cmp/perl/Entity_perl.ts +0 -3
  330. package/project/.sdk/src/cmp/perl/Main_perl.ts +2 -33
  331. package/project/.sdk/src/cmp/perl/Package_perl.ts +0 -8
  332. package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +0 -84
  333. package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +0 -3
  334. package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +0 -27
  335. package/project/.sdk/src/cmp/perl/ReadmeExplanation_perl.ts +1 -0
  336. package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +2 -5
  337. package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +0 -2
  338. package/project/.sdk/src/cmp/perl/Schema_perl.ts +89 -0
  339. package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +0 -2
  340. package/project/.sdk/src/cmp/perl/utility_perl.ts +0 -26
  341. package/project/.sdk/src/cmp/php/Config_php.ts +0 -76
  342. package/project/.sdk/src/cmp/php/EntityTypes_php.ts +0 -51
  343. package/project/.sdk/src/cmp/php/MainEntity_php.ts +0 -6
  344. package/project/.sdk/src/cmp/php/Main_php.ts +2 -15
  345. package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
  346. package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +0 -73
  347. package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +0 -4
  348. package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +0 -33
  349. package/project/.sdk/src/cmp/php/ReadmeExplanation_php.ts +1 -0
  350. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +0 -1
  351. package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +0 -19
  352. package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +2 -7
  353. package/project/.sdk/src/cmp/php/Schema_php.ts +114 -0
  354. package/project/.sdk/src/cmp/php/TestEntity_php.ts +0 -9
  355. package/project/.sdk/src/cmp/php/utility_php.ts +0 -22
  356. package/project/.sdk/src/cmp/py/Config_py.ts +0 -53
  357. package/project/.sdk/src/cmp/py/EntityTypes_py.ts +0 -55
  358. package/project/.sdk/src/cmp/py/Entity_py.ts +0 -16
  359. package/project/.sdk/src/cmp/py/Main_py.ts +3 -61
  360. package/project/.sdk/src/cmp/py/Package_py.ts +0 -3
  361. package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +0 -69
  362. package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +0 -13
  363. package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +0 -31
  364. package/project/.sdk/src/cmp/py/ReadmeExplanation_py.ts +1 -0
  365. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +0 -3
  366. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +0 -28
  367. package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +2 -16
  368. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +0 -14
  369. package/project/.sdk/src/cmp/py/Schema_py.ts +53 -0
  370. package/project/.sdk/src/cmp/py/TestDirect_py.ts +0 -2
  371. package/project/.sdk/src/cmp/py/utility_py.ts +0 -22
  372. package/project/.sdk/src/cmp/py-data/Main_py-data.ts +9 -43
  373. package/project/.sdk/src/cmp/rb/Config_rb.ts +0 -56
  374. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +0 -58
  375. package/project/.sdk/src/cmp/rb/Entity_rb.ts +0 -3
  376. package/project/.sdk/src/cmp/rb/Main_rb.ts +2 -10
  377. package/project/.sdk/src/cmp/rb/Package_rb.ts +0 -5
  378. package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +0 -81
  379. package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +0 -7
  380. package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +0 -32
  381. package/project/.sdk/src/cmp/rb/ReadmeExplanation_rb.ts +1 -0
  382. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +0 -9
  383. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +0 -23
  384. package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +2 -10
  385. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +0 -5
  386. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +0 -3
  387. package/project/.sdk/src/cmp/rb/Schema_rb.ts +55 -0
  388. package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +0 -2
  389. package/project/.sdk/src/cmp/rb/utility_rb.ts +0 -22
  390. package/project/.sdk/src/cmp/rust/Config_rust.ts +0 -35
  391. package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +0 -34
  392. package/project/.sdk/src/cmp/rust/Entity_rust.ts +0 -9
  393. package/project/.sdk/src/cmp/rust/Main_rust.ts +3 -58
  394. package/project/.sdk/src/cmp/rust/Package_rust.ts +0 -30
  395. package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +0 -84
  396. package/project/.sdk/src/cmp/rust/ReadmeExamplesTest_rust.ts +0 -16
  397. package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +2 -5
  398. package/project/.sdk/src/cmp/rust/Schema_rust.ts +89 -0
  399. package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +0 -7
  400. package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +0 -9
  401. package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +0 -14
  402. package/project/.sdk/src/cmp/rust/fragment/EntityRemoveOp.fragment.rs +0 -4
  403. package/project/.sdk/src/cmp/rust/fragment/Main.fragment.rs +0 -20
  404. package/project/.sdk/src/cmp/rust/fragment/SdkError.fragment.rs +0 -6
  405. package/project/.sdk/src/cmp/rust/utility_rust.ts +0 -47
  406. package/project/.sdk/src/cmp/scala/Config_scala.ts +0 -31
  407. package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +0 -51
  408. package/project/.sdk/src/cmp/scala/Main_scala.ts +3 -78
  409. package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +0 -102
  410. package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +0 -1
  411. package/project/.sdk/src/cmp/scala/ReadmeExamplesTest_scala.ts +0 -23
  412. package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +2 -5
  413. package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +0 -5
  414. package/project/.sdk/src/cmp/scala/Schema_scala.ts +89 -0
  415. package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +0 -8
  416. package/project/.sdk/src/cmp/scala/Test_scala.ts +0 -3
  417. package/project/.sdk/src/cmp/scala/utility_scala.ts +0 -31
  418. package/project/.sdk/src/cmp/swift/Config_swift.ts +0 -62
  419. package/project/.sdk/src/cmp/swift/EntityOperation_swift.ts +0 -3
  420. package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +0 -39
  421. package/project/.sdk/src/cmp/swift/Main_swift.ts +3 -42
  422. package/project/.sdk/src/cmp/swift/Package_swift.ts +0 -69
  423. package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +0 -134
  424. package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +0 -2
  425. package/project/.sdk/src/cmp/swift/ReadmeExamplesTest_swift.ts +0 -22
  426. package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +2 -5
  427. package/project/.sdk/src/cmp/swift/Schema_swift.ts +74 -0
  428. package/project/.sdk/src/cmp/swift/TestEntity_swift.ts +0 -4
  429. package/project/.sdk/src/cmp/swift/utility_swift.ts +0 -51
  430. package/project/.sdk/src/cmp/ts/Config_ts.ts +0 -46
  431. package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +0 -34
  432. package/project/.sdk/src/cmp/ts/Entity_ts.ts +0 -6
  433. package/project/.sdk/src/cmp/ts/Main_ts.ts +0 -28
  434. package/project/.sdk/src/cmp/ts/Package_ts.ts +2 -26
  435. package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +0 -55
  436. package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +0 -9
  437. package/project/.sdk/src/cmp/ts/ReadmeExampleTest_ts.ts +0 -6
  438. package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +0 -25
  439. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +4 -9
  440. package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +0 -7
  441. package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +0 -3
  442. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +0 -43
  443. package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +2 -20
  444. package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +0 -11
  445. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +6 -9
  446. package/project/.sdk/src/cmp/ts/Schema_ts.ts +0 -21
  447. package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +2 -53
  448. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +3 -31
  449. package/project/.sdk/src/cmp/ts/TestLive_ts.ts +10 -4
  450. package/project/.sdk/src/cmp/ts/Test_ts.ts +0 -4
  451. package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +0 -27
  452. package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +0 -7
  453. package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +0 -7
  454. package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +0 -1
  455. package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +0 -4
  456. package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +0 -20
  457. package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +0 -6
  458. package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +0 -6
  459. package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +0 -15
  460. package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +0 -6
  461. package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +0 -15
  462. package/project/.sdk/src/cmp/ts/fragment/MainStation.fragment.ts +0 -12
  463. package/project/.sdk/src/cmp/ts/fragment/SdkError.fragment.ts +0 -9
  464. package/project/.sdk/src/cmp/ts/utility_ts.ts +0 -59
  465. package/project/.sdk/src/cmp/zig/Config_zig.ts +0 -70
  466. package/project/.sdk/src/cmp/zig/Entity_zig.ts +0 -3
  467. package/project/.sdk/src/cmp/zig/Main_zig.ts +3 -83
  468. package/project/.sdk/src/cmp/zig/Package_zig.ts +0 -22
  469. package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +0 -136
  470. package/project/.sdk/src/cmp/zig/ReadmeExamplesTest_zig.ts +0 -18
  471. package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +0 -3
  472. package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +2 -5
  473. package/project/.sdk/src/cmp/zig/Schema_zig.ts +91 -0
  474. package/project/.sdk/src/cmp/zig/TestDirect_zig.ts +0 -11
  475. package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +0 -8
  476. package/project/.sdk/src/cmp/zig/Test_zig.ts +0 -11
  477. package/project/.sdk/src/cmp/zig/utility_zig.ts +0 -47
  478. package/project/.sdk/tm/c/core/context.c +3 -0
  479. package/project/.sdk/tm/c/core/sdk.h +14 -0
  480. package/project/.sdk/tm/c/feature/secrets/plugin/capability.c +2 -2
  481. package/project/.sdk/tm/c/feature/secrets/plugin/capability.h +2 -2
  482. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.c +2 -2
  483. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.h +2 -2
  484. package/project/.sdk/tm/c/feature/secrets/plugin/config.c +2 -2
  485. package/project/.sdk/tm/c/feature/secrets/plugin/config.h +2 -2
  486. package/project/.sdk/tm/c/feature/secrets/plugin/depend.c +2 -2
  487. package/project/.sdk/tm/c/feature/secrets/plugin/depend.h +2 -2
  488. package/project/.sdk/tm/c/feature/secrets/plugin/env.c +2 -2
  489. package/project/.sdk/tm/c/feature/secrets/plugin/env.h +2 -2
  490. package/project/.sdk/tm/c/feature/secrets/plugin/export.c +3 -3
  491. package/project/.sdk/tm/c/feature/secrets/plugin/export.h +2 -2
  492. package/project/.sdk/tm/c/feature/secrets/plugin/graph.c +2 -2
  493. package/project/.sdk/tm/c/feature/secrets/plugin/graph.h +2 -2
  494. package/project/.sdk/tm/c/feature/secrets/plugin/host.c +25 -2
  495. package/project/.sdk/tm/c/feature/secrets/plugin/host.h +3 -2
  496. package/project/.sdk/tm/c/feature/secrets/plugin/order.c +2 -2
  497. package/project/.sdk/tm/c/feature/secrets/plugin/order.h +2 -2
  498. package/project/.sdk/tm/c/feature/secrets/plugin/point.c +2 -2
  499. package/project/.sdk/tm/c/feature/secrets/plugin/point.h +2 -2
  500. package/project/.sdk/tm/c/feature/secrets/plugin/ref.c +2 -2
  501. package/project/.sdk/tm/c/feature/secrets/plugin/ref.h +2 -2
  502. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.c +2 -2
  503. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.h +2 -2
  504. package/project/.sdk/tm/c/feature/secrets/plugin/types.c +2 -2
  505. package/project/.sdk/tm/c/feature/secrets/plugin/types.h +2 -2
  506. package/project/.sdk/tm/c/feature/secrets/plugin/value.c +2 -2
  507. package/project/.sdk/tm/c/feature/secrets/plugin/value.h +2 -2
  508. package/project/.sdk/tm/c/feature/secrets/plugin/version.c +2 -2
  509. package/project/.sdk/tm/c/feature/secrets/plugin/version.h +2 -2
  510. package/project/.sdk/tm/c/feature/secrets/plugins/aws.c +2 -2
  511. package/project/.sdk/tm/c/feature/secrets/plugins/azuresecrets.c +2 -2
  512. package/project/.sdk/tm/c/feature/secrets/plugins/boru.c +2 -2
  513. package/project/.sdk/tm/c/feature/secrets/plugins/clock.c +2 -2
  514. package/project/.sdk/tm/c/feature/secrets/plugins/doppler.c +2 -2
  515. package/project/.sdk/tm/c/feature/secrets/plugins/encode.c +2 -2
  516. package/project/.sdk/tm/c/feature/secrets/plugins/gcpsecrets.c +2 -2
  517. package/project/.sdk/tm/c/feature/secrets/plugins/hashicorp.c +2 -2
  518. package/project/.sdk/tm/c/feature/secrets/plugins/httpjson.c +2 -2
  519. package/project/.sdk/tm/c/feature/secrets/plugins/infisical.c +2 -2
  520. package/project/.sdk/tm/c/feature/secrets/plugins/minivault.c +2072 -0
  521. package/project/.sdk/tm/c/feature/secrets/plugins/onepassword.c +2 -2
  522. package/project/.sdk/tm/c/feature/secrets/plugins/proc.c +2 -2
  523. package/project/.sdk/tm/c/feature/secrets/plugins/secretspec.c +2 -2
  524. package/project/.sdk/tm/c/feature/secrets/plugins/sekretoplugins.h +151 -10
  525. package/project/.sdk/tm/c/feature/secrets/plugins/sha256.c +16 -10
  526. package/project/.sdk/tm/c/feature/secrets/plugins/sigv4.c +2 -2
  527. package/project/.sdk/tm/c/feature/secrets/plugins/support.h +12 -8
  528. package/project/.sdk/tm/c/feature/secrets/plugins/tls.c +2 -2
  529. package/project/.sdk/tm/c/feature/secrets/sekreto/internal.h +17 -2
  530. package/project/.sdk/tm/c/feature/secrets/sekreto/json.c +5 -5
  531. package/project/.sdk/tm/c/feature/secrets/sekreto/providers.c +37 -9
  532. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.c +2 -2
  533. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.h +17 -2
  534. package/project/.sdk/tm/c/feature/secrets/sekreto/util.c +16 -2
  535. package/project/.sdk/tm/c/feature/validate.c +364 -0
  536. package/project/.sdk/tm/c/feature/validate.h +29 -0
  537. package/project/.sdk/tm/c/src/feature/validate/.gitkeep +0 -0
  538. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  539. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  540. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  541. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  542. package/project/.sdk/tm/c/utility/make_options.c +12 -24
  543. package/project/.sdk/tm/c/utility/make_spec.c +8 -0
  544. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +2 -2
  545. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +2 -2
  546. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +2 -2
  547. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +2 -2
  548. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +2 -2
  549. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +3 -3
  550. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +2 -2
  551. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +17 -2
  552. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +2 -2
  553. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +2 -2
  554. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +2 -2
  555. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +2 -2
  556. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +2 -2
  557. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +2 -2
  558. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +2 -2
  559. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +2 -2
  560. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +2 -2
  561. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +2 -2
  562. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +2 -2
  563. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +2 -2
  564. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +2 -2
  565. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +2 -2
  566. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +2 -2
  567. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +2 -2
  568. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +2 -2
  569. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +2 -2
  570. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +2 -2
  571. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +2 -2
  572. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/minivault.clj +837 -0
  573. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +2 -2
  574. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +2 -2
  575. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +2 -2
  576. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +2 -2
  577. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +2 -2
  578. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +6 -4
  579. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +2 -2
  580. package/project/.sdk/tm/clojure/src/feature/validate/.gitkeep +0 -0
  581. package/project/.sdk/tm/clojure/src/sdk/core.clj +31 -41
  582. package/project/.sdk/tm/clojure/src/sdk/features.clj +202 -0
  583. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  584. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  585. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  586. package/project/.sdk/tm/cpp/core/types.hpp +4 -0
  587. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.cpp +2 -2
  588. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.hpp +2 -2
  589. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.cpp +2 -2
  590. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.hpp +2 -2
  591. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.cpp +2 -2
  592. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.hpp +2 -2
  593. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.cpp +2 -2
  594. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.hpp +2 -2
  595. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.cpp +2 -2
  596. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.hpp +2 -2
  597. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.cpp +3 -3
  598. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.hpp +2 -2
  599. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.cpp +2 -2
  600. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.hpp +2 -2
  601. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.cpp +21 -2
  602. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.hpp +3 -2
  603. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.cpp +2 -2
  604. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.hpp +2 -2
  605. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.cpp +2 -2
  606. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.hpp +2 -2
  607. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.cpp +2 -2
  608. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.hpp +2 -2
  609. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.cpp +2 -2
  610. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.hpp +2 -2
  611. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.cpp +2 -2
  612. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.hpp +2 -2
  613. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.cpp +2 -2
  614. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.hpp +2 -2
  615. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.cpp +2 -2
  616. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.hpp +2 -2
  617. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.cpp +2 -2
  618. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.hpp +2 -2
  619. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.cpp +2 -2
  620. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.hpp +2 -2
  621. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.cpp +2 -2
  622. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.hpp +2 -2
  623. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.cpp +2 -2
  624. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.hpp +9 -7
  625. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.cpp +2 -2
  626. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.hpp +2 -2
  627. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.cpp +2 -2
  628. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.hpp +2 -2
  629. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.cpp +2 -2
  630. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.hpp +2 -2
  631. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.cpp +2 -2
  632. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.hpp +2 -2
  633. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.cpp +2 -2
  634. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.hpp +2 -2
  635. package/project/.sdk/tm/cpp/feature/secrets/plugins/Minivault.cpp +1345 -0
  636. package/project/.sdk/tm/cpp/feature/secrets/plugins/Minivault.hpp +219 -0
  637. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.cpp +2 -2
  638. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.hpp +2 -2
  639. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.cpp +2 -2
  640. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.hpp +2 -2
  641. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.cpp +2 -2
  642. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.hpp +2 -2
  643. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.cpp +2 -2
  644. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.hpp +2 -2
  645. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.cpp +2 -2
  646. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.hpp +2 -2
  647. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.cpp +2 -2
  648. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.hpp +2 -2
  649. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.cpp +22 -2
  650. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.hpp +12 -2
  651. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.cpp +3 -3
  652. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.hpp +2 -2
  653. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.cpp +2 -2
  654. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.hpp +2 -2
  655. package/project/.sdk/tm/cpp/feature/validate.hpp +301 -0
  656. package/project/.sdk/tm/cpp/src/feature/validate/.gitkeep +0 -0
  657. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  658. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  659. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  660. package/project/.sdk/tm/cpp/utility/pipeline.hpp +24 -41
  661. package/project/.sdk/tm/csharp/feature/FeatureOptions.cs +18 -5
  662. package/project/.sdk/tm/csharp/feature/ValidateFeature.cs +343 -0
  663. package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +2 -2
  664. package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +2 -2
  665. package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +2 -2
  666. package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +2 -2
  667. package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +2 -2
  668. package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +2 -2
  669. package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +2 -2
  670. package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +3 -3
  671. package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +2 -2
  672. package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +9 -2
  673. package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +21 -2
  674. package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +2 -2
  675. package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +2 -2
  676. package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +2 -2
  677. package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +2 -2
  678. package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +2 -2
  679. package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +2 -2
  680. package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +2 -2
  681. package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +2 -2
  682. package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +2 -2
  683. package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +2 -2
  684. package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +2 -2
  685. package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +2 -2
  686. package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +2 -2
  687. package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +2 -2
  688. package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +2 -2
  689. package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +2 -2
  690. package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +2 -2
  691. package/project/.sdk/tm/csharp/feature/secrets/plugins/MiniVault.cs +1572 -0
  692. package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +2 -2
  693. package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +2 -2
  694. package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +2 -2
  695. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +2 -2
  696. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +3 -2
  697. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +2 -2
  698. package/project/.sdk/tm/csharp/src/feature/validate/.gitkeep +0 -0
  699. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  700. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  701. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +12 -85
  702. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +24 -3
  703. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +2 -2
  704. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +2 -2
  705. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +2 -2
  706. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +2 -2
  707. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +2 -2
  708. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +2 -2
  709. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +7 -4
  710. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +2 -2
  711. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +13 -2
  712. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +15 -2
  713. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +2 -2
  714. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +2 -2
  715. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +2 -2
  716. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +2 -2
  717. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +2 -2
  718. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +2 -2
  719. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +2 -2
  720. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +2 -2
  721. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +2 -2
  722. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +2 -2
  723. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +2 -2
  724. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +2 -2
  725. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +2 -2
  726. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +2 -2
  727. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +2 -2
  728. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +3 -3
  729. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +3 -3
  730. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +2 -2
  731. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/minivault.ex +1033 -0
  732. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +2 -2
  733. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +2 -2
  734. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +2 -2
  735. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +2 -2
  736. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +2 -2
  737. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +17 -5
  738. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +2 -2
  739. package/project/.sdk/tm/elixir/lib/projectname/feature/validate.ex +320 -0
  740. package/project/.sdk/tm/elixir/lib/projectname/utility.ex +10 -46
  741. package/project/.sdk/tm/elixir/src/feature/validate/.gitkeep +0 -0
  742. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  743. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  744. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  745. package/project/.sdk/tm/go/core/context.go +0 -9
  746. package/project/.sdk/tm/go/core/types.go +0 -3
  747. package/project/.sdk/tm/go/feature/audit_feature.go +0 -9
  748. package/project/.sdk/tm/go/feature/cache_feature.go +0 -8
  749. package/project/.sdk/tm/go/feature/clienttrack_feature.go +0 -7
  750. package/project/.sdk/tm/go/feature/cost_feature.go +0 -51
  751. package/project/.sdk/tm/go/feature/debug_feature.go +0 -6
  752. package/project/.sdk/tm/go/feature/feature_options.go +108 -21
  753. package/project/.sdk/tm/go/feature/idempotency_feature.go +0 -6
  754. package/project/.sdk/tm/go/feature/metrics_feature.go +0 -6
  755. package/project/.sdk/tm/go/feature/netsim_feature.go +0 -8
  756. package/project/.sdk/tm/go/feature/paging_feature.go +0 -9
  757. package/project/.sdk/tm/go/feature/proxy_feature.go +0 -7
  758. package/project/.sdk/tm/go/feature/ratelimit_feature.go +0 -6
  759. package/project/.sdk/tm/go/feature/rbac_feature.go +0 -10
  760. package/project/.sdk/tm/go/feature/retry_feature.go +0 -6
  761. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  762. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  763. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  764. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  765. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  766. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +2 -2
  767. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  768. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +25 -1
  769. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  770. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  771. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  772. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  773. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  774. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  775. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  776. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +2 -2
  777. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  778. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  779. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  780. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  781. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  782. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +2 -2
  783. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +2 -2
  784. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +2 -2
  785. package/project/.sdk/tm/go/feature/secrets/plugins/minivault/format.go +493 -0
  786. package/project/.sdk/tm/go/feature/secrets/plugins/minivault/minivault.go +1131 -0
  787. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  788. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  789. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  790. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +14 -2
  791. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +2 -2
  792. package/project/.sdk/tm/go/feature/secrets_feature.go +0 -173
  793. package/project/.sdk/tm/go/feature/streaming_feature.go +0 -7
  794. package/project/.sdk/tm/go/feature/telemetry_feature.go +0 -8
  795. package/project/.sdk/tm/go/feature/test_feature.go +0 -23
  796. package/project/.sdk/tm/go/feature/validate_feature.go +280 -0
  797. package/project/.sdk/tm/go/src/feature/validate/.gitkeep +0 -0
  798. package/project/.sdk/tm/go/test/custom_utility_test.go +0 -29
  799. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +0 -100
  800. package/project/.sdk/tm/go/test/feature_corpus_test.go +1 -60
  801. package/project/.sdk/tm/go/test/feature_harness_test.go +0 -10
  802. package/project/.sdk/tm/go/test/feature_test.go +107 -9
  803. package/project/.sdk/tm/go/test/omni/omni.go +2 -2
  804. package/project/.sdk/tm/go/test/omni/util.go +2 -2
  805. package/project/.sdk/tm/go/test/omniresolver_test.go +0 -74
  806. package/project/.sdk/tm/go/test/omnismoke_test.go +0 -4
  807. package/project/.sdk/tm/go/test/pipeline_test.go +0 -10
  808. package/project/.sdk/tm/go/test/primary_utility_test.go +0 -32
  809. package/project/.sdk/tm/go/test/struct_utility_test.go +0 -38
  810. package/project/.sdk/tm/go/test/testsupport_test.go +0 -25
  811. package/project/.sdk/tm/go/utility/feature_add.go +0 -6
  812. package/project/.sdk/tm/go/utility/fetcher.go +0 -6
  813. package/project/.sdk/tm/go/utility/graphql.go +1 -31
  814. package/project/.sdk/tm/go/utility/make_options.go +39 -91
  815. package/project/.sdk/tm/go/utility/make_point.go +0 -11
  816. package/project/.sdk/tm/go/utility/make_spec.go +0 -15
  817. package/project/.sdk/tm/go/utility/register.go +0 -28
  818. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +24 -8
  819. package/project/.sdk/tm/go/utility/transform_request.go +0 -20
  820. package/project/.sdk/tm/go/utility/transform_response.go +0 -8
  821. package/project/.sdk/tm/java/feature/ValidateFeature.java +330 -0
  822. package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +2 -2
  823. package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +2 -2
  824. package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +2 -2
  825. package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +2 -2
  826. package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +2 -2
  827. package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +2 -2
  828. package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +2 -2
  829. package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +3 -3
  830. package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +2 -2
  831. package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +3 -3
  832. package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +21 -2
  833. package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +2 -2
  834. package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +2 -2
  835. package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +2 -2
  836. package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +2 -2
  837. package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +2 -2
  838. package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +2 -2
  839. package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +2 -2
  840. package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +2 -2
  841. package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +2 -2
  842. package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +2 -2
  843. package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +4 -3
  844. package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +2 -2
  845. package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +2 -2
  846. package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +2 -2
  847. package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +2 -2
  848. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +2 -2
  849. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +2 -2
  850. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +2 -2
  851. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +2 -2
  852. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +2 -2
  853. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +2 -2
  854. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +2 -2
  855. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +2 -2
  856. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Minivault.java +1448 -0
  857. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +2 -2
  858. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +2 -2
  859. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +2 -2
  860. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +2 -2
  861. package/project/.sdk/tm/java/src/feature/validate/.gitkeep +0 -0
  862. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  863. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  864. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  865. package/project/.sdk/tm/java/utility/MakeOptions.java +13 -45
  866. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  867. package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +2 -2
  868. package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +2 -2
  869. package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +2 -2
  870. package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +2 -2
  871. package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +2 -2
  872. package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +3 -3
  873. package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +2 -2
  874. package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +17 -2
  875. package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +2 -2
  876. package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +2 -2
  877. package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +2 -2
  878. package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +2 -2
  879. package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +2 -2
  880. package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +2 -2
  881. package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +2 -2
  882. package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +2 -2
  883. package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +2 -2
  884. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +2 -2
  885. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +2 -2
  886. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +2 -2
  887. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +2 -2
  888. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +2 -2
  889. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +2 -2
  890. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +2 -2
  891. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +2 -2
  892. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/minivault.js +866 -0
  893. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +2 -2
  894. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +2 -2
  895. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +2 -2
  896. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +2 -2
  897. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +3 -2
  898. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +2 -2
  899. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +2 -2
  900. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +2 -2
  901. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +2 -2
  902. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +2 -2
  903. package/project/.sdk/tm/js/src/feature/test/TestFeature.js +12 -4
  904. package/project/.sdk/tm/js/src/utility/StructUtility.js +1 -1
  905. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  906. package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
  907. package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
  908. package/project/.sdk/tm/kotlin/feature/ValidateFeature.kt +297 -0
  909. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +2 -2
  910. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +2 -2
  911. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +2 -2
  912. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +2 -2
  913. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +2 -2
  914. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +3 -3
  915. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +2 -2
  916. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +21 -2
  917. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +2 -2
  918. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +2 -2
  919. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +2 -2
  920. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +2 -2
  921. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +2 -2
  922. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +2 -2
  923. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +2 -2
  924. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +2 -2
  925. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +2 -2
  926. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +2 -2
  927. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +3 -2
  928. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +2 -2
  929. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +14 -2
  930. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +10 -2
  931. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +2 -2
  932. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +2 -2
  933. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +2 -2
  934. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +2 -2
  935. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +2 -2
  936. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +2 -2
  937. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +2 -2
  938. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +2 -2
  939. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Minivault.kt +1095 -0
  940. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +2 -2
  941. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +2 -2
  942. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +2 -2
  943. package/project/.sdk/tm/kotlin/src/feature/validate/.gitkeep +0 -0
  944. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  945. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  946. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  947. package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +13 -35
  948. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -0
  949. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  950. package/project/.sdk/tm/lua/feature/secrets/native/sekretonet.c +2 -2
  951. package/project/.sdk/tm/lua/feature/secrets/native/sekretovault.c +240 -0
  952. package/project/.sdk/tm/lua/feature/secrets/plugin/capability.lua +2 -2
  953. package/project/.sdk/tm/lua/feature/secrets/plugin/catalog.lua +2 -2
  954. package/project/.sdk/tm/lua/feature/secrets/plugin/config.lua +2 -2
  955. package/project/.sdk/tm/lua/feature/secrets/plugin/depend.lua +2 -2
  956. package/project/.sdk/tm/lua/feature/secrets/plugin/env.lua +2 -2
  957. package/project/.sdk/tm/lua/feature/secrets/plugin/export.lua +12 -3
  958. package/project/.sdk/tm/lua/feature/secrets/plugin/graph.lua +2 -2
  959. package/project/.sdk/tm/lua/feature/secrets/plugin/host.lua +18 -2
  960. package/project/.sdk/tm/lua/feature/secrets/plugin/json.lua +2 -2
  961. package/project/.sdk/tm/lua/feature/secrets/plugin/order.lua +2 -2
  962. package/project/.sdk/tm/lua/feature/secrets/plugin/point.lua +2 -2
  963. package/project/.sdk/tm/lua/feature/secrets/plugin/ref.lua +2 -2
  964. package/project/.sdk/tm/lua/feature/secrets/plugin/resolve.lua +2 -2
  965. package/project/.sdk/tm/lua/feature/secrets/plugin/types.lua +2 -2
  966. package/project/.sdk/tm/lua/feature/secrets/plugin/version.lua +2 -2
  967. package/project/.sdk/tm/lua/feature/secrets/plugin.lua +2 -2
  968. package/project/.sdk/tm/lua/feature/secrets/sekreto/addr.lua +2 -2
  969. package/project/.sdk/tm/lua/feature/secrets/sekreto/err.lua +2 -2
  970. package/project/.sdk/tm/lua/feature/secrets/sekreto/name.lua +2 -2
  971. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/aws.lua +2 -2
  972. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/azuresecrets.lua +2 -2
  973. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/boru.lua +2 -2
  974. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/crypto.lua +2 -2
  975. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/doppler.lua +2 -2
  976. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/gcpsecrets.lua +2 -2
  977. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/hashicorp.lua +2 -2
  978. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/httpjson.lua +2 -2
  979. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/infisical.lua +2 -2
  980. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/json.lua +2 -2
  981. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/minivault.lua +1227 -0
  982. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/net.lua +2 -2
  983. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/onepassword.lua +2 -2
  984. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/secretspec.lua +2 -2
  985. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/sigv4.lua +2 -2
  986. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/support.lua +2 -2
  987. package/project/.sdk/tm/lua/feature/secrets/sekreto/providers.lua +3 -2
  988. package/project/.sdk/tm/lua/feature/secrets/sekreto.lua +2 -2
  989. package/project/.sdk/tm/lua/feature/validate_feature.lua +333 -0
  990. package/project/.sdk/tm/lua/src/feature/validate/.gitkeep +0 -0
  991. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  992. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  993. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  994. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  995. package/project/.sdk/tm/lua/utility/make_options.lua +74 -55
  996. package/project/.sdk/tm/lua/utility/make_spec.lua +8 -1
  997. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  998. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  999. package/project/.sdk/tm/ocaml/Makefile +12 -7
  1000. package/project/.sdk/tm/ocaml/feature/secrets/plugin/capability.ml +2 -2
  1001. package/project/.sdk/tm/ocaml/feature/secrets/plugin/catalog.ml +2 -2
  1002. package/project/.sdk/tm/ocaml/feature/secrets/plugin/config.ml +2 -2
  1003. package/project/.sdk/tm/ocaml/feature/secrets/plugin/defs.ml +2 -2
  1004. package/project/.sdk/tm/ocaml/feature/secrets/plugin/depend.ml +2 -2
  1005. package/project/.sdk/tm/ocaml/feature/secrets/plugin/env.ml +2 -2
  1006. package/project/.sdk/tm/ocaml/feature/secrets/plugin/export.ml +5 -3
  1007. package/project/.sdk/tm/ocaml/feature/secrets/plugin/graph.ml +2 -2
  1008. package/project/.sdk/tm/ocaml/feature/secrets/plugin/host.ml +18 -2
  1009. package/project/.sdk/tm/ocaml/feature/secrets/plugin/order.ml +2 -2
  1010. package/project/.sdk/tm/ocaml/feature/secrets/plugin/point.ml +2 -2
  1011. package/project/.sdk/tm/ocaml/feature/secrets/plugin/ref.ml +2 -2
  1012. package/project/.sdk/tm/ocaml/feature/secrets/plugin/resolve.ml +2 -2
  1013. package/project/.sdk/tm/ocaml/feature/secrets/plugin/types.ml +2 -2
  1014. package/project/.sdk/tm/ocaml/feature/secrets/plugin/value.ml +2 -2
  1015. package/project/.sdk/tm/ocaml/feature/secrets/plugin/version.ml +2 -2
  1016. package/project/.sdk/tm/ocaml/feature/secrets/plugins/aws.ml +2 -2
  1017. package/project/.sdk/tm/ocaml/feature/secrets/plugins/azuresecrets.ml +2 -2
  1018. package/project/.sdk/tm/ocaml/feature/secrets/plugins/boru.ml +2 -2
  1019. package/project/.sdk/tm/ocaml/feature/secrets/plugins/crypto.ml +2 -2
  1020. package/project/.sdk/tm/ocaml/feature/secrets/plugins/doppler.ml +2 -2
  1021. package/project/.sdk/tm/ocaml/feature/secrets/plugins/gcpsecrets.ml +2 -2
  1022. package/project/.sdk/tm/ocaml/feature/secrets/plugins/hashicorp.ml +2 -2
  1023. package/project/.sdk/tm/ocaml/feature/secrets/plugins/http.ml +2 -2
  1024. package/project/.sdk/tm/ocaml/feature/secrets/plugins/httpjson.ml +2 -2
  1025. package/project/.sdk/tm/ocaml/feature/secrets/plugins/infisical.ml +2 -2
  1026. package/project/.sdk/tm/ocaml/feature/secrets/plugins/minivault.ml +1086 -0
  1027. package/project/.sdk/tm/ocaml/feature/secrets/plugins/minivault_stubs.c +222 -0
  1028. package/project/.sdk/tm/ocaml/feature/secrets/plugins/onepassword.ml +2 -2
  1029. package/project/.sdk/tm/ocaml/feature/secrets/plugins/runcmd.ml +2 -2
  1030. package/project/.sdk/tm/ocaml/feature/secrets/plugins/secretspec.ml +2 -2
  1031. package/project/.sdk/tm/ocaml/feature/secrets/plugins/sigv4.ml +2 -2
  1032. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls.ml +2 -2
  1033. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls_stubs.c +2 -2
  1034. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/json.ml +2 -2
  1035. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/provider.ml +33 -3
  1036. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/secret.ml +2 -2
  1037. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/sekreto.ml +4 -3
  1038. package/project/.sdk/tm/ocaml/sdk_features.ml +174 -0
  1039. package/project/.sdk/tm/ocaml/sdk_runtime.ml +12 -37
  1040. package/project/.sdk/tm/ocaml/src/feature/validate/.gitkeep +0 -0
  1041. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  1042. package/project/.sdk/tm/perl/core/helpers.pm +64 -16
  1043. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +2 -2
  1044. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +2 -2
  1045. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +2 -2
  1046. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +2 -2
  1047. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +2 -2
  1048. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +3 -3
  1049. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +2 -2
  1050. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +19 -2
  1051. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +2 -2
  1052. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +2 -2
  1053. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +2 -2
  1054. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +2 -2
  1055. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +2 -2
  1056. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +2 -2
  1057. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +2 -2
  1058. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +2 -2
  1059. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +2 -2
  1060. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +2 -2
  1061. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +2 -2
  1062. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +2 -2
  1063. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +2 -2
  1064. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +2 -2
  1065. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +2 -2
  1066. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Minivault.pm +1380 -0
  1067. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +2 -2
  1068. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +2 -2
  1069. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +2 -2
  1070. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +2 -2
  1071. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +2 -2
  1072. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +4 -3
  1073. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +2 -2
  1074. package/project/.sdk/tm/perl/feature/validate_feature.pm +319 -0
  1075. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  1076. package/project/.sdk/tm/perl/src/feature/validate/.gitkeep +0 -0
  1077. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  1078. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  1079. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  1080. package/project/.sdk/tm/perl/utility/make_options.pm +25 -43
  1081. package/project/.sdk/tm/php/feature/ValidateFeature.php +361 -0
  1082. package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +2 -2
  1083. package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +2 -2
  1084. package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +2 -2
  1085. package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +2 -2
  1086. package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +2 -2
  1087. package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +3 -3
  1088. package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +2 -2
  1089. package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +26 -2
  1090. package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +2 -2
  1091. package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +2 -2
  1092. package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +2 -2
  1093. package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +2 -2
  1094. package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +2 -2
  1095. package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +2 -2
  1096. package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +2 -2
  1097. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +2 -2
  1098. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +2 -2
  1099. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +2 -2
  1100. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +2 -2
  1101. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +2 -2
  1102. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +2 -2
  1103. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +2 -2
  1104. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +2 -2
  1105. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/minivault.php +1250 -0
  1106. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +2 -2
  1107. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +2 -2
  1108. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +2 -2
  1109. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +2 -2
  1110. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +2 -2
  1111. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +5 -3
  1112. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +2 -2
  1113. package/project/.sdk/tm/php/src/feature/validate/.gitkeep +0 -0
  1114. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  1115. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  1116. package/project/.sdk/tm/php/utility/MakeOptions.php +15 -31
  1117. package/project/.sdk/tm/php/utility/struct/Struct.php +56 -7
  1118. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  1119. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  1120. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  1121. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  1122. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  1123. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  1124. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +2 -2
  1125. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  1126. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +17 -1
  1127. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  1128. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  1129. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  1130. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  1131. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  1132. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  1133. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +1 -1
  1134. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  1135. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
  1136. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  1137. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  1138. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  1139. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  1140. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
  1141. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  1142. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
  1143. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/minivault.py +1202 -0
  1144. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  1145. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  1146. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  1147. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +2 -1
  1148. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
  1149. package/project/.sdk/tm/py/pkg/feature/validate_feature.py +273 -0
  1150. package/project/.sdk/tm/py/pkg/utility/make_options.py +14 -53
  1151. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  1152. package/project/.sdk/tm/py/src/feature/validate/.gitkeep +0 -0
  1153. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  1154. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
  1155. package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
  1156. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +2 -2
  1157. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +2 -2
  1158. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +2 -2
  1159. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +2 -2
  1160. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +2 -2
  1161. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +3 -3
  1162. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +2 -2
  1163. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +16 -2
  1164. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +2 -2
  1165. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +2 -2
  1166. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +2 -2
  1167. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +2 -2
  1168. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +2 -2
  1169. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +2 -2
  1170. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +2 -2
  1171. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +2 -2
  1172. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +2 -2
  1173. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +2 -2
  1174. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +2 -2
  1175. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +2 -2
  1176. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +2 -2
  1177. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +2 -2
  1178. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +2 -2
  1179. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +2 -2
  1180. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/minivault.rb +979 -0
  1181. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +2 -2
  1182. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +2 -2
  1183. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +2 -2
  1184. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +6 -5
  1185. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +2 -2
  1186. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +2 -2
  1187. package/project/.sdk/tm/rb/feature/validate_feature.rb +265 -0
  1188. package/project/.sdk/tm/rb/src/feature/validate/.gitkeep +0 -0
  1189. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  1190. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  1191. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  1192. package/project/.sdk/tm/rb/utility/make_options.rb +15 -32
  1193. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +24 -1
  1194. package/project/.sdk/tm/rust/core/context.rs +0 -5
  1195. package/project/.sdk/tm/rust/core/control.rs +0 -1
  1196. package/project/.sdk/tm/rust/core/helpers.rs +0 -15
  1197. package/project/.sdk/tm/rust/core/mod.rs +3 -2
  1198. package/project/.sdk/tm/rust/core/operation.rs +0 -1
  1199. package/project/.sdk/tm/rust/core/point.rs +0 -3
  1200. package/project/.sdk/tm/rust/core/response.rs +0 -2
  1201. package/project/.sdk/tm/rust/core/result.rs +0 -1
  1202. package/project/.sdk/tm/rust/core/spec.rs +0 -1
  1203. package/project/.sdk/tm/rust/core/types.rs +0 -20
  1204. package/project/.sdk/tm/rust/core/utility_type.rs +0 -5
  1205. package/project/.sdk/tm/rust/feature/audit.rs +0 -9
  1206. package/project/.sdk/tm/rust/feature/base.rs +0 -3
  1207. package/project/.sdk/tm/rust/feature/cache.rs +0 -9
  1208. package/project/.sdk/tm/rust/feature/clienttrack.rs +0 -7
  1209. package/project/.sdk/tm/rust/feature/cost.rs +0 -48
  1210. package/project/.sdk/tm/rust/feature/debug.rs +0 -7
  1211. package/project/.sdk/tm/rust/feature/idempotency.rs +0 -7
  1212. package/project/.sdk/tm/rust/feature/log.rs +0 -3
  1213. package/project/.sdk/tm/rust/feature/metrics.rs +0 -7
  1214. package/project/.sdk/tm/rust/feature/netsim.rs +0 -9
  1215. package/project/.sdk/tm/rust/feature/paging.rs +0 -10
  1216. package/project/.sdk/tm/rust/feature/proxy.rs +0 -8
  1217. package/project/.sdk/tm/rust/feature/ratelimit.rs +0 -6
  1218. package/project/.sdk/tm/rust/feature/rbac.rs +0 -10
  1219. package/project/.sdk/tm/rust/feature/retry.rs +0 -6
  1220. package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +2 -2
  1221. package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +2 -2
  1222. package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +2 -2
  1223. package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +2 -2
  1224. package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +2 -2
  1225. package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +3 -3
  1226. package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +2 -2
  1227. package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +24 -2
  1228. package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +2 -2
  1229. package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +2 -2
  1230. package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +2 -2
  1231. package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +2 -2
  1232. package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +2 -2
  1233. package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +2 -2
  1234. package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +2 -2
  1235. package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +2 -2
  1236. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +2 -2
  1237. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +2 -2
  1238. package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +2 -2
  1239. package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +2 -2
  1240. package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +2 -2
  1241. package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +2 -2
  1242. package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +2 -2
  1243. package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +2 -2
  1244. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +2 -2
  1245. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +2 -2
  1246. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +2 -2
  1247. package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +2 -2
  1248. package/project/.sdk/tm/rust/feature/secrets/plugins/minivault/format.rs +425 -0
  1249. package/project/.sdk/tm/rust/feature/secrets/plugins/minivault.rs +1076 -0
  1250. package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +2 -2
  1251. package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +2 -2
  1252. package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +2 -2
  1253. package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +2 -2
  1254. package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +30 -4
  1255. package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +2 -2
  1256. package/project/.sdk/tm/rust/feature/secrets.rs +1 -187
  1257. package/project/.sdk/tm/rust/feature/streaming.rs +0 -7
  1258. package/project/.sdk/tm/rust/feature/support.rs +0 -6
  1259. package/project/.sdk/tm/rust/feature/telemetry.rs +0 -9
  1260. package/project/.sdk/tm/rust/feature/test.rs +0 -19
  1261. package/project/.sdk/tm/rust/feature/timeout.rs +0 -7
  1262. package/project/.sdk/tm/rust/feature/validate.rs +306 -0
  1263. package/project/.sdk/tm/rust/src/feature/validate/.gitkeep +0 -0
  1264. package/project/.sdk/tm/rust/tests/common/mod.rs +0 -35
  1265. package/project/.sdk/tm/rust/tests/custom_utility_test.rs +0 -2
  1266. package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +0 -95
  1267. package/project/.sdk/tm/rust/tests/feature_test.rs +0 -16
  1268. package/project/.sdk/tm/rust/tests/netsim_test.rs +0 -6
  1269. package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +0 -135
  1270. package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +0 -15
  1271. package/project/.sdk/tm/rust/tests/pipeline_test.rs +0 -6
  1272. package/project/.sdk/tm/rust/tests/primary_utility_test.rs +0 -22
  1273. package/project/.sdk/tm/rust/tests/struct_utility_test.rs +0 -25
  1274. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  1275. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  1276. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  1277. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  1278. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  1279. package/project/.sdk/tm/rust/utility/fetcher.rs +0 -5
  1280. package/project/.sdk/tm/rust/utility/graphql.rs +1 -30
  1281. package/project/.sdk/tm/rust/utility/make_error.rs +0 -2
  1282. package/project/.sdk/tm/rust/utility/make_options.rs +1 -98
  1283. package/project/.sdk/tm/rust/utility/make_point.rs +0 -12
  1284. package/project/.sdk/tm/rust/utility/make_spec.rs +10 -7
  1285. package/project/.sdk/tm/rust/utility/voxgigstruct/consts.rs +14 -20
  1286. package/project/.sdk/tm/rust/utility/voxgigstruct/major.rs +0 -13
  1287. package/project/.sdk/tm/rust/utility/voxgigstruct/mini.rs +0 -14
  1288. package/project/.sdk/tm/rust/utility/voxgigstruct/mod.rs +0 -2
  1289. package/project/.sdk/tm/rust/utility/voxgigstruct/ordered_map.rs +0 -18
  1290. package/project/.sdk/tm/rust/utility/voxgigstruct/re.rs +0 -11
  1291. package/project/.sdk/tm/rust/utility/voxgigstruct/value.rs +0 -3
  1292. package/project/.sdk/tm/scala/feature/ValidateFeature.scala +286 -0
  1293. package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +2 -2
  1294. package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +2 -2
  1295. package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +2 -2
  1296. package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +2 -2
  1297. package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +3 -3
  1298. package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +2 -2
  1299. package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +19 -2
  1300. package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +2 -2
  1301. package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +2 -2
  1302. package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +2 -2
  1303. package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +2 -2
  1304. package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +2 -2
  1305. package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +2 -2
  1306. package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +2 -2
  1307. package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +2 -2
  1308. package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +2 -2
  1309. package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +2 -2
  1310. package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +2 -2
  1311. package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +3 -2
  1312. package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +2 -2
  1313. package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +13 -2
  1314. package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +11 -2
  1315. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +2 -2
  1316. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +2 -2
  1317. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +2 -2
  1318. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +2 -2
  1319. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +2 -2
  1320. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +2 -2
  1321. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +2 -2
  1322. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +2 -2
  1323. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Minivault.scala +979 -0
  1324. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +2 -2
  1325. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +2 -2
  1326. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +2 -2
  1327. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  1328. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  1329. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  1330. package/project/.sdk/tm/scala/src/feature/validate/.gitkeep +0 -0
  1331. package/project/.sdk/tm/scala/utility/Make.scala +12 -41
  1332. package/project/.sdk/tm/scala/utility/MakeSpec.scala +8 -1
  1333. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ValidateFeature.swift +273 -0
  1334. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +2 -2
  1335. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +2 -2
  1336. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +2 -2
  1337. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +2 -2
  1338. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +2 -2
  1339. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +3 -3
  1340. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +2 -2
  1341. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +17 -2
  1342. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +2 -2
  1343. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +2 -2
  1344. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +2 -2
  1345. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +2 -2
  1346. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +2 -2
  1347. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +2 -2
  1348. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +2 -2
  1349. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +2 -2
  1350. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +2 -2
  1351. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +2 -2
  1352. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +2 -2
  1353. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +2 -2
  1354. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +2 -2
  1355. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +2 -2
  1356. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +2 -2
  1357. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +2 -2
  1358. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +2 -2
  1359. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +2 -2
  1360. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +2 -2
  1361. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +2 -2
  1362. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +2 -2
  1363. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +2 -2
  1364. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +2 -2
  1365. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +2 -2
  1366. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +2 -2
  1367. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +2 -2
  1368. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Make.swift +9 -3
  1369. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +12 -87
  1370. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +3 -3
  1371. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  1372. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  1373. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  1374. package/project/.sdk/tm/swift/src/feature/validate/.gitkeep +0 -0
  1375. package/project/.sdk/tm/ts/src/Context.ts +0 -5
  1376. package/project/.sdk/tm/ts/src/feature/audit/AuditFeature.ts +0 -7
  1377. package/project/.sdk/tm/ts/src/feature/cache/CacheFeature.ts +0 -8
  1378. package/project/.sdk/tm/ts/src/feature/clienttrack/ClienttrackFeature.ts +0 -7
  1379. package/project/.sdk/tm/ts/src/feature/cost/CostFeature.ts +0 -52
  1380. package/project/.sdk/tm/ts/src/feature/debug/DebugFeature.ts +0 -6
  1381. package/project/.sdk/tm/ts/src/feature/metrics/MetricsFeature.ts +0 -6
  1382. package/project/.sdk/tm/ts/src/feature/netsim/NetsimFeature.ts +0 -8
  1383. package/project/.sdk/tm/ts/src/feature/paging/PagingFeature.ts +0 -13
  1384. package/project/.sdk/tm/ts/src/feature/proxy/ProxyFeature.ts +0 -8
  1385. package/project/.sdk/tm/ts/src/feature/ratelimit/RatelimitFeature.ts +0 -6
  1386. package/project/.sdk/tm/ts/src/feature/rbac/RbacFeature.ts +0 -9
  1387. package/project/.sdk/tm/ts/src/feature/retry/RetryFeature.ts +0 -6
  1388. package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +0 -136
  1389. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  1390. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  1391. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  1392. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  1393. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  1394. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +13 -2
  1395. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  1396. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  1397. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +27 -1
  1398. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  1399. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  1400. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  1401. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  1402. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  1403. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  1404. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  1405. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  1406. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  1407. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  1408. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  1409. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  1410. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  1411. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  1412. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  1413. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  1414. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  1415. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/minivault.ts +1034 -0
  1416. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  1417. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  1418. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  1419. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  1420. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +2 -1
  1421. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  1422. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  1423. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  1424. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  1425. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +11 -1
  1426. package/project/.sdk/tm/ts/src/feature/streaming/StreamingFeature.ts +0 -7
  1427. package/project/.sdk/tm/ts/src/feature/telemetry/TelemetryFeature.ts +0 -7
  1428. package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +13 -88
  1429. package/project/.sdk/tm/ts/src/feature/validate/ValidateFeature.ts +0 -87
  1430. package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +0 -12
  1431. package/project/.sdk/tm/ts/src/utility/FeatureAddUtility.ts +0 -1
  1432. package/project/.sdk/tm/ts/src/utility/GraphqlUtility.ts +2 -30
  1433. package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +0 -4
  1434. package/project/.sdk/tm/ts/src/utility/MakeOptionsUtility.ts +0 -46
  1435. package/project/.sdk/tm/ts/src/utility/MakePointUtility.ts +0 -34
  1436. package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +0 -1
  1437. package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +0 -5
  1438. package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +0 -1
  1439. package/project/.sdk/tm/ts/src/utility/ParamUtility.ts +0 -8
  1440. package/project/.sdk/tm/ts/src/utility/PrepareBodyUtility.ts +0 -3
  1441. package/project/.sdk/tm/ts/src/utility/PrepareParamsUtility.ts +0 -6
  1442. package/project/.sdk/tm/ts/src/utility/ResultBasicUtility.ts +0 -1
  1443. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1 -1
  1444. package/project/.sdk/tm/ts/src/utility/TransformRequestUtility.ts +0 -20
  1445. package/project/.sdk/tm/ts/src/utility/TransformResponseUtility.ts +0 -4
  1446. package/project/.sdk/tm/ts/test/exists.test.ts +0 -10
  1447. package/project/.sdk/tm/ts/test/feature/Corpus.test.ts +0 -56
  1448. package/project/.sdk/tm/ts/test/feature/harness.ts +0 -9
  1449. package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +0 -106
  1450. package/project/.sdk/tm/ts/test/live-contract.ts +0 -2
  1451. package/project/.sdk/tm/ts/test/omni.ts +0 -32
  1452. package/project/.sdk/tm/ts/test/pipeline.test.ts +45 -28
  1453. package/project/.sdk/tm/ts/test/utility/Corpus.test.ts +0 -13
  1454. package/project/.sdk/tm/ts/test/utility/PrimaryUtility.test.ts +56 -29
  1455. package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +0 -7
  1456. package/project/.sdk/tm/ts/test/utility.ts +0 -55
  1457. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  1458. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  1459. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  1460. package/project/.sdk/tm/zig/core/utility.zig +20 -44
  1461. package/project/.sdk/tm/zig/feature/secrets/plugin/capability.zig +2 -2
  1462. package/project/.sdk/tm/zig/feature/secrets/plugin/catalog.zig +2 -2
  1463. package/project/.sdk/tm/zig/feature/secrets/plugin/config.zig +2 -2
  1464. package/project/.sdk/tm/zig/feature/secrets/plugin/depend.zig +2 -2
  1465. package/project/.sdk/tm/zig/feature/secrets/plugin/env.zig +2 -2
  1466. package/project/.sdk/tm/zig/feature/secrets/plugin/export.zig +3 -3
  1467. package/project/.sdk/tm/zig/feature/secrets/plugin/graph.zig +2 -2
  1468. package/project/.sdk/tm/zig/feature/secrets/plugin/host.zig +18 -2
  1469. package/project/.sdk/tm/zig/feature/secrets/plugin/inst.zig +2 -2
  1470. package/project/.sdk/tm/zig/feature/secrets/plugin/order.zig +2 -2
  1471. package/project/.sdk/tm/zig/feature/secrets/plugin/plugin.zig +2 -2
  1472. package/project/.sdk/tm/zig/feature/secrets/plugin/point.zig +2 -2
  1473. package/project/.sdk/tm/zig/feature/secrets/plugin/ref.zig +2 -2
  1474. package/project/.sdk/tm/zig/feature/secrets/plugin/resolve.zig +2 -2
  1475. package/project/.sdk/tm/zig/feature/secrets/plugin/types.zig +2 -2
  1476. package/project/.sdk/tm/zig/feature/secrets/plugin/value.zig +2 -2
  1477. package/project/.sdk/tm/zig/feature/secrets/plugin/version.zig +2 -2
  1478. package/project/.sdk/tm/zig/feature/secrets/plugins/aws.zig +2 -2
  1479. package/project/.sdk/tm/zig/feature/secrets/plugins/azuresecrets.zig +2 -2
  1480. package/project/.sdk/tm/zig/feature/secrets/plugins/boru.zig +2 -2
  1481. package/project/.sdk/tm/zig/feature/secrets/plugins/doppler.zig +2 -2
  1482. package/project/.sdk/tm/zig/feature/secrets/plugins/gcpsecrets.zig +2 -2
  1483. package/project/.sdk/tm/zig/feature/secrets/plugins/hashicorp.zig +2 -2
  1484. package/project/.sdk/tm/zig/feature/secrets/plugins/httpjson.zig +2 -2
  1485. package/project/.sdk/tm/zig/feature/secrets/plugins/infisical.zig +2 -2
  1486. package/project/.sdk/tm/zig/feature/secrets/plugins/minivault.zig +1930 -0
  1487. package/project/.sdk/tm/zig/feature/secrets/plugins/onepassword.zig +2 -2
  1488. package/project/.sdk/tm/zig/feature/secrets/plugins/secretspec.zig +2 -2
  1489. package/project/.sdk/tm/zig/feature/secrets/plugins/sigv4.zig +2 -2
  1490. package/project/.sdk/tm/zig/feature/secrets/sekreto/addr.zig +2 -2
  1491. package/project/.sdk/tm/zig/feature/secrets/sekreto/builtins.zig +3 -2
  1492. package/project/.sdk/tm/zig/feature/secrets/sekreto/provider.zig +19 -2
  1493. package/project/.sdk/tm/zig/feature/secrets/sekreto/sekreto.zig +2 -2
  1494. package/project/.sdk/tm/zig/feature/validate.zig +293 -0
  1495. package/project/.sdk/tm/zig/src/feature/validate/.gitkeep +0 -0
  1496. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +2 -2
  1497. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +2 -2
  1498. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +2 -2
  1499. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +2 -2
  1500. package/project/sdkgen-package.json +1 -1
  1501. package/src/action/action.ts +0 -65
  1502. package/src/action/check.ts +0 -88
  1503. package/src/action/dispatch.ts +0 -27
  1504. package/src/action/doctor.ts +69 -329
  1505. package/src/action/edition.ts +1 -87
  1506. package/src/action/feature.ts +1 -49
  1507. package/src/action/kind.ts +0 -149
  1508. package/src/action/package.ts +0 -228
  1509. package/src/action/resolve.ts +0 -148
  1510. package/src/action/target.ts +0 -177
  1511. package/src/cmp/AgentGuide.ts +0 -7
  1512. package/src/cmp/AgentGuideContent.ts +0 -24
  1513. package/src/cmp/AgentGuideTop.ts +0 -7
  1514. package/src/cmp/Changelog.ts +0 -14
  1515. package/src/cmp/Deploy.ts +1 -31
  1516. package/src/cmp/Entity.ts +0 -4
  1517. package/src/cmp/ExternalTarget.ts +0 -36
  1518. package/src/cmp/Feature.ts +0 -14
  1519. package/src/cmp/FeatureDocs.ts +0 -37
  1520. package/src/cmp/PublishWorkflow.ts +0 -60
  1521. package/src/cmp/ReadmeErrors.ts +0 -17
  1522. package/src/cmp/ReadmeExplanation.ts +2 -11
  1523. package/src/cmp/ReadmeFeatures.ts +0 -10
  1524. package/src/cmp/ReadmeRefFeatures.ts +0 -19
  1525. package/src/cmp/ReadmeStation.ts +0 -19
  1526. package/src/cmp/ReadmeTop.ts +0 -80
  1527. package/src/cmp/ReadmeUnions.ts +0 -15
  1528. package/src/cmp/Registered.ts +0 -30
  1529. package/src/cmp/Security.ts +0 -2
  1530. package/src/cmp/Test.ts +3 -1
  1531. package/src/cmp/TestControl.ts +0 -25
  1532. package/src/helpers/applicability.ts +0 -55
  1533. package/src/helpers/buildIdNames.ts +0 -12
  1534. package/src/helpers/canonSpec.ts +0 -114
  1535. package/src/helpers/canonType.ts +0 -87
  1536. package/src/helpers/collectDeps.ts +21 -23
  1537. package/src/helpers/definition.ts +0 -29
  1538. package/src/helpers/dryrun.ts +0 -8
  1539. package/src/helpers/featureSource.ts +0 -152
  1540. package/src/helpers/getMatchEntries.ts +0 -4
  1541. package/src/helpers/junk.ts +13 -89
  1542. package/src/helpers/manifest.ts +0 -169
  1543. package/src/helpers/modelNames.ts +0 -81
  1544. package/src/helpers/modelcheck.ts +0 -106
  1545. package/src/helpers/naming.ts +2 -305
  1546. package/src/helpers/opExample.ts +0 -56
  1547. package/src/helpers/opShape.ts +0 -200
  1548. package/src/helpers/optspec.ts +0 -77
  1549. package/src/helpers/packageMeta.ts +1 -200
  1550. package/src/helpers/pointPath.ts +0 -55
  1551. package/src/helpers/resolved.ts +50 -0
  1552. package/src/helpers/semver.ts +0 -61
  1553. package/src/helpers/serverVars.ts +0 -44
  1554. package/src/helpers/shipped.ts +0 -14
  1555. package/src/helpers/station.ts +0 -32
  1556. package/src/helpers/stdrep.ts +0 -52
  1557. package/src/helpers/testPolicy.ts +0 -4
  1558. package/src/sdkgen.ts +15 -263
  1559. package/src/testkit.ts +6 -312
  1560. package/src/types.ts +1 -30
  1561. package/src/utility.ts +0 -243
@@ -0,0 +1,1572 @@
1
+ // VENDORED: @voxgig/sekreto sdk-20260917-1242-0 (csharp/plugins/MiniVault.cs)
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
+ // The mini vault, as a voxgig/plugin definition.
5
+ //
6
+ // A port of typescript/plugins/minivault.ts, which is canonical.
7
+ //
8
+ // PLUGIN CODE. This file is in the VoxgigSekretoPlugins assembly, which
9
+ // the core does not reference - so nothing here is linked into an
10
+ // application whose chain names only built-in kinds. It needs crypto,
11
+ // which is the line the four built-ins stay behind. See
12
+ // docs/design/plugin-providers.md.
13
+ //
14
+ // THE KEY DECIDES WHAT THE VAULT HOLDS. A master key reads and writes
15
+ // every name and mints restricted keys. A restricted key reads the names
16
+ // it was granted and CANNOT DERIVE ANY OTHER - the restriction is the
17
+ // cryptography rather than a check this code performs. What that does and
18
+ // does not protect is set out in DOCS.md under "What the mini vault
19
+ // protects".
20
+ //
21
+ // System.Security.Cryptography carries all four primitives, so nothing
22
+ // here is hand-rolled (AGENTS.md rule 3).
23
+
24
+ using System;
25
+ using System.Collections.Generic;
26
+ using System.IO;
27
+ using System.Linq;
28
+ using System.Security.Cryptography;
29
+ using System.Text;
30
+
31
+ using Definition = Voxgig.Plugin.Definition;
32
+ using Types = Voxgig.Plugin.Types;
33
+ using PluginException = Voxgig.Plugin.PluginException;
34
+
35
+ namespace Voxgig.Sekreto.Plugins
36
+ {
37
+ /// <summary>
38
+ /// A mini vault: every secret a project owns, encrypted, in ONE FILE.
39
+ ///
40
+ /// <para>The format:</para>
41
+ /// <code>
42
+ /// magic 4 'SKMV'
43
+ /// version 1 FORMAT
44
+ /// kdf 1 1 = PBKDF2-HMAC-SHA256
45
+ /// cipher 1 1 = AES-256-GCM
46
+ /// reserved 1 0
47
+ /// keycount 4 uint32
48
+ /// per key:
49
+ /// id 1 + bytes the key id, PLAINTEXT
50
+ /// salt 1 + bytes
51
+ /// iters 4 PBKDF2 rounds for this key
52
+ /// ring 1 + iv, 4 + bytes sealed under the passphrase
53
+ /// meta 1 + iv, 4 + bytes sealed under the vault's meta key
54
+ /// entrycount 4 uint32
55
+ /// per entry:
56
+ /// id 1 + bytes the blinded lookup id
57
+ /// name 1 + iv, 4 + bytes sealed under the vault's name key
58
+ /// value 1 + iv, 4 + bytes sealed under that secret's own key
59
+ /// </code>
60
+ ///
61
+ /// <para>Integers are big-endian, and every length precedes its bytes.
62
+ /// A file one port writes is read by every other; `test/fixture` pins
63
+ /// that with a committed vault rather than with agreement.</para>
64
+ /// </summary>
65
+ public static class MiniVault
66
+ {
67
+ internal const string Magic = "SKMV";
68
+ internal const int Format = 1;
69
+ internal const int KdfPbkdf2 = 1;
70
+ internal const int CipherAesGcm = 1;
71
+
72
+ /// <summary>AES-256-GCM: 32-byte keys, 12-byte nonces, 16-byte tags.</summary>
73
+ internal const int KeyLen = 32;
74
+
75
+ internal const int IvLen = 12;
76
+ internal const int TagLen = 16;
77
+ internal const int SaltLen = 16;
78
+
79
+ /// <summary>PBKDF2-HMAC-SHA256 rounds when a caller names none.</summary>
80
+ public const int Iterations = 210000;
81
+
82
+ /// <summary>The key id a vault gets when a caller names none.</summary>
83
+ public const string MasterKey = "master";
84
+
85
+ /// <summary>
86
+ /// The lock every handle on one file shares.
87
+ ///
88
+ /// <para>Each <c>Vault</c> is its own object, so two handles on one
89
+ /// path did not coordinate: both could finish <c>Load()</c> before
90
+ /// either saved, and the second <c>File.Move</c> then discarded the
91
+ /// first one's change while reporting success. Keyed by the ABSOLUTE
92
+ /// path, so two handles spelled differently still meet.</para>
93
+ ///
94
+ /// <para>A guarantee WITHIN one process, which is what DOCS.md
95
+ /// promises and what the go port arranges the same way. Two
96
+ /// processes still race, and the format's answer to that is the
97
+ /// exclusive create and the atomic rename.</para>
98
+ /// </summary>
99
+ private static readonly System.Collections.Concurrent.ConcurrentDictionary<string, object>
100
+ Locks = new System.Collections.Concurrent.ConcurrentDictionary<string, object>();
101
+
102
+ internal static object LockFor(string file)
103
+ {
104
+ string key;
105
+ try
106
+ {
107
+ key = Path.GetFullPath(file);
108
+ }
109
+ catch (Exception)
110
+ {
111
+ key = file;
112
+ }
113
+
114
+ return Locks.GetOrAdd(key, _ => new object());
115
+ }
116
+
117
+ /// <summary>
118
+ /// The key a caller asked for, or <c>master</c>: an EMPTY key is no
119
+ /// key. The canonical's <c>opts.key || MASTERKEY</c> answers for
120
+ /// both null and empty, where <c>??</c> answers for null alone - and
121
+ /// a CLI reaches this with SEKRETO_VAULT_KEY set and empty, which is
122
+ /// what an unset shell variable expands to.
123
+ /// </summary>
124
+ internal static string WantKey(string? value)
125
+ {
126
+ return string.IsNullOrEmpty(value) ? MasterKey : value;
127
+ }
128
+
129
+ // Additional authenticated data. Every blob is bound to its PLACE in
130
+ // the file, so no ciphertext can be moved.
131
+ internal const string AadRing = "skmv1:ring:";
132
+ internal const string AadMeta = "skmv1:meta:";
133
+ internal const string AadName = "skmv1:name";
134
+ internal const string AadSecret = "skmv1:secret:";
135
+
136
+ // Everything a master can reach is derived from the root key, so a
137
+ // rotation is one new random value rather than a re-wrap of each part.
138
+ internal const string LabelNames = "skmv1:names";
139
+ internal const string LabelMeta = "skmv1:meta";
140
+ internal const string LabelId = "skmv1:id";
141
+
142
+ /// <summary>
143
+ /// The largest key id the format can record.
144
+ ///
145
+ /// <para>`Small` writes a length in ONE byte. A longer id wrapped
146
+ /// that byte and the writer then appended the whole thing, so every
147
+ /// field after it shifted. Checked where an id is ACCEPTED, so the
148
+ /// refusal names the id rather than the file.</para>
149
+ /// </summary>
150
+ internal const int IdMax = 255;
151
+
152
+ /// <summary>
153
+ /// The export key the vault API is published under, beside the
154
+ /// `provider` key every kind publishes.
155
+ /// </summary>
156
+ public const string VaultExport = "vault";
157
+
158
+ internal static SekretoError Fail(string text)
159
+ {
160
+ return new SekretoError("sekreto: minivault: " + text);
161
+ }
162
+
163
+ internal static string CheckId(object id, string what)
164
+ {
165
+ var text = id as string;
166
+
167
+ if (null == text || 0 == text.Length)
168
+ {
169
+ throw Fail(what);
170
+ }
171
+
172
+ if (Utf8(text).Length > IdMax)
173
+ {
174
+ throw Fail("key id is longer than " + IdMax + " bytes: "
175
+ + text.Substring(0, Math.Min(32, text.Length)) + "...");
176
+ }
177
+
178
+ return text;
179
+ }
180
+
181
+ internal static byte[] Utf8(string text)
182
+ {
183
+ return Encoding.UTF8.GetBytes(text);
184
+ }
185
+
186
+ // --- keys --------------------------------------------------------
187
+
188
+ internal static byte[] Hmac(byte[] key, string text)
189
+ {
190
+ using (var mac = new HMACSHA256(key))
191
+ {
192
+ return mac.ComputeHash(Utf8(text));
193
+ }
194
+ }
195
+
196
+ /// <summary>The key-encryption key a passphrase unwraps a ring with.</summary>
197
+ internal static byte[] Kek(string passphrase, byte[] salt, int iters)
198
+ {
199
+ return Rfc2898DeriveBytes.Pbkdf2(
200
+ Utf8(passphrase), salt, iters, HashAlgorithmName.SHA256, KeyLen);
201
+ }
202
+
203
+ /// <summary>
204
+ /// The key one named secret's value is encrypted with.
205
+ ///
206
+ /// <para>DERIVED, never stored, for a master: it holds the root key
207
+ /// and so reaches every name, including ones written after it was
208
+ /// made. A restricted key holds the derived keys it was granted and
209
+ /// nothing that produces another.</para>
210
+ /// </summary>
211
+ internal static byte[] SecretKey(byte[] root, string name)
212
+ {
213
+ return Hmac(root, AadSecret + name);
214
+ }
215
+
216
+ /// <summary>
217
+ /// Where a secret lives in the file, derived from its own key so that
218
+ /// finding it needs no plaintext name.
219
+ /// </summary>
220
+ internal static byte[] EntryId(byte[] key)
221
+ {
222
+ return Hmac(key, LabelId);
223
+ }
224
+
225
+ internal static byte[] Random(int len)
226
+ {
227
+ return RandomNumberGenerator.GetBytes(len);
228
+ }
229
+
230
+ // --- sealing ------------------------------------------------------
231
+
232
+ /// <summary>A nonce and the ciphertext with its tag appended.</summary>
233
+ internal sealed class Sealed
234
+ {
235
+ internal byte[] Iv;
236
+ internal byte[] Blob;
237
+
238
+ internal Sealed(byte[] iv, byte[] blob)
239
+ {
240
+ Iv = iv;
241
+ Blob = blob;
242
+ }
243
+ }
244
+
245
+ internal static Sealed Seal(byte[] key, byte[] plain, string aad)
246
+ {
247
+ var iv = Random(IvLen);
248
+ var body = new byte[plain.Length];
249
+ var tag = new byte[TagLen];
250
+
251
+ using (var gcm = new AesGcm(key, TagLen))
252
+ {
253
+ gcm.Encrypt(iv, plain, body, tag, Utf8(aad));
254
+ }
255
+
256
+ var blob = new byte[body.Length + TagLen];
257
+ Buffer.BlockCopy(body, 0, blob, 0, body.Length);
258
+ Buffer.BlockCopy(tag, 0, blob, body.Length, TagLen);
259
+
260
+ return new Sealed(iv, blob);
261
+ }
262
+
263
+ /// <summary>
264
+ /// The plaintext, or a refusal. A GCM tag that fails to verify is the
265
+ /// only evidence there is, and it cannot tell a wrong passphrase from
266
+ /// a damaged file, so `what` names the attempt and the message admits
267
+ /// both.
268
+ /// </summary>
269
+ internal static byte[] Unseal(byte[] key, Sealed sealedvalue, string aad, string what)
270
+ {
271
+ if (sealedvalue.Blob.Length < TagLen || IvLen != sealedvalue.Iv.Length)
272
+ {
273
+ throw Fail(what + ": truncated");
274
+ }
275
+
276
+ var bodylen = sealedvalue.Blob.Length - TagLen;
277
+ var body = new byte[bodylen];
278
+ var tag = new byte[TagLen];
279
+ Buffer.BlockCopy(sealedvalue.Blob, 0, body, 0, bodylen);
280
+ Buffer.BlockCopy(sealedvalue.Blob, bodylen, tag, 0, TagLen);
281
+
282
+ var plain = new byte[bodylen];
283
+
284
+ // The WHOLE round-trip is guarded, not only the tag check: a key
285
+ // of the wrong length makes the constructor itself raise, and a
286
+ // damaged file reaching a caller as a raw ArgumentException is a
287
+ // refusal nobody can act on.
288
+ try
289
+ {
290
+ using (var gcm = new AesGcm(key, TagLen))
291
+ {
292
+ gcm.Decrypt(sealedvalue.Iv, body, tag, plain, Utf8(aad));
293
+ }
294
+ }
295
+ catch (Exception err) when (err is CryptographicException || err is ArgumentException)
296
+ {
297
+ throw Fail(what);
298
+ }
299
+
300
+ return plain;
301
+ }
302
+
303
+ internal static Dictionary<string, object> JsonOf(byte[] plain, string what)
304
+ {
305
+ object parsed;
306
+
307
+ if (!Json.TryParse(Encoding.UTF8.GetString(plain), out parsed))
308
+ {
309
+ throw Fail("unreadable " + what);
310
+ }
311
+
312
+ var map = parsed as Dictionary<string, object>;
313
+
314
+ if (null == map)
315
+ {
316
+ throw Fail("unreadable " + what);
317
+ }
318
+
319
+ return map;
320
+ }
321
+
322
+ internal static string B64(byte[] bytes)
323
+ {
324
+ return Convert.ToBase64String(bytes);
325
+ }
326
+
327
+ internal static byte[] UnB64(object text, string what)
328
+ {
329
+ var encoded = text as string;
330
+
331
+ if (null == encoded)
332
+ {
333
+ throw Fail("missing " + what);
334
+ }
335
+
336
+ try
337
+ {
338
+ return Convert.FromBase64String(encoded);
339
+ }
340
+ catch (FormatException)
341
+ {
342
+ throw Fail("missing " + what);
343
+ }
344
+ }
345
+
346
+ // --- the file -----------------------------------------------------
347
+
348
+ internal sealed class KeyRecord
349
+ {
350
+ internal string Id;
351
+ internal byte[] Salt;
352
+ internal int Iters;
353
+ internal Sealed Ring;
354
+ internal Sealed Meta;
355
+ }
356
+
357
+ internal sealed class EntryRecord
358
+ {
359
+ internal byte[] Id;
360
+ internal Sealed Name;
361
+ internal Sealed Value;
362
+ }
363
+
364
+ internal sealed class VaultFile
365
+ {
366
+ internal readonly List<KeyRecord> Keys = new List<KeyRecord>();
367
+ internal readonly List<EntryRecord> Entries = new List<EntryRecord>();
368
+ }
369
+
370
+ /// <summary>
371
+ /// A cursor, so that every length check is in one place: a truncated
372
+ /// vault is refused rather than read as a short one.
373
+ /// </summary>
374
+ internal sealed class Reader
375
+ {
376
+ private readonly byte[] bytes;
377
+ private int at;
378
+
379
+ internal Reader(byte[] bytes)
380
+ {
381
+ this.bytes = bytes;
382
+ }
383
+
384
+ internal byte[] Take(int len)
385
+ {
386
+ if (len < 0 || bytes.Length < at + len)
387
+ {
388
+ throw Fail("the vault file is truncated");
389
+ }
390
+
391
+ var out_ = new byte[len];
392
+ Buffer.BlockCopy(bytes, at, out_, 0, len);
393
+ at += len;
394
+ return out_;
395
+ }
396
+
397
+ internal int U8()
398
+ {
399
+ return Take(1)[0];
400
+ }
401
+
402
+ internal int U32()
403
+ {
404
+ var four = Take(4);
405
+ // A length over int.MaxValue cannot address an array, and
406
+ // reading it as a negative int is what turned a damaged file
407
+ // into a crash instead of a refusal.
408
+ var value = ((uint)four[0] << 24) | ((uint)four[1] << 16)
409
+ | ((uint)four[2] << 8) | four[3];
410
+
411
+ if (value > int.MaxValue)
412
+ {
413
+ throw Fail("the vault file is truncated");
414
+ }
415
+
416
+ return (int)value;
417
+ }
418
+
419
+ internal byte[] Small()
420
+ {
421
+ return Take(U8());
422
+ }
423
+
424
+ internal byte[] Large()
425
+ {
426
+ return Take(U32());
427
+ }
428
+
429
+ internal string MagicWord()
430
+ {
431
+ return Encoding.Latin1.GetString(Take(4));
432
+ }
433
+
434
+ internal Sealed SealedValue()
435
+ {
436
+ return new Sealed(Small(), Large());
437
+ }
438
+
439
+ internal bool Done()
440
+ {
441
+ return at == bytes.Length;
442
+ }
443
+ }
444
+
445
+ internal static VaultFile ReadFile(byte[] bytes)
446
+ {
447
+ var read = new Reader(bytes);
448
+
449
+ if (Magic != read.MagicWord())
450
+ {
451
+ throw Fail("not a vault file");
452
+ }
453
+
454
+ var version = read.U8();
455
+ if (Format != version)
456
+ {
457
+ throw Fail("unsupported format version: " + version);
458
+ }
459
+
460
+ var kdf = read.U8();
461
+ var cipher = read.U8();
462
+ if (KdfPbkdf2 != kdf || CipherAesGcm != cipher)
463
+ {
464
+ throw Fail("unsupported kdf or cipher: " + kdf + "/" + cipher);
465
+ }
466
+ read.U8();
467
+
468
+ var vault = new VaultFile();
469
+
470
+ var keycount = read.U32();
471
+ for (var index = 0; index < keycount; index++)
472
+ {
473
+ vault.Keys.Add(new KeyRecord
474
+ {
475
+ Id = Encoding.UTF8.GetString(read.Small()),
476
+ Salt = read.Small(),
477
+ Iters = read.U32(),
478
+ Ring = read.SealedValue(),
479
+ Meta = read.SealedValue(),
480
+ });
481
+ }
482
+
483
+ var entrycount = read.U32();
484
+ for (var index = 0; index < entrycount; index++)
485
+ {
486
+ vault.Entries.Add(new EntryRecord
487
+ {
488
+ Id = read.Small(),
489
+ Name = read.SealedValue(),
490
+ Value = read.SealedValue(),
491
+ });
492
+ }
493
+
494
+ if (!read.Done())
495
+ {
496
+ throw Fail("the vault file has trailing bytes");
497
+ }
498
+
499
+ return vault;
500
+ }
501
+
502
+ internal static byte[] WriteFile(VaultFile vault)
503
+ {
504
+ var out_ = new MemoryStream();
505
+
506
+ Action<byte[]> raw = bytes => out_.Write(bytes, 0, bytes.Length);
507
+ Action<int> u8 = value => out_.WriteByte((byte)value);
508
+ Action<int> u32 = value => raw(new[]
509
+ {
510
+ (byte)((value >> 24) & 0xff), (byte)((value >> 16) & 0xff),
511
+ (byte)((value >> 8) & 0xff), (byte)(value & 0xff),
512
+ });
513
+ Action<byte[]> small = bytes => { u8(bytes.Length); raw(bytes); };
514
+ Action<byte[]> large = bytes => { u32(bytes.Length); raw(bytes); };
515
+ Action<Sealed> sealedvalue = value => { small(value.Iv); large(value.Blob); };
516
+
517
+ raw(Encoding.Latin1.GetBytes(Magic));
518
+ u8(Format);
519
+ u8(KdfPbkdf2);
520
+ u8(CipherAesGcm);
521
+ u8(0);
522
+
523
+ u32(vault.Keys.Count);
524
+ foreach (var key in vault.Keys)
525
+ {
526
+ small(Utf8(key.Id));
527
+ small(key.Salt);
528
+ u32(key.Iters);
529
+ sealedvalue(key.Ring);
530
+ sealedvalue(key.Meta);
531
+ }
532
+
533
+ // SORTED BY ID, which is a blinded value: the file therefore
534
+ // records nothing about the order secrets were written in.
535
+ var entries = new List<EntryRecord>(vault.Entries);
536
+ entries.Sort((left, right) => Compare(left.Id, right.Id));
537
+
538
+ u32(entries.Count);
539
+ foreach (var entry in entries)
540
+ {
541
+ small(entry.Id);
542
+ sealedvalue(entry.Name);
543
+ sealedvalue(entry.Value);
544
+ }
545
+
546
+ return out_.ToArray();
547
+ }
548
+
549
+ /// <summary>Unsigned, byte by byte, the way every other port sorts.</summary>
550
+ internal static int Compare(byte[] left, byte[] right)
551
+ {
552
+ var len = Math.Min(left.Length, right.Length);
553
+
554
+ for (var index = 0; index < len; index++)
555
+ {
556
+ if (left[index] != right[index])
557
+ {
558
+ return left[index] < right[index] ? -1 : 1;
559
+ }
560
+ }
561
+
562
+ return left.Length.CompareTo(right.Length);
563
+ }
564
+
565
+ internal static bool Same(byte[] left, byte[] right)
566
+ {
567
+ return null != left && null != right && 0 == Compare(left, right);
568
+ }
569
+
570
+ internal static bool SameSeal(Sealed left, Sealed right)
571
+ {
572
+ return Same(left.Iv, right.Iv) && Same(left.Blob, right.Blob);
573
+ }
574
+
575
+ // --- what a key is -------------------------------------------------
576
+
577
+ /// <summary>
578
+ /// What a key may do. `Grants` is empty for a master key.
579
+ ///
580
+ /// <para>Read-only, so what a caller is handed cannot become what the
581
+ /// vault believes: `vault.Open().Write = true` does not compile.</para>
582
+ /// </summary>
583
+ public sealed class KeyInfo
584
+ {
585
+ public string Key { get; }
586
+
587
+ public bool Master { get; }
588
+
589
+ public bool Write { get; }
590
+
591
+ public IReadOnlyList<string> Grants { get; }
592
+
593
+ internal KeyInfo(string key, bool master, bool write, List<string> grants)
594
+ {
595
+ Key = key;
596
+ Master = master;
597
+ Write = write;
598
+ Grants = grants.AsReadOnly();
599
+ }
600
+
601
+ public override string ToString()
602
+ {
603
+ return Key + "/" + (Master ? "true" : "false") + "/"
604
+ + (Write ? "true" : "false") + "/[" + string.Join(", ", Grants) + "]";
605
+ }
606
+ }
607
+
608
+ /// <summary>What a caller asks for when minting a restricted key.</summary>
609
+ public sealed class Grant
610
+ {
611
+ public string Key { get; set; }
612
+
613
+ public string Passphrase { get; set; }
614
+
615
+ public List<string> Names { get; set; } = new List<string>();
616
+
617
+ public bool Write { get; set; }
618
+
619
+ public int? Iterations { get; set; }
620
+ }
621
+
622
+ /// <summary>How a vault handle is configured.</summary>
623
+ public sealed class Options
624
+ {
625
+ public string File { get; set; }
626
+
627
+ public string Key { get; set; } = MasterKey;
628
+
629
+ public string Passphrase { get; set; }
630
+
631
+ public int Iterations { get; set; } = MiniVault.Iterations;
632
+
633
+ public bool Create { get; set; }
634
+ }
635
+
636
+ internal sealed class Opened
637
+ {
638
+ internal KeyInfo Info;
639
+ internal byte[] Root;
640
+ internal Dictionary<string, byte[]> Grants = new Dictionary<string, byte[]>();
641
+ internal Sealed Ring;
642
+ }
643
+
644
+ // --- creating ------------------------------------------------------
645
+
646
+ internal static VaultFile NewVault(string keyid, string passphrase, int iterations)
647
+ {
648
+ var root = Random(KeyLen);
649
+ var salt = Random(SaltLen);
650
+
651
+ var ring = new Dictionary<string, object>
652
+ {
653
+ { "v", (double)Format }, { "write", true }, { "root", B64(root) },
654
+ };
655
+
656
+ var meta = new Dictionary<string, object>
657
+ {
658
+ { "v", (double)Format }, { "master", true }, { "write", true },
659
+ { "grants", new List<object>() },
660
+ };
661
+
662
+ var vault = new VaultFile();
663
+ vault.Keys.Add(new KeyRecord
664
+ {
665
+ Id = keyid,
666
+ Salt = salt,
667
+ Iters = iterations,
668
+ Ring = Seal(Kek(passphrase, salt, iterations),
669
+ Utf8(Json.Stringify(ring)), AadRing + keyid),
670
+ Meta = Seal(Hmac(root, LabelMeta),
671
+ Utf8(Json.Stringify(meta)), AadMeta + keyid),
672
+ });
673
+
674
+ return vault;
675
+ }
676
+
677
+ /// <summary>
678
+ /// Write a vault file that is not there yet, and REFUSE one that is.
679
+ ///
680
+ /// <para>Straight to the target with CreateNew rather than through a
681
+ /// temporary and a rename. A rename REPLACES its destination, so two
682
+ /// processes creating the same vault both succeeded and the second
683
+ /// discarded the first one's secrets.</para>
684
+ /// </summary>
685
+ internal static void PutNew(string file, VaultFile vault)
686
+ {
687
+ try
688
+ {
689
+ using (var handle = new FileStream(file, FileMode.CreateNew, FileAccess.Write))
690
+ {
691
+ var bytes = WriteFile(vault);
692
+ handle.Write(bytes, 0, bytes.Length);
693
+ }
694
+
695
+ OwnerOnly(file);
696
+ }
697
+ catch (IOException err) when (File.Exists(file))
698
+ {
699
+ throw Fail("vault file already exists: " + file);
700
+ }
701
+ catch (Exception err) when (err is IOException || err is UnauthorizedAccessException)
702
+ {
703
+ throw Fail("cannot write " + file + ": " + err.Message);
704
+ }
705
+ }
706
+
707
+ internal static void OwnerOnly(string file)
708
+ {
709
+ try
710
+ {
711
+ if (!OperatingSystem.IsWindows())
712
+ {
713
+ File.SetUnixFileMode(file, UnixFileMode.UserRead | UnixFileMode.UserWrite);
714
+ }
715
+ }
716
+ catch (Exception err) when (err is IOException || err is PlatformNotSupportedException)
717
+ {
718
+ // A filesystem with no POSIX permissions is not a reason to
719
+ // refuse a write that otherwise succeeded.
720
+ }
721
+ }
722
+
723
+ /// <summary>
724
+ /// A handle on one vault file, opened as ONE key.
725
+ ///
726
+ /// <para>Every method answers as that key: `List` shows the names it
727
+ /// may read, `Get` answers for those and misses on the rest, and the
728
+ /// master-only methods refuse for any other key. Nothing is read or
729
+ /// derived until the first call that needs the file.</para>
730
+ /// </summary>
731
+ public sealed class Vault
732
+ {
733
+ private readonly string file;
734
+ private readonly string keyid;
735
+ private readonly string passphrase;
736
+ private readonly int iterations;
737
+ private readonly bool create;
738
+
739
+ private Opened opened;
740
+
741
+ internal Vault(Options options)
742
+ {
743
+ var opts = options ?? new Options();
744
+
745
+ if (string.IsNullOrEmpty(opts.File))
746
+ {
747
+ throw Fail("a vault needs a file");
748
+ }
749
+
750
+ if (string.IsNullOrEmpty(opts.Passphrase))
751
+ {
752
+ throw Fail("a vault needs a passphrase");
753
+ }
754
+
755
+ file = opts.File;
756
+ passphrase = opts.Passphrase;
757
+ keyid = CheckId(WantKey(opts.Key), "a vault needs a key id");
758
+ iterations = opts.Iterations;
759
+ create = opts.Create;
760
+ }
761
+
762
+ /// <summary>The file this handle reads.</summary>
763
+ public string File()
764
+ {
765
+ return file;
766
+ }
767
+
768
+ /// <summary>The key id this handle opens with.</summary>
769
+ public string Key()
770
+ {
771
+ return keyid;
772
+ }
773
+
774
+ /// <summary>Derive the key and read the file NOW rather than at first use.</summary>
775
+ public KeyInfo Open()
776
+ {
777
+ VaultFile vault;
778
+ return Load(out vault).Info;
779
+ }
780
+
781
+ /// <summary>Forget the derived keys. The next call opens again.</summary>
782
+ public void Close()
783
+ {
784
+ opened = null;
785
+ }
786
+
787
+ /// <summary>The names this key can read, sorted.</summary>
788
+ public List<string> List()
789
+ {
790
+ VaultFile vault;
791
+ var open = Load(out vault);
792
+
793
+ var out_ = new List<string>();
794
+
795
+ if (null != open.Root)
796
+ {
797
+ var namekey = Hmac(open.Root, LabelNames);
798
+
799
+ foreach (var entry in vault.Entries)
800
+ {
801
+ out_.Add(Encoding.UTF8.GetString(
802
+ Unseal(namekey, entry.Name, AadName, "a secret name is damaged")));
803
+ }
804
+
805
+ out_.Sort(StringComparer.Ordinal);
806
+ return out_;
807
+ }
808
+
809
+ // A restricted key has no name key, so it reports the grants
810
+ // it can actually find: the vault never tells it what else is
811
+ // in there.
812
+ foreach (var name in open.Info.Grants)
813
+ {
814
+ if (null != FindEntry(vault, open.Grants[name]))
815
+ {
816
+ out_.Add(name);
817
+ }
818
+ }
819
+
820
+ out_.Sort(StringComparer.Ordinal);
821
+ return out_;
822
+ }
823
+
824
+ public bool Has(string name)
825
+ {
826
+ return null != Get(name);
827
+ }
828
+
829
+ /// <summary>
830
+ /// The value, or null when the vault does not hold that name or
831
+ /// this key was not granted it.
832
+ /// </summary>
833
+ public string Get(string name)
834
+ {
835
+ Names.CheckName(name);
836
+
837
+ VaultFile vault;
838
+ var open = Load(out vault);
839
+
840
+ var key = KeyFor(open, name);
841
+
842
+ if (null == key)
843
+ {
844
+ // OUTSIDE THE GRANT IS A MISS, deliberately. The vault
845
+ // answers as the key that opened it, so a name this key
846
+ // cannot read is a name this store does not hold for this
847
+ // caller.
848
+ return null;
849
+ }
850
+
851
+ var entry = FindEntry(vault, key);
852
+
853
+ if (null == entry)
854
+ {
855
+ return null;
856
+ }
857
+
858
+ return Encoding.UTF8.GetString(Unseal(
859
+ key, entry.Value, AadSecret + name, "the value of " + name + " is damaged"));
860
+ }
861
+
862
+ /// <summary>
863
+ /// Write a value. A master writes any name; a restricted key
864
+ /// holding `write` overwrites the names it was granted, and
865
+ /// creates none.
866
+ /// </summary>
867
+ public void Set(string name, string value)
868
+ {
869
+ // Every write on this file, from any handle in this process,
870
+ // serializes here; see LockFor.
871
+ lock (LockFor(file))
872
+ {
873
+ Names.CheckName(name);
874
+
875
+ if (null == value)
876
+ {
877
+ throw Fail("a secret value must be text: " + name);
878
+ }
879
+
880
+ VaultFile vault;
881
+ var open = Load(out vault);
882
+
883
+ if (!open.Info.Write)
884
+ {
885
+ throw Fail("key " + open.Info.Key + " is read-only");
886
+ }
887
+
888
+ var key = KeyFor(open, name);
889
+
890
+ if (null == key)
891
+ {
892
+ throw Fail("key " + open.Info.Key + " was not granted " + name);
893
+ }
894
+
895
+ var sealedvalue = Seal(key, Utf8(value), AadSecret + name);
896
+ var found = FindEntry(vault, key);
897
+
898
+ if (null != found)
899
+ {
900
+ found.Value = sealedvalue;
901
+ }
902
+ else
903
+ {
904
+ // A NEW NAME NEEDS THE NAME KEY, which only a master
905
+ // holds. So a restricted key with `write` updates what it
906
+ // was granted and cannot grow the vault.
907
+ var root = RootOf(open, "creating the secret " + name);
908
+
909
+ vault.Entries.Add(new EntryRecord
910
+ {
911
+ Id = EntryId(key),
912
+ Name = Seal(Hmac(root, LabelNames), Utf8(name), AadName),
913
+ Value = sealedvalue,
914
+ });
915
+ }
916
+
917
+ Save(vault);
918
+ }
919
+ }
920
+
921
+ /// <summary>Drop a name. Master only.</summary>
922
+ public void Remove(string name)
923
+ {
924
+ // Every write on this file, from any handle in this process,
925
+ // serializes here; see LockFor.
926
+ lock (LockFor(file))
927
+ {
928
+ Names.CheckName(name);
929
+
930
+ VaultFile vault;
931
+ var open = Load(out vault);
932
+ var root = RootOf(open, "removing a secret");
933
+
934
+ var wanted = EntryId(SecretKey(root, name));
935
+ var found = vault.Entries.FirstOrDefault(entry => Same(entry.Id, wanted));
936
+
937
+ if (null == found)
938
+ {
939
+ throw Fail("no such secret: " + name);
940
+ }
941
+
942
+ vault.Entries.Remove(found);
943
+ Save(vault);
944
+ }
945
+ }
946
+
947
+ /// <summary>Every key in the file, with what it may do. Master only.</summary>
948
+ public List<KeyInfo> Keys()
949
+ {
950
+ VaultFile vault;
951
+ var open = Load(out vault);
952
+ RootOf(open, "listing the keys");
953
+
954
+ var out_ = new List<KeyInfo>();
955
+
956
+ foreach (var record in vault.Keys)
957
+ {
958
+ var meta = MetaOf(open, record);
959
+
960
+ if (null == meta)
961
+ {
962
+ out_.Add(new KeyInfo(record.Id, false, false, new List<string>()));
963
+ continue;
964
+ }
965
+
966
+ var grants = new List<string>();
967
+ var raw = meta.TryGetValue("grants", out var value) ? value : null;
968
+
969
+ if (raw is List<object> names)
970
+ {
971
+ foreach (var name in names)
972
+ {
973
+ grants.Add(Convert.ToString(name));
974
+ }
975
+ }
976
+
977
+ grants.Sort(StringComparer.Ordinal);
978
+
979
+ out_.Add(new KeyInfo(
980
+ record.Id, True(meta, "master"), True(meta, "write"), grants));
981
+ }
982
+
983
+ return out_;
984
+ }
985
+
986
+ /// <summary>Mint a restricted key. Master only.</summary>
987
+ public void Grant(Grant spec)
988
+ {
989
+ // Every write on this file, from any handle in this process,
990
+ // serializes here; see LockFor.
991
+ lock (LockFor(file))
992
+ {
993
+ VaultFile vault;
994
+ var open = Load(out vault);
995
+ var root = RootOf(open, "granting a key");
996
+
997
+ var want = spec ?? new Grant();
998
+ var id = CheckId(want.Key, "a grant needs a key id");
999
+
1000
+ if (string.IsNullOrEmpty(want.Passphrase))
1001
+ {
1002
+ throw Fail("a grant needs a passphrase");
1003
+ }
1004
+
1005
+ if (vault.Keys.Any(record => record.Id == id))
1006
+ {
1007
+ throw Fail("key already exists: " + id);
1008
+ }
1009
+
1010
+ var names = new List<string>(want.Names ?? new List<string>());
1011
+ names.Sort(StringComparer.Ordinal);
1012
+
1013
+ // A SortedDictionary, for a ring whose JSON is the same
1014
+ // text on every run. It is NOT an interop requirement -
1015
+ // the ring is sealed under a fresh nonce, so its
1016
+ // ciphertext differs per write whatever the key order is,
1017
+ // and a reader parses it back into a map. It is so that
1018
+ // two runs of this port over the same grant produce the
1019
+ // same plaintext.
1020
+ var grants = new SortedDictionary<string, object>(StringComparer.Ordinal);
1021
+
1022
+ foreach (var name in names)
1023
+ {
1024
+ Names.CheckName(name);
1025
+ grants[name] = B64(SecretKey(root, name));
1026
+ }
1027
+
1028
+ var ring = new Dictionary<string, object>
1029
+ {
1030
+ { "v", (double)Format }, { "write", want.Write },
1031
+ { "grants", new Dictionary<string, object>(grants) },
1032
+ };
1033
+
1034
+ var meta = new Dictionary<string, object>
1035
+ {
1036
+ { "v", (double)Format }, { "master", false }, { "write", want.Write },
1037
+ { "grants", names.Cast<object>().ToList() },
1038
+ };
1039
+
1040
+ vault.Keys.Add(SealKey(root, id, want.Passphrase,
1041
+ want.Iterations ?? iterations, ring, meta));
1042
+
1043
+ Save(vault);
1044
+ }
1045
+ }
1046
+
1047
+ /// <summary>
1048
+ /// Drop a key. Master only.
1049
+ ///
1050
+ /// <para>Anyone who already copied the file keeps whatever that
1051
+ /// key could read, so revoking bars future reads of the LIVE file
1052
+ /// and `Rotate` is what takes a secret back.</para>
1053
+ /// </summary>
1054
+ public void Revoke(string key)
1055
+ {
1056
+ // Every write on this file, from any handle in this process,
1057
+ // serializes here; see LockFor.
1058
+ lock (LockFor(file))
1059
+ {
1060
+ VaultFile vault;
1061
+ var open = Load(out vault);
1062
+ RootOf(open, "revoking a key");
1063
+
1064
+ if (key == open.Info.Key)
1065
+ {
1066
+ throw Fail("a key cannot revoke itself: " + key);
1067
+ }
1068
+
1069
+ var found = vault.Keys.FirstOrDefault(record => record.Id == key);
1070
+
1071
+ if (null == found)
1072
+ {
1073
+ throw Fail("no such key: " + key);
1074
+ }
1075
+
1076
+ vault.Keys.Remove(found);
1077
+ Save(vault);
1078
+ }
1079
+ }
1080
+
1081
+ /// <summary>
1082
+ /// A new root key, every value re-encrypted under it, and EVERY
1083
+ /// OTHER KEY DROPPED. Master only.
1084
+ ///
1085
+ /// <para>The other keys go because they must: their rings are
1086
+ /// sealed under passphrases this process does not have. Re-grant
1087
+ /// afterwards.</para>
1088
+ /// </summary>
1089
+ public void Rotate()
1090
+ {
1091
+ // Every write on this file, from any handle in this process,
1092
+ // serializes here; see LockFor.
1093
+ lock (LockFor(file))
1094
+ {
1095
+ VaultFile vault;
1096
+ var open = Load(out vault);
1097
+ RootOf(open, "rotating the vault");
1098
+
1099
+ // Read everything out under the old root before anything
1100
+ // changes: once the root is replaced the old derived keys are
1101
+ // unreachable.
1102
+ var plain = new List<KeyValuePair<string, string>>();
1103
+
1104
+ foreach (var name in List())
1105
+ {
1106
+ plain.Add(new KeyValuePair<string, string>(name, Get(name)));
1107
+ }
1108
+
1109
+ var root = Random(KeyLen);
1110
+ var namekey = Hmac(root, LabelNames);
1111
+
1112
+ var fresh = new VaultFile();
1113
+
1114
+ foreach (var secret in plain)
1115
+ {
1116
+ var key = SecretKey(root, secret.Key);
1117
+
1118
+ fresh.Entries.Add(new EntryRecord
1119
+ {
1120
+ Id = EntryId(key),
1121
+ Name = Seal(namekey, Utf8(secret.Key), AadName),
1122
+ Value = Seal(key, Utf8(secret.Value), AadSecret + secret.Key),
1123
+ });
1124
+ }
1125
+
1126
+ var iters = iterations;
1127
+
1128
+ foreach (var record in vault.Keys)
1129
+ {
1130
+ if (record.Id == keyid)
1131
+ {
1132
+ iters = record.Iters;
1133
+ }
1134
+ }
1135
+
1136
+ var ring = new Dictionary<string, object>
1137
+ {
1138
+ { "v", (double)Format }, { "write", true }, { "root", B64(root) },
1139
+ };
1140
+
1141
+ var meta = new Dictionary<string, object>
1142
+ {
1143
+ { "v", (double)Format }, { "master", true }, { "write", true },
1144
+ { "grants", new List<object>() },
1145
+ };
1146
+
1147
+ var record2 = SealKey(root, keyid, passphrase, iters, ring, meta);
1148
+ fresh.Keys.Add(record2);
1149
+
1150
+ // SAVE FIRST, adopt second. A handle holding the new root over
1151
+ // a file that still holds the old one reads nothing and says
1152
+ // the vault is damaged.
1153
+ Save(fresh);
1154
+
1155
+ opened = new Opened
1156
+ {
1157
+ Info = new KeyInfo(keyid, true, true, new List<string>()),
1158
+ Root = root,
1159
+ Ring = record2.Ring,
1160
+ };
1161
+ }
1162
+ }
1163
+
1164
+ // --- the inside -------------------------------------------------
1165
+
1166
+ private static bool True(Dictionary<string, object> map, string key)
1167
+ {
1168
+ return map.TryGetValue(key, out var value) && value is bool flag && flag;
1169
+ }
1170
+
1171
+ private byte[] Bytes()
1172
+ {
1173
+ try
1174
+ {
1175
+ return System.IO.File.ReadAllBytes(file);
1176
+ }
1177
+ catch (FileNotFoundException)
1178
+ {
1179
+ return Make();
1180
+ }
1181
+ catch (DirectoryNotFoundException)
1182
+ {
1183
+ return Make();
1184
+ }
1185
+ catch (Exception err) when (err is IOException || err is UnauthorizedAccessException)
1186
+ {
1187
+ throw Fail("cannot read " + file + ": " + err.Message);
1188
+ }
1189
+ }
1190
+
1191
+ private byte[] Make()
1192
+ {
1193
+ // A vault is configured deliberately, with a key. Its absence
1194
+ // is a broken deployment and never "no secrets here":
1195
+ // answering a miss would send the chain on to a weaker store.
1196
+ if (!create)
1197
+ {
1198
+ throw Fail("no vault file: " + file);
1199
+ }
1200
+
1201
+ PutNew(file, NewVault(keyid, passphrase, iterations));
1202
+
1203
+ try
1204
+ {
1205
+ return System.IO.File.ReadAllBytes(file);
1206
+ }
1207
+ catch (IOException err)
1208
+ {
1209
+ throw Fail("cannot read " + file + ": " + err.Message);
1210
+ }
1211
+ }
1212
+
1213
+ private Opened Load(out VaultFile vault)
1214
+ {
1215
+ vault = ReadFile(Bytes());
1216
+
1217
+ var record = vault.Keys.FirstOrDefault(key => key.Id == keyid);
1218
+
1219
+ if (null == record)
1220
+ {
1221
+ // REVOKED, or never there. Either way this handle is
1222
+ // finished, and dropping what it derived is what stops the
1223
+ // next call answering from memory.
1224
+ opened = null;
1225
+ throw Fail("no such key: " + keyid);
1226
+ }
1227
+
1228
+ // The file still holds this key, and holds the SAME ring: a
1229
+ // key revoked and re-granted under another passphrase is a
1230
+ // different key wearing the id, and re-deriving is what
1231
+ // refuses it.
1232
+ if (null != opened && SameSeal(opened.Ring, record.Ring))
1233
+ {
1234
+ return opened;
1235
+ }
1236
+
1237
+ opened = null;
1238
+
1239
+ var plain = Unseal(
1240
+ Kek(passphrase, record.Salt, record.Iters), record.Ring, AadRing + keyid,
1241
+ "wrong passphrase for key " + keyid + ", or a damaged vault");
1242
+
1243
+ var ring = JsonOf(plain, "key ring for " + keyid);
1244
+
1245
+ var grants = new Dictionary<string, byte[]>();
1246
+
1247
+ if (ring.TryGetValue("grants", out var raw)
1248
+ && raw is Dictionary<string, object> map)
1249
+ {
1250
+ foreach (var pair in map)
1251
+ {
1252
+ grants[pair.Key] = UnB64(pair.Value, "a granted key");
1253
+ }
1254
+ }
1255
+
1256
+ var names = new List<string>(grants.Keys);
1257
+ names.Sort(StringComparer.Ordinal);
1258
+
1259
+ var root = ring.TryGetValue("root", out var rootvalue) ? rootvalue : null;
1260
+
1261
+ opened = new Opened
1262
+ {
1263
+ Info = new KeyInfo(
1264
+ keyid, null != root, null != root || True(ring, "write"), names),
1265
+ Root = null == root ? null : UnB64(root, "the root key"),
1266
+ Grants = grants,
1267
+ Ring = record.Ring,
1268
+ };
1269
+
1270
+ return opened;
1271
+ }
1272
+
1273
+ private byte[] RootOf(Opened open, string what)
1274
+ {
1275
+ if (null == open.Root)
1276
+ {
1277
+ throw Fail(what + " needs a master key, and " + open.Info.Key
1278
+ + " is restricted");
1279
+ }
1280
+
1281
+ return open.Root;
1282
+ }
1283
+
1284
+ /// <summary>The key for one name, or null when this key cannot reach it.</summary>
1285
+ private byte[] KeyFor(Opened open, string name)
1286
+ {
1287
+ if (null != open.Root)
1288
+ {
1289
+ return SecretKey(open.Root, name);
1290
+ }
1291
+
1292
+ return open.Grants.TryGetValue(name, out var key) ? key : null;
1293
+ }
1294
+
1295
+ private EntryRecord FindEntry(VaultFile vault, byte[] key)
1296
+ {
1297
+ if (null == key)
1298
+ {
1299
+ return null;
1300
+ }
1301
+
1302
+ var id = EntryId(key);
1303
+ return vault.Entries.FirstOrDefault(entry => Same(entry.Id, id));
1304
+ }
1305
+
1306
+ private Dictionary<string, object> MetaOf(Opened open, KeyRecord record)
1307
+ {
1308
+ var root = RootOf(open, "reading key metadata");
1309
+ var what = "metadata for key " + record.Id;
1310
+
1311
+ try
1312
+ {
1313
+ return JsonOf(
1314
+ Unseal(Hmac(root, LabelMeta), record.Meta, AadMeta + record.Id, what),
1315
+ what);
1316
+ }
1317
+ catch (SekretoError)
1318
+ {
1319
+ // A record written under a root key this one has replaced.
1320
+ // The key is still in the file and still opens with its
1321
+ // own passphrase, so it is reported rather than hidden -
1322
+ // with what it can do unknown.
1323
+ return null;
1324
+ }
1325
+ }
1326
+
1327
+ private KeyRecord SealKey(byte[] root, string id, string phrase, int iters,
1328
+ Dictionary<string, object> ring, Dictionary<string, object> meta)
1329
+ {
1330
+ var salt = Random(SaltLen);
1331
+
1332
+ return new KeyRecord
1333
+ {
1334
+ Id = id,
1335
+ Salt = salt,
1336
+ Iters = iters,
1337
+ Ring = Seal(Kek(phrase, salt, iters), Utf8(Json.Stringify(ring)),
1338
+ AadRing + id),
1339
+ Meta = Seal(Hmac(root, LabelMeta), Utf8(Json.Stringify(meta)),
1340
+ AadMeta + id),
1341
+ };
1342
+ }
1343
+
1344
+ /// <summary>
1345
+ /// Read, change, and REPLACE - never edit in place.
1346
+ ///
1347
+ /// <para>THE TEMPORARY IS RANDOM AND EXCLUSIVE. `&lt;vault&gt;.&lt;pid&gt;.tmp` is a
1348
+ /// name anyone can predict, so anyone who can write the vault's
1349
+ /// directory could put a symlink there and have the next save
1350
+ /// truncate whatever it pointed at.</para>
1351
+ /// </summary>
1352
+ private void Save(VaultFile vault)
1353
+ {
1354
+ var temp = file + "." + Convert.ToHexString(Random(8)).ToLowerInvariant() + ".tmp";
1355
+
1356
+ try
1357
+ {
1358
+ using (var handle = new FileStream(temp, FileMode.CreateNew, FileAccess.Write))
1359
+ {
1360
+ var bytes = WriteFile(vault);
1361
+ handle.Write(bytes, 0, bytes.Length);
1362
+ }
1363
+
1364
+ OwnerOnly(temp);
1365
+ System.IO.File.Move(temp, file, true);
1366
+ }
1367
+ catch (Exception err) when (err is IOException || err is UnauthorizedAccessException)
1368
+ {
1369
+ try
1370
+ {
1371
+ System.IO.File.Delete(temp);
1372
+ }
1373
+ catch (IOException)
1374
+ {
1375
+ // The vault is unchanged either way, and the write
1376
+ // error is what the caller needs to be told about.
1377
+ }
1378
+
1379
+ throw Fail("cannot write " + file + ": " + err.Message);
1380
+ }
1381
+ }
1382
+ }
1383
+
1384
+ /// <summary>
1385
+ /// Open a vault file as one key.
1386
+ ///
1387
+ /// <para>The handle is lazy. Nothing is read, and no passphrase is
1388
+ /// stretched, until a method needs the file.</para>
1389
+ /// </summary>
1390
+ public static Vault OpenVault(Options options)
1391
+ {
1392
+ return new Vault(options);
1393
+ }
1394
+
1395
+ /// <summary>
1396
+ /// Make a vault file and return a handle on its master key.
1397
+ ///
1398
+ /// <para>Refuses a file that is already there: a vault is created
1399
+ /// once, and overwriting one discards every secret in it.</para>
1400
+ /// </summary>
1401
+ public static Vault CreateVault(Options options)
1402
+ {
1403
+ var opts = options ?? new Options();
1404
+
1405
+ if (string.IsNullOrEmpty(opts.File))
1406
+ {
1407
+ throw Fail("a vault needs a file");
1408
+ }
1409
+
1410
+ if (string.IsNullOrEmpty(opts.Passphrase))
1411
+ {
1412
+ throw Fail("a vault needs a passphrase");
1413
+ }
1414
+
1415
+ var keyid = CheckId(WantKey(opts.Key), "a vault needs a key id");
1416
+
1417
+ // No existence check first: the check and the write would be two
1418
+ // steps, and `PutNew` refuses an existing file in ONE.
1419
+ PutNew(opts.File, NewVault(keyid, opts.Passphrase, opts.Iterations));
1420
+
1421
+ return new Vault(opts);
1422
+ }
1423
+
1424
+ // --- the provider ---------------------------------------------------
1425
+
1426
+ /// <summary>
1427
+ /// Read a vault as one store in a chain.
1428
+ ///
1429
+ /// <para>The provider is the READ half and nothing more: a chain
1430
+ /// resolves secrets, and writing one is a deliberate act with an API
1431
+ /// of its own.</para>
1432
+ /// </summary>
1433
+ private sealed class MiniVaultProvider : IProvider
1434
+ {
1435
+ private readonly Vault vault;
1436
+
1437
+ internal MiniVaultProvider(Vault vault)
1438
+ {
1439
+ this.vault = vault;
1440
+ }
1441
+
1442
+ public string Lookup(string name)
1443
+ {
1444
+ return vault.Get(name);
1445
+ }
1446
+
1447
+ public string Describe()
1448
+ {
1449
+ return "minivault:" + vault.File();
1450
+ }
1451
+ }
1452
+
1453
+ public static IProvider ProviderOf(Vault vault)
1454
+ {
1455
+ return new MiniVaultProvider(vault);
1456
+ }
1457
+
1458
+ /// <summary>A vault provider from options, for a chain built by hand.</summary>
1459
+ public static IProvider MiniVaultProviderOf(Options options)
1460
+ {
1461
+ return ProviderOf(OpenVault(options));
1462
+ }
1463
+
1464
+ /// <summary>The vault options a provider spec describes.</summary>
1465
+ internal static Options VaultOptions(Dictionary<string, object> spec)
1466
+ {
1467
+ var out_ = new Options
1468
+ {
1469
+ File = Providers.TextOr(Get(spec, "file"), ""),
1470
+ Key = WantKey(Providers.Text(Get(spec, "vaultkey"))),
1471
+ Passphrase = Providers.TextOr(Get(spec, "passphrase"), ""),
1472
+ Create = Get(spec, "create") is bool flag && flag,
1473
+ };
1474
+
1475
+ if (Get(spec, "iterations") is double iterations)
1476
+ {
1477
+ out_.Iterations = (int)iterations;
1478
+ }
1479
+
1480
+ return out_;
1481
+ }
1482
+
1483
+ private static object Get(Dictionary<string, object> spec, string key)
1484
+ {
1485
+ return null != spec && spec.TryGetValue(key, out var value) ? value : null;
1486
+ }
1487
+
1488
+ /// <summary>
1489
+ /// The `minivault` provider kind, as a voxgig/plugin definition.
1490
+ ///
1491
+ /// <para>Written out rather than built by `Providers.ProviderPlugin`,
1492
+ /// because this definition publishes TWO exports: `provider`, the read
1493
+ /// half every kind publishes, and `vault`, the programmatic API.</para>
1494
+ /// </summary>
1495
+ public static Definition Plugin
1496
+ {
1497
+ get
1498
+ {
1499
+ var definition = new Definition("minivault");
1500
+
1501
+ definition.Define = inst =>
1502
+ {
1503
+ var spec = inst.Options() as Dictionary<string, object>
1504
+ ?? new Dictionary<string, object>();
1505
+
1506
+ Vault vault;
1507
+
1508
+ try
1509
+ {
1510
+ // `OpenVault` refuses bad configuration HERE, so a
1511
+ // mistyped chain fails at construction. Reaching the
1512
+ // FILE is not configuration: the handle is lazy.
1513
+ vault = OpenVault(VaultOptions(spec));
1514
+ }
1515
+ catch (SekretoError err)
1516
+ {
1517
+ throw new PluginException(
1518
+ Providers.ErrorCode, err.Message,
1519
+ Types.Details("ref", inst.Ref, "cause", err.Message));
1520
+ }
1521
+
1522
+ inst.Export(Providers.ProviderExport, ProviderOf(vault));
1523
+ inst.Export(VaultExport, vault);
1524
+ };
1525
+
1526
+ return definition;
1527
+ }
1528
+ }
1529
+
1530
+ /// <summary>
1531
+ /// The vault behind a store in a chain, as its programmatic API.
1532
+ ///
1533
+ /// <para>With no store named, the unqualified alias answers: one vault
1534
+ /// in the chain resolves whatever it is called, and two raise rather
1535
+ /// than picking one.</para>
1536
+ /// </summary>
1537
+ public static Vault VaultOf(Sekreto secrets)
1538
+ {
1539
+ var found = secrets.Host.Exports("minivault/" + VaultExport) as Vault;
1540
+
1541
+ if (null == found)
1542
+ {
1543
+ throw Fail("no minivault store in this chain");
1544
+ }
1545
+
1546
+ return found;
1547
+ }
1548
+
1549
+ /// <summary>The vault behind one NAMED store in a chain.</summary>
1550
+ public static Vault VaultOf(Sekreto secrets, string store)
1551
+ {
1552
+ if (null == store)
1553
+ {
1554
+ return VaultOf(secrets);
1555
+ }
1556
+
1557
+ // A NAMED STORE MUST EXIST, and the alias must not stand in for
1558
+ // it. `Host.Exports` falls back to the alias when the exact ref
1559
+ // misses, so asking for `minivault` in a chain whose only vault is
1560
+ // named `app` used to hand back the `app` vault - and then write
1561
+ // to it.
1562
+ var eref = "minivault" == store ? "minivault" : "minivault$" + store;
1563
+
1564
+ if (null == secrets.Host.Instance(eref))
1565
+ {
1566
+ throw Fail("no minivault store named " + store + " in this chain");
1567
+ }
1568
+
1569
+ return secrets.Host.Exports(eref + "/" + VaultExport) as Vault;
1570
+ }
1571
+ }
1572
+ }