@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,1165 @@
1
+ <?php
2
+ declare(strict_types=1);
3
+
4
+ // Behavioural tests for the secrets feature (vendored @voxgig/sekreto) -
5
+ // the php port of tm/ts/test/feature/secrets/Secrets.test.ts.
6
+ //
7
+ // The contract under test: the `apikey` OPTION keeps its exact old meaning
8
+ // and always wins, because the feature places it FIRST in the provider
9
+ // chain (a `memory` store named 'options') - explicit-beats-lookup falls
10
+ // out of sekreto's first-hit rule rather than from special-case logic. With
11
+ // the feature inactive nothing changes at all. With it active and the
12
+ // option unset, the chain (env, a custom provider, a vault) supplies the
13
+ // credential instead.
14
+ //
15
+ // This file lives in the test `feature/` container on purpose: `target add`
16
+ // trims it, along with the feature source and the vendored library, for a
17
+ // project whose model does not select `secrets`.
18
+ //
19
+ // The credential is asserted ON THE WIRE: a live-mode client with a
20
+ // recording system.fetch, driven through real entity operations AND through
21
+ // `direct()` and `graphql()`. An options-level assertion would pass for a
22
+ // port that never consults the value, and the raw paths run NO feature
23
+ // hooks - which is exactly why resolution lives at the transport seam.
24
+
25
+ require_once __DIR__ . '/../../../projectname_sdk.php';
26
+
27
+ use PHPUnit\Framework\TestCase;
28
+
29
+ // PLACEHOLDER-PREFIXED, all three classes in this file. A generated PHP SDK
30
+ // uses no namespaces and composer classmaps both `types/` and `test/`, so a
31
+ // bare `SecretsWire` here is a name an API entity could also claim - and PHP
32
+ // answers a redeclaration with a fatal, not a warning (helpers/naming.ts
33
+ // PHP_SDK_CLASSES, and test/php-sdk-classes.test.ts). `ProjectName`
34
+ // substitutes to this SDK's own name, which no bare entity type can equal.
35
+ //
36
+ // The recording transport: system.fetch for a LIVE client, scripting one
37
+ // status per API call (the last repeating) and a token endpoint for the
38
+ // exchange tests.
39
+ class ProjectNameSecretsWire
40
+ {
41
+ /** @var array<int,array<string,mixed>> */
42
+ public array $calls = [];
43
+ /** @var array<int,int> */
44
+ public array $apistatus = [200];
45
+ /** @var array<int,string> */
46
+ public array $tokens = ['ACCESS01', 'ACCESS02', 'ACCESS03'];
47
+ public string $tokenpath = 'auth/token';
48
+ public string $respfield = 'access_token';
49
+
50
+ private int $issued = 0;
51
+ private int $apicalls = 0;
52
+
53
+ // The callable the SDK options take as system.fetch.
54
+ public function fetch(): callable
55
+ {
56
+ return function (string $fullurl, array $fetchdef): array {
57
+ return $this->record($fullurl, $fetchdef);
58
+ };
59
+ }
60
+
61
+ public function record(string $fullurl, array $fetchdef): array
62
+ {
63
+ $headers = is_array($fetchdef['headers'] ?? null) ? $fetchdef['headers'] : [];
64
+ $this->calls[] = [
65
+ 'url' => $fullurl,
66
+ 'auth' => $headers['authorization'] ?? null,
67
+ 'has' => array_key_exists('authorization', $headers),
68
+ 'body' => $fetchdef['body'] ?? null,
69
+ ];
70
+
71
+ if ($this->istoken($fullurl)) {
72
+ $token = $this->tokens[min($this->issued, count($this->tokens) - 1)];
73
+ $this->issued++;
74
+ $payload = [$this->respfield => $token];
75
+ return [[
76
+ 'status' => 200, 'statusText' => 'OK', 'headers' => [],
77
+ 'json' => function () use ($payload) { return $payload; },
78
+ ], null];
79
+ }
80
+
81
+ $status = $this->apistatus[min($this->apicalls, count($this->apistatus) - 1)];
82
+ $this->apicalls++;
83
+ $payload = ['ok' => $status < 400];
84
+ return [[
85
+ 'status' => $status, 'statusText' => 'X', 'headers' => [],
86
+ 'json' => function () use ($payload) { return $payload; },
87
+ ], null];
88
+ }
89
+
90
+ /** The recorded calls that did NOT go to the token endpoint. */
91
+ public function api(): array
92
+ {
93
+ return array_values(array_filter($this->calls,
94
+ fn(array $c) => !$this->istoken((string)$c['url'])));
95
+ }
96
+
97
+ public function token(): array
98
+ {
99
+ return array_values(array_filter($this->calls,
100
+ fn(array $c) => $this->istoken((string)$c['url'])));
101
+ }
102
+
103
+ private function istoken(string $url): bool
104
+ {
105
+ return str_ends_with($url, '/' . $this->tokenpath);
106
+ }
107
+ }
108
+
109
+ class ProjectNameSecretsTest extends TestCase
110
+ {
111
+ // The env-var base for this SDK, as every other generated env var
112
+ // spells it.
113
+ private const ENVPREFIX = 'PROJECTENV_TEST_SECRETS_';
114
+
115
+ /** @var array<int,string> */
116
+ private array $touched = [];
117
+
118
+ protected function tearDown(): void
119
+ {
120
+ foreach ($this->touched as $name) {
121
+ putenv(self::ENVPREFIX . $name);
122
+ }
123
+ $this->touched = [];
124
+ }
125
+
126
+ private function setenv(string $name, string $value): void
127
+ {
128
+ $this->touched[] = $name;
129
+ putenv(self::ENVPREFIX . $name . '=' . $value);
130
+ }
131
+
132
+ private function clearenv(string $name): void
133
+ {
134
+ $this->touched[] = $name;
135
+ putenv(self::ENVPREFIX . $name);
136
+ }
137
+
138
+ // -----------------------------------------------------------------
139
+ // Support.
140
+
141
+ // The Authorization header carries the SPEC's credential prefix, which
142
+ // a TEMPLATE cannot know - so assert on the CREDENTIAL and let the
143
+ // prefix be whatever this SDK's API declares.
144
+ private function assertCredential(mixed $header, string $token): void
145
+ {
146
+ $ok = $header === $token
147
+ || (is_string($header) && str_ends_with($header, ' ' . $token));
148
+ $this->assertTrue($ok,
149
+ 'expected the authorization header to carry ' . $token .
150
+ ', got: ' . var_export($header, true));
151
+ }
152
+
153
+ private function secretsFeatureOf($client): ?ProjectNameSecretsFeature
154
+ {
155
+ foreach ($client->features as $f) {
156
+ if ($f instanceof ProjectNameSecretsFeature) {
157
+ return $f;
158
+ }
159
+ }
160
+ return null;
161
+ }
162
+
163
+ // Construct the client and ADOPT the feature via `extend` ONLY when the
164
+ // generated config did not already install it - when this SDK was
165
+ // generated with `secrets` model-active, the ordinary factory path
166
+ // builds the instance, and adding a second via extend would DOUBLE the
167
+ // feature: two transport wraps, two resolutions, and a token purchase
168
+ // the assertions cannot account for. (go's withSecrets, py's
169
+ // _has_feature and rb's with_secrets guard the same way.)
170
+ private function withSecrets(callable $build)
171
+ {
172
+ $client = $build(false);
173
+ if ($this->secretsFeatureOf($client) === null) {
174
+ $client = $build(true);
175
+ }
176
+ return $client;
177
+ }
178
+
179
+ /** @return array<string,mixed> */
180
+ private function secretsOpts(array $extra = []): array
181
+ {
182
+ $fopts = array_merge([
183
+ 'active' => true,
184
+ 'providers' => [['kind' => 'env', 'prefix' => self::ENVPREFIX]],
185
+ ], $extra);
186
+ return ['secrets' => $fopts];
187
+ }
188
+
189
+ // A LIVE client carrying the secrets feature, wired to the recorder.
190
+ private function secretsClient(ProjectNameSecretsWire $wire, array $sdkopts = [])
191
+ {
192
+ $opts = array_merge([
193
+ 'base' => 'http://secrets.test/api',
194
+ 'system' => ['fetch' => $wire->fetch()],
195
+ ], $sdkopts);
196
+
197
+ return $this->withSecrets(function (bool $adopt) use ($opts) {
198
+ if ($adopt) {
199
+ $opts['extend'] = [new ProjectNameSecretsFeature()];
200
+ }
201
+ return new ProjectNameSDK($opts);
202
+ });
203
+ }
204
+
205
+ // A custom provider, as php's option pipeline can carry one: an ARRAY
206
+ // OF CALLABLES. `Struct::clone` flattens a class instance to a stdClass
207
+ // (its methods lost) but leaves closures alone, so this is the shape a
208
+ // provider written in code must take - the exact parallel of the ts
209
+ // object literal, and py's `_LiveProvider` contract.
210
+ private function customProvider(callable $lookup, ?callable $describe = null): array
211
+ {
212
+ $spec = ['lookup' => $lookup];
213
+ if ($describe !== null) {
214
+ $spec['describe'] = $describe;
215
+ }
216
+ return $spec;
217
+ }
218
+
219
+ // The entity accessors this SDK generated ($client->Moon(),
220
+ // $client->Planet(), ...). Read off the class rather than from a name
221
+ // convention: this file is a TEMPLATE and no project's entity names are
222
+ // known here.
223
+ private function entityAccessors($client): array
224
+ {
225
+ $out = [];
226
+ $rc = new \ReflectionClass($client);
227
+ foreach ($rc->getMethods(\ReflectionMethod::IS_PUBLIC) as $m) {
228
+ if ($m->isStatic() || $m->isConstructor()) {
229
+ continue;
230
+ }
231
+ if (1 === preg_match('/^[A-Z]/', $m->getName())) {
232
+ $out[] = $m->getName();
233
+ }
234
+ }
235
+ return $out;
236
+ }
237
+
238
+ // Perform real entity operations until `stop` reports the observable
239
+ // state the test is waiting for. Each op's own outcome is irrelevant (no
240
+ // seeded data, a scripted response); an op the API does not define fails
241
+ // before it reaches the transport, which is why several may need
242
+ // driving.
243
+ private function driveUntil($client, string $what, callable $stop): void
244
+ {
245
+ foreach ($this->entityAccessors($client) as $accessor) {
246
+ try {
247
+ $ent = $client->$accessor();
248
+ } catch (\Throwable $e) {
249
+ continue;
250
+ }
251
+ foreach (['list', 'load'] as $opname) {
252
+ if (!method_exists($ent, $opname)) {
253
+ continue;
254
+ }
255
+ try {
256
+ $ent->$opname();
257
+ } catch (\Throwable $e) {
258
+ // The op's own failure is not the assertion.
259
+ }
260
+ if ($stop()) {
261
+ return;
262
+ }
263
+ }
264
+ }
265
+ $this->fail('no entity operation ' . $what . ' - nothing to assert on');
266
+ }
267
+
268
+ // Drive ops until one request reached the recorder.
269
+ private function driveOp($client, ProjectNameSecretsWire $wire): void
270
+ {
271
+ $before = count($wire->api());
272
+ $this->driveUntil($client, 'reached the transport',
273
+ fn() => $before < count($wire->api()));
274
+ }
275
+
276
+ // -----------------------------------------------------------------
277
+ // The feature-inactive baseline: bit-identical behaviour.
278
+
279
+ public function testInactiveApikeyOptionBehavesExactlyAsBefore(): void
280
+ {
281
+ $client = ProjectNameSDK::test(null, ['apikey' => 'OPTKEY01']);
282
+ $fetchdef = $client->prepare(['path' => '/']);
283
+ $this->assertCredential($fetchdef['headers']['authorization'] ?? null, 'OPTKEY01');
284
+
285
+ $this->assertNull($this->secretsFeatureOf($client),
286
+ 'no activation and no extend: the feature must not be installed');
287
+ }
288
+
289
+ public function testInactiveNoApikeyMeansNoAuthorizationHeader(): void
290
+ {
291
+ $client = ProjectNameSDK::test(null, null);
292
+ $fetchdef = $client->prepare(['path' => '/']);
293
+ $this->assertArrayNotHasKey('authorization', $fetchdef['headers']);
294
+ }
295
+
296
+ // -----------------------------------------------------------------
297
+ // Active: the provider chain, driven through real entity operations.
298
+
299
+ public function testApikeyOptionStillWinsOverTheChain(): void
300
+ {
301
+ $this->setenv('APIKEY', 'ENVKEY01');
302
+ $wire = new ProjectNameSecretsWire();
303
+ $client = $this->secretsClient($wire, [
304
+ 'apikey' => 'OPTKEY01',
305
+ 'feature' => $this->secretsOpts(),
306
+ ]);
307
+
308
+ $this->driveOp($client, $wire);
309
+ $this->assertCredential($wire->api()[0]['auth'], 'OPTKEY01');
310
+
311
+ // The explicit option is a real store, not a special case: a
312
+ // directed read names it like any other.
313
+ $feature = $this->secretsFeatureOf($client);
314
+ $this->assertNotNull($feature, 'the extend seam did not install the feature');
315
+ $this->assertSame('OPTKEY01', $feature->sekreto()->getfrom('options', 'apikey'));
316
+ }
317
+
318
+ public function testAnOmittedApikeyDefersToTheChainAtTheTransportSeam(): void
319
+ {
320
+ $this->setenv('APIKEY', 'ENVKEY02');
321
+ $wire = new ProjectNameSecretsWire();
322
+ $client = $this->secretsClient($wire, ['feature' => $this->secretsOpts()]);
323
+
324
+ // Before any op, nothing has been resolved.
325
+ $this->assertSame('', $client->options_map()['apikey']);
326
+
327
+ $this->driveOp($client, $wire);
328
+
329
+ // Resolution happens AT THE TRANSPORT - the one seam every wire path
330
+ // crosses - so the credential is ON THE WIRE, not merely resolved.
331
+ $this->assertCredential($wire->api()[0]['auth'], 'ENVKEY02');
332
+ $this->assertSame('ENVKEY02', $this->secretsFeatureOf($client)->credential());
333
+
334
+ // FEATURE STATE is the credential's only home. The options map -
335
+ // which `options_map()` hands to any caller, which every concurrent
336
+ // operation reads, and which a debug or audit feature may print -
337
+ // must be exactly as the caller left it: a vault secret has no
338
+ // business there. (go's `cred` field, secrets_feature.go, for the
339
+ // same reason.) The consequence is deliberate and documented: a
340
+ // chain-resolved credential is not visible to `prepare(...)`, which
341
+ // reports the OPTIONS. Publication cannot fix that anyway - nothing
342
+ // is resolved until a request crosses the transport, so the FIRST
343
+ // prepare() is unauthenticated either way, and with a broken chain
344
+ // publication yields a request carrying neither a credential nor an
345
+ // error.
346
+ $this->assertSame('', $client->options_map()['apikey'],
347
+ 'the chain credential must never be written into the client options');
348
+ }
349
+
350
+ // The same pin where it matters most: `auth: null` is the caller saying
351
+ // NO credential may be sent. Nothing goes on the wire - and nothing is
352
+ // parked in the options map either, where it would outlive the request
353
+ // and reach every reader of options_map().
354
+ public function testTheChainCredentialIsNeverParkedInTheOptionsMap(): void
355
+ {
356
+ $this->setenv('APIKEY', 'SHOULD_NOT_SEND');
357
+ $wire = new ProjectNameSecretsWire();
358
+ $client = $this->secretsClient($wire, [
359
+ 'auth' => null,
360
+ 'feature' => $this->secretsOpts(),
361
+ ]);
362
+
363
+ $this->driveOp($client, $wire);
364
+
365
+ $this->assertFalse($wire->api()[0]['has'],
366
+ 'auth null must suppress the credential, got ' .
367
+ var_export($wire->api()[0]['auth'], true));
368
+ $this->assertSame('', $client->options_map()['apikey'],
369
+ 'the suppressed secret was parked in the client options');
370
+
371
+ // Nor may it surface through the fetchdef prepare() builds.
372
+ $fetchdef = $client->prepare(['path' => '/']);
373
+ $this->assertArrayNotHasKey('authorization', $fetchdef['headers']);
374
+ }
375
+
376
+ public function testCustomProvidersAreAcceptedVerbatim(): void
377
+ {
378
+ $asked = [];
379
+ $wire = new ProjectNameSecretsWire();
380
+ $client = $this->secretsClient($wire, [
381
+ 'feature' => ['secrets' => [
382
+ 'active' => true,
383
+ 'providers' => [$this->customProvider(
384
+ function (string $name) use (&$asked) {
385
+ $asked[] = $name;
386
+ return 'CUSTOM01';
387
+ })],
388
+ ]],
389
+ ]);
390
+
391
+ $this->driveOp($client, $wire);
392
+ $this->assertCredential($wire->api()[0]['auth'], 'CUSTOM01');
393
+ $this->assertSame('apikey', $asked[0]);
394
+ }
395
+
396
+ // php cannot carry a provider CLASS INSTANCE through the option
397
+ // pipeline: `Struct::clone` flattens any object to a stdClass and its
398
+ // methods are lost. That must be a loud, directive failure rather than
399
+ // a chain that silently resolves nothing - and, being a failure, it
400
+ // must fail CLOSED.
401
+ public function testAProviderObjectIsRefusedWithAnActionableError(): void
402
+ {
403
+ $wire = new ProjectNameSecretsWire();
404
+ $client = $this->secretsClient($wire, [
405
+ 'feature' => ['secrets' => [
406
+ 'active' => true,
407
+ 'providers' => [new \stdClass()],
408
+ ]],
409
+ ]);
410
+
411
+ $res = $client->direct(['path' => '/probe']);
412
+ $this->assertFalse($res['ok'], 'a broken chain must refuse the request');
413
+ $this->assertStringContainsString(
414
+ 'A provider OBJECT cannot reach this feature', (string)$res['err']);
415
+ $this->assertCount(0, $wire->calls);
416
+ }
417
+
418
+ public function testAMissEverywhereLeavesTheHeaderOff(): void
419
+ {
420
+ $this->clearenv('APIKEY');
421
+ $wire = new ProjectNameSecretsWire();
422
+ $client = $this->secretsClient($wire, ['feature' => $this->secretsOpts()]);
423
+
424
+ $this->driveOp($client, $wire);
425
+ $this->assertFalse($wire->api()[0]['has'],
426
+ 'a chain MISS must fall through to an unauthenticated request, got ' .
427
+ var_export($wire->api()[0]['auth'], true));
428
+ }
429
+
430
+ public function testAProviderErrorFailsTheOpAndNothingReachesTheWire(): void
431
+ {
432
+ $asked = false;
433
+ $wire = new ProjectNameSecretsWire();
434
+ $client = $this->secretsClient($wire, [
435
+ 'feature' => ['secrets' => [
436
+ 'active' => true,
437
+ 'providers' => [$this->customProvider(
438
+ function (string $_name) use (&$asked) {
439
+ $asked = true;
440
+ throw new \Voxgig\Sekreto\SekretoError('vault unreachable');
441
+ })],
442
+ ]],
443
+ ]);
444
+
445
+ // A full closure, not an arrow function: `fn()` captures by VALUE at
446
+ // creation, so an arrow function here would keep reading the `false`
447
+ // the flag held before any provider ran, and the drive would give up
448
+ // without ever noticing the chain had been consulted.
449
+ $this->driveUntil($client, 'consulted the chain',
450
+ function () use (&$asked) { return $asked; });
451
+
452
+ $this->assertCount(0, $wire->api(),
453
+ 'a broken vault must never yield a request');
454
+ }
455
+
456
+ // The entity pipeline turns the refusal into a thrown SDK error
457
+ // carrying the feature's own code - never a silent unauthenticated
458
+ // send.
459
+ public function testAProviderErrorThrowsAnSdkErrorOnTheEntityPath(): void
460
+ {
461
+ $wire = new ProjectNameSecretsWire();
462
+ $client = $this->secretsClient($wire, [
463
+ 'feature' => ['secrets' => [
464
+ 'active' => true,
465
+ 'providers' => [$this->customProvider(
466
+ function (string $_name) {
467
+ throw new \Voxgig\Sekreto\SekretoError('vault unreachable');
468
+ })],
469
+ ]],
470
+ ]);
471
+
472
+ $accessor = $this->entityAccessors($client)[0] ?? null;
473
+ $this->assertNotNull($accessor, 'no entity accessor - nothing to assert on');
474
+
475
+ $caught = null;
476
+ try {
477
+ $client->$accessor()->list();
478
+ } catch (ProjectNameError $e) {
479
+ $caught = $e;
480
+ }
481
+
482
+ $this->assertNotNull($caught, 'the entity path must fail closed');
483
+ $this->assertStringContainsString('vault unreachable', $caught->msg);
484
+ $this->assertCount(0, $wire->api());
485
+ }
486
+
487
+ // MISS vs ERROR, the invariant the whole feature is worth having for,
488
+ // asserted as a PAIR on the same two-provider chain: a store that does
489
+ // not hold the secret falls through to the next one...
490
+ public function testAMissFallsThroughToTheNextProvider(): void
491
+ {
492
+ $this->setenv('APIKEY', 'ENVKEY04');
493
+ $asked = false;
494
+ $wire = new ProjectNameSecretsWire();
495
+ $client = $this->secretsClient($wire, [
496
+ 'feature' => ['secrets' => [
497
+ 'active' => true,
498
+ 'providers' => [
499
+ $this->customProvider(function (string $_name) use (&$asked) {
500
+ $asked = true;
501
+ return null;
502
+ }),
503
+ ['kind' => 'env', 'prefix' => self::ENVPREFIX],
504
+ ],
505
+ ]],
506
+ ]);
507
+
508
+ $this->driveOp($client, $wire);
509
+ $this->assertTrue($asked, 'the first provider was never consulted');
510
+ $this->assertCredential($wire->api()[0]['auth'], 'ENVKEY04');
511
+ }
512
+
513
+ // ...while a store that COULD NOT ANSWER fails the operation, even
514
+ // though the very next provider in the chain holds the secret. A broken
515
+ // vault never degrades into an unauthenticated - or a
516
+ // differently-authenticated - request.
517
+ public function testAnErrorFailsTheOpEvenThoughALaterProviderHasTheSecret(): void
518
+ {
519
+ $this->setenv('APIKEY', 'ENVKEY05');
520
+ $wire = new ProjectNameSecretsWire();
521
+ $client = $this->secretsClient($wire, [
522
+ 'feature' => ['secrets' => [
523
+ 'active' => true,
524
+ 'providers' => [
525
+ $this->customProvider(function (string $_name) {
526
+ throw new \Voxgig\Sekreto\SekretoError('vault unreachable');
527
+ }),
528
+ ['kind' => 'env', 'prefix' => self::ENVPREFIX],
529
+ ],
530
+ ]],
531
+ ]);
532
+
533
+ $res = $client->direct(['path' => '/probe']);
534
+ $this->assertFalse($res['ok'], 'an ERROR must not fall through to the next provider');
535
+ $this->assertSame('secrets_provider', $res['err']->sdk_code);
536
+ $this->assertCount(0, $wire->calls);
537
+ }
538
+
539
+ public function testAProviderRecoversAfterATransientFailure(): void
540
+ {
541
+ $calls = 0;
542
+ $wire = new ProjectNameSecretsWire();
543
+ $client = $this->secretsClient($wire, [
544
+ 'feature' => ['secrets' => [
545
+ 'active' => true,
546
+ 'providers' => [$this->customProvider(
547
+ function (string $_name) use (&$calls) {
548
+ $calls++;
549
+ if (1 === $calls) {
550
+ throw new \Voxgig\Sekreto\SekretoError('vault unreachable');
551
+ }
552
+ return 'RECOVERED01';
553
+ })],
554
+ ]],
555
+ ]);
556
+
557
+ // The first op fails closed; a failed resolution is never cached, so
558
+ // the next op asks the chain again and succeeds.
559
+ $this->driveUntil($client, 'consulted the chain',
560
+ function () use (&$calls) { return 0 < $calls; });
561
+ $this->assertCount(0, $wire->api(), 'the first op must not reach the wire');
562
+
563
+ $this->driveOp($client, $wire);
564
+ $this->assertCredential($wire->api()[0]['auth'], 'RECOVERED01');
565
+ }
566
+
567
+ // With `cache: false`, a provider that answered once and then reports a
568
+ // MISS (a revoked secret) must RETRACT the credential: nothing the
569
+ // feature resolved may keep going out on the wire.
570
+ public function testAnUncachedMissRetractsTheCredential(): void
571
+ {
572
+ $have = true;
573
+ $wire = new ProjectNameSecretsWire();
574
+ $client = $this->secretsClient($wire, [
575
+ 'feature' => ['secrets' => [
576
+ 'active' => true,
577
+ 'cache' => false,
578
+ 'providers' => [$this->customProvider(
579
+ function (string $_name) use (&$have) {
580
+ return $have ? 'REVOCABLE01' : null;
581
+ })],
582
+ ]],
583
+ ]);
584
+
585
+ $this->driveOp($client, $wire);
586
+ $this->assertCredential($wire->api()[0]['auth'], 'REVOCABLE01');
587
+
588
+ $have = false;
589
+
590
+ $this->driveOp($client, $wire);
591
+ $api = $wire->api();
592
+ $last = $api[count($api) - 1];
593
+ $this->assertFalse($last['has'] && '' !== (string)$last['auth'],
594
+ 'after the chain reports a miss the retracted credential must not go out; ' .
595
+ 'the wire saw ' . var_export($last['auth'], true));
596
+ }
597
+
598
+ // A MISS IS NOT A CACHEABLE ANSWER - sekreto's own rule, which this
599
+ // feature used to override from the layer above.
600
+ //
601
+ // DEFAULT caching here, which is the whole point: `cache: true` is
602
+ // about holding a HIT, and caching the settled resolution after a miss
603
+ // meant the chain was never asked again for the life of the client. A
604
+ // secret provisioned after startup (a mounted file, a vault policy
605
+ // granted a minute late) was invisible forever, and the only workaround
606
+ // was giving up hit caching entirely.
607
+ public function testACachedMissIsReasked(): void
608
+ {
609
+ $present = false;
610
+ $calls = 0;
611
+ $wire = new ProjectNameSecretsWire();
612
+ $client = $this->secretsClient($wire, [
613
+ 'feature' => ['secrets' => [
614
+ 'active' => true,
615
+ 'providers' => [$this->customProvider(
616
+ function (string $_name) use (&$present, &$calls) {
617
+ $calls++;
618
+ return $present ? 'LATEKEY01' : null;
619
+ })],
620
+ ]],
621
+ ]);
622
+
623
+ $this->driveOp($client, $wire);
624
+ $first = $wire->api()[0];
625
+ $this->assertFalse($first['has'] && '' !== (string)$first['auth'],
626
+ 'the chain has nothing yet, so no credential should go out');
627
+
628
+ $asked = $calls;
629
+ $this->assertGreaterThan(0, $asked);
630
+
631
+ // The secret is provisioned while the client is live.
632
+ $present = true;
633
+
634
+ $this->driveOp($client, $wire);
635
+ $api = $wire->api();
636
+ $this->assertCredential($api[count($api) - 1]['auth'], 'LATEKEY01');
637
+
638
+ $this->assertGreaterThan($asked, $calls,
639
+ 'the MISS was cached: a secret that appears later can never be picked up');
640
+ }
641
+
642
+ // The other half of the same rule: a HIT is still cached by default, so
643
+ // the fix above must not turn every request into a chain walk.
644
+ public function testACachedHitIsKept(): void
645
+ {
646
+ $calls = 0;
647
+ $wire = new ProjectNameSecretsWire();
648
+ $client = $this->secretsClient($wire, [
649
+ 'feature' => ['secrets' => [
650
+ 'active' => true,
651
+ 'providers' => [$this->customProvider(
652
+ function (string $_name) use (&$calls) {
653
+ $calls++;
654
+ return 'STABLEKEY01';
655
+ })],
656
+ ]],
657
+ ]);
658
+
659
+ $this->driveOp($client, $wire);
660
+ $this->driveOp($client, $wire);
661
+
662
+ $this->assertSame(1, $calls,
663
+ 'a hit must be cached under the default cache: true');
664
+ }
665
+
666
+ public function testAuthNullSuppressesTheCredentialChainOrNoChain(): void
667
+ {
668
+ $this->setenv('APIKEY', 'ENVKEY03');
669
+ $wire = new ProjectNameSecretsWire();
670
+ $client = $this->secretsClient($wire, [
671
+ 'auth' => null,
672
+ 'apikey' => 'OPTKEY01',
673
+ 'feature' => $this->secretsOpts(),
674
+ ]);
675
+
676
+ $this->driveOp($client, $wire);
677
+
678
+ $this->assertFalse($wire->api()[0]['has'],
679
+ 'auth null must suppress the credential, got ' .
680
+ var_export($wire->api()[0]['auth'], true));
681
+
682
+ // The suppression survives option validation rather than being
683
+ // replaced by the optspec's default auth map.
684
+ $opts = $client->options_map();
685
+ $this->assertTrue(array_key_exists('auth', $opts),
686
+ 'options.auth must stay a present null');
687
+ $this->assertNull($opts['auth']);
688
+ }
689
+
690
+ // -----------------------------------------------------------------
691
+ // The RAW paths - direct and graphql - run no feature hooks at all, so
692
+ // for them the transport seam is the ONLY place resolution can happen.
693
+
694
+ public function testDirectCarriesTheChainCredentialAndFailsClosed(): void
695
+ {
696
+ $this->setenv('APIKEY', 'DIRECTKEY01');
697
+ $wire = new ProjectNameSecretsWire();
698
+ $client = $this->secretsClient($wire, ['feature' => $this->secretsOpts()]);
699
+
700
+ $res = $client->direct(['path' => '/direct-probe']);
701
+ $this->assertTrue($res['ok'], 'direct refused');
702
+ $this->assertCount(1, $wire->api());
703
+ $this->assertCredential($wire->api()[0]['auth'], 'DIRECTKEY01');
704
+
705
+ // And fail-closed holds for raw access too: a broken chain refuses
706
+ // the direct call before anything reaches the wire.
707
+ $brokenwire = new ProjectNameSecretsWire();
708
+ $broken = $this->secretsClient($brokenwire, [
709
+ 'feature' => ['secrets' => [
710
+ 'active' => true,
711
+ 'providers' => [$this->customProvider(function (string $_name) {
712
+ throw new \Voxgig\Sekreto\SekretoError('vault unreachable');
713
+ })],
714
+ ]],
715
+ ]);
716
+
717
+ $res = $broken->direct(['path' => '/direct-probe']);
718
+ $this->assertFalse($res['ok'], 'a broken chain must refuse the raw path fail-closed');
719
+ $this->assertSame('secrets_provider', $res['err']->sdk_code);
720
+ $this->assertCount(0, $brokenwire->calls,
721
+ 'a broken vault must never yield a request on the raw path');
722
+ }
723
+
724
+ public function testGraphqlCarriesTheChainCredentialAndFailsClosed(): void
725
+ {
726
+ $this->setenv('APIKEY', 'GQLKEY01');
727
+ $wire = new ProjectNameSecretsWire();
728
+ $client = $this->secretsClient($wire, ['feature' => $this->secretsOpts()]);
729
+
730
+ $client->graphql('{ probe }');
731
+ $this->assertCount(1, $wire->api());
732
+ $this->assertCredential($wire->api()[0]['auth'], 'GQLKEY01');
733
+
734
+ $brokenwire = new ProjectNameSecretsWire();
735
+ $broken = $this->secretsClient($brokenwire, [
736
+ 'feature' => ['secrets' => [
737
+ 'active' => true,
738
+ 'providers' => [$this->customProvider(function (string $_name) {
739
+ throw new \Voxgig\Sekreto\SekretoError('vault unreachable');
740
+ })],
741
+ ]],
742
+ ]);
743
+
744
+ $res = $broken->graphql('{ probe }');
745
+ $this->assertFalse($res['ok'], 'a broken chain must refuse graphql fail-closed');
746
+ $this->assertCount(0, $brokenwire->calls);
747
+ }
748
+
749
+ // -----------------------------------------------------------------
750
+ // The access-token exchange.
751
+
752
+ public function testTheRefreshTokenBuysAnAccessTokenAndASpentOneIsReboughtOnce(): void
753
+ {
754
+ $this->setenv('REFRESH_TOKEN', 'REFRESH01');
755
+ $wire = new ProjectNameSecretsWire();
756
+ // First API call is refused, the retry succeeds.
757
+ $wire->apistatus = [401, 200];
758
+
759
+ $client = $this->secretsClient($wire, [
760
+ 'feature' => $this->secretsOpts([
761
+ 'name' => 'refresh_token',
762
+ 'exchange' => ['active' => true],
763
+ ]),
764
+ ]);
765
+
766
+ $this->driveOp($client, $wire);
767
+
768
+ $this->assertCount(2, $wire->token(),
769
+ 'expected the initial purchase plus one rebuy');
770
+ $this->assertStringContainsString('REFRESH01', (string)$wire->token()[0]['body']);
771
+
772
+ $api = $wire->api();
773
+ $this->assertCount(2, $api, 'expected the request to be retried exactly once');
774
+ $this->assertCredential($api[0]['auth'], 'ACCESS01');
775
+ // The retry must carry the NEW token, not the spent one.
776
+ $this->assertCredential($api[1]['auth'], 'ACCESS02');
777
+ }
778
+
779
+ // `auth: null` SUPPRESSES THE PURCHASE, not just the retry.
780
+ //
781
+ // resolve() runs before with_refresh's suppression check, so the
782
+ // refresh token used to go to the token endpoint in a request body even
783
+ // here. Stopping the retry does not unsend it - this asserts on the
784
+ // token endpoint, which is the half the API-header assertions cannot
785
+ // see.
786
+ public function testAuthNullBuysNoTokenAtAll(): void
787
+ {
788
+ $this->setenv('REFRESH_TOKEN', 'REFRESH01');
789
+ $wire = new ProjectNameSecretsWire();
790
+ $wire->apistatus = [401];
791
+
792
+ $client = $this->secretsClient($wire, [
793
+ 'auth' => null,
794
+ 'feature' => $this->secretsOpts([
795
+ 'name' => 'refresh_token',
796
+ 'exchange' => ['active' => true],
797
+ ]),
798
+ ]);
799
+
800
+ $this->driveOp($client, $wire);
801
+
802
+ $this->assertCount(0, $wire->token(),
803
+ 'auth null suppressed the credential but the refresh token was ' .
804
+ 'still POSTed to the exchange endpoint');
805
+ $this->assertFalse($wire->api()[0]['has'],
806
+ 'no credential may be sent when auth is suppressed');
807
+ }
808
+
809
+ // A second refusal on a token bought moments ago is a real failure, not
810
+ // a spin: exactly one rebuy, and the refusal is returned as it stands.
811
+ public function testASecondRefusalIsReturnedAsIs(): void
812
+ {
813
+ $this->setenv('REFRESH_TOKEN', 'REFRESH01');
814
+ $wire = new ProjectNameSecretsWire();
815
+ $wire->apistatus = [401];
816
+
817
+ $client = $this->secretsClient($wire, [
818
+ 'feature' => $this->secretsOpts([
819
+ 'name' => 'refresh_token',
820
+ 'exchange' => ['active' => true],
821
+ ]),
822
+ ]);
823
+
824
+ $this->driveOp($client, $wire);
825
+
826
+ $this->assertCount(2, $wire->api(), 'one attempt plus one retry, no more');
827
+ $this->assertCount(2, $wire->token());
828
+ }
829
+
830
+ // Test mode buys nothing and needs no token endpoint, so an offline
831
+ // suite never makes the one HTTP call the test mock cannot stop.
832
+ public function testTestModeBuysNothingAndNeedsNoTokenEndpoint(): void
833
+ {
834
+ $this->setenv('REFRESH_TOKEN', 'REFRESH01');
835
+ $wire = new ProjectNameSecretsWire();
836
+
837
+ $client = $this->withSecrets(function (bool $adopt) use ($wire) {
838
+ $opts = [
839
+ 'system' => ['fetch' => $wire->fetch()],
840
+ 'feature' => $this->secretsOpts([
841
+ 'name' => 'refresh_token',
842
+ 'exchange' => ['active' => true],
843
+ ]),
844
+ ];
845
+ if ($adopt) {
846
+ $opts['extend'] = [new ProjectNameSecretsFeature()];
847
+ }
848
+ return ProjectNameSDK::test(null, $opts);
849
+ });
850
+
851
+ $this->driveUntil($client, 'resolved the fake token',
852
+ fn() => '' !== $this->secretsFeatureOf($client)->credential());
853
+
854
+ $this->assertCount(0, $wire->calls, 'test mode must not do IO');
855
+ // A deterministic placeholder, so offline suites need no
856
+ // configuration.
857
+ $this->assertSame('test-access_token',
858
+ $this->secretsFeatureOf($client)->credential());
859
+ }
860
+
861
+ // A failed PURCHASE answers with the API's own refusal, not the
862
+ // exchange error: the caller asked for data, and the 401 is the more
863
+ // useful of the two.
864
+ public function testAFailedPurchaseAnswersWithTheApisOwnRefusal(): void
865
+ {
866
+ $this->clearenv('REFRESH_TOKEN');
867
+ $wire = new ProjectNameSecretsWire();
868
+ $wire->apistatus = [401];
869
+
870
+ $client = $this->secretsClient($wire, [
871
+ 'apikey' => 'STALE01',
872
+ 'feature' => $this->secretsOpts([
873
+ 'name' => 'refresh_token',
874
+ 'exchange' => ['active' => true],
875
+ ]),
876
+ ]);
877
+
878
+ $res = $client->direct(['path' => '/probe']);
879
+
880
+ // 401 from the API, surfaced as the raw path's ok:false - not a
881
+ // token exchange error.
882
+ $this->assertFalse($res['ok']);
883
+ $this->assertSame(401, $res['status']);
884
+ $this->assertCount(1, $wire->api());
885
+ }
886
+
887
+ // The exchange with NO system.fetch: the raw fallback transport carries
888
+ // the purchase end to end over REAL HTTP, and the body is ENCODED - a
889
+ // refresh token full of JSON-hostile characters must arrive as that
890
+ // literal value.
891
+ // IN ITS OWN PROCESS, and this is the one lane that needs it. It is the
892
+ // only test in the suite that reaches the SDK's DEFAULT transport (no
893
+ // system.fetch anywhere - that is the point), and Fetcher::call decides
894
+ // "no fetcher was supplied" by asking whether `system.fetch` is an empty
895
+ // stdClass. The struct corpus suite that runs earlier in the same
896
+ // process writes a property onto Struct's shared UNDEF sentinel - the
897
+ // very object a missing path resolves to - so that check then answers
898
+ // "not a valid function" for every default-transport request in the
899
+ // process. A fresh process has a clean sentinel. See the followups: the
900
+ // fix belongs in Struct::setprop, which must refuse to write to its own
901
+ // sentinel, not here.
902
+ #[\PHPUnit\Framework\Attributes\RunInSeparateProcess]
903
+ #[\PHPUnit\Framework\Attributes\PreserveGlobalState(false)]
904
+ public function testTheExchangeWorksWithOrdinaryOptionsAndEncodesItsBody(): void
905
+ {
906
+ $tricky = "re\"fresh\\to\nken";
907
+
908
+ $stub = new ProjectNameSecretsHttpStub();
909
+ $port = $stub->start();
910
+ if (0 === $port) {
911
+ $this->markTestSkipped('could not start the local HTTP stub');
912
+ }
913
+
914
+ try {
915
+ $client = $this->withSecrets(function (bool $adopt) use ($port, $tricky) {
916
+ $opts = [
917
+ 'base' => 'http://127.0.0.1:' . $port . '/api',
918
+ 'feature' => ['secrets' => [
919
+ 'active' => true,
920
+ 'name' => 'refresh_token',
921
+ 'exchange' => ['active' => true, 'refresh' => $tricky],
922
+ ]],
923
+ ];
924
+ if ($adopt) {
925
+ $opts['extend'] = [new ProjectNameSecretsFeature()];
926
+ }
927
+ return new ProjectNameSDK($opts);
928
+ });
929
+
930
+ // No system.fetch anywhere: the API call takes the SDK's default
931
+ // transport and the token purchase takes the feature's raw
932
+ // fallback.
933
+ $res = $client->direct(['path' => '/probe']);
934
+ $this->assertTrue($res['ok'], 'the raw fallback exchange failed');
935
+ } finally {
936
+ $stub->stop();
937
+ }
938
+
939
+ $this->assertSame($tricky, $stub->refresh(),
940
+ 'the refresh token must arrive as its literal value (encoded, not concatenated)');
941
+ $this->assertCredential($stub->auth(), 'RAWTOK01');
942
+
943
+ // stop() must leave NOTHING behind. This is asserted, not assumed:
944
+ // a child spawned through a shell survives proc_terminate as an
945
+ // orphan that holds the port for the rest of the machine's life -
946
+ // and, because it inherits the run's own descriptors, holds a
947
+ // captured pipe open so that `make test | tee` (or any CI log
948
+ // capture) never returns. The temp directory is the second trace,
949
+ // one per run.
950
+ $leak = $stub->leak();
951
+ $this->assertNull($leak, 'the stub outlived stop(): ' . (string)$leak);
952
+ }
953
+
954
+ // -----------------------------------------------------------------
955
+ // The refusal is NOT retried. The gate lives at the transport, so a
956
+ // provider ERROR must fail the operation once - never spin the chain,
957
+ // and never let a later attempt through unauthenticated.
958
+ public function testAProviderErrorIsRefusedOnceAndNotRetried(): void
959
+ {
960
+ $calls = 0;
961
+ $wire = new ProjectNameSecretsWire();
962
+ $client = $this->secretsClient($wire, [
963
+ 'feature' => ['secrets' => [
964
+ 'active' => true,
965
+ 'providers' => [$this->customProvider(
966
+ function (string $_name) use (&$calls) {
967
+ $calls++;
968
+ throw new \Voxgig\Sekreto\SekretoError('vault unreachable');
969
+ })],
970
+ ]],
971
+ ]);
972
+
973
+ $accessor = $this->entityAccessors($client)[0] ?? null;
974
+ $this->assertNotNull($accessor);
975
+
976
+ try {
977
+ $client->$accessor()->list();
978
+ $this->fail('the op must fail closed');
979
+ } catch (ProjectNameError $e) {
980
+ // expected
981
+ }
982
+
983
+ $this->assertSame(1, $calls, 'the refusal must not be retried');
984
+ $this->assertCount(0, $wire->calls);
985
+ }
986
+ }
987
+
988
+ // A one-request-at-a-time HTTP stand-in, run as a child `php -S` process:
989
+ // the raw-fallback exchange has to be exercised over REAL HTTP (that is the
990
+ // whole point of the lane), and PHP has no threads to serve it in-process.
991
+ // Answers the token endpoint with an access token and every other path with
992
+ // an empty JSON body, recording what each request carried.
993
+ class ProjectNameSecretsHttpStub
994
+ {
995
+ private mixed $proc = null;
996
+ private string $dir = '';
997
+ private int $port = 0;
998
+
999
+ // What the server recorded, READ OFF DISK BY stop() before the temp
1000
+ // directory goes: the assertions run after the `finally`, and a stub
1001
+ // that cleans up after itself has no files left to answer from.
1002
+ private ?string $refresh = null;
1003
+ private ?string $auth = null;
1004
+
1005
+ public function start(): int
1006
+ {
1007
+ $this->dir = sys_get_temp_dir() . '/secrets-stub-' . bin2hex(random_bytes(6));
1008
+ if (!@mkdir($this->dir, 0700, true)) {
1009
+ $this->dir = '';
1010
+ return 0;
1011
+ }
1012
+
1013
+ $router = <<<'ROUTER'
1014
+ <?php
1015
+ $dir = __DIR__;
1016
+ $path = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?? '/';
1017
+ if (str_ends_with($path, '/auth/token')) {
1018
+ $raw = file_get_contents('php://input');
1019
+ $parsed = json_decode((string)$raw, true);
1020
+ file_put_contents($dir . '/refresh.txt',
1021
+ is_array($parsed) ? (string)($parsed['refresh_token'] ?? '') : '');
1022
+ header('content-type: application/json');
1023
+ echo '{"access_token": "RAWTOK01"}';
1024
+ return;
1025
+ }
1026
+ $auth = '';
1027
+ foreach ($_SERVER as $k => $v) {
1028
+ if ('HTTP_AUTHORIZATION' === $k) { $auth = (string)$v; }
1029
+ }
1030
+ file_put_contents($dir . '/auth.txt', $auth);
1031
+ header('content-type: application/json');
1032
+ echo '{}';
1033
+ ROUTER;
1034
+ file_put_contents($this->dir . '/router.php', $router);
1035
+
1036
+ // A free port: bind, read it, release it. The window between release
1037
+ // and the server's own bind is the usual small race, and a failure
1038
+ // to come up skips the test rather than failing it.
1039
+ $probe = @stream_socket_server('tcp://127.0.0.1:0', $errno, $errstr);
1040
+ if (false === $probe) {
1041
+ $this->stop();
1042
+ return 0;
1043
+ }
1044
+ $name = stream_socket_get_name($probe, false);
1045
+ fclose($probe);
1046
+ $port = (int)substr((string)$name, (int)strrpos((string)$name, ':') + 1);
1047
+ if (0 === $port) {
1048
+ $this->stop();
1049
+ return 0;
1050
+ }
1051
+
1052
+ // An ARRAY command, never a string. proc_open runs a STRING through
1053
+ // `/bin/sh -c`, and the process it then hands back is the SHELL:
1054
+ // proc_terminate would signal that, leaving `php -S` alive as an
1055
+ // orphan holding the port - and, under `make test | tee` or any CI
1056
+ // log capture, holding the pipe open so the run never ends. The
1057
+ // array form execs the binary directly, so the child this object
1058
+ // holds IS the server.
1059
+ $cmd = [PHP_BINARY, '-S', '127.0.0.1:' . $port, $this->dir . '/router.php'];
1060
+ // Every child descriptor is a FILE, never a pipe: a pipe end the
1061
+ // parent never drains is a stall waiting to happen, and a test
1062
+ // harness that captures output must not end up waiting on the
1063
+ // server's.
1064
+ $pipes = [];
1065
+ $this->proc = @proc_open($cmd, [
1066
+ 0 => ['file', '/dev/null', 'r'],
1067
+ 1 => ['file', $this->dir . '/out.log', 'a'],
1068
+ 2 => ['file', $this->dir . '/err.log', 'a'],
1069
+ ], $pipes, $this->dir);
1070
+
1071
+ if (!is_resource($this->proc)) {
1072
+ $this->stop();
1073
+ return 0;
1074
+ }
1075
+
1076
+ for ($i = 0; $i < 100; $i++) {
1077
+ $sock = @stream_socket_client('tcp://127.0.0.1:' . $port, $e1, $e2, 0.2);
1078
+ if (false !== $sock) {
1079
+ fclose($sock);
1080
+ $this->port = $port;
1081
+ return $port;
1082
+ }
1083
+ usleep(50000);
1084
+ }
1085
+
1086
+ $this->stop();
1087
+ return 0;
1088
+ }
1089
+
1090
+ // Stop the server and leave NOTHING behind - no process, no directory.
1091
+ // Called from the test's `finally` and from every failure path in
1092
+ // start(), which markTestSkipped() unwinds past before any `finally`
1093
+ // exists.
1094
+ public function stop(): void
1095
+ {
1096
+ // Read the recording out first: the files are about to go.
1097
+ $this->refresh = $this->slurp('refresh.txt') ?? $this->refresh;
1098
+ $this->auth = $this->slurp('auth.txt') ?? $this->auth;
1099
+
1100
+ if (is_resource($this->proc)) {
1101
+ proc_terminate($this->proc);
1102
+ // proc_close REAPS the child, so the process is gone (not a
1103
+ // zombie) by the time this returns.
1104
+ proc_close($this->proc);
1105
+ $this->proc = null;
1106
+ }
1107
+
1108
+ if ('' !== $this->dir) {
1109
+ foreach ((array)@scandir($this->dir) as $f) {
1110
+ if ('.' !== $f && '..' !== $f) {
1111
+ @unlink($this->dir . '/' . $f);
1112
+ }
1113
+ }
1114
+ @rmdir($this->dir);
1115
+ }
1116
+ }
1117
+
1118
+ // Did stop() actually stop it? The two observable traces a leak leaves:
1119
+ // the port still answering (an orphaned server), and the temp directory
1120
+ // still on disk. Asserted by the test, so a stub that goes back to
1121
+ // leaking fails the suite instead of quietly filling /tmp and hanging
1122
+ // every piped run.
1123
+ public function leak(): ?string
1124
+ {
1125
+ if ('' !== $this->dir && is_dir($this->dir)) {
1126
+ return 'temp directory still on disk: ' . $this->dir;
1127
+ }
1128
+
1129
+ if (0 === $this->port) {
1130
+ return null;
1131
+ }
1132
+
1133
+ // The listener can take a moment to go after SIGTERM; a still-open
1134
+ // port after that is an orphan, not a race.
1135
+ for ($i = 0; $i < 40; $i++) {
1136
+ $sock = @stream_socket_client('tcp://127.0.0.1:' . $this->port, $e1, $e2, 0.2);
1137
+ if (false === $sock) {
1138
+ return null;
1139
+ }
1140
+ fclose($sock);
1141
+ usleep(50000);
1142
+ }
1143
+
1144
+ return 'a server is still listening on 127.0.0.1:' . $this->port;
1145
+ }
1146
+
1147
+ public function refresh(): ?string
1148
+ {
1149
+ return $this->slurp('refresh.txt') ?? $this->refresh;
1150
+ }
1151
+
1152
+ public function auth(): ?string
1153
+ {
1154
+ return $this->slurp('auth.txt') ?? $this->auth;
1155
+ }
1156
+
1157
+ private function slurp(string $file): ?string
1158
+ {
1159
+ if ('' === $this->dir) {
1160
+ return null;
1161
+ }
1162
+ $out = @file_get_contents($this->dir . '/' . $file);
1163
+ return false === $out ? null : $out;
1164
+ }
1165
+ }