@voxgig/sdkgen 4.9.0 → 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/voxgig-sdkgen +1 -1
- package/dist/helpers/manifest.d.ts +2 -1
- package/dist/helpers/manifest.js +75 -1
- package/dist/helpers/manifest.js.map +1 -1
- package/dist/helpers/modelNames.d.ts +7 -0
- package/dist/helpers/modelNames.js +232 -0
- package/dist/helpers/modelNames.js.map +1 -0
- package/dist/helpers/naming.d.ts +2 -1
- package/dist/helpers/naming.js +45 -1
- package/dist/helpers/naming.js.map +1 -1
- package/dist/sdkgen.d.ts +3 -2
- package/dist/sdkgen.js +12 -3
- package/dist/sdkgen.js.map +1 -1
- package/dist/testkit.d.ts +2 -0
- package/dist/testkit.js +80 -24
- package/dist/testkit.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utility.js +17 -7
- package/dist/utility.js.map +1 -1
- package/package.json +1 -1
- package/project/.sdk/model/feature/secrets.aon +1001 -0
- package/project/.sdk/model/target/c.aon +15 -2
- package/project/.sdk/model/target/clojure.aon +10 -0
- package/project/.sdk/model/target/cpp.aon +18 -0
- package/project/.sdk/model/target/csharp.aon +5 -0
- package/project/.sdk/model/target/elixir.aon +6 -0
- package/project/.sdk/model/target/java.aon +5 -0
- package/project/.sdk/model/target/js.aon +5 -0
- package/project/.sdk/model/target/kotlin.aon +7 -0
- package/project/.sdk/model/target/lua.aon +17 -0
- package/project/.sdk/model/target/ocaml.aon +48 -5
- package/project/.sdk/model/target/perl.aon +5 -0
- package/project/.sdk/model/target/php.aon +5 -0
- package/project/.sdk/model/target/rb.aon +5 -0
- package/project/.sdk/model/target/rust.aon +5 -0
- package/project/.sdk/model/target/scala.aon +38 -2
- package/project/.sdk/model/target/swift.aon +10 -0
- package/project/.sdk/model/target/zig.aon +30 -4
- package/project/.sdk/src/cmp/c/Config_c.ts +338 -1
- package/project/.sdk/src/cmp/c/Main_c.ts +57 -2
- package/project/.sdk/src/cmp/c/Package_c.ts +12 -2
- package/project/.sdk/src/cmp/clojure/Config_clojure.ts +51 -4
- package/project/.sdk/src/cmp/clojure/Main_clojure.ts +43 -1
- package/project/.sdk/src/cmp/clojure/Package_clojure.ts +17 -1
- package/project/.sdk/src/cmp/clojure/featureextra_clojure.ts +130 -0
- package/project/.sdk/src/cmp/cpp/Config_cpp.ts +324 -2
- package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +2 -0
- package/project/.sdk/src/cmp/cpp/Main_cpp.ts +62 -4
- package/project/.sdk/src/cmp/cpp/Package_cpp.ts +10 -0
- package/project/.sdk/src/cmp/csharp/Config_csharp.ts +70 -0
- package/project/.sdk/src/cmp/csharp/Main_csharp.ts +9 -1
- package/project/.sdk/src/cmp/csharp/Package_csharp.ts +25 -1
- package/project/.sdk/src/cmp/elixir/Config_elixir.ts +68 -2
- package/project/.sdk/src/cmp/elixir/Main_elixir.ts +16 -0
- package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +14 -1
- package/project/.sdk/src/cmp/java/Config_java.ts +84 -2
- package/project/.sdk/src/cmp/java/Main_java.ts +10 -1
- package/project/.sdk/src/cmp/js/Config_js.ts +75 -8
- package/project/.sdk/src/cmp/js/Main_js.ts +66 -2
- package/project/.sdk/src/cmp/js/fragment/Config.data.fragment.js +18 -1
- package/project/.sdk/src/cmp/js/fragment/Config.fragment.js +18 -1
- package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +7 -0
- package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +63 -1
- package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +32 -2
- package/project/.sdk/src/cmp/lua/Config_lua.ts +88 -0
- package/project/.sdk/src/cmp/lua/Gitignore_lua.ts +4 -0
- package/project/.sdk/src/cmp/lua/Main_lua.ts +93 -3
- package/project/.sdk/src/cmp/lua/Package_lua.ts +60 -0
- package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +10 -0
- package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +183 -5
- package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +160 -3
- package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +25 -1
- package/project/.sdk/src/cmp/perl/Config_perl.ts +129 -3
- package/project/.sdk/src/cmp/perl/Main_perl.ts +41 -1
- package/project/.sdk/src/cmp/perl/Package_perl.ts +13 -1
- package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +1 -0
- package/project/.sdk/src/cmp/php/Config_php.ts +105 -1
- package/project/.sdk/src/cmp/php/Gitignore_php.ts +4 -2
- package/project/.sdk/src/cmp/php/Main_php.ts +16 -1
- package/project/.sdk/src/cmp/rb/Config_rb.ts +92 -2
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +11 -1
- package/project/.sdk/src/cmp/rb/Main_rb.ts +7 -1
- package/project/.sdk/src/cmp/rust/Main_rust.ts +99 -1
- package/project/.sdk/src/cmp/rust/Package_rust.ts +72 -6
- package/project/.sdk/src/cmp/scala/Config_scala.ts +44 -0
- package/project/.sdk/src/cmp/scala/Main_scala.ts +68 -1
- package/project/.sdk/src/cmp/swift/Config_swift.ts +62 -1
- package/project/.sdk/src/cmp/swift/Main_swift.ts +35 -1
- package/project/.sdk/src/cmp/swift/Package_swift.ts +81 -11
- package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +58 -44
- package/project/.sdk/src/cmp/swift/utility_swift.ts +22 -0
- package/project/.sdk/src/cmp/zig/Config_zig.ts +130 -9
- package/project/.sdk/src/cmp/zig/Main_zig.ts +208 -4
- package/project/.sdk/{tm/zig/build.zig → src/cmp/zig/fragment/Build.fragment.zig} +7 -0
- package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +25 -0
- package/project/.sdk/{tm/zig/root.zig → src/cmp/zig/fragment/Root.fragment.zig} +9 -0
- package/project/.sdk/tm/c/Makefile +58 -9
- package/project/.sdk/tm/c/core/sdk.h +10 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/capability.c +133 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/capability.h +39 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/catalog.c +83 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/catalog.h +48 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/config.c +413 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/config.h +24 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/depend.c +264 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/depend.h +29 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/env.c +220 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/env.h +19 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/export.c +97 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/export.h +19 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/graph.c +237 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/graph.h +17 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/host.c +1494 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/host.h +135 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/order.c +288 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/order.h +18 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/point.c +141 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/point.h +80 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/ref.c +170 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/ref.h +52 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/resolve.c +98 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/resolve.h +18 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/types.c +150 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/types.h +104 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/value.c +649 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/value.h +135 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/version.c +151 -0
- package/project/.sdk/tm/c/feature/secrets/plugin/version.h +34 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/aws.c +281 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/azuresecrets.c +207 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/boru.c +164 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/clock.c +75 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/doppler.c +141 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/encode.c +144 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/gcpsecrets.c +177 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/hashicorp.c +239 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/httpjson.c +599 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/infisical.c +165 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/onepassword.c +194 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/proc.c +233 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/secretspec.c +125 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/sekretoplugins.h +125 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/sha256.c +270 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/sigv4.c +382 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/support.h +153 -0
- package/project/.sdk/tm/c/feature/secrets/plugins/tls.c +420 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/internal.h +86 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/json.c +721 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/providers.c +813 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.c +944 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/sekreto.h +490 -0
- package/project/.sdk/tm/c/feature/secrets/sekreto/util.c +442 -0
- package/project/.sdk/tm/c/feature/secrets.c +797 -0
- package/project/.sdk/tm/c/feature/secrets.h +46 -0
- package/project/.sdk/tm/c/tests/feature/secrets/secrets_test.c +802 -0
- package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
- package/project/.sdk/tm/clojure/Makefile +3 -0
- package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +530 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/capability.clj +84 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/catalog.clj +44 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/config.clj +240 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/depend.clj +199 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/env.clj +111 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/export.clj +46 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/graph.clj +122 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/host.clj +1018 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/json.clj +106 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/order.clj +157 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/point.clj +77 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/ref.clj +92 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/resolve.clj +46 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/types.clj +177 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin/version.clj +90 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/plugin.clj +40 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/addr.clj +111 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/chain.clj +297 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/core.clj +192 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/json.clj +261 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/aws.clj +165 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/azuresecrets.clj +111 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/boru.clj +107 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/doppler.clj +61 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/gcpsecrets.clj +88 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/hashicorp.clj +115 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/httpjson.clj +214 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/infisical.clj +80 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/onepassword.clj +93 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/proc.clj +63 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/secretspec.clj +99 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/plugins/sigv4.clj +142 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/provider.clj +25 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto/providers.clj +196 -0
- package/project/.sdk/tm/clojure/feature/secrets/voxgig/sekreto.clj +113 -0
- package/project/.sdk/tm/clojure/src/sdk/core.clj +9 -0
- package/project/.sdk/tm/clojure/src/sdk/features.clj +13 -1
- package/project/.sdk/tm/clojure/test/sdk/test/feature/secrets.clj +581 -0
- package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +103 -14
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
- package/project/.sdk/tm/cpp/Makefile +48 -4
- package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.cpp +121 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/capability.hpp +41 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.cpp +60 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/catalog.hpp +66 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/config.cpp +376 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/config.hpp +29 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.cpp +230 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/depend.hpp +31 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/env.cpp +205 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/env.hpp +25 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/export.cpp +84 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/export.hpp +24 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.cpp +222 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/graph.hpp +21 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/host.cpp +1200 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/host.hpp +250 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/order.cpp +250 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/order.hpp +22 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/point.cpp +110 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/point.hpp +79 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.cpp +136 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/ref.hpp +60 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.cpp +82 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/resolve.hpp +25 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/types.cpp +90 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/types.hpp +65 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/value.cpp +491 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/value.hpp +120 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/version.cpp +143 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugin/version.hpp +36 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.cpp +248 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Aws.hpp +30 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.cpp +149 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Azuresecrets.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.cpp +117 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Boru.hpp +27 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.cpp +180 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Crypto.hpp +52 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.cpp +87 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Doppler.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.cpp +121 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Gcpsecrets.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.cpp +153 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Hashicorp.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.cpp +666 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Httpjson.hpp +160 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.cpp +123 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Infisical.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.cpp +125 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Onepassword.hpp +23 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.cpp +223 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Proc.hpp +47 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.cpp +104 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Secretspec.hpp +27 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.cpp +242 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Sigv4.hpp +58 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.cpp +260 -0
- package/project/.sdk/tm/cpp/feature/secrets/plugins/Tls.hpp +47 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.cpp +476 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Json.hpp +89 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.cpp +312 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Provider.hpp +263 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.cpp +354 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Providers.hpp +111 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.cpp +613 -0
- package/project/.sdk/tm/cpp/feature/secrets/sekreto/Sekreto.hpp +227 -0
- package/project/.sdk/tm/cpp/feature/secrets.hpp +745 -0
- package/project/.sdk/tm/cpp/test/feature/secrets/secrets_test.cpp +808 -0
- package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
- package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
- package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
- package/project/.sdk/tm/csharp/feature/SecretsFeature.cs +915 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Capability.cs +196 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Catalog.cs +70 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Config.cs +505 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Definition.cs +52 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Depend.cs +285 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Entry.cs +55 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Env.cs +228 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Export.cs +102 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Graph.cs +256 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Host.cs +1379 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Inst.cs +177 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Json.cs +326 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Order.cs +295 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Plugin.cs +113 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Point.cs +177 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Refs.cs +198 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Resolve.cs +95 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Types.cs +351 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugin/Version.cs +196 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Aws.cs +325 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/AzureSecrets.cs +195 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Boru.cs +192 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Child.cs +75 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Doppler.cs +112 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/GcpSecrets.cs +167 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Hashicorp.cs +221 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/HttpJson.cs +213 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Infisical.cs +155 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/OnePassword.cs +169 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/SecretSpec.cs +172 -0
- package/project/.sdk/tm/csharp/feature/secrets/plugins/Sigv4.cs +240 -0
- package/project/.sdk/tm/csharp/feature/secrets/sekreto/Json.cs +192 -0
- package/project/.sdk/tm/csharp/feature/secrets/sekreto/Providers.cs +503 -0
- package/project/.sdk/tm/csharp/feature/secrets/sekreto/Sekreto.cs +775 -0
- package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +1787 -0
- package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
- package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
- package/project/.sdk/tm/csharp/utility/MakeOptions.cs +10 -0
- package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/capability.ex +118 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/catalog.ex +56 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/config.ex +320 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/depend.ex +205 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/env.ex +166 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/error.ex +13 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/export.ex +73 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/graph.ex +185 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/host.ex +1182 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/inst.ex +139 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/json.ex +132 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/order.ex +179 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/point.ex +99 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/ref.ex +129 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/resolve.ex +59 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/types.ex +190 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/version.ex +136 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/plugin/voxgig_plugin.ex +42 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/json.ex +368 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/aws.ex +257 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/azuresecrets.ex +160 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/boru.ex +127 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/doppler.ex +96 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/gcpsecrets.ex +124 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/hashicorp.ex +162 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/http.ex +627 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/httpjson.ex +134 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/infisical.ex +125 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/onepassword.ex +152 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/proc.ex +80 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/secretspec.ex +101 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/plugins/sigv4.ex +176 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/provider.ex +67 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/providers.ex +536 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets/sekreto/sekreto.ex +662 -0
- package/project/.sdk/tm/elixir/lib/projectname/feature/secrets.ex +839 -0
- package/project/.sdk/tm/elixir/test/feature/secrets/secrets_test.exs +1113 -0
- package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
- package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
- package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +2 -2
- package/project/.sdk/tm/go/feature/secrets_feature.go +48 -10
- package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +239 -0
- package/project/.sdk/tm/go/test/omni/omni.go +2 -2
- package/project/.sdk/tm/go/test/omni/util.go +2 -2
- package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
- package/project/.sdk/tm/java/feature/SecretsFeature.java +791 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Capability.java +181 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Catalog.java +64 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Config.java +433 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Definition.java +54 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Depend.java +292 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Entry.java +49 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Env.java +204 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Export.java +93 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Graph.java +244 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Host.java +1196 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Inst.java +173 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Json.java +339 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Order.java +274 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Plugin.java +94 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/PluginException.java +37 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Point.java +172 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Refs.java +171 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Resolve.java +89 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Types.java +232 -0
- package/project/.sdk/tm/java/feature/secrets/plugin/Version.java +198 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/Addr.java +142 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/Builtins.java +229 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/Json.java +302 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/Provider.java +21 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/Sekreto.java +698 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/Support.java +100 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Aws.java +294 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Azuresecrets.java +164 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Boru.java +161 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Doppler.java +103 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Gcpsecrets.java +143 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Hashicorp.java +186 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Httpjson.java +192 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Infisical.java +139 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Onepassword.java +143 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Proc.java +80 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Secretspec.java +138 -0
- package/project/.sdk/tm/java/feature/secrets/sekreto/plugins/Sigv4.java +243 -0
- package/project/.sdk/tm/java/test/feature/secrets/SecretsFeatureTest.java +1050 -0
- package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
- package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
- package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
- package/project/.sdk/tm/java/utility/MakeOptions.java +7 -0
- package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
- package/project/.sdk/tm/js/src/feature/secrets/SecretsFeature.js +454 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/capability.js +119 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/catalog.js +42 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/config.js +323 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/depend.js +196 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/env.js +120 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/export.js +48 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/graph.js +150 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/host.js +949 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/index.js +35 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/order.js +165 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/point.js +94 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/ref.js +106 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/resolve.js +59 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/types.js +79 -0
- package/project/.sdk/tm/js/src/feature/secrets/plugin/version.js +100 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/Sekreto.js +574 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/index.js +56 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/aws.js +188 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/azuresecrets.js +135 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/boru.js +128 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/doppler.js +67 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/gcpsecrets.js +115 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/hashicorp.js +139 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/httpjson.js +93 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/infisical.js +99 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/onepassword.js +111 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/secretspec.js +105 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/plugins/sigv4.js +157 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/addr.js +119 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/builtin.js +39 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/dotenv.js +40 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/env.js +21 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/file.js +42 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/memory.js +18 -0
- package/project/.sdk/tm/js/src/feature/secrets/sekreto/provider/support.js +151 -0
- package/project/.sdk/tm/js/src/utility/StructUtility.js +1 -1
- package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +1019 -0
- package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
- package/project/.sdk/tm/js/test/vendor/omni/runner.js +1 -1
- package/project/.sdk/tm/js/test/vendor/omni/util.js +1 -1
- package/project/.sdk/tm/kotlin/feature/SecretsFeature.kt +684 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Capability.kt +117 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Catalog.kt +40 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Config.kt +322 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Depend.kt +227 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Env.kt +163 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Export.kt +57 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Graph.kt +179 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Host.kt +1131 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Json.kt +241 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Order.kt +180 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Plugin.kt +64 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Point.kt +124 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Refs.kt +125 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Resolve.kt +66 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Types.kt +171 -0
- package/project/.sdk/tm/kotlin/feature/secrets/plugin/Version.kt +132 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Json.kt +359 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Provider.kt +21 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Providers.kt +308 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Sekreto.kt +525 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Spec.kt +126 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/Support.kt +205 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Aws.kt +251 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Azuresecrets.kt +145 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Boru.kt +130 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Doppler.kt +77 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Gcpsecrets.kt +119 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Hashicorp.kt +156 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Httpjson.kt +219 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Infisical.kt +114 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Onepassword.kt +114 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Secretspec.kt +118 -0
- package/project/.sdk/tm/kotlin/feature/secrets/sekreto/plugins/Sigv4.kt +220 -0
- package/project/.sdk/tm/kotlin/test/feature/secrets/SecretsTest.kt +1217 -0
- package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
- package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
- package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
- package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
- package/project/.sdk/tm/lua/Makefile +15 -4
- package/project/.sdk/tm/lua/feature/secrets/native/sekretonet.c +806 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/capability.lua +135 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/catalog.lua +63 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/config.lua +361 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/depend.lua +232 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/env.lua +168 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/export.lua +66 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/graph.lua +194 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/host.lua +1190 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/json.lua +169 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/order.lua +207 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/point.lua +106 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/ref.lua +115 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/resolve.lua +78 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/types.lua +275 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin/version.lua +131 -0
- package/project/.sdk/tm/lua/feature/secrets/plugin.lua +76 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/addr.lua +124 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/err.lua +47 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/name.lua +315 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/aws.lua +228 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/azuresecrets.lua +137 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/boru.lua +124 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/crypto.lua +212 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/doppler.lua +89 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/gcpsecrets.lua +129 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/hashicorp.lua +154 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/httpjson.lua +248 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/infisical.lua +113 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/json.lua +449 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/net.lua +198 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/onepassword.lua +126 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/secretspec.lua +93 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/sigv4.lua +269 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/plugins/support.lua +146 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto/providers.lua +346 -0
- package/project/.sdk/tm/lua/feature/secrets/sekreto.lua +479 -0
- package/project/.sdk/tm/lua/feature/secrets_feature.lua +690 -0
- package/project/.sdk/tm/lua/test/extend_test.lua +105 -0
- package/project/.sdk/tm/lua/test/feature/secrets/secrets_feature_test.lua +862 -0
- package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
- package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
- package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
- package/project/.sdk/tm/ocaml/Makefile +52 -8
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/capability.ml +106 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/catalog.ml +43 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/config.ml +349 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/defs.ml +143 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/depend.ml +217 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/env.ml +197 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/export.ml +89 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/graph.ml +227 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/host.ml +1112 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/order.ml +202 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/point.ml +138 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/ref.ml +126 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/resolve.ml +62 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/types.ml +97 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/value.ml +387 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugin/version.ml +139 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/aws.ml +171 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/azuresecrets.ml +116 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/boru.ml +95 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/crypto.ml +149 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/doppler.ml +61 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/gcpsecrets.ml +93 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/hashicorp.ml +120 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/http.ml +421 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/httpjson.ml +66 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/infisical.ml +85 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/onepassword.ml +112 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/runcmd.ml +97 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/secretspec.ml +68 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/sigv4.ml +259 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls.ml +44 -0
- package/project/.sdk/tm/ocaml/feature/secrets/plugins/tls_stubs.c +358 -0
- package/project/.sdk/tm/ocaml/feature/secrets/sekreto/json.ml +376 -0
- package/project/.sdk/tm/ocaml/feature/secrets/sekreto/provider.ml +647 -0
- package/project/.sdk/tm/ocaml/feature/secrets/sekreto/secret.ml +299 -0
- package/project/.sdk/tm/ocaml/feature/secrets/sekreto/sekreto.ml +347 -0
- package/project/.sdk/tm/ocaml/feature/secrets_feature.ml +453 -0
- package/project/.sdk/tm/ocaml/test/feature/secrets/t_secrets.ml +670 -0
- package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
- package/project/.sdk/tm/perl/Makefile +6 -1
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Capability.pm +141 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Catalog.pm +65 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Config.pm +346 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Depend.pm +216 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Env.pm +176 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Export.pm +59 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Graph.pm +157 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Host.pm +1139 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Order.pm +187 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Point.pm +100 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Ref.pm +119 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Resolve.pm +71 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Types.pm +251 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin/Version.pm +122 -0
- package/project/.sdk/tm/perl/feature/secrets/plugin/Voxgig/Plugin.pm +70 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Aws.pm +263 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Azuresecrets.pm +159 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Boru.pm +180 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Doppler.pm +92 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Gcpsecrets.pm +138 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Hashicorp.pm +213 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Httpjson.pm +173 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Infisical.pm +132 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Onepassword.pm +132 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Proc.pm +102 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Secretspec.pm +132 -0
- package/project/.sdk/tm/perl/feature/secrets/plugins/Voxgig/Sekreto/Plugins/Sigv4.pm +190 -0
- package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Addr.pm +124 -0
- package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto/Providers.pm +301 -0
- package/project/.sdk/tm/perl/feature/secrets/sekreto/Voxgig/Sekreto.pm +605 -0
- package/project/.sdk/tm/perl/feature/secrets_feature.pm +696 -0
- package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
- package/project/.sdk/tm/perl/t/feature/secrets/secrets.t +1004 -0
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
- package/project/.sdk/tm/php/feature/SecretsFeature.php +694 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Capability.php +226 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Catalog.php +75 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Config.php +444 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Depend.php +262 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Env.php +202 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Export.php +74 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Graph.php +195 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Host.php +1514 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Order.php +260 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Point.php +129 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Ref.php +169 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Resolve.php +79 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Types.php +348 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/Version.php +163 -0
- package/project/.sdk/tm/php/feature/secrets/plugin/plugin.php +40 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/aws.php +274 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/azuresecrets.php +170 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/boru.php +163 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/doppler.php +106 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/gcpsecrets.php +144 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/hashicorp.php +194 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/httpjson.php +113 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/infisical.php +131 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/onepassword.php +150 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/runcmd.php +101 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/secretspec.php +146 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/plugins/sigv4.php +161 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/src/Addr.php +129 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/src/Providers.php +322 -0
- package/project/.sdk/tm/php/feature/secrets/sekreto/src/Sekreto.php +724 -0
- package/project/.sdk/tm/php/test/feature/secrets/SecretsTest.php +1165 -0
- package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
- package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +2 -2
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +28 -6
- package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
- package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +114 -0
- package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
- package/project/.sdk/tm/py/test/voxgig_omni/runner.py +1 -1
- package/project/.sdk/tm/py/test/voxgig_omni/util.py +1 -1
- package/project/.sdk/tm/rb/Makefile +7 -1
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/capability.rb +118 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/catalog.rb +55 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/config.rb +315 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/depend.rb +197 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/env.rb +143 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/export.rb +52 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/graph.rb +147 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/host.rb +1079 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/order.rb +169 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/point.rb +93 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/ref.rb +112 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/resolve.rb +56 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/types.rb +99 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin/version.rb +106 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_plugin.rb +24 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/addr.rb +111 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/aws.rb +200 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/azuresecrets.rb +130 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/boru.rb +121 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/doppler.rb +66 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.rb +107 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/hashicorp.rb +137 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/httpjson.rb +136 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/infisical.rb +97 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/onepassword.rb +104 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/secretspec.rb +113 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/plugins/sigv4.rb +127 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/providers.rb +210 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto/sekreto.rb +465 -0
- package/project/.sdk/tm/rb/feature/secrets/voxgig_sekreto.rb +30 -0
- package/project/.sdk/tm/rb/feature/secrets_feature.rb +583 -0
- package/project/.sdk/tm/rb/test/feature/secrets/secrets_feature_test.rb +935 -0
- package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
- package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
- package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
- package/project/.sdk/tm/rust/feature/secrets/plugin/capability.rs +130 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/catalog.rs +114 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/config.rs +416 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/depend.rs +245 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/env.rs +200 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/export.rs +90 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/graph.rs +231 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/host.rs +1565 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/mod.rs +18 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/order.rs +226 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/point.rs +137 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/refs.rs +148 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/resolve.rs +83 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/types.rs +132 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/value.rs +433 -0
- package/project/.sdk/tm/rust/feature/secrets/plugin/version.rs +174 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/aws/crypto.rs +146 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/aws/sigv4.rs +230 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/aws.rs +328 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/azuresecrets.rs +184 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/boru.rs +172 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/doppler.rs +102 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/gcpsecrets.rs +153 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/hashicorp.rs +228 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/http.rs +537 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson/json.rs +300 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/httpjson.rs +137 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/infisical.rs +148 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/onepassword.rs +165 -0
- package/project/.sdk/tm/rust/feature/secrets/plugins/secretspec.rs +150 -0
- package/project/.sdk/tm/rust/feature/secrets/sekreto/addr.rs +144 -0
- package/project/.sdk/tm/rust/feature/secrets/sekreto/mod.rs +51 -0
- package/project/.sdk/tm/rust/feature/secrets/sekreto/providers.rs +637 -0
- package/project/.sdk/tm/rust/feature/secrets/sekreto/sekreto.rs +677 -0
- package/project/.sdk/tm/rust/feature/secrets.rs +984 -0
- package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +1605 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
- package/project/.sdk/tm/scala/Makefile +8 -3
- package/project/.sdk/tm/scala/feature/SecretsFeature.scala +578 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Capability.scala +96 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Config.scala +270 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Depend.scala +216 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Env.scala +144 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Export.scala +59 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Graph.scala +149 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Host.scala +1089 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Json.scala +156 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Order.scala +169 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Plugin.scala +47 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Point.scala +107 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Refs.scala +131 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Resolve.scala +53 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Types.scala +110 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Value.scala +157 -0
- package/project/.sdk/tm/scala/feature/secrets/plugin/Version.scala +136 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Json.scala +302 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Provider.scala +20 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Providers.scala +281 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Sekreto.scala +473 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Spec.scala +123 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/Support.scala +216 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Aws.scala +225 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Azuresecrets.scala +124 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Boru.scala +104 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Doppler.scala +68 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Gcpsecrets.scala +97 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Hashicorp.scala +131 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Httpjson.scala +209 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Infisical.scala +98 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Onepassword.scala +90 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Secretspec.scala +95 -0
- package/project/.sdk/tm/scala/feature/secrets/sekreto/plugins/Sigv4.scala +214 -0
- package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +1042 -0
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
- package/project/.sdk/tm/scala/utility/Make.scala +7 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/SecretsFeature.swift +669 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Capability.swift +98 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Catalog.swift +87 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Config.swift +298 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Depend.swift +209 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Env.swift +191 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Export.swift +63 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Graph.swift +158 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Host.swift +1141 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Json.swift +192 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Order.swift +183 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Point.swift +130 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Refs.swift +141 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Resolve.swift +59 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Types.swift +125 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Value.swift +198 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugin/Version.swift +139 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Aws.swift +271 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Azuresecrets.swift +173 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Boru.swift +139 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Crypto.swift +198 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Doppler.swift +86 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Gcpsecrets.swift +129 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Hashicorp.swift +175 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Httpjson.swift +310 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Infisical.swift +140 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Onepassword.swift +118 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Proc.swift +105 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Secretspec.swift +111 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/plugins/Sigv4.swift +297 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Addr.swift +120 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Json.swift +452 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Provider.swift +25 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Providers.swift +689 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/secrets/sekreto/Sekreto.swift +755 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +9 -0
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +30 -0
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/feature/secrets/SecretsFeatureTest.swift +1030 -0
- package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
- package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
- package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
- package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +35 -12
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
- package/project/.sdk/tm/ts/src/utility/StructUtility.ts +1 -1
- package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +73 -0
- package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
- package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
- package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
- package/project/.sdk/tm/zig/feature/secrets/plugin/capability.zig +137 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/catalog.zig +90 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/config.zig +346 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/depend.zig +244 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/env.zig +201 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/export.zig +83 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/graph.zig +212 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/host.zig +1224 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/inst.zig +126 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/order.zig +228 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/plugin.zig +34 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/point.zig +166 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/ref.zig +147 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/resolve.zig +74 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/types.zig +140 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/value.zig +662 -0
- package/project/.sdk/tm/zig/feature/secrets/plugin/version.zig +139 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/aws.zig +294 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/azuresecrets.zig +222 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/boru.zig +188 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/doppler.zig +135 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/gcpsecrets.zig +170 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/hashicorp.zig +242 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/httpjson.zig +535 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/infisical.zig +167 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/onepassword.zig +202 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/secretspec.zig +160 -0
- package/project/.sdk/tm/zig/feature/secrets/plugins/sigv4.zig +336 -0
- package/project/.sdk/tm/zig/feature/secrets/sekreto/addr.zig +148 -0
- package/project/.sdk/tm/zig/feature/secrets/sekreto/builtins.zig +259 -0
- package/project/.sdk/tm/zig/feature/secrets/sekreto/provider.zig +440 -0
- package/project/.sdk/tm/zig/feature/secrets/sekreto/sekreto.zig +944 -0
- package/project/.sdk/tm/zig/feature/secrets.zig +854 -0
- package/project/.sdk/tm/zig/test/feature/secrets/secrets_test.zig +891 -0
- package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +2 -2
- package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +2 -2
- package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +2 -2
- package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +2 -2
- package/project/sdkgen-package.json +1 -4
- package/src/helpers/manifest.ts +81 -1
- package/src/helpers/modelNames.ts +284 -0
- package/src/helpers/naming.ts +45 -1
- package/src/sdkgen.ts +11 -1
- package/src/testkit.ts +115 -26
- package/src/utility.ts +17 -7
- package/project/.sdk/model/target/dart.aon +0 -58
- package/project/.sdk/model/target/lean.aon +0 -91
- package/project/.sdk/model/target/seneca-provider.aon +0 -120
- package/project/.sdk/src/cmp/dart/Config_dart.ts +0 -176
- package/project/.sdk/src/cmp/dart/EntityBase_dart.ts +0 -34
- package/project/.sdk/src/cmp/dart/EntityOperation_dart.ts +0 -43
- package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +0 -207
- package/project/.sdk/src/cmp/dart/Entity_dart.ts +0 -87
- package/project/.sdk/src/cmp/dart/Gitignore_dart.ts +0 -34
- package/project/.sdk/src/cmp/dart/MainEntity_dart.ts +0 -33
- package/project/.sdk/src/cmp/dart/Main_dart.ts +0 -106
- package/project/.sdk/src/cmp/dart/Package_dart.ts +0 -82
- package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +0 -177
- package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +0 -238
- package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +0 -53
- package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +0 -152
- package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +0 -59
- package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +0 -65
- package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +0 -151
- package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +0 -63
- package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +0 -225
- package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +0 -397
- package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +0 -24
- package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +0 -106
- package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +0 -78
- package/project/.sdk/src/cmp/dart/SdkError_dart.ts +0 -42
- package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +0 -516
- package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +0 -628
- package/project/.sdk/src/cmp/dart/Test_dart.ts +0 -116
- package/project/.sdk/src/cmp/dart/fragment/Config.data.fragment.dart +0 -79
- package/project/.sdk/src/cmp/dart/fragment/Config.fragment.dart +0 -51
- package/project/.sdk/src/cmp/dart/fragment/Direct.test.fragment.dart +0 -25
- package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +0 -29
- package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +0 -28
- package/project/.sdk/src/cmp/dart/fragment/EntityBase.fragment.dart +0 -302
- package/project/.sdk/src/cmp/dart/fragment/EntityCreateOp.fragment.dart +0 -98
- package/project/.sdk/src/cmp/dart/fragment/EntityListOp.fragment.dart +0 -90
- package/project/.sdk/src/cmp/dart/fragment/EntityLoadOp.fragment.dart +0 -102
- package/project/.sdk/src/cmp/dart/fragment/EntityRemoveOp.fragment.dart +0 -108
- package/project/.sdk/src/cmp/dart/fragment/EntityUpdateOp.fragment.dart +0 -102
- package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +0 -338
- package/project/.sdk/src/cmp/dart/fragment/SdkError.fragment.dart +0 -26
- package/project/.sdk/src/cmp/dart/tsconfig.json +0 -15
- package/project/.sdk/src/cmp/dart/utility_dart.ts +0 -155
- package/project/.sdk/src/cmp/lean/Config_lean.ts +0 -93
- package/project/.sdk/src/cmp/lean/Entity_lean.ts +0 -9
- package/project/.sdk/src/cmp/lean/Gitignore_lean.ts +0 -18
- package/project/.sdk/src/cmp/lean/Main_lean.ts +0 -120
- package/project/.sdk/src/cmp/lean/Package_lean.ts +0 -93
- package/project/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +0 -29
- package/project/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +0 -19
- package/project/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +0 -25
- package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +0 -39
- package/project/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +0 -25
- package/project/.sdk/src/cmp/lean/ReadmeModel_lean.ts +0 -24
- package/project/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +0 -22
- package/project/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +0 -50
- package/project/.sdk/src/cmp/lean/ReadmeRef_lean.ts +0 -40
- package/project/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +0 -16
- package/project/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +0 -23
- package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +0 -19
- package/project/.sdk/src/cmp/lean/Test_lean.ts +0 -261
- package/project/.sdk/src/cmp/lean/utility_lean.ts +0 -129
- package/project/.sdk/src/cmp/seneca-provider/Extras_seneca-provider.ts +0 -4080
- package/project/.sdk/src/cmp/seneca-provider/Gitignore_seneca-provider.ts +0 -161
- package/project/.sdk/src/cmp/seneca-provider/Main_seneca-provider.ts +0 -1011
- package/project/.sdk/tm/dart/LICENSE +0 -22
- package/project/.sdk/tm/dart/Makefile +0 -50
- package/project/.sdk/tm/dart/lib/Context.dart +0 -150
- package/project/.sdk/tm/dart/lib/Control.dart +0 -15
- package/project/.sdk/tm/dart/lib/Operation.dart +0 -31
- package/project/.sdk/tm/dart/lib/Point.dart +0 -51
- package/project/.sdk/tm/dart/lib/Response.dart +0 -32
- package/project/.sdk/tm/dart/lib/Result.dart +0 -39
- package/project/.sdk/tm/dart/lib/Spec.dart +0 -49
- package/project/.sdk/tm/dart/lib/feature/audit/AuditFeature.dart +0 -103
- package/project/.sdk/tm/dart/lib/feature/base/BaseFeature.dart +0 -76
- package/project/.sdk/tm/dart/lib/feature/cache/CacheFeature.dart +0 -152
- package/project/.sdk/tm/dart/lib/feature/clienttrack/ClienttrackFeature.dart +0 -104
- package/project/.sdk/tm/dart/lib/feature/cost/CostFeature.dart +0 -446
- package/project/.sdk/tm/dart/lib/feature/debug/DebugFeature.dart +0 -153
- package/project/.sdk/tm/dart/lib/feature/idempotency/IdempotencyFeature.dart +0 -92
- package/project/.sdk/tm/dart/lib/feature/log/LogFeature.dart +0 -85
- package/project/.sdk/tm/dart/lib/feature/metrics/MetricsFeature.dart +0 -103
- package/project/.sdk/tm/dart/lib/feature/netsim/NetsimFeature.dart +0 -186
- package/project/.sdk/tm/dart/lib/feature/paging/PagingFeature.dart +0 -240
- package/project/.sdk/tm/dart/lib/feature/proxy/ProxyFeature.dart +0 -118
- package/project/.sdk/tm/dart/lib/feature/ratelimit/RatelimitFeature.dart +0 -103
- package/project/.sdk/tm/dart/lib/feature/rbac/RbacFeature.dart +0 -121
- package/project/.sdk/tm/dart/lib/feature/retry/RetryFeature.dart +0 -155
- package/project/.sdk/tm/dart/lib/feature/streaming/StreamingFeature.dart +0 -97
- package/project/.sdk/tm/dart/lib/feature/telemetry/TelemetryFeature.dart +0 -136
- package/project/.sdk/tm/dart/lib/feature/test/TestFeature.dart +0 -328
- package/project/.sdk/tm/dart/lib/feature/timeout/TimeoutFeature.dart +0 -104
- package/project/.sdk/tm/dart/lib/utility/CleanUtility.dart +0 -12
- package/project/.sdk/tm/dart/lib/utility/DoneUtility.dart +0 -18
- package/project/.sdk/tm/dart/lib/utility/ErrUtility.dart +0 -46
- package/project/.sdk/tm/dart/lib/utility/FeatureAddUtility.dart +0 -35
- package/project/.sdk/tm/dart/lib/utility/FeatureHookUtility.dart +0 -20
- package/project/.sdk/tm/dart/lib/utility/FeatureInitUtility.dart +0 -9
- package/project/.sdk/tm/dart/lib/utility/FetcherUtility.dart +0 -104
- package/project/.sdk/tm/dart/lib/utility/GraphqlUtility.dart +0 -162
- package/project/.sdk/tm/dart/lib/utility/MakeContextUtility.dart +0 -6
- package/project/.sdk/tm/dart/lib/utility/MakeErrorUtility.dart +0 -71
- package/project/.sdk/tm/dart/lib/utility/MakeFetchDefUtility.dart +0 -42
- package/project/.sdk/tm/dart/lib/utility/MakeOptionsUtility.dart +0 -233
- package/project/.sdk/tm/dart/lib/utility/MakePointUtility.dart +0 -130
- package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +0 -66
- package/project/.sdk/tm/dart/lib/utility/MakeResponseUtility.dart +0 -59
- package/project/.sdk/tm/dart/lib/utility/MakeResultUtility.dart +0 -49
- package/project/.sdk/tm/dart/lib/utility/MakeSpecUtility.dart +0 -77
- package/project/.sdk/tm/dart/lib/utility/MakeUrlUtility.dart +0 -51
- package/project/.sdk/tm/dart/lib/utility/ParamUtility.dart +0 -56
- package/project/.sdk/tm/dart/lib/utility/PrepareAuthUtility.dart +0 -46
- package/project/.sdk/tm/dart/lib/utility/PrepareBodyUtility.dart +0 -19
- package/project/.sdk/tm/dart/lib/utility/PrepareHeadersUtility.dart +0 -11
- package/project/.sdk/tm/dart/lib/utility/PrepareMethodUtility.dart +0 -30
- package/project/.sdk/tm/dart/lib/utility/PrepareParamsUtility.dart +0 -23
- package/project/.sdk/tm/dart/lib/utility/PreparePathUtility.dart +0 -9
- package/project/.sdk/tm/dart/lib/utility/PrepareQueryUtility.dart +0 -18
- package/project/.sdk/tm/dart/lib/utility/ResultBasicUtility.dart +0 -29
- package/project/.sdk/tm/dart/lib/utility/ResultBodyUtility.dart +0 -15
- package/project/.sdk/tm/dart/lib/utility/ResultHeadersUtility.dart +0 -18
- package/project/.sdk/tm/dart/lib/utility/StructUtility.dart +0 -127
- package/project/.sdk/tm/dart/lib/utility/TransformRequestUtility.dart +0 -28
- package/project/.sdk/tm/dart/lib/utility/TransformResponseUtility.dart +0 -44
- package/project/.sdk/tm/dart/lib/utility/Utility.dart +0 -239
- package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +0 -2462
- package/project/.sdk/tm/dart/src/feature/README.md +0 -3
- package/project/.sdk/tm/dart/src/feature/telemetry/.gitkeep +0 -0
- package/project/.sdk/tm/dart/src/feature/test/.gitkeep +0 -0
- package/project/.sdk/tm/dart/src/feature/timeout/.gitkeep +0 -0
- package/project/.sdk/tm/dart/test/custom_test.dart +0 -65
- package/project/.sdk/tm/dart/test/exists_test.dart +0 -12
- package/project/.sdk/tm/dart/test/feature/harness.dart +0 -329
- package/project/.sdk/tm/dart/test/feature_test.dart +0 -1193
- package/project/.sdk/tm/dart/test/harness.dart +0 -153
- package/project/.sdk/tm/dart/test/netsim_test.dart +0 -48
- package/project/.sdk/tm/dart/test/omni.dart +0 -520
- package/project/.sdk/tm/dart/test/omni_smoke_test.dart +0 -143
- package/project/.sdk/tm/dart/test/pipeline_test.dart +0 -608
- package/project/.sdk/tm/dart/test/primary_test.dart +0 -476
- package/project/.sdk/tm/dart/test/sdk-test-control.json +0 -19
- package/project/.sdk/tm/dart/test/struct_test.dart +0 -468
- package/project/.sdk/tm/dart/test/utility.dart +0 -198
- package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +0 -7
- package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +0 -653
- package/project/.sdk/tm/dart/test/vendor/omni/util.dart +0 -232
- package/project/.sdk/tm/lean/LICENSE +0 -21
- package/project/.sdk/tm/lean/Makefile +0 -32
- package/project/.sdk/tm/lean/VERSION +0 -1
- package/project/.sdk/tm/lean/src/SdkFeature.lean +0 -171
- package/project/.sdk/tm/lean/src/SdkFeatures.lean +0 -787
- package/project/.sdk/tm/lean/src/SdkJson.lean +0 -134
- package/project/.sdk/tm/lean/src/SdkRuntime.lean +0 -374
- package/project/.sdk/tm/lean/src/SdkUtility.lean +0 -809
- package/project/.sdk/tm/lean/src/VoxgigStruct.lean +0 -2880
- package/project/.sdk/tm/lean/src/Vregex.lean +0 -412
- package/project/.sdk/tm/lean/src/feature/README.md +0 -5
- package/project/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/cost/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
- package/project/.sdk/tm/lean/test/OmniResolver.lean +0 -358
- package/project/.sdk/tm/lean/test/OmniSmoke.lean +0 -174
- package/project/.sdk/tm/lean/test/StructCorpus.lean +0 -368
- package/project/.sdk/tm/lean/test/TFeature.lean +0 -281
- package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +0 -227
- package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +0 -997
- package/project/.sdk/tm/seneca-provider/CODE_OF_CONDUCT.md +0 -132
- package/project/.sdk/tm/seneca-provider/LICENSE +0 -21
- package/project/.sdk/tm/seneca-provider/Makefile +0 -15
- package/project/.sdk/tm/seneca-provider/src/tsconfig.json +0 -18
- package/project/.sdk/tm/seneca-provider/test/tsconfig.json +0 -16
- package/project/.sdk/tm/seneca-provider/tsfmt.json +0 -3
- /package/project/.sdk/tm/{dart/src/feature/audit → c/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/base → clojure/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/cache → cpp/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/clienttrack → csharp/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/cost → elixir/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/debug → java/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/idempotency → kotlin/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/log → lua/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/metrics → ocaml/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/netsim → perl/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/paging → php/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/proxy → rb/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/ratelimit → rust/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/rbac → scala/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/retry → swift/src/feature/secrets}/.gitkeep +0 -0
- /package/project/.sdk/tm/{dart/src/feature/streaming → zig/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
|
+
}
|