@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,1112 @@
|
|
|
1
|
+
(* VENDORED: @voxgig/plugin sdk-20260908-1556-0 (ocaml/src/host.ml) *)
|
|
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
|
+
(* The host: the lifecycle state machine (§5), extension points (§6),
|
|
5
|
+
and resource capture (§8).
|
|
6
|
+
|
|
7
|
+
TWO RULES SHAPE EVERY FUNCTION HERE.
|
|
8
|
+
|
|
9
|
+
Transitions are SEQUENTIAL (§5.2). One at a time, in call order,
|
|
10
|
+
never interleaved; a transition triggered from inside a lifecycle
|
|
11
|
+
callback is `plugin_reentrant`. A hard rule, because it is the only
|
|
12
|
+
way the semantics can be identical in Go, in Ruby and in
|
|
13
|
+
single-threaded JavaScript — and in OCaml, which has no event loop
|
|
14
|
+
to hide behind.
|
|
15
|
+
|
|
16
|
+
Reconciliation is EAGER (§18's portability budget). A transition
|
|
17
|
+
settles by running the state machine to a fixed point, not by
|
|
18
|
+
suspending on a promise. *)
|
|
19
|
+
|
|
20
|
+
module V = Value
|
|
21
|
+
open Defs
|
|
22
|
+
|
|
23
|
+
(* ------------------------------------------------------------------ *)
|
|
24
|
+
(* construction and registry helpers *)
|
|
25
|
+
(* ------------------------------------------------------------------ *)
|
|
26
|
+
|
|
27
|
+
let makehost (o : hostoptions) =
|
|
28
|
+
{
|
|
29
|
+
hcatalog = (match o.ocatalog with Some c -> c | None -> Catalog.makecatalog ());
|
|
30
|
+
reserved = o.oreserved;
|
|
31
|
+
keys = o.okeys;
|
|
32
|
+
defaults = o.odefaults;
|
|
33
|
+
profile = o.oprofile;
|
|
34
|
+
points = (if V.is_map o.opoints then o.opoints else V.vmap ());
|
|
35
|
+
bases = o.obases;
|
|
36
|
+
dependency = (if "" = o.odependency then "restart" else o.odependency);
|
|
37
|
+
coordinated = false;
|
|
38
|
+
instances = [];
|
|
39
|
+
hlog = V.vlist ();
|
|
40
|
+
events = V.vlist ();
|
|
41
|
+
seqn = 0.0;
|
|
42
|
+
openc = 0.0;
|
|
43
|
+
intransition = false;
|
|
44
|
+
phase = "";
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
let define h def = Catalog.add h.hcatalog def
|
|
48
|
+
|
|
49
|
+
let find h r = List.find_opt (fun e -> e.iref = r) h.instances
|
|
50
|
+
|
|
51
|
+
(* Every instance ref, SORTED — the deterministic walk §4 rule 4
|
|
52
|
+
requires in a language whose containers have no inherent order. *)
|
|
53
|
+
let sortedrefs h = List.sort compare (List.map (fun e -> e.iref) h.instances)
|
|
54
|
+
|
|
55
|
+
(* ------------------------------------------------------------------ *)
|
|
56
|
+
(* observation *)
|
|
57
|
+
(* ------------------------------------------------------------------ *)
|
|
58
|
+
|
|
59
|
+
let list h =
|
|
60
|
+
let out = V.vmap () in
|
|
61
|
+
List.iter
|
|
62
|
+
(fun r ->
|
|
63
|
+
match find h r with Some e -> V.set out r (V.vstr e.status) | None -> ())
|
|
64
|
+
(sortedrefs h);
|
|
65
|
+
out
|
|
66
|
+
|
|
67
|
+
(* The VALIDATING canonicalizer, not the forgiving one: a lookup with a
|
|
68
|
+
malformed ref is `plugin_bad_name`, not a miss
|
|
69
|
+
(`declare/lookup#malformed`). Rust and swift both wrote this with
|
|
70
|
+
`canon` and failed that entry. *)
|
|
71
|
+
let instance h r = find h (Ref.canonrefs r)
|
|
72
|
+
|
|
73
|
+
let observable h result =
|
|
74
|
+
let out = V.vmap () in
|
|
75
|
+
V.set out "status" (list h);
|
|
76
|
+
V.set out "open" (V.vnum h.openc);
|
|
77
|
+
V.set out "log" (V.oflist (V.items h.hlog));
|
|
78
|
+
V.set out "result" (match result with Some v -> v | None -> V.vnull);
|
|
79
|
+
out
|
|
80
|
+
|
|
81
|
+
let trace h = h.events
|
|
82
|
+
let instname e = Ref.refname e.iref
|
|
83
|
+
|
|
84
|
+
let insttag e =
|
|
85
|
+
match String.index_opt e.iref '$' with
|
|
86
|
+
| None -> ""
|
|
87
|
+
| Some c -> String.sub e.iref (c + 1) (String.length e.iref - c - 1)
|
|
88
|
+
|
|
89
|
+
(* ------------------------------------------------------------------ *)
|
|
90
|
+
(* guards *)
|
|
91
|
+
(* ------------------------------------------------------------------ *)
|
|
92
|
+
|
|
93
|
+
let guard h =
|
|
94
|
+
if h.intransition then
|
|
95
|
+
Types.fail "plugin_reentrant"
|
|
96
|
+
"transition attempted from inside a lifecycle callback"
|
|
97
|
+
|
|
98
|
+
let need h r =
|
|
99
|
+
let r = Ref.canonrefs r in
|
|
100
|
+
match find h r with
|
|
101
|
+
| Some e -> e
|
|
102
|
+
| None ->
|
|
103
|
+
Types.fail "plugin_not_loaded"
|
|
104
|
+
("no such instance: " ^ r)
|
|
105
|
+
~details:(Types.details1 "ref" (V.vstr r))
|
|
106
|
+
|
|
107
|
+
let checkreserved h r =
|
|
108
|
+
if V.is_list h.reserved && 0 < V.len h.reserved then begin
|
|
109
|
+
let name = Ref.refname r in
|
|
110
|
+
if List.exists (fun x -> V.is_str x && V.as_str x = name)
|
|
111
|
+
(V.items h.reserved)
|
|
112
|
+
then
|
|
113
|
+
Types.fail "plugin_ref_reserved"
|
|
114
|
+
("ref is reserved by the host: " ^ r)
|
|
115
|
+
~details:(Types.details1 "ref" (V.vstr r))
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
(* ------------------------------------------------------------------ *)
|
|
119
|
+
(* scope *)
|
|
120
|
+
(* ------------------------------------------------------------------ *)
|
|
121
|
+
|
|
122
|
+
(* A selection belongs to ONE activation (§11.4). Leaving `live` by any
|
|
123
|
+
door drops it, so the next activation ranks afresh — keeping it
|
|
124
|
+
would make a consumer prefer a provider it never actually ran
|
|
125
|
+
against.
|
|
126
|
+
|
|
127
|
+
Answers the errors the scope raised. §8.3: "A failing release does
|
|
128
|
+
not stop the rest. Every entry runs, in reverse order, whatever any
|
|
129
|
+
of them does; the errors are collected and raised as one
|
|
130
|
+
`plugin_release_failed`." *)
|
|
131
|
+
let unwind h e =
|
|
132
|
+
e.selected <- V.vmap ();
|
|
133
|
+
let errors = V.vlist () in
|
|
134
|
+
List.iter
|
|
135
|
+
(fun s ->
|
|
136
|
+
if not s.done_ then begin
|
|
137
|
+
s.done_ <- true;
|
|
138
|
+
if s.counts then h.openc <- h.openc -. 1.0;
|
|
139
|
+
match s.sfn with
|
|
140
|
+
| None -> ()
|
|
141
|
+
| Some f -> (
|
|
142
|
+
try f ()
|
|
143
|
+
with Types.Plugin_error err -> V.push errors (V.vstr err.Types.message))
|
|
144
|
+
end)
|
|
145
|
+
(List.rev e.scope);
|
|
146
|
+
e.scope <- [];
|
|
147
|
+
errors
|
|
148
|
+
|
|
149
|
+
(* §8.3: "A failed release ends the instance in `failed`, exactly as a
|
|
150
|
+
failed callback does (§5.2) — a release that raised may have leaked,
|
|
151
|
+
and an instance that may be holding resources it cannot account for
|
|
152
|
+
must not be reactivated." *)
|
|
153
|
+
let releasecheck e errors =
|
|
154
|
+
if 0 < V.len errors then begin
|
|
155
|
+
e.status <- "failed";
|
|
156
|
+
let d = V.vmap () in
|
|
157
|
+
V.set d "ref" (V.vstr e.iref);
|
|
158
|
+
V.set d "cause" errors;
|
|
159
|
+
Types.fail "plugin_release_failed"
|
|
160
|
+
("release failed for " ^ e.iref ^ ": "
|
|
161
|
+
^ String.concat "; " (List.map V.as_str (V.items errors)))
|
|
162
|
+
~details:d
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
(* ------------------------------------------------------------------ *)
|
|
166
|
+
(* the instance api *)
|
|
167
|
+
(* ------------------------------------------------------------------ *)
|
|
168
|
+
|
|
169
|
+
let acquire e =
|
|
170
|
+
(* §8.1: resources are "acquired during `activate` — the scope's
|
|
171
|
+
actual job". *)
|
|
172
|
+
if "activate" <> e.owner.phase then
|
|
173
|
+
Types.fail "plugin_release_scope" "acquire called outside activate";
|
|
174
|
+
let s = { sfn = None; done_ = false; counts = true } in
|
|
175
|
+
e.scope <- e.scope @ [ s ];
|
|
176
|
+
e.owner.openc <- e.owner.openc +. 1.0;
|
|
177
|
+
s
|
|
178
|
+
|
|
179
|
+
(* Hand a resource back before teardown. Idempotent, and the scope
|
|
180
|
+
keeps the entry: unwinding it again must be a no-op, or releasing
|
|
181
|
+
early would make teardown wrong. *)
|
|
182
|
+
let giveback e s =
|
|
183
|
+
if not s.done_ then begin
|
|
184
|
+
s.done_ <- true;
|
|
185
|
+
if s.counts then e.owner.openc <- e.owner.openc -. 1.0
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
let release e fn =
|
|
189
|
+
(* §8.3: "`inst.release` outside `activate` is
|
|
190
|
+
`plugin_release_scope`". Being in a transition is true in `define`
|
|
191
|
+
too, and a scope entry registered there is never unwound —
|
|
192
|
+
`unload` on a merely `loaded` instance does not unwind, because a
|
|
193
|
+
loaded instance is not supposed to hold anything. *)
|
|
194
|
+
if "activate" <> e.owner.phase then
|
|
195
|
+
Types.fail "plugin_release_scope" "release called outside activate";
|
|
196
|
+
(* SYMMETRIC WITH `acquire`, and it has to be: `open` counts the
|
|
197
|
+
resources CURRENTLY HELD, so an entry that is registered and then
|
|
198
|
+
unwound must leave the count where it found it. Incrementing on
|
|
199
|
+
registration and never decrementing made every `release` a
|
|
200
|
+
permanent leak in the counter. *)
|
|
201
|
+
e.scope <- e.scope @ [ { sfn = fn; done_ = false; counts = true } ];
|
|
202
|
+
e.owner.openc <- e.owner.openc +. 1.0
|
|
203
|
+
|
|
204
|
+
let bind e point hook chain band =
|
|
205
|
+
let h = e.owner in
|
|
206
|
+
(* §12's `plugin_bind_scope`: "binding declared outside `define`".
|
|
207
|
+
§8.1 puts binding declaration in `define` and insertion at a
|
|
208
|
+
SUCCESSFUL activate, and the guard was the half that never got
|
|
209
|
+
written — so a binding added from `activate` went live without
|
|
210
|
+
being part of the loaded definition, and a deactivate/activate
|
|
211
|
+
cycle appended it again. The code was in the table before anything
|
|
212
|
+
raised it. *)
|
|
213
|
+
if "define" <> h.phase then begin
|
|
214
|
+
let d = V.vmap () in
|
|
215
|
+
V.set d "ref" (V.vstr e.iref);
|
|
216
|
+
V.set d "point" (V.vstr point);
|
|
217
|
+
Types.fail "plugin_bind_scope" ("bind called outside define: " ^ point)
|
|
218
|
+
~details:d
|
|
219
|
+
end;
|
|
220
|
+
if not (V.has h.points point) then
|
|
221
|
+
Types.fail "plugin_point_unknown"
|
|
222
|
+
("no such point: " ^ point)
|
|
223
|
+
~details:(Types.details1 "point" (V.vstr point));
|
|
224
|
+
let b =
|
|
225
|
+
{ Point.bref = e.iref; bpoint = point;
|
|
226
|
+
band = (if V.is_num band then V.as_num band else 0.0);
|
|
227
|
+
bhook = hook; bchain = chain }
|
|
228
|
+
in
|
|
229
|
+
e.bindings <- e.bindings @ [ b ]
|
|
230
|
+
|
|
231
|
+
let bindhook e point hook band = bind e point (Some hook) None band
|
|
232
|
+
let bindchain e point chain band = bind e point None (Some chain) band
|
|
233
|
+
let exportvalue e key value = V.set e.exports key value
|
|
234
|
+
let provides e p = V.push e.provides p
|
|
235
|
+
|
|
236
|
+
(* ------------------------------------------------------------------ *)
|
|
237
|
+
(* running a callback *)
|
|
238
|
+
(* ------------------------------------------------------------------ *)
|
|
239
|
+
|
|
240
|
+
let run h e at =
|
|
241
|
+
let fn = Catalog.callback e.idef at in
|
|
242
|
+
|
|
243
|
+
V.push h.hlog (V.vstr (e.iref ^ ":" ^ at));
|
|
244
|
+
let ev = V.vmap () in
|
|
245
|
+
V.set ev "ref" (V.vstr e.iref);
|
|
246
|
+
V.set ev "event" (V.vstr at);
|
|
247
|
+
V.set ev "seq" (V.vnum e.seq);
|
|
248
|
+
V.set ev "status" (V.vstr e.status);
|
|
249
|
+
V.push h.events ev;
|
|
250
|
+
|
|
251
|
+
match fn with
|
|
252
|
+
| None -> ()
|
|
253
|
+
| Some f -> (
|
|
254
|
+
h.intransition <- true;
|
|
255
|
+
h.phase <- at;
|
|
256
|
+
let finish () =
|
|
257
|
+
h.intransition <- false;
|
|
258
|
+
h.phase <- ""
|
|
259
|
+
in
|
|
260
|
+
match f e with
|
|
261
|
+
| () -> finish ()
|
|
262
|
+
| exception Types.Plugin_error err ->
|
|
263
|
+
finish ();
|
|
264
|
+
(* §12: `plugin_define_failed` and its three siblings are "a
|
|
265
|
+
callback raised; wraps the cause". AN ERROR THAT ALREADY
|
|
266
|
+
CARRIES A CODE KEEPS IT — the code is the error's identity,
|
|
267
|
+
and a plugin that raised `store_unreachable` must not have it
|
|
268
|
+
rewritten. Only a code-less error is wrapped, which is the
|
|
269
|
+
ordinary case for a callback that let a library error
|
|
270
|
+
escape. *)
|
|
271
|
+
if "" <> err.Types.code && "plugin_bare" <> err.Types.code then
|
|
272
|
+
raise (Types.Plugin_error err);
|
|
273
|
+
let d = V.vmap () in
|
|
274
|
+
V.set d "ref" (V.vstr e.iref);
|
|
275
|
+
V.set d "cause" (V.vstr err.Types.text);
|
|
276
|
+
Types.fail
|
|
277
|
+
("plugin_" ^ at ^ "_failed")
|
|
278
|
+
(e.iref ^ " raised in " ^ at ^ ": " ^ err.Types.text)
|
|
279
|
+
~details:d)
|
|
280
|
+
|
|
281
|
+
(* ------------------------------------------------------------------ *)
|
|
282
|
+
(* requirements and providers *)
|
|
283
|
+
(* ------------------------------------------------------------------ *)
|
|
284
|
+
|
|
285
|
+
let providersof h req =
|
|
286
|
+
let cands = V.vlist () in
|
|
287
|
+
(* ASK WHETHER THE NAME IS A REF, do not assume it. A requirement
|
|
288
|
+
name is a CAPABILITY name first (§11.1) and capability names are
|
|
289
|
+
free-form, so `2fa` and `my cap` are legal ones that no ref could
|
|
290
|
+
be called — and `canonref` RAISES on those, which made a perfectly
|
|
291
|
+
legal document kill the host right here. *)
|
|
292
|
+
let rname = V.get req "name" in
|
|
293
|
+
let asref = if V.is_str rname then Ref.tryref (V.as_str rname) else None in
|
|
294
|
+
List.iter
|
|
295
|
+
(fun r ->
|
|
296
|
+
match find h r with
|
|
297
|
+
| None -> ()
|
|
298
|
+
| Some t ->
|
|
299
|
+
if "live" = t.status then
|
|
300
|
+
(* A ref satisfies directly. *)
|
|
301
|
+
if Some r = asref then begin
|
|
302
|
+
let prov = V.vmap () in
|
|
303
|
+
V.set prov "name" rname;
|
|
304
|
+
let c = V.vmap () in
|
|
305
|
+
V.set c "ref" (V.vstr r);
|
|
306
|
+
V.set c "pos" (V.vnum t.pos);
|
|
307
|
+
V.set c "provides" prov;
|
|
308
|
+
V.push cands c
|
|
309
|
+
end
|
|
310
|
+
else
|
|
311
|
+
List.iter
|
|
312
|
+
(fun p ->
|
|
313
|
+
if V.same (V.get p "name") rname then begin
|
|
314
|
+
let c = V.vmap () in
|
|
315
|
+
V.set c "ref" (V.vstr r);
|
|
316
|
+
V.set c "pos" (V.vnum t.pos);
|
|
317
|
+
V.set c "provides" p;
|
|
318
|
+
V.push cands c
|
|
319
|
+
end)
|
|
320
|
+
(V.items t.provides))
|
|
321
|
+
(sortedrefs h);
|
|
322
|
+
Capability.resolvecapability req cands
|
|
323
|
+
|
|
324
|
+
let unmetof h e =
|
|
325
|
+
V.oflist
|
|
326
|
+
(List.filter_map
|
|
327
|
+
(fun r ->
|
|
328
|
+
if Depend.gatesactivation r && 0 = V.len (providersof h r) then
|
|
329
|
+
Some (V.get r "name")
|
|
330
|
+
else None)
|
|
331
|
+
(V.items (Depend.requirements e.options)))
|
|
332
|
+
|
|
333
|
+
(* §11.4's always-reluctant selection, and the ONE place a provider is
|
|
334
|
+
chosen for a live instance. "A satisfied requirement is not re-bound
|
|
335
|
+
while it stays satisfied" is a statement about a REMEMBERED choice.
|
|
336
|
+
|
|
337
|
+
`remember` is false for the questions asked ABOUT an instance rather
|
|
338
|
+
than BY it — introspection must not create a binding. *)
|
|
339
|
+
let chosen h e req remember =
|
|
340
|
+
let cands = providersof h req in
|
|
341
|
+
if 0 = V.len cands then None
|
|
342
|
+
else begin
|
|
343
|
+
let name = V.as_str (V.get req "name") in
|
|
344
|
+
let heldv = V.get e.selected name in
|
|
345
|
+
let kept =
|
|
346
|
+
if V.is_str heldv
|
|
347
|
+
&& List.exists
|
|
348
|
+
(fun c -> V.as_str (V.get c "ref") = V.as_str heldv)
|
|
349
|
+
(V.items cands)
|
|
350
|
+
then Some (V.as_str heldv)
|
|
351
|
+
else None
|
|
352
|
+
in
|
|
353
|
+
match kept with
|
|
354
|
+
| Some r -> Some r
|
|
355
|
+
| None ->
|
|
356
|
+
let first = V.as_str (V.get (V.at cands 0) "ref") in
|
|
357
|
+
if remember then V.set e.selected name (V.vstr first);
|
|
358
|
+
Some first
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
(* The instance currently SELECTED for each of this one's
|
|
362
|
+
restart-causing requirements. A BINDING IS TO AN INSTANCE, not to a
|
|
363
|
+
capability (§11.1): the selected one going away restarts a `static`
|
|
364
|
+
consumer even though a survivor is available. *)
|
|
365
|
+
let boundproviders h e =
|
|
366
|
+
let out = ref [] in
|
|
367
|
+
List.iter
|
|
368
|
+
(fun r ->
|
|
369
|
+
if Depend.restartsonloss r then
|
|
370
|
+
match chosen h e r false with
|
|
371
|
+
| Some p when not (List.mem p !out) -> out := !out @ [ p ]
|
|
372
|
+
| _ -> ())
|
|
373
|
+
(V.items (Depend.requirements e.options));
|
|
374
|
+
!out
|
|
375
|
+
|
|
376
|
+
let consumersof h r =
|
|
377
|
+
List.filter
|
|
378
|
+
(fun c ->
|
|
379
|
+
c <> r
|
|
380
|
+
&&
|
|
381
|
+
match find h c with
|
|
382
|
+
| Some ci -> "live" = ci.status && List.mem r (boundproviders h ci)
|
|
383
|
+
| None -> false)
|
|
384
|
+
(sortedrefs h)
|
|
385
|
+
|
|
386
|
+
(* §11.3's `hold` asks a DIFFERENT question from the cascade.
|
|
387
|
+
|
|
388
|
+
The cascade wants the edges that RESTART — mandatory-static and
|
|
389
|
+
optional-static. `hold` says "deactivating a REQUIRED instance is
|
|
390
|
+
`plugin_dependency_held`", and `required` is CARDINALITY:
|
|
391
|
+
`gatesactivation`, not `restartsonloss`. The two sets differ in both
|
|
392
|
+
directions and each difference was a real bug. *)
|
|
393
|
+
let holdersof h r =
|
|
394
|
+
List.filter
|
|
395
|
+
(fun c ->
|
|
396
|
+
c <> r
|
|
397
|
+
&&
|
|
398
|
+
match find h c with
|
|
399
|
+
| Some ci ->
|
|
400
|
+
"live" = ci.status
|
|
401
|
+
&& List.exists
|
|
402
|
+
(fun req ->
|
|
403
|
+
Depend.gatesactivation req && Some r = chosen h ci req false)
|
|
404
|
+
(V.items (Depend.requirements ci.options))
|
|
405
|
+
| None -> false)
|
|
406
|
+
(sortedrefs h)
|
|
407
|
+
|
|
408
|
+
(* The hold check is A GUARD ON AD-HOC DEACTIVATION, NOT ON COORDINATED
|
|
409
|
+
TEARDOWN. In a bulk operation that is removing the holders too, it
|
|
410
|
+
is suspended — otherwise `close()` under `hold` would raise on the
|
|
411
|
+
first provider it reached whenever a document happened to list a
|
|
412
|
+
consumer after it, which is the policy refusing the one teardown it
|
|
413
|
+
has no reason to object to. *)
|
|
414
|
+
let held h e =
|
|
415
|
+
if "hold" = h.dependency && not h.coordinated then begin
|
|
416
|
+
let holders = holdersof h e.iref in
|
|
417
|
+
if [] <> holders then begin
|
|
418
|
+
let d = V.vmap () in
|
|
419
|
+
V.set d "ref" (V.vstr e.iref);
|
|
420
|
+
V.set d "holders" (V.oflist (List.map V.vstr holders));
|
|
421
|
+
Types.fail "plugin_dependency_held"
|
|
422
|
+
("instance is required by live consumers: " ^ e.iref)
|
|
423
|
+
~details:d
|
|
424
|
+
end
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
(* The requirement graph as plain data, for the pure detector. *)
|
|
428
|
+
let graphnodes h =
|
|
429
|
+
V.oflist
|
|
430
|
+
(List.filter_map
|
|
431
|
+
(fun r ->
|
|
432
|
+
match find h r with
|
|
433
|
+
| None -> None
|
|
434
|
+
| Some e ->
|
|
435
|
+
let node = V.vmap () in
|
|
436
|
+
V.set node "ref" (V.vstr r);
|
|
437
|
+
V.set node "provides"
|
|
438
|
+
(V.oflist (List.map (fun p -> V.get p "name") (V.items e.provides)));
|
|
439
|
+
V.set node "requires" (Depend.requirements e.options);
|
|
440
|
+
Some node)
|
|
441
|
+
(sortedrefs h))
|
|
442
|
+
|
|
443
|
+
(* ------------------------------------------------------------------ *)
|
|
444
|
+
(* ordering and points *)
|
|
445
|
+
(* ------------------------------------------------------------------ *)
|
|
446
|
+
|
|
447
|
+
let order h point =
|
|
448
|
+
(* Sorted by declaration SEQUENCE, which is what makes the §7 sort's
|
|
449
|
+
fall-through deterministic in a language whose containers have no
|
|
450
|
+
insertion order. §7 breaks ties by `pos`; two instances CAN share
|
|
451
|
+
one — `declare` defaults `pos` to the registry size, so an unload
|
|
452
|
+
followed by a fresh declare reuses a surviving instance's — and
|
|
453
|
+
past that the canonical was falling through to map order. `seq` is
|
|
454
|
+
that order, made explicit. Found by review of the go port. *)
|
|
455
|
+
let live =
|
|
456
|
+
List.stable_sort
|
|
457
|
+
(fun a b -> compare a.seq b.seq)
|
|
458
|
+
(List.filter (fun e -> "live" = e.status) h.instances)
|
|
459
|
+
in
|
|
460
|
+
let bindings =
|
|
461
|
+
V.oflist
|
|
462
|
+
(List.map
|
|
463
|
+
(fun e ->
|
|
464
|
+
let b = V.vmap () in
|
|
465
|
+
V.set b "ref" (V.vstr e.iref);
|
|
466
|
+
V.set b "pos" (V.vnum e.pos);
|
|
467
|
+
if not (V.is_null e.order) then V.set b "order" e.order;
|
|
468
|
+
b)
|
|
469
|
+
live)
|
|
470
|
+
in
|
|
471
|
+
let spec = if "" = point then V.vnull else V.get h.points point in
|
|
472
|
+
Order.resolveorder bindings (if V.is_map spec then V.get spec "pin" else V.vnull)
|
|
473
|
+
|
|
474
|
+
let positionof h r point =
|
|
475
|
+
let ranked = order h point in
|
|
476
|
+
let r = Ref.canonrefs r in
|
|
477
|
+
let index = ref (-1.0) in
|
|
478
|
+
List.iteri
|
|
479
|
+
(fun i v -> if -1.0 = !index && V.as_str v = r then index := float_of_int i)
|
|
480
|
+
(V.items ranked);
|
|
481
|
+
let out = V.vmap () in
|
|
482
|
+
V.set out "index" (V.vnum !index);
|
|
483
|
+
V.set out "count" (V.vnum (float_of_int (V.len ranked)));
|
|
484
|
+
(* §6.2 composes b1(b2(b3(base))) with the FIRST binding OUTERMOST,
|
|
485
|
+
so these are not index 0 and count-1 the other way round. Getting
|
|
486
|
+
this backwards is the exact error the positional pin vocabulary
|
|
487
|
+
exists to prevent. *)
|
|
488
|
+
V.set out "outermost" (V.vbool (0.0 = !index));
|
|
489
|
+
V.set out "innermost"
|
|
490
|
+
(V.vbool (!index = float_of_int (V.len ranked) -. 1.0));
|
|
491
|
+
out
|
|
492
|
+
|
|
493
|
+
let position e point = positionof e.owner e.iref point
|
|
494
|
+
|
|
495
|
+
(* Live bindings on a point, in resolved order. Recomputed on any
|
|
496
|
+
change to the live set (§7) rather than cached at startup — the bug
|
|
497
|
+
a host discovers only when something deactivates in production. *)
|
|
498
|
+
let boundon h point =
|
|
499
|
+
List.concat_map
|
|
500
|
+
(fun rv ->
|
|
501
|
+
match find h (V.as_str rv) with
|
|
502
|
+
| None -> []
|
|
503
|
+
| Some e ->
|
|
504
|
+
(* The band is the INSTANCE's ordering block (§7), stamped by
|
|
505
|
+
the host. A plugin passing its own would be ranking itself
|
|
506
|
+
above the order its document declared. *)
|
|
507
|
+
let band = V.get e.order "band" in
|
|
508
|
+
let bandv = if V.is_num band then V.as_num band else 0.0 in
|
|
509
|
+
List.filter_map
|
|
510
|
+
(fun b ->
|
|
511
|
+
if b.Point.bpoint = point then Some { b with Point.band = bandv }
|
|
512
|
+
else None)
|
|
513
|
+
e.bindings)
|
|
514
|
+
(V.items (order h point))
|
|
515
|
+
|
|
516
|
+
let pointspec h point =
|
|
517
|
+
if not (V.has h.points point) then
|
|
518
|
+
Types.fail "plugin_point_unknown"
|
|
519
|
+
("no such point: " ^ point)
|
|
520
|
+
~details:(Types.details1 "point" (V.vstr point));
|
|
521
|
+
let spec = V.get h.points point in
|
|
522
|
+
if V.is_map spec then spec else V.vmap ()
|
|
523
|
+
|
|
524
|
+
let checkkind spec point want =
|
|
525
|
+
let kind = V.get spec "kind" in
|
|
526
|
+
let given = V.is_str kind in
|
|
527
|
+
let ok = if given then V.as_str kind = want else "hook" = want in
|
|
528
|
+
if not ok then begin
|
|
529
|
+
let d = V.vmap () in
|
|
530
|
+
V.set d "point" (V.vstr point);
|
|
531
|
+
V.set d "kind" (if given then kind else V.vnull);
|
|
532
|
+
Types.fail "plugin_point_kind" ("point is not a " ^ want ^ ": " ^ point)
|
|
533
|
+
~details:d
|
|
534
|
+
end
|
|
535
|
+
|
|
536
|
+
let emit h point arg =
|
|
537
|
+
let spec = pointspec h point in
|
|
538
|
+
checkkind spec point "hook";
|
|
539
|
+
let bindings = boundon h point in
|
|
540
|
+
let mode = V.get spec "mode" in
|
|
541
|
+
let m = if V.is_str mode then V.as_str mode else "emit" in
|
|
542
|
+
let out, errors = Point.pointemit bindings m arg in
|
|
543
|
+
if "emit" = m then None else if "bail" = m then out else Some errors
|
|
544
|
+
|
|
545
|
+
let call h point arg =
|
|
546
|
+
let spec = pointspec h point in
|
|
547
|
+
checkkind spec point "chain";
|
|
548
|
+
let bindings = boundon h point in
|
|
549
|
+
(* The host owns the base and a plugin cannot replace it (§6.2). One
|
|
550
|
+
that wants to SUBSTITUTE rather than wrap binds innermost and
|
|
551
|
+
simply does not call `next`. *)
|
|
552
|
+
Point.pointcall bindings (List.assoc_opt point h.bases) arg
|
|
553
|
+
|
|
554
|
+
let provider h point arg =
|
|
555
|
+
let spec = pointspec h point in
|
|
556
|
+
checkkind spec point "provider";
|
|
557
|
+
let bindings = boundon h point in
|
|
558
|
+
let winner, _ = Point.pointprovider bindings (V.truthy (V.get spec "exclusive")) in
|
|
559
|
+
match winner with
|
|
560
|
+
| None -> Some (V.get spec "default")
|
|
561
|
+
| Some b -> Point.callhook b arg
|
|
562
|
+
|
|
563
|
+
let shadowed h point =
|
|
564
|
+
if not (V.has h.points point) then V.vlist ()
|
|
565
|
+
else begin
|
|
566
|
+
let spec = V.get h.points point in
|
|
567
|
+
let bindings = boundon h point in
|
|
568
|
+
let _, sh =
|
|
569
|
+
Point.pointprovider bindings
|
|
570
|
+
(V.is_map spec && V.truthy (V.get spec "exclusive"))
|
|
571
|
+
in
|
|
572
|
+
sh
|
|
573
|
+
end
|
|
574
|
+
|
|
575
|
+
let exports h spec =
|
|
576
|
+
let all = V.vlist () in
|
|
577
|
+
List.iter
|
|
578
|
+
(fun r ->
|
|
579
|
+
match find h r with
|
|
580
|
+
| None -> ()
|
|
581
|
+
| Some e ->
|
|
582
|
+
(* Exports of a `loaded` (not live) instance are VISIBLE
|
|
583
|
+
(§11). *)
|
|
584
|
+
if "declared" <> e.status && "failed" <> e.status then
|
|
585
|
+
List.iter
|
|
586
|
+
(fun k ->
|
|
587
|
+
let ex = V.vmap () in
|
|
588
|
+
V.set ex "ref" (V.vstr r);
|
|
589
|
+
V.set ex "key" (V.vstr k);
|
|
590
|
+
V.set ex "value" (V.get e.exports k);
|
|
591
|
+
V.push all ex)
|
|
592
|
+
(V.keys e.exports))
|
|
593
|
+
(sortedrefs h);
|
|
594
|
+
Export.resolveexport (V.vstr spec) all
|
|
595
|
+
|
|
596
|
+
let capability h name =
|
|
597
|
+
let cands = V.vlist () in
|
|
598
|
+
List.iter
|
|
599
|
+
(fun r ->
|
|
600
|
+
match find h r with
|
|
601
|
+
| None -> ()
|
|
602
|
+
| Some e ->
|
|
603
|
+
if "live" = e.status then
|
|
604
|
+
List.iter
|
|
605
|
+
(fun p ->
|
|
606
|
+
if V.is_str (V.get p "name") && V.as_str (V.get p "name") = name
|
|
607
|
+
then begin
|
|
608
|
+
let c = V.vmap () in
|
|
609
|
+
V.set c "ref" (V.vstr r);
|
|
610
|
+
V.set c "pos" (V.vnum e.pos);
|
|
611
|
+
V.set c "provides" p;
|
|
612
|
+
V.push cands c
|
|
613
|
+
end)
|
|
614
|
+
(V.items e.provides))
|
|
615
|
+
(sortedrefs h);
|
|
616
|
+
let req = V.vmap () in
|
|
617
|
+
V.set req "name" (V.vstr name);
|
|
618
|
+
V.oflist
|
|
619
|
+
(List.map (fun c -> V.get c "ref")
|
|
620
|
+
(V.items (Capability.resolvecapability req cands)))
|
|
621
|
+
|
|
622
|
+
(* ------------------------------------------------------------------ *)
|
|
623
|
+
(* the state machine *)
|
|
624
|
+
(* ------------------------------------------------------------------ *)
|
|
625
|
+
|
|
626
|
+
(* AUTO-TAGGING IS EXPLICIT (§4 rule 3): the LOWEST UNUSED POSITIVE
|
|
627
|
+
INTEGER tag. It needs a host because it must know what is already
|
|
628
|
+
declared, which is why it cannot live in the pure `ref` section. *)
|
|
629
|
+
let autotag h name =
|
|
630
|
+
let rec go n =
|
|
631
|
+
let cand = Ref.formatref (V.vstr name) (V.vstr (string_of_int n)) in
|
|
632
|
+
if None = find h cand then cand else go (n + 1)
|
|
633
|
+
in
|
|
634
|
+
go 1
|
|
635
|
+
|
|
636
|
+
let declare h r spec =
|
|
637
|
+
let r =
|
|
638
|
+
if "?" = spec.stag then autotag h (Ref.refname (Ref.canonrefs r))
|
|
639
|
+
else Ref.canonrefs r
|
|
640
|
+
in
|
|
641
|
+
if not spec.shostowned then checkreserved h r;
|
|
642
|
+
|
|
643
|
+
let defname = if "" = spec.sdefinition then Ref.refname r else spec.sdefinition in
|
|
644
|
+
let def =
|
|
645
|
+
match Catalog.get h.hcatalog defname with
|
|
646
|
+
| Some d -> d
|
|
647
|
+
| None ->
|
|
648
|
+
Types.fail "plugin_unknown_definition"
|
|
649
|
+
("not in catalog: " ^ defname)
|
|
650
|
+
~details:(Types.details1 "name" (V.vstr defname))
|
|
651
|
+
in
|
|
652
|
+
|
|
653
|
+
match find h r with
|
|
654
|
+
| Some existing ->
|
|
655
|
+
(* §4 rule 1: a pair addresses at most one instance. Re-declaring
|
|
656
|
+
the SAME definition is the idempotent case; a different one is a
|
|
657
|
+
duplicate, not a silent overwrite (seneca) and not an
|
|
658
|
+
impossibility (sdkgen). *)
|
|
659
|
+
if existing.idef.dname <> def.dname then
|
|
660
|
+
Types.fail "plugin_ref_duplicate"
|
|
661
|
+
("instance already declared: " ^ r)
|
|
662
|
+
~details:(Types.details1 "ref" (V.vstr r));
|
|
663
|
+
existing
|
|
664
|
+
| None ->
|
|
665
|
+
let e =
|
|
666
|
+
{
|
|
667
|
+
iref = r;
|
|
668
|
+
idef = def;
|
|
669
|
+
status = "declared";
|
|
670
|
+
pos =
|
|
671
|
+
(match spec.spos with
|
|
672
|
+
| Some p -> p
|
|
673
|
+
| None -> float_of_int (List.length h.instances));
|
|
674
|
+
seq = h.seqn;
|
|
675
|
+
(* NO OPTIONS ADOPTED HERE. `apply` resolves options and hands
|
|
676
|
+
the map over; adopting the caller's map made target and
|
|
677
|
+
source THE SAME MAP in the refill that follows, which
|
|
678
|
+
cleared its own source and left a first-time instance with
|
|
679
|
+
no options at all. *)
|
|
680
|
+
options =
|
|
681
|
+
(match spec.soptions with
|
|
682
|
+
| Some o when V.is_map o -> o
|
|
683
|
+
| _ -> V.vmap ());
|
|
684
|
+
istate = V.vmap ();
|
|
685
|
+
order = spec.sorder;
|
|
686
|
+
selected = V.vmap ();
|
|
687
|
+
barred = false;
|
|
688
|
+
unmet = V.vlist ();
|
|
689
|
+
scope = [];
|
|
690
|
+
bindings = [];
|
|
691
|
+
inner = None;
|
|
692
|
+
exports = V.vmap ();
|
|
693
|
+
provides = V.vlist ();
|
|
694
|
+
owner = h;
|
|
695
|
+
}
|
|
696
|
+
in
|
|
697
|
+
h.seqn <- h.seqn +. 1.0;
|
|
698
|
+
h.instances <- h.instances @ [ e ];
|
|
699
|
+
e
|
|
700
|
+
|
|
701
|
+
let load h r spec =
|
|
702
|
+
guard h;
|
|
703
|
+
let e = declare h r spec in
|
|
704
|
+
if "declared" <> e.status then e (* idempotent *)
|
|
705
|
+
else begin
|
|
706
|
+
(* PRESENT AND NOT NULL, not merely present. Every driver builds
|
|
707
|
+
its command spec with all four keys and a null for each absent
|
|
708
|
+
one, so a presence test reads an omitted `options` as an
|
|
709
|
+
authored empty and wipes the real ones. *)
|
|
710
|
+
(match spec.soptions with
|
|
711
|
+
| Some o when V.is_map o -> e.options <- o
|
|
712
|
+
| _ -> ());
|
|
713
|
+
|
|
714
|
+
(try run h e "define"
|
|
715
|
+
with err -> e.status <- "failed"; raise err);
|
|
716
|
+
e.status <- "loaded";
|
|
717
|
+
|
|
718
|
+
(* AT LOAD, and before anything runs: a cycle through
|
|
719
|
+
restart-causing requirements does not settle, and the only safe
|
|
720
|
+
time to report a non-terminating reconcile is before it starts
|
|
721
|
+
(§11.3). `provides` is populated by `define`, which has just
|
|
722
|
+
run, so this is the first moment the graph is complete. *)
|
|
723
|
+
(try Depend.checkcycle (graphnodes h)
|
|
724
|
+
with err -> e.status <- "failed"; raise err);
|
|
725
|
+
e
|
|
726
|
+
end
|
|
727
|
+
|
|
728
|
+
(* CONSUMERS GO DOWN FIRST, NOT AFTERWARDS (§11.3).
|
|
729
|
+
|
|
730
|
+
The cascade is part of the provider's own deactivation and runs
|
|
731
|
+
BEFORE the provider's `deactivate` callback and scope unwind, so a
|
|
732
|
+
consumer's teardown can still call the thing it depends on —
|
|
733
|
+
flushing a buffer to the store it is about to lose is exactly what a
|
|
734
|
+
`deactivate` callback is for. *)
|
|
735
|
+
let rec cascade h provider seen =
|
|
736
|
+
if not (V.has seen provider.iref) then begin
|
|
737
|
+
V.set seen provider.iref (V.vbool true);
|
|
738
|
+
List.iter
|
|
739
|
+
(fun cref ->
|
|
740
|
+
match find h cref with
|
|
741
|
+
| Some c when "live" = c.status ->
|
|
742
|
+
cascade h c seen; (* deepest-first *)
|
|
743
|
+
let bad =
|
|
744
|
+
try run h c "deactivate"; false with Types.Plugin_error _ -> true
|
|
745
|
+
in
|
|
746
|
+
let errors = unwind h c in
|
|
747
|
+
if bad || 0 < V.len errors then
|
|
748
|
+
(* §5.2: ANY failure during a transition lands the instance
|
|
749
|
+
in `failed`, and a cascaded consumer is not an
|
|
750
|
+
exception. Marking it `pending` instead handed it
|
|
751
|
+
straight back to `reconcile`, which would activate it
|
|
752
|
+
again the moment the provider returned — the one thing
|
|
753
|
+
`failed` exists to stop. *)
|
|
754
|
+
c.status <- "failed"
|
|
755
|
+
else begin
|
|
756
|
+
c.status <- "pending";
|
|
757
|
+
c.unmet <- unmetof h c
|
|
758
|
+
end
|
|
759
|
+
| _ -> ())
|
|
760
|
+
(consumersof h provider.iref)
|
|
761
|
+
end
|
|
762
|
+
|
|
763
|
+
let rec activate h r =
|
|
764
|
+
guard h;
|
|
765
|
+
let e = need h r in
|
|
766
|
+
if "live" = e.status then e (* no-op returning success *)
|
|
767
|
+
else begin
|
|
768
|
+
if "failed" = e.status then
|
|
769
|
+
Types.fail "plugin_bad_state"
|
|
770
|
+
("instance has failed: " ^ e.iref)
|
|
771
|
+
~details:(Types.details1 "ref" (V.vstr e.iref));
|
|
772
|
+
(* §9.6: `active: false` bars the instance from running, and the
|
|
773
|
+
bar is on the INSTANCE rather than on the apply that set it.
|
|
774
|
+
`ready` reaches this through `activate`, which is why one guard
|
|
775
|
+
covers both verbs the design names. *)
|
|
776
|
+
if e.barred then
|
|
777
|
+
Types.fail "plugin_inactive"
|
|
778
|
+
("instance is barred by active: false: " ^ e.iref)
|
|
779
|
+
~details:(Types.details1 "ref" (V.vstr e.iref));
|
|
780
|
+
if "declared" = e.status then ignore (load h e.iref nospec);
|
|
781
|
+
|
|
782
|
+
(* A declared requirement that is not live means `pending`:
|
|
783
|
+
activation is a STANDING REQUEST, not a one-shot event. *)
|
|
784
|
+
let unmet = unmetof h e in
|
|
785
|
+
if 0 < V.len unmet then begin
|
|
786
|
+
e.unmet <- unmet;
|
|
787
|
+
e.status <- "pending";
|
|
788
|
+
e
|
|
789
|
+
end
|
|
790
|
+
else begin
|
|
791
|
+
(try run h e "activate"
|
|
792
|
+
with err ->
|
|
793
|
+
(* Unwind whatever the partial activation captured, in
|
|
794
|
+
reverse. *)
|
|
795
|
+
ignore (unwind h e);
|
|
796
|
+
e.status <- "failed";
|
|
797
|
+
raise err);
|
|
798
|
+
|
|
799
|
+
(* §11.4: THE SELECTION IS MADE HERE, once, and remembered. Every
|
|
800
|
+
later question — the cascade, `hold`, `unmet` — reads it back
|
|
801
|
+
rather than re-ranking, which is what "always-reluctant"
|
|
802
|
+
means. *)
|
|
803
|
+
List.iter
|
|
804
|
+
(fun req -> ignore (chosen h e req true))
|
|
805
|
+
(V.items (Depend.requirements e.options));
|
|
806
|
+
e.status <- "live";
|
|
807
|
+
reconcile h;
|
|
808
|
+
e
|
|
809
|
+
end
|
|
810
|
+
end
|
|
811
|
+
|
|
812
|
+
and deactivate h r =
|
|
813
|
+
guard h;
|
|
814
|
+
let e = need h r in
|
|
815
|
+
if "loaded" = e.status || "declared" = e.status then e
|
|
816
|
+
else begin
|
|
817
|
+
(* §5.2: `unload` is THE ONLY TRANSITION OUT OF `failed`. Falling
|
|
818
|
+
through here ran the definition's `deactivate` on an instance
|
|
819
|
+
that never completed activation and, if that callback happened
|
|
820
|
+
to succeed, returned it to `loaded` — from where it could be
|
|
821
|
+
activated again, which is precisely what `failed` exists to
|
|
822
|
+
prevent. *)
|
|
823
|
+
if "failed" = e.status then
|
|
824
|
+
Types.fail "plugin_bad_state"
|
|
825
|
+
("instance has failed: " ^ e.iref)
|
|
826
|
+
~details:(Types.details1 "ref" (V.vstr e.iref));
|
|
827
|
+
|
|
828
|
+
if "pending" = e.status then begin
|
|
829
|
+
(* DEACTIVATING A PENDING INSTANCE RUNS NO CALLBACK (§5.2). It
|
|
830
|
+
never reached activate, so it holds no scope and no live
|
|
831
|
+
bindings; running the definition's deactivate there would be
|
|
832
|
+
teardown without matching setup. It cannot fail. *)
|
|
833
|
+
e.status <- "loaded";
|
|
834
|
+
e.unmet <- V.vlist ();
|
|
835
|
+
e
|
|
836
|
+
end
|
|
837
|
+
else begin
|
|
838
|
+
held h e;
|
|
839
|
+
cascade h e (V.vmap ());
|
|
840
|
+
(try run h e "deactivate"
|
|
841
|
+
with err ->
|
|
842
|
+
ignore (unwind h e);
|
|
843
|
+
e.status <- "failed";
|
|
844
|
+
raise err);
|
|
845
|
+
releasecheck e (unwind h e);
|
|
846
|
+
e.status <- "loaded";
|
|
847
|
+
reconcile h;
|
|
848
|
+
e
|
|
849
|
+
end
|
|
850
|
+
end
|
|
851
|
+
|
|
852
|
+
and unload h r =
|
|
853
|
+
guard h;
|
|
854
|
+
let e = need h r in
|
|
855
|
+
if "live" = e.status || "pending" = e.status then begin
|
|
856
|
+
if "live" = e.status then begin
|
|
857
|
+
held h e;
|
|
858
|
+
cascade h e (V.vmap ());
|
|
859
|
+
(try run h e "deactivate"
|
|
860
|
+
with err ->
|
|
861
|
+
(* §5.2: ANY failure during a transition lands the instance in
|
|
862
|
+
`failed`, with the scope STILL FULLY UNWOUND. An earlier
|
|
863
|
+
draft let the raise propagate straight out of `unload`,
|
|
864
|
+
which left the instance `live` and its scope untouched —
|
|
865
|
+
reporting a failure while leaking exactly the resources the
|
|
866
|
+
failure was about. *)
|
|
867
|
+
ignore (unwind h e);
|
|
868
|
+
e.status <- "failed";
|
|
869
|
+
raise err);
|
|
870
|
+
releasecheck e (unwind h e)
|
|
871
|
+
end;
|
|
872
|
+
e.status <- "loaded"
|
|
873
|
+
end;
|
|
874
|
+
let drop () = h.instances <- List.filter (fun x -> x != e) h.instances in
|
|
875
|
+
if "loaded" = e.status || "failed" = e.status then
|
|
876
|
+
(try run h e "close" with err -> drop (); raise err);
|
|
877
|
+
drop ()
|
|
878
|
+
|
|
879
|
+
(* EAGER reconciliation: run to a fixed point rather than scheduling.
|
|
880
|
+
|
|
881
|
+
Two directions, and both are the reason `pending` exists. Activation
|
|
882
|
+
is a STANDING REQUEST, not a one-shot event: a pending instance
|
|
883
|
+
whose requirement arrives activates without being asked again, and a
|
|
884
|
+
LIVE instance whose requirement is lost goes back to pending —
|
|
885
|
+
recursively, through its own consumers. *)
|
|
886
|
+
and reconcile h =
|
|
887
|
+
let moved = ref true in
|
|
888
|
+
let rounds = ref 0 in
|
|
889
|
+
while !moved && !rounds <= 1000 do
|
|
890
|
+
moved := false;
|
|
891
|
+
incr rounds;
|
|
892
|
+
|
|
893
|
+
(* Losses first, so a cascade settles in one pass rather than
|
|
894
|
+
alternating with re-activations. *)
|
|
895
|
+
List.iter
|
|
896
|
+
(fun r ->
|
|
897
|
+
match find h r with
|
|
898
|
+
| Some e when "live" = e.status ->
|
|
899
|
+
let lost =
|
|
900
|
+
List.filter
|
|
901
|
+
(fun q ->
|
|
902
|
+
Depend.gatesactivation q && 0 = V.len (providersof h q))
|
|
903
|
+
(V.items (Depend.requirements e.options))
|
|
904
|
+
in
|
|
905
|
+
(* POLICY IS PER REQUIREMENT, not per instance (§11.3): only
|
|
906
|
+
the definition that has the requirement knows what it can
|
|
907
|
+
cope with, and one instance may hold both a `static` and a
|
|
908
|
+
`dynamic` one. A `dynamic` requirement whose provider is
|
|
909
|
+
gone leaves the consumer LIVE and notified. *)
|
|
910
|
+
if [] <> lost && List.exists Depend.restartsonloss lost then begin
|
|
911
|
+
let bad =
|
|
912
|
+
try run h e "deactivate"; false with Types.Plugin_error _ -> true
|
|
913
|
+
in
|
|
914
|
+
let errors = unwind h e in
|
|
915
|
+
if bad || 0 < V.len errors then e.status <- "failed"
|
|
916
|
+
else begin
|
|
917
|
+
e.status <- "pending";
|
|
918
|
+
e.unmet <- unmetof h e
|
|
919
|
+
end;
|
|
920
|
+
moved := true
|
|
921
|
+
end
|
|
922
|
+
| _ -> ())
|
|
923
|
+
(sortedrefs h);
|
|
924
|
+
|
|
925
|
+
List.iter
|
|
926
|
+
(fun r ->
|
|
927
|
+
match find h r with
|
|
928
|
+
| Some e when "pending" = e.status && 0 = V.len (unmetof h e) -> (
|
|
929
|
+
try
|
|
930
|
+
run h e "activate";
|
|
931
|
+
List.iter
|
|
932
|
+
(fun req -> ignore (chosen h e req true))
|
|
933
|
+
(V.items (Depend.requirements e.options));
|
|
934
|
+
e.status <- "live";
|
|
935
|
+
e.unmet <- V.vlist ();
|
|
936
|
+
moved := true
|
|
937
|
+
with Types.Plugin_error _ ->
|
|
938
|
+
ignore (unwind h e);
|
|
939
|
+
e.status <- "failed";
|
|
940
|
+
moved := true)
|
|
941
|
+
| _ -> ())
|
|
942
|
+
(sortedrefs h)
|
|
943
|
+
done
|
|
944
|
+
|
|
945
|
+
let ready h r =
|
|
946
|
+
(* Runs the whole forward path in one call (§5.1). §15.2's verb list
|
|
947
|
+
omits this; §5.1 defines it and §15.3's `declare` row requires the
|
|
948
|
+
corpus to pin it, so the list was incomplete rather than excluding
|
|
949
|
+
it (DOCS.md §4.2). *)
|
|
950
|
+
guard h;
|
|
951
|
+
let r = Ref.canonrefs r in
|
|
952
|
+
if None = find h r then ignore (declare h r nospec);
|
|
953
|
+
(match find h r with
|
|
954
|
+
| Some e when "declared" = e.status -> ignore (load h r nospec)
|
|
955
|
+
| _ -> ());
|
|
956
|
+
activate h r
|
|
957
|
+
|
|
958
|
+
let close h =
|
|
959
|
+
(* A bulk teardown removing the holders too, so `hold` is suspended
|
|
960
|
+
for exactly those holders (§11.3) — while the consumers-first
|
|
961
|
+
cascade still runs, which is the half that matters. *)
|
|
962
|
+
h.coordinated <- true;
|
|
963
|
+
(* Reverse load order: highest `pos` first, ref-descending for a tie,
|
|
964
|
+
so a consumer declared after its provider goes down first. *)
|
|
965
|
+
let refs =
|
|
966
|
+
List.map (fun e -> e.iref)
|
|
967
|
+
(List.stable_sort
|
|
968
|
+
(fun a b ->
|
|
969
|
+
if a.pos <> b.pos then compare b.pos a.pos else compare b.iref a.iref)
|
|
970
|
+
h.instances)
|
|
971
|
+
in
|
|
972
|
+
(* A COORDINATED FLAG THAT SURVIVES A RAISE IS A DISABLED GUARD. The
|
|
973
|
+
canonical wraps the teardown in [try/finally[; here an unload that
|
|
974
|
+
raises would skip the reset and leave the host permanently
|
|
975
|
+
[coordinated[, so a caller that catches the error and carries on under
|
|
976
|
+
[dependency: "hold"[ gets ad-hoc deactivation with the holder check
|
|
977
|
+
silently off. *)
|
|
978
|
+
(match List.iter (fun r -> if None <> find h r then unload h r) refs with
|
|
979
|
+
| () -> h.coordinated <- false
|
|
980
|
+
| exception err -> h.coordinated <- false; raise err)
|
|
981
|
+
|
|
982
|
+
(* AN INSTANCE MAY ITSELF BE A HOST (§6.5), and THE OUTER ONE OWNS THE
|
|
983
|
+
INNER ONE'S LIFETIME. Registering the teardown in the instance scope
|
|
984
|
+
is what makes that true rather than aspirational: the inner host
|
|
985
|
+
closes when the outer instance deactivates, in the same reverse
|
|
986
|
+
unwind as every other resource.
|
|
987
|
+
|
|
988
|
+
It does NOT count toward `open` — a teardown is not an acquisition
|
|
989
|
+
(`nest/open`). *)
|
|
990
|
+
let nest e opts =
|
|
991
|
+
if not e.owner.intransition then
|
|
992
|
+
Types.fail "plugin_release_scope" "nest called outside a lifecycle callback";
|
|
993
|
+
let inner = makehost opts in
|
|
994
|
+
e.scope <-
|
|
995
|
+
e.scope @ [ { sfn = Some (fun () -> close inner); done_ = false;
|
|
996
|
+
counts = false } ];
|
|
997
|
+
e.inner <- Some inner;
|
|
998
|
+
inner
|
|
999
|
+
|
|
1000
|
+
(* ------------------------------------------------------------------ *)
|
|
1001
|
+
(* documents *)
|
|
1002
|
+
(* ------------------------------------------------------------------ *)
|
|
1003
|
+
|
|
1004
|
+
(* Empty the target and refill it, so callers holding the reference see
|
|
1005
|
+
the new values. A definition's callbacks close over the options map
|
|
1006
|
+
they were handed at `define`; replacing the reference would leave
|
|
1007
|
+
every binding reading the values the first apply gave it. *)
|
|
1008
|
+
let refill target source =
|
|
1009
|
+
List.iter (fun k -> V.del target k) (V.keys target);
|
|
1010
|
+
List.iter (fun k -> V.set target k (V.get source k)) (V.keys source)
|
|
1011
|
+
|
|
1012
|
+
let shapeof h r =
|
|
1013
|
+
match Catalog.get h.hcatalog (Ref.refname r) with
|
|
1014
|
+
| Some d -> d.shape
|
|
1015
|
+
| None -> V.vnull
|
|
1016
|
+
|
|
1017
|
+
let apply h doc profile =
|
|
1018
|
+
guard h;
|
|
1019
|
+
let inp = V.vmap () in
|
|
1020
|
+
V.set inp "doc" doc;
|
|
1021
|
+
V.set inp "profile" (if V.is_null profile then h.profile else profile);
|
|
1022
|
+
V.set inp "keys" h.keys;
|
|
1023
|
+
V.set inp "reserved" h.reserved;
|
|
1024
|
+
let norm = Config.normalizeconfig inp in
|
|
1025
|
+
|
|
1026
|
+
let want = List.map V.as_str (V.items (V.get norm "order")) in
|
|
1027
|
+
let optionsof = V.vmap () in
|
|
1028
|
+
List.iter
|
|
1029
|
+
(fun r ->
|
|
1030
|
+
let oin = V.vmap () in
|
|
1031
|
+
V.set oin "ref" (V.vstr r);
|
|
1032
|
+
V.set oin "doc" doc;
|
|
1033
|
+
V.set oin "profile" (if V.is_null profile then h.profile else profile);
|
|
1034
|
+
V.set oin "shape" (shapeof h r);
|
|
1035
|
+
if V.is_map h.defaults then
|
|
1036
|
+
V.set oin "hostdefaults" (V.get h.defaults (Ref.refname r));
|
|
1037
|
+
V.set optionsof r (Config.resolveoptions oin))
|
|
1038
|
+
want;
|
|
1039
|
+
|
|
1040
|
+
let instancespec = V.get norm "instance" in
|
|
1041
|
+
let wantlive ent =
|
|
1042
|
+
V.is_map ent && V.truthy (V.get ent "active")
|
|
1043
|
+
&& "eager" = V.as_str (V.get ent "start")
|
|
1044
|
+
in
|
|
1045
|
+
|
|
1046
|
+
(* --- phase 1: deactivations and unloads, in REVERSE load order --- *)
|
|
1047
|
+
let drop =
|
|
1048
|
+
List.filter
|
|
1049
|
+
(fun e ->
|
|
1050
|
+
"declared" <> e.status && not (wantlive (V.get instancespec e.iref)))
|
|
1051
|
+
h.instances
|
|
1052
|
+
in
|
|
1053
|
+
let drop =
|
|
1054
|
+
List.map (fun e -> e.iref)
|
|
1055
|
+
(List.stable_sort
|
|
1056
|
+
(fun a b ->
|
|
1057
|
+
if a.pos <> b.pos then compare b.pos a.pos else compare b.iref a.iref)
|
|
1058
|
+
drop)
|
|
1059
|
+
in
|
|
1060
|
+
List.iter (unload h) drop;
|
|
1061
|
+
|
|
1062
|
+
(* --- phase 2: declare and patch EVERYTHING, in load order -------- *)
|
|
1063
|
+
List.iter
|
|
1064
|
+
(fun r ->
|
|
1065
|
+
let ent = V.get instancespec r in
|
|
1066
|
+
let spec =
|
|
1067
|
+
{ nospec with sorder = V.get ent "order";
|
|
1068
|
+
spos = Some (V.as_num (V.get ent "pos")) }
|
|
1069
|
+
in
|
|
1070
|
+
let e = declare h r spec in
|
|
1071
|
+
(* The bar is REASSERTED ON EVERY APPLY, in both directions — a
|
|
1072
|
+
document that turns the instance back on clears it, which is
|
|
1073
|
+
the whole point of a config switch. *)
|
|
1074
|
+
e.barred <- not (V.truthy (V.get ent "active"));
|
|
1075
|
+
refill e.options (V.get optionsof r);
|
|
1076
|
+
e.order <- V.get ent "order";
|
|
1077
|
+
e.pos <- V.as_num (V.get ent "pos"))
|
|
1078
|
+
want;
|
|
1079
|
+
|
|
1080
|
+
(* --- phase 3: loads, then phase 4: activations, in load order ---- *)
|
|
1081
|
+
List.iter
|
|
1082
|
+
(fun r -> if wantlive (V.get instancespec r) then ignore (load h r nospec))
|
|
1083
|
+
want;
|
|
1084
|
+
List.iter
|
|
1085
|
+
(fun r -> if wantlive (V.get instancespec r) then ignore (activate h r))
|
|
1086
|
+
want
|
|
1087
|
+
|
|
1088
|
+
let setoptions h r patch =
|
|
1089
|
+
guard h;
|
|
1090
|
+
let e = need h r in
|
|
1091
|
+
let previous = V.clone e.options in
|
|
1092
|
+
let inp = V.vmap () in
|
|
1093
|
+
V.set inp "ref" (V.vstr e.iref);
|
|
1094
|
+
V.set inp "shape" (shapeof h e.iref);
|
|
1095
|
+
V.set inp "doc" (V.vmap ());
|
|
1096
|
+
V.set inp "patch" (Types.mergevalue previous patch);
|
|
1097
|
+
refill e.options (Config.resolveoptions inp);
|
|
1098
|
+
|
|
1099
|
+
if "live" = e.status then
|
|
1100
|
+
match e.idef.reconfigure with
|
|
1101
|
+
| Some f ->
|
|
1102
|
+
h.intransition <- true;
|
|
1103
|
+
h.phase <- "reconfigure";
|
|
1104
|
+
let finish () = h.intransition <- false; h.phase <- "" in
|
|
1105
|
+
(match f e e.options previous with
|
|
1106
|
+
| () -> finish ()
|
|
1107
|
+
| exception err -> finish (); raise err)
|
|
1108
|
+
| None ->
|
|
1109
|
+
(* Always correct and sometimes expensive; `reconfigure` exists
|
|
1110
|
+
to make the common case cheap (§9.4). *)
|
|
1111
|
+
ignore (deactivate h e.iref);
|
|
1112
|
+
ignore (activate h e.iref)
|