@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
|
@@ -6,30 +6,6 @@ import { ENTITYSPEC } from '../../Schema'
|
|
|
6
6
|
import { BaseFeature } from '../base/BaseFeature'
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
// Payload validation against the model's own field types.
|
|
10
|
-
//
|
|
11
|
-
// The specs are NOT written here and not written in the model either: every
|
|
12
|
-
// entity field already carries a canonical type sentinel (`$STRING`,
|
|
13
|
-
// `$INTEGER`, the `$ONE` union for an OpenAPI multi-type), which is the same
|
|
14
|
-
// vocabulary struct.validate speaks. The generator maps them once
|
|
15
|
-
// (helpers/canonSpec) and emits `ENTITYSPEC` beside this file, so a field
|
|
16
|
-
// whose type changes in the API spec changes what this feature enforces with
|
|
17
|
-
// no edit anywhere.
|
|
18
|
-
//
|
|
19
|
-
// WHAT IS CHECKED
|
|
20
|
-
// outbound (PreSpec) the payload the caller asked to send, against
|
|
21
|
-
// `spec.op[<opname>]` — the operation's request shape,
|
|
22
|
-
// which is the SAME partiality policy that decides what
|
|
23
|
-
// the generated `<Name>CreateData` type requires.
|
|
24
|
-
// inbound (PreDone) each record the operation returned, against
|
|
25
|
-
// `spec.data` — the entity's own field types.
|
|
26
|
-
//
|
|
27
|
-
// WHAT IS NOT. The model carries no array element types, no nested object
|
|
28
|
-
// schemas, no enums, formats or bounds (see canonSpec's note), so this checks
|
|
29
|
-
// the shape the model knows and nothing more. It is a guard against the
|
|
30
|
-
// mistakes the model CAN see — a number where a string belongs, a required
|
|
31
|
-
// field left out, a misspelled key under `strict` — not a substitute for the
|
|
32
|
-
// server's own validation.
|
|
33
9
|
class ValidateFeature extends BaseFeature {
|
|
34
10
|
version = '0.0.1'
|
|
35
11
|
name = 'validate'
|
|
@@ -49,12 +25,6 @@ class ValidateFeature extends BaseFeature {
|
|
|
49
25
|
this._options = options || {}
|
|
50
26
|
this.active = (options as any).active
|
|
51
27
|
|
|
52
|
-
// DEFAULTS ARE APPLIED HERE, not by the option spec. The model's
|
|
53
|
-
// `config.options` documents them and types them; it does not inject
|
|
54
|
-
// them, because each feature entry in the spec is optional and struct
|
|
55
|
-
// fills in nothing through an optional union. So every feature resolves
|
|
56
|
-
// its own — and a `mode` left undefined here once meant `'throw' !==
|
|
57
|
-
// undefined`, which silently turned every rejection into a no-op.
|
|
58
28
|
this._request = false !== this._options.request
|
|
59
29
|
this._response = true === this._options.response
|
|
60
30
|
|
|
@@ -64,16 +34,10 @@ class ValidateFeature extends BaseFeature {
|
|
|
64
34
|
// rejects the typo outright; this is what happens if it ever does not.
|
|
65
35
|
this._mode = 'report' === this._options.mode ? 'report' : 'throw'
|
|
66
36
|
|
|
67
|
-
// `strict` is applied ONCE, here, by rebuilding the spec tree without the
|
|
68
|
-
// `$OPEN` markers — rather than per call, which would clone a spec for
|
|
69
|
-
// every request an SDK ever makes.
|
|
70
37
|
this._spec = true === this._options.strict ? close(ENTITYSPEC) : ENTITYSPEC
|
|
71
38
|
}
|
|
72
39
|
|
|
73
40
|
|
|
74
|
-
// Outbound. `makeSpec` short-circuits on an `ctx.out.spec` that is already
|
|
75
|
-
// set, so assigning the error here rejects the operation before the request
|
|
76
|
-
// is built — the same seam rbac uses one stage earlier.
|
|
77
41
|
PreSpec(this: any, ctx: any) {
|
|
78
42
|
if (!this.active || !this._request) {
|
|
79
43
|
return
|
|
@@ -100,22 +64,6 @@ class ValidateFeature extends BaseFeature {
|
|
|
100
64
|
}
|
|
101
65
|
|
|
102
66
|
|
|
103
|
-
// Inbound. PreDone rather than PreResult: the records are extracted from
|
|
104
|
-
// the response body by `makeResult`, which runs between the two, so at
|
|
105
|
-
// PreResult there is nothing to check but the envelope.
|
|
106
|
-
//
|
|
107
|
-
// HOOK ORDER MATTERS HERE, and the default order is not the one you want.
|
|
108
|
-
// PreDone hooks fire in feature ADD order, which defaults to `test` first
|
|
109
|
-
// and then names sorted — and `validate` sorts last, after `audit`,
|
|
110
|
-
// `cost`, `debug`, `metrics` and `telemetry`. Those observers therefore
|
|
111
|
-
// record the operation as a success before this hook has looked at it.
|
|
112
|
-
// Activating features as an ORDERED ARRAY fixes it:
|
|
113
|
-
//
|
|
114
|
-
// feature: [{ name: 'validate', active: true, response: true },
|
|
115
|
-
// { name: 'metrics', active: true }]
|
|
116
|
-
//
|
|
117
|
-
// What this feature can fix from here, it does: the result is marked
|
|
118
|
-
// failed and its records are cleared, so the entity absorbs nothing.
|
|
119
67
|
PreDone(this: any, ctx: any) {
|
|
120
68
|
if (!this.active || !this._response) {
|
|
121
69
|
return
|
|
@@ -140,10 +88,6 @@ class ValidateFeature extends BaseFeature {
|
|
|
140
88
|
continue
|
|
141
89
|
}
|
|
142
90
|
|
|
143
|
-
// A NON-OBJECT IS A FAILURE, not something to skip. A load that
|
|
144
|
-
// answered `42` where the entity's spec wants a record used to pass
|
|
145
|
-
// this feature silently, which is the one outcome a validator must
|
|
146
|
-
// never produce. struct rejects it with the field it could not find.
|
|
147
91
|
for (const e of this._check(ctx, unwrap(record), spec.data, 'response')) {
|
|
148
92
|
errs.push(e)
|
|
149
93
|
}
|
|
@@ -156,33 +100,15 @@ class ValidateFeature extends BaseFeature {
|
|
|
156
100
|
const err = ctx.error('validate_failed',
|
|
157
101
|
'Invalid response for entity "' + entname(ctx) + '": ' + errs.join('; '))
|
|
158
102
|
|
|
159
|
-
// BOTH, and `ok` is the load-bearing half: `done` returns `resdata`
|
|
160
|
-
// whenever `result.ok` is true and never looks at `err`, so setting the
|
|
161
|
-
// error alone handed the caller the very records that failed the spec.
|
|
162
103
|
ctx.result.ok = false
|
|
163
104
|
ctx.result.err = err
|
|
164
105
|
|
|
165
|
-
// AND THE DATA GOES. The load/update fragments copy `result.resdata`
|
|
166
|
-
// into the entity's own state on any non-null value, BEFORE `done`
|
|
167
|
-
// raises — so rejecting the operation while leaving the records in place
|
|
168
|
-
// left the caller holding an entity populated from a payload this
|
|
169
|
-
// feature had just declared invalid. Clearing it is the only half of
|
|
170
|
-
// that this feature owns; see the note on hook order below.
|
|
171
106
|
ctx.result.resdata = undefined
|
|
172
107
|
|
|
173
108
|
return err
|
|
174
109
|
}
|
|
175
110
|
|
|
176
111
|
|
|
177
|
-
// The payload an operation is about to send.
|
|
178
|
-
//
|
|
179
|
-
// TWO SLOTS, AND THE OP PICKS. A body op (create/update/patch) carries the
|
|
180
|
-
// caller's argument in `reqdata` over the entity's `data`; a match op
|
|
181
|
-
// (load/list/remove) carries it in `reqmatch` over `match`. That is what
|
|
182
|
-
// the Entity*Op fragments pass to makeContext and what makePoint reads
|
|
183
|
-
// (`getprop(ctx, 'req' + op.input)`) — so reading `reqdata` for every op
|
|
184
|
-
// checked a `load({ id })` against the entity's STALE stored match and
|
|
185
|
-
// rejected it for the id the caller had just supplied.
|
|
186
112
|
_payload(this: any, ctx: any, opname: string): Record<string, any> {
|
|
187
113
|
const body = 'create' === opname || 'update' === opname || 'patch' === opname
|
|
188
114
|
|
|
@@ -207,9 +133,6 @@ class ValidateFeature extends BaseFeature {
|
|
|
207
133
|
}
|
|
208
134
|
|
|
209
135
|
|
|
210
|
-
// One validate call. Errors are COLLECTED, never thrown: struct throws on
|
|
211
|
-
// the first failure unless given an `errs` array, and a caller fixing a
|
|
212
|
-
// payload wants every problem with it, not the first one.
|
|
213
136
|
_check(this: any, ctx: any, data: any, spec: any, direction: string): string[] {
|
|
214
137
|
const struct = ctx.utility.struct
|
|
215
138
|
const errs: string[] = []
|
|
@@ -242,13 +165,6 @@ class ValidateFeature extends BaseFeature {
|
|
|
242
165
|
}
|
|
243
166
|
|
|
244
167
|
|
|
245
|
-
// A RESULT RECORD AS DATA.
|
|
246
|
-
//
|
|
247
|
-
// `makeResult` turns every record of a LIST into an entity instance
|
|
248
|
-
// (`entity.make()` then `ent.data(entry)`), so what reaches PreDone for a
|
|
249
|
-
// list is wrappers, not records — and a wrapper checked against a field spec
|
|
250
|
-
// fails on every required field while its actual data goes unchecked. A load
|
|
251
|
-
// returns the record itself, so this has to handle both.
|
|
252
168
|
function unwrap(record: any): any {
|
|
253
169
|
if (null != record && 'function' === typeof record.data) {
|
|
254
170
|
const data = record.data()
|
|
@@ -265,9 +181,6 @@ function entname(ctx: any): string {
|
|
|
265
181
|
}
|
|
266
182
|
|
|
267
183
|
|
|
268
|
-
// The spec tree with every `$OPEN` marker removed, so an undeclared key is an
|
|
269
|
-
// error rather than a pass. Rebuilt rather than mutated: ENTITYSPEC is a
|
|
270
|
-
// module constant shared by every client in the process.
|
|
271
184
|
function close(node: any): any {
|
|
272
185
|
if (Array.isArray(node)) {
|
|
273
186
|
return node.map((n: any) => close(n))
|
|
@@ -14,18 +14,6 @@ function clean(ctx: Context, val: any) {
|
|
|
14
14
|
const cleankeyre = options?.__derived__?.clean?.keyre
|
|
15
15
|
const hintsize = 4
|
|
16
16
|
|
|
17
|
-
/*
|
|
18
|
-
if (null != cleankeyre) {
|
|
19
|
-
val = walk(clone(val), (key: any, subval: any) => {
|
|
20
|
-
if (cleankeyre.exec(key) && 'string' === typeof subval) {
|
|
21
|
-
const len = size(subval)
|
|
22
|
-
const hint = (hintsize * 4) < len ? slice(subval, 0, hintsize) : ''
|
|
23
|
-
subval = pad(hint, len, '*')
|
|
24
|
-
}
|
|
25
|
-
return subval
|
|
26
|
-
})
|
|
27
|
-
}
|
|
28
|
-
*/
|
|
29
17
|
|
|
30
18
|
return val
|
|
31
19
|
}
|
|
@@ -2,23 +2,8 @@
|
|
|
2
2
|
import { Context } from '../types'
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// operations exist and what each one's document is — is model data,
|
|
8
|
-
// computed once by apidef and emitted into Config.
|
|
9
|
-
//
|
|
10
|
-
// Two jobs:
|
|
11
|
-
//
|
|
12
|
-
// graphqlBody — build { query, variables } for a point, binding the
|
|
13
|
-
// op's arguments to the document's declared variables.
|
|
14
|
-
//
|
|
15
|
-
// graphqlErrors — lift a GraphQL failure into an SDK error. GraphQL
|
|
16
|
-
// reports failures as a top-level `errors` array under
|
|
17
|
-
// HTTP 200, so the status-driven path in resultBasic
|
|
18
|
-
// never sees them.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// Content type every GraphQL-over-HTTP request uses.
|
|
5
|
+
|
|
6
|
+
|
|
22
7
|
const GRAPHQL_CONTENT_TYPE = 'application/json'
|
|
23
8
|
|
|
24
9
|
|
|
@@ -47,12 +32,6 @@ function graphqlErrorCode(gqlerr: any): string {
|
|
|
47
32
|
}
|
|
48
33
|
|
|
49
34
|
|
|
50
|
-
// Build the request body for a GraphQL point.
|
|
51
|
-
//
|
|
52
|
-
// Variables come from the op's own arguments: a named variable binds to the
|
|
53
|
-
// like-named argument (`from`), and the input-object variable (empty `from`)
|
|
54
|
-
// takes the request data as a whole — which is what makes a generated
|
|
55
|
-
// create/update call look exactly like its REST equivalent.
|
|
56
35
|
function graphqlBody(ctx: Context): any {
|
|
57
36
|
const utility = ctx.utility
|
|
58
37
|
const struct = utility.struct
|
|
@@ -105,13 +84,6 @@ function graphqlBody(ctx: Context): any {
|
|
|
105
84
|
}
|
|
106
85
|
|
|
107
86
|
|
|
108
|
-
// Inspect a decoded GraphQL response body and record a failure when the
|
|
109
|
-
// server reported one. Returns true when an error was recorded.
|
|
110
|
-
//
|
|
111
|
-
// Partial data (`data` alongside `errors`) is treated as failure: the REST
|
|
112
|
-
// surface has no partial-success concept, and silently returning half an
|
|
113
|
-
// object would be worse than failing. The raw envelope stays available on
|
|
114
|
-
// the result for callers that need it.
|
|
115
87
|
function graphqlErrors(ctx: Context): boolean {
|
|
116
88
|
const result: any = ctx.result
|
|
117
89
|
const point: any = ctx.point
|
|
@@ -23,9 +23,6 @@ function makeError(ctx: Context, err?: any) {
|
|
|
23
23
|
err = err || ctx.error('unknown', 'unknown error')
|
|
24
24
|
|
|
25
25
|
const errmsg = err.message || 'unknown error'
|
|
26
|
-
// TODO: project name should come from config
|
|
27
|
-
// avoids spurious changes between template and generated utility
|
|
28
|
-
// applies for all utility files
|
|
29
26
|
const msg = 'ProjectNameSDK: ' + op.name + ': ' + errmsg
|
|
30
27
|
err.message = clean(ctx, msg)
|
|
31
28
|
|
|
@@ -61,7 +58,6 @@ function makeError(ctx: Context, err?: any) {
|
|
|
61
58
|
ctx.utility.featureHook(ctx, 'PreUnexpected')
|
|
62
59
|
}
|
|
63
60
|
|
|
64
|
-
// TODO: model option to return instead
|
|
65
61
|
if (false === ctx.ctrl.throw) {
|
|
66
62
|
return result.resdata
|
|
67
63
|
}
|
|
@@ -15,25 +15,8 @@ function makeOptions(ctx: Context) {
|
|
|
15
15
|
|
|
16
16
|
let opts = { ...(options || {}) }
|
|
17
17
|
|
|
18
|
-
// EXPLICIT AUTH SUPPRESSION, captured BEFORE merge and validate.
|
|
19
|
-
//
|
|
20
|
-
// `auth: null` is the documented way to disable auth outright, and
|
|
21
|
-
// prepareAuth honours it. But struct 0.3.2's getprop treats a stored
|
|
22
|
-
// null as "no value", so validate fills in the optspec's `auth`
|
|
23
|
-
// default and the suppression silently became "use default auth" —
|
|
24
|
-
// transmitting a credential the caller explicitly asked not to send.
|
|
25
|
-
// (0.0.10 rejected `auth: null` outright, so nothing depended on the
|
|
26
|
-
// old behaviour, and nothing catches the new one.)
|
|
27
|
-
//
|
|
28
|
-
// Suppliedness cannot be recovered after validate, hence here.
|
|
29
18
|
const authSuppressed = null === (options || {}).auth
|
|
30
19
|
|
|
31
|
-
// Feature add-order. `options.feature` may be given as an ordered ARRAY of
|
|
32
|
-
// { name, active, ...opts } entries (the array position IS the order in
|
|
33
|
-
// which features are added), or as a { name: {opts} } map. Normalize an
|
|
34
|
-
// array to a map (so merge/validate/init are unchanged) and remember the
|
|
35
|
-
// explicit order; a map defaults to test-first so the `test` mock transport
|
|
36
|
-
// is installed as the base of the transport wrapper chain.
|
|
37
20
|
let featureorder: string[] = []
|
|
38
21
|
if (Array.isArray(opts.feature)) {
|
|
39
22
|
const fmap: any = {}
|
|
@@ -55,18 +38,6 @@ function makeOptions(ctx: Context) {
|
|
|
55
38
|
let config = ctx.config || {}
|
|
56
39
|
let cfgopts = config.options || {}
|
|
57
40
|
|
|
58
|
-
// THE OPTION SPEC IS GENERATED, NOT WRITTEN HERE.
|
|
59
|
-
//
|
|
60
|
-
// `Spec.OPTSPEC` is built from the model: `main.kit.optspec` for the
|
|
61
|
-
// standard options, plus one entry per feature this target carries, taken
|
|
62
|
-
// from that feature's own `config.options` / `config.optspec`. Editing this
|
|
63
|
-
// file to add an option would put it back where it was — one of twenty
|
|
64
|
-
// hand-maintained copies of a schema nothing cross-checked — so add it to
|
|
65
|
-
// the model instead and every ported target validates it.
|
|
66
|
-
//
|
|
67
|
-
// NOT MUTATED. It is a module-level constant shared by every client this
|
|
68
|
-
// process constructs; the platform default below is applied to the RESULT,
|
|
69
|
-
// never to the spec.
|
|
70
41
|
const optspec = OPTSPEC
|
|
71
42
|
|
|
72
43
|
// Clone the config side before merging: `config` is a module-level
|
|
@@ -77,11 +48,6 @@ function makeOptions(ctx: Context) {
|
|
|
77
48
|
|
|
78
49
|
opts = validate(opts, optspec)
|
|
79
50
|
|
|
80
|
-
// The platform fetch, supplied AFTER validate rather than as a spec
|
|
81
|
-
// default. `system.fetch` is declared `$ANY`, which passes a caller's own
|
|
82
|
-
// fetch through untouched but inserts nothing when the key is absent — and
|
|
83
|
-
// the spec is shared, so writing the default into it (as this did while the
|
|
84
|
-
// spec was a per-call literal) would hand one client's fetch to the next.
|
|
85
51
|
opts.system = opts.system || {}
|
|
86
52
|
if (null == opts.system.fetch) {
|
|
87
53
|
opts.system.fetch = global.fetch
|
|
@@ -92,12 +58,6 @@ function makeOptions(ctx: Context) {
|
|
|
92
58
|
opts.auth = null
|
|
93
59
|
}
|
|
94
60
|
|
|
95
|
-
// Resolve a templated base URL (e.g. https://{tenant_id}.hanko.io).
|
|
96
|
-
// Every placeholder must resolve to a non-empty value: from
|
|
97
|
-
// options.server (user), else the Config default. A placeholder that
|
|
98
|
-
// resolves to '' is a construction ERROR in live mode — the URL cannot
|
|
99
|
-
// work — but in test mode substitutes the deterministic value
|
|
100
|
-
// `test-<name>` so offline tests need no configuration.
|
|
101
61
|
if ('string' === typeof opts.base && opts.base.includes('{')) {
|
|
102
62
|
const testmode = true === opts.test.active ||
|
|
103
63
|
true === (opts.feature && opts.feature.test && opts.feature.test.active)
|
|
@@ -127,12 +87,6 @@ function makeOptions(ctx: Context) {
|
|
|
127
87
|
names = names.indexOf('test') < 0
|
|
128
88
|
? names
|
|
129
89
|
: ['test'].concat(names.filter((n: string) => 'test' !== n))
|
|
130
|
-
// Station special case, mirroring test's: its transport wrap must
|
|
131
|
-
// sit immediately outside the base transport (inside retry/cache/
|
|
132
|
-
// netsim), so map-form activation hoists it to just after test -
|
|
133
|
-
// or first, when no test entry exists. Without this the sorted
|
|
134
|
-
// default would init station last and wrap OUTSIDE the recording
|
|
135
|
-
// features, turning its wire-truth events into fiction.
|
|
136
90
|
const si = names.indexOf('station')
|
|
137
91
|
if (0 <= si) {
|
|
138
92
|
names.splice(si, 1)
|
|
@@ -2,28 +2,6 @@
|
|
|
2
2
|
import { Context, Point } from '../types'
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
// The entity's OWN route among an op's points, as opposed to a
|
|
6
|
-
// CROSS-REFERENCE: another resource's route that happens to return this
|
|
7
|
-
// entity (`/notifications/{id}/board` for a board). Both are plain GETs
|
|
8
|
-
// with no `$action`, so the path itself is all there is to go on.
|
|
9
|
-
//
|
|
10
|
-
// Two signals, in order:
|
|
11
|
-
//
|
|
12
|
-
// 1. A record route ends in the record's identifier (`/boards/{id}`,
|
|
13
|
-
// `/accounts/{account_id}/users/{id}`); a cross-reference ends in the
|
|
14
|
-
// relationship's name (`/posts/{id}/author`). A terminal parameter is
|
|
15
|
-
// therefore the stronger signal, and unlike depth it survives an entity
|
|
16
|
-
// nested more deeply than the route pointing at it.
|
|
17
|
-
// 2. Failing that, fewest path segments — the shallower route is the one
|
|
18
|
-
// the entity is named for.
|
|
19
|
-
//
|
|
20
|
-
// Ties keep the earlier point, so the sorted-key order of the model decides
|
|
21
|
-
// and the output stays byte-stable.
|
|
22
|
-
//
|
|
23
|
-
// The same rule runs at GENERATION time, in `shortestPoint`/`ownPoint` in
|
|
24
|
-
// helpers/opShape.ts. It cannot be shared with this file — a template ships
|
|
25
|
-
// standalone, outside that package — so it is written twice on purpose, and
|
|
26
|
-
// both sides must move together.
|
|
27
5
|
function terminalParam(point: any): boolean {
|
|
28
6
|
const parts = point.parts
|
|
29
7
|
const last = 0 < parts.length ? parts[parts.length - 1] : ''
|
|
@@ -109,19 +87,7 @@ function makePoint(ctx: Context): Point | Error {
|
|
|
109
87
|
}
|
|
110
88
|
}
|
|
111
89
|
|
|
112
|
-
// select.exist can list more than the params needed to pick a point (for
|
|
113
|
-
// /boards/{id} it is Trello's 17 optional query-includes), so a plain
|
|
114
|
-
// {id} call matches NOTHING. Fall back to the entity's OWN route rather
|
|
115
|
-
// than whichever point came last.
|
|
116
90
|
if (!matched) {
|
|
117
|
-
// A request naming an action reaches here only because that action's
|
|
118
|
-
// own point failed its exist test, so the request is unbuildable
|
|
119
|
-
// whatever we pick. Refuse it BEFORE choosing a fallback: the guard
|
|
120
|
-
// below compares the chosen point's $action, and would wave the
|
|
121
|
-
// request through whenever the action point is itself the one the
|
|
122
|
-
// fallback selects (a short action route folded into an entity whose
|
|
123
|
-
// canonical route is longer). An unbuildable action request is an
|
|
124
|
-
// error, never a silent request to some other endpoint.
|
|
125
91
|
if (null != reqselector.$action) {
|
|
126
92
|
return ctx.error('point_action_invalid', 'Operation "' + op.name +
|
|
127
93
|
'" action "' + reqselector.$action + '" is not valid.')
|
|
@@ -30,7 +30,6 @@ function makeSpec(ctx: Context): Spec | Error {
|
|
|
30
30
|
|
|
31
31
|
ctx.spec.method = prepareMethod(ctx)
|
|
32
32
|
|
|
33
|
-
// TODO: Add string utils to StructUtility
|
|
34
33
|
if (!options.allow.method.includes(ctx.spec.method)) {
|
|
35
34
|
return ctx.error('spec_method_allow', 'Method "' + ctx.spec.method +
|
|
36
35
|
'" not allowed by SDK option allow.method value: "' + options.allow.method + '"')
|
|
@@ -41,10 +40,6 @@ function makeSpec(ctx: Context): Spec | Error {
|
|
|
41
40
|
ctx.spec.headers = prepareHeaders(ctx)
|
|
42
41
|
|
|
43
42
|
if ('graphql' === (point as any).kind) {
|
|
44
|
-
// GraphQL addresses one endpoint: no path parts, no query string, and
|
|
45
|
-
// the body carries the operation. prepareBody is skipped deliberately —
|
|
46
|
-
// it only emits a body for data-input ops (create/update), whereas every
|
|
47
|
-
// GraphQL op posts one, including load/list/remove.
|
|
48
43
|
ctx.spec.body = utility.graphqlBody(ctx)
|
|
49
44
|
ctx.spec.path = ''
|
|
50
45
|
// prepareQuery already copied the op's match arguments into the query
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { Context } from '../types'
|
|
3
3
|
|
|
4
|
-
/* Find value of a match parameter, possibly using an alias.
|
|
5
|
-
*
|
|
6
|
-
* The match parameter may have an alias key. For example, the parameter `foo_id` may be
|
|
7
|
-
* aliased to `id` in the entity data.
|
|
8
|
-
*
|
|
9
|
-
* This function returns `undefined` rather than failing.
|
|
10
|
-
*/
|
|
11
4
|
function param(ctx: Context, paramdef: any) {
|
|
12
5
|
const point = ctx.point
|
|
13
6
|
const spec = ctx.spec
|
|
@@ -27,7 +20,6 @@ function param(ctx: Context, paramdef: any) {
|
|
|
27
20
|
|
|
28
21
|
const pt = typify(paramdef)
|
|
29
22
|
|
|
30
|
-
// TODO: review this search algorithm
|
|
31
23
|
|
|
32
24
|
const key = 0 < (T_string & pt) ? paramdef : getprop(paramdef, 'name')
|
|
33
25
|
|
|
@@ -6,16 +6,12 @@ function prepareParams(ctx: Context) {
|
|
|
6
6
|
const utility = ctx.utility
|
|
7
7
|
const findparam = utility.param
|
|
8
8
|
|
|
9
|
-
// const struct = utility.struct
|
|
10
|
-
// const validate = struct.validate
|
|
11
9
|
|
|
12
10
|
const point = ctx.point
|
|
13
11
|
|
|
14
12
|
let params = point.args.params
|
|
15
|
-
// let reqmatch = ctx.reqmatch
|
|
16
13
|
|
|
17
14
|
params = params || []
|
|
18
|
-
// reqmatch = reqmatch || {}
|
|
19
15
|
|
|
20
16
|
let out: any = {}
|
|
21
17
|
for (let pd of params) {
|
|
@@ -25,8 +21,6 @@ function prepareParams(ctx: Context) {
|
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
23
|
|
|
28
|
-
// TODO: review
|
|
29
|
-
// out = validate(out, point.validate.params)
|
|
30
24
|
|
|
31
25
|
return out
|
|
32
26
|
}
|
|
@@ -14,7 +14,6 @@ function resultBasic(ctx: Context) {
|
|
|
14
14
|
result.status = getprop(response, 'status', -1)
|
|
15
15
|
result.statusText = getprop(response, 'statusText', 'no-status')
|
|
16
16
|
|
|
17
|
-
// TODO: use spec!
|
|
18
17
|
if (400 <= result.status) {
|
|
19
18
|
const msg = 'request: ' + result.status + ': ' + result.statusText
|
|
20
19
|
if (result.err) {
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { Context } from '../types'
|
|
3
3
|
|
|
4
|
-
/* Convert entity data or match query into a srtucture suitable for use as request data.
|
|
5
|
-
*
|
|
6
|
-
* The operation (op) property `reqform` is used to perform the data preparation.
|
|
7
|
-
*/
|
|
8
4
|
function transformRequest(ctx: Context) {
|
|
9
5
|
const spec = ctx.spec
|
|
10
6
|
const utility = ctx.utility
|
|
@@ -31,22 +27,6 @@ function transformRequest(ctx: Context) {
|
|
|
31
27
|
|
|
32
28
|
|
|
33
29
|
|
|
34
|
-
// `$action` selects WHICH POINT of the op to use (see MakePointUtility). It
|
|
35
|
-
// is the SDK's own discriminator, never an API field, so it must not survive
|
|
36
|
-
// into the wire body. The GraphQL path already strips it where it builds its
|
|
37
|
-
// input object; this is the same rule on the REST path, which had no such
|
|
38
|
-
// step and sent it verbatim -- `{"$action":"merge", ...}` to GitHub's merge
|
|
39
|
-
// endpoint. Harmless there, because GitHub ignores unknown keys; not
|
|
40
|
-
// harmless against an API that validates its request bodies strictly.
|
|
41
|
-
//
|
|
42
|
-
// Only a top-level key of a plain object: a body may legitimately be an
|
|
43
|
-
// array or a scalar, and neither can carry a selector.
|
|
44
|
-
//
|
|
45
|
-
// `__proto__` is assigned through Object.defineProperty, never `body[key] =`.
|
|
46
|
-
// It is a legal JSON key and can be a real API field, but plain assignment
|
|
47
|
-
// invokes the inherited setter: the key would vanish from the serialised
|
|
48
|
-
// request and silently become the body's prototype instead. Same treatment
|
|
49
|
-
// as StructUtility's condenseSet, for the same reason.
|
|
50
30
|
|
|
51
31
|
function stripAction(reqdata: any) {
|
|
52
32
|
if (null == reqdata || 'object' !== typeof reqdata || Array.isArray(reqdata)) {
|
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
import { Context } from '../types'
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
/* Convert data from respnse into a structure suitable for use as entity data.
|
|
6
|
-
*
|
|
7
|
-
* The operation (op) property `resform` is used to perform the data extraction.
|
|
8
|
-
*/
|
|
9
5
|
function transformResponse(ctx: Context) {
|
|
10
6
|
const spec = ctx.spec
|
|
11
7
|
const result = ctx.result
|
|
@@ -8,16 +8,6 @@ import { ProjectNameSDK } from '..'
|
|
|
8
8
|
|
|
9
9
|
describe('exists', async () => {
|
|
10
10
|
|
|
11
|
-
// NOT async, and the assertion is deliberate.
|
|
12
|
-
//
|
|
13
|
-
// ProjectNameSDK.test() is synchronous — it returns the client, not a promise
|
|
14
|
-
// — so the `await` here was a no-op. Worse, it hid the weakness of the
|
|
15
|
-
// assertion: `null !== testsdk` is trivially true for ANY non-null value,
|
|
16
|
-
// including the promise an `await` would have unwrapped. The test could not
|
|
17
|
-
// have failed short of test() returning null.
|
|
18
|
-
//
|
|
19
|
-
// instanceof is the real check: it fails if test() ever starts returning a
|
|
20
|
-
// promise, or anything other than a client.
|
|
21
11
|
test('test-mode', () => {
|
|
22
12
|
const testsdk = ProjectNameSDK.test()
|
|
23
13
|
equal(testsdk instanceof ProjectNameSDK, true,
|
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
// Feature behaviour, driven by the SHARED corpus.
|
|
3
|
-
//
|
|
4
|
-
// This is the route PrimaryUtility.test.ts already takes for the utilities:
|
|
5
|
-
// language-neutral cases in .sdk/test/test.json, executed against the REAL
|
|
6
|
-
// generated SDK. Features here are ordinary classes in ordinary compiled
|
|
7
|
-
// source, unit-tested the ordinary way — no transpiled templates, and no
|
|
8
|
-
// miniature of the pipeline standing in for the pipeline (which is what
|
|
9
|
-
// harness.ts does, and why its assertions can only be as right as the
|
|
10
|
-
// miniature is). A feature is built through the generated config, wrapped
|
|
11
|
-
// into a client built by the generated constructor, and driven by a real
|
|
12
|
-
// entity operation. What is asserted is what ships.
|
|
13
|
-
//
|
|
14
|
-
// Everything in a case is data: features are activated by name, options are
|
|
15
|
-
// plain JSON, the transport is scripted by `res`, and the assertion is a
|
|
16
|
-
// subset of the client's own record. Turning `res` into a fetcher is the one
|
|
17
|
-
// piece each language writes for itself.
|
|
18
2
|
|
|
19
3
|
import { test, describe, before } from 'node:test'
|
|
20
4
|
import { ok, deepStrictEqual } from 'node:assert'
|
|
@@ -25,12 +9,6 @@ import { join } from 'node:path'
|
|
|
25
9
|
import { SDK, TEST_JSON_FILE } from '../utility/index'
|
|
26
10
|
|
|
27
11
|
|
|
28
|
-
// Features with a corpus section — read from the corpus itself, so a
|
|
29
|
-
// project-authored section (a custom feature added under
|
|
30
|
-
// .sdk/test/feature/) runs without editing this file. Read eagerly: the
|
|
31
|
-
// node test runner collects the per-feature tests at describe time,
|
|
32
|
-
// before any `before` hook fires. An SDK generated without a listed
|
|
33
|
-
// feature still skips, not fails.
|
|
34
12
|
const FEATURES = Object.keys((() => {
|
|
35
13
|
try {
|
|
36
14
|
return JSON.parse(readFileSync(
|
|
@@ -86,14 +64,6 @@ function scriptedFetcher(res: any[]) {
|
|
|
86
64
|
|
|
87
65
|
|
|
88
66
|
function makeClient(kase: any): any {
|
|
89
|
-
// `test: { active: true }` is the OPTION, not the `test` FEATURE.
|
|
90
|
-
//
|
|
91
|
-
// It says "this client is not live", which is what makes a REQUIRED
|
|
92
|
-
// OpenAPI server variable resolve to a deterministic `test-<name>`
|
|
93
|
-
// rather than refuse to construct (see makeOptions). It installs no
|
|
94
|
-
// transport, so the scripted fetcher below still stands — the FEATURE
|
|
95
|
-
// is transport: 'base' and would shadow it, which is why this cannot
|
|
96
|
-
// just turn the feature on.
|
|
97
67
|
return new (SDK as any)({
|
|
98
68
|
test: { active: true },
|
|
99
69
|
feature: kase.feature,
|
|
@@ -102,13 +72,6 @@ function makeClient(kase: any): any {
|
|
|
102
72
|
}
|
|
103
73
|
|
|
104
74
|
|
|
105
|
-
// Every operation this SDK declares, in a stable order.
|
|
106
|
-
//
|
|
107
|
-
// The corpus cannot name an entity — it is shared by SDKs that have none in
|
|
108
|
-
// common — so the runner finds them here. The generated client exposes one
|
|
109
|
-
// capitalised, zero-argument accessor per entity, and the entity it returns
|
|
110
|
-
// carries the same `name` the config is keyed by; that pairing is what turns
|
|
111
|
-
// a config entry back into a callable method.
|
|
112
75
|
function candidates(client: any): OpRef[] {
|
|
113
76
|
const entities: Record<string, any> = client._rootctx.config.entity || {}
|
|
114
77
|
|
|
@@ -131,14 +94,6 @@ function candidates(client: any): OpRef[] {
|
|
|
131
94
|
}
|
|
132
95
|
}
|
|
133
96
|
|
|
134
|
-
// SAFE OPS FIRST. The corpus calls #OP1 repeatedly and reasons about what
|
|
135
|
-
// the transport did in between — a cache hit, a retry, a rate-limit wait.
|
|
136
|
-
// `load`/`list` are the GET ops, and the cache stores only successful GETs,
|
|
137
|
-
// so an SDK whose first usable op is a `create` (POST) can never satisfy
|
|
138
|
-
// "a hit served from cache costs nothing": nothing is ever cached, the
|
|
139
|
-
// second call goes to the network, and cost correctly charges twice. That
|
|
140
|
-
// reads as a cost defect and is not one. Ordering here rather than
|
|
141
|
-
// filtering keeps every SDK runnable, including ones with no GET at all.
|
|
142
97
|
const SAFE: Record<string, number> = { list: 0, load: 1 }
|
|
143
98
|
return out.sort((a, b) =>
|
|
144
99
|
(SAFE[a.op] ?? 2) - (SAFE[b.op] ?? 2) || a.key.localeCompare(b.key))
|
|
@@ -223,17 +178,6 @@ describe('FeatureCorpus', () => {
|
|
|
223
178
|
})
|
|
224
179
|
|
|
225
180
|
|
|
226
|
-
// A corpus with no `feature` section is a SKIP, not a failure.
|
|
227
|
-
//
|
|
228
|
-
// Each project carries its OWN materialised copy of .sdk/test/test.json, so
|
|
229
|
-
// a project scaffolded before the section existed legitimately has no cases
|
|
230
|
-
// to run - and a hard assertion here turned that into a red suite in every
|
|
231
|
-
// SDK on the fleet, for a corpus the project had simply not re-pulled yet.
|
|
232
|
-
//
|
|
233
|
-
// The strict check belongs where the corpus is CONTROLLED, not where it is
|
|
234
|
-
// consumed: sdkgen's own end-to-end lane generates against a corpus it
|
|
235
|
-
// supplies and requires the cases to actually run, so a section that goes
|
|
236
|
-
// missing there still fails loudly.
|
|
237
181
|
test('the corpus carries a feature section', (t) => {
|
|
238
182
|
if (null == corpus.feature) {
|
|
239
183
|
return t.skip(
|