@voxgig/sdkgen 4.8.1 → 4.8.3
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 +2 -2
- 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/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/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 +209 -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 +151 -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 +439 -0
- package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +685 -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 +897 -0
- package/project/.sdk/tm/go/test/omni/util.go +360 -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 +613 -0
- package/project/.sdk/tm/js/test/vendor/omni/util.js +212 -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 +74 -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 +152 -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 +92 -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 +455 -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 +566 -0
- package/project/.sdk/tm/py/test/voxgig_omni/util.py +237 -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/test/primary_utility_test.zig +1 -1
- package/project/.sdk/tm/zig/test/struct_runner.zig +5 -4
- 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
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# VENDORED: @voxgig/omni sdk-20260904-1610-0 (ruby/lib/voxgig_omni/util.rb)
|
|
2
|
+
# Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
|
|
3
|
+
# License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
# Omni internal JSON utilities.
|
|
5
|
+
#
|
|
6
|
+
# This module is deliberately self-contained: the omni runner must be able
|
|
7
|
+
# to test *any* library, including libraries that provide these same
|
|
8
|
+
# operations, so it can never borrow them from the system under test.
|
|
9
|
+
# Zero third-party dependencies, by design.
|
|
10
|
+
|
|
11
|
+
module VoxgigOmni
|
|
12
|
+
NULLMARK = '__NULL__' # Value is JSON null.
|
|
13
|
+
UNDEFMARK = '__UNDEF__' # Value is not present (thus, undefined).
|
|
14
|
+
EXISTSMARK = '__EXISTS__' # Value exists (not undefined).
|
|
15
|
+
|
|
16
|
+
# Ruby has no `undefined`, so absence needs its own marker.
|
|
17
|
+
class AbsentClass
|
|
18
|
+
def to_s
|
|
19
|
+
'ABSENT'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def inspect
|
|
23
|
+
'ABSENT'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
ABSENT = AbsentClass.new
|
|
28
|
+
|
|
29
|
+
module Util
|
|
30
|
+
module_function
|
|
31
|
+
|
|
32
|
+
# A map (JSON object)?
|
|
33
|
+
def ismap(val)
|
|
34
|
+
val.is_a?(Hash)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# A list (JSON array)?
|
|
38
|
+
def islist(val)
|
|
39
|
+
val.is_a?(Array)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# A container (map or list)?
|
|
43
|
+
def isnode(val)
|
|
44
|
+
ismap(val) || islist(val)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# A JSON number? Booleans are not numbers.
|
|
48
|
+
def isnum(val)
|
|
49
|
+
val.is_a?(Numeric) && !val.is_a?(TrueClass) && !val.is_a?(FalseClass)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Deep copy a JSON value. Other values pass through by reference.
|
|
53
|
+
def clone(val)
|
|
54
|
+
return val.map { |entry| clone(entry) } if islist(val)
|
|
55
|
+
|
|
56
|
+
if ismap(val)
|
|
57
|
+
out = {}
|
|
58
|
+
val.each { |key, subval| out[key] = clone(subval) }
|
|
59
|
+
return out
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
val
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Read a value by path. Returns ABSENT when any step is missing.
|
|
66
|
+
def getpath(val, path)
|
|
67
|
+
current = val
|
|
68
|
+
|
|
69
|
+
path.each do |part|
|
|
70
|
+
if islist(current)
|
|
71
|
+
index = part.is_a?(Integer) ? part : Integer(part.to_s, exception: false)
|
|
72
|
+
return ABSENT if index.nil? || index.negative? || index >= current.length
|
|
73
|
+
|
|
74
|
+
current = current[index]
|
|
75
|
+
elsif ismap(current)
|
|
76
|
+
key = part.to_s
|
|
77
|
+
return ABSENT unless current.key?(key)
|
|
78
|
+
|
|
79
|
+
current = current[key]
|
|
80
|
+
else
|
|
81
|
+
return ABSENT
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
current
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Depth-first walk: children first, then the containing node.
|
|
89
|
+
def walk(val, apply, key = nil, parent = nil, path = nil)
|
|
90
|
+
curpath = path || []
|
|
91
|
+
|
|
92
|
+
if isnode(val)
|
|
93
|
+
if islist(val)
|
|
94
|
+
val.each_index do |index|
|
|
95
|
+
val[index] = walk(val[index], apply, index, val, curpath + [index])
|
|
96
|
+
end
|
|
97
|
+
else
|
|
98
|
+
val.keys.each do |childkey|
|
|
99
|
+
val[childkey] = walk(val[childkey], apply, childkey, val, curpath + [childkey])
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
apply.call(key, val, parent, curpath)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Deep structural equality: numbers by value, bools never numbers.
|
|
108
|
+
def deepequal(a, b)
|
|
109
|
+
return true if a.equal?(b)
|
|
110
|
+
|
|
111
|
+
abool = a.is_a?(TrueClass) || a.is_a?(FalseClass)
|
|
112
|
+
bbool = b.is_a?(TrueClass) || b.is_a?(FalseClass)
|
|
113
|
+
return a == b if abool || bbool
|
|
114
|
+
|
|
115
|
+
# NaN equals NaN: deepequal is structural, not IEEE (as canonical).
|
|
116
|
+
if isnum(a) && isnum(b)
|
|
117
|
+
return true if a.is_a?(Float) && a.nan? && b.is_a?(Float) && b.nan?
|
|
118
|
+
|
|
119
|
+
return a == b
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
return a.equal?(b) if a.nil? || b.nil? || a.equal?(ABSENT) || b.equal?(ABSENT)
|
|
123
|
+
|
|
124
|
+
if islist(a) && islist(b)
|
|
125
|
+
return false if a.length != b.length
|
|
126
|
+
|
|
127
|
+
return a.each_index.all? { |i| deepequal(a[i], b[i]) }
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
if ismap(a) && ismap(b)
|
|
131
|
+
return false if a.length != b.length
|
|
132
|
+
|
|
133
|
+
return a.all? { |key, val| b.key?(key) && deepequal(val, b[key]) }
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
return false if islist(a) != islist(b) || ismap(a) != ismap(b)
|
|
137
|
+
|
|
138
|
+
a == b
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Render a number the same way in every port: 5.0 prints as 5.
|
|
142
|
+
def numstr(val)
|
|
143
|
+
if val.is_a?(Float)
|
|
144
|
+
return 'null' if val.nan? || val.infinite?
|
|
145
|
+
return val.to_i.to_s if val == val.to_i && val.abs < 2**53
|
|
146
|
+
|
|
147
|
+
return val.to_s
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
val.to_s
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def quote(val)
|
|
154
|
+
out = +'"'
|
|
155
|
+
val.to_s.each_char do |char|
|
|
156
|
+
out << case char
|
|
157
|
+
when '"' then '\\"'
|
|
158
|
+
when '\\' then '\\\\'
|
|
159
|
+
when "\n" then '\\n'
|
|
160
|
+
when "\r" then '\\r'
|
|
161
|
+
when "\t" then '\\t'
|
|
162
|
+
else
|
|
163
|
+
char.ord < 0x20 ? format('\\u%04x', char.ord) : char
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
out << '"'
|
|
167
|
+
out
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# Compact JSON text with map keys sorted, identical in every port.
|
|
171
|
+
def jsonstr(val)
|
|
172
|
+
return 'undefined' if val.equal?(ABSENT)
|
|
173
|
+
return 'null' if val.nil?
|
|
174
|
+
return val ? 'true' : 'false' if val.is_a?(TrueClass) || val.is_a?(FalseClass)
|
|
175
|
+
return quote(val) if val.is_a?(String)
|
|
176
|
+
return numstr(val) if isnum(val)
|
|
177
|
+
return '[' + val.map { |entry| jsonstr(entry) }.join(',') + ']' if islist(val)
|
|
178
|
+
|
|
179
|
+
if ismap(val)
|
|
180
|
+
keys = val.keys.map(&:to_s).sort
|
|
181
|
+
return '{' + keys.map { |key| quote(key) + ':' + jsonstr(val[key]) }.join(',') + '}'
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
return '[Function]' if val.is_a?(Proc) || val.is_a?(Method)
|
|
185
|
+
|
|
186
|
+
quote(val.to_s)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# Strings verbatim, everything else as compact JSON.
|
|
190
|
+
def stringify(val)
|
|
191
|
+
val.is_a?(String) ? val : jsonstr(val)
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# Render a path as a dotted string.
|
|
195
|
+
def pathify(path)
|
|
196
|
+
(path || []).map(&:to_s).join('.')
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# VENDORED: @voxgig/omni sdk-20260904-1610-0 (ruby/lib/voxgig_omni.rb)
|
|
2
|
+
# Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
|
|
3
|
+
# License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
|
+
# voxgig_omni - shared multi-language test runner.
|
|
5
|
+
|
|
6
|
+
require_relative 'util'
|
|
7
|
+
require_relative 'runner'
|
|
8
|
+
|
|
9
|
+
module VoxgigOmni
|
|
10
|
+
module_function
|
|
11
|
+
|
|
12
|
+
def make_runner(specref, provider = nil)
|
|
13
|
+
Runner.make_runner(specref, provider)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -9,6 +9,10 @@ module ProjectNameUtilities
|
|
|
9
9
|
PrepareMethod = ->(ctx) {
|
|
10
10
|
method = VoxgigStruct.getprop(ctx.point, "method")
|
|
11
11
|
next method.upcase if method.is_a?(String) && "" != method
|
|
12
|
-
|
|
12
|
+
# No default: an op name outside the convention resolves to no method,
|
|
13
|
+
# exactly as the ts reference (`methodMap[key]` is undefined there).
|
|
14
|
+
# The silent-pass inline runner hid a stray "GET" fallback here; the
|
|
15
|
+
# shared corpus (prepareMethod, opname "bad" -> null) pins it now.
|
|
16
|
+
METHOD_MAP[ctx.op.name]
|
|
13
17
|
}
|
|
14
18
|
end
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
// Shared SDK test
|
|
2
|
-
// the
|
|
3
|
-
//
|
|
1
|
+
// Shared SDK test SUPPORT: the helpers the generated entity/direct tests and
|
|
2
|
+
// the corpus call sites share — env loading, the sdk-test-control.json skip
|
|
3
|
+
// and pacing machinery, corpus access, entity-data conversion, ctx
|
|
4
|
+
// construction from a JSON test entry, and the fh* feature-test harness
|
|
5
|
+
// (mirrors tm/go/test/testsupport_test.go plus the fh* harness from
|
|
6
|
+
// tm/go/test/feature_test.go). Each test binary includes it with
|
|
7
|
+
// `mod common;`.
|
|
8
|
+
//
|
|
9
|
+
// The corpus ENGINE half of this file was retired by the vendor-tag rollout:
|
|
10
|
+
// see the note where it used to be, and tests/omni_resolver/mod.rs.
|
|
4
11
|
|
|
5
12
|
#![allow(dead_code)]
|
|
6
13
|
|
|
@@ -9,7 +16,7 @@ use std::path::PathBuf;
|
|
|
9
16
|
use std::rc::Rc;
|
|
10
17
|
|
|
11
18
|
use RUSTCRATE::core::helpers::{
|
|
12
|
-
get_bool, get_str, getp,
|
|
19
|
+
get_bool, get_str, getp, jo, json_thunk, now_ms, setp, to_int, to_map,
|
|
13
20
|
};
|
|
14
21
|
use RUSTCRATE::utility::voxgigstruct as vs;
|
|
15
22
|
use RUSTCRATE::{
|
|
@@ -233,244 +240,14 @@ pub fn json_normalize(v: &Value) -> Value {
|
|
|
233
240
|
}
|
|
234
241
|
}
|
|
235
242
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
.unwrap_or(false);
|
|
245
|
-
}
|
|
246
|
-
val.to_lowercase().contains(&pattern.to_lowercase())
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/// matchDeep (mirrors go): every leaf of `check` must equal/match the same
|
|
250
|
-
/// path in `base`; returns Some(reason) on the first mismatch.
|
|
251
|
-
pub fn match_deep(check: &Value, base: &Value) -> Option<String> {
|
|
252
|
-
fn rec(check: &Value, base: &Value, path: &mut Vec<String>) -> Option<String> {
|
|
253
|
-
match check {
|
|
254
|
-
Value::Map(cm) => {
|
|
255
|
-
for (k, cv) in cm.borrow().iter() {
|
|
256
|
-
let bv = getp(base, k);
|
|
257
|
-
path.push(k.clone());
|
|
258
|
-
let r = rec(cv, &bv, path);
|
|
259
|
-
path.pop();
|
|
260
|
-
if r.is_some() {
|
|
261
|
-
return r;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
None
|
|
265
|
-
}
|
|
266
|
-
Value::List(cl) => {
|
|
267
|
-
for (i, cv) in cl.borrow().iter().enumerate() {
|
|
268
|
-
let bv = vs::get_elem(base, &Value::Num(i as f64), Value::Noval);
|
|
269
|
-
path.push(i.to_string());
|
|
270
|
-
let r = rec(cv, &bv, path);
|
|
271
|
-
path.pop();
|
|
272
|
-
if r.is_some() {
|
|
273
|
-
return r;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
None
|
|
277
|
-
}
|
|
278
|
-
leaf => {
|
|
279
|
-
if let Value::Str(s) = leaf {
|
|
280
|
-
if s == EXISTSMARK {
|
|
281
|
-
if base.is_noval() || base.is_null() {
|
|
282
|
-
return Some(format!(
|
|
283
|
-
"{}: expected value to exist",
|
|
284
|
-
path.join(".")
|
|
285
|
-
));
|
|
286
|
-
}
|
|
287
|
-
return None;
|
|
288
|
-
}
|
|
289
|
-
if s == UNDEFMARK {
|
|
290
|
-
if !base.is_noval() && !base.is_null() {
|
|
291
|
-
return Some(format!(
|
|
292
|
-
"{}: expected undefined, got {}",
|
|
293
|
-
path.join("."),
|
|
294
|
-
vs::stringify(base, Some(60), false)
|
|
295
|
-
));
|
|
296
|
-
}
|
|
297
|
-
return None;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
let nc = json_normalize(leaf);
|
|
302
|
-
let nb = json_normalize(base);
|
|
303
|
-
if nc == nb {
|
|
304
|
-
return None;
|
|
305
|
-
}
|
|
306
|
-
if let Value::Str(cs) = leaf {
|
|
307
|
-
if !cs.is_empty() && match_string(cs, &vs::stringify(base, None, false)) {
|
|
308
|
-
return None;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
Some(format!(
|
|
312
|
-
"{}: got {}, want {}",
|
|
313
|
-
path.join("."),
|
|
314
|
-
vs::stringify(&nb, Some(120), false),
|
|
315
|
-
vs::stringify(&nc, Some(120), false)
|
|
316
|
-
))
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
let mut path = Vec::new();
|
|
321
|
-
rec(check, base, &mut path)
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// ---- runset (mirrors go runner_test.go runset) -----------------------------------
|
|
325
|
-
|
|
326
|
-
// Sections deliberately left empty in the shared corpus
|
|
327
|
-
// (.sdk/test/primary/<name>.aon carries a PENDING header). Everything else
|
|
328
|
-
// MUST contribute cases.
|
|
329
|
-
pub const PENDING_SECTIONS: &[&str] = &[
|
|
330
|
-
"fetcher", "makeFetchDef", "makeResult", "featureAdd",
|
|
331
|
-
"featureHook", "featureInit",
|
|
332
|
-
];
|
|
333
|
-
|
|
334
|
-
pub fn runset(
|
|
335
|
-
testspec: &Value,
|
|
336
|
-
subject: &mut dyn FnMut(&Value) -> Result<Value, ProjectNameError>,
|
|
337
|
-
) {
|
|
338
|
-
runset_named("", testspec, subject)
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
/// Drive one section of the shared test corpus.
|
|
342
|
-
///
|
|
343
|
-
/// This used to `return` silently when "set" was missing or not a list, so a
|
|
344
|
-
/// renamed section, a fixture that failed to compile, or an empty set reported
|
|
345
|
-
/// PASS while running zero assertions — the whole point of a shared oracle lost
|
|
346
|
-
/// without a single red test. Both conditions now panic, except for the
|
|
347
|
-
/// sections explicitly marked PENDING in the corpus.
|
|
348
|
-
pub fn runset_named(
|
|
349
|
-
name: &str,
|
|
350
|
-
testspec: &Value,
|
|
351
|
-
subject: &mut dyn FnMut(&Value) -> Result<Value, ProjectNameError>,
|
|
352
|
-
) {
|
|
353
|
-
let set = match getp(testspec, "set") {
|
|
354
|
-
Value::List(l) => Value::List(l),
|
|
355
|
-
_ => panic!(
|
|
356
|
-
"test corpus section {:?} has no `set` list — zero cases would run",
|
|
357
|
-
name
|
|
358
|
-
),
|
|
359
|
-
};
|
|
360
|
-
|
|
361
|
-
if let Value::List(l) = &set {
|
|
362
|
-
if l.borrow().is_empty() && !PENDING_SECTIONS.contains(&name) {
|
|
363
|
-
panic!(
|
|
364
|
-
"test corpus section {:?} is EMPTY — zero cases would run; add \
|
|
365
|
-
cases, or mark the fixture PENDING in .sdk/test/primary/",
|
|
366
|
-
name
|
|
367
|
-
);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
let entries: Vec<Value> = match &set {
|
|
372
|
-
Value::List(l) => l.borrow().clone(),
|
|
373
|
-
_ => Vec::new(),
|
|
374
|
-
};
|
|
375
|
-
|
|
376
|
-
for (i, entry) in entries.iter().enumerate() {
|
|
377
|
-
if !matches!(entry, Value::Map(_)) {
|
|
378
|
-
continue;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
let mark = match getp(entry, "mark") {
|
|
382
|
-
Value::Noval => String::new(),
|
|
383
|
-
m => format!(" (mark={})", vs::stringify(&m, None, false)),
|
|
384
|
-
};
|
|
385
|
-
|
|
386
|
-
let result = subject(entry);
|
|
387
|
-
let expected_err = getp(entry, "err");
|
|
388
|
-
|
|
389
|
-
match result {
|
|
390
|
-
Err(err) => {
|
|
391
|
-
if !expected_err.is_noval() && !expected_err.is_null() {
|
|
392
|
-
let errmsg = err.msg.clone();
|
|
393
|
-
if let Value::Str(exp) = &expected_err {
|
|
394
|
-
if !match_string(exp, &errmsg) {
|
|
395
|
-
panic!(
|
|
396
|
-
"entry {}{}: error mismatch: got {:?}, want contains {:?}",
|
|
397
|
-
i, mark, errmsg, exp
|
|
398
|
-
);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
// err: true means any error is acceptable.
|
|
402
|
-
if let Value::Map(_) = getp(entry, "match") {
|
|
403
|
-
let result_map = jo(vec![
|
|
404
|
-
("in", getp(entry, "in")),
|
|
405
|
-
(
|
|
406
|
-
"err",
|
|
407
|
-
jo(vec![("message", Value::str(errmsg.clone()))]),
|
|
408
|
-
),
|
|
409
|
-
]);
|
|
410
|
-
if let Some(why) =
|
|
411
|
-
match_deep(&getp(entry, "match"), &result_map)
|
|
412
|
-
{
|
|
413
|
-
panic!("entry {}{}: match: {}", i, mark, why);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
continue;
|
|
417
|
-
}
|
|
418
|
-
panic!("entry {}{}: unexpected error: {}", i, mark, err.msg);
|
|
419
|
-
}
|
|
420
|
-
Ok(out) => {
|
|
421
|
-
if !expected_err.is_noval() && !expected_err.is_null() {
|
|
422
|
-
panic!(
|
|
423
|
-
"entry {}{}: expected error containing {} but got result: {}",
|
|
424
|
-
i,
|
|
425
|
-
mark,
|
|
426
|
-
vs::stringify(&expected_err, None, false),
|
|
427
|
-
vs::stringify(&out, Some(160), false)
|
|
428
|
-
);
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
let mut matched = false;
|
|
432
|
-
if let Value::Map(_) = getp(entry, "match") {
|
|
433
|
-
let result_map = jo(vec![
|
|
434
|
-
("in", getp(entry, "in")),
|
|
435
|
-
("out", json_normalize(&out)),
|
|
436
|
-
]);
|
|
437
|
-
let args = getp(entry, "args");
|
|
438
|
-
if !args.is_noval() {
|
|
439
|
-
setp(&result_map, "args", args);
|
|
440
|
-
} else if !getp(entry, "in").is_noval() {
|
|
441
|
-
setp(&result_map, "args", ja(vec![getp(entry, "in")]));
|
|
442
|
-
}
|
|
443
|
-
let ctx_data = getp(entry, "ctx");
|
|
444
|
-
if !ctx_data.is_noval() {
|
|
445
|
-
setp(&result_map, "ctx", ctx_data);
|
|
446
|
-
}
|
|
447
|
-
if let Some(why) = match_deep(&getp(entry, "match"), &result_map) {
|
|
448
|
-
panic!("entry {}{}: match: {}", i, mark, why);
|
|
449
|
-
}
|
|
450
|
-
matched = true;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
let expected_out = getp(entry, "out");
|
|
454
|
-
if expected_out.is_noval() && matched {
|
|
455
|
-
continue;
|
|
456
|
-
}
|
|
457
|
-
if !expected_out.is_noval() {
|
|
458
|
-
let norm_result = json_normalize(&out);
|
|
459
|
-
let norm_expected = json_normalize(&expected_out);
|
|
460
|
-
if norm_result != norm_expected {
|
|
461
|
-
panic!(
|
|
462
|
-
"entry {}{}: output mismatch:\n got: {}\n want: {}",
|
|
463
|
-
i,
|
|
464
|
-
mark,
|
|
465
|
-
vs::stringify(&norm_result, Some(240), false),
|
|
466
|
-
vs::stringify(&norm_expected, Some(240), false)
|
|
467
|
-
);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
}
|
|
243
|
+
// The corpus ENGINE that used to live here — `runset` / `runset_named`
|
|
244
|
+
// (the entry loop) and `match_deep` / `match_string` (the match engine) —
|
|
245
|
+
// is superseded by the vendored @voxgig/omni runner, driven through the
|
|
246
|
+
// adapter in tests/omni_resolver/mod.rs (vendor-tag rollout, Decision 4).
|
|
247
|
+
// This file keeps its SUPPORT half under its own name — env loading, the
|
|
248
|
+
// sdk-test-control skip/pacing machinery, corpus and entity-data access,
|
|
249
|
+
// ctx construction from a JSON entry, and the fh feature harness — so the
|
|
250
|
+
// emitted call sites did not move.
|
|
474
251
|
|
|
475
252
|
// ---- ctx construction from JSON test entries --------------------------------------
|
|
476
253
|
|