@voxgig/sdkgen 4.21.0 → 4.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/voxgig-sdkgen +1 -1
- package/dist/action/action.js +0 -65
- package/dist/action/action.js.map +1 -1
- package/dist/action/check.js +0 -88
- package/dist/action/check.js.map +1 -1
- package/dist/action/dispatch.js +0 -27
- package/dist/action/dispatch.js.map +1 -1
- package/dist/action/doctor.d.ts +1 -0
- package/dist/action/doctor.js +55 -321
- package/dist/action/doctor.js.map +1 -1
- package/dist/action/edition.js +1 -87
- package/dist/action/edition.js.map +1 -1
- package/dist/action/feature.js +0 -48
- package/dist/action/feature.js.map +1 -1
- package/dist/action/kind.js +0 -132
- package/dist/action/kind.js.map +1 -1
- package/dist/action/package.js +0 -221
- package/dist/action/package.js.map +1 -1
- package/dist/action/resolve.js +0 -145
- package/dist/action/resolve.js.map +1 -1
- package/dist/action/target.js +0 -177
- package/dist/action/target.js.map +1 -1
- package/dist/cmp/AgentGuide.js +0 -7
- package/dist/cmp/AgentGuide.js.map +1 -1
- package/dist/cmp/AgentGuideContent.js +0 -24
- package/dist/cmp/AgentGuideContent.js.map +1 -1
- package/dist/cmp/AgentGuideTop.js +0 -7
- package/dist/cmp/AgentGuideTop.js.map +1 -1
- package/dist/cmp/Changelog.js +0 -14
- package/dist/cmp/Changelog.js.map +1 -1
- package/dist/cmp/Deploy.js +1 -31
- package/dist/cmp/Deploy.js.map +1 -1
- package/dist/cmp/Entity.js +0 -4
- package/dist/cmp/Entity.js.map +1 -1
- package/dist/cmp/ExternalTarget.js +0 -36
- package/dist/cmp/ExternalTarget.js.map +1 -1
- package/dist/cmp/Feature.js +0 -14
- package/dist/cmp/Feature.js.map +1 -1
- package/dist/cmp/FeatureDocs.js +0 -25
- package/dist/cmp/FeatureDocs.js.map +1 -1
- package/dist/cmp/PublishWorkflow.js +0 -60
- package/dist/cmp/PublishWorkflow.js.map +1 -1
- package/dist/cmp/ReadmeErrors.js +0 -2
- package/dist/cmp/ReadmeErrors.js.map +1 -1
- package/dist/cmp/ReadmeExplanation.js +0 -5
- package/dist/cmp/ReadmeExplanation.js.map +1 -1
- package/dist/cmp/ReadmeFeatures.js +0 -10
- package/dist/cmp/ReadmeFeatures.js.map +1 -1
- package/dist/cmp/ReadmeRefFeatures.js +0 -19
- package/dist/cmp/ReadmeRefFeatures.js.map +1 -1
- package/dist/cmp/ReadmeStation.js +0 -19
- package/dist/cmp/ReadmeStation.js.map +1 -1
- package/dist/cmp/ReadmeTop.js +0 -80
- package/dist/cmp/ReadmeTop.js.map +1 -1
- package/dist/cmp/ReadmeUnions.js +0 -15
- package/dist/cmp/ReadmeUnions.js.map +1 -1
- package/dist/cmp/Registered.js +0 -30
- package/dist/cmp/Registered.js.map +1 -1
- package/dist/cmp/Security.js +0 -2
- package/dist/cmp/Security.js.map +1 -1
- package/dist/cmp/Test.js +2 -1
- package/dist/cmp/Test.js.map +1 -1
- package/dist/cmp/TestControl.js +0 -25
- package/dist/cmp/TestControl.js.map +1 -1
- package/dist/helpers/applicability.js +0 -60
- package/dist/helpers/applicability.js.map +1 -1
- package/dist/helpers/buildIdNames.js +0 -12
- package/dist/helpers/buildIdNames.js.map +1 -1
- package/dist/helpers/canonSpec.js +0 -114
- package/dist/helpers/canonSpec.js.map +1 -1
- package/dist/helpers/canonType.js +0 -87
- package/dist/helpers/canonType.js.map +1 -1
- package/dist/helpers/collectDeps.js +0 -27
- package/dist/helpers/collectDeps.js.map +1 -1
- package/dist/helpers/definition.js +0 -29
- package/dist/helpers/definition.js.map +1 -1
- package/dist/helpers/dryrun.js +0 -8
- package/dist/helpers/dryrun.js.map +1 -1
- package/dist/helpers/featureSource.js +0 -145
- package/dist/helpers/featureSource.js.map +1 -1
- package/dist/helpers/getMatchEntries.js +0 -4
- package/dist/helpers/getMatchEntries.js.map +1 -1
- package/dist/helpers/junk.js +9 -85
- package/dist/helpers/junk.js.map +1 -1
- package/dist/helpers/manifest.js +0 -138
- package/dist/helpers/manifest.js.map +1 -1
- package/dist/helpers/modelNames.js +0 -78
- package/dist/helpers/modelNames.js.map +1 -1
- package/dist/helpers/modelcheck.js +0 -106
- package/dist/helpers/modelcheck.js.map +1 -1
- package/dist/helpers/naming.d.ts +0 -1
- package/dist/helpers/naming.js +0 -303
- package/dist/helpers/naming.js.map +1 -1
- package/dist/helpers/opExample.js +0 -51
- package/dist/helpers/opExample.js.map +1 -1
- package/dist/helpers/opShape.js +0 -198
- package/dist/helpers/opShape.js.map +1 -1
- package/dist/helpers/optspec.js +0 -77
- package/dist/helpers/optspec.js.map +1 -1
- package/dist/helpers/packageMeta.js +1 -200
- package/dist/helpers/packageMeta.js.map +1 -1
- package/dist/helpers/pointPath.js +0 -55
- package/dist/helpers/pointPath.js.map +1 -1
- package/dist/helpers/resolved.d.ts +6 -0
- package/dist/helpers/resolved.js +49 -0
- package/dist/helpers/resolved.js.map +1 -0
- package/dist/helpers/semver.js +0 -61
- package/dist/helpers/semver.js.map +1 -1
- package/dist/helpers/serverVars.js +0 -44
- package/dist/helpers/serverVars.js.map +1 -1
- package/dist/helpers/shipped.js +0 -14
- package/dist/helpers/shipped.js.map +1 -1
- package/dist/helpers/station.js +0 -32
- package/dist/helpers/station.js.map +1 -1
- package/dist/helpers/stdrep.js +0 -26
- package/dist/helpers/stdrep.js.map +1 -1
- package/dist/helpers/testPolicy.js +0 -4
- package/dist/helpers/testPolicy.js.map +1 -1
- package/dist/sdkgen.d.ts +2 -1
- package/dist/sdkgen.js +13 -242
- package/dist/sdkgen.js.map +1 -1
- package/dist/testkit.js +6 -266
- package/dist/testkit.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utility.js +0 -243
- package/dist/utility.js.map +1 -1
- package/model/sdkgen.aon +12 -489
- package/package.json +4 -4
- package/project/.sdk/model/feature/audit.aon +0 -7
- package/project/.sdk/model/feature/cache.aon +0 -7
- package/project/.sdk/model/feature/clienttrack.aon +0 -7
- package/project/.sdk/model/feature/cost.aon +0 -13
- package/project/.sdk/model/feature/debug.aon +0 -7
- package/project/.sdk/model/feature/idempotency.aon +0 -7
- package/project/.sdk/model/feature/log.aon +0 -7
- package/project/.sdk/model/feature/metrics.aon +0 -7
- package/project/.sdk/model/feature/netsim.aon +0 -10
- package/project/.sdk/model/feature/paging.aon +0 -7
- package/project/.sdk/model/feature/proxy.aon +0 -7
- package/project/.sdk/model/feature/ratelimit.aon +0 -7
- package/project/.sdk/model/feature/retry.aon +0 -7
- package/project/.sdk/model/feature/secrets.aon +0 -482
- package/project/.sdk/model/feature/streaming.aon +0 -7
- package/project/.sdk/model/feature/telemetry.aon +0 -7
- package/project/.sdk/model/feature/test.aon +1 -8
- package/project/.sdk/model/feature/timeout.aon +0 -7
- package/project/.sdk/model/feature/validate.aon +0 -32
- package/project/.sdk/model/target/c.aon +0 -41
- package/project/.sdk/model/target/clojure.aon +0 -36
- package/project/.sdk/model/target/cpp.aon +0 -42
- package/project/.sdk/model/target/csharp.aon +0 -26
- package/project/.sdk/model/target/elixir.aon +0 -22
- package/project/.sdk/model/target/go-cli.aon +0 -30
- package/project/.sdk/model/target/go-mcp.aon +0 -21
- package/project/.sdk/model/target/go.aon +0 -9
- package/project/.sdk/model/target/java.aon +0 -29
- package/project/.sdk/model/target/js.aon +2 -21
- package/project/.sdk/model/target/kotlin.aon +0 -31
- package/project/.sdk/model/target/lua.aon +0 -32
- package/project/.sdk/model/target/ocaml.aon +0 -64
- package/project/.sdk/model/target/perl.aon +0 -20
- package/project/.sdk/model/target/php.aon +0 -17
- package/project/.sdk/model/target/py-data.aon +0 -33
- package/project/.sdk/model/target/py.aon +0 -17
- package/project/.sdk/model/target/rb.aon +0 -17
- package/project/.sdk/model/target/rust.aon +0 -25
- package/project/.sdk/model/target/scala.aon +0 -74
- package/project/.sdk/model/target/swift.aon +0 -41
- package/project/.sdk/model/target/ts.aon +3 -25
- package/project/.sdk/model/target/zig.aon +0 -50
- package/project/.sdk/src/cmp/c/Config_c.ts +0 -100
- package/project/.sdk/src/cmp/c/EntityTypes_c.ts +0 -36
- package/project/.sdk/src/cmp/c/Main_c.ts +0 -44
- package/project/.sdk/src/cmp/c/Package_c.ts +0 -14
- package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +0 -85
- package/project/.sdk/src/cmp/c/ReadmeExamplesTest_c.ts +0 -20
- package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +2 -5
- package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +0 -2
- package/project/.sdk/src/cmp/c/Schema_c.ts +0 -19
- package/project/.sdk/src/cmp/c/utility_c.ts +0 -47
- package/project/.sdk/src/cmp/clojure/Config_clojure.ts +0 -63
- package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +0 -1
- package/project/.sdk/src/cmp/clojure/Main_clojure.ts +0 -41
- package/project/.sdk/src/cmp/clojure/Package_clojure.ts +0 -20
- package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +0 -130
- package/project/.sdk/src/cmp/clojure/ReadmeExamplesTest_clojure.ts +0 -16
- package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +2 -5
- package/project/.sdk/src/cmp/clojure/Schema_clojure.ts +0 -20
- package/project/.sdk/src/cmp/clojure/TestDirect_clojure.ts +0 -6
- package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +0 -10
- package/project/.sdk/src/cmp/clojure/Test_clojure.ts +0 -8
- package/project/.sdk/src/cmp/clojure/featureextra_clojure.ts +0 -34
- package/project/.sdk/src/cmp/clojure/utility_clojure.ts +0 -47
- package/project/.sdk/src/cmp/cpp/Config_cpp.ts +0 -109
- package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +0 -36
- package/project/.sdk/src/cmp/cpp/Main_cpp.ts +0 -47
- package/project/.sdk/src/cmp/cpp/Package_cpp.ts +0 -14
- package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +0 -125
- package/project/.sdk/src/cmp/cpp/ReadmeExamplesTest_cpp.ts +0 -19
- package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +0 -7
- package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +2 -5
- package/project/.sdk/src/cmp/cpp/Schema_cpp.ts +0 -21
- package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +0 -3
- package/project/.sdk/src/cmp/cpp/Test_cpp.ts +0 -3
- package/project/.sdk/src/cmp/cpp/utility_cpp.ts +0 -28
- package/project/.sdk/src/cmp/csharp/Config_csharp.ts +0 -79
- package/project/.sdk/src/cmp/csharp/EntityOperation_csharp.ts +0 -3
- package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +0 -50
- package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +0 -1
- package/project/.sdk/src/cmp/csharp/Main_csharp.ts +0 -24
- package/project/.sdk/src/cmp/csharp/Package_csharp.ts +0 -20
- package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +0 -81
- package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +0 -1
- package/project/.sdk/src/cmp/csharp/ReadmeExamplesTest_csharp.ts +0 -23
- package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +2 -5
- package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +0 -2
- package/project/.sdk/src/cmp/csharp/Schema_csharp.ts +0 -18
- package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +0 -4
- package/project/.sdk/src/cmp/csharp/utility_csharp.ts +0 -72
- package/project/.sdk/src/cmp/elixir/Config_elixir.ts +0 -78
- package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +0 -38
- package/project/.sdk/src/cmp/elixir/Main_elixir.ts +0 -40
- package/project/.sdk/src/cmp/elixir/Package_elixir.ts +0 -13
- package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +0 -123
- package/project/.sdk/src/cmp/elixir/ReadmeExamplesTest_elixir.ts +0 -19
- package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +2 -5
- package/project/.sdk/src/cmp/elixir/Schema_elixir.ts +0 -24
- package/project/.sdk/src/cmp/elixir/utility_elixir.ts +0 -34
- package/project/.sdk/src/cmp/go/Config_go.ts +0 -41
- package/project/.sdk/src/cmp/go/EntityTypes_go.ts +0 -71
- package/project/.sdk/src/cmp/go/Entity_go.ts +0 -5
- package/project/.sdk/src/cmp/go/Main_go.ts +0 -28
- package/project/.sdk/src/cmp/go/Package_go.ts +0 -7
- package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +0 -64
- package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +0 -5
- package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +0 -30
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +0 -3
- package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +0 -7
- package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +0 -11
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +0 -21
- package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +2 -14
- package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +0 -9
- package/project/.sdk/src/cmp/go/Schema_go.ts +0 -21
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +0 -23
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +0 -8
- package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +0 -21
- package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +0 -12
- package/project/.sdk/src/cmp/go/utility_go.ts +0 -70
- package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +0 -49
- package/project/.sdk/src/cmp/go-cli/fragment/words.fragment.go +0 -12
- package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +0 -36
- package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +0 -20
- package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +0 -3
- package/project/.sdk/src/cmp/java/Config_java.ts +0 -63
- package/project/.sdk/src/cmp/java/EntityTypes_java.ts +0 -50
- package/project/.sdk/src/cmp/java/Entity_java.ts +0 -6
- package/project/.sdk/src/cmp/java/Main_java.ts +0 -24
- package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +0 -55
- package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +0 -1
- package/project/.sdk/src/cmp/java/ReadmeExamplesTest_java.ts +0 -20
- package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +0 -4
- package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +2 -5
- package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +0 -7
- package/project/.sdk/src/cmp/java/Schema_java.ts +0 -19
- package/project/.sdk/src/cmp/java/TestDirect_java.ts +0 -7
- package/project/.sdk/src/cmp/java/TestEntity_java.ts +0 -4
- package/project/.sdk/src/cmp/java/Test_java.ts +0 -6
- package/project/.sdk/src/cmp/java/utility_java.ts +0 -33
- package/project/.sdk/src/cmp/js/Config_js.ts +0 -46
- package/project/.sdk/src/cmp/js/EntityTypes_js.ts +0 -33
- package/project/.sdk/src/cmp/js/Main_js.ts +0 -33
- package/project/.sdk/src/cmp/js/Package_js.ts +2 -7
- package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +0 -57
- package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +0 -9
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +0 -2
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +0 -15
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +2 -7
- package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +0 -7
- package/project/.sdk/src/cmp/js/Schema_js.ts +0 -21
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +2 -16
- package/project/.sdk/src/cmp/js/TestEntity_js.ts +3 -13
- package/project/.sdk/src/cmp/js/TestLive_js.ts +10 -3
- package/project/.sdk/src/cmp/js/utility_js.ts +0 -58
- package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +0 -46
- package/project/.sdk/src/cmp/kotlin/EntityOperation_kotlin.ts +0 -2
- package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +0 -53
- package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +0 -4
- package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +0 -46
- package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +0 -113
- package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +0 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeExamplesTest_kotlin.ts +0 -20
- package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +2 -5
- package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +0 -5
- package/project/.sdk/src/cmp/kotlin/Schema_kotlin.ts +0 -19
- package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +0 -4
- package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +0 -6
- package/project/.sdk/src/cmp/kotlin/utility_kotlin.ts +0 -33
- package/project/.sdk/src/cmp/lua/Config_lua.ts +0 -56
- package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +0 -30
- package/project/.sdk/src/cmp/lua/Entity_lua.ts +0 -7
- package/project/.sdk/src/cmp/lua/Main_lua.ts +0 -58
- package/project/.sdk/src/cmp/lua/Package_lua.ts +0 -20
- package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +0 -61
- package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +0 -8
- package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +0 -24
- package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +0 -10
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +0 -21
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +2 -12
- package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +0 -3
- package/project/.sdk/src/cmp/lua/Schema_lua.ts +0 -16
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +0 -2
- package/project/.sdk/src/cmp/lua/utility_lua.ts +0 -30
- package/project/.sdk/src/cmp/ocaml/Config_ocaml.ts +0 -98
- package/project/.sdk/src/cmp/ocaml/EntityOperation_ocaml.ts +0 -6
- package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +0 -78
- package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +0 -13
- package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +0 -145
- package/project/.sdk/src/cmp/ocaml/ReadmeExamplesTest_ocaml.ts +0 -17
- package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +2 -5
- package/project/.sdk/src/cmp/ocaml/Schema_ocaml.ts +0 -23
- package/project/.sdk/src/cmp/ocaml/SdkError_ocaml.ts +0 -4
- package/project/.sdk/src/cmp/ocaml/TestEntity_ocaml.ts +0 -5
- package/project/.sdk/src/cmp/ocaml/utility_ocaml.ts +0 -27
- package/project/.sdk/src/cmp/perl/Config_perl.ts +0 -52
- package/project/.sdk/src/cmp/perl/Entity_perl.ts +0 -3
- package/project/.sdk/src/cmp/perl/Main_perl.ts +0 -33
- package/project/.sdk/src/cmp/perl/Package_perl.ts +0 -8
- package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +0 -84
- package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +0 -3
- package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +0 -27
- package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +2 -5
- package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +0 -2
- package/project/.sdk/src/cmp/perl/Schema_perl.ts +0 -18
- package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +0 -2
- package/project/.sdk/src/cmp/perl/utility_perl.ts +0 -26
- package/project/.sdk/src/cmp/php/Config_php.ts +0 -76
- package/project/.sdk/src/cmp/php/EntityTypes_php.ts +0 -51
- package/project/.sdk/src/cmp/php/MainEntity_php.ts +0 -6
- package/project/.sdk/src/cmp/php/Main_php.ts +0 -15
- package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +0 -73
- package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +0 -4
- package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +0 -33
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +0 -1
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +0 -19
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +2 -7
- package/project/.sdk/src/cmp/php/Schema_php.ts +0 -15
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +0 -9
- package/project/.sdk/src/cmp/php/utility_php.ts +0 -22
- package/project/.sdk/src/cmp/py/Config_py.ts +0 -53
- package/project/.sdk/src/cmp/py/EntityTypes_py.ts +0 -55
- package/project/.sdk/src/cmp/py/Entity_py.ts +0 -16
- package/project/.sdk/src/cmp/py/Main_py.ts +1 -61
- package/project/.sdk/src/cmp/py/Package_py.ts +0 -3
- package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +0 -69
- package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +0 -13
- package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +0 -31
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +0 -3
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +0 -28
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +2 -16
- package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +0 -14
- package/project/.sdk/src/cmp/py/Schema_py.ts +0 -19
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +0 -2
- package/project/.sdk/src/cmp/py/utility_py.ts +0 -22
- package/project/.sdk/src/cmp/py-data/Main_py-data.ts +9 -43
- package/project/.sdk/src/cmp/rb/Config_rb.ts +0 -56
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +0 -58
- package/project/.sdk/src/cmp/rb/Entity_rb.ts +0 -3
- package/project/.sdk/src/cmp/rb/Main_rb.ts +0 -10
- package/project/.sdk/src/cmp/rb/Package_rb.ts +0 -5
- package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +0 -81
- package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +0 -7
- package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +0 -32
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +0 -9
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +0 -23
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +2 -10
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +0 -5
- package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +0 -3
- package/project/.sdk/src/cmp/rb/Schema_rb.ts +0 -15
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +0 -2
- package/project/.sdk/src/cmp/rb/utility_rb.ts +0 -22
- package/project/.sdk/src/cmp/rust/Config_rust.ts +0 -35
- package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +0 -34
- package/project/.sdk/src/cmp/rust/Entity_rust.ts +0 -9
- package/project/.sdk/src/cmp/rust/Main_rust.ts +0 -58
- package/project/.sdk/src/cmp/rust/Package_rust.ts +0 -30
- package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +0 -84
- package/project/.sdk/src/cmp/rust/ReadmeExamplesTest_rust.ts +0 -16
- package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +2 -5
- package/project/.sdk/src/cmp/rust/Schema_rust.ts +0 -18
- package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +0 -7
- package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +0 -9
- package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +0 -14
- package/project/.sdk/src/cmp/rust/fragment/EntityRemoveOp.fragment.rs +0 -4
- package/project/.sdk/src/cmp/rust/fragment/Main.fragment.rs +0 -20
- package/project/.sdk/src/cmp/rust/fragment/SdkError.fragment.rs +0 -6
- package/project/.sdk/src/cmp/rust/utility_rust.ts +0 -47
- package/project/.sdk/src/cmp/scala/Config_scala.ts +0 -31
- package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +0 -51
- package/project/.sdk/src/cmp/scala/Main_scala.ts +0 -78
- package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +0 -102
- package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +0 -1
- package/project/.sdk/src/cmp/scala/ReadmeExamplesTest_scala.ts +0 -23
- package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +2 -5
- package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +0 -5
- package/project/.sdk/src/cmp/scala/Schema_scala.ts +0 -19
- package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +0 -8
- package/project/.sdk/src/cmp/scala/Test_scala.ts +0 -3
- package/project/.sdk/src/cmp/scala/utility_scala.ts +0 -31
- package/project/.sdk/src/cmp/swift/Config_swift.ts +0 -62
- package/project/.sdk/src/cmp/swift/EntityOperation_swift.ts +0 -3
- package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +0 -39
- package/project/.sdk/src/cmp/swift/Main_swift.ts +0 -42
- package/project/.sdk/src/cmp/swift/Package_swift.ts +0 -69
- package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +0 -134
- package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +0 -2
- package/project/.sdk/src/cmp/swift/ReadmeExamplesTest_swift.ts +0 -22
- package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +2 -5
- package/project/.sdk/src/cmp/swift/Schema_swift.ts +0 -18
- package/project/.sdk/src/cmp/swift/TestEntity_swift.ts +0 -4
- package/project/.sdk/src/cmp/swift/utility_swift.ts +0 -51
- package/project/.sdk/src/cmp/ts/Config_ts.ts +0 -46
- package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +0 -34
- package/project/.sdk/src/cmp/ts/Entity_ts.ts +0 -6
- package/project/.sdk/src/cmp/ts/Main_ts.ts +0 -28
- package/project/.sdk/src/cmp/ts/Package_ts.ts +2 -26
- package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +0 -55
- package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +0 -9
- package/project/.sdk/src/cmp/ts/ReadmeExampleTest_ts.ts +0 -6
- package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +0 -25
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +4 -9
- package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +0 -7
- package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +0 -3
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +0 -43
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +2 -20
- package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +0 -11
- package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +6 -9
- package/project/.sdk/src/cmp/ts/Schema_ts.ts +0 -21
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +2 -53
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +3 -31
- package/project/.sdk/src/cmp/ts/TestLive_ts.ts +10 -4
- package/project/.sdk/src/cmp/ts/Test_ts.ts +0 -4
- package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +0 -27
- package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +0 -7
- package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +0 -7
- package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +0 -1
- package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +0 -4
- package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +0 -20
- package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +0 -6
- package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +0 -6
- package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +0 -15
- package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +0 -6
- package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +0 -15
- package/project/.sdk/src/cmp/ts/fragment/MainStation.fragment.ts +0 -12
- package/project/.sdk/src/cmp/ts/fragment/SdkError.fragment.ts +0 -9
- package/project/.sdk/src/cmp/ts/utility_ts.ts +0 -59
- package/project/.sdk/src/cmp/zig/Config_zig.ts +0 -70
- package/project/.sdk/src/cmp/zig/Entity_zig.ts +0 -3
- package/project/.sdk/src/cmp/zig/Main_zig.ts +0 -83
- package/project/.sdk/src/cmp/zig/Package_zig.ts +0 -22
- package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +0 -136
- package/project/.sdk/src/cmp/zig/ReadmeExamplesTest_zig.ts +0 -18
- package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +0 -3
- package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +2 -5
- package/project/.sdk/src/cmp/zig/Schema_zig.ts +0 -23
- package/project/.sdk/src/cmp/zig/TestDirect_zig.ts +0 -11
- package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +0 -8
- package/project/.sdk/src/cmp/zig/Test_zig.ts +0 -11
- package/project/.sdk/src/cmp/zig/utility_zig.ts +0 -47
- package/project/.sdk/tm/csharp/feature/FeatureOptions.cs +18 -5
- package/project/.sdk/tm/go/core/context.go +0 -9
- package/project/.sdk/tm/go/core/types.go +0 -3
- package/project/.sdk/tm/go/feature/audit_feature.go +0 -9
- package/project/.sdk/tm/go/feature/cache_feature.go +0 -8
- package/project/.sdk/tm/go/feature/clienttrack_feature.go +0 -7
- package/project/.sdk/tm/go/feature/cost_feature.go +0 -51
- package/project/.sdk/tm/go/feature/debug_feature.go +0 -6
- package/project/.sdk/tm/go/feature/feature_options.go +108 -21
- package/project/.sdk/tm/go/feature/idempotency_feature.go +0 -6
- package/project/.sdk/tm/go/feature/metrics_feature.go +0 -6
- package/project/.sdk/tm/go/feature/netsim_feature.go +0 -8
- package/project/.sdk/tm/go/feature/paging_feature.go +0 -9
- package/project/.sdk/tm/go/feature/proxy_feature.go +0 -7
- package/project/.sdk/tm/go/feature/ratelimit_feature.go +0 -6
- package/project/.sdk/tm/go/feature/rbac_feature.go +0 -10
- package/project/.sdk/tm/go/feature/retry_feature.go +0 -6
- package/project/.sdk/tm/go/feature/secrets_feature.go +0 -173
- package/project/.sdk/tm/go/feature/streaming_feature.go +0 -7
- package/project/.sdk/tm/go/feature/telemetry_feature.go +0 -8
- package/project/.sdk/tm/go/feature/test_feature.go +0 -23
- package/project/.sdk/tm/go/feature/validate_feature.go +0 -66
- package/project/.sdk/tm/go/test/custom_utility_test.go +0 -29
- package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +0 -100
- package/project/.sdk/tm/go/test/feature_corpus_test.go +1 -60
- package/project/.sdk/tm/go/test/feature_harness_test.go +0 -10
- package/project/.sdk/tm/go/test/feature_test.go +107 -9
- package/project/.sdk/tm/go/test/omniresolver_test.go +0 -74
- package/project/.sdk/tm/go/test/omnismoke_test.go +0 -4
- package/project/.sdk/tm/go/test/pipeline_test.go +0 -10
- package/project/.sdk/tm/go/test/primary_utility_test.go +0 -32
- package/project/.sdk/tm/go/test/struct_utility_test.go +0 -38
- package/project/.sdk/tm/go/test/testsupport_test.go +0 -25
- package/project/.sdk/tm/go/utility/feature_add.go +0 -6
- package/project/.sdk/tm/go/utility/fetcher.go +0 -6
- package/project/.sdk/tm/go/utility/graphql.go +1 -31
- package/project/.sdk/tm/go/utility/make_options.go +38 -49
- package/project/.sdk/tm/go/utility/make_point.go +0 -11
- package/project/.sdk/tm/go/utility/make_spec.go +0 -15
- package/project/.sdk/tm/go/utility/register.go +0 -28
- package/project/.sdk/tm/go/utility/transform_request.go +0 -20
- package/project/.sdk/tm/go/utility/transform_response.go +0 -8
- package/project/.sdk/tm/js/src/feature/test/TestFeature.js +12 -4
- package/project/.sdk/tm/rust/core/context.rs +0 -5
- package/project/.sdk/tm/rust/core/control.rs +0 -1
- package/project/.sdk/tm/rust/core/helpers.rs +0 -15
- package/project/.sdk/tm/rust/core/operation.rs +0 -1
- package/project/.sdk/tm/rust/core/point.rs +0 -3
- package/project/.sdk/tm/rust/core/response.rs +0 -2
- package/project/.sdk/tm/rust/core/result.rs +0 -1
- package/project/.sdk/tm/rust/core/spec.rs +0 -1
- package/project/.sdk/tm/rust/core/types.rs +0 -20
- package/project/.sdk/tm/rust/core/utility_type.rs +0 -5
- package/project/.sdk/tm/rust/feature/audit.rs +0 -9
- package/project/.sdk/tm/rust/feature/base.rs +0 -3
- package/project/.sdk/tm/rust/feature/cache.rs +0 -9
- package/project/.sdk/tm/rust/feature/clienttrack.rs +0 -7
- package/project/.sdk/tm/rust/feature/cost.rs +0 -48
- package/project/.sdk/tm/rust/feature/debug.rs +0 -7
- package/project/.sdk/tm/rust/feature/idempotency.rs +0 -7
- package/project/.sdk/tm/rust/feature/log.rs +0 -3
- package/project/.sdk/tm/rust/feature/metrics.rs +0 -7
- package/project/.sdk/tm/rust/feature/netsim.rs +0 -9
- package/project/.sdk/tm/rust/feature/paging.rs +0 -10
- package/project/.sdk/tm/rust/feature/proxy.rs +0 -8
- package/project/.sdk/tm/rust/feature/ratelimit.rs +0 -6
- package/project/.sdk/tm/rust/feature/rbac.rs +0 -10
- package/project/.sdk/tm/rust/feature/retry.rs +0 -6
- package/project/.sdk/tm/rust/feature/secrets.rs +1 -187
- package/project/.sdk/tm/rust/feature/streaming.rs +0 -7
- package/project/.sdk/tm/rust/feature/support.rs +0 -6
- package/project/.sdk/tm/rust/feature/telemetry.rs +0 -9
- package/project/.sdk/tm/rust/feature/test.rs +0 -19
- package/project/.sdk/tm/rust/feature/timeout.rs +0 -7
- package/project/.sdk/tm/rust/feature/validate.rs +0 -81
- package/project/.sdk/tm/rust/tests/common/mod.rs +0 -35
- package/project/.sdk/tm/rust/tests/custom_utility_test.rs +0 -2
- package/project/.sdk/tm/rust/tests/feature/secrets/main.rs +0 -95
- package/project/.sdk/tm/rust/tests/feature_test.rs +0 -16
- package/project/.sdk/tm/rust/tests/netsim_test.rs +0 -6
- package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +0 -135
- package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +0 -15
- package/project/.sdk/tm/rust/tests/pipeline_test.rs +0 -6
- package/project/.sdk/tm/rust/tests/primary_utility_test.rs +0 -22
- package/project/.sdk/tm/rust/tests/struct_utility_test.rs +0 -25
- package/project/.sdk/tm/rust/utility/fetcher.rs +0 -5
- package/project/.sdk/tm/rust/utility/graphql.rs +1 -30
- package/project/.sdk/tm/rust/utility/make_error.rs +0 -2
- package/project/.sdk/tm/rust/utility/make_options.rs +0 -46
- package/project/.sdk/tm/rust/utility/make_point.rs +0 -12
- package/project/.sdk/tm/rust/utility/make_spec.rs +0 -4
- package/project/.sdk/tm/rust/utility/voxgigstruct/consts.rs +14 -20
- package/project/.sdk/tm/rust/utility/voxgigstruct/major.rs +0 -13
- package/project/.sdk/tm/rust/utility/voxgigstruct/mini.rs +0 -14
- package/project/.sdk/tm/rust/utility/voxgigstruct/mod.rs +0 -2
- package/project/.sdk/tm/rust/utility/voxgigstruct/ordered_map.rs +0 -18
- package/project/.sdk/tm/rust/utility/voxgigstruct/re.rs +0 -11
- package/project/.sdk/tm/rust/utility/voxgigstruct/value.rs +0 -3
- package/project/.sdk/tm/ts/src/Context.ts +0 -5
- package/project/.sdk/tm/ts/src/feature/audit/AuditFeature.ts +0 -7
- package/project/.sdk/tm/ts/src/feature/cache/CacheFeature.ts +0 -8
- package/project/.sdk/tm/ts/src/feature/clienttrack/ClienttrackFeature.ts +0 -7
- package/project/.sdk/tm/ts/src/feature/cost/CostFeature.ts +0 -52
- package/project/.sdk/tm/ts/src/feature/debug/DebugFeature.ts +0 -6
- package/project/.sdk/tm/ts/src/feature/metrics/MetricsFeature.ts +0 -6
- package/project/.sdk/tm/ts/src/feature/netsim/NetsimFeature.ts +0 -8
- package/project/.sdk/tm/ts/src/feature/paging/PagingFeature.ts +0 -13
- package/project/.sdk/tm/ts/src/feature/proxy/ProxyFeature.ts +0 -8
- package/project/.sdk/tm/ts/src/feature/ratelimit/RatelimitFeature.ts +0 -6
- package/project/.sdk/tm/ts/src/feature/rbac/RbacFeature.ts +0 -9
- package/project/.sdk/tm/ts/src/feature/retry/RetryFeature.ts +0 -6
- package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +0 -136
- package/project/.sdk/tm/ts/src/feature/streaming/StreamingFeature.ts +0 -7
- package/project/.sdk/tm/ts/src/feature/telemetry/TelemetryFeature.ts +0 -7
- package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +13 -88
- package/project/.sdk/tm/ts/src/feature/validate/ValidateFeature.ts +0 -87
- package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +0 -12
- package/project/.sdk/tm/ts/src/utility/FeatureAddUtility.ts +0 -1
- package/project/.sdk/tm/ts/src/utility/GraphqlUtility.ts +2 -30
- package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +0 -4
- package/project/.sdk/tm/ts/src/utility/MakeOptionsUtility.ts +0 -46
- package/project/.sdk/tm/ts/src/utility/MakePointUtility.ts +0 -34
- package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +0 -1
- package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +0 -5
- package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +0 -1
- package/project/.sdk/tm/ts/src/utility/ParamUtility.ts +0 -8
- package/project/.sdk/tm/ts/src/utility/PrepareBodyUtility.ts +0 -3
- package/project/.sdk/tm/ts/src/utility/PrepareParamsUtility.ts +0 -6
- package/project/.sdk/tm/ts/src/utility/ResultBasicUtility.ts +0 -1
- package/project/.sdk/tm/ts/src/utility/TransformRequestUtility.ts +0 -20
- package/project/.sdk/tm/ts/src/utility/TransformResponseUtility.ts +0 -4
- package/project/.sdk/tm/ts/test/exists.test.ts +0 -10
- package/project/.sdk/tm/ts/test/feature/Corpus.test.ts +0 -56
- package/project/.sdk/tm/ts/test/feature/harness.ts +0 -9
- package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +0 -106
- package/project/.sdk/tm/ts/test/live-contract.ts +0 -2
- package/project/.sdk/tm/ts/test/omni.ts +0 -32
- package/project/.sdk/tm/ts/test/pipeline.test.ts +45 -28
- package/project/.sdk/tm/ts/test/utility/Corpus.test.ts +0 -13
- package/project/.sdk/tm/ts/test/utility/PrimaryUtility.test.ts +56 -29
- package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +0 -7
- package/project/.sdk/tm/ts/test/utility.ts +0 -55
- package/project/sdkgen-package.json +1 -1
- package/src/action/action.ts +0 -65
- package/src/action/check.ts +0 -88
- package/src/action/dispatch.ts +0 -27
- package/src/action/doctor.ts +69 -329
- package/src/action/edition.ts +1 -87
- package/src/action/feature.ts +1 -49
- package/src/action/kind.ts +0 -149
- package/src/action/package.ts +0 -228
- package/src/action/resolve.ts +0 -148
- package/src/action/target.ts +0 -177
- package/src/cmp/AgentGuide.ts +0 -7
- package/src/cmp/AgentGuideContent.ts +0 -24
- package/src/cmp/AgentGuideTop.ts +0 -7
- package/src/cmp/Changelog.ts +0 -14
- package/src/cmp/Deploy.ts +1 -31
- package/src/cmp/Entity.ts +0 -4
- package/src/cmp/ExternalTarget.ts +0 -36
- package/src/cmp/Feature.ts +0 -14
- package/src/cmp/FeatureDocs.ts +0 -37
- package/src/cmp/PublishWorkflow.ts +0 -60
- package/src/cmp/ReadmeErrors.ts +0 -17
- package/src/cmp/ReadmeExplanation.ts +2 -11
- package/src/cmp/ReadmeFeatures.ts +0 -10
- package/src/cmp/ReadmeRefFeatures.ts +0 -19
- package/src/cmp/ReadmeStation.ts +0 -19
- package/src/cmp/ReadmeTop.ts +0 -80
- package/src/cmp/ReadmeUnions.ts +0 -15
- package/src/cmp/Registered.ts +0 -30
- package/src/cmp/Security.ts +0 -2
- package/src/cmp/Test.ts +3 -1
- package/src/cmp/TestControl.ts +0 -25
- package/src/helpers/applicability.ts +0 -60
- package/src/helpers/buildIdNames.ts +0 -12
- package/src/helpers/canonSpec.ts +0 -114
- package/src/helpers/canonType.ts +0 -87
- package/src/helpers/collectDeps.ts +0 -27
- package/src/helpers/definition.ts +0 -29
- package/src/helpers/dryrun.ts +0 -8
- package/src/helpers/featureSource.ts +0 -152
- package/src/helpers/getMatchEntries.ts +0 -4
- package/src/helpers/junk.ts +13 -89
- package/src/helpers/manifest.ts +0 -169
- package/src/helpers/modelNames.ts +0 -81
- package/src/helpers/modelcheck.ts +0 -106
- package/src/helpers/naming.ts +0 -303
- package/src/helpers/opExample.ts +0 -56
- package/src/helpers/opShape.ts +0 -200
- package/src/helpers/optspec.ts +0 -77
- package/src/helpers/packageMeta.ts +1 -200
- package/src/helpers/pointPath.ts +0 -55
- package/src/helpers/resolved.ts +50 -0
- package/src/helpers/semver.ts +0 -61
- package/src/helpers/serverVars.ts +0 -44
- package/src/helpers/shipped.ts +0 -14
- package/src/helpers/station.ts +0 -32
- package/src/helpers/stdrep.ts +0 -52
- package/src/helpers/testPolicy.ts +0 -4
- package/src/sdkgen.ts +15 -263
- package/src/testkit.ts +6 -312
- package/src/types.ts +1 -30
- package/src/utility.ts +0 -243
|
@@ -1,58 +1,3 @@
|
|
|
1
|
-
// Secret access via a vendored @voxgig/sekreto provider chain, and the
|
|
2
|
-
// access-token exchange some APIs require on top of it. The rust port of
|
|
3
|
-
// tm/ts/src/feature/secrets/SecretsFeature.ts, following the GO port's
|
|
4
|
-
// structure - same contract, rust idiom.
|
|
5
|
-
//
|
|
6
|
-
// The SDK's `apikey` option keeps exactly its old meaning: an explicit
|
|
7
|
-
// credential given in code. This feature makes it ONE SOURCE among several
|
|
8
|
-
// rather than the only one: when active, the apikey is resolved through a
|
|
9
|
-
// sekreto chain in which the explicit option (when set) is the FIRST
|
|
10
|
-
// provider - a `memory` store named `options` - so an explicit value always
|
|
11
|
-
// wins, by sekreto's own first-hit rule rather than by special-case logic.
|
|
12
|
-
// When the option is unset the remaining providers (env, dotenv, a vault)
|
|
13
|
-
// are asked in order, and moving a credential from code to a vault becomes
|
|
14
|
-
// a configuration change.
|
|
15
|
-
//
|
|
16
|
-
// MISS vs ERROR (sekreto's invariant): a provider MISS falls through - the
|
|
17
|
-
// op proceeds, unauthenticated if nothing else supplies a credential. A
|
|
18
|
-
// provider ERROR (unreachable vault, bad creds) must FAIL the op: a broken
|
|
19
|
-
// vault never degrades into an unauthenticated request.
|
|
20
|
-
//
|
|
21
|
-
// WHERE RESOLUTION HAPPENS, and why it is not the PreSpec hook. rust's
|
|
22
|
-
// feature hooks return `()` (core/types.rs `fn pre_spec(&mut self, _ctx)
|
|
23
|
-
// {}`), so a hook cannot fail an operation the way ts's awaited hook
|
|
24
|
-
// rejection can - and `direct()` / `graphql()` run no feature hooks at all
|
|
25
|
-
// (Main.fragment.rs raw_request calls utility.fetch directly). So, exactly
|
|
26
|
-
// as in the go port, resolution happens at the TRANSPORT SEAM: the one
|
|
27
|
-
// place every wire path crosses. The wrapper refuses to send while the
|
|
28
|
-
// last resolution stands failed, which is fail-closed for the entity
|
|
29
|
-
// pipeline and the raw paths alike, with one implementation.
|
|
30
|
-
//
|
|
31
|
-
// WHERE THE CREDENTIAL LIVES, and why it is not the options map. The ts
|
|
32
|
-
// reference writes `options.apikey`; this port does NOT. `options_map()`
|
|
33
|
-
// deep-clones on every prepare_auth call and the root options Value is
|
|
34
|
-
// shared by every context, so a feature that mutated it would be visible
|
|
35
|
-
// everywhere at once and would defeat the `auth: null` suppression pin.
|
|
36
|
-
// The resolved credential is held in FEATURE STATE and written into each
|
|
37
|
-
// request's header at the transport, the same construction prepare_auth
|
|
38
|
-
// uses (options.auth.prefix), so the wire is identical and the options map
|
|
39
|
-
// stays frozen after construction.
|
|
40
|
-
//
|
|
41
|
-
// EXCHANGE: some APIs will not take a long-lived credential at all. What
|
|
42
|
-
// the chain resolves is then a REFRESH token, which buys a short-lived
|
|
43
|
-
// ACCESS token from a token endpoint (`exchange.path`, relative to
|
|
44
|
-
// options.base); the access token is what every request carries, and when
|
|
45
|
-
// a response status in `exchange.statuses` (401) says it is spent the
|
|
46
|
-
// wrapper buys another and retries the same request once. Test mode buys
|
|
47
|
-
// nothing and answers with a deterministic fake token.
|
|
48
|
-
//
|
|
49
|
-
// THREADING: this SDK is single-threaded by construction (Value is
|
|
50
|
-
// Rc/RefCell-backed, so !Send), which is why go's mutex/channel machinery
|
|
51
|
-
// collapses to a RefCell here. The discipline that replaces it: the
|
|
52
|
-
// transport closure must hold NO RefCell borrow across `inner(...)` or
|
|
53
|
-
// across a provider lookup, or the failure is a runtime `already borrowed`
|
|
54
|
-
// panic rather than a compile error. Every borrow below is scoped for that
|
|
55
|
-
// reason.
|
|
56
1
|
|
|
57
2
|
pub mod plugin;
|
|
58
3
|
pub mod plugins;
|
|
@@ -121,10 +66,7 @@ pub struct SecretsState {
|
|
|
121
66
|
options: Value,
|
|
122
67
|
mode: String,
|
|
123
68
|
|
|
124
|
-
/// The RESOLVED credential, injected into each request at the
|
|
125
|
-
/// transport seam.
|
|
126
69
|
cred: String,
|
|
127
|
-
/// The refresh token the chain resolved, when exchanging.
|
|
128
70
|
refresh: String,
|
|
129
71
|
|
|
130
72
|
/// A settled SUCCESSFUL resolution. Kept only while caching is on
|
|
@@ -156,22 +98,6 @@ impl SecretsState {
|
|
|
156
98
|
}
|
|
157
99
|
}
|
|
158
100
|
|
|
159
|
-
/// A provider given as a plain callable.
|
|
160
|
-
///
|
|
161
|
-
/// A live `Rc<dyn Provider>` cannot travel inside a Value - the SDK union
|
|
162
|
-
/// is Noval|Null|Bool|Num|Str|List|Map|Func|Sentinel, and adding a variant
|
|
163
|
-
/// to the vendored struct library to carry SDK objects would be wrong - so
|
|
164
|
-
/// go's `providers: [&customProvider{...}]` has no direct rust
|
|
165
|
-
/// translation. This is the Value-shaped half of the answer (the typed
|
|
166
|
-
/// half is `SecretsFeature::add_provider`): the callable is handed the
|
|
167
|
-
/// secret NAME and answers
|
|
168
|
-
///
|
|
169
|
-
/// Value::Str(v) -> a HIT
|
|
170
|
-
/// Value::Noval / Value::Null -> a MISS, the chain continues
|
|
171
|
-
/// { "__err__": "..." } -> an ERROR, which fails the operation
|
|
172
|
-
///
|
|
173
|
-
/// The miss/error split is the whole point: conflating them turns a broken
|
|
174
|
-
/// vault into a silent unauthenticated request.
|
|
175
101
|
struct FuncProvider {
|
|
176
102
|
f: Value,
|
|
177
103
|
}
|
|
@@ -194,11 +120,6 @@ impl Provider for FuncProvider {
|
|
|
194
120
|
}
|
|
195
121
|
}
|
|
196
122
|
|
|
197
|
-
/// SDK Value -> voxgig/plugin Value, so an option map can be handed to
|
|
198
|
-
/// sekreto's `specof`. The two are different types on purpose: sekreto's
|
|
199
|
-
/// is an owned BTreeMap tree with an Opaque variant for host objects, the
|
|
200
|
-
/// SDK's is Rc/RefCell-backed and closed. Callables and sentinels have no
|
|
201
|
-
/// counterpart and become null.
|
|
202
123
|
fn to_plugin_value(v: &Value) -> PluginValue {
|
|
203
124
|
match v {
|
|
204
125
|
Value::Bool(b) => PluginValue::Bool(*b),
|
|
@@ -255,7 +176,6 @@ impl SecretsFeature {
|
|
|
255
176
|
self.state.borrow().cred.clone()
|
|
256
177
|
}
|
|
257
178
|
|
|
258
|
-
/// Resolve now, rather than at the next request.
|
|
259
179
|
pub fn resolve(&self) -> Result<(), ProjectNameError> {
|
|
260
180
|
resolve(&self.state)
|
|
261
181
|
}
|
|
@@ -281,8 +201,6 @@ impl Feature for SecretsFeature {
|
|
|
281
201
|
self.add_opts.clone()
|
|
282
202
|
}
|
|
283
203
|
|
|
284
|
-
// Sync by feature contract: build the chain, never look anything up
|
|
285
|
-
// here.
|
|
286
204
|
fn init(&mut self, ctx: &Rc<Context>, options: &Value) {
|
|
287
205
|
self.active = fopt_bool(options, "active", false);
|
|
288
206
|
|
|
@@ -323,16 +241,6 @@ impl Feature for SecretsFeature {
|
|
|
323
241
|
});
|
|
324
242
|
}
|
|
325
243
|
|
|
326
|
-
// The explicit credential, when set, is the first store in the
|
|
327
|
-
// chain.
|
|
328
|
-
//
|
|
329
|
-
// WHICH option that is depends on the exchange. Without one, the
|
|
330
|
-
// secret being resolved IS the credential the transport sends, so
|
|
331
|
-
// `apikey` is it. With one, the secret is a REFRESH token and
|
|
332
|
-
// `apikey` means the opposite thing - an access token the caller
|
|
333
|
-
// already holds - so the explicit seat belongs to
|
|
334
|
-
// `exchange.refresh`, and apikey is left alone to serve as the
|
|
335
|
-
// starting access token (see resolve_once).
|
|
336
244
|
let explicit = if state.exchange.is_none() {
|
|
337
245
|
match getp(&state.options, "apikey") {
|
|
338
246
|
Value::Str(s) => s,
|
|
@@ -368,13 +276,6 @@ impl Feature for SecretsFeature {
|
|
|
368
276
|
..Default::default()
|
|
369
277
|
}),
|
|
370
278
|
Value::Map(_) => specs.push(specof(&to_plugin_value(p))),
|
|
371
|
-
// FAIL CLOSED, never drop. An entry that is neither a
|
|
372
|
-
// callable nor a spec (a bare "hashicorp" where a spec
|
|
373
|
-
// map was meant) must not leave the chain quietly
|
|
374
|
-
// shorter than the options say: sekreto's own wording
|
|
375
|
-
// lands in the init-failure gate, which refuses to send.
|
|
376
|
-
// The rust ProviderSpec is typed, so the refusal is
|
|
377
|
-
// raised at this arm, as the go port does.
|
|
378
279
|
_ => {
|
|
379
280
|
if state.initerr.is_none() {
|
|
380
281
|
state.initerr = Some(format!(
|
|
@@ -415,25 +316,12 @@ impl Feature for SecretsFeature {
|
|
|
415
316
|
|
|
416
317
|
self.state = Rc::new(RefCell::new(state));
|
|
417
318
|
|
|
418
|
-
// The public accessor, published on the client's shared map: rust
|
|
419
|
-
// options are pure data, and the generated client must not name a
|
|
420
|
-
// feature type, so `sdk.secrets()` has no rust spelling. A Value
|
|
421
|
-
// callable does have one, and it reaches every caller - and every
|
|
422
|
-
// test - with no downcast.
|
|
423
|
-
//
|
|
424
|
-
// let s = getp(&client.get_root_ctx().shared.borrow(), "secrets");
|
|
425
|
-
// call_vfn(&s, &ja(vec![Value::str("getfrom"),
|
|
426
|
-
// Value::str("options"), Value::str("apikey")]))
|
|
427
319
|
let shared = ctx.shared.borrow().clone();
|
|
428
320
|
if let Value::Map(_) = shared {
|
|
429
321
|
let h = self.state.clone();
|
|
430
322
|
setp(&shared, "secrets", vfn(move |arg| secrets_call(&h, arg)));
|
|
431
323
|
}
|
|
432
324
|
|
|
433
|
-
// Wrap the transport. The fail-closed gate needs the seam whenever
|
|
434
|
-
// the feature is active - hooks cannot fail an operation and the
|
|
435
|
-
// raw paths run none - and the exchange additionally needs to SEE
|
|
436
|
-
// responses, since expiry is only ever discovered from one.
|
|
437
325
|
let util = ctx.util();
|
|
438
326
|
let inner: FetcherFn = util.fetcher.borrow().clone();
|
|
439
327
|
let state = self.state.clone();
|
|
@@ -443,7 +331,6 @@ impl Feature for SecretsFeature {
|
|
|
443
331
|
}
|
|
444
332
|
}
|
|
445
333
|
|
|
446
|
-
// ---- the accessor -------------------------------------------------------
|
|
447
334
|
|
|
448
335
|
fn secrets_call(state: &Rc<RefCell<SecretsState>>, arg: &Value) -> Value {
|
|
449
336
|
let args: Vec<Value> = match arg {
|
|
@@ -505,19 +392,7 @@ fn secrets_call(state: &Rc<RefCell<SecretsState>>, arg: &Value) -> Value {
|
|
|
505
392
|
}
|
|
506
393
|
}
|
|
507
394
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
// One resolution, shared by every request. A settled HIT is kept only when
|
|
511
|
-
// caching is on; a FAILURE is never kept, so a transient vault outage never
|
|
512
|
-
// poisons the client permanently - the next operation asks again.
|
|
513
|
-
//
|
|
514
|
-
// A MISS is not kept either, however caching is set. That rule is
|
|
515
|
-
// sekreto's, not this feature's: `A miss is never cached: the next read
|
|
516
|
-
// asks again`, in sekreto's own source. Keeping a settled miss here would
|
|
517
|
-
// override that from the layer above, and a secret provisioned after
|
|
518
|
-
// startup - a mounted file, a policy granted a minute late - would never be
|
|
519
|
-
// picked up for the life of the client. `cache` is about caching a HIT; it
|
|
520
|
-
// was never a promise to keep saying no.
|
|
395
|
+
|
|
521
396
|
fn resolve(state: &Rc<RefCell<SecretsState>>) -> Result<(), ProjectNameError> {
|
|
522
397
|
{
|
|
523
398
|
let s = state.borrow();
|
|
@@ -573,12 +448,6 @@ fn resolve_once(state: &Rc<RefCell<SecretsState>>) -> Result<bool, ProjectNameEr
|
|
|
573
448
|
let mut s = state.borrow_mut();
|
|
574
449
|
|
|
575
450
|
if s.exchange.is_none() {
|
|
576
|
-
// An UNCACHED miss after an earlier hit is a revocation: the
|
|
577
|
-
// chain now says no provider has the secret, so the resolved
|
|
578
|
-
// value must not keep going out on the wire. (An explicit
|
|
579
|
-
// apikey OPTION is never lost here - it seats FIRST in the
|
|
580
|
-
// chain as a memory provider, so the chain HITS while one is
|
|
581
|
-
// set and the miss branch is unreachable.)
|
|
582
451
|
let hit = found.is_some();
|
|
583
452
|
s.cred = found.unwrap_or_default();
|
|
584
453
|
return Ok(hit);
|
|
@@ -604,13 +473,6 @@ fn resolve_once(state: &Rc<RefCell<SecretsState>>) -> Result<bool, ProjectNameEr
|
|
|
604
473
|
return Ok(true);
|
|
605
474
|
}
|
|
606
475
|
|
|
607
|
-
// `auth: null` is the documented way to send NO credential, and a
|
|
608
|
-
// purchase is a credential-bearing call: the refresh token goes to
|
|
609
|
-
// the token endpoint in the request body. with_refresh honours
|
|
610
|
-
// suppression for the RETRY, but it runs after this - by then the
|
|
611
|
-
// refresh token has already left the process, and no later check
|
|
612
|
-
// can call it back. The suppression has to be honoured here, before
|
|
613
|
-
// the first purchase, or it only ever half-held.
|
|
614
476
|
if !authactive(&s.options) {
|
|
615
477
|
return Ok(false);
|
|
616
478
|
}
|
|
@@ -619,7 +481,6 @@ fn resolve_once(state: &Rc<RefCell<SecretsState>>) -> Result<bool, ProjectNameEr
|
|
|
619
481
|
buy(state).map(|_| true)
|
|
620
482
|
}
|
|
621
483
|
|
|
622
|
-
// ---- the transport seam -------------------------------------------------
|
|
623
484
|
|
|
624
485
|
fn transport(
|
|
625
486
|
state: &Rc<RefCell<SecretsState>>,
|
|
@@ -628,12 +489,6 @@ fn transport(
|
|
|
628
489
|
fetchdef: &Value,
|
|
629
490
|
inner: &FetcherFn,
|
|
630
491
|
) -> Result<Value, ProjectNameError> {
|
|
631
|
-
// Fail-closed, at the ONE seam every wire path crosses. Entity ops,
|
|
632
|
-
// direct(), graphql() and the exchange retries all come through here,
|
|
633
|
-
// so resolving HERE is what gives the raw paths - which run no feature
|
|
634
|
-
// hooks at all - the same credential the entity pipeline gets. A
|
|
635
|
-
// provider ERROR refuses the request with the provider's own error;
|
|
636
|
-
// never an unauthenticated send.
|
|
637
492
|
resolve(state)?;
|
|
638
493
|
|
|
639
494
|
let (token, exchanging) = {
|
|
@@ -641,12 +496,6 @@ fn transport(
|
|
|
641
496
|
(s.cred.clone(), s.exchange.is_some())
|
|
642
497
|
};
|
|
643
498
|
|
|
644
|
-
// Inject the resolved credential into THIS request's header. The
|
|
645
|
-
// header was built by prepare_auth from the options apikey; the
|
|
646
|
-
// chain-resolved value lives in feature state instead, so the wrapper
|
|
647
|
-
// writes it here - same construction, same suppression rules - and the
|
|
648
|
-
// shared options map stays untouched. A MISS leaves whatever
|
|
649
|
-
// prepare_auth built, which is nothing.
|
|
650
499
|
if !token.is_empty() {
|
|
651
500
|
reauth(state, fetchdef, &token);
|
|
652
501
|
}
|
|
@@ -658,14 +507,6 @@ fn transport(
|
|
|
658
507
|
with_refresh(state, ctx, url, fetchdef, inner)
|
|
659
508
|
}
|
|
660
509
|
|
|
661
|
-
// Buy a token and try the request again when the API says the current one
|
|
662
|
-
// is spent.
|
|
663
|
-
//
|
|
664
|
-
// The retry rewrites the authorization header IN PLACE on the fetchdef,
|
|
665
|
-
// because the header was built by the synchronous prepare_auth before this
|
|
666
|
-
// request left and carries the token that just failed. Rebuilt the way
|
|
667
|
-
// prepare_auth builds it, from the same options.auth.prefix, so the two
|
|
668
|
-
// cannot drift.
|
|
669
510
|
fn with_refresh(
|
|
670
511
|
state: &Rc<RefCell<SecretsState>>,
|
|
671
512
|
ctx: &Rc<Context>,
|
|
@@ -673,11 +514,6 @@ fn with_refresh(
|
|
|
673
514
|
fetchdef: &Value,
|
|
674
515
|
inner: &FetcherFn,
|
|
675
516
|
) -> Result<Value, ProjectNameError> {
|
|
676
|
-
// `auth: null` is the documented way to send NO credential, and
|
|
677
|
-
// prepare_auth honours it by removing the header. A refusal of a
|
|
678
|
-
// deliberately unauthenticated request is not an expired token and
|
|
679
|
-
// cannot be fixed by buying one - retrying would transmit exactly the
|
|
680
|
-
// credential the caller suppressed.
|
|
681
517
|
let (suppressed, max) = {
|
|
682
518
|
let s = state.borrow();
|
|
683
519
|
(
|
|
@@ -792,15 +628,8 @@ fn reauth(state: &Rc<RefCell<SecretsState>>, fetchdef: &Value, token: &str) {
|
|
|
792
628
|
}
|
|
793
629
|
}
|
|
794
630
|
|
|
795
|
-
// ---- the access-token exchange -----------------------------------------
|
|
796
631
|
|
|
797
632
|
fn buy(state: &Rc<RefCell<SecretsState>>) -> Result<String, ProjectNameError> {
|
|
798
|
-
// TEST MODE BUYS NOTHING. The test feature replaces the transport so
|
|
799
|
-
// no request leaves the process; an exchange here would be the one
|
|
800
|
-
// call it could not stop, and it would need a live token endpoint for
|
|
801
|
-
// a suite whose whole point is not needing one. A deterministic,
|
|
802
|
-
// obviously-fake token instead - the same answer make_options gives a
|
|
803
|
-
// required server variable, for the same reason.
|
|
804
633
|
let (testmode, response) = {
|
|
805
634
|
let s = state.borrow();
|
|
806
635
|
(
|
|
@@ -848,8 +677,6 @@ fn buy_once(state: &Rc<RefCell<SecretsState>>) -> Result<String, ProjectNameErro
|
|
|
848
677
|
)));
|
|
849
678
|
}
|
|
850
679
|
|
|
851
|
-
// The token endpoint is RELATIVE to the base, which already carries
|
|
852
|
-
// whatever account or tenant segment the server URL declares.
|
|
853
680
|
let base = match getp(&options, "base") {
|
|
854
681
|
Value::Str(s) => s,
|
|
855
682
|
_ => String::new(),
|
|
@@ -860,9 +687,6 @@ fn buy_once(state: &Rc<RefCell<SecretsState>>) -> Result<String, ProjectNameErro
|
|
|
860
687
|
x.path.trim_start_matches('/')
|
|
861
688
|
);
|
|
862
689
|
|
|
863
|
-
// The body is SERIALISED, never concatenated: a refresh token (or a
|
|
864
|
-
// configured request-field name) carrying a quote, backslash or
|
|
865
|
-
// newline must arrive as that literal value, not as malformed JSON.
|
|
866
690
|
let body = vs::jsonify(
|
|
867
691
|
&jo(vec![(x.request.as_str(), Value::str(refresh))]),
|
|
868
692
|
Some(&JsonFlags {
|
|
@@ -880,10 +704,6 @@ fn buy_once(state: &Rc<RefCell<SecretsState>>) -> Result<String, ProjectNameErro
|
|
|
880
704
|
("body", Value::str(body)),
|
|
881
705
|
]);
|
|
882
706
|
|
|
883
|
-
// Deliberately NOT the SDK transport. The transport is what this
|
|
884
|
-
// feature wraps, and sending the token request back through it would
|
|
885
|
-
// recurse on the first expiry - and would route the exchange through
|
|
886
|
-
// the test mock, which knows nothing about it.
|
|
887
707
|
let sys_fetch = getpath(&["system", "fetch"], &options);
|
|
888
708
|
|
|
889
709
|
let res = if let Value::Func(_) = sys_fetch {
|
|
@@ -896,10 +716,6 @@ fn buy_once(state: &Rc<RefCell<SecretsState>>) -> Result<String, ProjectNameErro
|
|
|
896
716
|
}
|
|
897
717
|
out
|
|
898
718
|
} else {
|
|
899
|
-
// No custom transport supplied - the ordinary case. make_options
|
|
900
|
-
// leaves system.fetch unset, so the exchange gets its own raw HTTP
|
|
901
|
-
// path; requiring a custom transport for the COMMON case would
|
|
902
|
-
// reject every live token purchase before a request was made.
|
|
903
719
|
raw_exchange_fetch(&url, &fetchdef)?
|
|
904
720
|
};
|
|
905
721
|
|
|
@@ -933,8 +749,6 @@ fn buy_once(state: &Rc<RefCell<SecretsState>>) -> Result<String, ProjectNameErro
|
|
|
933
749
|
Ok(token)
|
|
934
750
|
}
|
|
935
751
|
|
|
936
|
-
// The token-exchange transport of last resort: plain ureq, answering with
|
|
937
|
-
// the same shape the system.fetch seam promises ("status" + "json").
|
|
938
752
|
fn raw_exchange_fetch(fullurl: &str, fetchdef: &Value) -> Result<Value, ProjectNameError> {
|
|
939
753
|
let method = get_str(fetchdef, "method")
|
|
940
754
|
.filter(|m| !m.is_empty())
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
// Streaming result support (mirrors go feature/streaming_feature.go,
|
|
2
|
-
// adapted to a synchronous runtime). For list-style operations it attaches
|
|
3
|
-
// a `result.stream` producer so callers can consume items incrementally
|
|
4
|
-
// with `for item in (result.stream)()` instead of materialising the whole
|
|
5
|
-
// list themselves. A `chunkSize` groups items into list batches when set;
|
|
6
|
-
// a `chunkDelay` (ms) paces delivery via the injectable `sleep` for
|
|
7
|
-
// offline tests.
|
|
8
1
|
|
|
9
2
|
use std::rc::Rc;
|
|
10
3
|
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
// Shared option readers for the feature implementations (mirrors go
|
|
2
|
-
// feature/feature_options.go). Feature options arrive as Value maps (from
|
|
3
|
-
// SDK options or test harnesses); callables (clocks, sleepers, generators,
|
|
4
|
-
// sinks) arrive as Value::Func entries. These helpers normalise access and
|
|
5
|
-
// supply defaults, mirroring the `null == opts.x ? def : opts.x` pattern of
|
|
6
|
-
// the ts features.
|
|
7
1
|
|
|
8
2
|
use crate::core::helpers::{call_vfn, getp, now_ms, sleep_ms, to_int};
|
|
9
3
|
use crate::utility::voxgigstruct::Value;
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
// Distributed-tracing telemetry (mirrors go feature/telemetry_feature.go).
|
|
2
|
-
// Opens a span per operation (PrePoint), propagates trace context to the
|
|
3
|
-
// server as W3C `traceparent` plus `X-Trace-Id` / `X-Span-Id` headers
|
|
4
|
-
// (PreRequest), and closes the span on completion (PreDone) or failure
|
|
5
|
-
// (PreUnexpected). Each span closes exactly once (the per-context marker
|
|
6
|
-
// in ctx.out is consumed on close). Finished spans accumulate on the
|
|
7
|
-
// feature; an `exporter` callback, when provided, is invoked with each
|
|
8
|
-
// finished span. Trace/span id generation (`idgen`) and the clock (`now`)
|
|
9
|
-
// are injectable for deterministic tests.
|
|
10
1
|
|
|
11
2
|
use std::rc::Rc;
|
|
12
3
|
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
// The offline `test` feature (mirrors go feature/test_feature.go): an
|
|
2
|
-
// in-memory mock transport that serves entity CRUD from a fixture, so
|
|
3
|
-
// generated tests run with no live server. An optional `net` block wraps
|
|
4
|
-
// the mock with simulated network conditions (latency, first-N failures,
|
|
5
|
-
// connection errors, offline) — see make_netsim below.
|
|
6
1
|
|
|
7
2
|
use std::cell::RefCell;
|
|
8
3
|
use std::rc::Rc;
|
|
@@ -33,17 +28,6 @@ impl TestFeature {
|
|
|
33
28
|
}
|
|
34
29
|
}
|
|
35
30
|
|
|
36
|
-
// THE MOCK HAS TO AGREE WITH THE MODEL.
|
|
37
|
-
//
|
|
38
|
-
// A point carrying `transform.res: `body.item`` describes an API that answers
|
|
39
|
-
// {"item": {...}}, and the response transform unwraps that key on the way
|
|
40
|
-
// back. Handing back the bare payload means the transform unwraps a property
|
|
41
|
-
// that is not there, and the caller gets nothing — a mock that only ever
|
|
42
|
-
// simulates APIs whose responses happen to be unwrapped.
|
|
43
|
-
//
|
|
44
|
-
// univec's list op declares `body.data`, so every list returned zero items
|
|
45
|
-
// while the fixture plainly held two. Mirrors the go/ts/lua/php mocks, which
|
|
46
|
-
// already wrap; rust, c and zig were the three that did not.
|
|
47
31
|
fn envelope(ctx: &Rc<Context>, data: Value) -> Value {
|
|
48
32
|
if data.is_noval() || data.is_null() {
|
|
49
33
|
return data;
|
|
@@ -206,9 +190,6 @@ fn test_fetch(
|
|
|
206
190
|
}
|
|
207
191
|
|
|
208
192
|
"update" => {
|
|
209
|
-
// Match the existing entity by id only (or its alias). Reqdata
|
|
210
|
-
// also contains the new field values, which would otherwise
|
|
211
|
-
// cause select to filter out the entity we want to update.
|
|
212
193
|
let reqdata = ctx.reqdata.borrow().clone();
|
|
213
194
|
let update_match = Value::empty_map();
|
|
214
195
|
if let Value::Map(_) = reqdata {
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
// Per-request timeout (mirrors go feature/timeout_feature.go, adapted to a
|
|
2
|
-
// synchronous single-threaded transport like the ruby port). The active
|
|
3
|
-
// transport is wrapped with a deadline of `ms` milliseconds (default
|
|
4
|
-
// 30000; <= 0 disables). The transport is synchronous, so the elapsed
|
|
5
|
-
// (injectable `now`) clock is checked around the inner call: when the call
|
|
6
|
-
// took longer than the deadline its result is discarded and a `timeout`
|
|
7
|
-
// error is returned instead.
|
|
8
1
|
|
|
9
2
|
use std::cell::RefCell;
|
|
10
3
|
use std::rc::Rc;
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
// Payload validation against the model's own field types. The rust port of
|
|
2
|
-
// tm/ts/src/feature/validate/ValidateFeature.ts.
|
|
3
|
-
//
|
|
4
|
-
// The specs are NOT written here and not written in the model either: every
|
|
5
|
-
// entity field already carries a canonical type sentinel (`$STRING`,
|
|
6
|
-
// `$INTEGER`, the `$ONE` union for an OpenAPI multi-type), which is the same
|
|
7
|
-
// vocabulary `vs::validate` speaks. The generator maps them once
|
|
8
|
-
// (helpers/canonSpec) and emits `core::schema::entityspec()`, so a field
|
|
9
|
-
// whose type changes in the API spec changes what this feature enforces with
|
|
10
|
-
// no edit anywhere.
|
|
11
|
-
//
|
|
12
|
-
// WHAT IS CHECKED
|
|
13
|
-
// outbound (pre_spec) the payload the caller asked to send, against
|
|
14
|
-
// spec.op[opname] - the operation's request shape.
|
|
15
|
-
// inbound (pre_done) each record the operation returned, against
|
|
16
|
-
// spec.data - the entity's own field types.
|
|
17
|
-
//
|
|
18
|
-
// WHAT IS NOT. The model carries no array element types, no nested object
|
|
19
|
-
// schemas, no enums, formats or bounds, so this checks the shape the model
|
|
20
|
-
// knows and nothing more.
|
|
21
1
|
|
|
22
2
|
use std::rc::Rc;
|
|
23
3
|
|
|
@@ -59,15 +39,6 @@ impl ValidateFeature {
|
|
|
59
39
|
}
|
|
60
40
|
}
|
|
61
41
|
|
|
62
|
-
// The payload an operation is about to send.
|
|
63
|
-
//
|
|
64
|
-
// TWO SLOTS, AND THE OP PICKS. A body op (create/update/patch) carries
|
|
65
|
-
// the caller's argument in `reqdata` over the entity's `data`; a match op
|
|
66
|
-
// (load/list/remove) carries it in `reqmatch` over `mtch`. That is what
|
|
67
|
-
// the entity operations pass to Context::new and what make_point reads -
|
|
68
|
-
// so reading `reqdata` for every op would check a `load({id})` against
|
|
69
|
-
// the entity's STALE stored match and reject it for the id the caller had
|
|
70
|
-
// just supplied.
|
|
71
42
|
fn payload(&self, ctx: &Rc<Context>, opname: &str) -> Value {
|
|
72
43
|
let body = "create" == opname || "update" == opname || "patch" == opname;
|
|
73
44
|
|
|
@@ -91,12 +62,6 @@ impl ValidateFeature {
|
|
|
91
62
|
}
|
|
92
63
|
}
|
|
93
64
|
|
|
94
|
-
// `$action` SELECTS A CUSTOM ENDPOINT; it is not a field of the
|
|
95
|
-
// record. make_point reads it off this same argument and the request
|
|
96
|
-
// transformer drops it before the body is built, so a spec built from
|
|
97
|
-
// the API's own fields will never name it - and under `strict` every
|
|
98
|
-
// custom-action call would be rejected for the one key that made it
|
|
99
|
-
// reachable.
|
|
100
65
|
if let Some(m) = out.as_map() {
|
|
101
66
|
m.borrow_mut().shift_remove("$action");
|
|
102
67
|
}
|
|
@@ -108,10 +73,6 @@ impl ValidateFeature {
|
|
|
108
73
|
getp(&self.spec, &entname(ctx))
|
|
109
74
|
}
|
|
110
75
|
|
|
111
|
-
// One validate call. Errors are COLLECTED, never thrown: `vs::validate`
|
|
112
|
-
// returns the first failure as a StructError unless given an `errs` list,
|
|
113
|
-
// and a caller fixing a payload wants every problem with it, not the
|
|
114
|
-
// first one.
|
|
115
76
|
fn check(
|
|
116
77
|
&self,
|
|
117
78
|
ctx: &Rc<Context>,
|
|
@@ -143,12 +104,6 @@ impl ValidateFeature {
|
|
|
143
104
|
}
|
|
144
105
|
|
|
145
106
|
if !errs.is_empty() {
|
|
146
|
-
// A callback receiving every failure, whatever `mode` does with
|
|
147
|
-
// it. `Value::Func` is the struct-level function type and takes
|
|
148
|
-
// an injection, not a report, so the report is handed to an
|
|
149
|
-
// `on_invalid` closure held in feature state instead - set with
|
|
150
|
-
// `ValidateFeature::on_invalid` after construction, the same way
|
|
151
|
-
// the retry port takes its injectable sleep.
|
|
152
107
|
let report = Value::empty_map();
|
|
153
108
|
setp(&report, "entity", Value::str(entname(ctx)));
|
|
154
109
|
setp(&report, "op", Value::str(opname(ctx)));
|
|
@@ -212,9 +167,6 @@ impl Feature for ValidateFeature {
|
|
|
212
167
|
};
|
|
213
168
|
}
|
|
214
169
|
|
|
215
|
-
// Outbound. make_spec short-circuits on an `out["spec"]` that is already
|
|
216
|
-
// set, and surfaces an `OutVal::Err` there as the operation's error - the
|
|
217
|
-
// same seam rbac uses one stage earlier through `out["point"]`.
|
|
218
170
|
fn pre_spec(&mut self, ctx: &Rc<Context>) {
|
|
219
171
|
if !self.active || !self.request {
|
|
220
172
|
return;
|
|
@@ -244,16 +196,6 @@ impl Feature for ValidateFeature {
|
|
|
244
196
|
ctx.out_set("spec", OutVal::Err(err));
|
|
245
197
|
}
|
|
246
198
|
|
|
247
|
-
// Inbound. pre_done rather than pre_result: the records are extracted
|
|
248
|
-
// from the response body by make_result, which runs between the two, so
|
|
249
|
-
// at pre_result there is nothing to check but the envelope.
|
|
250
|
-
//
|
|
251
|
-
// HOOK ORDER MATTERS HERE, and the default order is not the one you want.
|
|
252
|
-
// pre_done hooks fire in feature ADD order, which defaults to `test`
|
|
253
|
-
// first and then names sorted - and `validate` sorts last, after audit,
|
|
254
|
-
// cost, debug, metrics and telemetry. Those observers therefore record
|
|
255
|
-
// the operation as a success before this hook has looked at it.
|
|
256
|
-
// Activating features as an ORDERED LIST fixes it.
|
|
257
199
|
fn pre_done(&mut self, ctx: &Rc<Context>) {
|
|
258
200
|
if !self.active || !self.response {
|
|
259
201
|
return;
|
|
@@ -274,14 +216,6 @@ impl Feature for ValidateFeature {
|
|
|
274
216
|
return;
|
|
275
217
|
}
|
|
276
218
|
|
|
277
|
-
// A list op returns many records and a load returns one; both are
|
|
278
|
-
// checked against the same record spec, because they are the same
|
|
279
|
-
// entity.
|
|
280
|
-
//
|
|
281
|
-
// NO UNWRAP STEP, unlike the ts and go ports: make_result already
|
|
282
|
-
// stores a list entry as the entity's own `data()` Value rather than
|
|
283
|
-
// as the entity object (utility/make_result.rs), so what arrives here
|
|
284
|
-
// is records either way.
|
|
285
219
|
let records: Vec<Value> = match resdata.as_list() {
|
|
286
220
|
Some(l) => l.borrow().clone(),
|
|
287
221
|
None => vec![resdata.clone()],
|
|
@@ -313,16 +247,6 @@ impl Feature for ValidateFeature {
|
|
|
313
247
|
),
|
|
314
248
|
);
|
|
315
249
|
|
|
316
|
-
// BOTH, and `ok` is the load-bearing half: `done` returns `resdata`
|
|
317
|
-
// whenever `result.ok` is true and never looks at `err`, so setting
|
|
318
|
-
// the error alone would hand the caller the very records that failed
|
|
319
|
-
// the spec.
|
|
320
|
-
//
|
|
321
|
-
// AND THE DATA GOES. The load/update paths copy `result.resdata` into
|
|
322
|
-
// the entity's own state on any non-null value, BEFORE `done` raises
|
|
323
|
-
// - so rejecting the operation while leaving the records in place
|
|
324
|
-
// would leave the caller holding an entity populated from a payload
|
|
325
|
-
// this feature had just declared invalid.
|
|
326
250
|
let mut r = result.borrow_mut();
|
|
327
251
|
r.ok = false;
|
|
328
252
|
r.err = Some(err);
|
|
@@ -345,8 +269,6 @@ fn entname(ctx: &Rc<Context>) -> String {
|
|
|
345
269
|
ctx.op.borrow().entity.clone()
|
|
346
270
|
}
|
|
347
271
|
|
|
348
|
-
// A collected failure as a message. `stringify` would quote a plain string,
|
|
349
|
-
// which is what every struct failure already is.
|
|
350
272
|
fn errmsg(v: &Value) -> String {
|
|
351
273
|
match v {
|
|
352
274
|
Value::Str(s) => s.clone(),
|
|
@@ -366,9 +288,6 @@ fn report_invalid(options: &Value, report: &Value) {
|
|
|
366
288
|
}
|
|
367
289
|
}
|
|
368
290
|
|
|
369
|
-
// The spec tree with every `$OPEN` marker removed, so an undeclared key is an
|
|
370
|
-
// error rather than a pass. Rebuilt rather than mutated: `Value` is Rc-backed
|
|
371
|
-
// and `core::schema::entityspec()` hands out the process-wide constant.
|
|
372
291
|
fn close(node: &Value) -> Value {
|
|
373
292
|
match node {
|
|
374
293
|
Value::List(l) => Value::list(l.borrow().iter().map(close).collect()),
|
|
@@ -1,13 +1,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.
|
|
11
1
|
|
|
12
2
|
#![allow(dead_code)]
|
|
13
3
|
|
|
@@ -40,7 +30,6 @@ pub fn read_json(path: &PathBuf) -> Value {
|
|
|
40
30
|
json_parse(&txt).unwrap_or_else(|e| panic!("failed to parse {:?}: {}", path, e))
|
|
41
31
|
}
|
|
42
32
|
|
|
43
|
-
/// The shared test spec ../.sdk/test/test.json.
|
|
44
33
|
pub fn load_test_spec() -> Value {
|
|
45
34
|
let mut p = manifest_dir();
|
|
46
35
|
p.push("..");
|
|
@@ -100,22 +89,6 @@ pub fn is_control_skipped(kind: &str, name: &str, mode: &str) -> (bool, String)
|
|
|
100
89
|
(false, String::new())
|
|
101
90
|
}
|
|
102
91
|
|
|
103
|
-
/// Extra SDK options every LIVE client is constructed with, read from
|
|
104
|
-
/// sdk-test-control.json `test.client.options`.
|
|
105
|
-
///
|
|
106
|
-
/// The generated live client knows two things: the base URL (from the spec)
|
|
107
|
-
/// and the credential (from the environment). Everything else about how a
|
|
108
|
-
/// particular API wants to be talked to - which features to switch on, and
|
|
109
|
-
/// with what settings - is a property of THAT API, known to the project and
|
|
110
|
-
/// to nothing in the toolchain.
|
|
111
|
-
///
|
|
112
|
-
/// Merged UNDER the generated fields, so the suite's own base/apikey/server
|
|
113
|
-
/// values win: this ADDS to the live client, it does not redirect it.
|
|
114
|
-
///
|
|
115
|
-
/// Reserved fields are stripped HERE rather than at each merge site: the
|
|
116
|
-
/// generated map only names a field when the model calls for one, so a
|
|
117
|
-
/// "base" in this block would face no competing value and would silently
|
|
118
|
-
/// redirect the whole suite - credential included - to another host.
|
|
119
92
|
pub const LIVE_RESERVED: [&str; 6] =
|
|
120
93
|
["base", "prefix", "suffix", "server", "apikey", "secret"];
|
|
121
94
|
|
|
@@ -240,14 +213,6 @@ pub fn json_normalize(v: &Value) -> Value {
|
|
|
240
213
|
}
|
|
241
214
|
}
|
|
242
215
|
|
|
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.
|
|
251
216
|
|
|
252
217
|
// ---- ctx construction from JSON test entries --------------------------------------
|
|
253
218
|
|