@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
|
@@ -5,14 +5,6 @@ import type { ProjectNameSDK } from '../../ProjectNameSDK'
|
|
|
5
5
|
import { BaseFeature } from '../base/BaseFeature'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// Network behaviour simulation. Wraps the active transport (the live
|
|
9
|
-
// `fetch` or the `test` feature's in-memory mock) and injects realistic
|
|
10
|
-
// network conditions so offline unit tests can exercise slowness,
|
|
11
|
-
// transient failures, rate limiting and outages deterministically.
|
|
12
|
-
//
|
|
13
|
-
// Every injection mode is counter-driven (per client instance) so tests
|
|
14
|
-
// are reproducible without mocking timers. `failRate` adds optional
|
|
15
|
-
// pseudo-random failures via a seeded LCG for coverage-style testing.
|
|
16
8
|
class NetsimFeature extends BaseFeature {
|
|
17
9
|
version = '0.0.1'
|
|
18
10
|
name = 'netsim'
|
|
@@ -5,14 +5,6 @@ import type { ProjectNameSDK } from '../../ProjectNameSDK'
|
|
|
5
5
|
import { BaseFeature } from '../base/BaseFeature'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// Pagination support for list operations. On the way out (PreRequest) it
|
|
9
|
-
// stamps page/limit (or a cursor) into the request query; on the way back
|
|
10
|
-
// (PreResult) it reads the server's pagination signals — a `Link:
|
|
11
|
-
// rel="next"` header, `X-Next-Page`/`X-Total-Count` headers, or `next`/
|
|
12
|
-
// `cursor`/`hasMore` fields in the body — and records them on
|
|
13
|
-
// `ctx.result.paging`. Generated SDKs build auto-iteration on top of this
|
|
14
|
-
// (advance the cursor/page and re-issue the list call until `hasMore` is
|
|
15
|
-
// false). Parameter names and page size are configurable.
|
|
16
8
|
class PagingFeature extends BaseFeature {
|
|
17
9
|
version = '0.0.1'
|
|
18
10
|
name = 'paging'
|
|
@@ -45,7 +37,6 @@ class PagingFeature extends BaseFeature {
|
|
|
45
37
|
const limitParam = this._options.limitParam || 'limit'
|
|
46
38
|
const cursorParam = this._options.cursorParam || 'cursor'
|
|
47
39
|
|
|
48
|
-
// A per-call cursor/page from ctrl takes priority (used by auto-iteration).
|
|
49
40
|
const paging = (ctx.ctrl && ctx.ctrl.paging) || {}
|
|
50
41
|
|
|
51
42
|
// GraphQL paginates through operation VARIABLES, not the query string.
|
|
@@ -94,7 +85,6 @@ class PagingFeature extends BaseFeature {
|
|
|
94
85
|
hasMore: false,
|
|
95
86
|
}
|
|
96
87
|
|
|
97
|
-
// Link: <...>; rel="next"
|
|
98
88
|
const link = this._header(headers, 'link')
|
|
99
89
|
if (null != link) {
|
|
100
90
|
const m = /<([^>]+)>\s*;\s*rel="?next"?/i.exec(link)
|
|
@@ -126,7 +116,6 @@ class PagingFeature extends BaseFeature {
|
|
|
126
116
|
}
|
|
127
117
|
}
|
|
128
118
|
|
|
129
|
-
// Body-level cursors.
|
|
130
119
|
if (body && 'object' === typeof body) {
|
|
131
120
|
if (null != body.next) { paging.next = paging.next || body.next }
|
|
132
121
|
if (null != body.cursor) { paging.cursor = body.cursor }
|
|
@@ -171,8 +160,6 @@ class PagingFeature extends BaseFeature {
|
|
|
171
160
|
const afterVar = this._options.afterVar || 'after'
|
|
172
161
|
const firstVar = this._options.firstVar || 'first'
|
|
173
162
|
|
|
174
|
-
// Only bind variables the operation actually declares, or the server
|
|
175
|
-
// rejects the document.
|
|
176
163
|
const declared: Record<string, boolean> = {}
|
|
177
164
|
for (const v of ((point.graphql && point.graphql.vars) || [])) {
|
|
178
165
|
declared[v.name] = true
|
|
@@ -5,14 +5,6 @@ import type { ProjectNameSDK } from '../../ProjectNameSDK'
|
|
|
5
5
|
import { BaseFeature } from '../base/BaseFeature'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// Outbound HTTP(S) proxy support. Wraps the active transport and attaches
|
|
9
|
-
// proxy routing to each request's fetch definition. The proxy target comes
|
|
10
|
-
// from options (`url`) or, when `fromEnv` is set, the standard
|
|
11
|
-
// HTTPS_PROXY / HTTP_PROXY / NO_PROXY environment variables. Constructing a
|
|
12
|
-
// concrete agent/dispatcher is dependency-specific, so a factory may be
|
|
13
|
-
// supplied via `options.agent` (e.g. wrapping undici's ProxyAgent); when
|
|
14
|
-
// absent the request is annotated with `fetchdef.proxy` for the transport
|
|
15
|
-
// to honour. Hosts matching `noProxy` bypass the proxy.
|
|
16
8
|
class ProxyFeature extends BaseFeature {
|
|
17
9
|
version = '0.0.1'
|
|
18
10
|
name = 'proxy'
|
|
@@ -5,12 +5,6 @@ import type { ProjectNameSDK } from '../../ProjectNameSDK'
|
|
|
5
5
|
import { BaseFeature } from '../base/BaseFeature'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// Client-side rate limiting via a token bucket. Each request consumes a
|
|
9
|
-
// token; when the bucket is empty the request waits until the bucket
|
|
10
|
-
// refills at `rate` tokens per second (with capacity `burst`). This keeps
|
|
11
|
-
// the client under a server's published quota rather than discovering it
|
|
12
|
-
// via 429s. The clock (`now`) and the wait (`sleep`) are injectable so the
|
|
13
|
-
// accounting can be tested deterministically without wall-clock timing.
|
|
14
8
|
class RatelimitFeature extends BaseFeature {
|
|
15
9
|
version = '0.0.1'
|
|
16
10
|
name = 'ratelimit'
|
|
@@ -5,14 +5,6 @@ import type { ProjectNameSDK } from '../../ProjectNameSDK'
|
|
|
5
5
|
import { BaseFeature } from '../base/BaseFeature'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// Client-side role/permission enforcement. Before an operation resolves its
|
|
9
|
-
// endpoint, the required permission for that entity+operation is checked
|
|
10
|
-
// against the permissions the client holds; a disallowed call is
|
|
11
|
-
// short-circuited with an `rbac_denied` error and never touches the
|
|
12
|
-
// network. Required permissions come from `rules` (keyed by
|
|
13
|
-
// `<entity>.<op>`, `<op>`, or `*`); the default when no rule matches is
|
|
14
|
-
// controlled by `deny` (default: allow when unspecified). Held permissions
|
|
15
|
-
// are the `permissions` list (a `*` grants everything).
|
|
16
8
|
class RbacFeature extends BaseFeature {
|
|
17
9
|
version = '0.0.1'
|
|
18
10
|
name = 'rbac'
|
|
@@ -43,7 +35,6 @@ class RbacFeature extends BaseFeature {
|
|
|
43
35
|
|
|
44
36
|
const required = this._required(ctx)
|
|
45
37
|
if (null == required) {
|
|
46
|
-
// No rule: honour the default policy.
|
|
47
38
|
if (true === this._options.deny) {
|
|
48
39
|
return this._reject(ctx, '<default-deny>')
|
|
49
40
|
}
|
|
@@ -5,12 +5,6 @@ import type { ProjectNameSDK } from '../../ProjectNameSDK'
|
|
|
5
5
|
import { BaseFeature } from '../base/BaseFeature'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// Automatic retry of transient failures with exponential backoff and
|
|
9
|
-
// jitter. Wraps the active transport so a single operation call may make
|
|
10
|
-
// several HTTP attempts. A failure is retryable when the transport throws
|
|
11
|
-
// / returns an Error, or responds with a status in `statuses`
|
|
12
|
-
// (default: 408, 425, 429, 500, 502, 503, 504). An HTTP 429/503 with a
|
|
13
|
-
// `Retry-After` header overrides the computed backoff.
|
|
14
8
|
class RetryFeature extends BaseFeature {
|
|
15
9
|
version = '0.0.1'
|
|
16
10
|
name = 'retry'
|
|
@@ -10,39 +10,6 @@ import { Sekreto, envkey } from './sekreto'
|
|
|
10
10
|
import { FEATURE_PLUGINS } from '../../Config'
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
// Secret access via a vendored @voxgig/sekreto provider chain, and the
|
|
14
|
-
// access-token exchange some APIs require on top of it.
|
|
15
|
-
//
|
|
16
|
-
// The SDK's `apikey` option keeps exactly its old meaning: an explicit
|
|
17
|
-
// credential given in code. This feature makes it ONE SOURCE among several
|
|
18
|
-
// rather than the only one: when active, the apikey is resolved through a
|
|
19
|
-
// sekreto chain in which the explicit option (when set) is the FIRST
|
|
20
|
-
// provider — a `memory` store named `options` — so an explicit value always
|
|
21
|
-
// wins, by sekreto's own first-hit rule rather than by special-case logic.
|
|
22
|
-
// When the option is unset, the remaining providers (env, dotenv, a vault)
|
|
23
|
-
// are asked in order, and moving a credential from code to a vault becomes
|
|
24
|
-
// a configuration change.
|
|
25
|
-
//
|
|
26
|
-
// SOME APIs will not take a long-lived credential at all. What the chain
|
|
27
|
-
// resolves is then a REFRESH token, which buys a short-lived ACCESS token
|
|
28
|
-
// from a token endpoint; the access token is what every request carries,
|
|
29
|
-
// and it expires. `exchange.active` turns that round trip on: the resolved
|
|
30
|
-
// secret is POSTed to `exchange.path` (relative to options.base), the
|
|
31
|
-
// access token from the response is written to options.apikey, and a
|
|
32
|
-
// response in `exchange.statuses` (401) buys another and retries once.
|
|
33
|
-
//
|
|
34
|
-
// That last part is why this feature wraps the transport. Expiry is only
|
|
35
|
-
// ever discovered from a RESPONSE, and the transport is the one place a
|
|
36
|
-
// response can be seen before the operation pipeline turns it into a
|
|
37
|
-
// result. With the exchange off, nothing is wrapped.
|
|
38
|
-
//
|
|
39
|
-
// Resolution is ASYNC (providers may do IO), but the auth header is built
|
|
40
|
-
// by the synchronous prepareAuth inside makeSpec. The bridge is the
|
|
41
|
-
// feature hook pipeline: every entity op awaits featureHook('PreSpec')
|
|
42
|
-
// before calling makeSpec, so the PreSpec hook below resolves the secret
|
|
43
|
-
// once and writes it into the live options where prepareAuth already
|
|
44
|
-
// looks. prepareAuth itself is untouched. SolardemoSDK.prepare() bypasses
|
|
45
|
-
// feature hooks entirely, so it awaits client._secrets.resolve() itself.
|
|
46
13
|
class SecretsFeature extends BaseFeature {
|
|
47
14
|
version = '0.1.0'
|
|
48
15
|
name = 'secrets'
|
|
@@ -53,16 +20,11 @@ class SecretsFeature extends BaseFeature {
|
|
|
53
20
|
_resolving?: Promise<void>
|
|
54
21
|
_cache: boolean = true
|
|
55
22
|
|
|
56
|
-
// Exchange state. `_exchange` is the resolved config (null when off),
|
|
57
|
-
// `_refresh` the credential the chain gave us, and `_buying` the single
|
|
58
|
-
// in-flight token purchase concurrent callers share.
|
|
59
23
|
_exchange: any = null
|
|
60
24
|
_refresh?: string
|
|
61
25
|
_buying?: Promise<string>
|
|
62
26
|
|
|
63
27
|
|
|
64
|
-
// Sync by contract (the constructor cannot await): build the chain only,
|
|
65
|
-
// never look anything up here.
|
|
66
28
|
init(ctx: Context, fopts: FeatureOptions): void {
|
|
67
29
|
const client = ctx.client
|
|
68
30
|
const options = ctx.options
|
|
@@ -71,8 +33,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
71
33
|
this._secretname = 'string' === typeof (fopts as any).name &&
|
|
72
34
|
'' !== (fopts as any).name ? (fopts as any).name : 'apikey'
|
|
73
35
|
|
|
74
|
-
// Exchange config, normalised once. Null when off, so every later
|
|
75
|
-
// decision is a null check rather than a repeated `true === ...active`.
|
|
76
36
|
const xopts = (fopts as any).exchange
|
|
77
37
|
this._exchange = (null != xopts && true === xopts.active) ? {
|
|
78
38
|
path: 'string' === typeof xopts.path ? xopts.path : 'auth/token',
|
|
@@ -85,14 +45,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
85
45
|
|
|
86
46
|
const providers: any[] = []
|
|
87
47
|
|
|
88
|
-
// The explicit credential, when set, is the first store in the chain.
|
|
89
|
-
//
|
|
90
|
-
// WHICH option that is depends on the exchange. Without one, the secret
|
|
91
|
-
// being resolved IS the credential the transport sends, so `apikey` is
|
|
92
|
-
// it. With one, the secret is a REFRESH token and `apikey` means the
|
|
93
|
-
// opposite thing — an access token the caller already holds — so the
|
|
94
|
-
// explicit seat belongs to `exchange.refresh`, and apikey is left alone
|
|
95
|
-
// to serve as the starting access token (see resolve below).
|
|
96
48
|
const explicit = null == this._exchange ?
|
|
97
49
|
options.apikey :
|
|
98
50
|
(null == xopts ? undefined : xopts.refresh)
|
|
@@ -117,19 +69,8 @@ class SecretsFeature extends BaseFeature {
|
|
|
117
69
|
cache: this._cache,
|
|
118
70
|
})
|
|
119
71
|
|
|
120
|
-
// Seam for ProjectNameSDK.prepare() (no feature hooks on that path)
|
|
121
|
-
// and for the public secrets() accessor.
|
|
122
|
-
//
|
|
123
|
-
// Cast, because `_secrets` is emitted on the SDK class only when this
|
|
124
|
-
// feature is active, while this file is copied into the target tree by
|
|
125
|
-
// Main's blanket copy whether or not the model declares the feature.
|
|
126
|
-
// Typing the assignment would make the SDK fail to compile in exactly
|
|
127
|
-
// the case the feature is switched off.
|
|
128
72
|
;(client as any)._secrets = this
|
|
129
73
|
|
|
130
|
-
// Wrap the transport ONLY when there is an exchange to defend. A spent
|
|
131
|
-
// access token is discovered from the response, and this is the one
|
|
132
|
-
// place a response can be seen and the request tried again.
|
|
133
74
|
if (null != this._exchange) {
|
|
134
75
|
const self = this
|
|
135
76
|
const utility = ctx.utility
|
|
@@ -142,15 +83,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
142
83
|
}
|
|
143
84
|
|
|
144
85
|
|
|
145
|
-
// The LIVE Sekreto instance, for the SDK's secrets() accessor and for
|
|
146
|
-
// callers who want arbitrary secrets or redaction:
|
|
147
|
-
//
|
|
148
|
-
// await sdk.secrets().get('db.password')
|
|
149
|
-
// sdk.secrets().redact(logline)
|
|
150
|
-
//
|
|
151
|
-
// Public, so the accessor does not have to reach into a private field.
|
|
152
|
-
// Never a clone: sekreto holds provider state (caches, vault leases)
|
|
153
|
-
// that has to stay live to be worth anything.
|
|
154
86
|
sekreto(): any {
|
|
155
87
|
return this._sekreto
|
|
156
88
|
}
|
|
@@ -161,25 +93,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
161
93
|
}
|
|
162
94
|
|
|
163
95
|
|
|
164
|
-
// Resolve the apikey before the first request. Concurrent ops share the
|
|
165
|
-
// one IN-FLIGHT promise; a settled one is not reused unless caching is
|
|
166
|
-
// on. A provider ERROR (unreachable vault, bad creds) rejects and fails
|
|
167
|
-
// the op — sekreto's miss-vs-error rule: never fall through to an
|
|
168
|
-
// unauthenticated request because a store was broken.
|
|
169
|
-
//
|
|
170
|
-
// The promise is cleared on REJECTION, after success when caching is off,
|
|
171
|
-
// and after a MISS however caching is set. Holding a settled promise
|
|
172
|
-
// forever would mean a transient vault outage poisoned the client
|
|
173
|
-
// permanently — every later operation failing with the original error long
|
|
174
|
-
// after the vault recovered — and it would make the documented
|
|
175
|
-
// `cache: false` a lie, since the chain would never be asked a second time.
|
|
176
|
-
//
|
|
177
|
-
// The MISS rule is sekreto's, not this feature's: `A miss is never cached:
|
|
178
|
-
// the next read asks again`, in sekreto's own source. Retaining a settled
|
|
179
|
-
// miss here would override that from the layer above, and a secret
|
|
180
|
-
// provisioned after startup — a mounted file, a policy granted a minute
|
|
181
|
-
// late — would never be picked up for the life of the client. `cache` is
|
|
182
|
-
// about caching a HIT; it was never a promise to keep saying no.
|
|
183
96
|
resolve(): Promise<void> {
|
|
184
97
|
if (null == this._resolving) {
|
|
185
98
|
const inflight = this._resolveonce()
|
|
@@ -235,13 +148,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
235
148
|
return true
|
|
236
149
|
}
|
|
237
150
|
|
|
238
|
-
// `auth: null` is the documented way to send NO credential, and a
|
|
239
|
-
// purchase is a credential-bearing call: the refresh token goes to the
|
|
240
|
-
// token endpoint in the request body. _withRefresh honours suppression
|
|
241
|
-
// for the RETRY, but it runs after this — by then the refresh token has
|
|
242
|
-
// already left the process, and no later check can call it back. The
|
|
243
|
-
// suppression has to be honoured here, before the first purchase, or it
|
|
244
|
-
// only ever half-held.
|
|
245
151
|
if (null == this._client.options().auth) {
|
|
246
152
|
return false
|
|
247
153
|
}
|
|
@@ -252,21 +158,7 @@ class SecretsFeature extends BaseFeature {
|
|
|
252
158
|
}
|
|
253
159
|
|
|
254
160
|
|
|
255
|
-
// Buy an access token with the refresh token.
|
|
256
|
-
//
|
|
257
|
-
// Concurrent callers share the ONE in-flight purchase: a client running
|
|
258
|
-
// four operations at once must not open four token requests, and three of
|
|
259
|
-
// the four tokens would be wasted. The promise is cleared once settled,
|
|
260
|
-
// so the next expiry buys a fresh one rather than replaying this result.
|
|
261
161
|
private _buy(): Promise<string> {
|
|
262
|
-
// TEST MODE BUYS NOTHING.
|
|
263
|
-
//
|
|
264
|
-
// The test feature replaces the transport so that no request leaves the
|
|
265
|
-
// process; an exchange here would be the one HTTP call it could not
|
|
266
|
-
// stop, and it would need a live token endpoint for a suite whose whole
|
|
267
|
-
// point is not needing one. So test mode gets a deterministic,
|
|
268
|
-
// obviously-fake token instead — the same answer makeOptions gives a
|
|
269
|
-
// required server variable, for the same reason.
|
|
270
162
|
if ('live' !== this._client._mode) {
|
|
271
163
|
return Promise.resolve('test-' + this._exchange.response)
|
|
272
164
|
}
|
|
@@ -303,8 +195,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
303
195
|
|
|
304
196
|
const options = this._client.options()
|
|
305
197
|
|
|
306
|
-
// The token endpoint is RELATIVE to the base, which already carries
|
|
307
|
-
// whatever account or tenant segment the server URL declares.
|
|
308
198
|
const base = String(options.base || "").replace(/\/+$/, "")
|
|
309
199
|
const url = base + "/" + String(x.path).replace(/^\/+/, "")
|
|
310
200
|
|
|
@@ -314,10 +204,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
314
204
|
throw new Error("secrets: no fetch implementation for the token exchange")
|
|
315
205
|
}
|
|
316
206
|
|
|
317
|
-
// Deliberately NOT the SDK transport. The transport is what this
|
|
318
|
-
// feature wraps, and sending the token request back through it would
|
|
319
|
-
// recurse on the first 401 — and would route the exchange through the
|
|
320
|
-
// test mock, which knows nothing about it.
|
|
321
207
|
const res = await fetch(url, {
|
|
322
208
|
method: x.method,
|
|
323
209
|
headers: { "content-type": "application/json" },
|
|
@@ -343,25 +229,12 @@ class SecretsFeature extends BaseFeature {
|
|
|
343
229
|
}
|
|
344
230
|
|
|
345
231
|
|
|
346
|
-
// Buy a token and try the request again when the API says the current one
|
|
347
|
-
// is spent. Wraps the transport; installed only when exchanging.
|
|
348
|
-
//
|
|
349
|
-
// The retry rewrites the Authorization header IN PLACE on the fetchdef,
|
|
350
|
-
// because the header was built by the synchronous prepareAuth before this
|
|
351
|
-
// request left, and it carries the token that just failed. Rebuilt the
|
|
352
|
-
// way prepareAuth builds it, from the same options.auth.prefix, so the
|
|
353
|
-
// two cannot drift.
|
|
354
232
|
async _withRefresh(
|
|
355
233
|
this: any, ctx: any, url: string, fetchdef: any, inner: any
|
|
356
234
|
): Promise<any> {
|
|
357
235
|
const x = this._exchange
|
|
358
236
|
const max = null == x ? 0 : x.retries
|
|
359
237
|
|
|
360
|
-
// `auth: null` is the documented way to send NO credential, and
|
|
361
|
-
// prepareAuth honours it by removing the header. A refusal of a
|
|
362
|
-
// deliberately unauthenticated request is not an expired token and
|
|
363
|
-
// cannot be fixed by buying one — retrying would transmit exactly the
|
|
364
|
-
// credential the caller suppressed.
|
|
365
238
|
if (null == this._client.options().auth) {
|
|
366
239
|
return inner(ctx, url, fetchdef)
|
|
367
240
|
}
|
|
@@ -369,8 +242,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
369
242
|
let attempt = 0
|
|
370
243
|
|
|
371
244
|
for (; ;) {
|
|
372
|
-
// The credential THIS attempt goes out with, captured before it
|
|
373
|
-
// leaves: it is what tells a stale refusal apart from a fresh one.
|
|
374
245
|
const used = this._client._options.apikey
|
|
375
246
|
|
|
376
247
|
const res = await inner(ctx, url, fetchdef)
|
|
@@ -379,13 +250,6 @@ class SecretsFeature extends BaseFeature {
|
|
|
379
250
|
return res
|
|
380
251
|
}
|
|
381
252
|
|
|
382
|
-
// Another request may have bought a token while this one was in
|
|
383
|
-
// flight. Concurrent 401s share the in-flight purchase, but
|
|
384
|
-
// STAGGERED ones do not: the first finishes and clears it, and the
|
|
385
|
-
// second would then buy again — a second exchange for a token that
|
|
386
|
-
// is already current, and on a provider that invalidates the
|
|
387
|
-
// previous credential on issuance, one that breaks the first
|
|
388
|
-
// request's own retry. So spend what is current before buying.
|
|
389
253
|
const current = this._client._options.apikey
|
|
390
254
|
let token: string
|
|
391
255
|
|
|
@@ -5,13 +5,6 @@ import type { ProjectNameSDK } from '../../ProjectNameSDK'
|
|
|
5
5
|
import { BaseFeature } from '../base/BaseFeature'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// Streaming result support. For list-style operations it attaches a
|
|
9
|
-
// `result.stream()` async-iterator so callers can consume items
|
|
10
|
-
// incrementally with `for await (const item of result.stream())` instead of
|
|
11
|
-
// materialising the whole array. The iterator reads the result's data
|
|
12
|
-
// lazily, so it reflects the parsed entities. A `chunkDelay` (ms) simulates
|
|
13
|
-
// paced/chunked delivery for offline tests via the injectable `sleep`; a
|
|
14
|
-
// `chunkSize` groups items into batches when set.
|
|
15
8
|
class StreamingFeature extends BaseFeature {
|
|
16
9
|
version = '0.0.1'
|
|
17
10
|
name = 'streaming'
|
|
@@ -5,13 +5,6 @@ import type { ProjectNameSDK } from '../../ProjectNameSDK'
|
|
|
5
5
|
import { BaseFeature } from '../base/BaseFeature'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// Distributed-tracing telemetry. Opens a span per operation (PrePoint),
|
|
9
|
-
// propagates trace context to the server as W3C `traceparent` plus
|
|
10
|
-
// `X-Trace-Id` / `X-Span-Id` headers (PreRequest), and closes the span on
|
|
11
|
-
// completion (PreDone) or failure (PreUnexpected). Finished spans are kept
|
|
12
|
-
// on `client._telemetry.spans`; an `exporter` callback, when provided, is
|
|
13
|
-
// invoked with each finished span. Trace/span id generation and the clock
|
|
14
|
-
// are injectable for deterministic tests.
|
|
15
8
|
class TelemetryFeature extends BaseFeature {
|
|
16
9
|
version = '0.0.1'
|
|
17
10
|
name = 'telemetry'
|
|
@@ -8,14 +8,17 @@ import { BaseFeature } from '../base/BaseFeature'
|
|
|
8
8
|
const S_NOT_FOUND = 'Not found'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
// The `%04x%04x%04x%04x` every other target mints, so the id's shape does not
|
|
12
|
+
// depend on which language answered.
|
|
13
|
+
function mintId(): string {
|
|
14
|
+
let out = ''
|
|
15
|
+
for (let i = 0; i < 4; i++) {
|
|
16
|
+
out += ((Math.random() * 0x10000) | 0).toString(16).padStart(4, '0')
|
|
17
|
+
}
|
|
18
|
+
return out
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
19
22
|
function ownIdField(config: any, getpath: any, entityName: string): string {
|
|
20
23
|
let fallback = ''
|
|
21
24
|
|
|
@@ -32,17 +35,6 @@ function ownIdField(config: any, getpath: any, entityName: string): string {
|
|
|
32
35
|
if (ptterm !== bestterm ? ptterm : pt.parts.length < best.parts.length) best = pt
|
|
33
36
|
}
|
|
34
37
|
const parts: string[] = (best && best.parts) || []
|
|
35
|
-
// THE LAST PART, not the last param anywhere in the path. A record route
|
|
36
|
-
// ENDS in its key: /orgs/{org}/private-registries/{secret_name} does,
|
|
37
|
-
// /orgs/{org}/private-registries/public-key does not. Reading the last
|
|
38
|
-
// param wherever it fell returned `{org}` for that second path — a PARENT
|
|
39
|
-
// reference — and the seeding walk then stamped the record's own key over
|
|
40
|
-
// org_id, destroying the ORG01 the fixture set and the test looks up from
|
|
41
|
-
// idmap. github's private_registry failed its update with a 404 that named
|
|
42
|
-
// nothing to do with orgs.
|
|
43
|
-
//
|
|
44
|
-
// A point that does not end in a param says nothing about this entity's
|
|
45
|
-
// key, so move on to the next op rather than guess from it.
|
|
46
38
|
const lastPart = 0 < parts.length ? String(parts[parts.length - 1]) : ''
|
|
47
39
|
if (lastPart.startsWith('{')) return lastPart.slice(1, -1)
|
|
48
40
|
|
|
@@ -66,23 +58,6 @@ function ownIdField(config: any, getpath: any, entityName: string): string {
|
|
|
66
58
|
}
|
|
67
59
|
}
|
|
68
60
|
|
|
69
|
-
// ONLY AFTER EVERY OP, because an op whose routes all end in a literal
|
|
70
|
-
// says nothing while another op may still name the key outright.
|
|
71
|
-
// github's `private_registry` reads
|
|
72
|
-
// `/orgs/{org}/private-registries/public-key` under `load` and writes
|
|
73
|
-
// `/orgs/{org}/private-registries/{secret_name}` under `update`:
|
|
74
|
-
// returning the load route's last parameter made the key `org`, and its
|
|
75
|
-
// update answered 404 for want of a registry named after an
|
|
76
|
-
// organisation.
|
|
77
|
-
//
|
|
78
|
-
// Reached at all only by an entity with no record-terminal route
|
|
79
|
-
// anywhere — github's `copilot` is read from
|
|
80
|
-
// `/orgs/{org_id}/members/{username}/copilot`, whose key is plainly
|
|
81
|
-
// `username`. Abstaining left the mock stamping no key on a created
|
|
82
|
-
// record while the provider addressed it by `username`, so the load
|
|
83
|
-
// straight after a create found nothing. The provider's recordKey has
|
|
84
|
-
// always used this fallback; matching it removes a disagreement rather
|
|
85
|
-
// than adding a guess.
|
|
86
61
|
if ('' !== fallback) {
|
|
87
62
|
return fallback
|
|
88
63
|
}
|
|
@@ -141,22 +116,11 @@ class TestFeature extends BaseFeature {
|
|
|
141
116
|
const delprop = struct.delprop
|
|
142
117
|
const getdef = struct.getdef
|
|
143
118
|
|
|
144
|
-
// Shape the mock payload the way the real API would, so the op's
|
|
145
|
-
// response transform recovers the entity from it. A point carrying
|
|
146
|
-
// `transform.res: \`body.item\`` describes an API that answers
|
|
147
|
-
// `{item: {...}}`; handing back the bare entity means the transform
|
|
148
|
-
// unwraps a property that is not there and the caller gets undefined.
|
|
149
|
-
// The mock has to agree with the model, or it only ever simulates APIs
|
|
150
|
-
// whose responses happen to be unwrapped.
|
|
151
119
|
function envelope(data: any) {
|
|
152
120
|
const restf = getprop(getprop(ctx.point, 'transform', {}), 'res')
|
|
153
121
|
if (null == data || 'string' !== typeof restf) {
|
|
154
122
|
return data
|
|
155
123
|
}
|
|
156
|
-
// Rebuild whatever nesting the op's response transform unwraps, so
|
|
157
|
-
// the mock agrees with the model. Multi-segment on purpose: GraphQL
|
|
158
|
-
// ops unwrap `body.data.<field>` (and `body.data.<field>.<entity>`
|
|
159
|
-
// for mutation payloads), not just a single envelope property.
|
|
160
124
|
const m = restf.match(/^`body\.(.+)`$/)
|
|
161
125
|
if (null == m) {
|
|
162
126
|
return data
|
|
@@ -253,10 +217,7 @@ class TestFeature extends BaseFeature {
|
|
|
253
217
|
const args = self.buildArgs(ctx, op, ctx.reqdata)
|
|
254
218
|
let id = param(ctx, 'id')
|
|
255
219
|
if (null == id) {
|
|
256
|
-
id = (
|
|
257
|
-
(1e4 * Math.random() | 0).toString(16) +
|
|
258
|
-
(1e4 * Math.random() | 0).toString(16) +
|
|
259
|
-
(1e4 * Math.random() | 0).toString(16)).padEnd(16, '0')
|
|
220
|
+
id = mintId()
|
|
260
221
|
}
|
|
261
222
|
|
|
262
223
|
const ent = clone(ctx.reqdata)
|
|
@@ -390,20 +351,6 @@ class TestFeature extends BaseFeature {
|
|
|
390
351
|
const qand: any[] = []
|
|
391
352
|
const q = { '`$AND`': qand }
|
|
392
353
|
|
|
393
|
-
// WHERE A PATH PARAMETER'S VALUE ACTUALLY LIVES IN A RECORD.
|
|
394
|
-
//
|
|
395
|
-
// A request addresses a record by path parameter; a stored record carries
|
|
396
|
-
// whatever the API's response carries. Those are not always the same
|
|
397
|
-
// name, and are not always at the same depth: github addresses a repo by
|
|
398
|
-
// `{owner}/{repo}` and returns the owner as an OBJECT (`owner.login`)
|
|
399
|
-
// with the repository under `name`. Matching by parameter name alone
|
|
400
|
-
// found nothing for such a record, so a seeded composite record was
|
|
401
|
-
// unfindable and every read of it came back 404.
|
|
402
|
-
//
|
|
403
|
-
// `id.from` in the model says where each parameter is carried, as a
|
|
404
|
-
// dotted path. `select` matches a NESTED query shape but not a dotted
|
|
405
|
-
// key, so the path is expanded into one — `owner.login` becomes
|
|
406
|
-
// `{ owner: { login: value } }`.
|
|
407
354
|
const idfrom = getpath(ctx.config, [
|
|
408
355
|
'entity', getprop(ctx.entity, 'name'), 'id', 'from']) || {}
|
|
409
356
|
|
|
@@ -416,29 +363,6 @@ class TestFeature extends BaseFeature {
|
|
|
416
363
|
return out
|
|
417
364
|
}
|
|
418
365
|
|
|
419
|
-
// THE COMPOSITE PARTS FROM THE ENTITY MATCH TOO.
|
|
420
|
-
//
|
|
421
|
-
// A path parameter does not have to travel with the body. The seneca
|
|
422
|
-
// provider puts a composite record's parts in the ENTITY MATCH and
|
|
423
|
-
// leaves the body as the caller wrote it, because a path parameter is
|
|
424
|
-
// not a field — so `update`, which builds its query from `reqdata`,
|
|
425
|
-
// never looked at them. The query then matched every repo and
|
|
426
|
-
// `Repo({match:{owner,repo}}).update(...)` answered 404 while the same
|
|
427
|
-
// call with the parts in the body succeeded.
|
|
428
|
-
//
|
|
429
|
-
// EXACTLY THE PARTS, and only when nothing else addresses the record.
|
|
430
|
-
//
|
|
431
|
-
// Not every key the match holds: the match ACCRETES across calls on one
|
|
432
|
-
// entity instance, so after a create and an update it carries that
|
|
433
|
-
// record's parent scope as well — and the create branch below stamps the
|
|
434
|
-
// record's OWN key over the field it was seeded with, so a later read
|
|
435
|
-
// constrained on an accreted value finds nothing. Twenty-five of this
|
|
436
|
-
// SDK's own entity tests failed that way.
|
|
437
|
-
//
|
|
438
|
-
// And not when the call already carries an `id`: a direct id IS the
|
|
439
|
-
// address, and an accreted part then only narrows it wrongly — this
|
|
440
|
-
// SDK's own activity test updates `id: ACTIVITY00` on an entity whose
|
|
441
|
-
// match still holds the `repo` a previous list used.
|
|
442
366
|
const match = ctx.match || {}
|
|
443
367
|
const names: any[] = [...keysof(args)]
|
|
444
368
|
|
|
@@ -488,6 +412,7 @@ class TestFeature extends BaseFeature {
|
|
|
488
412
|
export {
|
|
489
413
|
TestFeature,
|
|
490
414
|
ownIdField,
|
|
415
|
+
mintId,
|
|
491
416
|
}
|
|
492
417
|
|
|
493
418
|
|