@voxgig/sdkgen 4.8.2 → 4.9.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/action/doctor.d.ts +1 -0
- package/dist/action/doctor.js +50 -2
- package/dist/action/doctor.js.map +1 -1
- package/dist/helpers/naming.js +4 -2
- package/dist/helpers/naming.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/model/sdkgen.aon +21 -0
- package/package.json +1 -1
- package/project/.sdk/model/feature/secrets.aon +120 -18
- package/project/.sdk/model/target/c.aon +10 -0
- package/project/.sdk/model/target/clojure.aon +13 -0
- package/project/.sdk/model/target/cpp.aon +10 -0
- package/project/.sdk/model/target/csharp.aon +9 -0
- package/project/.sdk/model/target/dart.aon +10 -0
- package/project/.sdk/model/target/elixir.aon +9 -0
- package/project/.sdk/model/target/go.aon +13 -0
- package/project/.sdk/model/target/java.aon +9 -0
- package/project/.sdk/model/target/js.aon +7 -0
- package/project/.sdk/model/target/kotlin.aon +9 -0
- package/project/.sdk/model/target/lean.aon +17 -0
- package/project/.sdk/model/target/lua.aon +8 -0
- package/project/.sdk/model/target/ocaml.aon +9 -0
- package/project/.sdk/model/target/perl.aon +8 -0
- package/project/.sdk/model/target/php.aon +8 -0
- package/project/.sdk/model/target/py.aon +13 -0
- package/project/.sdk/model/target/rb.aon +8 -0
- package/project/.sdk/model/target/rust.aon +10 -0
- package/project/.sdk/model/target/scala.aon +21 -2
- package/project/.sdk/model/target/swift.aon +18 -0
- package/project/.sdk/model/target/ts.aon +13 -0
- package/project/.sdk/model/target/zig.aon +9 -0
- package/project/.sdk/src/cmp/clojure/Package_clojure.ts +9 -2
- package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +3 -0
- package/project/.sdk/src/cmp/dart/Test_dart.ts +2 -0
- package/project/.sdk/src/cmp/elixir/Package_elixir.ts +4 -1
- package/project/.sdk/src/cmp/go/Config_go.ts +59 -2
- package/project/.sdk/src/cmp/go/Main_go.ts +8 -2
- package/project/.sdk/src/cmp/java/Test_java.ts +6 -5
- package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +6 -5
- package/project/.sdk/src/cmp/lean/Package_lean.ts +23 -0
- package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +1 -0
- package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +1 -0
- package/project/.sdk/src/cmp/ocaml/Gitignore_ocaml.ts +1 -0
- package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +7 -3
- package/project/.sdk/src/cmp/py/Config_py.ts +82 -1
- package/project/.sdk/src/cmp/py/Main_py.ts +44 -0
- package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +2 -0
- package/project/.sdk/src/cmp/swift/Main_swift.ts +10 -0
- package/project/.sdk/src/cmp/swift/Package_swift.ts +13 -1
- package/project/.sdk/src/cmp/ts/Config_ts.ts +42 -17
- package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +13 -1
- package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +13 -1
- package/project/.sdk/src/cmp/zig/Package_zig.ts +15 -11
- package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +3 -3
- package/project/.sdk/src/cmp/zig/fragment/EntityListOp.fragment.zig +3 -3
- package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +3 -3
- package/project/.sdk/src/cmp/zig/utility_zig.ts +50 -1
- package/project/.sdk/tm/c/Makefile +38 -3
- package/project/.sdk/tm/c/tests/omni_resolver.h +361 -0
- package/project/.sdk/tm/c/tests/omni_smoke_test.c +237 -0
- package/project/.sdk/tm/c/tests/primary_corpus_test.c +205 -284
- package/project/.sdk/tm/c/tests/struct_corpus_test.c +292 -212
- package/project/.sdk/tm/c/tests/vendor/omni/json.c +811 -0
- package/project/.sdk/tm/c/tests/vendor/omni/omni.h +240 -0
- package/project/.sdk/tm/c/tests/vendor/omni/runner.c +940 -0
- package/project/.sdk/tm/c/tests/vendor/omni/util.c +351 -0
- package/project/.sdk/tm/c/utility/struct/utility.c +7 -2
- package/project/.sdk/tm/clojure/test/sdk/test/omni.clj +401 -0
- package/project/.sdk/tm/clojure/test/sdk/test/omni_smoke.clj +81 -0
- package/project/.sdk/tm/clojure/test/sdk/test/primary.clj +92 -58
- package/project/.sdk/tm/clojure/test/sdk/test/struct_corpus.clj +122 -149
- package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +8 -3
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +145 -0
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +445 -0
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +145 -0
- package/project/.sdk/tm/cpp/Makefile +5 -1
- package/project/.sdk/tm/cpp/test/omni_resolver.hpp +473 -0
- package/project/.sdk/tm/cpp/test/omni_smoke_test.cpp +209 -0
- package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +243 -184
- package/project/.sdk/tm/cpp/test/runner_support.hpp +68 -181
- package/project/.sdk/tm/cpp/test/struct_corpus_test.cpp +183 -56
- package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +406 -0
- package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +751 -0
- package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +256 -0
- package/project/.sdk/tm/cpp/utility/pipeline.hpp +7 -1
- package/project/.sdk/tm/csharp/test/OmniResolver.cs +491 -0
- package/project/.sdk/tm/csharp/test/OmniSmokeTest.cs +106 -0
- package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +299 -316
- package/project/.sdk/tm/csharp/test/Runner.cs +104 -269
- package/project/.sdk/tm/csharp/test/StructUtilityTest.cs +535 -724
- package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +864 -0
- package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +347 -0
- package/project/.sdk/tm/csharp/utility/MakeSpec.cs +3 -1
- package/project/.sdk/tm/csharp/utility/PrepareMethod.cs +6 -1
- package/project/.sdk/tm/csharp/utility/struct/Struct.cs +21 -5
- package/project/.sdk/tm/dart/test/omni.dart +520 -0
- package/project/.sdk/tm/dart/test/omni_smoke_test.dart +143 -0
- package/project/.sdk/tm/dart/test/primary_test.dart +86 -28
- package/project/.sdk/tm/dart/test/struct_test.dart +438 -11
- package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +7 -0
- package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +653 -0
- package/project/.sdk/tm/dart/test/vendor/omni/util.dart +232 -0
- package/project/.sdk/tm/elixir/Makefile +11 -3
- package/project/.sdk/tm/elixir/test/omni_smoke_test.exs +117 -0
- package/project/.sdk/tm/elixir/test/primary_utility_test.exs +341 -16
- package/project/.sdk/tm/elixir/test/struct_corpus_test.exs +554 -9
- package/project/.sdk/tm/elixir/test/support/omni.ex +377 -0
- package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +122 -0
- package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +623 -0
- package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +187 -0
- package/project/.sdk/tm/go/core/context.go +32 -16
- package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +261 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +78 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/config.go +652 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +250 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/env.go +194 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/export.go +80 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +238 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1575 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/order.go +248 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/point.go +184 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +123 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +79 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/types.go +296 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/util.go +87 -0
- package/project/.sdk/tm/go/feature/secrets/plugin/version.go +161 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +292 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +201 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +187 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +184 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +114 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +156 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +208 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +241 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +150 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +152 -0
- package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +143 -0
- package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +120 -0
- package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +442 -0
- package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +714 -0
- package/project/.sdk/tm/go/feature/secrets_feature.go +675 -0
- package/project/.sdk/tm/go/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +799 -0
- package/project/.sdk/tm/go/test/omni/omni.go +902 -0
- package/project/.sdk/tm/go/test/omni/util.go +381 -0
- package/project/.sdk/tm/go/test/omniresolver_test.go +748 -0
- package/project/.sdk/tm/go/test/omnismoke_test.go +112 -0
- package/project/.sdk/tm/go/test/primary_utility_test.go +123 -191
- package/project/.sdk/tm/go/test/struct_utility_test.go +323 -16
- package/project/.sdk/tm/go/test/testsupport_test.go +294 -0
- package/project/.sdk/tm/go/utility/make_options.go +8 -1
- package/project/.sdk/tm/go/utility/prepare_method.go +5 -1
- package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +2 -2
- package/project/.sdk/tm/java/test/OmniResolver.java +355 -0
- package/project/.sdk/tm/java/test/OmniSmokeTest.java +99 -0
- package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +254 -280
- package/project/.sdk/tm/java/test/RunnerSupport.java +9 -194
- package/project/.sdk/tm/java/test/StructCorpusTest.java +119 -42
- package/project/.sdk/tm/java/test/vendor/omni/Json.java +287 -0
- package/project/.sdk/tm/java/test/vendor/omni/Runner.java +851 -0
- package/project/.sdk/tm/java/test/vendor/omni/Util.java +322 -0
- package/project/.sdk/tm/java/utility/MakeSpec.java +3 -1
- package/project/.sdk/tm/java/utility/PrepareMethod.java +5 -5
- package/project/.sdk/tm/java/utility/struct/Struct.java +17 -4
- package/project/.sdk/tm/js/src/utility/StructUtility.js +3 -3
- package/project/.sdk/tm/js/test/omni.js +251 -0
- package/project/.sdk/tm/js/test/omni.test.js +105 -0
- package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +6 -2
- package/project/.sdk/tm/js/test/utility/StructUtility.test.js +27 -2
- package/project/.sdk/tm/js/test/vendor/omni/index.js +77 -0
- package/project/.sdk/tm/js/test/vendor/omni/runner.js +628 -0
- package/project/.sdk/tm/js/test/vendor/omni/util.js +229 -0
- package/project/.sdk/tm/kotlin/core/Utility.kt +1 -1
- package/project/.sdk/tm/kotlin/test/OmniResolver.kt +343 -0
- package/project/.sdk/tm/kotlin/test/OmniSmokeTest.kt +100 -0
- package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +244 -262
- package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +9 -178
- package/project/.sdk/tm/kotlin/test/StructCorpusTest.kt +121 -32
- package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +264 -0
- package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +615 -0
- package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +139 -0
- package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -3
- package/project/.sdk/tm/kotlin/utility/Prepare.kt +6 -6
- package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +18 -2
- package/project/.sdk/tm/lean/Makefile +12 -5
- package/project/.sdk/tm/lean/src/SdkUtility.lean +14 -1
- package/project/.sdk/tm/lean/test/OmniResolver.lean +358 -0
- package/project/.sdk/tm/lean/test/OmniSmoke.lean +174 -0
- package/project/.sdk/tm/lean/test/StructCorpus.lean +245 -574
- package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +155 -291
- package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +997 -0
- package/project/.sdk/tm/lua/test/omni.lua +456 -0
- package/project/.sdk/tm/lua/test/omni_smoke_test.lua +103 -0
- package/project/.sdk/tm/lua/test/primary_utility_test.lua +250 -509
- package/project/.sdk/tm/lua/test/struct_utility_test.lua +161 -70
- package/project/.sdk/tm/lua/test/vendor/omni/json.lua +268 -0
- package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +385 -0
- package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +641 -0
- package/project/.sdk/tm/lua/test/vendor/omni/util.lua +282 -0
- package/project/.sdk/tm/lua/utility/prepare_method.lua +5 -1
- package/project/.sdk/tm/lua/utility/struct/regex.lua +663 -0
- package/project/.sdk/tm/lua/utility/struct/struct.lua +660 -420
- package/project/.sdk/tm/ocaml/Makefile +37 -12
- package/project/.sdk/tm/ocaml/test/omni_resolver.ml +284 -0
- package/project/.sdk/tm/ocaml/test/omni_smoke_test.ml +169 -0
- package/project/.sdk/tm/ocaml/test/primary_utility_test.ml +84 -100
- package/project/.sdk/tm/ocaml/test/struct_corpus.ml +225 -201
- package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +1157 -0
- package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +88 -12
- package/project/.sdk/tm/perl/t/omni.pm +647 -0
- package/project/.sdk/tm/perl/t/omni_smoke.t +87 -0
- package/project/.sdk/tm/perl/t/primary_utility.t +189 -487
- package/project/.sdk/tm/perl/t/struct_utility.t +455 -389
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +649 -0
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +253 -0
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +24 -0
- package/project/.sdk/tm/perl/utility/prepare_method.pm +7 -2
- package/project/.sdk/tm/php/test/Omni.php +691 -0
- package/project/.sdk/tm/php/test/OmniSmokeTest.php +93 -0
- package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +210 -571
- package/project/.sdk/tm/php/test/StructUtilityTest.php +320 -342
- package/project/.sdk/tm/php/test/vendor/omni/Runner.php +644 -0
- package/project/.sdk/tm/php/test/vendor/omni/Util.php +283 -0
- package/project/.sdk/tm/php/utility/MakeSpec.php +10 -3
- package/project/.sdk/tm/php/utility/PrepareBody.php +7 -1
- package/project/.sdk/tm/php/utility/PrepareMethod.php +6 -2
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +36 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +141 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +50 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +333 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +198 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +147 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +52 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +139 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1053 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +171 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +95 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +116 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +59 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +87 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +112 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +76 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +116 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +192 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +120 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +140 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +62 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +101 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +151 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +115 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +90 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +101 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +119 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +125 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +211 -0
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +475 -0
- package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +467 -0
- package/project/.sdk/tm/py/pkg/utility/prepare_method.py +5 -1
- package/project/.sdk/tm/py/pkg/utility/voxgig_struct/__init__.py +0 -2
- package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +780 -529
- package/project/.sdk/tm/py/src/feature/secrets/.gitkeep +0 -0
- package/project/.sdk/tm/py/test/feature/__init__.py +0 -0
- package/project/.sdk/tm/py/test/feature/secrets/__init__.py +0 -0
- package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +337 -0
- package/project/.sdk/tm/py/test/omni.py +415 -0
- package/project/.sdk/tm/py/test/test_omni_smoke.py +74 -0
- package/project/.sdk/tm/py/test/test_primary_utility.py +144 -668
- package/project/.sdk/tm/py/test/test_struct_utility.py +74 -27
- package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +62 -0
- package/project/.sdk/tm/py/test/voxgig_omni/runner.py +580 -0
- package/project/.sdk/tm/py/test/voxgig_omni/util.py +252 -0
- package/project/.sdk/tm/rb/test/omni.rb +505 -0
- package/project/.sdk/tm/rb/test/omni_smoke_test.rb +72 -0
- package/project/.sdk/tm/rb/test/primary_utility_test.rb +174 -560
- package/project/.sdk/tm/rb/test/struct_utility_test.rb +13 -7
- package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +493 -0
- package/project/.sdk/tm/rb/test/vendor/omni/util.rb +199 -0
- package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +15 -0
- package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -1
- package/project/.sdk/tm/rust/tests/common/mod.rs +19 -242
- package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +888 -0
- package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +286 -0
- package/project/.sdk/tm/rust/tests/primary_utility_test.rs +318 -312
- package/project/.sdk/tm/rust/tests/struct_utility_test.rs +66 -28
- package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +412 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +38 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +392 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +1001 -0
- package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +161 -0
- package/project/.sdk/tm/rust/utility/prepare_method.rs +5 -1
- package/project/.sdk/tm/scala/Makefile +16 -6
- package/project/.sdk/tm/scala/sdktest/OmniResolver.scala +497 -0
- package/project/.sdk/tm/scala/sdktest/OmniSmoke.scala +192 -0
- package/project/.sdk/tm/scala/sdktest/PrimaryCorpus.scala +47 -19
- package/project/.sdk/tm/scala/sdktest/StructCorpus.scala +0 -0
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +229 -0
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +552 -0
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +104 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Constants.swift +10 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Inject.swift +28 -5
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Injection.swift +5 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Minor.swift +4 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Validate.swift +15 -5
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +6 -1
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniResolver.swift +474 -0
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniSmokeTest.swift +107 -0
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +141 -178
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/Runner.swift +17 -113
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/StructUtilityTest.swift +295 -446
- package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +364 -0
- package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +730 -0
- package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +162 -0
- package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +7 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +148 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +55 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +344 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +205 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +138 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +46 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +349 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +181 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1132 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +177 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +119 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +102 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +61 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +112 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +100 -0
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +37 -0
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +163 -30
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +27 -22
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/aws.ts +26 -36
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/azuresecrets.ts +19 -21
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/boru.ts +36 -17
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/doppler.ts +14 -21
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/gcpsecrets.ts +27 -27
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/hashicorp.ts +25 -39
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +99 -0
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/infisical.ts +14 -16
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/onepassword.ts +15 -22
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +98 -0
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{Sigv4.ts → plugins/sigv4.ts} +7 -6
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +97 -23
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +37 -0
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +4 -17
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +4 -16
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +11 -25
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +6 -23
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +106 -39
- package/project/.sdk/tm/ts/src/utility/StructUtility.ts +3 -3
- package/project/.sdk/tm/ts/test/omni.ts +104 -32
- package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +27 -0
- package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +32 -5
- package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +2 -2
- package/project/.sdk/tm/ts/test/vendor/omni/index.ts +2 -2
- package/project/.sdk/tm/zig/Makefile +15 -1
- package/project/.sdk/tm/zig/build.zig +23 -5
- package/project/.sdk/tm/zig/core/helpers.zig +52 -11
- package/project/.sdk/tm/zig/core/mem.zig +17 -1
- package/project/.sdk/tm/zig/core/utility.zig +23 -19
- package/project/.sdk/tm/zig/feature/audit.zig +2 -2
- package/project/.sdk/tm/zig/feature/cache.zig +2 -2
- package/project/.sdk/tm/zig/feature/debug.zig +5 -5
- package/project/.sdk/tm/zig/feature/netsim.zig +2 -2
- package/project/.sdk/tm/zig/feature/paging.zig +2 -2
- package/project/.sdk/tm/zig/feature/proxy.zig +15 -8
- package/project/.sdk/tm/zig/feature/streaming.zig +5 -5
- package/project/.sdk/tm/zig/feature/support.zig +3 -3
- package/project/.sdk/tm/zig/feature/telemetry.zig +5 -5
- package/project/.sdk/tm/zig/feature/test.zig +10 -5
- package/project/.sdk/tm/zig/test/fh.zig +10 -10
- package/project/.sdk/tm/zig/test/gotcha_test.zig +5 -5
- package/project/.sdk/tm/zig/test/omniresolver.zig +515 -0
- package/project/.sdk/tm/zig/test/omnismoke_test.zig +284 -0
- package/project/.sdk/tm/zig/test/pipeline_test.zig +8 -8
- package/project/.sdk/tm/zig/test/primary_utility_test.zig +145 -155
- package/project/.sdk/tm/zig/test/struct_corpus.zig +264 -187
- package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +1314 -0
- package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +446 -0
- package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +7 -4
- package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +356 -157
- package/project/sdkgen-package.json +1 -1
- package/src/action/doctor.ts +66 -2
- package/src/helpers/naming.ts +4 -2
- package/project/.sdk/tm/c/tests/runner.h +0 -274
- package/project/.sdk/tm/cpp/test/struct_runner.hpp +0 -314
- package/project/.sdk/tm/csharp/test/StructRunner.cs +0 -276
- package/project/.sdk/tm/dart/test/runner.dart +0 -406
- package/project/.sdk/tm/dart/test/struct_corpus.dart +0 -531
- package/project/.sdk/tm/elixir/test/support/struct_corpus.ex +0 -1088
- package/project/.sdk/tm/go/test/runner_test.go +0 -629
- package/project/.sdk/tm/go/test/struct_runner_test.go +0 -1094
- package/project/.sdk/tm/java/test/StructRunner.java +0 -281
- package/project/.sdk/tm/js/test/runner.js +0 -387
- package/project/.sdk/tm/kotlin/test/StructRunner.kt +0 -177
- package/project/.sdk/tm/lua/test/struct_runner.lua +0 -602
- package/project/.sdk/tm/ocaml/test/corpus_runner.ml +0 -185
- package/project/.sdk/tm/perl/t/struct_runner.pm +0 -275
- package/project/.sdk/tm/php/test/StructRunner.php +0 -275
- package/project/.sdk/tm/py/test/struct_runner.py +0 -411
- package/project/.sdk/tm/rb/test/struct_runner.rb +0 -309
- package/project/.sdk/tm/rust/tests/struct_runner/mod.rs +0 -424
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/Registry.ts +0 -90
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/http.ts +0 -66
- package/project/.sdk/tm/ts/test/vendor/omni/compat.ts +0 -188
- package/project/.sdk/tm/zig/test/struct_runner.zig +0 -464
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// VENDORED: @voxgig/omni sdk-20260907-0029-0 (swift/Sources/Omni/Util.swift)
|
|
2
|
+
// Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
// Omni internal JSON utilities.
|
|
5
|
+
//
|
|
6
|
+
// Self-contained by design: the omni runner must be able to test *any*
|
|
7
|
+
// library, including libraries that provide these same operations.
|
|
8
|
+
|
|
9
|
+
import Foundation
|
|
10
|
+
|
|
11
|
+
public let NULLMARK = "__NULL__" // Value is JSON null.
|
|
12
|
+
public let UNDEFMARK = "__UNDEF__" // Value is not present.
|
|
13
|
+
public let EXISTSMARK = "__EXISTS__" // Value exists (not undefined).
|
|
14
|
+
|
|
15
|
+
/// Deep copy a JSON value (the value model already has value semantics).
|
|
16
|
+
public func clone(_ val: Json) -> Json {
|
|
17
|
+
return val
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/// Read a value by path. Returns `.absent` when any step is missing.
|
|
21
|
+
public func getpath(_ val: Json, _ path: [String]) -> Json {
|
|
22
|
+
var current = val
|
|
23
|
+
|
|
24
|
+
for part in path {
|
|
25
|
+
switch current {
|
|
26
|
+
case .list(let entries):
|
|
27
|
+
guard let index = Int(part), 0 <= index, index < entries.count else {
|
|
28
|
+
return .absent
|
|
29
|
+
}
|
|
30
|
+
current = entries[index]
|
|
31
|
+
case .map(let entries):
|
|
32
|
+
guard let found = entries.first(where: { $0.0 == part }) else {
|
|
33
|
+
return .absent
|
|
34
|
+
}
|
|
35
|
+
current = found.1
|
|
36
|
+
default:
|
|
37
|
+
return .absent
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return current
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/// Depth-first walk: children first, then the containing node.
|
|
45
|
+
public func walk(_ val: Json, _ apply: (Json, [String]) -> Json, _ path: [String] = []) -> Json {
|
|
46
|
+
var next = val
|
|
47
|
+
|
|
48
|
+
switch val {
|
|
49
|
+
case .list(let entries):
|
|
50
|
+
var out: [Json] = []
|
|
51
|
+
for (index, entry) in entries.enumerated() {
|
|
52
|
+
out.append(walk(entry, apply, path + [String(index)]))
|
|
53
|
+
}
|
|
54
|
+
next = .list(out)
|
|
55
|
+
case .map(let entries):
|
|
56
|
+
var out: [(String, Json)] = []
|
|
57
|
+
for (key, entry) in entries {
|
|
58
|
+
out.append((key, walk(entry, apply, path + [key])))
|
|
59
|
+
}
|
|
60
|
+
next = .map(out)
|
|
61
|
+
default:
|
|
62
|
+
break
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return apply(next, path)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/// Deep structural equality: numbers by value, bools never numbers.
|
|
69
|
+
public func deepequal(_ a: Json, _ b: Json) -> Bool {
|
|
70
|
+
switch (a, b) {
|
|
71
|
+
case (.absent, .absent): return true
|
|
72
|
+
case (.null, .null): return true
|
|
73
|
+
case (.bool(let x), .bool(let y)): return x == y
|
|
74
|
+
case (.num(let x), .num(let y)): return x == y || (x.isNaN && y.isNaN)
|
|
75
|
+
case (.str(let x), .str(let y)): return x == y
|
|
76
|
+
case (.list(let x), .list(let y)):
|
|
77
|
+
if x.count != y.count { return false }
|
|
78
|
+
for index in 0..<x.count where !deepequal(x[index], y[index]) {
|
|
79
|
+
return false
|
|
80
|
+
}
|
|
81
|
+
return true
|
|
82
|
+
// Order-independent, like every other port's deepequal: two maps with the
|
|
83
|
+
// same entries are equal however they were written.
|
|
84
|
+
case (.map(let x), .map(let y)):
|
|
85
|
+
if x.count != y.count { return false }
|
|
86
|
+
for (key, val) in x {
|
|
87
|
+
guard let other = y.first(where: { $0.0 == key }), deepequal(val, other.1) else {
|
|
88
|
+
return false
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return true
|
|
92
|
+
default:
|
|
93
|
+
return false
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/// Render a number the same way in every port: 5.0 prints as 5.
|
|
98
|
+
public func numstr(_ val: Double) -> String {
|
|
99
|
+
if val.isNaN || val.isInfinite {
|
|
100
|
+
return "null"
|
|
101
|
+
}
|
|
102
|
+
if val == val.rounded(.towardZero) && abs(val) < 9_007_199_254_740_992.0 {
|
|
103
|
+
return String(Int64(val))
|
|
104
|
+
}
|
|
105
|
+
return String(val)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/// Render a string as a JSON string literal.
|
|
109
|
+
public func quote(_ val: String) -> String {
|
|
110
|
+
var out = "\""
|
|
111
|
+
|
|
112
|
+
for ch in val.unicodeScalars {
|
|
113
|
+
switch ch {
|
|
114
|
+
case "\"": out += "\\\""
|
|
115
|
+
case "\\": out += "\\\\"
|
|
116
|
+
case "\n": out += "\\n"
|
|
117
|
+
case "\r": out += "\\r"
|
|
118
|
+
case "\t": out += "\\t"
|
|
119
|
+
default:
|
|
120
|
+
if 0x20 > ch.value {
|
|
121
|
+
out += String(format: "\\u%04x", ch.value)
|
|
122
|
+
} else {
|
|
123
|
+
out.unicodeScalars.append(ch)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return out + "\""
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/// Compact JSON text with map keys sorted, identical in every port.
|
|
132
|
+
public func jsonstr(_ val: Json) -> String {
|
|
133
|
+
switch val {
|
|
134
|
+
case .absent: return "undefined"
|
|
135
|
+
case .null: return "null"
|
|
136
|
+
case .bool(let flag): return flag ? "true" : "false"
|
|
137
|
+
case .num(let entry): return numstr(entry)
|
|
138
|
+
case .str(let text): return quote(text)
|
|
139
|
+
case .list(let entries): return "[" + entries.map(jsonstr).joined(separator: ",") + "]"
|
|
140
|
+
// Insertion order, not sorted: the map now carries the order the spec
|
|
141
|
+
// author wrote, and a failure message that reorders it is harder to read
|
|
142
|
+
// against the source.
|
|
143
|
+
case .map(let entries):
|
|
144
|
+
return "{" + entries.map { quote($0.0) + ":" + jsonstr($0.1) }.joined(separator: ",") + "}"
|
|
145
|
+
// Never authored in a spec (see Json.provider) - rendered only if a
|
|
146
|
+
// failure message happens to reach into it.
|
|
147
|
+
case .provider: return quote("<provider>")
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/// Strings verbatim, everything else as compact JSON.
|
|
152
|
+
public func stringify(_ val: Json) -> String {
|
|
153
|
+
if case .str(let text) = val {
|
|
154
|
+
return text
|
|
155
|
+
}
|
|
156
|
+
return jsonstr(val)
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/// Render a path as a dotted string.
|
|
160
|
+
public func pathify(_ path: [String]) -> String {
|
|
161
|
+
return path.joined(separator: ".")
|
|
162
|
+
}
|
|
@@ -2,6 +2,12 @@ import type { Context, FeatureOptions } from '../../types'
|
|
|
2
2
|
|
|
3
3
|
import { BaseFeature } from '../base/BaseFeature'
|
|
4
4
|
import { Sekreto, envkey } from './sekreto'
|
|
5
|
+
// The plugin DEFINITIONS the model selected for this feature, emitted by
|
|
6
|
+
// Config generically from the catalogue's active `plugin.def` entries.
|
|
7
|
+
// Upstream sekreto's contract since the registry was retired: a kind not
|
|
8
|
+
// passed in `plugins` is unknown to that Sekreto, so the model's choice of
|
|
9
|
+
// plugin groups IS the SDK's provider vocabulary.
|
|
10
|
+
import { FEATURE_PLUGINS } from '../../Config'
|
|
5
11
|
|
|
6
12
|
|
|
7
13
|
// Secret access via a vendored @voxgig/sekreto provider chain, and the
|
|
@@ -107,6 +113,7 @@ class SecretsFeature extends BaseFeature {
|
|
|
107
113
|
|
|
108
114
|
this._sekreto = new Sekreto({
|
|
109
115
|
providers,
|
|
116
|
+
plugins: FEATURE_PLUGINS[this.name] || [],
|
|
110
117
|
cache: this._cache,
|
|
111
118
|
})
|
|
112
119
|
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Capability.ts)
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
/* Capabilities (§11.1).
|
|
5
|
+
*
|
|
6
|
+
* A DEPENDENCY IS ON A CAPABILITY, NOT ON A REF — because it is a
|
|
7
|
+
* dependency on something that can do the job, and which instance is
|
|
8
|
+
* doing it is exactly the configuration detail a plugin must not care
|
|
9
|
+
* about.
|
|
10
|
+
*
|
|
11
|
+
* But A BINDING IS TO AN INSTANCE, not to a capability, which is what
|
|
12
|
+
* decides behaviour when the bound provider leaves while another match
|
|
13
|
+
* remains. */
|
|
14
|
+
|
|
15
|
+
import { satisfies } from './Version'
|
|
16
|
+
|
|
17
|
+
export type Provided = {
|
|
18
|
+
name: string
|
|
19
|
+
version?: string
|
|
20
|
+
priority?: number
|
|
21
|
+
attrs?: { [k: string]: any }
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type Required = {
|
|
25
|
+
name: string
|
|
26
|
+
range?: string
|
|
27
|
+
match?: { [k: string]: any }
|
|
28
|
+
optional?: boolean
|
|
29
|
+
/** §11.3: `static` restarts the consumer when its SELECTED provider
|
|
30
|
+
* leaves, even though another still matches; `dynamic` says in
|
|
31
|
+
* writing that it can survive the swap. Static is the default because
|
|
32
|
+
* most plugins cannot, and the cost of wrongly assuming they can is a
|
|
33
|
+
* live instance holding a dead reference. */
|
|
34
|
+
policy?: 'static' | 'dynamic'
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type Candidate = {
|
|
38
|
+
ref: string
|
|
39
|
+
pos: number
|
|
40
|
+
provides: Provided
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Rank the matching live providers and return them best-first:
|
|
44
|
+
* highest `version`, then LOWEST `priority` (default 0), then
|
|
45
|
+
* declaration position `pos` ascending.
|
|
46
|
+
*
|
|
47
|
+
* `priority` is a field on the capability rather than §7's `order`
|
|
48
|
+
* band, because bands live on POINT BINDINGS: a provider may have
|
|
49
|
+
* several bindings with different bands, or none at all, so a rank
|
|
50
|
+
* reaching for one would be undefined in the common case.
|
|
51
|
+
*
|
|
52
|
+
* Without a total rank, "any provider satisfies" is true of the GRAPH
|
|
53
|
+
* and useless to the PLUGIN — two ports could bind different `store`
|
|
54
|
+
* instances, both resolve green, and behave differently, which is
|
|
55
|
+
* precisely the divergence a shared corpus exists to catch. */
|
|
56
|
+
export function resolvecapability(req: Required, candidates: Candidate[]): Candidate[] {
|
|
57
|
+
const hits = candidates.filter((c) => matches(req, c.provides))
|
|
58
|
+
hits.sort((a, b) => {
|
|
59
|
+
const av = a.provides.version, bv = b.provides.version
|
|
60
|
+
if (av !== bv) {
|
|
61
|
+
if (undefined === av) return 1
|
|
62
|
+
if (undefined === bv) return -1
|
|
63
|
+
const c = compare(bv, av) // highest version FIRST
|
|
64
|
+
if (0 !== c) return c
|
|
65
|
+
}
|
|
66
|
+
const ap = a.provides.priority || 0
|
|
67
|
+
const bp = b.provides.priority || 0
|
|
68
|
+
if (ap !== bp) return ap - bp // lowest priority first
|
|
69
|
+
return a.pos - b.pos
|
|
70
|
+
})
|
|
71
|
+
return hits
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export function matches(req: Required, prov: Provided): boolean {
|
|
75
|
+
if (req.name !== prov.name) return false
|
|
76
|
+
|
|
77
|
+
if (undefined !== req.range) {
|
|
78
|
+
if (undefined === prov.version) return false
|
|
79
|
+
if (!satisfies(prov.version, req.range)) return false
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// `match` is checked against the provider's `attrs`, key by key. A
|
|
83
|
+
// key the provider does not carry is a miss, not a pass: a
|
|
84
|
+
// requirement asking for `transactional: true` must not be satisfied
|
|
85
|
+
// by a provider that never said.
|
|
86
|
+
if (undefined !== req.match) {
|
|
87
|
+
const attrs: any = prov.attrs || {}
|
|
88
|
+
for (const k of Object.keys(req.match)) {
|
|
89
|
+
if (!(k in attrs)) return false
|
|
90
|
+
if (!matchvalue((req.match as any)[k], attrs[k])) return false
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return true
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/** PARTIAL MATCH, RECURSING INTO MAPS (§11.1).
|
|
98
|
+
*
|
|
99
|
+
* §11.1 defines `match` as "a partial match against `attrs`, with
|
|
100
|
+
* exactly the semantics voxgig/struct and the omni corpus already
|
|
101
|
+
* define for `match` — every leaf in the requirement must be present
|
|
102
|
+
* and equal in the capability, keys not mentioned are not checked."
|
|
103
|
+
*
|
|
104
|
+
* THIS FUNCTION IS WHAT "EVERY LEAF" MEANS, and an earlier draft did
|
|
105
|
+
* not have it: the check was `attrs[k] !== req.match[k]`, which for any
|
|
106
|
+
* compound value is JavaScript REFERENCE IDENTITY. A requirement and a
|
|
107
|
+
* capability are declared in different places and are never the same
|
|
108
|
+
* object, so `match: {limits: {max: 5}}` could not be satisfied by any
|
|
109
|
+
* provider at all — including one declaring exactly that. The flat
|
|
110
|
+
* reading is invisible while every corpus entry is scalar, which is why
|
|
111
|
+
* the go port found it and P2 did not.
|
|
112
|
+
*
|
|
113
|
+
* A LIST IS COMPARED LEAF-WISE AT THE SAME LENGTH, not as a subset.
|
|
114
|
+
* "the first two of your three regions" is not something `match` can
|
|
115
|
+
* say, and inventing a spelling for it would be inventing the filter
|
|
116
|
+
* language §11.1 explicitly declines to add. */
|
|
117
|
+
export function matchvalue(want: any, got: any): boolean {
|
|
118
|
+
if (isMap(want)) {
|
|
119
|
+
if (!isMap(got)) return false
|
|
120
|
+
for (const k of Object.keys(want)) {
|
|
121
|
+
if (!(k in got)) return false
|
|
122
|
+
if (!matchvalue(want[k], got[k])) return false
|
|
123
|
+
}
|
|
124
|
+
return true
|
|
125
|
+
}
|
|
126
|
+
if (Array.isArray(want)) {
|
|
127
|
+
if (!Array.isArray(got) || want.length !== got.length) return false
|
|
128
|
+
for (let i = 0; i < want.length; i++) {
|
|
129
|
+
if (!matchvalue(want[i], got[i])) return false
|
|
130
|
+
}
|
|
131
|
+
return true
|
|
132
|
+
}
|
|
133
|
+
return want === got
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function isMap(v: any): boolean {
|
|
137
|
+
return null != v && 'object' === typeof v && !Array.isArray(v)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function compare(a: string, b: string): number {
|
|
141
|
+
const pa = a.split('.').map(Number)
|
|
142
|
+
const pb = b.split('.').map(Number)
|
|
143
|
+
for (let i = 0; i < 3; i++) {
|
|
144
|
+
const x = pa[i] || 0, y = pb[i] || 0
|
|
145
|
+
if (x !== y) return x < y ? -1 : 1
|
|
146
|
+
}
|
|
147
|
+
return 0
|
|
148
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Catalog.ts)
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
|
+
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
/* The definition catalog (§10.1).
|
|
5
|
+
*
|
|
6
|
+
* A definition is registered once and may back many instances. Option
|
|
7
|
+
* shapes are validated AT REGISTRATION, not when a document happens to
|
|
8
|
+
* exercise a key — so a malformed shape fails once, and in the same
|
|
9
|
+
* place everywhere (§9.4). */
|
|
10
|
+
|
|
11
|
+
import { fail } from './Types'
|
|
12
|
+
import { checkname } from './Ref'
|
|
13
|
+
import { checkshape } from './Config'
|
|
14
|
+
|
|
15
|
+
export type Definition = {
|
|
16
|
+
name: string
|
|
17
|
+
shape?: any
|
|
18
|
+
define?: (inst: any) => void
|
|
19
|
+
activate?: (inst: any) => void
|
|
20
|
+
deactivate?: (inst: any) => void
|
|
21
|
+
close?: (inst: any) => void
|
|
22
|
+
reconfigure?: (inst: any, options: any, previous: any) => void
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type Catalog = {
|
|
26
|
+
add: (def: Definition) => void
|
|
27
|
+
get: (name: string) => Definition | undefined
|
|
28
|
+
has: (name: string) => boolean
|
|
29
|
+
names: () => string[]
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function makecatalog(defs?: Definition[]): Catalog {
|
|
33
|
+
const map: { [name: string]: Definition } = {}
|
|
34
|
+
|
|
35
|
+
const add = (def: Definition): void => {
|
|
36
|
+
if (!def || !checkname(def.name)) {
|
|
37
|
+
fail('plugin_definition_name', 'invalid definition name: ' + (def && def.name))
|
|
38
|
+
}
|
|
39
|
+
// Validate the shape HERE. Deferring it to resolution time means a
|
|
40
|
+
// malformed shape surfaces at a different moment in every host that
|
|
41
|
+
// loads it, which is the divergence the stated domain exists to
|
|
42
|
+
// prevent.
|
|
43
|
+
if (def.shape) checkshape(def.shape)
|
|
44
|
+
map[def.name] = def
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
for (const d of defs || []) add(d)
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
add,
|
|
51
|
+
get: (name: string) => map[name],
|
|
52
|
+
has: (name: string) => undefined !== map[name],
|
|
53
|
+
names: () => Object.keys(map).sort(),
|
|
54
|
+
}
|
|
55
|
+
}
|