@voxgig/sdkgen 4.9.0 → 4.11.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 (1159) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/helpers/manifest.d.ts +2 -1
  3. package/dist/helpers/manifest.js +75 -1
  4. package/dist/helpers/manifest.js.map +1 -1
  5. package/dist/helpers/modelNames.d.ts +7 -0
  6. package/dist/helpers/modelNames.js +232 -0
  7. package/dist/helpers/modelNames.js.map +1 -0
  8. package/dist/helpers/naming.d.ts +2 -1
  9. package/dist/helpers/naming.js +45 -1
  10. package/dist/helpers/naming.js.map +1 -1
  11. package/dist/sdkgen.d.ts +3 -2
  12. package/dist/sdkgen.js +12 -3
  13. package/dist/sdkgen.js.map +1 -1
  14. package/dist/testkit.d.ts +2 -0
  15. package/dist/testkit.js +80 -24
  16. package/dist/testkit.js.map +1 -1
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/dist/utility.js +17 -7
  19. package/dist/utility.js.map +1 -1
  20. package/package.json +1 -1
  21. package/project/.sdk/model/feature/secrets.aon +1001 -0
  22. package/project/.sdk/model/target/c.aon +15 -2
  23. package/project/.sdk/model/target/clojure.aon +10 -0
  24. package/project/.sdk/model/target/cpp.aon +18 -0
  25. package/project/.sdk/model/target/csharp.aon +5 -0
  26. package/project/.sdk/model/target/elixir.aon +6 -0
  27. package/project/.sdk/model/target/java.aon +5 -0
  28. package/project/.sdk/model/target/js.aon +5 -0
  29. package/project/.sdk/model/target/kotlin.aon +7 -0
  30. package/project/.sdk/model/target/lua.aon +17 -0
  31. package/project/.sdk/model/target/ocaml.aon +48 -5
  32. package/project/.sdk/model/target/perl.aon +5 -0
  33. package/project/.sdk/model/target/php.aon +5 -0
  34. package/project/.sdk/model/target/rb.aon +5 -0
  35. package/project/.sdk/model/target/rust.aon +5 -0
  36. package/project/.sdk/model/target/scala.aon +38 -2
  37. package/project/.sdk/model/target/swift.aon +10 -0
  38. package/project/.sdk/model/target/zig.aon +30 -4
  39. package/project/.sdk/src/cmp/c/Config_c.ts +338 -1
  40. package/project/.sdk/src/cmp/c/Main_c.ts +57 -2
  41. package/project/.sdk/src/cmp/c/Package_c.ts +12 -2
  42. package/project/.sdk/src/cmp/clojure/Config_clojure.ts +51 -4
  43. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +43 -1
  44. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +17 -1
  45. package/project/.sdk/src/cmp/clojure/featureextra_clojure.ts +130 -0
  46. package/project/.sdk/src/cmp/cpp/Config_cpp.ts +324 -2
  47. package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +2 -0
  48. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +62 -4
  49. package/project/.sdk/src/cmp/cpp/Package_cpp.ts +10 -0
  50. package/project/.sdk/src/cmp/csharp/Config_csharp.ts +70 -0
  51. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +9 -1
  52. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +25 -1
  53. package/project/.sdk/src/cmp/elixir/Config_elixir.ts +68 -2
  54. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +16 -0
  55. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +14 -1
  56. package/project/.sdk/src/cmp/java/Config_java.ts +84 -2
  57. package/project/.sdk/src/cmp/java/Main_java.ts +10 -1
  58. package/project/.sdk/src/cmp/js/Config_js.ts +75 -8
  59. package/project/.sdk/src/cmp/js/Main_js.ts +66 -2
  60. package/project/.sdk/src/cmp/js/fragment/Config.data.fragment.js +18 -1
  61. package/project/.sdk/src/cmp/js/fragment/Config.fragment.js +18 -1
  62. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +7 -0
  63. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +63 -1
  64. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +32 -2
  65. package/project/.sdk/src/cmp/lua/Config_lua.ts +88 -0
  66. package/project/.sdk/src/cmp/lua/Gitignore_lua.ts +4 -0
  67. package/project/.sdk/src/cmp/lua/Main_lua.ts +93 -3
  68. package/project/.sdk/src/cmp/lua/Package_lua.ts +60 -0
  69. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +10 -0
  70. package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +183 -5
  71. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +160 -3
  72. package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +25 -1
  73. package/project/.sdk/src/cmp/perl/Config_perl.ts +129 -3
  74. package/project/.sdk/src/cmp/perl/Main_perl.ts +41 -1
  75. package/project/.sdk/src/cmp/perl/Package_perl.ts +13 -1
  76. package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +1 -0
  77. package/project/.sdk/src/cmp/php/Config_php.ts +105 -1
  78. package/project/.sdk/src/cmp/php/Gitignore_php.ts +4 -2
  79. package/project/.sdk/src/cmp/php/Main_php.ts +16 -1
  80. package/project/.sdk/src/cmp/rb/Config_rb.ts +92 -2
  81. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +11 -1
  82. package/project/.sdk/src/cmp/rb/Main_rb.ts +7 -1
  83. package/project/.sdk/src/cmp/rust/Main_rust.ts +99 -1
  84. package/project/.sdk/src/cmp/rust/Package_rust.ts +72 -6
  85. package/project/.sdk/src/cmp/scala/Config_scala.ts +44 -0
  86. package/project/.sdk/src/cmp/scala/Main_scala.ts +68 -1
  87. package/project/.sdk/src/cmp/swift/Config_swift.ts +62 -1
  88. package/project/.sdk/src/cmp/swift/Main_swift.ts +35 -1
  89. package/project/.sdk/src/cmp/swift/Package_swift.ts +81 -11
  90. package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +58 -44
  91. package/project/.sdk/src/cmp/swift/utility_swift.ts +22 -0
  92. package/project/.sdk/src/cmp/zig/Config_zig.ts +130 -9
  93. package/project/.sdk/src/cmp/zig/Main_zig.ts +208 -4
  94. package/project/.sdk/{tm/zig/build.zig → src/cmp/zig/fragment/Build.fragment.zig} +7 -0
  95. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +25 -0
  96. package/project/.sdk/{tm/zig/root.zig → src/cmp/zig/fragment/Root.fragment.zig} +9 -0
  97. package/project/.sdk/tm/c/Makefile +58 -9
  98. package/project/.sdk/tm/c/core/sdk.h +10 -0
  99. package/project/.sdk/tm/c/feature/secrets/plugin/capability.c +133 -0
  100. package/project/.sdk/tm/c/feature/secrets/plugin/capability.h +39 -0
  101. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.c +83 -0
  102. package/project/.sdk/tm/c/feature/secrets/plugin/catalog.h +48 -0
  103. package/project/.sdk/tm/c/feature/secrets/plugin/config.c +413 -0
  104. package/project/.sdk/tm/c/feature/secrets/plugin/config.h +24 -0
  105. package/project/.sdk/tm/c/feature/secrets/plugin/depend.c +264 -0
  106. package/project/.sdk/tm/c/feature/secrets/plugin/depend.h +29 -0
  107. package/project/.sdk/tm/c/feature/secrets/plugin/env.c +220 -0
  108. package/project/.sdk/tm/c/feature/secrets/plugin/env.h +19 -0
  109. package/project/.sdk/tm/c/feature/secrets/plugin/export.c +97 -0
  110. package/project/.sdk/tm/c/feature/secrets/plugin/export.h +19 -0
  111. package/project/.sdk/tm/c/feature/secrets/plugin/graph.c +237 -0
  112. package/project/.sdk/tm/c/feature/secrets/plugin/graph.h +17 -0
  113. package/project/.sdk/tm/c/feature/secrets/plugin/host.c +1494 -0
  114. package/project/.sdk/tm/c/feature/secrets/plugin/host.h +135 -0
  115. package/project/.sdk/tm/c/feature/secrets/plugin/order.c +288 -0
  116. package/project/.sdk/tm/c/feature/secrets/plugin/order.h +18 -0
  117. package/project/.sdk/tm/c/feature/secrets/plugin/point.c +141 -0
  118. package/project/.sdk/tm/c/feature/secrets/plugin/point.h +80 -0
  119. package/project/.sdk/tm/c/feature/secrets/plugin/ref.c +170 -0
  120. package/project/.sdk/tm/c/feature/secrets/plugin/ref.h +52 -0
  121. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.c +98 -0
  122. package/project/.sdk/tm/c/feature/secrets/plugin/resolve.h +18 -0
  123. package/project/.sdk/tm/c/feature/secrets/plugin/types.c +150 -0
  124. package/project/.sdk/tm/c/feature/secrets/plugin/types.h +104 -0
  125. package/project/.sdk/tm/c/feature/secrets/plugin/value.c +649 -0
  126. package/project/.sdk/tm/c/feature/secrets/plugin/value.h +135 -0
  127. package/project/.sdk/tm/c/feature/secrets/plugin/version.c +151 -0
  128. package/project/.sdk/tm/c/feature/secrets/plugin/version.h +34 -0
  129. package/project/.sdk/tm/c/feature/secrets/plugins/aws.c +281 -0
  130. package/project/.sdk/tm/c/feature/secrets/plugins/azuresecrets.c +207 -0
  131. package/project/.sdk/tm/c/feature/secrets/plugins/boru.c +164 -0
  132. package/project/.sdk/tm/c/feature/secrets/plugins/clock.c +75 -0
  133. package/project/.sdk/tm/c/feature/secrets/plugins/doppler.c +141 -0
  134. package/project/.sdk/tm/c/feature/secrets/plugins/encode.c +144 -0
  135. package/project/.sdk/tm/c/feature/secrets/plugins/gcpsecrets.c +177 -0
  136. package/project/.sdk/tm/c/feature/secrets/plugins/hashicorp.c +239 -0
  137. package/project/.sdk/tm/c/feature/secrets/plugins/httpjson.c +599 -0
  138. package/project/.sdk/tm/c/feature/secrets/plugins/infisical.c +165 -0
  139. package/project/.sdk/tm/c/feature/secrets/plugins/onepassword.c +194 -0
  140. package/project/.sdk/tm/c/feature/secrets/plugins/proc.c +233 -0
  141. package/project/.sdk/tm/c/feature/secrets/plugins/secretspec.c +125 -0
  142. package/project/.sdk/tm/c/feature/secrets/plugins/sekretoplugins.h +125 -0
  143. package/project/.sdk/tm/c/feature/secrets/plugins/sha256.c +270 -0
  144. package/project/.sdk/tm/c/feature/secrets/plugins/sigv4.c +382 -0
  145. package/project/.sdk/tm/c/feature/secrets/plugins/support.h +153 -0
  146. package/project/.sdk/tm/c/feature/secrets/plugins/tls.c +420 -0
  147. package/project/.sdk/tm/c/feature/secrets/sekreto/internal.h +86 -0
  148. package/project/.sdk/tm/c/feature/secrets/sekreto/json.c +721 -0
  149. package/project/.sdk/tm/c/feature/secrets/sekreto/providers.c +813 -0
  150. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.c +944 -0
  151. package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.h +490 -0
  152. package/project/.sdk/tm/c/feature/secrets/sekreto/util.c +442 -0
  153. package/project/.sdk/tm/c/feature/secrets.c +797 -0
  154. package/project/.sdk/tm/c/feature/secrets.h +46 -0
  155. package/project/.sdk/tm/c/tests/feature/secrets/secrets_test.c +802 -0
  156. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  157. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  158. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  159. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  160. package/project/.sdk/tm/clojure/Makefile +3 -0
  161. package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +530 -0
  162. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +84 -0
  163. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +44 -0
  164. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +240 -0
  165. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +199 -0
  166. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +111 -0
  167. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +46 -0
  168. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +122 -0
  169. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +1018 -0
  170. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +106 -0
  171. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +157 -0
  172. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +77 -0
  173. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +92 -0
  174. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +46 -0
  175. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +177 -0
  176. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +90 -0
  177. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +40 -0
  178. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +111 -0
  179. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +297 -0
  180. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +192 -0
  181. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +261 -0
  182. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +165 -0
  183. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +111 -0
  184. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +107 -0
  185. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +61 -0
  186. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +88 -0
  187. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +115 -0
  188. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +214 -0
  189. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +80 -0
  190. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +93 -0
  191. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +63 -0
  192. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +99 -0
  193. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +142 -0
  194. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +25 -0
  195. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +196 -0
  196. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +113 -0
  197. package/project/.sdk/tm/clojure/src/sdk/core.clj +9 -0
  198. package/project/.sdk/tm/clojure/src/sdk/features.clj +13 -1
  199. package/project/.sdk/tm/clojure/test/sdk/test/feature/secrets.clj +581 -0
  200. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +103 -14
  201. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  202. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  203. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  204. package/project/.sdk/tm/cpp/Makefile +48 -4
  205. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.cpp +121 -0
  206. package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.hpp +41 -0
  207. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.cpp +60 -0
  208. package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.hpp +66 -0
  209. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.cpp +376 -0
  210. package/project/.sdk/tm/cpp/feature/secrets/plugin/config.hpp +29 -0
  211. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.cpp +230 -0
  212. package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.hpp +31 -0
  213. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.cpp +205 -0
  214. package/project/.sdk/tm/cpp/feature/secrets/plugin/env.hpp +25 -0
  215. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.cpp +84 -0
  216. package/project/.sdk/tm/cpp/feature/secrets/plugin/export.hpp +24 -0
  217. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.cpp +222 -0
  218. package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.hpp +21 -0
  219. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.cpp +1200 -0
  220. package/project/.sdk/tm/cpp/feature/secrets/plugin/host.hpp +250 -0
  221. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.cpp +250 -0
  222. package/project/.sdk/tm/cpp/feature/secrets/plugin/order.hpp +22 -0
  223. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.cpp +110 -0
  224. package/project/.sdk/tm/cpp/feature/secrets/plugin/point.hpp +79 -0
  225. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.cpp +136 -0
  226. package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.hpp +60 -0
  227. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.cpp +82 -0
  228. package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.hpp +25 -0
  229. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.cpp +90 -0
  230. package/project/.sdk/tm/cpp/feature/secrets/plugin/types.hpp +65 -0
  231. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.cpp +491 -0
  232. package/project/.sdk/tm/cpp/feature/secrets/plugin/value.hpp +120 -0
  233. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.cpp +143 -0
  234. package/project/.sdk/tm/cpp/feature/secrets/plugin/version.hpp +36 -0
  235. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.cpp +248 -0
  236. package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.hpp +30 -0
  237. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.cpp +149 -0
  238. package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.hpp +23 -0
  239. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.cpp +117 -0
  240. package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.hpp +27 -0
  241. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.cpp +180 -0
  242. package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.hpp +52 -0
  243. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.cpp +87 -0
  244. package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.hpp +23 -0
  245. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.cpp +121 -0
  246. package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.hpp +23 -0
  247. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.cpp +153 -0
  248. package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.hpp +23 -0
  249. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.cpp +666 -0
  250. package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.hpp +160 -0
  251. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.cpp +123 -0
  252. package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.hpp +23 -0
  253. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.cpp +125 -0
  254. package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.hpp +23 -0
  255. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.cpp +223 -0
  256. package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.hpp +47 -0
  257. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.cpp +104 -0
  258. package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.hpp +27 -0
  259. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.cpp +242 -0
  260. package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.hpp +58 -0
  261. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.cpp +260 -0
  262. package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.hpp +47 -0
  263. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.cpp +476 -0
  264. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.hpp +89 -0
  265. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.cpp +312 -0
  266. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.hpp +263 -0
  267. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.cpp +354 -0
  268. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.hpp +111 -0
  269. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.cpp +613 -0
  270. package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.hpp +227 -0
  271. package/project/.sdk/tm/cpp/feature/secrets.hpp +745 -0
  272. package/project/.sdk/tm/cpp/test/feature/secrets/secrets_test.cpp +808 -0
  273. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  274. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  275. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  276. package/project/.sdk/tm/csharp/feature/SecretsFeature.cs +915 -0
  277. package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +196 -0
  278. package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +70 -0
  279. package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +505 -0
  280. package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +52 -0
  281. package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +285 -0
  282. package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +55 -0
  283. package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +228 -0
  284. package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +102 -0
  285. package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +256 -0
  286. package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +1379 -0
  287. package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +177 -0
  288. package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +326 -0
  289. package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +295 -0
  290. package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +113 -0
  291. package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +177 -0
  292. package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +198 -0
  293. package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +95 -0
  294. package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +351 -0
  295. package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +196 -0
  296. package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +325 -0
  297. package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +195 -0
  298. package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +192 -0
  299. package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +75 -0
  300. package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +112 -0
  301. package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +167 -0
  302. package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +221 -0
  303. package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +213 -0
  304. package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +155 -0
  305. package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +169 -0
  306. package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +172 -0
  307. package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +240 -0
  308. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +192 -0
  309. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +503 -0
  310. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +775 -0
  311. package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +1787 -0
  312. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  313. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  314. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +10 -0
  315. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
  316. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +118 -0
  317. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +56 -0
  318. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +320 -0
  319. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +205 -0
  320. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +166 -0
  321. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +13 -0
  322. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +73 -0
  323. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +185 -0
  324. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +1182 -0
  325. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +139 -0
  326. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +132 -0
  327. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +179 -0
  328. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +99 -0
  329. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +129 -0
  330. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +59 -0
  331. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +190 -0
  332. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +136 -0
  333. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +42 -0
  334. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +368 -0
  335. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +257 -0
  336. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +160 -0
  337. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +127 -0
  338. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +96 -0
  339. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +124 -0
  340. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +162 -0
  341. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +627 -0
  342. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +134 -0
  343. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +125 -0
  344. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +152 -0
  345. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +80 -0
  346. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +101 -0
  347. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +176 -0
  348. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +67 -0
  349. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +536 -0
  350. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +662 -0
  351. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets.ex +839 -0
  352. package/project/.sdk/tm/elixir/test/feature/secrets/secrets_test.exs +1113 -0
  353. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  354. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  355. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  356. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  357. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  358. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  359. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  360. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  361. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
  362. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  363. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
  364. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  365. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  366. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  367. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  368. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  369. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  370. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  371. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +2 -2
  372. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  373. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  374. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  375. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  376. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  377. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +2 -2
  378. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +2 -2
  379. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +2 -2
  380. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  381. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  382. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  383. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +2 -2
  384. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +2 -2
  385. package/project/.sdk/tm/go/feature/secrets_feature.go +48 -10
  386. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +239 -0
  387. package/project/.sdk/tm/go/test/omni/omni.go +2 -2
  388. package/project/.sdk/tm/go/test/omni/util.go +2 -2
  389. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
  390. package/project/.sdk/tm/java/feature/SecretsFeature.java +791 -0
  391. package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +181 -0
  392. package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +64 -0
  393. package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +433 -0
  394. package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +54 -0
  395. package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +292 -0
  396. package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +49 -0
  397. package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +204 -0
  398. package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +93 -0
  399. package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +244 -0
  400. package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +1196 -0
  401. package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +173 -0
  402. package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +339 -0
  403. package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +274 -0
  404. package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +94 -0
  405. package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +37 -0
  406. package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +172 -0
  407. package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +171 -0
  408. package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +89 -0
  409. package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +232 -0
  410. package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +198 -0
  411. package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +142 -0
  412. package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +229 -0
  413. package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +302 -0
  414. package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +21 -0
  415. package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +698 -0
  416. package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +100 -0
  417. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +294 -0
  418. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +164 -0
  419. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +161 -0
  420. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +103 -0
  421. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +143 -0
  422. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +186 -0
  423. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +192 -0
  424. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +139 -0
  425. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +143 -0
  426. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +80 -0
  427. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +138 -0
  428. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +243 -0
  429. package/project/.sdk/tm/java/test/feature/secrets/SecretsFeatureTest.java +1050 -0
  430. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  431. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  432. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  433. package/project/.sdk/tm/java/utility/MakeOptions.java +7 -0
  434. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  435. package/project/.sdk/tm/js/src/feature/secrets/SecretsFeature.js +454 -0
  436. package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +119 -0
  437. package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +42 -0
  438. package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +323 -0
  439. package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +196 -0
  440. package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +120 -0
  441. package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +48 -0
  442. package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +150 -0
  443. package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +949 -0
  444. package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +35 -0
  445. package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +165 -0
  446. package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +94 -0
  447. package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +106 -0
  448. package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +59 -0
  449. package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +79 -0
  450. package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +100 -0
  451. package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +574 -0
  452. package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +56 -0
  453. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +188 -0
  454. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +135 -0
  455. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +128 -0
  456. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +67 -0
  457. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +115 -0
  458. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +139 -0
  459. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +93 -0
  460. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +99 -0
  461. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +111 -0
  462. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +105 -0
  463. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +157 -0
  464. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +119 -0
  465. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +39 -0
  466. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +40 -0
  467. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +21 -0
  468. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +42 -0
  469. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +18 -0
  470. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +151 -0
  471. package/project/.sdk/tm/js/src/utility/StructUtility.js +1 -1
  472. package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +1019 -0
  473. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  474. package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
  475. package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
  476. package/project/.sdk/tm/kotlin/feature/SecretsFeature.kt +684 -0
  477. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +117 -0
  478. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +40 -0
  479. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +322 -0
  480. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +227 -0
  481. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +163 -0
  482. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +57 -0
  483. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +179 -0
  484. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +1131 -0
  485. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +241 -0
  486. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +180 -0
  487. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +64 -0
  488. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +124 -0
  489. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +125 -0
  490. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +66 -0
  491. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +171 -0
  492. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +132 -0
  493. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +359 -0
  494. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +21 -0
  495. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +308 -0
  496. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +525 -0
  497. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +126 -0
  498. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +205 -0
  499. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +251 -0
  500. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +145 -0
  501. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +130 -0
  502. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +77 -0
  503. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +119 -0
  504. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +156 -0
  505. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +219 -0
  506. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +114 -0
  507. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +114 -0
  508. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +118 -0
  509. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +220 -0
  510. package/project/.sdk/tm/kotlin/test/feature/secrets/SecretsTest.kt +1217 -0
  511. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  512. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  513. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  514. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  515. package/project/.sdk/tm/lua/Makefile +15 -4
  516. package/project/.sdk/tm/lua/feature/secrets/native/sekretonet.c +806 -0
  517. package/project/.sdk/tm/lua/feature/secrets/plugin/capability.lua +135 -0
  518. package/project/.sdk/tm/lua/feature/secrets/plugin/catalog.lua +63 -0
  519. package/project/.sdk/tm/lua/feature/secrets/plugin/config.lua +361 -0
  520. package/project/.sdk/tm/lua/feature/secrets/plugin/depend.lua +232 -0
  521. package/project/.sdk/tm/lua/feature/secrets/plugin/env.lua +168 -0
  522. package/project/.sdk/tm/lua/feature/secrets/plugin/export.lua +66 -0
  523. package/project/.sdk/tm/lua/feature/secrets/plugin/graph.lua +194 -0
  524. package/project/.sdk/tm/lua/feature/secrets/plugin/host.lua +1190 -0
  525. package/project/.sdk/tm/lua/feature/secrets/plugin/json.lua +169 -0
  526. package/project/.sdk/tm/lua/feature/secrets/plugin/order.lua +207 -0
  527. package/project/.sdk/tm/lua/feature/secrets/plugin/point.lua +106 -0
  528. package/project/.sdk/tm/lua/feature/secrets/plugin/ref.lua +115 -0
  529. package/project/.sdk/tm/lua/feature/secrets/plugin/resolve.lua +78 -0
  530. package/project/.sdk/tm/lua/feature/secrets/plugin/types.lua +275 -0
  531. package/project/.sdk/tm/lua/feature/secrets/plugin/version.lua +131 -0
  532. package/project/.sdk/tm/lua/feature/secrets/plugin.lua +76 -0
  533. package/project/.sdk/tm/lua/feature/secrets/sekreto/addr.lua +124 -0
  534. package/project/.sdk/tm/lua/feature/secrets/sekreto/err.lua +47 -0
  535. package/project/.sdk/tm/lua/feature/secrets/sekreto/name.lua +315 -0
  536. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/aws.lua +228 -0
  537. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/azuresecrets.lua +137 -0
  538. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/boru.lua +124 -0
  539. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/crypto.lua +212 -0
  540. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/doppler.lua +89 -0
  541. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/gcpsecrets.lua +129 -0
  542. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/hashicorp.lua +154 -0
  543. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/httpjson.lua +248 -0
  544. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/infisical.lua +113 -0
  545. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/json.lua +449 -0
  546. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/net.lua +198 -0
  547. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/onepassword.lua +126 -0
  548. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/secretspec.lua +93 -0
  549. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/sigv4.lua +269 -0
  550. package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/support.lua +146 -0
  551. package/project/.sdk/tm/lua/feature/secrets/sekreto/providers.lua +346 -0
  552. package/project/.sdk/tm/lua/feature/secrets/sekreto.lua +479 -0
  553. package/project/.sdk/tm/lua/feature/secrets_feature.lua +690 -0
  554. package/project/.sdk/tm/lua/test/extend_test.lua +105 -0
  555. package/project/.sdk/tm/lua/test/feature/secrets/secrets_feature_test.lua +862 -0
  556. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  557. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  558. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  559. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  560. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  561. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  562. package/project/.sdk/tm/ocaml/Makefile +52 -8
  563. package/project/.sdk/tm/ocaml/feature/secrets/plugin/capability.ml +106 -0
  564. package/project/.sdk/tm/ocaml/feature/secrets/plugin/catalog.ml +43 -0
  565. package/project/.sdk/tm/ocaml/feature/secrets/plugin/config.ml +349 -0
  566. package/project/.sdk/tm/ocaml/feature/secrets/plugin/defs.ml +143 -0
  567. package/project/.sdk/tm/ocaml/feature/secrets/plugin/depend.ml +217 -0
  568. package/project/.sdk/tm/ocaml/feature/secrets/plugin/env.ml +197 -0
  569. package/project/.sdk/tm/ocaml/feature/secrets/plugin/export.ml +89 -0
  570. package/project/.sdk/tm/ocaml/feature/secrets/plugin/graph.ml +227 -0
  571. package/project/.sdk/tm/ocaml/feature/secrets/plugin/host.ml +1112 -0
  572. package/project/.sdk/tm/ocaml/feature/secrets/plugin/order.ml +202 -0
  573. package/project/.sdk/tm/ocaml/feature/secrets/plugin/point.ml +138 -0
  574. package/project/.sdk/tm/ocaml/feature/secrets/plugin/ref.ml +126 -0
  575. package/project/.sdk/tm/ocaml/feature/secrets/plugin/resolve.ml +62 -0
  576. package/project/.sdk/tm/ocaml/feature/secrets/plugin/types.ml +97 -0
  577. package/project/.sdk/tm/ocaml/feature/secrets/plugin/value.ml +387 -0
  578. package/project/.sdk/tm/ocaml/feature/secrets/plugin/version.ml +139 -0
  579. package/project/.sdk/tm/ocaml/feature/secrets/plugins/aws.ml +171 -0
  580. package/project/.sdk/tm/ocaml/feature/secrets/plugins/azuresecrets.ml +116 -0
  581. package/project/.sdk/tm/ocaml/feature/secrets/plugins/boru.ml +95 -0
  582. package/project/.sdk/tm/ocaml/feature/secrets/plugins/crypto.ml +149 -0
  583. package/project/.sdk/tm/ocaml/feature/secrets/plugins/doppler.ml +61 -0
  584. package/project/.sdk/tm/ocaml/feature/secrets/plugins/gcpsecrets.ml +93 -0
  585. package/project/.sdk/tm/ocaml/feature/secrets/plugins/hashicorp.ml +120 -0
  586. package/project/.sdk/tm/ocaml/feature/secrets/plugins/http.ml +421 -0
  587. package/project/.sdk/tm/ocaml/feature/secrets/plugins/httpjson.ml +66 -0
  588. package/project/.sdk/tm/ocaml/feature/secrets/plugins/infisical.ml +85 -0
  589. package/project/.sdk/tm/ocaml/feature/secrets/plugins/onepassword.ml +112 -0
  590. package/project/.sdk/tm/ocaml/feature/secrets/plugins/runcmd.ml +97 -0
  591. package/project/.sdk/tm/ocaml/feature/secrets/plugins/secretspec.ml +68 -0
  592. package/project/.sdk/tm/ocaml/feature/secrets/plugins/sigv4.ml +259 -0
  593. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls.ml +44 -0
  594. package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls_stubs.c +358 -0
  595. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/json.ml +376 -0
  596. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/provider.ml +647 -0
  597. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/secret.ml +299 -0
  598. package/project/.sdk/tm/ocaml/feature/secrets/sekreto/sekreto.ml +347 -0
  599. package/project/.sdk/tm/ocaml/feature/secrets_feature.ml +453 -0
  600. package/project/.sdk/tm/ocaml/test/feature/secrets/t_secrets.ml +670 -0
  601. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  602. package/project/.sdk/tm/perl/Makefile +6 -1
  603. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +141 -0
  604. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +65 -0
  605. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +346 -0
  606. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +216 -0
  607. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +176 -0
  608. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +59 -0
  609. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +157 -0
  610. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +1139 -0
  611. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +187 -0
  612. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +100 -0
  613. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +119 -0
  614. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +71 -0
  615. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +251 -0
  616. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +122 -0
  617. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +70 -0
  618. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +263 -0
  619. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +159 -0
  620. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +180 -0
  621. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +92 -0
  622. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +138 -0
  623. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +213 -0
  624. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +173 -0
  625. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +132 -0
  626. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +132 -0
  627. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +102 -0
  628. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +132 -0
  629. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +190 -0
  630. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +124 -0
  631. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +301 -0
  632. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +605 -0
  633. package/project/.sdk/tm/perl/feature/secrets_feature.pm +696 -0
  634. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  635. package/project/.sdk/tm/perl/t/feature/secrets/secrets.t +1004 -0
  636. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  637. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  638. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  639. package/project/.sdk/tm/php/feature/SecretsFeature.php +694 -0
  640. package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +226 -0
  641. package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +75 -0
  642. package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +444 -0
  643. package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +262 -0
  644. package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +202 -0
  645. package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +74 -0
  646. package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +195 -0
  647. package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +1514 -0
  648. package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +260 -0
  649. package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +129 -0
  650. package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +169 -0
  651. package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +79 -0
  652. package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +348 -0
  653. package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +163 -0
  654. package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +40 -0
  655. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +274 -0
  656. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +170 -0
  657. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +163 -0
  658. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +106 -0
  659. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +144 -0
  660. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +194 -0
  661. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +113 -0
  662. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +131 -0
  663. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +150 -0
  664. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +101 -0
  665. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +146 -0
  666. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +161 -0
  667. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +129 -0
  668. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +322 -0
  669. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +724 -0
  670. package/project/.sdk/tm/php/test/feature/secrets/SecretsTest.php +1165 -0
  671. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  672. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  673. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  674. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  675. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  676. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  677. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  678. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  679. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
  680. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  681. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
  682. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  683. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  684. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  685. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  686. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  687. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  688. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +2 -2
  689. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  690. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
  691. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  692. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  693. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  694. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  695. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
  696. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  697. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
  698. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  699. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  700. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  701. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
  702. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
  703. package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +28 -6
  704. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  705. package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +114 -0
  706. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  707. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
  708. package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
  709. package/project/.sdk/tm/rb/Makefile +7 -1
  710. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +118 -0
  711. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +55 -0
  712. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +315 -0
  713. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +197 -0
  714. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +143 -0
  715. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +52 -0
  716. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +147 -0
  717. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +1079 -0
  718. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +169 -0
  719. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +93 -0
  720. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +112 -0
  721. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +56 -0
  722. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +99 -0
  723. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +106 -0
  724. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +24 -0
  725. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +111 -0
  726. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +200 -0
  727. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +130 -0
  728. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +121 -0
  729. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +66 -0
  730. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +107 -0
  731. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +137 -0
  732. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +136 -0
  733. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +97 -0
  734. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +104 -0
  735. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +113 -0
  736. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +127 -0
  737. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +210 -0
  738. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +465 -0
  739. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +30 -0
  740. package/project/.sdk/tm/rb/feature/secrets_feature.rb +583 -0
  741. package/project/.sdk/tm/rb/test/feature/secrets/secrets_feature_test.rb +935 -0
  742. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  743. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  744. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  745. package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +130 -0
  746. package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +114 -0
  747. package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +416 -0
  748. package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +245 -0
  749. package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +200 -0
  750. package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +90 -0
  751. package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +231 -0
  752. package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +1565 -0
  753. package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +18 -0
  754. package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +226 -0
  755. package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +137 -0
  756. package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +148 -0
  757. package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +83 -0
  758. package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +132 -0
  759. package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +433 -0
  760. package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +174 -0
  761. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +146 -0
  762. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +230 -0
  763. package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +328 -0
  764. package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +184 -0
  765. package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +172 -0
  766. package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +102 -0
  767. package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +153 -0
  768. package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +228 -0
  769. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +537 -0
  770. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +300 -0
  771. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +137 -0
  772. package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +148 -0
  773. package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +165 -0
  774. package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +150 -0
  775. package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +144 -0
  776. package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +51 -0
  777. package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +637 -0
  778. package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +677 -0
  779. package/project/.sdk/tm/rust/feature/secrets.rs +984 -0
  780. package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +1605 -0
  781. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  782. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  783. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  784. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  785. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  786. package/project/.sdk/tm/scala/Makefile +8 -3
  787. package/project/.sdk/tm/scala/feature/SecretsFeature.scala +578 -0
  788. package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +96 -0
  789. package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +270 -0
  790. package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +216 -0
  791. package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +144 -0
  792. package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +59 -0
  793. package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +149 -0
  794. package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +1089 -0
  795. package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +156 -0
  796. package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +169 -0
  797. package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +47 -0
  798. package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +107 -0
  799. package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +131 -0
  800. package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +53 -0
  801. package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +110 -0
  802. package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +157 -0
  803. package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +136 -0
  804. package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +302 -0
  805. package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +20 -0
  806. package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +281 -0
  807. package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +473 -0
  808. package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +123 -0
  809. package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +216 -0
  810. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +225 -0
  811. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +124 -0
  812. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +104 -0
  813. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +68 -0
  814. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +97 -0
  815. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +131 -0
  816. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +209 -0
  817. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +98 -0
  818. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +90 -0
  819. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +95 -0
  820. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +214 -0
  821. package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +1042 -0
  822. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  823. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  824. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  825. package/project/.sdk/tm/scala/utility/Make.scala +7 -0
  826. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/SecretsFeature.swift +669 -0
  827. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +98 -0
  828. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +87 -0
  829. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +298 -0
  830. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +209 -0
  831. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +191 -0
  832. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +63 -0
  833. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +158 -0
  834. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +1141 -0
  835. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +192 -0
  836. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +183 -0
  837. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +130 -0
  838. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +141 -0
  839. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +59 -0
  840. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +125 -0
  841. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +198 -0
  842. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +139 -0
  843. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +271 -0
  844. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +173 -0
  845. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +139 -0
  846. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +198 -0
  847. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +86 -0
  848. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +129 -0
  849. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +175 -0
  850. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +310 -0
  851. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +140 -0
  852. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +118 -0
  853. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +105 -0
  854. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +111 -0
  855. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +297 -0
  856. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +120 -0
  857. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +452 -0
  858. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +25 -0
  859. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +689 -0
  860. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +755 -0
  861. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +9 -0
  862. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +30 -0
  863. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/feature/secrets/SecretsFeatureTest.swift +1030 -0
  864. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  865. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  866. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  867. package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +35 -12
  868. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  869. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  870. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  871. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  872. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  873. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
  874. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  875. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  876. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
  877. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  878. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  879. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  880. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  881. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  882. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  883. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  884. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  885. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  886. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  887. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  888. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  889. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  890. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  891. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  892. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  893. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  894. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  895. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  896. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  897. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  898. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
  899. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  900. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  901. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  902. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  903. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
  904. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1 -1
  905. package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +73 -0
  906. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  907. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  908. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  909. package/project/.sdk/tm/zig/feature/secrets/plugin/capability.zig +137 -0
  910. package/project/.sdk/tm/zig/feature/secrets/plugin/catalog.zig +90 -0
  911. package/project/.sdk/tm/zig/feature/secrets/plugin/config.zig +346 -0
  912. package/project/.sdk/tm/zig/feature/secrets/plugin/depend.zig +244 -0
  913. package/project/.sdk/tm/zig/feature/secrets/plugin/env.zig +201 -0
  914. package/project/.sdk/tm/zig/feature/secrets/plugin/export.zig +83 -0
  915. package/project/.sdk/tm/zig/feature/secrets/plugin/graph.zig +212 -0
  916. package/project/.sdk/tm/zig/feature/secrets/plugin/host.zig +1224 -0
  917. package/project/.sdk/tm/zig/feature/secrets/plugin/inst.zig +126 -0
  918. package/project/.sdk/tm/zig/feature/secrets/plugin/order.zig +228 -0
  919. package/project/.sdk/tm/zig/feature/secrets/plugin/plugin.zig +34 -0
  920. package/project/.sdk/tm/zig/feature/secrets/plugin/point.zig +166 -0
  921. package/project/.sdk/tm/zig/feature/secrets/plugin/ref.zig +147 -0
  922. package/project/.sdk/tm/zig/feature/secrets/plugin/resolve.zig +74 -0
  923. package/project/.sdk/tm/zig/feature/secrets/plugin/types.zig +140 -0
  924. package/project/.sdk/tm/zig/feature/secrets/plugin/value.zig +662 -0
  925. package/project/.sdk/tm/zig/feature/secrets/plugin/version.zig +139 -0
  926. package/project/.sdk/tm/zig/feature/secrets/plugins/aws.zig +294 -0
  927. package/project/.sdk/tm/zig/feature/secrets/plugins/azuresecrets.zig +222 -0
  928. package/project/.sdk/tm/zig/feature/secrets/plugins/boru.zig +188 -0
  929. package/project/.sdk/tm/zig/feature/secrets/plugins/doppler.zig +135 -0
  930. package/project/.sdk/tm/zig/feature/secrets/plugins/gcpsecrets.zig +170 -0
  931. package/project/.sdk/tm/zig/feature/secrets/plugins/hashicorp.zig +242 -0
  932. package/project/.sdk/tm/zig/feature/secrets/plugins/httpjson.zig +535 -0
  933. package/project/.sdk/tm/zig/feature/secrets/plugins/infisical.zig +167 -0
  934. package/project/.sdk/tm/zig/feature/secrets/plugins/onepassword.zig +202 -0
  935. package/project/.sdk/tm/zig/feature/secrets/plugins/secretspec.zig +160 -0
  936. package/project/.sdk/tm/zig/feature/secrets/plugins/sigv4.zig +336 -0
  937. package/project/.sdk/tm/zig/feature/secrets/sekreto/addr.zig +148 -0
  938. package/project/.sdk/tm/zig/feature/secrets/sekreto/builtins.zig +259 -0
  939. package/project/.sdk/tm/zig/feature/secrets/sekreto/provider.zig +440 -0
  940. package/project/.sdk/tm/zig/feature/secrets/sekreto/sekreto.zig +944 -0
  941. package/project/.sdk/tm/zig/feature/secrets.zig +854 -0
  942. package/project/.sdk/tm/zig/test/feature/secrets/secrets_test.zig +891 -0
  943. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +2 -2
  944. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +2 -2
  945. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +2 -2
  946. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +2 -2
  947. package/project/sdkgen-package.json +1 -4
  948. package/src/helpers/manifest.ts +81 -1
  949. package/src/helpers/modelNames.ts +284 -0
  950. package/src/helpers/naming.ts +45 -1
  951. package/src/sdkgen.ts +11 -1
  952. package/src/testkit.ts +115 -26
  953. package/src/utility.ts +17 -7
  954. package/project/.sdk/model/target/dart.aon +0 -58
  955. package/project/.sdk/model/target/lean.aon +0 -91
  956. package/project/.sdk/model/target/seneca-provider.aon +0 -120
  957. package/project/.sdk/src/cmp/dart/Config_dart.ts +0 -176
  958. package/project/.sdk/src/cmp/dart/EntityBase_dart.ts +0 -34
  959. package/project/.sdk/src/cmp/dart/EntityOperation_dart.ts +0 -43
  960. package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +0 -207
  961. package/project/.sdk/src/cmp/dart/Entity_dart.ts +0 -87
  962. package/project/.sdk/src/cmp/dart/Gitignore_dart.ts +0 -34
  963. package/project/.sdk/src/cmp/dart/MainEntity_dart.ts +0 -33
  964. package/project/.sdk/src/cmp/dart/Main_dart.ts +0 -106
  965. package/project/.sdk/src/cmp/dart/Package_dart.ts +0 -82
  966. package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +0 -177
  967. package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +0 -238
  968. package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +0 -53
  969. package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +0 -152
  970. package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +0 -59
  971. package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +0 -65
  972. package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +0 -151
  973. package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +0 -63
  974. package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +0 -225
  975. package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +0 -397
  976. package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +0 -24
  977. package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +0 -106
  978. package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +0 -78
  979. package/project/.sdk/src/cmp/dart/SdkError_dart.ts +0 -42
  980. package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +0 -516
  981. package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +0 -628
  982. package/project/.sdk/src/cmp/dart/Test_dart.ts +0 -116
  983. package/project/.sdk/src/cmp/dart/fragment/Config.data.fragment.dart +0 -79
  984. package/project/.sdk/src/cmp/dart/fragment/Config.fragment.dart +0 -51
  985. package/project/.sdk/src/cmp/dart/fragment/Direct.test.fragment.dart +0 -25
  986. package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +0 -29
  987. package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +0 -28
  988. package/project/.sdk/src/cmp/dart/fragment/EntityBase.fragment.dart +0 -302
  989. package/project/.sdk/src/cmp/dart/fragment/EntityCreateOp.fragment.dart +0 -98
  990. package/project/.sdk/src/cmp/dart/fragment/EntityListOp.fragment.dart +0 -90
  991. package/project/.sdk/src/cmp/dart/fragment/EntityLoadOp.fragment.dart +0 -102
  992. package/project/.sdk/src/cmp/dart/fragment/EntityRemoveOp.fragment.dart +0 -108
  993. package/project/.sdk/src/cmp/dart/fragment/EntityUpdateOp.fragment.dart +0 -102
  994. package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +0 -338
  995. package/project/.sdk/src/cmp/dart/fragment/SdkError.fragment.dart +0 -26
  996. package/project/.sdk/src/cmp/dart/tsconfig.json +0 -15
  997. package/project/.sdk/src/cmp/dart/utility_dart.ts +0 -155
  998. package/project/.sdk/src/cmp/lean/Config_lean.ts +0 -93
  999. package/project/.sdk/src/cmp/lean/Entity_lean.ts +0 -9
  1000. package/project/.sdk/src/cmp/lean/Gitignore_lean.ts +0 -18
  1001. package/project/.sdk/src/cmp/lean/Main_lean.ts +0 -120
  1002. package/project/.sdk/src/cmp/lean/Package_lean.ts +0 -93
  1003. package/project/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +0 -29
  1004. package/project/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +0 -19
  1005. package/project/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +0 -25
  1006. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +0 -39
  1007. package/project/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +0 -25
  1008. package/project/.sdk/src/cmp/lean/ReadmeModel_lean.ts +0 -24
  1009. package/project/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +0 -22
  1010. package/project/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +0 -50
  1011. package/project/.sdk/src/cmp/lean/ReadmeRef_lean.ts +0 -40
  1012. package/project/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +0 -16
  1013. package/project/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +0 -23
  1014. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +0 -19
  1015. package/project/.sdk/src/cmp/lean/Test_lean.ts +0 -261
  1016. package/project/.sdk/src/cmp/lean/utility_lean.ts +0 -129
  1017. package/project/.sdk/src/cmp/seneca-provider/Extras_seneca-provider.ts +0 -4080
  1018. package/project/.sdk/src/cmp/seneca-provider/Gitignore_seneca-provider.ts +0 -161
  1019. package/project/.sdk/src/cmp/seneca-provider/Main_seneca-provider.ts +0 -1011
  1020. package/project/.sdk/tm/dart/LICENSE +0 -22
  1021. package/project/.sdk/tm/dart/Makefile +0 -50
  1022. package/project/.sdk/tm/dart/lib/Context.dart +0 -150
  1023. package/project/.sdk/tm/dart/lib/Control.dart +0 -15
  1024. package/project/.sdk/tm/dart/lib/Operation.dart +0 -31
  1025. package/project/.sdk/tm/dart/lib/Point.dart +0 -51
  1026. package/project/.sdk/tm/dart/lib/Response.dart +0 -32
  1027. package/project/.sdk/tm/dart/lib/Result.dart +0 -39
  1028. package/project/.sdk/tm/dart/lib/Spec.dart +0 -49
  1029. package/project/.sdk/tm/dart/lib/feature/audit/AuditFeature.dart +0 -103
  1030. package/project/.sdk/tm/dart/lib/feature/base/BaseFeature.dart +0 -76
  1031. package/project/.sdk/tm/dart/lib/feature/cache/CacheFeature.dart +0 -152
  1032. package/project/.sdk/tm/dart/lib/feature/clienttrack/ClienttrackFeature.dart +0 -104
  1033. package/project/.sdk/tm/dart/lib/feature/cost/CostFeature.dart +0 -446
  1034. package/project/.sdk/tm/dart/lib/feature/debug/DebugFeature.dart +0 -153
  1035. package/project/.sdk/tm/dart/lib/feature/idempotency/IdempotencyFeature.dart +0 -92
  1036. package/project/.sdk/tm/dart/lib/feature/log/LogFeature.dart +0 -85
  1037. package/project/.sdk/tm/dart/lib/feature/metrics/MetricsFeature.dart +0 -103
  1038. package/project/.sdk/tm/dart/lib/feature/netsim/NetsimFeature.dart +0 -186
  1039. package/project/.sdk/tm/dart/lib/feature/paging/PagingFeature.dart +0 -240
  1040. package/project/.sdk/tm/dart/lib/feature/proxy/ProxyFeature.dart +0 -118
  1041. package/project/.sdk/tm/dart/lib/feature/ratelimit/RatelimitFeature.dart +0 -103
  1042. package/project/.sdk/tm/dart/lib/feature/rbac/RbacFeature.dart +0 -121
  1043. package/project/.sdk/tm/dart/lib/feature/retry/RetryFeature.dart +0 -155
  1044. package/project/.sdk/tm/dart/lib/feature/streaming/StreamingFeature.dart +0 -97
  1045. package/project/.sdk/tm/dart/lib/feature/telemetry/TelemetryFeature.dart +0 -136
  1046. package/project/.sdk/tm/dart/lib/feature/test/TestFeature.dart +0 -328
  1047. package/project/.sdk/tm/dart/lib/feature/timeout/TimeoutFeature.dart +0 -104
  1048. package/project/.sdk/tm/dart/lib/utility/CleanUtility.dart +0 -12
  1049. package/project/.sdk/tm/dart/lib/utility/DoneUtility.dart +0 -18
  1050. package/project/.sdk/tm/dart/lib/utility/ErrUtility.dart +0 -46
  1051. package/project/.sdk/tm/dart/lib/utility/FeatureAddUtility.dart +0 -35
  1052. package/project/.sdk/tm/dart/lib/utility/FeatureHookUtility.dart +0 -20
  1053. package/project/.sdk/tm/dart/lib/utility/FeatureInitUtility.dart +0 -9
  1054. package/project/.sdk/tm/dart/lib/utility/FetcherUtility.dart +0 -104
  1055. package/project/.sdk/tm/dart/lib/utility/GraphqlUtility.dart +0 -162
  1056. package/project/.sdk/tm/dart/lib/utility/MakeContextUtility.dart +0 -6
  1057. package/project/.sdk/tm/dart/lib/utility/MakeErrorUtility.dart +0 -71
  1058. package/project/.sdk/tm/dart/lib/utility/MakeFetchDefUtility.dart +0 -42
  1059. package/project/.sdk/tm/dart/lib/utility/MakeOptionsUtility.dart +0 -233
  1060. package/project/.sdk/tm/dart/lib/utility/MakePointUtility.dart +0 -130
  1061. package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +0 -66
  1062. package/project/.sdk/tm/dart/lib/utility/MakeResponseUtility.dart +0 -59
  1063. package/project/.sdk/tm/dart/lib/utility/MakeResultUtility.dart +0 -49
  1064. package/project/.sdk/tm/dart/lib/utility/MakeSpecUtility.dart +0 -77
  1065. package/project/.sdk/tm/dart/lib/utility/MakeUrlUtility.dart +0 -51
  1066. package/project/.sdk/tm/dart/lib/utility/ParamUtility.dart +0 -56
  1067. package/project/.sdk/tm/dart/lib/utility/PrepareAuthUtility.dart +0 -46
  1068. package/project/.sdk/tm/dart/lib/utility/PrepareBodyUtility.dart +0 -19
  1069. package/project/.sdk/tm/dart/lib/utility/PrepareHeadersUtility.dart +0 -11
  1070. package/project/.sdk/tm/dart/lib/utility/PrepareMethodUtility.dart +0 -30
  1071. package/project/.sdk/tm/dart/lib/utility/PrepareParamsUtility.dart +0 -23
  1072. package/project/.sdk/tm/dart/lib/utility/PreparePathUtility.dart +0 -9
  1073. package/project/.sdk/tm/dart/lib/utility/PrepareQueryUtility.dart +0 -18
  1074. package/project/.sdk/tm/dart/lib/utility/ResultBasicUtility.dart +0 -29
  1075. package/project/.sdk/tm/dart/lib/utility/ResultBodyUtility.dart +0 -15
  1076. package/project/.sdk/tm/dart/lib/utility/ResultHeadersUtility.dart +0 -18
  1077. package/project/.sdk/tm/dart/lib/utility/StructUtility.dart +0 -127
  1078. package/project/.sdk/tm/dart/lib/utility/TransformRequestUtility.dart +0 -28
  1079. package/project/.sdk/tm/dart/lib/utility/TransformResponseUtility.dart +0 -44
  1080. package/project/.sdk/tm/dart/lib/utility/Utility.dart +0 -239
  1081. package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +0 -2462
  1082. package/project/.sdk/tm/dart/src/feature/README.md +0 -3
  1083. package/project/.sdk/tm/dart/src/feature/telemetry/.gitkeep +0 -0
  1084. package/project/.sdk/tm/dart/src/feature/test/.gitkeep +0 -0
  1085. package/project/.sdk/tm/dart/src/feature/timeout/.gitkeep +0 -0
  1086. package/project/.sdk/tm/dart/test/custom_test.dart +0 -65
  1087. package/project/.sdk/tm/dart/test/exists_test.dart +0 -12
  1088. package/project/.sdk/tm/dart/test/feature/harness.dart +0 -329
  1089. package/project/.sdk/tm/dart/test/feature_test.dart +0 -1193
  1090. package/project/.sdk/tm/dart/test/harness.dart +0 -153
  1091. package/project/.sdk/tm/dart/test/netsim_test.dart +0 -48
  1092. package/project/.sdk/tm/dart/test/omni.dart +0 -520
  1093. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +0 -143
  1094. package/project/.sdk/tm/dart/test/pipeline_test.dart +0 -608
  1095. package/project/.sdk/tm/dart/test/primary_test.dart +0 -476
  1096. package/project/.sdk/tm/dart/test/sdk-test-control.json +0 -19
  1097. package/project/.sdk/tm/dart/test/struct_test.dart +0 -468
  1098. package/project/.sdk/tm/dart/test/utility.dart +0 -198
  1099. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +0 -7
  1100. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +0 -653
  1101. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +0 -232
  1102. package/project/.sdk/tm/lean/LICENSE +0 -21
  1103. package/project/.sdk/tm/lean/Makefile +0 -32
  1104. package/project/.sdk/tm/lean/VERSION +0 -1
  1105. package/project/.sdk/tm/lean/src/SdkFeature.lean +0 -171
  1106. package/project/.sdk/tm/lean/src/SdkFeatures.lean +0 -787
  1107. package/project/.sdk/tm/lean/src/SdkJson.lean +0 -134
  1108. package/project/.sdk/tm/lean/src/SdkRuntime.lean +0 -374
  1109. package/project/.sdk/tm/lean/src/SdkUtility.lean +0 -809
  1110. package/project/.sdk/tm/lean/src/VoxgigStruct.lean +0 -2880
  1111. package/project/.sdk/tm/lean/src/Vregex.lean +0 -412
  1112. package/project/.sdk/tm/lean/src/feature/README.md +0 -5
  1113. package/project/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
  1114. package/project/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
  1115. package/project/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
  1116. package/project/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
  1117. package/project/.sdk/tm/lean/src/feature/cost/.gitkeep +0 -0
  1118. package/project/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
  1119. package/project/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
  1120. package/project/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
  1121. package/project/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
  1122. package/project/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
  1123. package/project/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
  1124. package/project/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
  1125. package/project/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
  1126. package/project/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
  1127. package/project/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
  1128. package/project/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
  1129. package/project/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
  1130. package/project/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
  1131. package/project/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
  1132. package/project/.sdk/tm/lean/test/OmniResolver.lean +0 -358
  1133. package/project/.sdk/tm/lean/test/OmniSmoke.lean +0 -174
  1134. package/project/.sdk/tm/lean/test/StructCorpus.lean +0 -368
  1135. package/project/.sdk/tm/lean/test/TFeature.lean +0 -281
  1136. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +0 -227
  1137. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +0 -997
  1138. package/project/.sdk/tm/seneca-provider/CODE_OF_CONDUCT.md +0 -132
  1139. package/project/.sdk/tm/seneca-provider/LICENSE +0 -21
  1140. package/project/.sdk/tm/seneca-provider/Makefile +0 -15
  1141. package/project/.sdk/tm/seneca-provider/src/tsconfig.json +0 -18
  1142. package/project/.sdk/tm/seneca-provider/test/tsconfig.json +0 -16
  1143. package/project/.sdk/tm/seneca-provider/tsfmt.json +0 -3
  1144. /package/project/.sdk/tm/{dart/src/feature/audit → c/src/feature/secrets}/.gitkeep +0 -0
  1145. /package/project/.sdk/tm/{dart/src/feature/base → clojure/src/feature/secrets}/.gitkeep +0 -0
  1146. /package/project/.sdk/tm/{dart/src/feature/cache → cpp/src/feature/secrets}/.gitkeep +0 -0
  1147. /package/project/.sdk/tm/{dart/src/feature/clienttrack → csharp/src/feature/secrets}/.gitkeep +0 -0
  1148. /package/project/.sdk/tm/{dart/src/feature/cost → elixir/src/feature/secrets}/.gitkeep +0 -0
  1149. /package/project/.sdk/tm/{dart/src/feature/debug → java/src/feature/secrets}/.gitkeep +0 -0
  1150. /package/project/.sdk/tm/{dart/src/feature/idempotency → kotlin/src/feature/secrets}/.gitkeep +0 -0
  1151. /package/project/.sdk/tm/{dart/src/feature/log → lua/src/feature/secrets}/.gitkeep +0 -0
  1152. /package/project/.sdk/tm/{dart/src/feature/metrics → ocaml/src/feature/secrets}/.gitkeep +0 -0
  1153. /package/project/.sdk/tm/{dart/src/feature/netsim → perl/src/feature/secrets}/.gitkeep +0 -0
  1154. /package/project/.sdk/tm/{dart/src/feature/paging → php/src/feature/secrets}/.gitkeep +0 -0
  1155. /package/project/.sdk/tm/{dart/src/feature/proxy → rb/src/feature/secrets}/.gitkeep +0 -0
  1156. /package/project/.sdk/tm/{dart/src/feature/ratelimit → rust/src/feature/secrets}/.gitkeep +0 -0
  1157. /package/project/.sdk/tm/{dart/src/feature/rbac → scala/src/feature/secrets}/.gitkeep +0 -0
  1158. /package/project/.sdk/tm/{dart/src/feature/retry → swift/src/feature/secrets}/.gitkeep +0 -0
  1159. /package/project/.sdk/tm/{dart/src/feature/streaming → zig/src/feature/secrets}/.gitkeep +0 -0
@@ -0,0 +1,862 @@
1
+ -- ProjectName SDK secrets feature test
2
+ --
3
+ -- Behavioural tests for the secrets feature (vendored @voxgig/sekreto) -
4
+ -- the lua port of tm/go/test/feature/secrets/secrets_feature_test.go.
5
+ --
6
+ -- The contract under test: the `apikey` OPTION keeps its exact old meaning
7
+ -- and always wins, because the feature places it FIRST in the provider
8
+ -- chain (a `memory` store named `options`) - explicit-beats-lookup falls
9
+ -- out of sekreto's first-hit rule rather than from special-case logic.
10
+ -- With the feature inactive nothing changes at all. With it active and the
11
+ -- option unset, the chain (a memory store, a custom provider, a vault)
12
+ -- supplies the credential instead.
13
+ --
14
+ -- This file lives in the test `feature/` container on purpose: `target
15
+ -- add` trims it, along with the feature source and the vendored library,
16
+ -- for a project whose model does not select `secrets`.
17
+ --
18
+ -- HOW EVERY CASE IS BUILT, and why:
19
+ --
20
+ -- * a LIVE client (`sdk.new`), so `system.fetch` really is the transport
21
+ -- and the credential is asserted ON THE WIRE - an options-level
22
+ -- assertion passes for a port that never consults the value;
23
+ -- * the feature handed in through `extend` unless the generated config
24
+ -- already installed it, so the suite holds in any generated tree;
25
+ -- * a refusal asserted on sekreto's OWN message, never on "some error";
26
+ -- * and a CONTROL leg beside every refusal: the same construction with a
27
+ -- working provider must reach the same transport EXACTLY ONCE, so a
28
+ -- zero on the refused side means REFUSED rather than UNWIRED.
29
+ --
30
+ -- Two things Lua cannot do that the other ports' suites do. It cannot set
31
+ -- an environment variable, so the chain's stores are `memory`, `file` and
32
+ -- custom providers rather than `env`; and it cannot spell `auth = nil` in
33
+ -- an options table (a table stores no nil, and validate then fills the
34
+ -- default), so the suppression is exercised in the one form that IS
35
+ -- expressible - clearing `client.options.auth` after construction - and
36
+ -- pinned there.
37
+
38
+ local sdk = require("project-name-_sdk")
39
+ local SecretsFeature = require("feature.secrets_feature")
40
+ local sekreto = require("feature.secrets.sekreto")
41
+
42
+
43
+ -- ---------------------------------------------------------------------
44
+ -- The recording transport: system.fetch for a LIVE client, scripting one
45
+ -- status per API call (the last repeating) and a token endpoint for the
46
+ -- exchange tests.
47
+
48
+ local function make_wire(script)
49
+ script = script or {}
50
+ local w = {
51
+ calls = {},
52
+ apistatus = script.apistatus or { 200 },
53
+ tokens = script.tokens or { "ACCESS01", "ACCESS02", "ACCESS03" },
54
+ tokenpath = "auth/token",
55
+ respfield = script.respfield or "access_token",
56
+ issued = 0,
57
+ apicalls = 0,
58
+ }
59
+
60
+ local function is_token(url)
61
+ local suffix = "/" .. w.tokenpath
62
+ return url:sub(-#suffix) == suffix
63
+ end
64
+
65
+ w.fetch = function(url, fetchdef)
66
+ local headers = type(fetchdef) == "table" and fetchdef.headers or {}
67
+ local auth = headers["authorization"]
68
+ w.calls[#w.calls + 1] = {
69
+ url = url, auth = auth, has = auth ~= nil,
70
+ body = fetchdef.body, method = fetchdef.method,
71
+ }
72
+
73
+ if is_token(url) then
74
+ local token = w.tokens[math.min(w.issued + 1, #w.tokens)]
75
+ w.issued = w.issued + 1
76
+ local payload = { [w.respfield] = token }
77
+ return {
78
+ status = 200, statusText = "OK", headers = {},
79
+ json = function() return payload end,
80
+ }, nil
81
+ end
82
+
83
+ local status = w.apistatus[math.min(w.apicalls + 1, #w.apistatus)]
84
+ w.apicalls = w.apicalls + 1
85
+ local payload = { ok = status < 400 }
86
+ return {
87
+ status = status, statusText = "X", headers = {},
88
+ json = function() return payload end,
89
+ }, nil
90
+ end
91
+
92
+ -- The recorded calls that did NOT go to the token endpoint.
93
+ function w.api()
94
+ local out = {}
95
+ for _, c in ipairs(w.calls) do
96
+ if not is_token(c.url) then out[#out + 1] = c end
97
+ end
98
+ return out
99
+ end
100
+
101
+ function w.token()
102
+ local out = {}
103
+ for _, c in ipairs(w.calls) do
104
+ if is_token(c.url) then out[#out + 1] = c end
105
+ end
106
+ return out
107
+ end
108
+
109
+ return w
110
+ end
111
+
112
+
113
+ -- ---------------------------------------------------------------------
114
+ -- Support.
115
+
116
+ -- The Authorization header carries the SPEC's credential prefix, which a
117
+ -- TEMPLATE cannot know - so assert on the CREDENTIAL and let the prefix be
118
+ -- whatever this SDK's API declares.
119
+ local function assert_credential(header, token)
120
+ local ok = header == token
121
+ or (type(header) == "string" and header:sub(-(#token + 1)) == " " .. token)
122
+ assert.is_true(ok, "expected the authorization header to carry " .. token ..
123
+ ", got: " .. tostring(header))
124
+ end
125
+
126
+
127
+ local function secrets_feature_of(client)
128
+ for _, f in ipairs(client.features) do
129
+ if f.name == "secrets" then return f end
130
+ end
131
+ return nil
132
+ end
133
+
134
+
135
+ -- A live provider, as a caller would hand one in: a table with a callable
136
+ -- `lookup` (sekreto's duck-typed shape) and a `describe`.
137
+ local function custom_provider(lookup, label)
138
+ return {
139
+ lookup = lookup,
140
+ describe = function() return label or "custom" end,
141
+ }
142
+ end
143
+
144
+ local function working_provider(value)
145
+ return custom_provider(function(_name) return value end, "working")
146
+ end
147
+
148
+ local function broken_provider(message)
149
+ return custom_provider(function(_name)
150
+ error(sekreto.SekretoError(message), 0)
151
+ end, "broken")
152
+ end
153
+
154
+
155
+ -- A LIVE client carrying the secrets feature via the `extend` seam, wired
156
+ -- to the recording transport. The feature is adopted via `extend` ONLY
157
+ -- when the generated config did not already install it - when this SDK
158
+ -- was generated with `secrets` model-active, the ordinary factory path
159
+ -- builds the instance, and adding a second via extend would DOUBLE the
160
+ -- feature: two transport wraps, two resolutions, and a token purchase the
161
+ -- assertions cannot account for.
162
+ local function secrets_client(w, sdkopts)
163
+ local function build(extend)
164
+ local opts = {
165
+ base = "http://secrets.test/api",
166
+ system = { fetch = w.fetch },
167
+ }
168
+ for k, v in pairs(sdkopts or {}) do opts[k] = v end
169
+ if extend then
170
+ opts.extend = { SecretsFeature.new() }
171
+ end
172
+ return sdk.new(opts)
173
+ end
174
+
175
+ local client = build(false)
176
+ if secrets_feature_of(client) == nil then
177
+ client = build(true)
178
+ end
179
+ return client
180
+ end
181
+
182
+
183
+ -- Feature options with a chain: the given providers, or a memory store
184
+ -- holding `value` under the default secret name.
185
+ local function chain(providers, extra)
186
+ local fopts = { active = true, providers = providers }
187
+ for k, v in pairs(extra or {}) do fopts[k] = v end
188
+ return { secrets = fopts }
189
+ end
190
+
191
+ local function memory(value, name)
192
+ return { kind = "memory", name = name, values = { APIKEY = value } }
193
+ end
194
+
195
+
196
+ -- The entity accessors this SDK generated, found from the client's own
197
+ -- config: this file is a TEMPLATE and no project's entity names are known
198
+ -- here. Accessors are PascalCase methods on the SDK class.
199
+ local function entity_accessors(client)
200
+ local class = getmetatable(client).__index
201
+ local out = {}
202
+ for name, _ in pairs(client:options_map().entity or {}) do
203
+ local flat = name:gsub("_", ""):lower()
204
+ for k, v in pairs(class) do
205
+ if type(v) == "function" and k:match("^%u") and k:lower() == flat then
206
+ out[#out + 1] = k
207
+ end
208
+ end
209
+ end
210
+ table.sort(out)
211
+ return out
212
+ end
213
+
214
+
215
+ -- Perform real entity operations - which is what runs the request
216
+ -- pipeline - until `stop` reports the observable state a test is waiting
217
+ -- for. Each op's own outcome is irrelevant (no seeded data, a scripted
218
+ -- response); an op the API does not define fails BEFORE the transport,
219
+ -- which is why several may need driving. Returns the last (res, err).
220
+ local function drive_entity_op_until(client, what, stop)
221
+ local last_res, last_err = nil, nil
222
+ for _, accessor in ipairs(entity_accessors(client)) do
223
+ local ent = client[accessor](client)
224
+ for _, opname in ipairs({ "list", "load" }) do
225
+ if type(ent[opname]) == "function" then
226
+ last_res, last_err = ent[opname](ent, { id = "id01" })
227
+ if stop() then return last_res, last_err end
228
+ end
229
+ end
230
+ end
231
+ error("no entity operation " .. what .. " - nothing to assert on", 0)
232
+ end
233
+
234
+ -- Drive ops until one request reached the recorder.
235
+ local function drive_entity_op(client, w)
236
+ local before = #w.api()
237
+ return drive_entity_op_until(client, "reached the transport",
238
+ function() return before < #w.api() end)
239
+ end
240
+
241
+ -- Drive ops until the chain was consulted, and hand back the op's error.
242
+ local function drive_refusal(client, asked)
243
+ local _, err = drive_entity_op_until(client, "consulted the chain", asked)
244
+ return err
245
+ end
246
+
247
+
248
+ -- ---------------------------------------------------------------------
249
+
250
+ describe("secrets", function()
251
+
252
+ -- The feature-inactive baseline: bit-identical behaviour.
253
+ describe("inactive", function()
254
+
255
+ it("apikey option behaves exactly as before", function()
256
+ local client = sdk.test(nil, { apikey = "OPTKEY01" })
257
+ local fetchdef, err = client:prepare({ path = "/" })
258
+ assert.is_nil(err)
259
+ assert_credential(fetchdef.headers["authorization"], "OPTKEY01")
260
+ assert.is_nil(secrets_feature_of(client),
261
+ "no model activation, no extend: the feature must not be installed")
262
+ end)
263
+
264
+ it("no apikey means no authorization header", function()
265
+ local client = sdk.test(nil, nil)
266
+ local fetchdef, err = client:prepare({ path = "/" })
267
+ assert.is_nil(err)
268
+ assert.is_nil(fetchdef.headers["authorization"])
269
+ end)
270
+
271
+ it("an inactive feature wraps nothing and resolves nothing", function()
272
+ local w = make_wire()
273
+ local client = sdk.new({
274
+ base = "http://secrets.test/api",
275
+ system = { fetch = w.fetch },
276
+ feature = { secrets = { active = false, providers = { memory("CHAIN00") } } },
277
+ extend = { SecretsFeature.new() },
278
+ })
279
+ client:direct({ path = "/probe" })
280
+ assert.are.equal(1, #w.api())
281
+ assert.is_false(w.api()[1].has, "an inactive feature must not resolve a credential")
282
+ end)
283
+ end)
284
+
285
+
286
+ -- Active: the provider chain, driven through real entity operations.
287
+ describe("chain", function()
288
+
289
+ it("apikey option still wins over the chain", function()
290
+ local w = make_wire()
291
+ local client = secrets_client(w, {
292
+ apikey = "OPTKEY01",
293
+ feature = chain({ memory("CHAIN01") }),
294
+ })
295
+
296
+ drive_entity_op(client, w)
297
+ assert_credential(w.api()[1].auth, "OPTKEY01")
298
+
299
+ -- The explicit option is a real store, not a special case: a
300
+ -- directed read names it like any other.
301
+ local sf = secrets_feature_of(client)
302
+ assert.is_not_nil(sf, "the extend seam did not install the feature")
303
+ assert.are.equal("OPTKEY01", sf:sekreto():getfrom("options", "apikey"))
304
+ end)
305
+
306
+ it("an omitted apikey defers to the chain at the transport seam", function()
307
+ local w = make_wire()
308
+ local client = secrets_client(w, { feature = chain({ memory("CHAIN02") }) })
309
+
310
+ -- Before any op, nothing has been resolved.
311
+ assert.is_nil(secrets_feature_of(client):credential())
312
+
313
+ drive_entity_op(client, w)
314
+
315
+ -- Resolution happens AT THE TRANSPORT - the one seam every wire
316
+ -- path crosses - so the credential is on the wire, not merely
317
+ -- resolved. The feature holds it; the options map is never written.
318
+ assert_credential(w.api()[1].auth, "CHAIN02")
319
+ assert.are.equal("CHAIN02", secrets_feature_of(client):credential())
320
+ assert.are.equal("", client:options_map().apikey,
321
+ "the options map must stay unwritten")
322
+ end)
323
+
324
+ it("custom provider objects are accepted verbatim", function()
325
+ local asked = {}
326
+ local w = make_wire()
327
+ local client = secrets_client(w, {
328
+ feature = chain({
329
+ custom_provider(function(name)
330
+ asked[#asked + 1] = name
331
+ return "CUSTOM01"
332
+ end),
333
+ }),
334
+ })
335
+
336
+ drive_entity_op(client, w)
337
+ assert_credential(w.api()[1].auth, "CUSTOM01")
338
+ assert.are.equal("apikey", asked[1])
339
+ end)
340
+
341
+ it("a miss everywhere leaves the header off", function()
342
+ local w = make_wire()
343
+ local client = secrets_client(w, {
344
+ feature = chain({ { kind = "memory", values = {} } }),
345
+ })
346
+
347
+ drive_entity_op(client, w)
348
+ assert.is_false(w.api()[1].has,
349
+ "a chain MISS must fall through to an unauthenticated request, got " ..
350
+ tostring(w.api()[1].auth))
351
+ end)
352
+
353
+ it("a miss falls through to the next provider", function()
354
+ local asked = false
355
+ local w = make_wire()
356
+ local client = secrets_client(w, {
357
+ feature = chain({
358
+ custom_provider(function(_name) asked = true; return nil end, "empty"),
359
+ memory("CHAIN04"),
360
+ }),
361
+ })
362
+
363
+ drive_entity_op(client, w)
364
+ assert.is_true(asked, "the first provider was never consulted")
365
+ assert_credential(w.api()[1].auth, "CHAIN04")
366
+ end)
367
+
368
+ it("a provider ERROR fails the op and nothing reaches the wire", function()
369
+ local asked = false
370
+ local w = make_wire()
371
+ local client = secrets_client(w, {
372
+ feature = chain({
373
+ custom_provider(function(_name)
374
+ asked = true
375
+ error(sekreto.SekretoError("sekreto: vault unreachable"), 0)
376
+ end, "broken"),
377
+ }),
378
+ })
379
+
380
+ local err = drive_refusal(client, function() return asked end)
381
+
382
+ -- The entity pipeline turns the refusal into the SDK error carrying
383
+ -- the provider's OWN message - never a silent unauthenticated send.
384
+ assert.is_table(err, "the entity path did not surface the refusal")
385
+ assert.is_truthy(tostring(err):find("sekreto: vault unreachable", 1, true),
386
+ "the refusal must carry the provider's own message, got: " .. tostring(err))
387
+ assert.are.equal(0, #w.api(),
388
+ "a broken vault must never yield a request: " .. #w.api() .. " calls went out")
389
+
390
+ -- CONTROL: the same construction with a working provider reaches
391
+ -- the same transport exactly once, so the zero above is REFUSED,
392
+ -- not UNWIRED.
393
+ local control = make_wire()
394
+ local ok_client = secrets_client(control, { feature = chain({ working_provider("CTRL01") }) })
395
+ drive_entity_op(ok_client, control)
396
+ assert.are.equal(1, #control.api(), "the control operation did not reach system.fetch exactly once")
397
+ assert_credential(control.api()[1].auth, "CTRL01")
398
+ end)
399
+
400
+ it("an error fails the op even though a later provider has the secret", function()
401
+ local w = make_wire()
402
+ local client = secrets_client(w, {
403
+ feature = chain({
404
+ broken_provider("sekreto: vault unreachable"),
405
+ memory("CHAIN05"),
406
+ }),
407
+ })
408
+
409
+ local res = client:direct({ path = "/probe" })
410
+ assert.is_false(res.ok, "an ERROR must not fall through to the next provider")
411
+ assert.is_truthy(tostring(res.err):find("sekreto: vault unreachable", 1, true),
412
+ "expected the provider's own message, got: " .. tostring(res.err))
413
+ assert.are.equal(0, #w.api())
414
+ end)
415
+
416
+ it("a broken store does not poison the client after it recovers", function()
417
+ local broken = true
418
+ local w = make_wire()
419
+ local client = secrets_client(w, {
420
+ feature = chain({
421
+ custom_provider(function(_name)
422
+ if broken then error(sekreto.SekretoError("sekreto: vault unreachable"), 0) end
423
+ return "RECOVERED01"
424
+ end, "flaky"),
425
+ }),
426
+ })
427
+
428
+ local res = client:direct({ path = "/probe" })
429
+ assert.is_false(res.ok)
430
+ assert.are.equal(0, #w.api())
431
+
432
+ broken = false
433
+ res = client:direct({ path = "/probe" })
434
+ assert.is_true(res.ok, "the recovered chain must serve the next request: " .. tostring(res.err))
435
+ assert.are.equal(1, #w.api())
436
+ assert_credential(w.api()[1].auth, "RECOVERED01")
437
+ end)
438
+
439
+ it("the file built-in reads a mounted secret directory", function()
440
+ local dir = os.tmpname()
441
+ os.remove(dir)
442
+ local made = os.execute("mkdir -p '" .. dir .. "'")
443
+ assert.is_true(made == true or made == 0, "could not make " .. dir)
444
+ local fh = assert(io.open(dir .. "/APIKEY", "wb"))
445
+ fh:write("FILEKEY01\n")
446
+ fh:close()
447
+
448
+ local w = make_wire()
449
+ local client = secrets_client(w, { feature = chain({ { kind = "file", dir = dir } }) })
450
+ drive_entity_op(client, w)
451
+ assert_credential(w.api()[1].auth, "FILEKEY01")
452
+
453
+ os.remove(dir .. "/APIKEY")
454
+ os.remove(dir)
455
+ end)
456
+ end)
457
+
458
+
459
+ -- The raw paths run no feature hooks at all; resolution at the transport
460
+ -- is what gives them the same credential - and the same refusal.
461
+ describe("raw paths", function()
462
+
463
+ it("direct() carries the chain-resolved credential", function()
464
+ local w = make_wire()
465
+ local client = secrets_client(w, { feature = chain({ memory("RAWKEY01") }) })
466
+ local res = client:direct({ path = "/probe" })
467
+ assert.is_true(res.ok)
468
+ assert.are.equal(1, #w.api())
469
+ assert_credential(w.api()[1].auth, "RAWKEY01")
470
+ end)
471
+
472
+ it("graphql() carries the chain-resolved credential", function()
473
+ local w = make_wire()
474
+ local client = secrets_client(w, { feature = chain({ memory("RAWKEY02") }) })
475
+ local res = client:graphql("{ thing }", {})
476
+ assert.is_true(res.ok, tostring(res.err))
477
+ assert.are.equal(1, #w.api())
478
+ assert_credential(w.api()[1].auth, "RAWKEY02")
479
+ assert.are.equal("POST", w.api()[1].method)
480
+ end)
481
+
482
+ it("direct() is refused on a provider error, with the provider's message", function()
483
+ local w = make_wire()
484
+ local client = secrets_client(w, {
485
+ feature = chain({ broken_provider("sekreto: vault unreachable") }),
486
+ })
487
+ local res = client:direct({ path = "/probe" })
488
+ assert.is_false(res.ok)
489
+ assert.is_truthy(tostring(res.err):find("sekreto: vault unreachable", 1, true),
490
+ "got: " .. tostring(res.err))
491
+ assert.are.equal(0, #w.api())
492
+
493
+ -- CONTROL, through the same raw path.
494
+ local control = make_wire()
495
+ local ok_client = secrets_client(control, { feature = chain({ working_provider("RAWCTRL01") }) })
496
+ local ok_res = ok_client:direct({ path = "/probe" })
497
+ assert.is_true(ok_res.ok)
498
+ assert.are.equal(1, #control.api())
499
+ assert_credential(control.api()[1].auth, "RAWCTRL01")
500
+ end)
501
+
502
+ it("graphql() is refused on a provider error, with the provider's message", function()
503
+ local w = make_wire()
504
+ local client = secrets_client(w, {
505
+ feature = chain({ broken_provider("sekreto: vault unreachable") }),
506
+ })
507
+ local res = client:graphql("{ thing }", {})
508
+ assert.is_false(res.ok)
509
+ assert.is_truthy(tostring(res.err):find("sekreto: vault unreachable", 1, true),
510
+ "got: " .. tostring(res.err))
511
+ assert.are.equal(0, #w.api())
512
+
513
+ local control = make_wire()
514
+ local ok_client = secrets_client(control, { feature = chain({ working_provider("RAWCTRL02") }) })
515
+ local ok_res = ok_client:graphql("{ thing }", {})
516
+ assert.is_true(ok_res.ok)
517
+ assert.are.equal(1, #control.api())
518
+ assert_credential(control.api()[1].auth, "RAWCTRL02")
519
+ end)
520
+ end)
521
+
522
+
523
+ -- Construction failure is a refusal, never a shortened chain.
524
+ describe("init failure gate", function()
525
+
526
+ local NOTAPROVIDER = "not a provider or a provider spec"
527
+
528
+ local function refused_with(providers, fragment)
529
+ local w = make_wire()
530
+ local client = secrets_client(w, { feature = chain(providers) })
531
+
532
+ local sf = secrets_feature_of(client)
533
+ assert.is_not_nil(sf:init_error(), "construction must record the failure")
534
+
535
+ local res = client:direct({ path = "/probe" })
536
+ assert.is_false(res.ok, "a client whose chain could not be built must refuse")
537
+ assert.is_truthy(tostring(res.err):find(fragment, 1, true),
538
+ "expected sekreto's own message (" .. fragment .. "), got: " .. tostring(res.err))
539
+ assert.are.equal(0, #w.api(), "nothing may reach the wire")
540
+
541
+ local err = drive_refusal(client, function() return true end)
542
+ assert.is_table(err, "the entity path must refuse too")
543
+ assert.is_truthy(tostring(err):find(fragment, 1, true), "got: " .. tostring(err))
544
+ assert.are.equal(0, #w.api())
545
+ end
546
+
547
+ it("a bare kind name in providers is refused, not dropped", function()
548
+ -- CONTROL FIRST, so the zero below is known to be observable.
549
+ local control = make_wire()
550
+ local ok_client = secrets_client(control, { feature = chain({ working_provider("INITKEY01") }) })
551
+ drive_entity_op(ok_client, control)
552
+ assert.are.equal(1, #control.api())
553
+ assert_credential(control.api()[1].auth, "INITKEY01")
554
+
555
+ refused_with({ "hashicorp" }, NOTAPROVIDER)
556
+ end)
557
+
558
+ it("a number in providers is refused, not dropped", function()
559
+ refused_with({ 42 }, NOTAPROVIDER)
560
+ end)
561
+
562
+ it("a nil hole in providers does not shorten the chain", function()
563
+ -- `{ spec, nil, spec }` ends ipairs after the first entry: the second
564
+ -- store would silently vanish. The feature walks to the highest key.
565
+ local providers = { memory("HOLE01") }
566
+ providers[3] = memory("HOLE03")
567
+ refused_with(providers, NOTAPROVIDER)
568
+ end)
569
+
570
+ it("a kind this SDK was not generated with is refused with sekreto's message", function()
571
+ -- `nosuchkind` is not built in and no plugin group provides it.
572
+ refused_with({ { kind = "nosuchkind" } }, "unknown provider kind: nosuchkind")
573
+ end)
574
+
575
+ it("an invalid secret name is refused, not skipped", function()
576
+ local w = make_wire()
577
+ local client = secrets_client(w, {
578
+ apikey = "OPTKEY01",
579
+ feature = chain({ memory("X") }, { name = "not a name" }),
580
+ })
581
+ local res = client:direct({ path = "/probe" })
582
+ assert.is_false(res.ok)
583
+ assert.is_truthy(tostring(res.err):find("sekreto: invalid name", 1, true),
584
+ "got: " .. tostring(res.err))
585
+ assert.are.equal(0, #w.api())
586
+ end)
587
+ end)
588
+
589
+
590
+ -- What lua ships of the plugin tier depends on the groups the model
591
+ -- activated. Either way the boundary is asserted, and either way with
592
+ -- sekreto's own message.
593
+ describe("plugin kinds", function()
594
+
595
+ local has_hashicorp = pcall(require, "feature.secrets.sekreto.plugins.hashicorp")
596
+
597
+ if has_hashicorp then
598
+ it("the vault group's kinds are in this SDK's provider vocabulary", function()
599
+ local w = make_wire()
600
+ local client = secrets_client(w, { feature = chain({ memory("K") }) })
601
+ local sek = secrets_feature_of(client):sekreto()
602
+ assert.is_true(sek.catalog:has("hashicorp"))
603
+ assert.is_true(sek.catalog:has("boru"))
604
+ end)
605
+
606
+ it("the transport helper is built where net.lua looks for it", function()
607
+ local net = require("feature.secrets.sekreto.plugins.net")
608
+ local fh = io.open(net.HELPER, "rb")
609
+ assert.is_not_nil(fh, "make build did not produce " .. net.HELPER)
610
+ fh:close()
611
+ end)
612
+
613
+ it("a hashicorp provider reaches the helper and an unreachable vault is an ERROR", function()
614
+ -- Port 9 (discard) is closed on any sane host: the helper answers
615
+ -- "connection refused", httpjson raises sekreto's `cannot reach`,
616
+ -- and the request is refused with zero calls. A helper that was
617
+ -- never built answers "did not answer" instead - a different
618
+ -- message, so the assertion tells the two apart.
619
+ local w = make_wire()
620
+ local client = secrets_client(w, {
621
+ feature = chain({
622
+ { kind = "hashicorp", addr = "http://127.0.0.1:9", token = "t0" },
623
+ }),
624
+ })
625
+ local res = client:direct({ path = "/probe" })
626
+ assert.is_false(res.ok)
627
+ local msg = tostring(res.err)
628
+ assert.is_truthy(msg:find("sekreto: cannot reach ", 1, true)
629
+ and msg:find("127.0.0.1:9", 1, true)
630
+ and msg:find("connection refused", 1, true),
631
+ "expected the transport failure from the helper, got: " .. msg)
632
+ assert.is_falsy(msg:find("did not answer", 1, true),
633
+ "the helper was not run: " .. msg)
634
+ assert.are.equal(0, #w.api())
635
+ end)
636
+ else
637
+ it("a plugin kind that was not generated is refused with sekreto's message", function()
638
+ local w = make_wire()
639
+ local client = secrets_client(w, {
640
+ feature = chain({
641
+ { kind = "hashicorp", addr = "http://127.0.0.1:9", token = "t0" },
642
+ }),
643
+ })
644
+ local res = client:direct({ path = "/probe" })
645
+ assert.is_false(res.ok)
646
+ assert.is_truthy(tostring(res.err):find(
647
+ "hashicorp is a sekreto plugin, not built in", 1, true),
648
+ "got: " .. tostring(res.err))
649
+ assert.are.equal(0, #w.api())
650
+ end)
651
+ end
652
+ end)
653
+
654
+
655
+ -- The one auth suppression lua can express.
656
+ describe("auth suppression", function()
657
+
658
+ it("clearing options.auth suppresses the chain credential on the entity path", function()
659
+ local w = make_wire()
660
+ local client = secrets_client(w, { feature = chain({ memory("LEAK01") }) })
661
+ client.options.auth = nil
662
+
663
+ drive_entity_op(client, w)
664
+ assert.is_false(w.api()[1].has,
665
+ "suppressed auth must send no credential, got " .. tostring(w.api()[1].auth))
666
+ end)
667
+
668
+ it("clearing options.auth suppresses the chain credential on direct()", function()
669
+ local w = make_wire()
670
+ local client = secrets_client(w, { feature = chain({ memory("LEAK02") }) })
671
+ client.options.auth = nil
672
+
673
+ local res = client:direct({ path = "/probe" })
674
+ assert.is_true(res.ok)
675
+ assert.is_false(w.api()[1].has, "got " .. tostring(w.api()[1].auth))
676
+ end)
677
+
678
+ it("an options-level auth = nil is NOT expressible: validate fills the default", function()
679
+ -- Pinned so the limitation is a recorded fact rather than a surprise:
680
+ -- `{ auth = nil }` is the same table as `{}`, and make_options then
681
+ -- supplies the optspec default. The post-construction clear above is
682
+ -- the suppression this target has.
683
+ local client = sdk.test(nil, { apikey = "OPTKEY01", auth = nil })
684
+ assert.is_table(client:options_map().auth)
685
+ end)
686
+ end)
687
+
688
+
689
+ describe("cache", function()
690
+
691
+ it("caches the resolved credential by default", function()
692
+ local asked = 0
693
+ local w = make_wire()
694
+ local client = secrets_client(w, {
695
+ feature = chain({
696
+ custom_provider(function(_name) asked = asked + 1; return "V" .. asked end),
697
+ }),
698
+ })
699
+ client:direct({ path = "/a" })
700
+ client:direct({ path = "/b" })
701
+ assert.are.equal(2, #w.api())
702
+ assert.are.equal(1, asked, "the chain must be asked once while caching")
703
+ assert_credential(w.api()[2].auth, "V1")
704
+ end)
705
+
706
+ it("cache = false asks the chain once per request", function()
707
+ local asked = 0
708
+ local w = make_wire()
709
+ local client = secrets_client(w, {
710
+ feature = chain({
711
+ custom_provider(function(_name) asked = asked + 1; return "V" .. asked end),
712
+ }, { cache = false }),
713
+ })
714
+ client:direct({ path = "/a" })
715
+ client:direct({ path = "/b" })
716
+ assert.are.equal(2, asked)
717
+ assert_credential(w.api()[1].auth, "V1")
718
+ assert_credential(w.api()[2].auth, "V2")
719
+ end)
720
+
721
+ it("an uncached miss after a hit RETRACTS the credential", function()
722
+ local value = "REVOCABLE01"
723
+ local w = make_wire()
724
+ local client = secrets_client(w, {
725
+ feature = chain({
726
+ custom_provider(function(_name) return value end),
727
+ }, { cache = false }),
728
+ })
729
+ client:direct({ path = "/a" })
730
+ assert_credential(w.api()[1].auth, "REVOCABLE01")
731
+
732
+ value = nil
733
+ client:direct({ path = "/b" })
734
+ assert.is_false(w.api()[2].has,
735
+ "after the chain reports a miss the retracted credential must not go out; the wire saw " ..
736
+ tostring(w.api()[2].auth))
737
+ end)
738
+ end)
739
+
740
+
741
+ describe("sekreto accessor", function()
742
+
743
+ it("is the live instance", function()
744
+ local w = make_wire()
745
+ local client = secrets_client(w, { feature = chain({ memory("LIVEKEY0001") }) })
746
+ local sf = secrets_feature_of(client)
747
+ assert.are.equal(sf:sekreto(), sf:sekreto())
748
+ assert.are.equal("LIVEKEY0001", sf:sekreto():get("apikey"))
749
+ local redacted = sf:sekreto():redact("token LIVEKEY0001 here")
750
+ assert.is_truthy(redacted:find("[redacted]", 1, true),
751
+ "redact did not cover a resolved value: " .. redacted)
752
+ end)
753
+ end)
754
+
755
+
756
+ describe("exchange", function()
757
+
758
+ local function exchange_client(w, extra, sdkextra)
759
+ local fopts = {
760
+ providers = { { kind = "memory", values = { REFRESH_TOKEN = "REFRESH01" } } },
761
+ name = "refresh_token",
762
+ exchange = { active = true, path = "auth/token" },
763
+ }
764
+ for k, v in pairs(extra or {}) do fopts[k] = v end
765
+ local sdkopts = { feature = { secrets = fopts } }
766
+ for k, v in pairs(sdkextra or {}) do sdkopts[k] = v end
767
+ -- `active` is set here so an `exchange` override above can replace
768
+ -- the whole block without dropping it.
769
+ sdkopts.feature.secrets.active = true
770
+ return secrets_client(w, sdkopts)
771
+ end
772
+
773
+ it("buys an access token with the resolved refresh token", function()
774
+ local w = make_wire()
775
+ local client = exchange_client(w)
776
+ local res = client:direct({ path = "/probe" })
777
+ assert.is_true(res.ok, tostring(res.err))
778
+
779
+ assert.are.equal(1, #w.token(), "expected one token purchase")
780
+ local t = w.token()[1]
781
+ assert.are.equal("POST", t.method)
782
+ assert.is_truthy(t.body:find('"refresh_token":"REFRESH01"', 1, true),
783
+ "the refresh token must be sent as JSON: " .. tostring(t.body))
784
+ assert_credential(w.api()[1].auth, "ACCESS01")
785
+ end)
786
+
787
+ it("a spent token is repurchased and the request retried once", function()
788
+ local w = make_wire({ apistatus = { 401, 200 } })
789
+ local client = exchange_client(w)
790
+ local res = client:direct({ path = "/probe" })
791
+ assert.is_true(res.ok, tostring(res.err))
792
+
793
+ assert.are.equal(2, #w.api(), "expected the refused request and one retry")
794
+ assert_credential(w.api()[1].auth, "ACCESS01")
795
+ assert_credential(w.api()[2].auth, "ACCESS02")
796
+ assert.are.equal(2, #w.token())
797
+ end)
798
+
799
+ it("a second refusal surfaces rather than spinning", function()
800
+ local w = make_wire({ apistatus = { 401 } })
801
+ local client = exchange_client(w)
802
+ local res = client:direct({ path = "/probe" })
803
+ assert.is_false(res.ok)
804
+ assert.are.equal(401, res.status)
805
+ assert.are.equal(2, #w.api(), "retries = 1 means exactly one retry")
806
+ end)
807
+
808
+ it("retries = 0 never repurchases", function()
809
+ local w = make_wire({ apistatus = { 401 } })
810
+ local client = exchange_client(w, { exchange = { active = true, retries = 0 } })
811
+ local res = client:direct({ path = "/probe" })
812
+ assert.is_false(res.ok)
813
+ assert.are.equal(1, #w.api())
814
+ assert.are.equal(1, #w.token(), "the initial purchase only")
815
+ end)
816
+
817
+ it("exchange.refresh seats first, as the explicit credential", function()
818
+ local w = make_wire()
819
+ local client = exchange_client(w, { exchange = { active = true, refresh = "EXPLICIT01" } })
820
+ client:direct({ path = "/probe" })
821
+ assert.is_truthy(w.token()[1].body:find('"refresh_token":"EXPLICIT01"', 1, true),
822
+ tostring(w.token()[1].body))
823
+ end)
824
+
825
+ it("a held apikey is spent before anything is bought", function()
826
+ local w = make_wire()
827
+ local client = exchange_client(w, nil, { apikey = "HELD01" })
828
+ client:direct({ path = "/probe" })
829
+ assert.are.equal(0, #w.token(), "a held access token must be spent first")
830
+ assert_credential(w.api()[1].auth, "HELD01")
831
+ end)
832
+
833
+ it("no refresh token anywhere is a refusal with the feature's message", function()
834
+ local w = make_wire()
835
+ local client = exchange_client(w, {
836
+ providers = { { kind = "memory", values = {} } },
837
+ })
838
+ local res = client:direct({ path = "/probe" })
839
+ assert.is_false(res.ok)
840
+ assert.is_truthy(tostring(res.err):find("secrets: no refresh token", 1, true),
841
+ tostring(res.err))
842
+ assert.are.equal(0, #w.api())
843
+ end)
844
+
845
+ it("test mode buys nothing", function()
846
+ -- A LIVE construction (so the feature is installed through extend),
847
+ -- switched to test mode before the first request: the wrapper runs
848
+ -- before the mode block in the base fetcher, so the purchase is what
849
+ -- test mode sees - and it must answer the deterministic fake token
850
+ -- without touching the token endpoint.
851
+ local w = make_wire()
852
+ local client = exchange_client(w)
853
+ local sf = secrets_feature_of(client)
854
+ client.mode = "test"
855
+
856
+ local res = client:direct({ path = "/probe" })
857
+ assert.is_false(res.ok, "test mode must block the request itself")
858
+ assert.are.equal("test-access_token", sf:credential())
859
+ assert.are.equal(0, #w.token(), "test mode must not reach the token endpoint")
860
+ end)
861
+ end)
862
+ end)