@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,355 @@
|
|
|
1
|
+
package JAVAPACKAGE.sdktest;
|
|
2
|
+
|
|
3
|
+
// The corpus test runner: vendored @voxgig/omni driven through its NATIVE
|
|
4
|
+
// API (com.voxgig.omni.Runner.makeRunner(specref, provider)), presented to
|
|
5
|
+
// the corpus tests in the struct-runner shape they already use (run.spec,
|
|
6
|
+
// run.runset, run.runsetflags, run.client). No compat shim is vendored:
|
|
7
|
+
// the adapter below IS the whole bridge, per language, per the vendor-tag
|
|
8
|
+
// rollout (docs/design/vendor-tag-rollout.md, Decision 4). It supersedes
|
|
9
|
+
// the engine half of RunnerSupport (runset/matchDeep) and the whole
|
|
10
|
+
// StructRunner class (support lives on in RunnerSupport).
|
|
11
|
+
//
|
|
12
|
+
// Java-specific decisions, each load-bearing:
|
|
13
|
+
//
|
|
14
|
+
// 1. CONTEXTS STAY MAPS ACROSS THE RUNNER. omni sets `entry.ctx` to the
|
|
15
|
+
// contextified args[0] and `match: {ctx: ...}` assertions read THROUGH
|
|
16
|
+
// it with omni's own getpath, which walks JSON maps only. A typed
|
|
17
|
+
// Context there would make every ctx assertion read "absent". So the
|
|
18
|
+
// subjects receive the MAP, build the typed Context with
|
|
19
|
+
// OmniResolver.omniCtx(args[0], ...) at the call site, run the
|
|
20
|
+
// utility, and write the observable ctx state back into the same map
|
|
21
|
+
// with omniSyncCtx - which is what makes the live SDK reachable
|
|
22
|
+
// through ctx.client for the generated utilities (the ts resolver gets
|
|
23
|
+
// both for free from prototype delegation; maps-plus-sync is the same
|
|
24
|
+
// idiom the go resolver uses for the same contract, omni#56).
|
|
25
|
+
//
|
|
26
|
+
// 2. ZERO-ARGUMENT ENTRIES. The corpus carries entries with no `in`,
|
|
27
|
+
// `args` or `ctx`, meaning "call the subject with NO argument". The
|
|
28
|
+
// vendored java port already distinguishes that case natively - such
|
|
29
|
+
// an entry arrives as one Json.ABSENT argument (java has no
|
|
30
|
+
// `undefined`, so absence is a sentinel) - which is why java needs no
|
|
31
|
+
// novalargs spec rewrite (go) and no compat shim (lua/php). The
|
|
32
|
+
// resolver's ONE conversion is the sentinel swap at the call boundary:
|
|
33
|
+
// Json.ABSENT -> Struct.UNDEF on the way in (a whole argument only -
|
|
34
|
+
// a parsed corpus value never contains one), Struct.UNDEF ->
|
|
35
|
+
// Json.ABSENT on the way out, walked, because getpath can leave UNDEF
|
|
36
|
+
// inside a partially-resolved node. Ported from the struct java port's
|
|
37
|
+
// own omni bridge (voxgig/struct java/src/test/Omni.java).
|
|
38
|
+
//
|
|
39
|
+
// 3. THE VENDORED JAVA PORT LACKS THE omni#54 RUNNER FIXES the
|
|
40
|
+
// TypeScript port has at this tag (voxgig/omni#64 landed them for
|
|
41
|
+
// js/go/py only): Util.jsonstr has no cycle guard, and Runner.match
|
|
42
|
+
// clones its base with Util.clone. Both only bite on CYCLIC values,
|
|
43
|
+
// and java's Util.clone/jsonstr pass non-JSON values (a typed Context,
|
|
44
|
+
// an SDK client) through without walking them - so decision 1 above
|
|
45
|
+
// (JSON-only maps in entries, typed state kept out of them) is also
|
|
46
|
+
// what keeps every value the runner clones or stringifies acyclic.
|
|
47
|
+
// The errify half (non-Error throwables) cannot arise: java subjects
|
|
48
|
+
// fail by THROWING, and the errify hook below keeps the SDK error's
|
|
49
|
+
// code for `match: {err: {code: ...}}` assertions.
|
|
50
|
+
//
|
|
51
|
+
// 4. NO subject-by-name provider hook. Java's Utility fields are TYPED
|
|
52
|
+
// functional interfaces (CtxFn<T> takes a Context), so a generic name
|
|
53
|
+
// lookup cannot produce omni's (Object...) subject without a per-name
|
|
54
|
+
// adapter; every generated call site passes its subject explicitly,
|
|
55
|
+
// so the hook would be dead weight. DEF.client entries still resolve:
|
|
56
|
+
// the client hook below builds another live test SDK.
|
|
57
|
+
|
|
58
|
+
import java.nio.file.Path;
|
|
59
|
+
import java.util.ArrayList;
|
|
60
|
+
import java.util.IdentityHashMap;
|
|
61
|
+
import java.util.LinkedHashMap;
|
|
62
|
+
import java.util.List;
|
|
63
|
+
import java.util.Map;
|
|
64
|
+
import java.util.Set;
|
|
65
|
+
|
|
66
|
+
import com.voxgig.omni.Json;
|
|
67
|
+
import com.voxgig.omni.Runner;
|
|
68
|
+
import com.voxgig.omni.Util;
|
|
69
|
+
|
|
70
|
+
import JAVAPACKAGE.core.Context;
|
|
71
|
+
import JAVAPACKAGE.core.Helpers;
|
|
72
|
+
import JAVAPACKAGE.core.ProjectNameSDK;
|
|
73
|
+
import JAVAPACKAGE.core.SdkError;
|
|
74
|
+
import JAVAPACKAGE.core.Utility;
|
|
75
|
+
import JAVAPACKAGE.utility.struct.Struct;
|
|
76
|
+
|
|
77
|
+
@SuppressWarnings({"unchecked"})
|
|
78
|
+
public final class OmniResolver {
|
|
79
|
+
|
|
80
|
+
// The sentinels, under the names the corpus tests already use.
|
|
81
|
+
public static final String NULLMARK = Runner.NULLMARK;
|
|
82
|
+
public static final String UNDEFMARK = Runner.UNDEFMARK;
|
|
83
|
+
public static final String EXISTSMARK = Runner.EXISTSMARK;
|
|
84
|
+
|
|
85
|
+
private OmniResolver() {}
|
|
86
|
+
|
|
87
|
+
/** The function under test, in omni's native argument shape. */
|
|
88
|
+
@FunctionalInterface
|
|
89
|
+
public interface Subject {
|
|
90
|
+
Object call(Object... args) throws Exception;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** Resolves one named section of the spec. */
|
|
94
|
+
@FunctionalInterface
|
|
95
|
+
public interface NamedRunner {
|
|
96
|
+
Run runner(String name, Object store);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* What the runner returns for one named spec section - the struct-runner
|
|
101
|
+
* shape the corpus call sites consume. A failing entry throws
|
|
102
|
+
* {@link Runner.OmniError}, which fails the JUnit test with the entry
|
|
103
|
+
* named.
|
|
104
|
+
*/
|
|
105
|
+
public static final class Run {
|
|
106
|
+
public final Map<String, Object> spec;
|
|
107
|
+
public final Object client;
|
|
108
|
+
|
|
109
|
+
private final Runner.RunPack pack;
|
|
110
|
+
|
|
111
|
+
private Run(Runner.RunPack pack, Object client) {
|
|
112
|
+
this.pack = pack;
|
|
113
|
+
this.client = client;
|
|
114
|
+
this.spec = Helpers.toMapAny(pack.spec);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/** A named group of the resolved spec. */
|
|
118
|
+
public Object set(String name) {
|
|
119
|
+
return pack.set(name);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** Run one set of test entries with omni's default flags. */
|
|
123
|
+
public void runset(Object testspec, Subject subject) {
|
|
124
|
+
runsetflags(testspec, null, subject);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/** Run one set of test entries with explicit flags. */
|
|
128
|
+
public void runsetflags(Object testspec, Map<String, Object> flags, Subject subject) {
|
|
129
|
+
Runner.Subject wrapped =
|
|
130
|
+
null == subject
|
|
131
|
+
? null
|
|
132
|
+
: args -> {
|
|
133
|
+
Object[] sargs = new Object[args.length];
|
|
134
|
+
for (int index = 0; index < args.length; index++) {
|
|
135
|
+
sargs[index] =
|
|
136
|
+
Util.isabsent(args[index]) ? Struct.UNDEF : args[index];
|
|
137
|
+
}
|
|
138
|
+
return toomni(subject.call(sargs));
|
|
139
|
+
};
|
|
140
|
+
pack.runsetflags(
|
|
141
|
+
testspec, null == flags ? new LinkedHashMap<>() : flags, wrapped);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/** Run-time options for a set of test entries ({@code flags("null", false)}). */
|
|
146
|
+
public static Map<String, Object> flags(Object... pairs) {
|
|
147
|
+
return Runner.flags(pairs);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* The struct runner's makeRunner(testfile, client) signature, backed by
|
|
152
|
+
* vendored omni. `testfile` is a spec path (absolutized against the
|
|
153
|
+
* working directory - omni's docs say a port must resolve the path
|
|
154
|
+
* itself) or an already-parsed spec value (omni's own capability), which
|
|
155
|
+
* keeps smoke tests free of fixture files.
|
|
156
|
+
*/
|
|
157
|
+
public static NamedRunner makeRunner(Object testfile, Object client) {
|
|
158
|
+
Object specref = testfile;
|
|
159
|
+
if (testfile instanceof String) {
|
|
160
|
+
specref = Path.of((String) testfile).toAbsolutePath().normalize().toString();
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
Runner.Provider provider = sdkProvider(client);
|
|
164
|
+
Runner.RunnerPack runner = Runner.makeRunner(specref, provider);
|
|
165
|
+
|
|
166
|
+
return (name, store) -> new Run(runner.runner(name, store), client);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* This port's model -> omni's. Walked, because {@code Struct.UNDEF} CAN
|
|
171
|
+
* sit inside a result - getpath leaves it in a partially-resolved node -
|
|
172
|
+
* and a container built by the port is its own, so rewriting it harms
|
|
173
|
+
* nothing. (Subject ARGUMENTS are never walked: containers must cross by
|
|
174
|
+
* identity so `match.args` sees in-place mutation, e.g. setpath.)
|
|
175
|
+
*/
|
|
176
|
+
static Object toomni(Object val) {
|
|
177
|
+
if (Struct.UNDEF == val) {
|
|
178
|
+
return Json.ABSENT;
|
|
179
|
+
}
|
|
180
|
+
if (val instanceof Map) {
|
|
181
|
+
Map<String, Object> out = new LinkedHashMap<>();
|
|
182
|
+
for (Map.Entry<String, Object> entry : ((Map<String, Object>) val).entrySet()) {
|
|
183
|
+
out.put(entry.getKey(), toomni(entry.getValue()));
|
|
184
|
+
}
|
|
185
|
+
return out;
|
|
186
|
+
}
|
|
187
|
+
if (val instanceof List) {
|
|
188
|
+
List<Object> out = new ArrayList<>();
|
|
189
|
+
for (Object entry : (List<Object>) val) {
|
|
190
|
+
out.add(toomni(entry));
|
|
191
|
+
}
|
|
192
|
+
return out;
|
|
193
|
+
}
|
|
194
|
+
return val;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// defProviders marks the providers a spec's DEF.client block built - the
|
|
198
|
+
// only ones omniCtx lets override a call site's explicit client (the
|
|
199
|
+
// base provider rides on EVERY ctx entry, and letting it win would
|
|
200
|
+
// defeat sections that deliberately construct a differently-optioned
|
|
201
|
+
// client). Identity maps, guarded: JUnit may run tests concurrently.
|
|
202
|
+
private static final Map<Runner.Provider, Object> PROVIDER_CLIENTS =
|
|
203
|
+
new IdentityHashMap<>();
|
|
204
|
+
private static final Set<Runner.Provider> DEF_PROVIDERS =
|
|
205
|
+
java.util.Collections.newSetFromMap(new IdentityHashMap<>());
|
|
206
|
+
|
|
207
|
+
private static synchronized void registerProvider(
|
|
208
|
+
Runner.Provider provider, Object client) {
|
|
209
|
+
PROVIDER_CLIENTS.put(provider, client);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
private static synchronized void markDefProvider(Runner.Provider provider) {
|
|
213
|
+
DEF_PROVIDERS.add(provider);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
private static synchronized Object defProviderClient(Runner.Provider provider) {
|
|
217
|
+
return DEF_PROVIDERS.contains(provider) ? PROVIDER_CLIENTS.get(provider) : null;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** Wrap a live client as an omni provider (see decisions 1 and 4 above). */
|
|
221
|
+
static Runner.Provider sdkProvider(Object client) {
|
|
222
|
+
Runner.Provider provider = new Runner.Provider();
|
|
223
|
+
|
|
224
|
+
// A DEF.client entry becomes another live test SDK, wrapped the same
|
|
225
|
+
// way and marked as DEF-built so omniCtx resolves it back.
|
|
226
|
+
provider.client = (options) -> {
|
|
227
|
+
Map<String, Object> opts = Helpers.toMapAny(options);
|
|
228
|
+
Runner.Provider sub =
|
|
229
|
+
sdkProvider(ProjectNameSDK.testSDK(null,
|
|
230
|
+
null == opts ? new LinkedHashMap<>() : opts));
|
|
231
|
+
markDefProvider(sub);
|
|
232
|
+
return sub;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
// Client options may reference the runner store.
|
|
236
|
+
provider.inject = (options, store) -> {
|
|
237
|
+
Struct.inject(options, store);
|
|
238
|
+
return options;
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
// Keep the SDK error's code beside its message, so a corpus
|
|
242
|
+
// `match: {err: {code: ...}}` can assert on it - the java analogue of
|
|
243
|
+
// the omni#54 errify fix (see decision 3 above).
|
|
244
|
+
provider.errify = (err) -> {
|
|
245
|
+
if (err instanceof SdkError) {
|
|
246
|
+
SdkError sdkerr = (SdkError) err;
|
|
247
|
+
Map<String, Object> out = new LinkedHashMap<>();
|
|
248
|
+
out.put("name", "SdkError");
|
|
249
|
+
out.put("message", sdkerr.getMessage());
|
|
250
|
+
if (null != sdkerr.code && !sdkerr.code.isEmpty()) {
|
|
251
|
+
out.put("code", sdkerr.code);
|
|
252
|
+
}
|
|
253
|
+
return out;
|
|
254
|
+
}
|
|
255
|
+
return Runner.errify(err);
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
registerProvider(provider, client);
|
|
259
|
+
|
|
260
|
+
return provider;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Build the typed Context a generated utility takes from the ctx MAP
|
|
265
|
+
* omni handed the subject (args[0]). The map's `client` entry - an omni
|
|
266
|
+
* provider when a DEF entry selected one - resolves back to the live SDK
|
|
267
|
+
* it wraps; otherwise the given client is used. (The engine half of the
|
|
268
|
+
* retired RunnerSupport.runset call sites did this as makeCtxFromMap +
|
|
269
|
+
* fixctx, per section, by hand.)
|
|
270
|
+
*/
|
|
271
|
+
public static Context omniCtx(Object arg, ProjectNameSDK client, Utility utility) {
|
|
272
|
+
Map<String, Object> ctxmap = Helpers.toMapAny(arg);
|
|
273
|
+
if (null == ctxmap) {
|
|
274
|
+
ctxmap = new LinkedHashMap<>();
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// Only a DEF-built client overrides the caller's: the base provider is
|
|
278
|
+
// on every ctx entry, and a call site that constructed a special
|
|
279
|
+
// client (a DEF.setup options set) must keep it.
|
|
280
|
+
Object p = ctxmap.get("client");
|
|
281
|
+
if (p instanceof Runner.Provider) {
|
|
282
|
+
Object live = defProviderClient((Runner.Provider) p);
|
|
283
|
+
if (live instanceof ProjectNameSDK) {
|
|
284
|
+
client = (ProjectNameSDK) live;
|
|
285
|
+
utility = client.getUtility();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
Context ctx = RunnerSupport.makeCtxFromMap(ctxmap, client, utility);
|
|
290
|
+
RunnerSupport.fixctx(ctx, client);
|
|
291
|
+
return ctx;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Write the OBSERVABLE state of a typed context back into the ctx map
|
|
296
|
+
* the entry holds, which is where a `match: {ctx: ...}` assertion reads.
|
|
297
|
+
* The subject mutated the typed context; the map is what the runner can
|
|
298
|
+
* walk. (The retired engine call sites did this per section, by hand,
|
|
299
|
+
* as "update entry ctx for match".)
|
|
300
|
+
*/
|
|
301
|
+
public static void omniSyncCtx(Object arg, Context ctx) {
|
|
302
|
+
Map<String, Object> ctxmap = Helpers.toMapAny(arg);
|
|
303
|
+
if (null == ctxmap || null == ctx) {
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
if (null != ctx.spec) {
|
|
308
|
+
Map<String, Object> spec = new LinkedHashMap<>();
|
|
309
|
+
spec.put("base", ctx.spec.base);
|
|
310
|
+
spec.put("prefix", ctx.spec.prefix);
|
|
311
|
+
spec.put("suffix", ctx.spec.suffix);
|
|
312
|
+
spec.put("path", ctx.spec.path);
|
|
313
|
+
spec.put("method", ctx.spec.method);
|
|
314
|
+
spec.put("params", ctx.spec.params);
|
|
315
|
+
spec.put("query", ctx.spec.query);
|
|
316
|
+
spec.put("headers", ctx.spec.headers);
|
|
317
|
+
spec.put("step", ctx.spec.step);
|
|
318
|
+
spec.put("alias", ctx.spec.alias);
|
|
319
|
+
if (null != ctx.spec.body) {
|
|
320
|
+
spec.put("body", ctx.spec.body);
|
|
321
|
+
}
|
|
322
|
+
if (null != ctx.spec.url && !ctx.spec.url.isEmpty()) {
|
|
323
|
+
spec.put("url", ctx.spec.url);
|
|
324
|
+
}
|
|
325
|
+
ctxmap.put("spec", spec);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
if (null != ctx.result) {
|
|
329
|
+
Map<String, Object> res = new LinkedHashMap<>();
|
|
330
|
+
res.put("ok", ctx.result.ok);
|
|
331
|
+
res.put("status", ctx.result.status);
|
|
332
|
+
res.put("statusText", ctx.result.statusText);
|
|
333
|
+
res.put("headers", ctx.result.headers);
|
|
334
|
+
if (null != ctx.result.body) {
|
|
335
|
+
res.put("body", ctx.result.body);
|
|
336
|
+
}
|
|
337
|
+
if (null != ctx.result.err) {
|
|
338
|
+
Map<String, Object> err = new LinkedHashMap<>();
|
|
339
|
+
err.put("message", ctx.result.err.getMessage());
|
|
340
|
+
res.put("err", err);
|
|
341
|
+
}
|
|
342
|
+
if (null != ctx.result.resdata) {
|
|
343
|
+
res.put("resdata", ctx.result.resdata);
|
|
344
|
+
}
|
|
345
|
+
if (null != ctx.result.resmatch) {
|
|
346
|
+
res.put("resmatch", ctx.result.resmatch);
|
|
347
|
+
}
|
|
348
|
+
ctxmap.put("result", res);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
if (null != ctx.response) {
|
|
352
|
+
ctxmap.put("response", "exists");
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
package JAVAPACKAGE.sdktest;
|
|
2
|
+
|
|
3
|
+
// Smoke tests for the vendored omni runner itself: a runner that cannot
|
|
4
|
+
// FAIL a bad entry would turn every corpus suite vacuously green, so pin
|
|
5
|
+
// the failure paths, not just the happy one. (The java peer of
|
|
6
|
+
// tm/ts/test/omni.test.ts and tm/go/test/omnismoke_test.go.)
|
|
7
|
+
|
|
8
|
+
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
9
|
+
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
10
|
+
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
11
|
+
|
|
12
|
+
import java.util.LinkedHashMap;
|
|
13
|
+
import java.util.List;
|
|
14
|
+
import java.util.Map;
|
|
15
|
+
|
|
16
|
+
import org.junit.jupiter.api.Test;
|
|
17
|
+
|
|
18
|
+
import com.voxgig.omni.Runner;
|
|
19
|
+
|
|
20
|
+
import JAVAPACKAGE.core.ProjectNameSDK;
|
|
21
|
+
|
|
22
|
+
public class OmniSmokeTest {
|
|
23
|
+
|
|
24
|
+
// A minimal in-memory spec: no fixture file, no OMNI block (lenient v0,
|
|
25
|
+
// like the shared corpus).
|
|
26
|
+
static Map<String, Object> smokeSpec() {
|
|
27
|
+
Map<String, Object> spec = new LinkedHashMap<>();
|
|
28
|
+
Map<String, Object> primary = new LinkedHashMap<>();
|
|
29
|
+
Map<String, Object> smoke = new LinkedHashMap<>();
|
|
30
|
+
|
|
31
|
+
Map<String, Object> basic = new LinkedHashMap<>();
|
|
32
|
+
basic.put("set", List.of(
|
|
33
|
+
Map.of("in", 1, "out", 2),
|
|
34
|
+
Map.of("in", 41, "out", 42)));
|
|
35
|
+
smoke.put("basic", basic);
|
|
36
|
+
|
|
37
|
+
Map<String, Object> bad = new LinkedHashMap<>();
|
|
38
|
+
bad.put("set", List.of(Map.of("in", 1, "out", 999)));
|
|
39
|
+
smoke.put("bad", bad);
|
|
40
|
+
|
|
41
|
+
Map<String, Object> err = new LinkedHashMap<>();
|
|
42
|
+
err.put("set", List.of(Map.of("in", 0, "err", "zero refused")));
|
|
43
|
+
smoke.put("err", err);
|
|
44
|
+
|
|
45
|
+
primary.put("smoke", smoke);
|
|
46
|
+
spec.put("primary", primary);
|
|
47
|
+
return spec;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static Object smokeInc(Object... args) {
|
|
51
|
+
int n = ((Number) args[0]).intValue();
|
|
52
|
+
if (0 == n) {
|
|
53
|
+
throw new RuntimeException("smoke: zero refused");
|
|
54
|
+
}
|
|
55
|
+
return n + 1;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static OmniResolver.Run smokeRun() {
|
|
59
|
+
OmniResolver.NamedRunner runner =
|
|
60
|
+
OmniResolver.makeRunner(smokeSpec(), ProjectNameSDK.testSDK());
|
|
61
|
+
OmniResolver.Run run = runner.runner("smoke", null);
|
|
62
|
+
assertNotNull(run.spec, "smoke spec section did not resolve");
|
|
63
|
+
return run;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@Test
|
|
67
|
+
public void runsetPassesACorrectSubject() {
|
|
68
|
+
OmniResolver.Run run = smokeRun();
|
|
69
|
+
run.runset(run.spec.get("basic"), OmniSmokeTest::smokeInc);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@Test
|
|
73
|
+
public void runsetFailsAWrongResult() {
|
|
74
|
+
OmniResolver.Run run = smokeRun();
|
|
75
|
+
|
|
76
|
+
Runner.OmniError err = assertThrows(Runner.OmniError.class,
|
|
77
|
+
() -> run.runset(run.spec.get("bad"), OmniSmokeTest::smokeInc),
|
|
78
|
+
"a wrong result went unreported - the corpus suites would be vacuously green");
|
|
79
|
+
|
|
80
|
+
assertTrue(err.getMessage().contains("result mismatch"),
|
|
81
|
+
"expected a result mismatch failure, got: " + err.getMessage());
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@Test
|
|
85
|
+
public void expectedErrorIsMatchedAndAMissingOneFails() {
|
|
86
|
+
OmniResolver.Run run = smokeRun();
|
|
87
|
+
|
|
88
|
+
// The erroring subject satisfies the expected-error entry.
|
|
89
|
+
run.runset(run.spec.get("err"), OmniSmokeTest::smokeInc);
|
|
90
|
+
|
|
91
|
+
// A subject that does NOT raise must fail that same entry.
|
|
92
|
+
Runner.OmniError err = assertThrows(Runner.OmniError.class,
|
|
93
|
+
() -> run.runset(run.spec.get("err"), (args) -> args[0]),
|
|
94
|
+
"a missing expected error went unreported");
|
|
95
|
+
|
|
96
|
+
assertTrue(err.getMessage().contains("expected error did not occur"),
|
|
97
|
+
"expected an expected-error failure, got: " + err.getMessage());
|
|
98
|
+
}
|
|
99
|
+
}
|