@voxgig/sdkgen 4.8.3 → 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 (917) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/helpers/manifest.d.ts +2 -1
  3. package/dist/helpers/manifest.js +75 -1
  4. package/dist/helpers/manifest.js.map +1 -1
  5. package/dist/helpers/modelNames.d.ts +7 -0
  6. package/dist/helpers/modelNames.js +232 -0
  7. package/dist/helpers/modelNames.js.map +1 -0
  8. package/dist/helpers/naming.d.ts +2 -1
  9. package/dist/helpers/naming.js +45 -1
  10. package/dist/helpers/naming.js.map +1 -1
  11. package/dist/sdkgen.d.ts +3 -2
  12. package/dist/sdkgen.js +12 -3
  13. package/dist/sdkgen.js.map +1 -1
  14. package/dist/testkit.d.ts +2 -0
  15. package/dist/testkit.js +80 -24
  16. package/dist/testkit.js.map +1 -1
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/dist/utility.js +17 -7
  19. package/dist/utility.js.map +1 -1
  20. package/package.json +1 -1
  21. package/project/.sdk/model/feature/secrets.aon +671 -0
  22. package/project/.sdk/model/target/clojure.aon +10 -0
  23. package/project/.sdk/model/target/csharp.aon +5 -0
  24. package/project/.sdk/model/target/elixir.aon +6 -0
  25. package/project/.sdk/model/target/java.aon +5 -0
  26. package/project/.sdk/model/target/js.aon +5 -0
  27. package/project/.sdk/model/target/kotlin.aon +7 -0
  28. package/project/.sdk/model/target/perl.aon +5 -0
  29. package/project/.sdk/model/target/php.aon +5 -0
  30. package/project/.sdk/model/target/rb.aon +5 -0
  31. package/project/.sdk/model/target/rust.aon +5 -0
  32. package/project/.sdk/model/target/scala.aon +38 -2
  33. package/project/.sdk/model/target/swift.aon +10 -0
  34. package/project/.sdk/model/target/zig.aon +9 -0
  35. package/project/.sdk/src/cmp/clojure/Config_clojure.ts +51 -4
  36. package/project/.sdk/src/cmp/clojure/Main_clojure.ts +43 -1
  37. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +17 -1
  38. package/project/.sdk/src/cmp/clojure/featureextra_clojure.ts +130 -0
  39. package/project/.sdk/src/cmp/csharp/Config_csharp.ts +70 -0
  40. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +9 -1
  41. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +25 -1
  42. package/project/.sdk/src/cmp/elixir/Config_elixir.ts +68 -2
  43. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +16 -0
  44. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +14 -1
  45. package/project/.sdk/src/cmp/java/Config_java.ts +84 -2
  46. package/project/.sdk/src/cmp/java/Main_java.ts +10 -1
  47. package/project/.sdk/src/cmp/js/Config_js.ts +75 -8
  48. package/project/.sdk/src/cmp/js/Main_js.ts +66 -2
  49. package/project/.sdk/src/cmp/js/fragment/Config.data.fragment.js +18 -1
  50. package/project/.sdk/src/cmp/js/fragment/Config.fragment.js +18 -1
  51. package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +7 -0
  52. package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +63 -1
  53. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +32 -2
  54. package/project/.sdk/src/cmp/perl/Config_perl.ts +129 -3
  55. package/project/.sdk/src/cmp/perl/Main_perl.ts +41 -1
  56. package/project/.sdk/src/cmp/perl/Package_perl.ts +13 -1
  57. package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +1 -0
  58. package/project/.sdk/src/cmp/php/Config_php.ts +105 -1
  59. package/project/.sdk/src/cmp/php/Gitignore_php.ts +4 -2
  60. package/project/.sdk/src/cmp/php/Main_php.ts +16 -1
  61. package/project/.sdk/src/cmp/rb/Config_rb.ts +92 -2
  62. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +11 -1
  63. package/project/.sdk/src/cmp/rb/Main_rb.ts +7 -1
  64. package/project/.sdk/src/cmp/rust/Main_rust.ts +99 -1
  65. package/project/.sdk/src/cmp/rust/Package_rust.ts +72 -6
  66. package/project/.sdk/src/cmp/scala/Config_scala.ts +44 -0
  67. package/project/.sdk/src/cmp/scala/Main_scala.ts +68 -1
  68. package/project/.sdk/src/cmp/swift/Config_swift.ts +62 -1
  69. package/project/.sdk/src/cmp/swift/Main_swift.ts +35 -1
  70. package/project/.sdk/src/cmp/swift/Package_swift.ts +81 -11
  71. package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +58 -44
  72. package/project/.sdk/src/cmp/swift/utility_swift.ts +22 -0
  73. package/project/.sdk/src/cmp/zig/Package_zig.ts +15 -11
  74. package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +3 -3
  75. package/project/.sdk/src/cmp/zig/fragment/EntityListOp.fragment.zig +3 -3
  76. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +3 -3
  77. package/project/.sdk/src/cmp/zig/utility_zig.ts +50 -1
  78. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  79. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  80. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  81. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  82. package/project/.sdk/tm/clojure/Makefile +3 -0
  83. package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +503 -0
  84. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +84 -0
  85. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +44 -0
  86. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +240 -0
  87. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +199 -0
  88. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +111 -0
  89. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +46 -0
  90. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +122 -0
  91. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +1018 -0
  92. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +106 -0
  93. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +157 -0
  94. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +77 -0
  95. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +92 -0
  96. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +46 -0
  97. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +177 -0
  98. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +90 -0
  99. package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +40 -0
  100. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +111 -0
  101. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +297 -0
  102. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +192 -0
  103. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +261 -0
  104. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +165 -0
  105. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +111 -0
  106. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +107 -0
  107. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +61 -0
  108. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +88 -0
  109. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +115 -0
  110. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +214 -0
  111. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +80 -0
  112. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +93 -0
  113. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +63 -0
  114. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +99 -0
  115. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +142 -0
  116. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +25 -0
  117. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +196 -0
  118. package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +113 -0
  119. package/project/.sdk/tm/clojure/src/sdk/core.clj +9 -0
  120. package/project/.sdk/tm/clojure/src/sdk/features.clj +13 -1
  121. package/project/.sdk/tm/clojure/test/sdk/test/feature/secrets.clj +547 -0
  122. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +103 -14
  123. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  124. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  125. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  126. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  127. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  128. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  129. package/project/.sdk/tm/csharp/feature/SecretsFeature.cs +889 -0
  130. package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +196 -0
  131. package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +70 -0
  132. package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +505 -0
  133. package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +52 -0
  134. package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +285 -0
  135. package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +55 -0
  136. package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +228 -0
  137. package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +102 -0
  138. package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +256 -0
  139. package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +1379 -0
  140. package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +177 -0
  141. package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +326 -0
  142. package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +295 -0
  143. package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +113 -0
  144. package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +177 -0
  145. package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +198 -0
  146. package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +95 -0
  147. package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +351 -0
  148. package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +196 -0
  149. package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +325 -0
  150. package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +195 -0
  151. package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +192 -0
  152. package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +75 -0
  153. package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +112 -0
  154. package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +167 -0
  155. package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +221 -0
  156. package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +213 -0
  157. package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +155 -0
  158. package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +169 -0
  159. package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +172 -0
  160. package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +240 -0
  161. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +192 -0
  162. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +503 -0
  163. package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +775 -0
  164. package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +1702 -0
  165. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  166. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  167. package/project/.sdk/tm/csharp/utility/MakeOptions.cs +10 -0
  168. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
  169. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +118 -0
  170. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +56 -0
  171. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +320 -0
  172. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +205 -0
  173. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +166 -0
  174. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +13 -0
  175. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +73 -0
  176. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +185 -0
  177. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +1182 -0
  178. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +139 -0
  179. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +132 -0
  180. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +179 -0
  181. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +99 -0
  182. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +129 -0
  183. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +59 -0
  184. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +190 -0
  185. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +136 -0
  186. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +42 -0
  187. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +368 -0
  188. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +257 -0
  189. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +160 -0
  190. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +127 -0
  191. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +96 -0
  192. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +124 -0
  193. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +162 -0
  194. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +627 -0
  195. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +134 -0
  196. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +125 -0
  197. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +152 -0
  198. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +80 -0
  199. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +101 -0
  200. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +176 -0
  201. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +67 -0
  202. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +536 -0
  203. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +662 -0
  204. package/project/.sdk/tm/elixir/lib/projectname/feature/secrets.ex +824 -0
  205. package/project/.sdk/tm/elixir/test/feature/secrets/secrets_test.exs +1072 -0
  206. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  207. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  208. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  209. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  210. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  211. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  212. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  213. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  214. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
  215. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  216. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
  217. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  218. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  219. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  220. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  221. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  222. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  223. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  224. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +4 -4
  225. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  226. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  227. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  228. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  229. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  230. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +4 -5
  231. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +3 -3
  232. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +3 -4
  233. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  234. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  235. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  236. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +5 -2
  237. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +31 -2
  238. package/project/.sdk/tm/go/feature/secrets_feature.go +16 -0
  239. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +123 -0
  240. package/project/.sdk/tm/go/test/omni/omni.go +8 -3
  241. package/project/.sdk/tm/go/test/omni/util.go +25 -4
  242. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
  243. package/project/.sdk/tm/java/feature/SecretsFeature.java +766 -0
  244. package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +181 -0
  245. package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +64 -0
  246. package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +433 -0
  247. package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +54 -0
  248. package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +292 -0
  249. package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +49 -0
  250. package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +204 -0
  251. package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +93 -0
  252. package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +244 -0
  253. package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +1196 -0
  254. package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +173 -0
  255. package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +339 -0
  256. package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +274 -0
  257. package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +94 -0
  258. package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +37 -0
  259. package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +172 -0
  260. package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +171 -0
  261. package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +89 -0
  262. package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +232 -0
  263. package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +198 -0
  264. package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +142 -0
  265. package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +229 -0
  266. package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +302 -0
  267. package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +21 -0
  268. package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +698 -0
  269. package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +100 -0
  270. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +294 -0
  271. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +164 -0
  272. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +161 -0
  273. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +103 -0
  274. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +143 -0
  275. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +186 -0
  276. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +192 -0
  277. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +139 -0
  278. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +143 -0
  279. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +80 -0
  280. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +138 -0
  281. package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +243 -0
  282. package/project/.sdk/tm/java/test/feature/secrets/SecretsFeatureTest.java +986 -0
  283. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  284. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  285. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  286. package/project/.sdk/tm/java/utility/MakeOptions.java +7 -0
  287. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  288. package/project/.sdk/tm/js/src/feature/secrets/SecretsFeature.js +431 -0
  289. package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +119 -0
  290. package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +42 -0
  291. package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +323 -0
  292. package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +196 -0
  293. package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +120 -0
  294. package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +48 -0
  295. package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +150 -0
  296. package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +949 -0
  297. package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +35 -0
  298. package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +165 -0
  299. package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +94 -0
  300. package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +106 -0
  301. package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +59 -0
  302. package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +79 -0
  303. package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +100 -0
  304. package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +574 -0
  305. package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +56 -0
  306. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +188 -0
  307. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +135 -0
  308. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +128 -0
  309. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +67 -0
  310. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +115 -0
  311. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +139 -0
  312. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +93 -0
  313. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +99 -0
  314. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +111 -0
  315. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +105 -0
  316. package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +157 -0
  317. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +119 -0
  318. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +39 -0
  319. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +40 -0
  320. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +21 -0
  321. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +42 -0
  322. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +18 -0
  323. package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +151 -0
  324. package/project/.sdk/tm/js/src/utility/StructUtility.js +2 -2
  325. package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +946 -0
  326. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  327. package/project/.sdk/tm/js/test/vendor/omni/runner.js +18 -3
  328. package/project/.sdk/tm/js/test/vendor/omni/util.js +25 -8
  329. package/project/.sdk/tm/kotlin/feature/SecretsFeature.kt +659 -0
  330. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +117 -0
  331. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +40 -0
  332. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +322 -0
  333. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +227 -0
  334. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +163 -0
  335. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +57 -0
  336. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +179 -0
  337. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +1131 -0
  338. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +241 -0
  339. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +180 -0
  340. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +64 -0
  341. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +124 -0
  342. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +125 -0
  343. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +66 -0
  344. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +171 -0
  345. package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +132 -0
  346. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +359 -0
  347. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +21 -0
  348. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +308 -0
  349. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +525 -0
  350. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +126 -0
  351. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +205 -0
  352. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +251 -0
  353. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +145 -0
  354. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +130 -0
  355. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +77 -0
  356. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +119 -0
  357. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +156 -0
  358. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +219 -0
  359. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +114 -0
  360. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +114 -0
  361. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +118 -0
  362. package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +220 -0
  363. package/project/.sdk/tm/kotlin/test/feature/secrets/SecretsTest.kt +1148 -0
  364. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  365. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  366. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  367. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  368. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  369. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  370. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  371. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  372. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  373. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  374. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  375. package/project/.sdk/tm/perl/Makefile +6 -1
  376. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +141 -0
  377. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +65 -0
  378. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +346 -0
  379. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +216 -0
  380. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +176 -0
  381. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +59 -0
  382. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +157 -0
  383. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +1139 -0
  384. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +187 -0
  385. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +100 -0
  386. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +119 -0
  387. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +71 -0
  388. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +251 -0
  389. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +122 -0
  390. package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +70 -0
  391. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +263 -0
  392. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +159 -0
  393. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +180 -0
  394. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +92 -0
  395. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +138 -0
  396. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +213 -0
  397. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +173 -0
  398. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +132 -0
  399. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +132 -0
  400. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +102 -0
  401. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +132 -0
  402. package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +190 -0
  403. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +124 -0
  404. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +301 -0
  405. package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +605 -0
  406. package/project/.sdk/tm/perl/feature/secrets_feature.pm +675 -0
  407. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  408. package/project/.sdk/tm/perl/t/feature/secrets/secrets.t +957 -0
  409. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  410. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  411. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  412. package/project/.sdk/tm/php/feature/SecretsFeature.php +670 -0
  413. package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +226 -0
  414. package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +75 -0
  415. package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +444 -0
  416. package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +262 -0
  417. package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +202 -0
  418. package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +74 -0
  419. package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +195 -0
  420. package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +1514 -0
  421. package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +260 -0
  422. package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +129 -0
  423. package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +169 -0
  424. package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +79 -0
  425. package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +348 -0
  426. package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +163 -0
  427. package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +40 -0
  428. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +274 -0
  429. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +170 -0
  430. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +163 -0
  431. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +106 -0
  432. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +144 -0
  433. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +194 -0
  434. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +113 -0
  435. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +131 -0
  436. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +150 -0
  437. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +101 -0
  438. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +146 -0
  439. package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +161 -0
  440. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +129 -0
  441. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +322 -0
  442. package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +724 -0
  443. package/project/.sdk/tm/php/test/feature/secrets/SecretsTest.php +1067 -0
  444. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  445. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  446. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  447. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  448. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  449. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  450. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  451. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  452. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
  453. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  454. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
  455. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  456. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  457. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  458. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  459. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  460. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  461. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +4 -2
  462. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  463. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +3 -3
  464. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  465. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  466. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  467. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  468. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +3 -4
  469. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  470. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +4 -6
  471. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  472. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  473. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  474. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
  475. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +21 -1
  476. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  477. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  478. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +16 -2
  479. package/project/.sdk/tm/py/test/voxgig_omni/util.py +27 -12
  480. package/project/.sdk/tm/rb/Makefile +7 -1
  481. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +118 -0
  482. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +55 -0
  483. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +315 -0
  484. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +197 -0
  485. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +143 -0
  486. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +52 -0
  487. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +147 -0
  488. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +1079 -0
  489. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +169 -0
  490. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +93 -0
  491. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +112 -0
  492. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +56 -0
  493. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +99 -0
  494. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +106 -0
  495. package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +24 -0
  496. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +111 -0
  497. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +200 -0
  498. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +130 -0
  499. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +121 -0
  500. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +66 -0
  501. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +107 -0
  502. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +137 -0
  503. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +136 -0
  504. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +97 -0
  505. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +104 -0
  506. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +113 -0
  507. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +127 -0
  508. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +210 -0
  509. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +465 -0
  510. package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +30 -0
  511. package/project/.sdk/tm/rb/feature/secrets_feature.rb +561 -0
  512. package/project/.sdk/tm/rb/test/feature/secrets/secrets_feature_test.rb +842 -0
  513. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  514. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  515. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  516. package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +130 -0
  517. package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +114 -0
  518. package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +416 -0
  519. package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +245 -0
  520. package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +200 -0
  521. package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +90 -0
  522. package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +231 -0
  523. package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +1565 -0
  524. package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +18 -0
  525. package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +226 -0
  526. package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +137 -0
  527. package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +148 -0
  528. package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +83 -0
  529. package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +132 -0
  530. package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +433 -0
  531. package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +174 -0
  532. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +146 -0
  533. package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +230 -0
  534. package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +328 -0
  535. package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +184 -0
  536. package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +172 -0
  537. package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +102 -0
  538. package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +153 -0
  539. package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +228 -0
  540. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +537 -0
  541. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +300 -0
  542. package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +137 -0
  543. package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +148 -0
  544. package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +165 -0
  545. package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +150 -0
  546. package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +144 -0
  547. package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +51 -0
  548. package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +637 -0
  549. package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +677 -0
  550. package/project/.sdk/tm/rust/feature/secrets.rs +961 -0
  551. package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +1509 -0
  552. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  553. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  554. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  555. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  556. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  557. package/project/.sdk/tm/scala/Makefile +8 -3
  558. package/project/.sdk/tm/scala/feature/SecretsFeature.scala +556 -0
  559. package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +96 -0
  560. package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +270 -0
  561. package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +216 -0
  562. package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +144 -0
  563. package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +59 -0
  564. package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +149 -0
  565. package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +1089 -0
  566. package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +156 -0
  567. package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +169 -0
  568. package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +47 -0
  569. package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +107 -0
  570. package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +131 -0
  571. package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +53 -0
  572. package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +110 -0
  573. package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +157 -0
  574. package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +136 -0
  575. package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +302 -0
  576. package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +20 -0
  577. package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +281 -0
  578. package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +473 -0
  579. package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +123 -0
  580. package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +216 -0
  581. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +225 -0
  582. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +124 -0
  583. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +104 -0
  584. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +68 -0
  585. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +97 -0
  586. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +131 -0
  587. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +209 -0
  588. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +98 -0
  589. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +90 -0
  590. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +95 -0
  591. package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +214 -0
  592. package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +971 -0
  593. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  594. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  595. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  596. package/project/.sdk/tm/scala/utility/Make.scala +7 -0
  597. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/SecretsFeature.swift +669 -0
  598. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +98 -0
  599. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +87 -0
  600. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +298 -0
  601. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +209 -0
  602. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +191 -0
  603. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +63 -0
  604. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +158 -0
  605. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +1141 -0
  606. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +192 -0
  607. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +183 -0
  608. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +130 -0
  609. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +141 -0
  610. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +59 -0
  611. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +125 -0
  612. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +198 -0
  613. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +139 -0
  614. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +271 -0
  615. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +173 -0
  616. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +139 -0
  617. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +198 -0
  618. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +86 -0
  619. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +129 -0
  620. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +175 -0
  621. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +310 -0
  622. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +140 -0
  623. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +118 -0
  624. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +105 -0
  625. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +111 -0
  626. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +297 -0
  627. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +120 -0
  628. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +452 -0
  629. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +25 -0
  630. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +689 -0
  631. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +755 -0
  632. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +9 -0
  633. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +30 -0
  634. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/feature/secrets/SecretsFeatureTest.swift +1030 -0
  635. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  636. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  637. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  638. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  639. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  640. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  641. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  642. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  643. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
  644. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  645. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  646. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
  647. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  648. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  649. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  650. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  651. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  652. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  653. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  654. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  655. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  656. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  657. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  658. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  659. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  660. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  661. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  662. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  663. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  664. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  665. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  666. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  667. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  668. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
  669. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  670. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  671. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  672. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  673. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
  674. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +2 -2
  675. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  676. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  677. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  678. package/project/.sdk/tm/zig/Makefile +15 -1
  679. package/project/.sdk/tm/zig/build.zig +23 -5
  680. package/project/.sdk/tm/zig/core/helpers.zig +52 -11
  681. package/project/.sdk/tm/zig/core/mem.zig +17 -1
  682. package/project/.sdk/tm/zig/core/utility.zig +23 -19
  683. package/project/.sdk/tm/zig/feature/audit.zig +2 -2
  684. package/project/.sdk/tm/zig/feature/cache.zig +2 -2
  685. package/project/.sdk/tm/zig/feature/debug.zig +5 -5
  686. package/project/.sdk/tm/zig/feature/netsim.zig +2 -2
  687. package/project/.sdk/tm/zig/feature/paging.zig +2 -2
  688. package/project/.sdk/tm/zig/feature/proxy.zig +15 -8
  689. package/project/.sdk/tm/zig/feature/streaming.zig +5 -5
  690. package/project/.sdk/tm/zig/feature/support.zig +3 -3
  691. package/project/.sdk/tm/zig/feature/telemetry.zig +5 -5
  692. package/project/.sdk/tm/zig/feature/test.zig +10 -5
  693. package/project/.sdk/tm/zig/test/fh.zig +10 -10
  694. package/project/.sdk/tm/zig/test/gotcha_test.zig +5 -5
  695. package/project/.sdk/tm/zig/test/omniresolver.zig +515 -0
  696. package/project/.sdk/tm/zig/test/omnismoke_test.zig +284 -0
  697. package/project/.sdk/tm/zig/test/pipeline_test.zig +8 -8
  698. package/project/.sdk/tm/zig/test/primary_utility_test.zig +144 -154
  699. package/project/.sdk/tm/zig/test/struct_corpus.zig +264 -187
  700. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +1314 -0
  701. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +446 -0
  702. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +7 -4
  703. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +356 -157
  704. package/project/sdkgen-package.json +1 -4
  705. package/src/helpers/manifest.ts +81 -1
  706. package/src/helpers/modelNames.ts +284 -0
  707. package/src/helpers/naming.ts +45 -1
  708. package/src/sdkgen.ts +11 -1
  709. package/src/testkit.ts +115 -26
  710. package/src/utility.ts +17 -7
  711. package/project/.sdk/model/target/dart.aon +0 -58
  712. package/project/.sdk/model/target/lean.aon +0 -91
  713. package/project/.sdk/model/target/seneca-provider.aon +0 -120
  714. package/project/.sdk/src/cmp/dart/Config_dart.ts +0 -176
  715. package/project/.sdk/src/cmp/dart/EntityBase_dart.ts +0 -34
  716. package/project/.sdk/src/cmp/dart/EntityOperation_dart.ts +0 -43
  717. package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +0 -207
  718. package/project/.sdk/src/cmp/dart/Entity_dart.ts +0 -87
  719. package/project/.sdk/src/cmp/dart/Gitignore_dart.ts +0 -34
  720. package/project/.sdk/src/cmp/dart/MainEntity_dart.ts +0 -33
  721. package/project/.sdk/src/cmp/dart/Main_dart.ts +0 -106
  722. package/project/.sdk/src/cmp/dart/Package_dart.ts +0 -82
  723. package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +0 -177
  724. package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +0 -238
  725. package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +0 -53
  726. package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +0 -152
  727. package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +0 -59
  728. package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +0 -65
  729. package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +0 -151
  730. package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +0 -63
  731. package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +0 -225
  732. package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +0 -397
  733. package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +0 -24
  734. package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +0 -106
  735. package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +0 -78
  736. package/project/.sdk/src/cmp/dart/SdkError_dart.ts +0 -42
  737. package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +0 -516
  738. package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +0 -628
  739. package/project/.sdk/src/cmp/dart/Test_dart.ts +0 -116
  740. package/project/.sdk/src/cmp/dart/fragment/Config.data.fragment.dart +0 -79
  741. package/project/.sdk/src/cmp/dart/fragment/Config.fragment.dart +0 -51
  742. package/project/.sdk/src/cmp/dart/fragment/Direct.test.fragment.dart +0 -25
  743. package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +0 -29
  744. package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +0 -28
  745. package/project/.sdk/src/cmp/dart/fragment/EntityBase.fragment.dart +0 -302
  746. package/project/.sdk/src/cmp/dart/fragment/EntityCreateOp.fragment.dart +0 -98
  747. package/project/.sdk/src/cmp/dart/fragment/EntityListOp.fragment.dart +0 -90
  748. package/project/.sdk/src/cmp/dart/fragment/EntityLoadOp.fragment.dart +0 -102
  749. package/project/.sdk/src/cmp/dart/fragment/EntityRemoveOp.fragment.dart +0 -108
  750. package/project/.sdk/src/cmp/dart/fragment/EntityUpdateOp.fragment.dart +0 -102
  751. package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +0 -338
  752. package/project/.sdk/src/cmp/dart/fragment/SdkError.fragment.dart +0 -26
  753. package/project/.sdk/src/cmp/dart/tsconfig.json +0 -15
  754. package/project/.sdk/src/cmp/dart/utility_dart.ts +0 -155
  755. package/project/.sdk/src/cmp/lean/Config_lean.ts +0 -93
  756. package/project/.sdk/src/cmp/lean/Entity_lean.ts +0 -9
  757. package/project/.sdk/src/cmp/lean/Gitignore_lean.ts +0 -18
  758. package/project/.sdk/src/cmp/lean/Main_lean.ts +0 -120
  759. package/project/.sdk/src/cmp/lean/Package_lean.ts +0 -93
  760. package/project/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +0 -29
  761. package/project/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +0 -19
  762. package/project/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +0 -25
  763. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +0 -39
  764. package/project/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +0 -25
  765. package/project/.sdk/src/cmp/lean/ReadmeModel_lean.ts +0 -24
  766. package/project/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +0 -22
  767. package/project/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +0 -50
  768. package/project/.sdk/src/cmp/lean/ReadmeRef_lean.ts +0 -40
  769. package/project/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +0 -16
  770. package/project/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +0 -23
  771. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +0 -19
  772. package/project/.sdk/src/cmp/lean/Test_lean.ts +0 -261
  773. package/project/.sdk/src/cmp/lean/utility_lean.ts +0 -129
  774. package/project/.sdk/src/cmp/seneca-provider/Extras_seneca-provider.ts +0 -4080
  775. package/project/.sdk/src/cmp/seneca-provider/Gitignore_seneca-provider.ts +0 -161
  776. package/project/.sdk/src/cmp/seneca-provider/Main_seneca-provider.ts +0 -1011
  777. package/project/.sdk/tm/dart/LICENSE +0 -22
  778. package/project/.sdk/tm/dart/Makefile +0 -50
  779. package/project/.sdk/tm/dart/lib/Context.dart +0 -150
  780. package/project/.sdk/tm/dart/lib/Control.dart +0 -15
  781. package/project/.sdk/tm/dart/lib/Operation.dart +0 -31
  782. package/project/.sdk/tm/dart/lib/Point.dart +0 -51
  783. package/project/.sdk/tm/dart/lib/Response.dart +0 -32
  784. package/project/.sdk/tm/dart/lib/Result.dart +0 -39
  785. package/project/.sdk/tm/dart/lib/Spec.dart +0 -49
  786. package/project/.sdk/tm/dart/lib/feature/audit/AuditFeature.dart +0 -103
  787. package/project/.sdk/tm/dart/lib/feature/base/BaseFeature.dart +0 -76
  788. package/project/.sdk/tm/dart/lib/feature/cache/CacheFeature.dart +0 -152
  789. package/project/.sdk/tm/dart/lib/feature/clienttrack/ClienttrackFeature.dart +0 -104
  790. package/project/.sdk/tm/dart/lib/feature/cost/CostFeature.dart +0 -446
  791. package/project/.sdk/tm/dart/lib/feature/debug/DebugFeature.dart +0 -153
  792. package/project/.sdk/tm/dart/lib/feature/idempotency/IdempotencyFeature.dart +0 -92
  793. package/project/.sdk/tm/dart/lib/feature/log/LogFeature.dart +0 -85
  794. package/project/.sdk/tm/dart/lib/feature/metrics/MetricsFeature.dart +0 -103
  795. package/project/.sdk/tm/dart/lib/feature/netsim/NetsimFeature.dart +0 -186
  796. package/project/.sdk/tm/dart/lib/feature/paging/PagingFeature.dart +0 -240
  797. package/project/.sdk/tm/dart/lib/feature/proxy/ProxyFeature.dart +0 -118
  798. package/project/.sdk/tm/dart/lib/feature/ratelimit/RatelimitFeature.dart +0 -103
  799. package/project/.sdk/tm/dart/lib/feature/rbac/RbacFeature.dart +0 -121
  800. package/project/.sdk/tm/dart/lib/feature/retry/RetryFeature.dart +0 -155
  801. package/project/.sdk/tm/dart/lib/feature/streaming/StreamingFeature.dart +0 -97
  802. package/project/.sdk/tm/dart/lib/feature/telemetry/TelemetryFeature.dart +0 -136
  803. package/project/.sdk/tm/dart/lib/feature/test/TestFeature.dart +0 -328
  804. package/project/.sdk/tm/dart/lib/feature/timeout/TimeoutFeature.dart +0 -104
  805. package/project/.sdk/tm/dart/lib/utility/CleanUtility.dart +0 -12
  806. package/project/.sdk/tm/dart/lib/utility/DoneUtility.dart +0 -18
  807. package/project/.sdk/tm/dart/lib/utility/ErrUtility.dart +0 -46
  808. package/project/.sdk/tm/dart/lib/utility/FeatureAddUtility.dart +0 -35
  809. package/project/.sdk/tm/dart/lib/utility/FeatureHookUtility.dart +0 -20
  810. package/project/.sdk/tm/dart/lib/utility/FeatureInitUtility.dart +0 -9
  811. package/project/.sdk/tm/dart/lib/utility/FetcherUtility.dart +0 -104
  812. package/project/.sdk/tm/dart/lib/utility/GraphqlUtility.dart +0 -162
  813. package/project/.sdk/tm/dart/lib/utility/MakeContextUtility.dart +0 -6
  814. package/project/.sdk/tm/dart/lib/utility/MakeErrorUtility.dart +0 -71
  815. package/project/.sdk/tm/dart/lib/utility/MakeFetchDefUtility.dart +0 -42
  816. package/project/.sdk/tm/dart/lib/utility/MakeOptionsUtility.dart +0 -233
  817. package/project/.sdk/tm/dart/lib/utility/MakePointUtility.dart +0 -130
  818. package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +0 -66
  819. package/project/.sdk/tm/dart/lib/utility/MakeResponseUtility.dart +0 -59
  820. package/project/.sdk/tm/dart/lib/utility/MakeResultUtility.dart +0 -49
  821. package/project/.sdk/tm/dart/lib/utility/MakeSpecUtility.dart +0 -77
  822. package/project/.sdk/tm/dart/lib/utility/MakeUrlUtility.dart +0 -51
  823. package/project/.sdk/tm/dart/lib/utility/ParamUtility.dart +0 -56
  824. package/project/.sdk/tm/dart/lib/utility/PrepareAuthUtility.dart +0 -46
  825. package/project/.sdk/tm/dart/lib/utility/PrepareBodyUtility.dart +0 -19
  826. package/project/.sdk/tm/dart/lib/utility/PrepareHeadersUtility.dart +0 -11
  827. package/project/.sdk/tm/dart/lib/utility/PrepareMethodUtility.dart +0 -30
  828. package/project/.sdk/tm/dart/lib/utility/PrepareParamsUtility.dart +0 -23
  829. package/project/.sdk/tm/dart/lib/utility/PreparePathUtility.dart +0 -9
  830. package/project/.sdk/tm/dart/lib/utility/PrepareQueryUtility.dart +0 -18
  831. package/project/.sdk/tm/dart/lib/utility/ResultBasicUtility.dart +0 -29
  832. package/project/.sdk/tm/dart/lib/utility/ResultBodyUtility.dart +0 -15
  833. package/project/.sdk/tm/dart/lib/utility/ResultHeadersUtility.dart +0 -18
  834. package/project/.sdk/tm/dart/lib/utility/StructUtility.dart +0 -127
  835. package/project/.sdk/tm/dart/lib/utility/TransformRequestUtility.dart +0 -28
  836. package/project/.sdk/tm/dart/lib/utility/TransformResponseUtility.dart +0 -44
  837. package/project/.sdk/tm/dart/lib/utility/Utility.dart +0 -239
  838. package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +0 -2462
  839. package/project/.sdk/tm/dart/src/feature/README.md +0 -3
  840. package/project/.sdk/tm/dart/src/feature/proxy/.gitkeep +0 -0
  841. package/project/.sdk/tm/dart/src/feature/ratelimit/.gitkeep +0 -0
  842. package/project/.sdk/tm/dart/src/feature/rbac/.gitkeep +0 -0
  843. package/project/.sdk/tm/dart/src/feature/retry/.gitkeep +0 -0
  844. package/project/.sdk/tm/dart/src/feature/streaming/.gitkeep +0 -0
  845. package/project/.sdk/tm/dart/src/feature/telemetry/.gitkeep +0 -0
  846. package/project/.sdk/tm/dart/src/feature/test/.gitkeep +0 -0
  847. package/project/.sdk/tm/dart/src/feature/timeout/.gitkeep +0 -0
  848. package/project/.sdk/tm/dart/test/custom_test.dart +0 -65
  849. package/project/.sdk/tm/dart/test/exists_test.dart +0 -12
  850. package/project/.sdk/tm/dart/test/feature/harness.dart +0 -329
  851. package/project/.sdk/tm/dart/test/feature_test.dart +0 -1193
  852. package/project/.sdk/tm/dart/test/harness.dart +0 -153
  853. package/project/.sdk/tm/dart/test/netsim_test.dart +0 -48
  854. package/project/.sdk/tm/dart/test/omni.dart +0 -520
  855. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +0 -143
  856. package/project/.sdk/tm/dart/test/pipeline_test.dart +0 -608
  857. package/project/.sdk/tm/dart/test/primary_test.dart +0 -476
  858. package/project/.sdk/tm/dart/test/sdk-test-control.json +0 -19
  859. package/project/.sdk/tm/dart/test/struct_test.dart +0 -468
  860. package/project/.sdk/tm/dart/test/utility.dart +0 -198
  861. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +0 -7
  862. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +0 -653
  863. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +0 -232
  864. package/project/.sdk/tm/lean/LICENSE +0 -21
  865. package/project/.sdk/tm/lean/Makefile +0 -32
  866. package/project/.sdk/tm/lean/VERSION +0 -1
  867. package/project/.sdk/tm/lean/src/SdkFeature.lean +0 -171
  868. package/project/.sdk/tm/lean/src/SdkFeatures.lean +0 -787
  869. package/project/.sdk/tm/lean/src/SdkJson.lean +0 -134
  870. package/project/.sdk/tm/lean/src/SdkRuntime.lean +0 -374
  871. package/project/.sdk/tm/lean/src/SdkUtility.lean +0 -809
  872. package/project/.sdk/tm/lean/src/VoxgigStruct.lean +0 -2880
  873. package/project/.sdk/tm/lean/src/Vregex.lean +0 -412
  874. package/project/.sdk/tm/lean/src/feature/README.md +0 -5
  875. package/project/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
  876. package/project/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
  877. package/project/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
  878. package/project/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
  879. package/project/.sdk/tm/lean/src/feature/cost/.gitkeep +0 -0
  880. package/project/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
  881. package/project/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
  882. package/project/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
  883. package/project/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
  884. package/project/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
  885. package/project/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
  886. package/project/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
  887. package/project/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
  888. package/project/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
  889. package/project/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
  890. package/project/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
  891. package/project/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
  892. package/project/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
  893. package/project/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
  894. package/project/.sdk/tm/lean/test/OmniResolver.lean +0 -358
  895. package/project/.sdk/tm/lean/test/OmniSmoke.lean +0 -174
  896. package/project/.sdk/tm/lean/test/StructCorpus.lean +0 -368
  897. package/project/.sdk/tm/lean/test/TFeature.lean +0 -281
  898. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +0 -227
  899. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +0 -997
  900. package/project/.sdk/tm/seneca-provider/CODE_OF_CONDUCT.md +0 -132
  901. package/project/.sdk/tm/seneca-provider/LICENSE +0 -21
  902. package/project/.sdk/tm/seneca-provider/Makefile +0 -15
  903. package/project/.sdk/tm/seneca-provider/src/tsconfig.json +0 -18
  904. package/project/.sdk/tm/seneca-provider/test/tsconfig.json +0 -16
  905. package/project/.sdk/tm/seneca-provider/tsfmt.json +0 -3
  906. package/project/.sdk/tm/zig/test/struct_runner.zig +0 -465
  907. /package/project/.sdk/tm/{dart/src/feature/audit → clojure/src/feature/secrets}/.gitkeep +0 -0
  908. /package/project/.sdk/tm/{dart/src/feature/base → csharp/src/feature/secrets}/.gitkeep +0 -0
  909. /package/project/.sdk/tm/{dart/src/feature/cache → elixir/src/feature/secrets}/.gitkeep +0 -0
  910. /package/project/.sdk/tm/{dart/src/feature/clienttrack → java/src/feature/secrets}/.gitkeep +0 -0
  911. /package/project/.sdk/tm/{dart/src/feature/cost → kotlin/src/feature/secrets}/.gitkeep +0 -0
  912. /package/project/.sdk/tm/{dart/src/feature/debug → perl/src/feature/secrets}/.gitkeep +0 -0
  913. /package/project/.sdk/tm/{dart/src/feature/idempotency → php/src/feature/secrets}/.gitkeep +0 -0
  914. /package/project/.sdk/tm/{dart/src/feature/log → rb/src/feature/secrets}/.gitkeep +0 -0
  915. /package/project/.sdk/tm/{dart/src/feature/metrics → rust/src/feature/secrets}/.gitkeep +0 -0
  916. /package/project/.sdk/tm/{dart/src/feature/netsim → scala/src/feature/secrets}/.gitkeep +0 -0
  917. /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
+ }