@voxgig/sdkgen 4.8.3 → 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/package.json +1 -1
- package/project/.sdk/model/target/zig.aon +9 -0
- 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/tests/vendor/omni/json.c +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
- package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
- package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
- package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
- package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
- package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
- package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
- package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
- package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
- package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +2 -2
- package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +2 -2
- package/project/.sdk/tm/dart/test/vendor/omni/util.dart +2 -2
- package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
- package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
- package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +4 -4
- package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +4 -5
- package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +3 -3
- package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +3 -4
- package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +5 -2
- package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +31 -2
- package/project/.sdk/tm/go/test/omni/omni.go +8 -3
- package/project/.sdk/tm/go/test/omni/util.go +25 -4
- package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
- package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
- package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
- package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
- package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
- package/project/.sdk/tm/js/src/utility/StructUtility.js +2 -2
- package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
- package/project/.sdk/tm/js/test/vendor/omni/runner.js +18 -3
- package/project/.sdk/tm/js/test/vendor/omni/util.js +25 -8
- package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
- package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
- package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
- package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
- package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
- package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
- package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
- package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
- package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
- package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
- package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
- package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
- package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +3 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +3 -3
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +3 -4
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +4 -6
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
- package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +21 -1
- package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
- package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
- package/project/.sdk/tm/py/test/voxgig_omni/runner.py +16 -2
- package/project/.sdk/tm/py/test/voxgig_omni/util.py +27 -12
- package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
- package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
- package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
- package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
- package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
- package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
- package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
- package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
- package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
- package/project/.sdk/tm/ts/src/utility/StructUtility.ts +2 -2
- package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
- package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
- package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
- package/project/.sdk/tm/zig/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 +144 -154
- 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/project/.sdk/tm/zig/test/struct_runner.zig +0 -465
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Depend.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Dependency cardinality, policy, and the restart graph (§11.3).
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Env.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Environment overrides (§9.5) — level 7 of the ladder.
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Export.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Exports (§11).
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/FeatureHost.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* The sdkgen bridge (§17.2, P3 item 2).
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Graph.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Whole-graph resolution (§11.4) — a phase, not a discovery.
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Host.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* The host: the lifecycle state machine (§5), extension points (§6),
|
|
5
5
|
* and resource capture (§8).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Order.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Ordering (§7) — one rule, one place.
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Point.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Extension points (§6). Three kinds, chosen because they are what the
|
|
5
5
|
* two existing systems actually needed, and no more.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Ref.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Identity: name+tag, written `name$tag` (§4).
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Resolve.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Dynamic resolution (§10.2) — name to candidate module ids.
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Types.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Shared types. Deliberately small: the design's §19 budget says the
|
|
5
5
|
* library owns naming, configuration, lifecycle, ordering, binding and
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Version.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Versions and ranges (§11.2).
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/plugin 0.1.6 (typescript/src/index.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/plugin @
|
|
2
|
+
// Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* The canonical surface `make parity` checks (AGENTS.md §4). Small on
|
|
5
5
|
* purpose (§19): everything else is methods on the host and instance
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/Sekreto.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
// sekreto: one interface for secrets, wherever they live.
|
|
5
5
|
//
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/index.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
// @voxgig/sekreto - one interface for secrets, wherever they live.
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/aws.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/azuresecrets.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/boru.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/doppler.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/gcpsecrets.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/hashicorp.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/httpjson.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/infisical.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/onepassword.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/secretspec.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/plugins/sigv4.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
// AWS Signature Version 4, hand-rolled.
|
|
5
5
|
//
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/provider/addr.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/provider/builtin.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/provider/dotenv.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/provider/env.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/provider/file.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/provider/memory.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025 Voxgig Ltd, MIT License */
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/sekreto 0.2.0 (typescript/src/provider/support.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/sekreto @
|
|
2
|
+
// Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
// What a provider is, what its declarative form looks like, and how a
|
|
5
5
|
// provider kind becomes a voxgig/plugin definition.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// VENDORED: @voxgig/struct 0.3.4 (typescript/src/StructUtility.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/struct @
|
|
2
|
+
// Source: https://github.com/voxgig/struct @ adda9521c828147573df5a8878408a3f2193ddf4 [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
/* Copyright (c) 2025-2026 Voxgig Ltd. MIT LICENSE. */
|
|
5
5
|
|
|
6
|
-
// VERSION: @voxgig/struct 0.3.
|
|
6
|
+
// VERSION: @voxgig/struct 0.3.5
|
|
7
7
|
|
|
8
8
|
/* Voxgig Struct
|
|
9
9
|
* =============
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/omni 0.1.4 (typescript/src/Runner.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/omni @
|
|
2
|
+
// Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
// Omni: the shared multi-language test runner.
|
|
5
5
|
//
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/omni 0.1.4 (typescript/src/Util.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/omni @
|
|
2
|
+
// Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
// Omni internal JSON utilities.
|
|
5
5
|
//
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// VENDORED: @voxgig/omni 0.1.4 (typescript/src/index.ts)
|
|
2
|
-
// Source: https://github.com/voxgig/omni @
|
|
2
|
+
// Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
|
|
3
3
|
// License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
|
|
4
4
|
// @voxgig/omni - shared multi-language test runner.
|
|
5
5
|
|
|
@@ -9,6 +9,16 @@ build:
|
|
|
9
9
|
# filter the output: if "N/N tests passed" with N==total, treat as success.
|
|
10
10
|
# `--summary all` is required so the count is printed.
|
|
11
11
|
#
|
|
12
|
+
# THE SUMMARY IS PARSED IN TWO SPELLINGS. Older toolchains wrote the test
|
|
13
|
+
# tally as "217/223 tests passed; 6 skipped"; 0.16 writes the annotations as
|
|
14
|
+
# a parenthesised list instead - "217/223 tests passed (6 skipped)", and
|
|
15
|
+
# "(6 skipped, 1 crashed)" when something did go wrong. Reading only the
|
|
16
|
+
# semicolon form off 0.16 finds no skip count at all, so "passed + skipped"
|
|
17
|
+
# falls short of "total" and the tolerance refuses a run that was in fact
|
|
18
|
+
# clean - failing precisely when the teardown crash it exists for happens.
|
|
19
|
+
# Both spellings are accepted below, and any "failed"/"crashed"/"timed out"
|
|
20
|
+
# in that same annotation is a real failure, never a teardown crash.
|
|
21
|
+
#
|
|
12
22
|
# A TEST THAT DID NOT COMPILE IS NOT IN THE TALLY. The tolerance above is for a
|
|
13
23
|
# crash AFTER the tests ran, and it must never cover a build that failed: a
|
|
14
24
|
# compile error means those test binaries never ran, so they never reach
|
|
@@ -32,11 +42,15 @@ test:
|
|
|
32
42
|
echo "zig: compilation errors — not a teardown crash"; \
|
|
33
43
|
exit 1; \
|
|
34
44
|
fi; \
|
|
35
|
-
summary=$$(echo "$$out" | grep -oE '[0-9]+/[0-9]+ tests passed(; [0-9]+ skipped)?' | tail -1); \
|
|
45
|
+
summary=$$(echo "$$out" | grep -oE '[0-9]+/[0-9]+ tests passed( \([^)]*\))?(; [0-9]+ skipped)?' | tail -1); \
|
|
36
46
|
passed=$$(echo "$$summary" | sed -E 's#([0-9]+)/([0-9]+).*#\1#'); \
|
|
37
47
|
total=$$(echo "$$summary" | sed -E 's#([0-9]+)/([0-9]+).*#\2#'); \
|
|
38
48
|
skipped=$$(echo "$$summary" | grep -oE '[0-9]+ skipped' | grep -oE '[0-9]+'); \
|
|
39
49
|
[ -n "$$skipped" ] || skipped=0; \
|
|
50
|
+
if echo "$$summary" | grep -qE '[0-9]+ (failed|crashed|timed out)'; then \
|
|
51
|
+
echo "zig: $$summary — tests failed, so this is not a teardown crash"; \
|
|
52
|
+
exit 1; \
|
|
53
|
+
fi; \
|
|
40
54
|
if [ -n "$$passed" ] && [ "$$total" -gt 0 ] && [ $$((passed + skipped)) -eq "$$total" ]; then \
|
|
41
55
|
exit 0; \
|
|
42
56
|
fi; \
|
|
@@ -8,6 +8,10 @@ const std = @import("std");
|
|
|
8
8
|
// exposed as the "voxgig-struct" module so the corpus runner can import it,
|
|
9
9
|
// and the whole SDK is exposed as the "sdk" module (root: root.zig).
|
|
10
10
|
//
|
|
11
|
+
// TOOLCHAIN: zig 0.16. A test artifact takes a `root_module` rather than a
|
|
12
|
+
// `root_source_file`, so each test file gets its own module built here with
|
|
13
|
+
// the struct and sdk modules already imported.
|
|
14
|
+
//
|
|
11
15
|
// The Zig test framework can crash with signal 11 during cleanup *after* all
|
|
12
16
|
// tests pass, due to *MapRef/*ListRef cross-references in arena teardown. The
|
|
13
17
|
// Makefile filters the output: "N/N tests passed" with N==total is success.
|
|
@@ -22,6 +26,17 @@ pub fn build(b: *std.Build) void {
|
|
|
22
26
|
.optimize = optimize,
|
|
23
27
|
});
|
|
24
28
|
|
|
29
|
+
// The vendored @voxgig/omni port: the corpus test ENGINE, driven by
|
|
30
|
+
// test/omniresolver.zig. A MODULE, not a path import, for two reasons:
|
|
31
|
+
// omni.zig reaches its own regex.zig by path, so the pair must belong to
|
|
32
|
+
// exactly one module; and `@import("omni")` cannot then be confused with
|
|
33
|
+
// the resolver that adapts it.
|
|
34
|
+
const omni_mod = b.addModule("omni", .{
|
|
35
|
+
.root_source_file = b.path("test/vendor/omni/omni.zig"),
|
|
36
|
+
.target = target,
|
|
37
|
+
.optimize = optimize,
|
|
38
|
+
});
|
|
39
|
+
|
|
25
40
|
// The SDK module (root re-exports the public surface).
|
|
26
41
|
const sdk_mod = b.addModule("sdk", .{
|
|
27
42
|
.root_source_file = b.path("root.zig"),
|
|
@@ -32,7 +47,7 @@ pub fn build(b: *std.Build) void {
|
|
|
32
47
|
|
|
33
48
|
const test_step = b.step("test", "Run all tests");
|
|
34
49
|
|
|
35
|
-
// Every test file: gets
|
|
50
|
+
// Every test file: gets the struct, sdk and omni modules.
|
|
36
51
|
const test_files = [_][]const u8{
|
|
37
52
|
"test/struct_corpus.zig",
|
|
38
53
|
"test/generated_test.zig",
|
|
@@ -40,17 +55,20 @@ pub fn build(b: *std.Build) void {
|
|
|
40
55
|
"test/feature_test.zig",
|
|
41
56
|
"test/primary_utility_test.zig",
|
|
42
57
|
"test/gotcha_test.zig",
|
|
58
|
+
"test/omnismoke_test.zig",
|
|
43
59
|
};
|
|
44
60
|
|
|
45
61
|
for (test_files) |tf| {
|
|
46
|
-
|
|
47
|
-
const t = b.addTest(.{
|
|
62
|
+
const test_mod = b.createModule(.{
|
|
48
63
|
.root_source_file = b.path(tf),
|
|
49
64
|
.target = target,
|
|
50
65
|
.optimize = optimize,
|
|
51
66
|
});
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
test_mod.addImport("voxgig-struct", struct_mod);
|
|
68
|
+
test_mod.addImport("sdk", sdk_mod);
|
|
69
|
+
test_mod.addImport("omni", omni_mod);
|
|
70
|
+
|
|
71
|
+
const t = b.addTest(.{ .root_module = test_mod });
|
|
54
72
|
const run_t = b.addRunArtifact(t);
|
|
55
73
|
run_t.has_side_effects = true;
|
|
56
74
|
test_step.dependOn(&run_t.step);
|
|
@@ -19,6 +19,12 @@ pub fn A() Allocator {
|
|
|
19
19
|
return mem.a();
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
// The SDK's process-global Io (0.16 routes clocks/sleep/env/file IO through
|
|
23
|
+
// one). See core/mem.zig for why it is global rather than a parameter.
|
|
24
|
+
pub fn IO() std.Io {
|
|
25
|
+
return mem.io();
|
|
26
|
+
}
|
|
27
|
+
|
|
22
28
|
// ---- constructors ------------------------------------------------------
|
|
23
29
|
|
|
24
30
|
pub fn vstr(s: []const u8) Value {
|
|
@@ -249,33 +255,33 @@ pub fn veq(x: Value, y: Value) bool {
|
|
|
249
255
|
// ---- key / item vectors (test feature convenience) ---------------------
|
|
250
256
|
|
|
251
257
|
pub fn keysof_vec(v: Value) [][]const u8 {
|
|
252
|
-
var out
|
|
258
|
+
var out: std.ArrayList([]const u8) = .empty;
|
|
253
259
|
if (v == .object) {
|
|
254
260
|
var it = v.object.iterator();
|
|
255
|
-
while (it.next()) |kv| out.append(kv.key_ptr.*) catch {};
|
|
261
|
+
while (it.next()) |kv| out.append(A(), kv.key_ptr.*) catch {};
|
|
256
262
|
}
|
|
257
|
-
return out.toOwnedSlice() catch &.{};
|
|
263
|
+
return out.toOwnedSlice(A()) catch &.{};
|
|
258
264
|
}
|
|
259
265
|
|
|
260
266
|
pub const KVpair = struct { k: []const u8, v: Value };
|
|
261
267
|
|
|
262
268
|
pub fn items_vec(v: Value) []KVpair {
|
|
263
|
-
var out
|
|
269
|
+
var out: std.ArrayList(KVpair) = .empty;
|
|
264
270
|
if (v == .object) {
|
|
265
271
|
var it = v.object.iterator();
|
|
266
|
-
while (it.next()) |kv| out.append(.{ .k = kv.key_ptr.*, .v = kv.value_ptr.* }) catch {};
|
|
272
|
+
while (it.next()) |kv| out.append(A(), .{ .k = kv.key_ptr.*, .v = kv.value_ptr.* }) catch {};
|
|
267
273
|
}
|
|
268
|
-
return out.toOwnedSlice() catch &.{};
|
|
274
|
+
return out.toOwnedSlice(A()) catch &.{};
|
|
269
275
|
}
|
|
270
276
|
|
|
271
277
|
// ---- clocks / rng ------------------------------------------------------
|
|
272
278
|
|
|
273
279
|
pub fn now_ms() i64 {
|
|
274
|
-
return std.
|
|
280
|
+
return std.Io.Clock.real.now(IO()).toMilliseconds();
|
|
275
281
|
}
|
|
276
282
|
|
|
277
283
|
pub fn sleep_ms(ms: i64) void {
|
|
278
|
-
if (ms > 0)
|
|
284
|
+
if (ms > 0) IO().sleep(.fromMilliseconds(ms), .awake) catch {};
|
|
279
285
|
}
|
|
280
286
|
|
|
281
287
|
var rand_seed: i64 = 123456789;
|
|
@@ -290,15 +296,50 @@ pub fn rand_int(n: i64) i64 {
|
|
|
290
296
|
|
|
291
297
|
pub const CallFn = *const fn (ctx: *anyopaque, allocator: Allocator, arg: Value) anyerror!Value;
|
|
292
298
|
|
|
299
|
+
// An SDK callable — an injected transport, clock, sleeper, id generator, a
|
|
300
|
+
// custom utility, or a response body thunk — carries a captured context
|
|
301
|
+
// pointer, because every one of them is created at run time over run-time
|
|
302
|
+
// state. Zig has no closures, so the context travels beside the function.
|
|
303
|
+
//
|
|
304
|
+
// The struct port's `JsonFunc` is a bare `*const fn (Allocator) anyerror!Value`
|
|
305
|
+
// with no context slot, so the BOX is what lives in the `.function` slot,
|
|
306
|
+
// pointer-cast to fit. That is the same arrangement the SDK has always had:
|
|
307
|
+
// the slot held `*const Callable` before too, and the type it is declared with
|
|
308
|
+
// upstream is the only thing that changed. Every struct operation the SDK puts
|
|
309
|
+
// callables through — clone, merge, validate, stringify, typify — treats the
|
|
310
|
+
// slot as an opaque pointer and is unaffected.
|
|
311
|
+
//
|
|
312
|
+
// The one thing that must not happen is struct CALLING the slot as code. It
|
|
313
|
+
// does that in exactly three places: a `getprop` whose `alt` is a function, a
|
|
314
|
+
// single-segment `getpath` whose one part names a function held directly in
|
|
315
|
+
// the store, and a `$`-prefixed validate command that is not built in and
|
|
316
|
+
// resolves to a function in the store. The SDK reaches none of them — its
|
|
317
|
+
// `getprop` alts are never functions, `h.getpath` is never called with a
|
|
318
|
+
// one-segment path, and the validate store only ever holds `$TOP`/`$DTOP`-style
|
|
319
|
+
// keys, all of which are built in. SDK code invokes its own callables through
|
|
320
|
+
// `call_vfn`, never by letting struct resolve them.
|
|
321
|
+
//
|
|
322
|
+
// That was measured, not just reasoned: instrumenting all three sites in a
|
|
323
|
+
// throwaway copy of the vendored file and running the whole suite records ONE
|
|
324
|
+
// invocation, and it is the struct corpus's own `$FOO` handler — a real
|
|
325
|
+
// context-free JsonFunc, which is what those sites are for.
|
|
326
|
+
pub const Callable = struct {
|
|
327
|
+
ctx: *anyopaque,
|
|
328
|
+
call: CallFn,
|
|
329
|
+
};
|
|
330
|
+
|
|
293
331
|
pub fn callable(ctx_ptr: *anyopaque, f: CallFn) Value {
|
|
294
|
-
const c = A().create(
|
|
332
|
+
const c = A().create(Callable) catch unreachable;
|
|
295
333
|
c.* = .{ .ctx = ctx_ptr, .call = f };
|
|
296
|
-
return .{ .function = c };
|
|
334
|
+
return .{ .function = @ptrCast(@alignCast(c)) };
|
|
297
335
|
}
|
|
298
336
|
|
|
299
337
|
pub fn call_vfn(f: Value, arg: Value) Value {
|
|
300
338
|
return switch (f) {
|
|
301
|
-
.function => |
|
|
339
|
+
.function => |fp| blk: {
|
|
340
|
+
const c: *const Callable = @ptrCast(@alignCast(fp));
|
|
341
|
+
break :blk c.call(c.ctx, A(), arg) catch vnull();
|
|
342
|
+
},
|
|
302
343
|
else => vnull(),
|
|
303
344
|
};
|
|
304
345
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Process-global arena allocator for the SDK data model.
|
|
1
|
+
// Process-global arena allocator and Io for the SDK data model.
|
|
2
2
|
//
|
|
3
3
|
// The SDK data model is the vendored voxgig struct Value (reference-stable
|
|
4
4
|
// *MapRef / *ListRef nodes). Rust leans on a global allocator + Rc; Zig has
|
|
@@ -7,6 +7,14 @@
|
|
|
7
7
|
// close to the Rust original and sidesteps the test allocator's leak checks
|
|
8
8
|
// for SDK/struct data (tests still use testing.allocator for their own
|
|
9
9
|
// bookkeeping). Mirrors struct/zig's per-run arena approach.
|
|
10
|
+
//
|
|
11
|
+
// Zig 0.16 routes clocks, sleeping, the environment and file IO through an
|
|
12
|
+
// `std.Io` instance rather than free functions on `std.time` / `std.process` /
|
|
13
|
+
// `std.fs`. An SDK cannot demand one from its caller without changing every
|
|
14
|
+
// public signature, so — exactly as with the arena — one process-global
|
|
15
|
+
// instance is used. `Io.Threaded.global_single_threaded` is the statically
|
|
16
|
+
// initialised singleton std itself falls back to; it needs no allocator and no
|
|
17
|
+
// deinit, and the startup code fills in its environment block.
|
|
10
18
|
|
|
11
19
|
const std = @import("std");
|
|
12
20
|
|
|
@@ -18,3 +26,11 @@ pub fn a() std.mem.Allocator {
|
|
|
18
26
|
}
|
|
19
27
|
return arena.?.allocator();
|
|
20
28
|
}
|
|
29
|
+
|
|
30
|
+
pub fn threaded() *std.Io.Threaded {
|
|
31
|
+
return std.Io.Threaded.global_single_threaded;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
pub fn io() std.Io {
|
|
35
|
+
return threaded().io();
|
|
36
|
+
}
|