@voxgig/sdkgen 4.9.0 → 4.10.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 (887) hide show
  1. package/dist/helpers/manifest.d.ts +2 -1
  2. package/dist/helpers/manifest.js +75 -1
  3. package/dist/helpers/manifest.js.map +1 -1
  4. package/dist/helpers/modelNames.d.ts +7 -0
  5. package/dist/helpers/modelNames.js +232 -0
  6. package/dist/helpers/modelNames.js.map +1 -0
  7. package/dist/helpers/naming.d.ts +2 -1
  8. package/dist/helpers/naming.js +45 -1
  9. package/dist/helpers/naming.js.map +1 -1
  10. package/dist/sdkgen.d.ts +3 -2
  11. package/dist/sdkgen.js +12 -3
  12. package/dist/sdkgen.js.map +1 -1
  13. package/dist/testkit.d.ts +2 -0
  14. package/dist/testkit.js +80 -24
  15. package/dist/testkit.js.map +1 -1
  16. package/dist/tsconfig.tsbuildinfo +1 -1
  17. package/dist/utility.js +17 -7
  18. package/dist/utility.js.map +1 -1
  19. package/package.json +1 -1
  20. package/project/.sdk/model/feature/secrets.aon +671 -0
  21. package/project/.sdk/model/target/clojure.aon +10 -0
  22. package/project/.sdk/model/target/csharp.aon +5 -0
  23. package/project/.sdk/model/target/elixir.aon +6 -0
  24. package/project/.sdk/model/target/java.aon +5 -0
  25. package/project/.sdk/model/target/js.aon +5 -0
  26. package/project/.sdk/model/target/kotlin.aon +7 -0
  27. package/project/.sdk/model/target/perl.aon +5 -0
  28. package/project/.sdk/model/target/php.aon +5 -0
  29. package/project/.sdk/model/target/rb.aon +5 -0
  30. package/project/.sdk/model/target/rust.aon +5 -0
  31. package/project/.sdk/model/target/scala.aon +38 -2
  32. package/project/.sdk/model/target/swift.aon +10 -0
  33. package/project/.sdk/src/cmp/clojure/Config_clojure.ts +51 -4
  34. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +43 -1
  35. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +17 -1
  36. package/project/.sdk/src/cmp/clojure/featureextra_clojure.ts +130 -0
  37. package/project/.sdk/src/cmp/csharp/Config_csharp.ts +70 -0
  38. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +9 -1
  39. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +25 -1
  40. package/project/.sdk/src/cmp/elixir/Config_elixir.ts +68 -2
  41. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +16 -0
  42. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +14 -1
  43. package/project/.sdk/src/cmp/java/Config_java.ts +84 -2
  44. package/project/.sdk/src/cmp/java/Main_java.ts +10 -1
  45. package/project/.sdk/src/cmp/js/Config_js.ts +75 -8
  46. package/project/.sdk/src/cmp/js/Main_js.ts +66 -2
  47. package/project/.sdk/src/cmp/js/fragment/Config.data.fragment.js +18 -1
  48. package/project/.sdk/src/cmp/js/fragment/Config.fragment.js +18 -1
  49. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +7 -0
  50. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +63 -1
  51. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +32 -2
  52. package/project/.sdk/src/cmp/perl/Config_perl.ts +129 -3
  53. package/project/.sdk/src/cmp/perl/Main_perl.ts +41 -1
  54. package/project/.sdk/src/cmp/perl/Package_perl.ts +13 -1
  55. package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +1 -0
  56. package/project/.sdk/src/cmp/php/Config_php.ts +105 -1
  57. package/project/.sdk/src/cmp/php/Gitignore_php.ts +4 -2
  58. package/project/.sdk/src/cmp/php/Main_php.ts +16 -1
  59. package/project/.sdk/src/cmp/rb/Config_rb.ts +92 -2
  60. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +11 -1
  61. package/project/.sdk/src/cmp/rb/Main_rb.ts +7 -1
  62. package/project/.sdk/src/cmp/rust/Main_rust.ts +99 -1
  63. package/project/.sdk/src/cmp/rust/Package_rust.ts +72 -6
  64. package/project/.sdk/src/cmp/scala/Config_scala.ts +44 -0
  65. package/project/.sdk/src/cmp/scala/Main_scala.ts +68 -1
  66. package/project/.sdk/src/cmp/swift/Config_swift.ts +62 -1
  67. package/project/.sdk/src/cmp/swift/Main_swift.ts +35 -1
  68. package/project/.sdk/src/cmp/swift/Package_swift.ts +81 -11
  69. package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +58 -44
  70. package/project/.sdk/src/cmp/swift/utility_swift.ts +22 -0
  71. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  72. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  73. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  74. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  75. package/project/.sdk/tm/clojure/Makefile +3 -0
  76. package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +503 -0
  77. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +84 -0
  78. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +44 -0
  79. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +240 -0
  80. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +199 -0
  81. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +111 -0
  82. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +46 -0
  83. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +122 -0
  84. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +1018 -0
  85. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +106 -0
  86. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +157 -0
  87. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +77 -0
  88. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +92 -0
  89. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +46 -0
  90. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +177 -0
  91. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +90 -0
  92. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +40 -0
  93. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +111 -0
  94. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +297 -0
  95. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +192 -0
  96. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +261 -0
  97. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +165 -0
  98. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +111 -0
  99. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +107 -0
  100. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +61 -0
  101. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +88 -0
  102. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +115 -0
  103. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +214 -0
  104. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +80 -0
  105. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +93 -0
  106. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +63 -0
  107. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +99 -0
  108. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +142 -0
  109. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +25 -0
  110. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +196 -0
  111. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +113 -0
  112. package/project/.sdk/tm/clojure/src/sdk/core.clj +9 -0
  113. package/project/.sdk/tm/clojure/src/sdk/features.clj +13 -1
  114. package/project/.sdk/tm/clojure/test/sdk/test/feature/secrets.clj +547 -0
  115. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +103 -14
  116. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  117. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  118. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  119. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  120. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  121. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  122. package/project/.sdk/tm/csharp/feature/SecretsFeature.cs +889 -0
  123. package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +196 -0
  124. package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +70 -0
  125. package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +505 -0
  126. package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +52 -0
  127. package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +285 -0
  128. package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +55 -0
  129. package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +228 -0
  130. package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +102 -0
  131. package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +256 -0
  132. package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +1379 -0
  133. package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +177 -0
  134. package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +326 -0
  135. package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +295 -0
  136. package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +113 -0
  137. package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +177 -0
  138. package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +198 -0
  139. package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +95 -0
  140. package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +351 -0
  141. package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +196 -0
  142. package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +325 -0
  143. package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +195 -0
  144. package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +192 -0
  145. package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +75 -0
  146. package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +112 -0
  147. package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +167 -0
  148. package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +221 -0
  149. package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +213 -0
  150. package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +155 -0
  151. package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +169 -0
  152. package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +172 -0
  153. package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +240 -0
  154. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +192 -0
  155. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +503 -0
  156. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +775 -0
  157. package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +1702 -0
  158. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  159. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  160. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +10 -0
  161. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
  162. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +118 -0
  163. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +56 -0
  164. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +320 -0
  165. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +205 -0
  166. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +166 -0
  167. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +13 -0
  168. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +73 -0
  169. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +185 -0
  170. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +1182 -0
  171. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +139 -0
  172. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +132 -0
  173. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +179 -0
  174. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +99 -0
  175. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +129 -0
  176. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +59 -0
  177. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +190 -0
  178. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +136 -0
  179. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +42 -0
  180. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +368 -0
  181. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +257 -0
  182. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +160 -0
  183. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +127 -0
  184. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +96 -0
  185. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +124 -0
  186. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +162 -0
  187. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +627 -0
  188. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +134 -0
  189. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +125 -0
  190. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +152 -0
  191. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +80 -0
  192. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +101 -0
  193. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +176 -0
  194. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +67 -0
  195. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +536 -0
  196. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +662 -0
  197. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets.ex +824 -0
  198. package/project/.sdk/tm/elixir/test/feature/secrets/secrets_test.exs +1072 -0
  199. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  200. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  201. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  202. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  203. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  204. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  205. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  206. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  207. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
  208. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  209. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
  210. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  211. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  212. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  213. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  214. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  215. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  216. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  217. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +2 -2
  218. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  219. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  220. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  221. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  222. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  223. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +2 -2
  224. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +2 -2
  225. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +2 -2
  226. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  227. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  228. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  229. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +2 -2
  230. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +2 -2
  231. package/project/.sdk/tm/go/feature/secrets_feature.go +16 -0
  232. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +123 -0
  233. package/project/.sdk/tm/go/test/omni/omni.go +2 -2
  234. package/project/.sdk/tm/go/test/omni/util.go +2 -2
  235. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
  236. package/project/.sdk/tm/java/feature/SecretsFeature.java +766 -0
  237. package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +181 -0
  238. package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +64 -0
  239. package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +433 -0
  240. package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +54 -0
  241. package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +292 -0
  242. package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +49 -0
  243. package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +204 -0
  244. package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +93 -0
  245. package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +244 -0
  246. package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +1196 -0
  247. package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +173 -0
  248. package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +339 -0
  249. package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +274 -0
  250. package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +94 -0
  251. package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +37 -0
  252. package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +172 -0
  253. package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +171 -0
  254. package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +89 -0
  255. package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +232 -0
  256. package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +198 -0
  257. package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +142 -0
  258. package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +229 -0
  259. package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +302 -0
  260. package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +21 -0
  261. package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +698 -0
  262. package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +100 -0
  263. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +294 -0
  264. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +164 -0
  265. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +161 -0
  266. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +103 -0
  267. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +143 -0
  268. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +186 -0
  269. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +192 -0
  270. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +139 -0
  271. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +143 -0
  272. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +80 -0
  273. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +138 -0
  274. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +243 -0
  275. package/project/.sdk/tm/java/test/feature/secrets/SecretsFeatureTest.java +986 -0
  276. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  277. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  278. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  279. package/project/.sdk/tm/java/utility/MakeOptions.java +7 -0
  280. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  281. package/project/.sdk/tm/js/src/feature/secrets/SecretsFeature.js +431 -0
  282. package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +119 -0
  283. package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +42 -0
  284. package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +323 -0
  285. package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +196 -0
  286. package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +120 -0
  287. package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +48 -0
  288. package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +150 -0
  289. package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +949 -0
  290. package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +35 -0
  291. package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +165 -0
  292. package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +94 -0
  293. package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +106 -0
  294. package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +59 -0
  295. package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +79 -0
  296. package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +100 -0
  297. package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +574 -0
  298. package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +56 -0
  299. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +188 -0
  300. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +135 -0
  301. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +128 -0
  302. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +67 -0
  303. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +115 -0
  304. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +139 -0
  305. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +93 -0
  306. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +99 -0
  307. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +111 -0
  308. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +105 -0
  309. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +157 -0
  310. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +119 -0
  311. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +39 -0
  312. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +40 -0
  313. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +21 -0
  314. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +42 -0
  315. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +18 -0
  316. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +151 -0
  317. package/project/.sdk/tm/js/src/utility/StructUtility.js +1 -1
  318. package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +946 -0
  319. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  320. package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
  321. package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
  322. package/project/.sdk/tm/kotlin/feature/SecretsFeature.kt +659 -0
  323. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +117 -0
  324. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +40 -0
  325. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +322 -0
  326. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +227 -0
  327. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +163 -0
  328. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +57 -0
  329. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +179 -0
  330. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +1131 -0
  331. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +241 -0
  332. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +180 -0
  333. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +64 -0
  334. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +124 -0
  335. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +125 -0
  336. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +66 -0
  337. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +171 -0
  338. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +132 -0
  339. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +359 -0
  340. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +21 -0
  341. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +308 -0
  342. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +525 -0
  343. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +126 -0
  344. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +205 -0
  345. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +251 -0
  346. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +145 -0
  347. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +130 -0
  348. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +77 -0
  349. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +119 -0
  350. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +156 -0
  351. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +219 -0
  352. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +114 -0
  353. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +114 -0
  354. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +118 -0
  355. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +220 -0
  356. package/project/.sdk/tm/kotlin/test/feature/secrets/SecretsTest.kt +1148 -0
  357. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  358. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  359. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  360. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  361. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  362. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  363. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  364. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  365. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  366. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  367. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  368. package/project/.sdk/tm/perl/Makefile +6 -1
  369. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +141 -0
  370. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +65 -0
  371. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +346 -0
  372. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +216 -0
  373. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +176 -0
  374. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +59 -0
  375. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +157 -0
  376. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +1139 -0
  377. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +187 -0
  378. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +100 -0
  379. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +119 -0
  380. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +71 -0
  381. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +251 -0
  382. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +122 -0
  383. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +70 -0
  384. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +263 -0
  385. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +159 -0
  386. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +180 -0
  387. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +92 -0
  388. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +138 -0
  389. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +213 -0
  390. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +173 -0
  391. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +132 -0
  392. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +132 -0
  393. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +102 -0
  394. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +132 -0
  395. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +190 -0
  396. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +124 -0
  397. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +301 -0
  398. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +605 -0
  399. package/project/.sdk/tm/perl/feature/secrets_feature.pm +675 -0
  400. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  401. package/project/.sdk/tm/perl/t/feature/secrets/secrets.t +957 -0
  402. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  403. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  404. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  405. package/project/.sdk/tm/php/feature/SecretsFeature.php +670 -0
  406. package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +226 -0
  407. package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +75 -0
  408. package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +444 -0
  409. package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +262 -0
  410. package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +202 -0
  411. package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +74 -0
  412. package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +195 -0
  413. package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +1514 -0
  414. package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +260 -0
  415. package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +129 -0
  416. package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +169 -0
  417. package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +79 -0
  418. package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +348 -0
  419. package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +163 -0
  420. package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +40 -0
  421. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +274 -0
  422. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +170 -0
  423. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +163 -0
  424. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +106 -0
  425. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +144 -0
  426. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +194 -0
  427. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +113 -0
  428. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +131 -0
  429. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +150 -0
  430. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +101 -0
  431. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +146 -0
  432. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +161 -0
  433. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +129 -0
  434. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +322 -0
  435. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +724 -0
  436. package/project/.sdk/tm/php/test/feature/secrets/SecretsTest.php +1067 -0
  437. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  438. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  439. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  440. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  441. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  442. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  443. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  444. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  445. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
  446. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  447. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
  448. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  449. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  450. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  451. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  452. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  453. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  454. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +2 -2
  455. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  456. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
  457. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  458. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  459. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  460. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  461. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
  462. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  463. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
  464. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  465. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  466. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  467. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
  468. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
  469. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  470. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  471. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
  472. package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
  473. package/project/.sdk/tm/rb/Makefile +7 -1
  474. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +118 -0
  475. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +55 -0
  476. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +315 -0
  477. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +197 -0
  478. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +143 -0
  479. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +52 -0
  480. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +147 -0
  481. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +1079 -0
  482. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +169 -0
  483. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +93 -0
  484. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +112 -0
  485. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +56 -0
  486. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +99 -0
  487. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +106 -0
  488. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +24 -0
  489. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +111 -0
  490. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +200 -0
  491. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +130 -0
  492. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +121 -0
  493. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +66 -0
  494. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +107 -0
  495. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +137 -0
  496. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +136 -0
  497. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +97 -0
  498. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +104 -0
  499. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +113 -0
  500. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +127 -0
  501. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +210 -0
  502. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +465 -0
  503. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +30 -0
  504. package/project/.sdk/tm/rb/feature/secrets_feature.rb +561 -0
  505. package/project/.sdk/tm/rb/test/feature/secrets/secrets_feature_test.rb +842 -0
  506. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  507. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  508. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  509. package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +130 -0
  510. package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +114 -0
  511. package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +416 -0
  512. package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +245 -0
  513. package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +200 -0
  514. package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +90 -0
  515. package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +231 -0
  516. package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +1565 -0
  517. package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +18 -0
  518. package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +226 -0
  519. package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +137 -0
  520. package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +148 -0
  521. package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +83 -0
  522. package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +132 -0
  523. package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +433 -0
  524. package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +174 -0
  525. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +146 -0
  526. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +230 -0
  527. package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +328 -0
  528. package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +184 -0
  529. package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +172 -0
  530. package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +102 -0
  531. package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +153 -0
  532. package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +228 -0
  533. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +537 -0
  534. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +300 -0
  535. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +137 -0
  536. package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +148 -0
  537. package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +165 -0
  538. package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +150 -0
  539. package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +144 -0
  540. package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +51 -0
  541. package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +637 -0
  542. package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +677 -0
  543. package/project/.sdk/tm/rust/feature/secrets.rs +961 -0
  544. package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +1509 -0
  545. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  546. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  547. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  548. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  549. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  550. package/project/.sdk/tm/scala/Makefile +8 -3
  551. package/project/.sdk/tm/scala/feature/SecretsFeature.scala +556 -0
  552. package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +96 -0
  553. package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +270 -0
  554. package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +216 -0
  555. package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +144 -0
  556. package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +59 -0
  557. package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +149 -0
  558. package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +1089 -0
  559. package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +156 -0
  560. package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +169 -0
  561. package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +47 -0
  562. package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +107 -0
  563. package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +131 -0
  564. package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +53 -0
  565. package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +110 -0
  566. package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +157 -0
  567. package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +136 -0
  568. package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +302 -0
  569. package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +20 -0
  570. package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +281 -0
  571. package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +473 -0
  572. package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +123 -0
  573. package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +216 -0
  574. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +225 -0
  575. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +124 -0
  576. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +104 -0
  577. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +68 -0
  578. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +97 -0
  579. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +131 -0
  580. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +209 -0
  581. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +98 -0
  582. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +90 -0
  583. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +95 -0
  584. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +214 -0
  585. package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +971 -0
  586. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  587. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  588. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  589. package/project/.sdk/tm/scala/utility/Make.scala +7 -0
  590. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/SecretsFeature.swift +669 -0
  591. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +98 -0
  592. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +87 -0
  593. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +298 -0
  594. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +209 -0
  595. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +191 -0
  596. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +63 -0
  597. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +158 -0
  598. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +1141 -0
  599. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +192 -0
  600. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +183 -0
  601. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +130 -0
  602. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +141 -0
  603. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +59 -0
  604. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +125 -0
  605. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +198 -0
  606. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +139 -0
  607. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +271 -0
  608. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +173 -0
  609. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +139 -0
  610. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +198 -0
  611. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +86 -0
  612. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +129 -0
  613. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +175 -0
  614. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +310 -0
  615. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +140 -0
  616. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +118 -0
  617. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +105 -0
  618. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +111 -0
  619. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +297 -0
  620. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +120 -0
  621. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +452 -0
  622. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +25 -0
  623. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +689 -0
  624. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +755 -0
  625. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +9 -0
  626. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +30 -0
  627. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/feature/secrets/SecretsFeatureTest.swift +1030 -0
  628. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  629. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  630. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  631. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  632. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  633. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  634. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  635. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  636. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
  637. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  638. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  639. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
  640. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  641. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  642. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  643. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  644. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  645. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  646. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  647. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  648. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  649. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  650. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  651. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  652. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  653. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  654. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  655. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  656. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  657. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  658. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  659. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  660. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  661. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
  662. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  663. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  664. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  665. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  666. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
  667. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1 -1
  668. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  669. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  670. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  671. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +2 -2
  672. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +2 -2
  673. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +2 -2
  674. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +2 -2
  675. package/project/sdkgen-package.json +1 -4
  676. package/src/helpers/manifest.ts +81 -1
  677. package/src/helpers/modelNames.ts +284 -0
  678. package/src/helpers/naming.ts +45 -1
  679. package/src/sdkgen.ts +11 -1
  680. package/src/testkit.ts +115 -26
  681. package/src/utility.ts +17 -7
  682. package/project/.sdk/model/target/dart.aon +0 -58
  683. package/project/.sdk/model/target/lean.aon +0 -91
  684. package/project/.sdk/model/target/seneca-provider.aon +0 -120
  685. package/project/.sdk/src/cmp/dart/Config_dart.ts +0 -176
  686. package/project/.sdk/src/cmp/dart/EntityBase_dart.ts +0 -34
  687. package/project/.sdk/src/cmp/dart/EntityOperation_dart.ts +0 -43
  688. package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +0 -207
  689. package/project/.sdk/src/cmp/dart/Entity_dart.ts +0 -87
  690. package/project/.sdk/src/cmp/dart/Gitignore_dart.ts +0 -34
  691. package/project/.sdk/src/cmp/dart/MainEntity_dart.ts +0 -33
  692. package/project/.sdk/src/cmp/dart/Main_dart.ts +0 -106
  693. package/project/.sdk/src/cmp/dart/Package_dart.ts +0 -82
  694. package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +0 -177
  695. package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +0 -238
  696. package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +0 -53
  697. package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +0 -152
  698. package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +0 -59
  699. package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +0 -65
  700. package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +0 -151
  701. package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +0 -63
  702. package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +0 -225
  703. package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +0 -397
  704. package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +0 -24
  705. package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +0 -106
  706. package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +0 -78
  707. package/project/.sdk/src/cmp/dart/SdkError_dart.ts +0 -42
  708. package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +0 -516
  709. package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +0 -628
  710. package/project/.sdk/src/cmp/dart/Test_dart.ts +0 -116
  711. package/project/.sdk/src/cmp/dart/fragment/Config.data.fragment.dart +0 -79
  712. package/project/.sdk/src/cmp/dart/fragment/Config.fragment.dart +0 -51
  713. package/project/.sdk/src/cmp/dart/fragment/Direct.test.fragment.dart +0 -25
  714. package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +0 -29
  715. package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +0 -28
  716. package/project/.sdk/src/cmp/dart/fragment/EntityBase.fragment.dart +0 -302
  717. package/project/.sdk/src/cmp/dart/fragment/EntityCreateOp.fragment.dart +0 -98
  718. package/project/.sdk/src/cmp/dart/fragment/EntityListOp.fragment.dart +0 -90
  719. package/project/.sdk/src/cmp/dart/fragment/EntityLoadOp.fragment.dart +0 -102
  720. package/project/.sdk/src/cmp/dart/fragment/EntityRemoveOp.fragment.dart +0 -108
  721. package/project/.sdk/src/cmp/dart/fragment/EntityUpdateOp.fragment.dart +0 -102
  722. package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +0 -338
  723. package/project/.sdk/src/cmp/dart/fragment/SdkError.fragment.dart +0 -26
  724. package/project/.sdk/src/cmp/dart/tsconfig.json +0 -15
  725. package/project/.sdk/src/cmp/dart/utility_dart.ts +0 -155
  726. package/project/.sdk/src/cmp/lean/Config_lean.ts +0 -93
  727. package/project/.sdk/src/cmp/lean/Entity_lean.ts +0 -9
  728. package/project/.sdk/src/cmp/lean/Gitignore_lean.ts +0 -18
  729. package/project/.sdk/src/cmp/lean/Main_lean.ts +0 -120
  730. package/project/.sdk/src/cmp/lean/Package_lean.ts +0 -93
  731. package/project/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +0 -29
  732. package/project/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +0 -19
  733. package/project/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +0 -25
  734. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +0 -39
  735. package/project/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +0 -25
  736. package/project/.sdk/src/cmp/lean/ReadmeModel_lean.ts +0 -24
  737. package/project/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +0 -22
  738. package/project/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +0 -50
  739. package/project/.sdk/src/cmp/lean/ReadmeRef_lean.ts +0 -40
  740. package/project/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +0 -16
  741. package/project/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +0 -23
  742. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +0 -19
  743. package/project/.sdk/src/cmp/lean/Test_lean.ts +0 -261
  744. package/project/.sdk/src/cmp/lean/utility_lean.ts +0 -129
  745. package/project/.sdk/src/cmp/seneca-provider/Extras_seneca-provider.ts +0 -4080
  746. package/project/.sdk/src/cmp/seneca-provider/Gitignore_seneca-provider.ts +0 -161
  747. package/project/.sdk/src/cmp/seneca-provider/Main_seneca-provider.ts +0 -1011
  748. package/project/.sdk/tm/dart/LICENSE +0 -22
  749. package/project/.sdk/tm/dart/Makefile +0 -50
  750. package/project/.sdk/tm/dart/lib/Context.dart +0 -150
  751. package/project/.sdk/tm/dart/lib/Control.dart +0 -15
  752. package/project/.sdk/tm/dart/lib/Operation.dart +0 -31
  753. package/project/.sdk/tm/dart/lib/Point.dart +0 -51
  754. package/project/.sdk/tm/dart/lib/Response.dart +0 -32
  755. package/project/.sdk/tm/dart/lib/Result.dart +0 -39
  756. package/project/.sdk/tm/dart/lib/Spec.dart +0 -49
  757. package/project/.sdk/tm/dart/lib/feature/audit/AuditFeature.dart +0 -103
  758. package/project/.sdk/tm/dart/lib/feature/base/BaseFeature.dart +0 -76
  759. package/project/.sdk/tm/dart/lib/feature/cache/CacheFeature.dart +0 -152
  760. package/project/.sdk/tm/dart/lib/feature/clienttrack/ClienttrackFeature.dart +0 -104
  761. package/project/.sdk/tm/dart/lib/feature/cost/CostFeature.dart +0 -446
  762. package/project/.sdk/tm/dart/lib/feature/debug/DebugFeature.dart +0 -153
  763. package/project/.sdk/tm/dart/lib/feature/idempotency/IdempotencyFeature.dart +0 -92
  764. package/project/.sdk/tm/dart/lib/feature/log/LogFeature.dart +0 -85
  765. package/project/.sdk/tm/dart/lib/feature/metrics/MetricsFeature.dart +0 -103
  766. package/project/.sdk/tm/dart/lib/feature/netsim/NetsimFeature.dart +0 -186
  767. package/project/.sdk/tm/dart/lib/feature/paging/PagingFeature.dart +0 -240
  768. package/project/.sdk/tm/dart/lib/feature/proxy/ProxyFeature.dart +0 -118
  769. package/project/.sdk/tm/dart/lib/feature/ratelimit/RatelimitFeature.dart +0 -103
  770. package/project/.sdk/tm/dart/lib/feature/rbac/RbacFeature.dart +0 -121
  771. package/project/.sdk/tm/dart/lib/feature/retry/RetryFeature.dart +0 -155
  772. package/project/.sdk/tm/dart/lib/feature/streaming/StreamingFeature.dart +0 -97
  773. package/project/.sdk/tm/dart/lib/feature/telemetry/TelemetryFeature.dart +0 -136
  774. package/project/.sdk/tm/dart/lib/feature/test/TestFeature.dart +0 -328
  775. package/project/.sdk/tm/dart/lib/feature/timeout/TimeoutFeature.dart +0 -104
  776. package/project/.sdk/tm/dart/lib/utility/CleanUtility.dart +0 -12
  777. package/project/.sdk/tm/dart/lib/utility/DoneUtility.dart +0 -18
  778. package/project/.sdk/tm/dart/lib/utility/ErrUtility.dart +0 -46
  779. package/project/.sdk/tm/dart/lib/utility/FeatureAddUtility.dart +0 -35
  780. package/project/.sdk/tm/dart/lib/utility/FeatureHookUtility.dart +0 -20
  781. package/project/.sdk/tm/dart/lib/utility/FeatureInitUtility.dart +0 -9
  782. package/project/.sdk/tm/dart/lib/utility/FetcherUtility.dart +0 -104
  783. package/project/.sdk/tm/dart/lib/utility/GraphqlUtility.dart +0 -162
  784. package/project/.sdk/tm/dart/lib/utility/MakeContextUtility.dart +0 -6
  785. package/project/.sdk/tm/dart/lib/utility/MakeErrorUtility.dart +0 -71
  786. package/project/.sdk/tm/dart/lib/utility/MakeFetchDefUtility.dart +0 -42
  787. package/project/.sdk/tm/dart/lib/utility/MakeOptionsUtility.dart +0 -233
  788. package/project/.sdk/tm/dart/lib/utility/MakePointUtility.dart +0 -130
  789. package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +0 -66
  790. package/project/.sdk/tm/dart/lib/utility/MakeResponseUtility.dart +0 -59
  791. package/project/.sdk/tm/dart/lib/utility/MakeResultUtility.dart +0 -49
  792. package/project/.sdk/tm/dart/lib/utility/MakeSpecUtility.dart +0 -77
  793. package/project/.sdk/tm/dart/lib/utility/MakeUrlUtility.dart +0 -51
  794. package/project/.sdk/tm/dart/lib/utility/ParamUtility.dart +0 -56
  795. package/project/.sdk/tm/dart/lib/utility/PrepareAuthUtility.dart +0 -46
  796. package/project/.sdk/tm/dart/lib/utility/PrepareBodyUtility.dart +0 -19
  797. package/project/.sdk/tm/dart/lib/utility/PrepareHeadersUtility.dart +0 -11
  798. package/project/.sdk/tm/dart/lib/utility/PrepareMethodUtility.dart +0 -30
  799. package/project/.sdk/tm/dart/lib/utility/PrepareParamsUtility.dart +0 -23
  800. package/project/.sdk/tm/dart/lib/utility/PreparePathUtility.dart +0 -9
  801. package/project/.sdk/tm/dart/lib/utility/PrepareQueryUtility.dart +0 -18
  802. package/project/.sdk/tm/dart/lib/utility/ResultBasicUtility.dart +0 -29
  803. package/project/.sdk/tm/dart/lib/utility/ResultBodyUtility.dart +0 -15
  804. package/project/.sdk/tm/dart/lib/utility/ResultHeadersUtility.dart +0 -18
  805. package/project/.sdk/tm/dart/lib/utility/StructUtility.dart +0 -127
  806. package/project/.sdk/tm/dart/lib/utility/TransformRequestUtility.dart +0 -28
  807. package/project/.sdk/tm/dart/lib/utility/TransformResponseUtility.dart +0 -44
  808. package/project/.sdk/tm/dart/lib/utility/Utility.dart +0 -239
  809. package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +0 -2462
  810. package/project/.sdk/tm/dart/src/feature/README.md +0 -3
  811. package/project/.sdk/tm/dart/src/feature/proxy/.gitkeep +0 -0
  812. package/project/.sdk/tm/dart/src/feature/ratelimit/.gitkeep +0 -0
  813. package/project/.sdk/tm/dart/src/feature/rbac/.gitkeep +0 -0
  814. package/project/.sdk/tm/dart/src/feature/retry/.gitkeep +0 -0
  815. package/project/.sdk/tm/dart/src/feature/streaming/.gitkeep +0 -0
  816. package/project/.sdk/tm/dart/src/feature/telemetry/.gitkeep +0 -0
  817. package/project/.sdk/tm/dart/src/feature/test/.gitkeep +0 -0
  818. package/project/.sdk/tm/dart/src/feature/timeout/.gitkeep +0 -0
  819. package/project/.sdk/tm/dart/test/custom_test.dart +0 -65
  820. package/project/.sdk/tm/dart/test/exists_test.dart +0 -12
  821. package/project/.sdk/tm/dart/test/feature/harness.dart +0 -329
  822. package/project/.sdk/tm/dart/test/feature_test.dart +0 -1193
  823. package/project/.sdk/tm/dart/test/harness.dart +0 -153
  824. package/project/.sdk/tm/dart/test/netsim_test.dart +0 -48
  825. package/project/.sdk/tm/dart/test/omni.dart +0 -520
  826. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +0 -143
  827. package/project/.sdk/tm/dart/test/pipeline_test.dart +0 -608
  828. package/project/.sdk/tm/dart/test/primary_test.dart +0 -476
  829. package/project/.sdk/tm/dart/test/sdk-test-control.json +0 -19
  830. package/project/.sdk/tm/dart/test/struct_test.dart +0 -468
  831. package/project/.sdk/tm/dart/test/utility.dart +0 -198
  832. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +0 -7
  833. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +0 -653
  834. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +0 -232
  835. package/project/.sdk/tm/lean/LICENSE +0 -21
  836. package/project/.sdk/tm/lean/Makefile +0 -32
  837. package/project/.sdk/tm/lean/VERSION +0 -1
  838. package/project/.sdk/tm/lean/src/SdkFeature.lean +0 -171
  839. package/project/.sdk/tm/lean/src/SdkFeatures.lean +0 -787
  840. package/project/.sdk/tm/lean/src/SdkJson.lean +0 -134
  841. package/project/.sdk/tm/lean/src/SdkRuntime.lean +0 -374
  842. package/project/.sdk/tm/lean/src/SdkUtility.lean +0 -809
  843. package/project/.sdk/tm/lean/src/VoxgigStruct.lean +0 -2880
  844. package/project/.sdk/tm/lean/src/Vregex.lean +0 -412
  845. package/project/.sdk/tm/lean/src/feature/README.md +0 -5
  846. package/project/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
  847. package/project/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
  848. package/project/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
  849. package/project/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
  850. package/project/.sdk/tm/lean/src/feature/cost/.gitkeep +0 -0
  851. package/project/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
  852. package/project/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
  853. package/project/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
  854. package/project/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
  855. package/project/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
  856. package/project/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
  857. package/project/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
  858. package/project/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
  859. package/project/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
  860. package/project/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
  861. package/project/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
  862. package/project/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
  863. package/project/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
  864. package/project/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
  865. package/project/.sdk/tm/lean/test/OmniResolver.lean +0 -358
  866. package/project/.sdk/tm/lean/test/OmniSmoke.lean +0 -174
  867. package/project/.sdk/tm/lean/test/StructCorpus.lean +0 -368
  868. package/project/.sdk/tm/lean/test/TFeature.lean +0 -281
  869. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +0 -227
  870. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +0 -997
  871. package/project/.sdk/tm/seneca-provider/CODE_OF_CONDUCT.md +0 -132
  872. package/project/.sdk/tm/seneca-provider/LICENSE +0 -21
  873. package/project/.sdk/tm/seneca-provider/Makefile +0 -15
  874. package/project/.sdk/tm/seneca-provider/src/tsconfig.json +0 -18
  875. package/project/.sdk/tm/seneca-provider/test/tsconfig.json +0 -16
  876. package/project/.sdk/tm/seneca-provider/tsfmt.json +0 -3
  877. /package/project/.sdk/tm/{dart/src/feature/audit → clojure/src/feature/secrets}/.gitkeep +0 -0
  878. /package/project/.sdk/tm/{dart/src/feature/base → csharp/src/feature/secrets}/.gitkeep +0 -0
  879. /package/project/.sdk/tm/{dart/src/feature/cache → elixir/src/feature/secrets}/.gitkeep +0 -0
  880. /package/project/.sdk/tm/{dart/src/feature/clienttrack → java/src/feature/secrets}/.gitkeep +0 -0
  881. /package/project/.sdk/tm/{dart/src/feature/cost → kotlin/src/feature/secrets}/.gitkeep +0 -0
  882. /package/project/.sdk/tm/{dart/src/feature/debug → perl/src/feature/secrets}/.gitkeep +0 -0
  883. /package/project/.sdk/tm/{dart/src/feature/idempotency → php/src/feature/secrets}/.gitkeep +0 -0
  884. /package/project/.sdk/tm/{dart/src/feature/log → rb/src/feature/secrets}/.gitkeep +0 -0
  885. /package/project/.sdk/tm/{dart/src/feature/metrics → rust/src/feature/secrets}/.gitkeep +0 -0
  886. /package/project/.sdk/tm/{dart/src/feature/netsim → scala/src/feature/secrets}/.gitkeep +0 -0
  887. /package/project/.sdk/tm/{dart/src/feature/paging → swift/src/feature/secrets}/.gitkeep +0 -0
@@ -0,0 +1,1196 @@
1
+ // VENDORED: @voxgig/plugin sdk-20260908-1556-0 (java/src/voxgig/plugin/Host.java)
2
+ // Source: https://github.com/voxgig/plugin @ 48392f5e2b6d1434ee9b1a4a9a11f4480aaeb46a [tag: sdk-20260908-1556-0]
3
+ // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
+ package JAVAPACKAGE.feature.secrets.plugin;
5
+
6
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.asint;
7
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.details;
8
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.fail;
9
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.get;
10
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.has;
11
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.keys;
12
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.map;
13
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.newmap;
14
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.num;
15
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.same;
16
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.str;
17
+ import static JAVAPACKAGE.feature.secrets.plugin.Types.truthy;
18
+
19
+ import java.util.ArrayList;
20
+ import java.util.Collections;
21
+ import java.util.LinkedHashSet;
22
+ import java.util.List;
23
+ import java.util.Map;
24
+ import java.util.Set;
25
+ import java.util.TreeMap;
26
+
27
+ /**
28
+ * The host: the lifecycle state machine (§5), extension points (§6), and
29
+ * resource capture (§8).
30
+ *
31
+ * <p>TWO RULES SHAPE EVERY METHOD BELOW.
32
+ *
33
+ * <p>Transitions are SEQUENTIAL (§5.2). One at a time, in call order,
34
+ * never interleaved; a transition triggered from inside a lifecycle
35
+ * callback is {@code plugin_reentrant}. A hard rule, because it is the
36
+ * only way the semantics can be identical in Go, in Java and in
37
+ * single-threaded JavaScript.
38
+ *
39
+ * <p>Reconciliation is EAGER (§18's portability budget). A transition
40
+ * settles by running the state machine to a fixed point, not by suspending
41
+ * on a promise.
42
+ *
43
+ * <p>THIS HOST IS NOT THREAD-SAFE, and that is the model rather than an
44
+ * omission: §5.2 makes transitions sequential, and a lock would only turn
45
+ * a concurrent call into a slow one that still violated the ordering the
46
+ * corpus pins.
47
+ */
48
+ public final class Host {
49
+
50
+ private final Object opts;
51
+ private final String dependency;
52
+ private final Object reserved;
53
+ private final Object points;
54
+ private Catalog catalog = new Catalog();
55
+
56
+ private final Map<String, Entry> inst = new TreeMap<>();
57
+ private final List<String> log = new ArrayList<>();
58
+
59
+ /**
60
+ * §14: the lifecycle event record. {@code seq} distinguishes ONE
61
+ * INCARNATION of stripe$test from the next, which is the whole reason it
62
+ * is not {@code pos} (§4 rule 4).
63
+ */
64
+ private final List<Object> events = new ArrayList<>();
65
+
66
+ private double seqn;
67
+ private long open;
68
+ private boolean transition;
69
+
70
+ /**
71
+ * WHICH callback is running, not merely that one is. §8.1 puts resource
72
+ * capture in {@code activate} and 8.3 says {@code release} outside
73
+ * {@code activate} is {@code plugin_release_scope} - and a bare flag
74
+ * cannot tell {@code activate} from {@code define}, so it admitted an
75
+ * acquire in {@code define} whose scope {@code unload} would never
76
+ * unwind.
77
+ */
78
+ private String phase = "";
79
+
80
+ /**
81
+ * Set for the duration of a bulk teardown, so {@code held} knows this is
82
+ * a coordinated operation rather than an ad-hoc deactivation.
83
+ */
84
+ private boolean coordinated;
85
+
86
+ public Host(Object options) {
87
+ this.opts = null == options ? newmap() : options;
88
+ String dep = str(get(this.opts, "dependency"));
89
+ this.dependency = null == dep ? "restart" : dep;
90
+ this.reserved = get(this.opts, "reserved");
91
+ this.points = get(this.opts, "points");
92
+ }
93
+
94
+ public static Host makeHost(Object options) {
95
+ return new Host(options);
96
+ }
97
+
98
+ public void define(Definition definition) {
99
+ catalog.add(definition);
100
+ }
101
+
102
+ public Catalog catalog() {
103
+ return catalog;
104
+ }
105
+
106
+ public void catalog(Catalog replacement) {
107
+ this.catalog = replacement;
108
+ }
109
+
110
+ public boolean intransition() {
111
+ return transition;
112
+ }
113
+
114
+ public String phase() {
115
+ return phase;
116
+ }
117
+
118
+ public boolean haspoint(String name) {
119
+ return has(points, name);
120
+ }
121
+
122
+ public void openinc() {
123
+ open++;
124
+ }
125
+
126
+ public void opendec() {
127
+ open--;
128
+ }
129
+
130
+ // --- observation ------------------------------------------------
131
+
132
+ /**
133
+ * Introspection NEVER advances the state (§5.2). A status page must not
134
+ * be a way to accidentally import twenty packages.
135
+ */
136
+ public Map<String, Object> list() {
137
+ Map<String, Object> out = newmap();
138
+ for (Map.Entry<String, Entry> e : inst.entrySet()) {
139
+ out.put(e.getKey(), e.getValue().status);
140
+ }
141
+ return out;
142
+ }
143
+
144
+ /**
145
+ * The instance record, or null when nothing is registered under that
146
+ * ref. THE REF IS VALIDATED, not merely canonicalized: looking an
147
+ * instance up by {@code "bad name"} is {@code plugin_bad_name}, not a
148
+ * quiet miss.
149
+ */
150
+ public Entry instance(Object ref) {
151
+ return inst.get(Refs.canonRef(ref));
152
+ }
153
+
154
+ public List<Object> trace() {
155
+ return new ArrayList<>(events);
156
+ }
157
+
158
+ public Map<String, Object> observable(Object result) {
159
+ Map<String, Object> out = newmap();
160
+ out.put("status", list());
161
+ out.put("open", (double) open);
162
+ out.put("log", new ArrayList<Object>(log));
163
+ out.put("result", result);
164
+ return out;
165
+ }
166
+
167
+ // --- the state machine ------------------------------------------
168
+
169
+ private void guard() {
170
+ if (!transition) {
171
+ return;
172
+ }
173
+ fail("plugin_reentrant", "transition attempted from inside a lifecycle callback", null);
174
+ }
175
+
176
+ private Entry need(Object ref) {
177
+ String r = Refs.canonRef(ref);
178
+ Entry entry = inst.get(r);
179
+ if (null == entry) {
180
+ fail("plugin_not_loaded", "no such instance: " + r, details("ref", r));
181
+ }
182
+ return entry;
183
+ }
184
+
185
+ private void checkreserved(String ref) {
186
+ // `Types.list` spelled out: this class has its own `list()` (the
187
+ // status map), and an unqualified call would resolve to that one.
188
+ List<Object> list = Types.list(reserved);
189
+ if (null == list || list.isEmpty()) {
190
+ return;
191
+ }
192
+ if (!list.contains(Refs.refname(ref))) {
193
+ return;
194
+ }
195
+ fail("plugin_ref_reserved", "ref is reserved by the host: " + ref, details("ref", ref));
196
+ }
197
+
198
+ private void run(Entry entry, String callback, String at) {
199
+ log.add(entry.ref + ":" + at);
200
+ Map<String, Object> event = newmap();
201
+ event.put("ref", entry.ref);
202
+ event.put("event", at);
203
+ event.put("seq", entry.seq);
204
+ event.put("status", entry.status);
205
+ events.add(event);
206
+
207
+ Definition.Callback func = entry.def.callback(callback);
208
+ if (null == func) {
209
+ return;
210
+ }
211
+
212
+ transition = true;
213
+ phase = at;
214
+ try {
215
+ func.run(new Inst(this, entry));
216
+ } catch (RuntimeException e) {
217
+ // §12: `plugin_define_failed` and its three siblings are "a callback
218
+ // raised; wraps the cause". AN ERROR THAT ALREADY CARRIES A CODE
219
+ // KEEPS IT - the code is the error's identity, and a plugin raising
220
+ // `store_unreachable` must not have it rewritten. Only a code-less
221
+ // error is wrapped.
222
+ if (!Types.codeof(e).isEmpty()) {
223
+ throw e;
224
+ }
225
+ fail(
226
+ "plugin_" + at + "_failed",
227
+ entry.ref + " raised in " + at + ": " + e.getMessage(),
228
+ details("ref", entry.ref, "cause", e.getMessage()));
229
+ } finally {
230
+ transition = false;
231
+ phase = "";
232
+ }
233
+ }
234
+
235
+ /**
236
+ * AUTO-TAGGING IS EXPLICIT (§4 rule 3). {@code declare("stripe", tag:
237
+ * "?")} assigns the LOWEST UNUSED POSITIVE INTEGER tag and returns the
238
+ * assigned pair. Without {@code "?"}, a collision is an error.
239
+ */
240
+ private String autotag(String name) {
241
+ long n = 1;
242
+ while (true) {
243
+ String cand = Refs.formatRef(name, String.valueOf(n));
244
+ if (!inst.containsKey(cand)) {
245
+ return cand;
246
+ }
247
+ n++;
248
+ }
249
+ }
250
+
251
+ public Entry declare(Object ref, Object spec) {
252
+ Object useref = ref;
253
+ if ("?".equals(get(spec, "tag"))) {
254
+ useref = autotag(Refs.refname(Refs.canonRef(ref)));
255
+ }
256
+ String r = Refs.canonRef(useref);
257
+ if (!truthy(get(spec, "hostowned"))) {
258
+ checkreserved(r);
259
+ }
260
+ String defname = null == str(get(spec, "definition")) ? Refs.refname(r) : str(get(spec, "definition"));
261
+ Definition definition = catalog.get(defname);
262
+ if (null == definition) {
263
+ fail("plugin_unknown_definition", "not in catalog: " + defname, details("name", defname));
264
+ }
265
+
266
+ Entry existing = inst.get(r);
267
+ if (null != existing) {
268
+ // §4 rule 1: a pair addresses at most one instance. Re-declaring the
269
+ // SAME definition is the idempotent case; a different one is a
270
+ // duplicate, not a silent overwrite (seneca) and not an
271
+ // impossibility (sdkgen).
272
+ if (!existing.def.name.equals(definition.name)) {
273
+ fail("plugin_ref_duplicate", "instance already declared: " + r, details("ref", r));
274
+ }
275
+ return existing;
276
+ }
277
+
278
+ Entry entry = new Entry(r, definition);
279
+ Double pos = num(get(spec, "pos"));
280
+ entry.pos = null == pos ? inst.size() : pos;
281
+ entry.seq = seqn;
282
+ Object options = get(spec, "options");
283
+ entry.options = null == options ? newmap() : options;
284
+ entry.order = get(spec, "order");
285
+ seqn++;
286
+ inst.put(r, entry);
287
+ return entry;
288
+ }
289
+
290
+ /**
291
+ * §9.1: a host that reserves a name MUST still be able to declare the
292
+ * instance it reserved - "The host declares those instances itself,
293
+ * after the user merge, and always wins."
294
+ *
295
+ * <p>THE BOUNDARY IS BY METHOD, NOT BY CALLER, and that is a real limit:
296
+ * no language here can tell the embedding host from a plugin holding the
297
+ * same host object. What reservation protects is CONFIGURATION -
298
+ * documents, overlays, {@code VOXGIG_PLUGIN_*}, construction options and
299
+ * ordinary declare/load/options - and all of that still checks.
300
+ */
301
+ public Entry hostdeclare(Object ref, Object spec) {
302
+ guard();
303
+ Map<String, Object> owned = newmap();
304
+ Map<String, Object> given = map(spec);
305
+ if (null != given) {
306
+ owned.putAll(given);
307
+ }
308
+ owned.put("hostowned", Boolean.TRUE);
309
+ return declare(ref, owned);
310
+ }
311
+
312
+ public Entry load(Object ref, Object spec) {
313
+ guard();
314
+ Entry entry = declare(ref, spec);
315
+ if (!"declared".equals(entry.status)) {
316
+ return entry; // idempotent trivially
317
+ }
318
+
319
+ // PRESENCE, NOT TRUTH: an empty options map must CLEAR what the
320
+ // instance was declared with.
321
+ if (has(spec, "options") && null != get(spec, "options")) {
322
+ entry.options = get(spec, "options");
323
+ }
324
+ try {
325
+ run(entry, "define", "define");
326
+ } catch (RuntimeException e) {
327
+ entry.status = "failed";
328
+ throw e;
329
+ }
330
+ entry.status = "loaded";
331
+
332
+ // AT LOAD, and before anything runs: a cycle through restart-causing
333
+ // requirements does not settle, and the only safe time to report a
334
+ // non-terminating reconcile is before it starts (§11.3). `provides` is
335
+ // populated by `define`, which has just run, so this is the first
336
+ // moment the graph is complete.
337
+ try {
338
+ Depend.checkcycle(graphnodes());
339
+ } catch (RuntimeException e) {
340
+ entry.status = "failed";
341
+ throw e;
342
+ }
343
+ return entry;
344
+ }
345
+
346
+ /** The requirement graph as plain data, for the pure detector. */
347
+ private List<Depend.Node> graphnodes() {
348
+ List<Depend.Node> out = new ArrayList<>();
349
+ for (Map.Entry<String, Entry> e : inst.entrySet()) {
350
+ List<String> provides = new ArrayList<>();
351
+ for (Object p : e.getValue().provides) {
352
+ provides.add(str(get(p, "name")));
353
+ }
354
+ out.add(new Depend.Node(e.getKey(), provides, Depend.requirements(e.getValue().options)));
355
+ }
356
+ return out;
357
+ }
358
+
359
+ public Entry activate(Object ref) {
360
+ guard();
361
+ Entry entry = need(ref);
362
+ if ("live".equals(entry.status)) {
363
+ return entry; // no-op returning success
364
+ }
365
+ if ("failed".equals(entry.status)) {
366
+ fail("plugin_bad_state", "instance has failed: " + entry.ref, details("ref", entry.ref));
367
+ }
368
+ // §9.6: `active: false` bars the instance from running, and the bar is
369
+ // on the INSTANCE rather than on the apply that set it. `ready`
370
+ // reaches this through `activate`, so one guard covers both verbs the
371
+ // design names.
372
+ if (entry.barred) {
373
+ fail(
374
+ "plugin_inactive",
375
+ "instance is barred by active: false: " + entry.ref,
376
+ details("ref", entry.ref));
377
+ }
378
+ if ("declared".equals(entry.status)) {
379
+ load(entry.ref, null);
380
+ }
381
+
382
+ // A declared requirement that is not live means `pending`: activation
383
+ // is a STANDING REQUEST, not a one-shot event.
384
+ List<String> unmet = unmetof(entry);
385
+ if (!unmet.isEmpty()) {
386
+ entry.unmet = unmet;
387
+ entry.status = "pending";
388
+ return entry;
389
+ }
390
+
391
+ try {
392
+ run(entry, "activate", "activate");
393
+ } catch (RuntimeException e) {
394
+ // Unwind whatever the partial activation captured, in reverse.
395
+ unwind(entry);
396
+ entry.status = "failed";
397
+ throw e;
398
+ }
399
+ // §11.4: THE SELECTION IS MADE HERE, once, and remembered. Every later
400
+ // question - the cascade, `hold`, `unmet` - reads it back rather than
401
+ // re-ranking, which is what "always-reluctant" means.
402
+ for (Object req : Depend.requirements(entry.options)) {
403
+ chosen(entry, req, true);
404
+ }
405
+ entry.status = "live";
406
+ reconcile();
407
+ return entry;
408
+ }
409
+
410
+ public Entry deactivate(Object ref) {
411
+ guard();
412
+ Entry entry = need(ref);
413
+ if ("loaded".equals(entry.status) || "declared".equals(entry.status)) {
414
+ return entry;
415
+ }
416
+
417
+ // §5.2: `unload` is THE ONLY TRANSITION OUT OF `failed`.
418
+ if ("failed".equals(entry.status)) {
419
+ fail("plugin_bad_state", "instance has failed: " + entry.ref, details("ref", entry.ref));
420
+ }
421
+
422
+ if ("pending".equals(entry.status)) {
423
+ // DEACTIVATING A PENDING INSTANCE RUNS NO CALLBACK (§5.2). It never
424
+ // reached activate, so it holds no scope and no live bindings;
425
+ // running the definition's deactivate there would be teardown
426
+ // without matching setup, which plugins are not written to survive
427
+ // and which could fail an instance that had done nothing wrong. It
428
+ // cannot fail.
429
+ entry.status = "loaded";
430
+ entry.unmet = new ArrayList<>();
431
+ return entry;
432
+ }
433
+
434
+ held(entry.ref);
435
+ cascade(entry.ref, new LinkedHashSet<>());
436
+
437
+ try {
438
+ run(entry, "deactivate", "deactivate");
439
+ } catch (RuntimeException e) {
440
+ unwind(entry);
441
+ entry.status = "failed";
442
+ throw e;
443
+ }
444
+ releasecheck(entry, unwind(entry));
445
+ entry.status = "loaded";
446
+ reconcile();
447
+ return entry;
448
+ }
449
+
450
+ public void unload(Object ref) {
451
+ guard();
452
+ Entry entry = need(ref);
453
+ if ("live".equals(entry.status) || "pending".equals(entry.status)) {
454
+ if ("live".equals(entry.status)) {
455
+ held(entry.ref);
456
+ cascade(entry.ref, new LinkedHashSet<>());
457
+ try {
458
+ run(entry, "deactivate", "deactivate");
459
+ } catch (RuntimeException e) {
460
+ // §5.2: ANY failure during a transition lands the instance in
461
+ // `failed`, with the scope STILL FULLY UNWOUND - and the
462
+ // instance STAYS REGISTERED, because `failed` is a state an
463
+ // operator has to be able to see.
464
+ unwind(entry);
465
+ entry.status = "failed";
466
+ throw e;
467
+ }
468
+ releasecheck(entry, unwind(entry));
469
+ }
470
+ entry.status = "loaded";
471
+ }
472
+ if ("loaded".equals(entry.status) || "failed".equals(entry.status)) {
473
+ try {
474
+ run(entry, "close", "close");
475
+ } finally {
476
+ inst.remove(entry.ref);
477
+ }
478
+ return;
479
+ }
480
+ inst.remove(entry.ref);
481
+ }
482
+
483
+ /** Runs the whole forward path in one call (§5.1). */
484
+ public Entry ready(Object ref) {
485
+ guard();
486
+ String r = Refs.canonRef(ref);
487
+ if (!inst.containsKey(r)) {
488
+ declare(r, null);
489
+ }
490
+ if ("declared".equals(inst.get(r).status)) {
491
+ load(r, null);
492
+ }
493
+ return activate(r);
494
+ }
495
+
496
+ /**
497
+ * Bindings go live only when activation succeeds (§8.1), so the teardown
498
+ * is the exact inverse: reverse order, always. Returns the errors the
499
+ * scope raised. §8.3: "A failing release does not stop the rest. Every
500
+ * entry runs, in reverse order, whatever any of them does; the errors
501
+ * are collected and raised as one {@code plugin_release_failed}."
502
+ *
503
+ * <p>A selection belongs to ONE activation (§11.4). Leaving {@code live}
504
+ * by any door drops it, so the next activation ranks afresh - keeping it
505
+ * would make a consumer prefer a provider it never actually ran against.
506
+ */
507
+ private List<RuntimeException> unwind(Entry entry) {
508
+ entry.selected = new TreeMap<>();
509
+ List<Entry.ScopeFn> scope = entry.scope;
510
+ entry.scope = new ArrayList<>();
511
+ List<RuntimeException> errors = new ArrayList<>();
512
+ for (int i = scope.size() - 1; 0 <= i; i--) {
513
+ try {
514
+ scope.get(i).run();
515
+ } catch (RuntimeException e) {
516
+ errors.add(e);
517
+ }
518
+ }
519
+ return errors;
520
+ }
521
+
522
+ /**
523
+ * §8.3: "A failed release ends the instance in {@code failed}, exactly
524
+ * as a failed callback does (5.2) - a release that raised may have
525
+ * leaked, and an instance that may be holding resources it cannot
526
+ * account for must not be reactivated."
527
+ */
528
+ private void releasecheck(Entry entry, List<RuntimeException> errors) {
529
+ if (errors.isEmpty()) {
530
+ return;
531
+ }
532
+ entry.status = "failed";
533
+ List<String> causes = new ArrayList<>();
534
+ for (RuntimeException e : errors) {
535
+ causes.add(e.getMessage());
536
+ }
537
+ fail(
538
+ "plugin_release_failed",
539
+ "release failed for " + entry.ref + ": " + String.join("; ", causes),
540
+ details("ref", entry.ref, "cause", Types.strings(causes)));
541
+ }
542
+
543
+ /**
544
+ * A REQUIREMENT IS ON A CAPABILITY, not on a ref (§11.1). A bare string
545
+ * is shorthand for {@code {name}}. A ref satisfies too, because a host
546
+ * that genuinely needs a specific instance should not have to invent a
547
+ * capability for it.
548
+ */
549
+ private List<String> unmetof(Entry entry) {
550
+ List<String> out = new ArrayList<>();
551
+ for (Object req : Depend.requirements(entry.options)) {
552
+ if (!Depend.gatesactivation(req)) {
553
+ continue;
554
+ }
555
+ if (!providersof(req).isEmpty()) {
556
+ continue;
557
+ }
558
+ out.add(str(get(req, "name")));
559
+ }
560
+ return out;
561
+ }
562
+
563
+ /**
564
+ * §11.4's always-reluctant selection, and the ONE place a provider is
565
+ * picked for a live instance. If this instance already selected a
566
+ * provider for {@code req} and that provider is STILL a candidate, it
567
+ * keeps it - a better-ranked newcomer does not take it.
568
+ *
569
+ * <p>{@code remember} is false for the questions asked ABOUT an instance
570
+ * rather than BY it: introspection must not create a binding.
571
+ */
572
+ private String chosen(Entry entry, Object req, boolean remember) {
573
+ List<Object> cands = providersof(req);
574
+ if (cands.isEmpty()) {
575
+ return null;
576
+ }
577
+ String name = str(get(req, "name"));
578
+ String held = entry.selected.get(name);
579
+ if (null != held) {
580
+ for (Object c : cands) {
581
+ if (held.equals(str(get(c, "ref")))) {
582
+ return held;
583
+ }
584
+ }
585
+ }
586
+ String best = str(get(cands.get(0), "ref"));
587
+ if (remember) {
588
+ entry.selected.put(name, best);
589
+ }
590
+ return best;
591
+ }
592
+
593
+ private List<String> boundproviders(Entry entry) {
594
+ List<String> out = new ArrayList<>();
595
+ for (Object req : Depend.requirements(entry.options)) {
596
+ if (!Depend.restartsonloss(req)) {
597
+ continue;
598
+ }
599
+ String ref = chosen(entry, req, false);
600
+ if (null != ref && !out.contains(ref)) {
601
+ out.add(ref);
602
+ }
603
+ }
604
+ return out;
605
+ }
606
+
607
+ /**
608
+ * Live instances whose selected provider is {@code ref} and which would
609
+ * be restarted by losing it.
610
+ */
611
+ private List<String> consumersof(String ref) {
612
+ List<String> out = new ArrayList<>();
613
+ for (Map.Entry<String, Entry> e : new TreeMap<>(inst).entrySet()) {
614
+ if (e.getKey().equals(ref) || !"live".equals(e.getValue().status)) {
615
+ continue;
616
+ }
617
+ if (boundproviders(e.getValue()).contains(ref)) {
618
+ out.add(e.getKey());
619
+ }
620
+ }
621
+ return out;
622
+ }
623
+
624
+ /**
625
+ * §11.3's {@code hold} asks a DIFFERENT question from the cascade, and
626
+ * reading it off {@code consumersof} answered the cascade's.
627
+ *
628
+ * <p>The cascade wants the edges that RESTART - mandatory-static and
629
+ * optional-static - because a restart is what it performs. {@code hold}
630
+ * says "deactivating a REQUIRED instance is {@code
631
+ * plugin_dependency_held}", and required is cardinality: {@code
632
+ * gatesactivation}, not {@code restartsonloss}. The two sets differ in
633
+ * both directions and each difference was a real bug.
634
+ */
635
+ private List<String> holdersof(String ref) {
636
+ List<String> out = new ArrayList<>();
637
+ for (Map.Entry<String, Entry> e : new TreeMap<>(inst).entrySet()) {
638
+ if (e.getKey().equals(ref) || !"live".equals(e.getValue().status)) {
639
+ continue;
640
+ }
641
+ for (Object req : Depend.requirements(e.getValue().options)) {
642
+ if (!Depend.gatesactivation(req)) {
643
+ continue;
644
+ }
645
+ if (ref.equals(chosen(e.getValue(), req, false))) {
646
+ out.add(e.getKey());
647
+ break;
648
+ }
649
+ }
650
+ }
651
+ return out;
652
+ }
653
+
654
+ private List<Object> providersof(Object req) {
655
+ Object name = get(req, "name");
656
+ String want = Refs.canon(str(name));
657
+ List<Object> cands = new ArrayList<>();
658
+ for (Map.Entry<String, Entry> e : inst.entrySet()) {
659
+ Entry target = e.getValue();
660
+ if (!"live".equals(target.status)) {
661
+ continue;
662
+ }
663
+ // A ref satisfies directly.
664
+ if (e.getKey().equals(want)) {
665
+ Map<String, Object> cand = newmap();
666
+ cand.put("ref", e.getKey());
667
+ cand.put("pos", target.pos);
668
+ Map<String, Object> prov = newmap();
669
+ prov.put("name", name);
670
+ cand.put("provides", prov);
671
+ cands.add(cand);
672
+ continue;
673
+ }
674
+ for (Object prov : target.provides) {
675
+ if (!same(get(prov, "name"), name)) {
676
+ continue;
677
+ }
678
+ Map<String, Object> cand = newmap();
679
+ cand.put("ref", e.getKey());
680
+ cand.put("pos", target.pos);
681
+ cand.put("provides", prov);
682
+ cands.add(cand);
683
+ }
684
+ }
685
+ return Capability.resolveCapability(req, cands);
686
+ }
687
+
688
+ /**
689
+ * CONSUMERS GO DOWN FIRST, NOT AFTERWARDS (§11.3).
690
+ *
691
+ * <p>The cascade is part of the provider's own deactivation and runs
692
+ * BEFORE the provider's {@code deactivate} callback and scope unwind, so
693
+ * a consumer's teardown can still call the thing it depends on -
694
+ * flushing a buffer to the store it is about to lose is exactly what a
695
+ * {@code deactivate} callback is for, and a cascade that fired after the
696
+ * provider was already gone would make that impossible.
697
+ */
698
+ private void cascade(String provider, Set<String> seen) {
699
+ if (seen.contains(provider)) {
700
+ return;
701
+ }
702
+ seen.add(provider);
703
+
704
+ for (String r : consumersof(provider)) {
705
+ Entry consumer = inst.get(r);
706
+ if (null == consumer || !"live".equals(consumer.status)) {
707
+ continue;
708
+ }
709
+
710
+ cascade(r, seen); // deepest-first
711
+ boolean bad = false;
712
+ try {
713
+ run(consumer, "deactivate", "deactivate");
714
+ } catch (RuntimeException e) {
715
+ bad = true;
716
+ }
717
+ List<RuntimeException> errors = unwind(consumer);
718
+ if (bad || !errors.isEmpty()) {
719
+ // §5.2: ANY failure during a transition lands the instance in
720
+ // `failed`. Marking it `pending` handed it straight back to
721
+ // `reconcile`, which would activate it again the moment the
722
+ // provider returned.
723
+ consumer.status = "failed";
724
+ continue;
725
+ }
726
+ consumer.status = "pending";
727
+ consumer.unmet = unmetof(consumer);
728
+ }
729
+ }
730
+
731
+ /**
732
+ * The hold check is A GUARD ON AD-HOC DEACTIVATION, NOT ON COORDINATED
733
+ * TEARDOWN. In a bulk operation that is removing the holders too -
734
+ * {@code close}, or an {@code apply} plan whose own steps deactivate
735
+ * them - it is suspended for exactly those holders, and the teardown
736
+ * still runs consumers before providers.
737
+ */
738
+ private void held(String ref) {
739
+ if (!"hold".equals(dependency)) {
740
+ return;
741
+ }
742
+ if (coordinated) {
743
+ return;
744
+ }
745
+ List<String> holders = holdersof(ref);
746
+ if (holders.isEmpty()) {
747
+ return;
748
+ }
749
+ fail(
750
+ "plugin_dependency_held",
751
+ "instance is required by live consumers: " + ref,
752
+ details("ref", ref, "holders", Types.strings(holders)));
753
+ }
754
+
755
+ /**
756
+ * EAGER reconciliation: run to a fixed point rather than scheduling.
757
+ *
758
+ * <p>Two directions, and both are the reason {@code pending} exists.
759
+ * Activation is a STANDING REQUEST, not a one-shot event.
760
+ */
761
+ private void reconcile() {
762
+ boolean moved = true;
763
+ int rounds = 0;
764
+ while (moved) {
765
+ moved = false;
766
+ rounds++;
767
+ if (1000 < rounds) {
768
+ break;
769
+ }
770
+
771
+ // Losses first, so a cascade settles in one pass rather than
772
+ // alternating with re-activations.
773
+ for (String r : new ArrayList<>(inst.keySet())) {
774
+ Entry entry = inst.get(r);
775
+ if (null == entry || !"live".equals(entry.status)) {
776
+ continue;
777
+ }
778
+ List<Object> lost = new ArrayList<>();
779
+ for (Object q : Depend.requirements(entry.options)) {
780
+ if (Depend.gatesactivation(q) && providersof(q).isEmpty()) {
781
+ lost.add(q);
782
+ }
783
+ }
784
+ if (lost.isEmpty()) {
785
+ continue;
786
+ }
787
+ // POLICY IS PER REQUIREMENT, not per instance (§11.3). A `dynamic`
788
+ // requirement whose provider is gone leaves the consumer LIVE and
789
+ // notified.
790
+ boolean restarts = false;
791
+ for (Object q : lost) {
792
+ if (Depend.restartsonloss(q)) {
793
+ restarts = true;
794
+ break;
795
+ }
796
+ }
797
+ if (!restarts) {
798
+ continue;
799
+ }
800
+
801
+ boolean bad = false;
802
+ try {
803
+ run(entry, "deactivate", "deactivate");
804
+ } catch (RuntimeException e) {
805
+ bad = true;
806
+ }
807
+ List<RuntimeException> errors = unwind(entry);
808
+ if (bad || !errors.isEmpty()) {
809
+ entry.status = "failed";
810
+ moved = true;
811
+ continue;
812
+ }
813
+ entry.status = "pending";
814
+ entry.unmet = unmetof(entry);
815
+ moved = true;
816
+ }
817
+
818
+ for (String r : new ArrayList<>(inst.keySet())) {
819
+ Entry entry = inst.get(r);
820
+ if (null == entry || !"pending".equals(entry.status)) {
821
+ continue;
822
+ }
823
+ if (!unmetof(entry).isEmpty()) {
824
+ continue;
825
+ }
826
+ try {
827
+ run(entry, "activate", "activate");
828
+ entry.status = "live";
829
+ entry.unmet = new ArrayList<>();
830
+ moved = true;
831
+ } catch (RuntimeException e) {
832
+ unwind(entry);
833
+ entry.status = "failed";
834
+ moved = true;
835
+ }
836
+ }
837
+ }
838
+ }
839
+
840
+ // --- ordering ---------------------------------------------------
841
+
842
+ public List<String> order(String point) {
843
+ // Sorted by declaration SEQUENCE, which is what makes the §7 sort's
844
+ // fall-through deterministic in a language whose maps have no
845
+ // insertion order. §7 breaks ties by `pos`; two instances CAN share
846
+ // one - `declare` defaults `pos` to the registry size, so an unload
847
+ // followed by a fresh declare reuses a surviving instance's - and past
848
+ // that this was falling through to map order. `seq` is that order,
849
+ // made explicit.
850
+ List<Entry> live = new ArrayList<>();
851
+ for (Entry entry : inst.values()) {
852
+ if ("live".equals(entry.status)) {
853
+ live.add(entry);
854
+ }
855
+ }
856
+ live.sort((a, b) -> Double.compare(a.seq, b.seq));
857
+
858
+ List<Order.Binding> bindings = new ArrayList<>();
859
+ for (Entry entry : live) {
860
+ bindings.add(new Order.Binding(entry.ref, entry.pos, entry.order));
861
+ }
862
+ Object pin = null == point ? null : get(get(points, point), "pin");
863
+ return Order.resolveOrder(bindings, pin);
864
+ }
865
+
866
+ // --- points -----------------------------------------------------
867
+
868
+ /**
869
+ * Live bindings on a point, in resolved order. Recomputed on any change
870
+ * to the live set (§7) rather than cached at startup - the bug a host
871
+ * discovers only when something deactivates in production.
872
+ */
873
+ private List<Point.Bound> bound(String point) {
874
+ List<Point.Bound> out = new ArrayList<>();
875
+ for (String ref : order(point)) {
876
+ Entry entry = inst.get(ref);
877
+ if (null == entry) {
878
+ continue;
879
+ }
880
+ // The band is the INSTANCE's ordering block (§7), stamped by the
881
+ // host. A plugin passing its own would be ranking itself above the
882
+ // order its document declared.
883
+ Long band = asint(get(entry.order, "band"));
884
+ for (Point.Bound b : entry.bindings) {
885
+ if (!b.point.equals(point)) {
886
+ continue;
887
+ }
888
+ out.add(b.withBand(null == band ? 0 : band));
889
+ }
890
+ }
891
+ return out;
892
+ }
893
+
894
+ private Object pointspec(String point, String want) {
895
+ if (!has(points, point)) {
896
+ fail("plugin_point_unknown", "no such point: " + point, details("point", point));
897
+ }
898
+ Object spec = get(points, point);
899
+ Object kind = get(spec, "kind");
900
+ if ("hook".equals(want)) {
901
+ // A point with no declared kind is a hook, which is what makes `{}`
902
+ // the minimal point declaration.
903
+ if (null != kind && !"hook".equals(kind)) {
904
+ fail(
905
+ "plugin_point_kind",
906
+ "point is not a hook: " + point,
907
+ details("point", point, "kind", kind));
908
+ }
909
+ return spec;
910
+ }
911
+ if (!want.equals(kind)) {
912
+ fail(
913
+ "plugin_point_kind",
914
+ "point is not a " + want + ": " + point,
915
+ details("point", point, "kind", kind));
916
+ }
917
+ return spec;
918
+ }
919
+
920
+ public Object emit(String point, Object arg) {
921
+ Object spec = pointspec(point, "hook");
922
+ String mode = str(get(spec, "mode"));
923
+ return Point.emit(bound(point), null == mode ? "emit" : mode, arg);
924
+ }
925
+
926
+ public Object call(String point, Object[] args) {
927
+ Object spec = pointspec(point, "chain");
928
+ Object base = get(spec, "base");
929
+ Point.NextFn basefn =
930
+ base instanceof Point.NextFn
931
+ ? (Point.NextFn) base
932
+ : a -> 0 < a.length ? a[0] : null;
933
+ return Point.compose(bound(point), basefn).call(args);
934
+ }
935
+
936
+ public Object provider(String point, Object[] args) {
937
+ Object spec = pointspec(point, "provider");
938
+ Point.Picked pick = Point.provider(bound(point), spec);
939
+ if (null == pick.winner) {
940
+ return get(spec, "default");
941
+ }
942
+ return pick.winner.func.call(null, args);
943
+ }
944
+
945
+ /** The losers are VISIBLE rather than silently ignored (§6.3). */
946
+ public List<String> shadowed(String point) {
947
+ if (!has(points, point)) {
948
+ return new ArrayList<>();
949
+ }
950
+ return Point.provider(bound(point), get(points, point)).shadowed;
951
+ }
952
+
953
+ public Object exports(String spec) {
954
+ List<Export.Exported> all = new ArrayList<>();
955
+ for (Map.Entry<String, Entry> e : inst.entrySet()) {
956
+ Entry entry = e.getValue();
957
+ // Exports of a `loaded` (not live) instance are VISIBLE (§11).
958
+ if ("declared".equals(entry.status) || "failed".equals(entry.status)) {
959
+ continue;
960
+ }
961
+ for (Map.Entry<String, Object> x : entry.exports.entrySet()) {
962
+ all.add(new Export.Exported(e.getKey(), x.getKey(), x.getValue()));
963
+ }
964
+ }
965
+ return Export.resolveExport(spec, all);
966
+ }
967
+
968
+ /** The live providers of a capability, best-first (§11.1). */
969
+ public List<String> capability(String name) {
970
+ List<Object> cands = new ArrayList<>();
971
+ for (Map.Entry<String, Entry> e : inst.entrySet()) {
972
+ Entry entry = e.getValue();
973
+ if (!"live".equals(entry.status)) {
974
+ continue;
975
+ }
976
+ for (Object prov : entry.provides) {
977
+ if (!name.equals(str(get(prov, "name")))) {
978
+ continue;
979
+ }
980
+ Map<String, Object> cand = newmap();
981
+ cand.put("ref", e.getKey());
982
+ cand.put("pos", entry.pos);
983
+ cand.put("provides", prov);
984
+ cands.add(cand);
985
+ }
986
+ }
987
+ Map<String, Object> req = newmap();
988
+ req.put("name", name);
989
+ List<String> out = new ArrayList<>();
990
+ for (Object c : Capability.resolveCapability(req, cands)) {
991
+ out.add(str(get(c, "ref")));
992
+ }
993
+ return out;
994
+ }
995
+
996
+ // --- documents --------------------------------------------------
997
+
998
+ /**
999
+ * §9.6: "load what is missing, UNLOAD WHAT IS GONE, patch what changed,
1000
+ * and move activation state to match", with the stated ordering -
1001
+ * "deactivations and unloads first (reverse load order), then loads,
1002
+ * then activations in load order".
1003
+ *
1004
+ * <p>FOUR PHASES, NOT ONE INTERLEAVED LOOP. An earlier draft walked the
1005
+ * document once, which never looked at instances the new document had
1006
+ * DROPPED - so an integration removed from a config reload stayed live
1007
+ * with its bindings and resources.
1008
+ */
1009
+ public void apply(Object doc, Object profile) {
1010
+ guard();
1011
+ Object useprofile = null == profile ? get(opts, "profile") : profile;
1012
+
1013
+ Map<String, Object> input = newmap();
1014
+ input.put("doc", doc);
1015
+ input.put("profile", useprofile);
1016
+ input.put("keys", get(opts, "keys"));
1017
+ input.put("reserved", reserved);
1018
+ Map<String, Object> norm = Config.normalizeConfig(input);
1019
+
1020
+ List<Object> wantlist = Types.list(norm.get("order"));
1021
+ List<String> want = new ArrayList<>();
1022
+ for (Object r : wantlist) {
1023
+ want.add(str(r));
1024
+ }
1025
+
1026
+ Object defaults = get(opts, "defaults");
1027
+ Map<String, Object> optionsof = newmap();
1028
+ for (String ref : want) {
1029
+ Map<String, Object> oin = newmap();
1030
+ oin.put("ref", ref);
1031
+ oin.put("doc", doc);
1032
+ oin.put("profile", useprofile);
1033
+ oin.put("shape", shapeof(ref));
1034
+ oin.put("hostdefaults", get(defaults, Refs.refname(ref)));
1035
+ optionsof.put(ref, Config.resolveOptions(oin));
1036
+ }
1037
+
1038
+ Object instances = norm.get("instance");
1039
+
1040
+ // --- phase 1: deactivations and unloads, REVERSE load order ----
1041
+ List<String> drop = new ArrayList<>();
1042
+ for (Map.Entry<String, Entry> e : inst.entrySet()) {
1043
+ if ("declared".equals(e.getValue().status) || wantlive(instances, e.getKey())) {
1044
+ continue;
1045
+ }
1046
+ drop.add(e.getKey());
1047
+ }
1048
+ // Highest `pos` first, ref-descending for a tie, so a consumer
1049
+ // declared after its provider goes down first.
1050
+ drop.sort(
1051
+ (a, b) -> {
1052
+ double pa = inst.get(a).pos;
1053
+ double pb = inst.get(b).pos;
1054
+ if (pa != pb) {
1055
+ return Double.compare(pb, pa);
1056
+ }
1057
+ return b.compareTo(a);
1058
+ });
1059
+ for (String ref : drop) {
1060
+ unload(ref);
1061
+ }
1062
+
1063
+ // --- phase 2: declare and patch EVERYTHING, in load order ------
1064
+ for (String ref : want) {
1065
+ Object ent = get(instances, ref);
1066
+ Map<String, Object> spec = newmap();
1067
+ spec.put("options", optionsof.get(ref));
1068
+ spec.put("order", get(ent, "order"));
1069
+ spec.put("pos", get(ent, "pos"));
1070
+ Entry entry = declare(ref, spec);
1071
+ // The bar is REASSERTED ON EVERY APPLY, in both directions - a
1072
+ // document that turns the instance back on clears it, which is the
1073
+ // whole point of a config switch.
1074
+ entry.barred = !truthy(get(ent, "active"));
1075
+ // REPLACE rather than refill: `Inst.options()` reads the field back
1076
+ // through the entry every time, so no callback is holding a map that
1077
+ // needs emptying in place.
1078
+ entry.options = optionsof.get(ref);
1079
+ entry.order = get(ent, "order");
1080
+ Double pos = num(get(ent, "pos"));
1081
+ entry.pos = null == pos ? 0 : pos;
1082
+ }
1083
+
1084
+ // --- phase 3: loads, in load order -----------------------------
1085
+ // ONLY THE EAGER, ACTIVE ONES: "a document of twenty lazy instances is
1086
+ // twenty map entries and no executed code" (§9.6).
1087
+ for (String ref : want) {
1088
+ if (wantlive(instances, ref)) {
1089
+ load(ref, null);
1090
+ }
1091
+ }
1092
+
1093
+ // --- phase 4: activations, in load order -----------------------
1094
+ for (String ref : want) {
1095
+ if (wantlive(instances, ref)) {
1096
+ activate(ref);
1097
+ }
1098
+ }
1099
+ }
1100
+
1101
+ /**
1102
+ * Should this ref be LIVE after the apply? False for a ref the document
1103
+ * declares lazy or inactive AND for one it does not name at all - which
1104
+ * is what makes "unload what is gone" and "unload what was toggled off"
1105
+ * one rule rather than two.
1106
+ */
1107
+ private static boolean wantlive(Object instances, String ref) {
1108
+ Object ent = get(instances, ref);
1109
+ return null != ent && truthy(get(ent, "active")) && "eager".equals(get(ent, "start"));
1110
+ }
1111
+
1112
+ private Object shapeof(String ref) {
1113
+ Definition definition = catalog.get(Refs.refname(ref));
1114
+ return null == definition ? null : definition.shape;
1115
+ }
1116
+
1117
+ public void options(Object ref, Object patch) {
1118
+ guard();
1119
+ Entry entry = need(ref);
1120
+ Object previous = entry.options;
1121
+
1122
+ Map<String, Object> merged = newmap();
1123
+ Map<String, Object> prev = map(previous);
1124
+ if (null != prev) {
1125
+ merged.putAll(prev);
1126
+ }
1127
+ for (String k : keys(patch)) {
1128
+ merged.put(k, get(patch, k));
1129
+ }
1130
+
1131
+ Map<String, Object> input = newmap();
1132
+ input.put("ref", entry.ref);
1133
+ input.put("shape", shapeof(entry.ref));
1134
+ input.put("doc", newmap());
1135
+ input.put("patch", merged);
1136
+ entry.options = Config.resolveOptions(input);
1137
+
1138
+ if (!"live".equals(entry.status)) {
1139
+ return;
1140
+ }
1141
+
1142
+ if (null != entry.def.reconfigure) {
1143
+ transition = true;
1144
+ try {
1145
+ entry.def.reconfigure.run(new Inst(this, entry), entry.options, previous);
1146
+ } finally {
1147
+ transition = false;
1148
+ }
1149
+ } else {
1150
+ // Always correct and sometimes expensive; `reconfigure` exists to
1151
+ // make the common case cheap (§9.4).
1152
+ deactivate(entry.ref);
1153
+ activate(entry.ref);
1154
+ }
1155
+ }
1156
+
1157
+ public void close() {
1158
+ // A bulk teardown removing the holders too, so `hold` is suspended for
1159
+ // exactly those holders (§11.3) - while the consumers-first cascade
1160
+ // still runs, which is the half that matters.
1161
+ coordinated = true;
1162
+ try {
1163
+ List<String> refs = new ArrayList<>(inst.keySet());
1164
+ Collections.reverse(refs);
1165
+ for (String ref : refs) {
1166
+ if (inst.containsKey(ref)) {
1167
+ unload(ref);
1168
+ }
1169
+ }
1170
+ } finally {
1171
+ coordinated = false;
1172
+ }
1173
+ }
1174
+
1175
+ /**
1176
+ * The same record §6.6 gives a plugin about itself, reachable from
1177
+ * outside for the corpus.
1178
+ */
1179
+ public Object positionof(String ref, String point) {
1180
+ String myref = Refs.canon(ref);
1181
+ Entry entry = inst.get(myref);
1182
+ if (null == entry) {
1183
+ fail("plugin_not_loaded", "no such instance: " + ref, details("ref", ref));
1184
+ }
1185
+ List<String> ranked = order(point);
1186
+ int index = ranked.indexOf(entry.ref);
1187
+ Map<String, Object> out = newmap();
1188
+ out.put("index", (double) index);
1189
+ out.put("count", (double) ranked.size());
1190
+ // §6.2 composes b1(b2(b3(base))) with the FIRST binding OUTERMOST, so
1191
+ // these are not index 0 and index count-1 the other way round.
1192
+ out.put("outermost", 0 == index);
1193
+ out.put("innermost", index == ranked.size() - 1);
1194
+ return out;
1195
+ }
1196
+ }