@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,232 @@
|
|
|
1
|
+
// VENDORED: @voxgig/omni sdk-20260904-1610-0 (dart/lib/util.dart)
|
|
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
|
+
// Self-contained by design: the omni runner must be able to test *any*
|
|
7
|
+
// library, including libraries that provide these same operations.
|
|
8
|
+
|
|
9
|
+
const String NULLMARK = '__NULL__'; // Value is JSON null.
|
|
10
|
+
const String UNDEFMARK = '__UNDEF__'; // Value is not present.
|
|
11
|
+
const String EXISTSMARK = '__EXISTS__'; // Value exists (not undefined).
|
|
12
|
+
|
|
13
|
+
/// Absence, as distinct from a JSON null. Dart has only `null`.
|
|
14
|
+
class Absent {
|
|
15
|
+
const Absent._();
|
|
16
|
+
|
|
17
|
+
static const Absent mark = Absent._();
|
|
18
|
+
|
|
19
|
+
@override
|
|
20
|
+
String toString() => 'ABSENT';
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const Absent ABSENT = Absent.mark;
|
|
24
|
+
|
|
25
|
+
/// A map (JSON object)?
|
|
26
|
+
bool ismap(dynamic val) => val is Map;
|
|
27
|
+
|
|
28
|
+
/// A list (JSON array)?
|
|
29
|
+
bool islist(dynamic val) => val is List;
|
|
30
|
+
|
|
31
|
+
/// A container (map or list)?
|
|
32
|
+
bool isnode(dynamic val) => ismap(val) || islist(val);
|
|
33
|
+
|
|
34
|
+
/// Absent (no value at all)?
|
|
35
|
+
bool isabsent(dynamic val) => val is Absent;
|
|
36
|
+
|
|
37
|
+
/// A JSON number? Booleans are not numbers.
|
|
38
|
+
bool isnum(dynamic val) => val is num && val is! bool;
|
|
39
|
+
|
|
40
|
+
/// Deep copy a JSON value.
|
|
41
|
+
dynamic clone(dynamic val) {
|
|
42
|
+
if (val is List) {
|
|
43
|
+
return val.map<dynamic>(clone).toList();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (val is Map) {
|
|
47
|
+
final out = <String, dynamic>{};
|
|
48
|
+
val.forEach((key, subval) => out['$key'] = clone(subval));
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return val;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/// Read a value by path. Returns ABSENT when any step is missing.
|
|
56
|
+
dynamic getpath(dynamic val, List<String> path) {
|
|
57
|
+
dynamic current = val;
|
|
58
|
+
|
|
59
|
+
for (final part in path) {
|
|
60
|
+
if (current is List) {
|
|
61
|
+
final index = int.tryParse(part);
|
|
62
|
+
if (null == index || 0 > index || index >= current.length) {
|
|
63
|
+
return ABSENT;
|
|
64
|
+
}
|
|
65
|
+
current = current[index];
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (current is Map) {
|
|
70
|
+
if (!current.containsKey(part)) {
|
|
71
|
+
return ABSENT;
|
|
72
|
+
}
|
|
73
|
+
current = current[part];
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return ABSENT;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return current;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/// Depth-first walk: children first, then the containing node.
|
|
84
|
+
dynamic walk(dynamic val, dynamic Function(dynamic, List<String>) apply,
|
|
85
|
+
[List<String> path = const []]) {
|
|
86
|
+
if (val is List) {
|
|
87
|
+
for (var index = 0; index < val.length; index++) {
|
|
88
|
+
val[index] = walk(val[index], apply, [...path, '$index']);
|
|
89
|
+
}
|
|
90
|
+
} else if (val is Map) {
|
|
91
|
+
for (final key in val.keys.toList()) {
|
|
92
|
+
val[key] = walk(val[key], apply, [...path, '$key']);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return apply(val, path);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/// Deep structural equality: numbers by value, bools never numbers.
|
|
100
|
+
bool deepequal(dynamic a, dynamic b) {
|
|
101
|
+
if (identical(a, b)) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (a is bool || b is bool) {
|
|
106
|
+
return a is bool && b is bool && a == b;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (isnum(a) || isnum(b)) {
|
|
110
|
+
if (!isnum(a) || !isnum(b)) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
final anum = (a as num).toDouble();
|
|
114
|
+
final bnum = (b as num).toDouble();
|
|
115
|
+
return anum == bnum || (anum.isNaN && bnum.isNaN);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (isabsent(a) || isabsent(b)) {
|
|
119
|
+
return isabsent(a) && isabsent(b);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (null == a || null == b) {
|
|
123
|
+
return null == a && null == b;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (a is List || b is List) {
|
|
127
|
+
if (a is! List || b is! List || a.length != b.length) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
for (var index = 0; index < a.length; index++) {
|
|
131
|
+
if (!deepequal(a[index], b[index])) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (a is Map || b is Map) {
|
|
139
|
+
if (a is! Map || b is! Map || a.length != b.length) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
for (final key in a.keys) {
|
|
143
|
+
if (!b.containsKey(key) || !deepequal(a[key], b[key])) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return a == b;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/// Render a number the same way in every port: 5.0 prints as 5.
|
|
154
|
+
String numstr(num val) {
|
|
155
|
+
final asdouble = val.toDouble();
|
|
156
|
+
|
|
157
|
+
if (asdouble.isNaN || asdouble.isInfinite) {
|
|
158
|
+
return 'null';
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (asdouble == asdouble.truncateToDouble() && asdouble.abs() < 9007199254740992.0) {
|
|
162
|
+
return asdouble.toInt().toString();
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return asdouble.toString();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/// Render a string as a JSON string literal.
|
|
169
|
+
String quote(String val) {
|
|
170
|
+
final out = StringBuffer('"');
|
|
171
|
+
|
|
172
|
+
for (final ch in val.runes) {
|
|
173
|
+
if (0x22 == ch) {
|
|
174
|
+
out.write('\\"');
|
|
175
|
+
} else if (0x5C == ch) {
|
|
176
|
+
out.write('\\\\');
|
|
177
|
+
} else if (0x0A == ch) {
|
|
178
|
+
out.write('\\n');
|
|
179
|
+
} else if (0x0D == ch) {
|
|
180
|
+
out.write('\\r');
|
|
181
|
+
} else if (0x09 == ch) {
|
|
182
|
+
out.write('\\t');
|
|
183
|
+
} else if (0x20 > ch) {
|
|
184
|
+
out.write('\\u${ch.toRadixString(16).padLeft(4, '0')}');
|
|
185
|
+
} else {
|
|
186
|
+
out.writeCharCode(ch);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
out.write('"');
|
|
191
|
+
return out.toString();
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/// Compact JSON text with map keys sorted, identical in every port.
|
|
195
|
+
String jsonstr(dynamic val) {
|
|
196
|
+
if (isabsent(val)) {
|
|
197
|
+
return 'undefined';
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (null == val) {
|
|
201
|
+
return 'null';
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if (val is bool) {
|
|
205
|
+
return val ? 'true' : 'false';
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if (val is String) {
|
|
209
|
+
return quote(val);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
if (isnum(val)) {
|
|
213
|
+
return numstr(val as num);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
if (val is List) {
|
|
217
|
+
return '[${val.map<String>(jsonstr).join(',')}]';
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
if (val is Map) {
|
|
221
|
+
final keys = val.keys.map((key) => '$key').toList()..sort();
|
|
222
|
+
return '{${keys.map((key) => '${quote(key)}:${jsonstr(val[key])}').join(',')}}';
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
return quote('$val');
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/// Strings verbatim, everything else as compact JSON.
|
|
229
|
+
String stringify(dynamic val) => val is String ? val : jsonstr(val);
|
|
230
|
+
|
|
231
|
+
/// Render a path as a dotted string.
|
|
232
|
+
String pathify(List<String> path) => path.join('.');
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
.PHONY: test build clean struct
|
|
1
|
+
.PHONY: test build clean struct primary omni
|
|
2
2
|
|
|
3
|
-
# Full ExUnit suite (includes
|
|
3
|
+
# Full ExUnit suite (includes both vendored-omni corpus suites).
|
|
4
4
|
test:
|
|
5
5
|
mix test
|
|
6
6
|
|
|
7
|
-
# Only the vendored
|
|
7
|
+
# Only the struct corpus, through the vendored omni engine.
|
|
8
8
|
struct:
|
|
9
9
|
mix test test/struct_corpus_test.exs
|
|
10
10
|
|
|
11
|
+
# Only the primary-utility corpus, through the vendored omni engine.
|
|
12
|
+
primary:
|
|
13
|
+
mix test test/primary_utility_test.exs
|
|
14
|
+
|
|
15
|
+
# The vendored omni engine's own smoke tests (it must be able to FAIL).
|
|
16
|
+
omni:
|
|
17
|
+
mix test test/omni_smoke_test.exs
|
|
18
|
+
|
|
11
19
|
build:
|
|
12
20
|
mix compile
|
|
13
21
|
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# ProjectName SDK omni runner smoke test
|
|
2
|
+
#
|
|
3
|
+
# Smoke tests for the VENDORED omni runner itself. A runner that cannot FAIL
|
|
4
|
+
# a bad entry would turn every corpus suite vacuously green, so the failure
|
|
5
|
+
# paths are pinned here, not just the happy one. (Elixir peer of ts's
|
|
6
|
+
# test/omni.test.ts, lua's test/omni_smoke_test.lua and py's
|
|
7
|
+
# test_omni_smoke.py.)
|
|
8
|
+
#
|
|
9
|
+
# The spec is built IN MEMORY, in omni's own value model (plain maps and
|
|
10
|
+
# lists, no OMNI block - the lenient v0 format the shared corpus uses), so
|
|
11
|
+
# these tests depend on no fixture file.
|
|
12
|
+
|
|
13
|
+
defmodule ProjectName.OmniSmokeTest do
|
|
14
|
+
use ExUnit.Case
|
|
15
|
+
|
|
16
|
+
alias ProjectName.Omni, as: O
|
|
17
|
+
|
|
18
|
+
@spec_smoke %{
|
|
19
|
+
"primary" => %{
|
|
20
|
+
"smoke" => %{
|
|
21
|
+
"basic" => %{
|
|
22
|
+
"set" => [
|
|
23
|
+
%{"in" => 1, "out" => 2},
|
|
24
|
+
%{"in" => 41, "out" => 42}
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"bad" => %{
|
|
28
|
+
"set" => [
|
|
29
|
+
%{"in" => 1, "out" => 999}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"err" => %{
|
|
33
|
+
"set" => [
|
|
34
|
+
%{"in" => 0, "err" => "zero refused"}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"argsback" => %{
|
|
38
|
+
"set" => [
|
|
39
|
+
%{"in" => %{"n" => 1}, "match" => %{"args" => %{"0" => %{"n" => 2}}}}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
# The subject contract the resolver presents: omni's resolved argument list,
|
|
47
|
+
# in the SDK's value model.
|
|
48
|
+
defp inc(args) do
|
|
49
|
+
n = hd(args)
|
|
50
|
+
if n == 0, do: raise(Voxgig.Struct.Error, message: "smoke: zero refused")
|
|
51
|
+
n + 1
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
defp pack do
|
|
55
|
+
runner = O.make_runner(@spec_smoke, ProjectName.test())
|
|
56
|
+
runner.("smoke")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
defp mustfail(fun, want) do
|
|
60
|
+
err =
|
|
61
|
+
try do
|
|
62
|
+
fun.()
|
|
63
|
+
flunk("expected the runner to FAIL, but it passed")
|
|
64
|
+
rescue
|
|
65
|
+
e -> e
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
assert O.omnierror?(err), "expected an omni error, got: #{inspect(err)}"
|
|
69
|
+
|
|
70
|
+
assert String.contains?(Exception.message(err), want),
|
|
71
|
+
"expected a failure containing '#{want}', got: #{Exception.message(err)}"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
test "runset passes a correct subject" do
|
|
75
|
+
run = pack()
|
|
76
|
+
run.runset.(run.spec["basic"], &inc/1)
|
|
77
|
+
assert O.cases() > 0
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
test "runset fails a wrong result with an omni error" do
|
|
81
|
+
run = pack()
|
|
82
|
+
mustfail(fn -> run.runset.(run.spec["bad"], &inc/1) end, "result mismatch")
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
test "an expected error is matched, and a missing expected error fails" do
|
|
86
|
+
run = pack()
|
|
87
|
+
|
|
88
|
+
# The expected error occurs: passes.
|
|
89
|
+
run.runset.(run.spec["err"], &inc/1)
|
|
90
|
+
|
|
91
|
+
# The expected error does NOT occur: must fail.
|
|
92
|
+
run2 = pack()
|
|
93
|
+
mustfail(fn -> run2.runset.(run2.spec["err"], fn args -> hd(args) end) end,
|
|
94
|
+
"expected error did not occur")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
test "an in-place argument rewrite reaches match.args" do
|
|
98
|
+
run = pack()
|
|
99
|
+
|
|
100
|
+
# The writeback channel (omni.ex decision 2): the subject MUTATES its
|
|
101
|
+
# argument node, and `match: {args: ...}` must see it. A resolver that
|
|
102
|
+
# dropped the channel would read the pre-call value and this passes only
|
|
103
|
+
# by accident, so the negative case is pinned too.
|
|
104
|
+
run.runset.(run.spec["argsback"], fn args ->
|
|
105
|
+
node = hd(args)
|
|
106
|
+
Voxgig.Struct.setprop(node, "n", 2)
|
|
107
|
+
nil
|
|
108
|
+
end)
|
|
109
|
+
|
|
110
|
+
run2 = pack()
|
|
111
|
+
|
|
112
|
+
mustfail(
|
|
113
|
+
fn -> run2.runset.(run2.spec["argsback"], fn _args -> nil end) end,
|
|
114
|
+
"match failed at args.0.n"
|
|
115
|
+
)
|
|
116
|
+
end
|
|
117
|
+
end
|