@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
|
@@ -32,8 +32,6 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
32
32
|
if (!exampleEntity || !primaryOp) return ''
|
|
33
33
|
if ('list' === primaryOp) return ''
|
|
34
34
|
if (isMatchOp) {
|
|
35
|
-
// Every REQUIRED match key (id first), not just idF — a composite-match
|
|
36
|
-
// entity (database_id + id) needs them all. Mirrors ReadmeTopTest.
|
|
37
35
|
const items = opRequestShape(exampleEntity, primaryOp).items
|
|
38
36
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
39
37
|
.sort((a: any, b: any) => (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
|
|
@@ -10,11 +10,6 @@ import {
|
|
|
10
10
|
import { exampleValue } from './utility_js'
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
// A `list()` on a NESTED entity needs its parent path params. The
|
|
14
|
-
// quickstart used to emit `client.Moon().list()` for an entity at
|
|
15
|
-
// `/planet/{planet_id}/moon`, which 404s against a live server from a
|
|
16
|
-
// half-built URL — indistinguishable from "no such record". The model
|
|
17
|
-
// already marks those params `reqd: true`; matchArg renders exactly them.
|
|
18
13
|
function listMatchArg(ent: any): string {
|
|
19
14
|
const idF = entityIdField(ent)
|
|
20
15
|
return matchArg('ts', ent, 'list', idF, idLiteral(ent, 'list', idF))
|
|
@@ -26,7 +21,6 @@ const ReadmeQuick = cmp(function ReadmeQuick(props: any) {
|
|
|
26
21
|
|
|
27
22
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
28
23
|
|
|
29
|
-
// Find the first published entity for examples
|
|
30
24
|
const exampleEntity = Object.values(entity).find((e: any) => e.active !== false) as any
|
|
31
25
|
|
|
32
26
|
const ctor = isAuthActive(model)
|
|
@@ -47,8 +41,6 @@ const client = ${ctor}
|
|
|
47
41
|
if (exampleEntity) {
|
|
48
42
|
const eName = nom(exampleEntity, 'Name')
|
|
49
43
|
const article = /^[aeiou]/i.test(eName) ? 'an' : 'a'
|
|
50
|
-
// ACTIVE ops only — an inactive op generates no method, so an example
|
|
51
|
-
// calling it would be wrong.
|
|
52
44
|
const opnames = entityOps(exampleEntity)
|
|
53
45
|
|
|
54
46
|
// Model-driven example fields, in parity with the ts target: derive the
|
|
@@ -57,20 +49,13 @@ const client = ${ctor}
|
|
|
57
49
|
// `idF` is the entity's id-like field name, or null when it has none —
|
|
58
50
|
// then load/remove match on no argument and update omits the id.
|
|
59
51
|
const idF = entityIdField(exampleEntity)
|
|
60
|
-
// Variable-safe lowercase name (a `Delete` entity must not bind `delete`).
|
|
61
52
|
const eVar = exampleVarName(exampleEntity.name, 'js')
|
|
62
53
|
const exampleFields = (opname: string): string[] => {
|
|
63
|
-
// ids are rendered separately as the match key for update/remove; a
|
|
64
|
-
// REQUIRED id stays for create (dropping it makes the payload
|
|
65
|
-
// incomplete).
|
|
66
54
|
const items = opRequestShape(exampleEntity, opname).items
|
|
67
55
|
.filter((it: any) => (it.name !== idF && it.name !== 'id') ||
|
|
68
56
|
('create' === opname && !it.optional))
|
|
69
57
|
const required = items.filter((it: any) => !it.optional)
|
|
70
58
|
const optional = items.filter((it: any) => it.optional)
|
|
71
|
-
// create needs ALL required fields for parity with the typed ts target;
|
|
72
|
-
// update is a patch, so the required members plus a sample optional
|
|
73
|
-
// field or two suffice.
|
|
74
59
|
const chosen = 'create' === opname
|
|
75
60
|
? (required.length ? required : items.slice(0, 2))
|
|
76
61
|
: required.concat(optional).slice(0, Math.max(2, required.length))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content, canonToType, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName, jsKey } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonToType, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName, jsKey , targetFeatures } from '@voxgig/sdkgen'
|
|
3
3
|
import { ReadmeRefFeatures } from '@voxgig/sdkgen'
|
|
4
4
|
|
|
5
5
|
import {
|
|
@@ -44,7 +44,7 @@ const ReadmeRef = cmp(function ReadmeRef(props: any) {
|
|
|
44
44
|
const { model } = props.ctx$
|
|
45
45
|
|
|
46
46
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
47
|
-
const feature =
|
|
47
|
+
const feature = targetFeatures(model, target)
|
|
48
48
|
|
|
49
49
|
const publishedEntities = each(entity).filter((e: any) => e.active !== false)
|
|
50
50
|
|
|
@@ -185,7 +185,6 @@ Alias for \`${model.Name}SDK.test()\`.
|
|
|
185
185
|
// Model-driven id key: null when this entity has no id-like field, in
|
|
186
186
|
// which case load/remove match on no argument and update omits the id.
|
|
187
187
|
const idF = entityIdField(ent)
|
|
188
|
-
// Variable-safe lowercase name (a `Delete` entity must not bind `delete`).
|
|
189
188
|
const eVar = exampleVarName(ent.name, 'js')
|
|
190
189
|
|
|
191
190
|
Content(`
|
|
@@ -208,7 +207,6 @@ const ${eVar} = client.${ent.Name}()
|
|
|
208
207
|
`)
|
|
209
208
|
|
|
210
209
|
|
|
211
|
-
// Field schema
|
|
212
210
|
if (fields.length > 0) {
|
|
213
211
|
Content(`### Fields
|
|
214
212
|
|
|
@@ -406,9 +404,6 @@ const client = new ${model.Name}SDK({
|
|
|
406
404
|
\`\`\`
|
|
407
405
|
|
|
408
406
|
`)
|
|
409
|
-
// The shared feature reference: options, defaults, usage and the
|
|
410
|
-
// considerations. Model facts, identical in every target, so they are
|
|
411
|
-
// written once in cmp/ReadmeRefFeatures.ts rather than here.
|
|
412
407
|
ReadmeRefFeatures({ target })
|
|
413
408
|
}
|
|
414
409
|
|
|
@@ -10,11 +10,6 @@ import {
|
|
|
10
10
|
import { exampleValue } from './utility_js'
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
// A `list()` on a NESTED entity needs its parent path params. The
|
|
14
|
-
// quickstart used to emit `client.Moon().list()` for an entity at
|
|
15
|
-
// `/planet/{planet_id}/moon`, which 404s against a live server from a
|
|
16
|
-
// half-built URL — indistinguishable from "no such record". The model
|
|
17
|
-
// already marks those params `reqd: true`; matchArg renders exactly them.
|
|
18
13
|
function listMatchArg(ent: any): string {
|
|
19
14
|
const idF = entityIdField(ent)
|
|
20
15
|
return matchArg('ts', ent, 'list', idF, idLiteral(ent, 'list', idF))
|
|
@@ -41,8 +36,6 @@ const client = ${ctor}
|
|
|
41
36
|
if (exampleEntity) {
|
|
42
37
|
const eName = nom(exampleEntity, 'Name')
|
|
43
38
|
const eVar = exampleVarName(eName.toLowerCase(), 'js')
|
|
44
|
-
// ACTIVE ops only — an inactive op generates no method, so an example
|
|
45
|
-
// calling it would be wrong.
|
|
46
39
|
const opnames = entityOps(exampleEntity)
|
|
47
40
|
|
|
48
41
|
if (opnames.includes('list')) {
|
|
@@ -12,27 +12,6 @@ import {
|
|
|
12
12
|
} from '@voxgig/apidef'
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
// THE GENERATED SCHEMA MODULE: the model's schemas, as data the SDK can run.
|
|
16
|
-
//
|
|
17
|
-
// Two exports, both struct.validate specs:
|
|
18
|
-
//
|
|
19
|
-
// OPTSPEC what makeOptions validates the caller's options against —
|
|
20
|
-
// the standard options from `main.kit.optspec` plus one entry
|
|
21
|
-
// per feature this target carries, built by helpers/optspec.
|
|
22
|
-
//
|
|
23
|
-
// ENTITYSPEC per entity, `{ data, op: { <opname> } }` — the record shape
|
|
24
|
-
// and each operation's request shape, mapped from the field
|
|
25
|
-
// type sentinels the model already carries (helpers/canonSpec).
|
|
26
|
-
// Emitted as an EMPTY MAP unless the `validate` feature is
|
|
27
|
-
// active, because nothing else reads it and every byte here is
|
|
28
|
-
// a byte in the consumer's package.
|
|
29
|
-
//
|
|
30
|
-
// A JSON OBJECT LITERAL, not a parsed string: JSON is a subset of the
|
|
31
|
-
// language's own literal syntax, so the values land as data with no parse
|
|
32
|
-
// step, and the backticks the sentinels carry (`\`$STRING\``) survive because
|
|
33
|
-
// JSON.stringify quotes and escapes them. The config emitter has to choose
|
|
34
|
-
// between a literal and a parsed blob because the config can be megabytes;
|
|
35
|
-
// the spec is bounded by the model's field count, so it does not.
|
|
36
15
|
const Schema = cmp(async function Schema(props: any) {
|
|
37
16
|
const ctx$ = props.ctx$
|
|
38
17
|
const target = props.target
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
jsProp, envName, envToken,
|
|
23
23
|
jsKey,
|
|
24
24
|
pointParts,
|
|
25
|
+
hasLiveScenarios,
|
|
25
26
|
} from '@voxgig/sdkgen'
|
|
26
27
|
|
|
27
28
|
|
|
@@ -52,16 +53,6 @@ const TestDirect = cmp(function TestDirect(props: any) {
|
|
|
52
53
|
apikey: env.${PROJECTNAME}_APIKEY,`
|
|
53
54
|
: ''
|
|
54
55
|
|
|
55
|
-
// A templated server URL (OpenAPI server variables) makes a LIVE client
|
|
56
|
-
// impossible to construct without values: makeOptions raises rather than
|
|
57
|
-
// request a URL with a literal `{account_id}` in it. Taken from the
|
|
58
|
-
// environment, the same way the apikey is.
|
|
59
|
-
//
|
|
60
|
-
// Keys are quoted and the env read is bracketed via jsKey/jsProp: a server
|
|
61
|
-
// variable name is spec-derived and need not be a JS identifier — the URL
|
|
62
|
-
// grammar admits a leading digit ({2fa}), and a declared-but-unreferenced
|
|
63
|
-
// variable ({edge-zone}) is not constrained at all. Bare `name:` and
|
|
64
|
-
// `env.PROJ_SERVER_EDGE-ZONE` are both syntax errors.
|
|
65
56
|
const svars = serverVariables(model)
|
|
66
57
|
const serverEnvEntry = svars
|
|
67
58
|
.map((v: any) => `\n '${serverVarEnv(PROJECTNAME, v.name)}': ${JSON.stringify(v.dflt)},`).join('')
|
|
@@ -96,7 +87,7 @@ const TestDirect = cmp(function TestDirect(props: any) {
|
|
|
96
87
|
|
|
97
88
|
Slot({ name: 'directSetup' }, () => {
|
|
98
89
|
Content(`
|
|
99
|
-
function liveScenariosActive() { return ${
|
|
90
|
+
function liveScenariosActive() { return ${hasLiveScenarios(model)} && process.env.${PROJECTNAME}_TEST_LIVE === 'TRUE' }
|
|
100
91
|
function directSetup(mockres) {
|
|
101
92
|
const calls = []
|
|
102
93
|
|
|
@@ -389,11 +380,6 @@ ${varAsserts} }
|
|
|
389
380
|
}
|
|
390
381
|
|
|
391
382
|
|
|
392
|
-
// Replace raw OpenAPI parameter names in path parts with model parameter names.
|
|
393
|
-
// Path parts may have e.g. {subBreed} while model params use sub_breed.
|
|
394
|
-
// When a rename mapping exists (e.g. closureId -> id), path parts contain the
|
|
395
|
-
// renamed form {id} but params still use the original name closure_id.
|
|
396
|
-
// The rename mapping is used to reverse-lookup the original param name.
|
|
397
383
|
function normalizePathParams(
|
|
398
384
|
parts: string[],
|
|
399
385
|
params: any[],
|
|
@@ -34,7 +34,8 @@ import {
|
|
|
34
34
|
serverVariables,
|
|
35
35
|
entityDataIdField, envName, envToken,
|
|
36
36
|
jsKey,
|
|
37
|
-
jsProp
|
|
37
|
+
jsProp,
|
|
38
|
+
hasLiveScenarios,
|
|
38
39
|
} from '@voxgig/sdkgen'
|
|
39
40
|
|
|
40
41
|
|
|
@@ -74,16 +75,6 @@ const TestEntity = cmp(function TestEntity(props: any) {
|
|
|
74
75
|
apikey: env.${PROJENVNAME}_APIKEY,`
|
|
75
76
|
: ''
|
|
76
77
|
|
|
77
|
-
// A templated server URL (OpenAPI server variables) makes a LIVE client
|
|
78
|
-
// impossible to construct without values: makeOptions raises rather than
|
|
79
|
-
// request a URL with a literal `{account_id}` in it. So the live suite
|
|
80
|
-
// takes them from the environment the same way it takes the apikey.
|
|
81
|
-
//
|
|
82
|
-
// Keys are quoted and the env read is bracketed via jsKey/jsProp: a server
|
|
83
|
-
// variable name is spec-derived and need not be a JS identifier — the URL
|
|
84
|
-
// grammar admits a leading digit ({2fa}), and a declared-but-unreferenced
|
|
85
|
-
// variable ({edge-zone}) is not constrained at all. Bare `name:` and
|
|
86
|
-
// `env.PROJ_SERVER_EDGE-ZONE` are both syntax errors.
|
|
87
78
|
const svars = serverVariables(model)
|
|
88
79
|
const serverEnvEntry = svars
|
|
89
80
|
.map((v: any) => `\n '${serverVarEnv(PROJENVNAME, v.name)}': ${JSON.stringify(v.dflt)},`).join('')
|
|
@@ -93,7 +84,6 @@ const TestEntity = cmp(function TestEntity(props: any) {
|
|
|
93
84
|
${jsKey(v.name)}: ${jsProp('env', serverVarEnv(PROJENVNAME, v.name))},`).join('')}
|
|
94
85
|
},`
|
|
95
86
|
|
|
96
|
-
// TODO: should be a utility function
|
|
97
87
|
const ff = projectPath('src/cmp/js/fragment/')
|
|
98
88
|
|
|
99
89
|
Folder({ name: entity.name }, () => {
|
|
@@ -219,7 +209,7 @@ function basicSetup(extra) {
|
|
|
219
209
|
)
|
|
220
210
|
|
|
221
211
|
Content(`
|
|
222
|
-
${
|
|
212
|
+
${hasLiveScenarios(model) ? `if (process.env.${PROJENVNAME}_TEST_LIVE === 'TRUE') { t.skip('Covered by live operation scenarios'); return }` : ''}
|
|
223
213
|
const setup = basicSetup()
|
|
224
214
|
if (setup.live) {
|
|
225
215
|
return runLiveEntity(setup, ${JSON.stringify(entity)}, ${JSON.stringify(basicflow)}, '${nom(entity, 'Name')}')
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cmp, File, Content, entityCollection, envName, serverVariables, serverVarEnv } from '@voxgig/sdkgen'
|
|
1
|
+
import { cmp, File, Content, entityCollection, envName, serverVariables, serverVarEnv, liveHint, pointFacts } from '@voxgig/sdkgen'
|
|
2
2
|
import { nom } from '@voxgig/apidef'
|
|
3
3
|
|
|
4
4
|
const TestLive = cmp(function TestLive(props: any) {
|
|
@@ -8,11 +8,18 @@ const TestLive = cmp(function TestLive(props: any) {
|
|
|
8
8
|
if (entity.active === false) continue
|
|
9
9
|
for (const [op, operation] of Object.entries(entity.op || {}) as any[]) {
|
|
10
10
|
for (const point of operation.points || []) {
|
|
11
|
-
|
|
11
|
+
// Only what the runner reads; see the ts component.
|
|
12
|
+
const all: any = pointFacts(props.ctx$, point)
|
|
13
|
+
const facts: any = {
|
|
14
|
+
live: liveHint(point),
|
|
15
|
+
security: all.security,
|
|
16
|
+
securitySource: all.securitySource,
|
|
17
|
+
responses: all.responses,
|
|
18
|
+
}
|
|
12
19
|
if (model.main.kit.info?.auth === false) facts.security = []
|
|
13
20
|
const same = operation.points.filter((p: any) => JSON.stringify(p.select || {}) === JSON.stringify(point.select || {}))
|
|
14
21
|
plan.push({ entity: entity.name, accessor: nom(entity, 'Name'), op,
|
|
15
|
-
id: point.contract?.id || point.method + ' ' + point.orig, contractVersion: point.contract?.version, kind: point.kind, graphql: point.graphql, path: point.orig, method: point.method,
|
|
22
|
+
id: point.contract?.id || point.method + ' ' + point.orig, contractVersion: point.contract?.version ?? 1, kind: point.kind, graphql: point.graphql, path: point.orig, method: point.method,
|
|
16
23
|
action: point.select?.$action, rename: point.rename, args: point.args, facts, reachable: same.length === 1 })
|
|
17
24
|
}
|
|
18
25
|
}
|
|
@@ -15,35 +15,12 @@ import {
|
|
|
15
15
|
} from '@voxgig/struct'
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
// --- Model-driven example literals -----------------------------------------
|
|
19
|
-
// Doc snippets must use example values whose TYPE matches the generated
|
|
20
|
-
// types, or the snippet misrepresents the API. The id/match params of
|
|
21
|
-
// load/remove/update are the common trap: their generated
|
|
22
|
-
// `<Name><Op>Match` / `<Name><Op>Data` type is built from the op's params
|
|
23
|
-
// (see EntityTypes_js.ts), so a numeric id shown as a quoted string is
|
|
24
|
-
// wrong. These helpers derive the example literal from the SAME model
|
|
25
|
-
// source, so the docs and the generated types can never disagree.
|
|
26
18
|
|
|
27
19
|
// The declared canon-type sentinel of a named parameter of an op — looked up
|
|
28
20
|
// in the op's `points[].args.params[]` exactly as the typed-model generator
|
|
29
21
|
// does. Falls back to the entity field of the same name (used when the op
|
|
30
22
|
// has no params). Returns undefined when neither is present.
|
|
31
23
|
function paramCanonType(entity: any, op: any, paramName: string): unknown {
|
|
32
|
-
// opParams, NOT a raw walk of op.points.
|
|
33
|
-
//
|
|
34
|
-
// opParams drops points flagged with select['$action'] and merges what is
|
|
35
|
-
// left; the typed-model generator reaches the op's params through it, so
|
|
36
|
-
// anything else is a DIFFERENT set of params wearing the same name.
|
|
37
|
-
//
|
|
38
|
-
// A raw walk returned the first match on ANY point, action points included.
|
|
39
|
-
// github's `action` entity has a field `owner` (`$OBJECT`, "A GitHub user")
|
|
40
|
-
// and seven create points whose path carries `{owner}` (a string) — so the
|
|
41
|
-
// type said Record<string, any> and the doc example said 'example_owner',
|
|
42
|
-
// and ts/README.md stopped compiling. Same for workflow_id: `number` in the
|
|
43
|
-
// type, quoted string in the example.
|
|
44
|
-
//
|
|
45
|
-
// Deriving from opParams is what actually makes good on the promise below —
|
|
46
|
-
// that the docs and the generated types cannot disagree.
|
|
47
24
|
const params = op ? each(opParams(op)) : []
|
|
48
25
|
const found = (params as any[]).find((p: any) => p && p.name === paramName)
|
|
49
26
|
if (found) {
|
|
@@ -55,11 +32,6 @@ function paramCanonType(entity: any, op: any, paramName: string): unknown {
|
|
|
55
32
|
}
|
|
56
33
|
|
|
57
34
|
|
|
58
|
-
// A type-correct example literal for a named match/data parameter of an op,
|
|
59
|
-
// derived entirely from the model. INTEGER/NUMBER render as the bare number
|
|
60
|
-
// `1`, BOOLEAN as `true`, ARRAY as the empty `[]` and OBJECT as the empty
|
|
61
|
-
// `{}`, everything else (STRING, unknown, missing) as the quoted
|
|
62
|
-
// `placeholder`.
|
|
63
35
|
function exampleValue(entity: any, op: any, paramName: string, placeholder: string): string {
|
|
64
36
|
// canonScalarKey, not canonKey: a nullable field's sentinel is the union
|
|
65
37
|
// ['`$ONE`', ['`$NUMBER`','`$NULL`']], which canonKey stringifies into
|
|
@@ -105,17 +77,14 @@ function formatJson(obj: any, flags?: { line?: boolean, margin?: number }): stri
|
|
|
105
77
|
let json: string
|
|
106
78
|
|
|
107
79
|
if (flags?.line) {
|
|
108
|
-
// One line with spaces for clarity
|
|
109
80
|
json = JSON.stringify(obj)
|
|
110
81
|
.replace(/([{:\[,])/g, '$1 ')
|
|
111
82
|
.replace(/([}\]])/g, ' $1')
|
|
112
83
|
}
|
|
113
84
|
else {
|
|
114
|
-
// Pretty printed with 2-space indentation
|
|
115
85
|
json = JSON.stringify(obj, null, 2)
|
|
116
86
|
}
|
|
117
87
|
|
|
118
|
-
// Add margin to the left of every line
|
|
119
88
|
if (marginSize > 0) {
|
|
120
89
|
json = json.split('\n').map(line => marginStr + line).join('\n')
|
|
121
90
|
}
|
|
@@ -124,41 +93,14 @@ function formatJson(obj: any, flags?: { line?: boolean, margin?: number }): stri
|
|
|
124
93
|
}
|
|
125
94
|
|
|
126
95
|
|
|
127
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
128
|
-
//
|
|
129
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
130
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
131
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
132
|
-
// payload — see CONFIG_DEFAULT.
|
|
133
|
-
//
|
|
134
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
135
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
136
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
137
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
138
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
139
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
140
|
-
//
|
|
141
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
142
|
-
// `active` means something different in feature config, where absent reads as
|
|
143
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
144
|
-
// disable the feature.
|
|
145
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
146
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
147
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
148
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
149
96
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
150
97
|
|
|
151
|
-
// Keys whose value IS the default the runtime already assumes when the key is
|
|
152
|
-
// absent, so emitting them is pure payload.
|
|
153
98
|
const CONFIG_DEFAULT: Record<string, any> = {
|
|
154
99
|
active: true,
|
|
155
100
|
req: false,
|
|
156
101
|
reqd: false,
|
|
157
102
|
}
|
|
158
103
|
|
|
159
|
-
// Subtrees carrying user payload rather than schema. An active:true inside an
|
|
160
|
-
// OpenAPI example is DATA, not a default, so default-pruning stops at these
|
|
161
|
-
// keys and everything below them is passed through untouched.
|
|
162
104
|
const PAYLOAD_KEYS = ['default', 'example', 'examples']
|
|
163
105
|
|
|
164
106
|
function clean(o: any, dropDefaults?: boolean): any {
|
|
@@ -40,9 +40,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
40
40
|
const kotlinpackage = kotlinPackage(model)
|
|
41
41
|
|
|
42
42
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
43
|
-
// Gated by the applicability tags, so this target never imports or
|
|
44
|
-
// registers a feature it has no source for. One rule, one place:
|
|
45
|
-
// helpers/applicability.
|
|
46
43
|
const feature = targetFeatures(model, target)
|
|
47
44
|
|
|
48
45
|
const headers = getModelPath(model, `main.${KIT}.config.headers`) || {}
|
|
@@ -50,24 +47,12 @@ const Config = cmp(async function Config(props: any) {
|
|
|
50
47
|
const authActive = isAuthActive(model)
|
|
51
48
|
const authPrefix = resolveAuthPrefix(model)
|
|
52
49
|
const authBasic = isHttpBasicAuth(model)
|
|
53
|
-
// `in` and `name` travel with the prefix now. apidef resolved both all
|
|
54
|
-
// along, into main.kit.info.security, and this emitter dropped them - so
|
|
55
|
-
// an apiKey-in-query API got an Authorization header it does not read.
|
|
56
|
-
// The generated utility/PrepareAuth.kt is built from the same two values.
|
|
57
|
-
//
|
|
58
|
-
// Emitted only when they DIFFER from the defaults, so a
|
|
59
|
-
// header/Authorization SDK's Config.kt is byte-identical to what it
|
|
60
|
-
// generated before.
|
|
61
50
|
const authIn = resolveAuthIn(model)
|
|
62
51
|
const authName = resolveAuthName(model)
|
|
63
52
|
|
|
64
53
|
let baseUrl = ''
|
|
65
54
|
try { baseUrl = getModelPath(model, `main.${KIT}.info.servers.0.url`) } catch (_e) { }
|
|
66
55
|
|
|
67
|
-
// Identity comes from configDefinition's def, not re-derived here, so
|
|
68
|
-
// this target cannot disagree with the shared emitter on main.slug /
|
|
69
|
-
// main.version / main.target (the three station descriptor fields,
|
|
70
|
-
// station design §4) — passing target.name is what opts this target in.
|
|
71
56
|
const { def: configDef } = configDefinition(model, target.name)
|
|
72
57
|
|
|
73
58
|
// The feature block comes from configDefinition's def, not from
|
|
@@ -101,48 +86,17 @@ const Config = cmp(async function Config(props: any) {
|
|
|
101
86
|
options.headers = headers
|
|
102
87
|
options.entity = optionsEntity
|
|
103
88
|
|
|
104
|
-
// configDefinition's `def.entity` verbatim, NOT rebuilt here. This reduce
|
|
105
|
-
// was one of fourteen copies of that function's entityDefs loop, and when
|
|
106
|
-
// configDefinition started reconstructing a point's `parts` from apidef's
|
|
107
|
-
// segment vector (its ADR-003), only the copies that read `configDef` got
|
|
108
|
-
// it — this target's literal config emitted paths with no parts at all
|
|
109
|
-
// while its data config had them. One rule, one place.
|
|
110
89
|
const entityConfig = configDef.entity
|
|
111
90
|
|
|
112
|
-
// THE PLUGIN DEFINITIONS the model selected, per feature.
|
|
113
|
-
//
|
|
114
|
-
// sekreto's contract since the registry was retired: a kind not passed
|
|
115
|
-
// in `plugins` is unknown to that Sekreto, so the model's choice of
|
|
116
|
-
// plugin groups IS the SDK's provider vocabulary. This walks the
|
|
117
|
-
// catalogue's active `plugin.def.kotlin` entries and hands the list to
|
|
118
|
-
// the feature through `Config.featurePlugins`.
|
|
119
|
-
//
|
|
120
|
-
// Kotlin's Definition symbols are PLAIN TOP-LEVEL VALS
|
|
121
|
-
// (`val hashicorp: Definition = providerplugin("hashicorp") {...}`), so
|
|
122
|
-
// the def key is the val name and the import is that name qualified by
|
|
123
|
-
// the file's package - DERIVED from the def path (`feature/secrets/
|
|
124
|
-
// sekreto/plugins/Hashicorp.kt` -> `feature.secrets.sekreto.plugins`)
|
|
125
|
-
// rather than hardcoding `secrets`, exactly as the go emitter does.
|
|
126
|
-
//
|
|
127
|
-
// Emitted in core, which already names KOTLINPACKAGE.feature classes in
|
|
128
|
-
// makeFeature - Kotlin has no package-cycle rule, so nothing here can
|
|
129
|
-
// introduce one. The feature reads it back as List<Any?> and filters by
|
|
130
|
-
// type, so a tree with the feature present but no group selected still
|
|
131
|
-
// compiles with no import at all.
|
|
132
91
|
const pluginImports = new Set<string>()
|
|
133
92
|
const featurePlugins: Record<string, string[]> = {}
|
|
134
93
|
|
|
135
94
|
each(feature, (f: any) => {
|
|
136
95
|
const syms: string[] = []
|
|
137
96
|
each(f.plugin, (plugin: any) => {
|
|
138
|
-
// Filter on `active` HERE rather than trusting the feature object to
|
|
139
|
-
// arrive filtered: getting this wrong emits an import for a file the
|
|
140
|
-
// plugin trim just deleted, and the SDK does not compile.
|
|
141
97
|
if (false === plugin.active || null == plugin.active) return
|
|
142
98
|
for (const [sym, one] of Object.entries(plugin.def?.kotlin || {})) {
|
|
143
99
|
const dir = String(one).replace(/\/[^/]+$/, '').replace(/\//g, '.')
|
|
144
|
-
// A dotted symbol (another language's class-qualified spelling)
|
|
145
|
-
// imports its HEAD; kotlin's own keys are bare val names.
|
|
146
100
|
pluginImports.add(
|
|
147
101
|
kotlinpackage + '.' + dir + '.' + String(sym).split('.')[0])
|
|
148
102
|
syms.push(sym)
|
|
@@ -29,8 +29,6 @@ const EntityOperation = cmp(function Operation(props: any) {
|
|
|
29
29
|
EntityName: entity.Name,
|
|
30
30
|
entityname: entity.name,
|
|
31
31
|
|
|
32
|
-
// Class tokens are decoupled from the EntityName data-type token so the
|
|
33
|
-
// class can be renamed independently (collision handling).
|
|
34
32
|
EntyClass: cls,
|
|
35
33
|
|
|
36
34
|
'#Feature-Hook': ({ name, indent }: any) =>
|
|
@@ -1,38 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
// Typed-model generator (Kotlin target). Port of EntityTypes_java.ts /
|
|
3
|
-
// EntityTypes_py.ts.
|
|
4
|
-
//
|
|
5
|
-
// Reads main.<KIT>.entity.<e>.fields[] and per-op params
|
|
6
|
-
// (op.<name>.points[].args.params[]) and emits ONE file, core/<Name>Types.kt,
|
|
7
|
-
// holding a container `object <Name>Types` with a nested `data class` per
|
|
8
|
-
// active entity plus a request/match type per active op.
|
|
9
|
-
//
|
|
10
|
-
// WHY A CONTAINER OBJECT: parity with the java/csharp emitters — every
|
|
11
|
-
// generated reference type lives inside a single `object <Name>Types`, so the
|
|
12
|
-
// whole reference model is in one file (<Name>Types.kt) whatever the entity
|
|
13
|
-
// count. Kotlin has no one-public-type-per-file rule, but the single-file
|
|
14
|
-
// convention is kept for cross-language consistency.
|
|
15
|
-
//
|
|
16
|
-
// TYPE CHOICE: reference types with BOXED (nullable) component types, NOT the
|
|
17
|
-
// wired runtime type. The generated ops take/return the loose object model
|
|
18
|
-
// (MutableMap<String, Any?> / Any?), so these types are NOT wired into the op
|
|
19
|
-
// signatures — they are documentation/DX reference shapes a caller may use to
|
|
20
|
-
// describe a payload before converting it to a map. This mirrors the JS
|
|
21
|
-
// target's JSDoc typedefs (annotation only, no runtime effect). Emitting unused
|
|
22
|
-
// types is harmless — they compile and have no runtime effect.
|
|
23
|
-
//
|
|
24
|
-
// OPTIONAL FIELDS: every component is a nullable reference type, so a
|
|
25
|
-
// `req:false` field/param needs no distinct rendering in Kotlin.
|
|
26
|
-
//
|
|
27
|
-
// EMPTY SHAPES: Kotlin forbids a `data class` with zero components, so an
|
|
28
|
-
// empty shape is emitted as a plain marker `class <Name>` instead.
|
|
29
|
-
//
|
|
30
|
-
// Sentinels map to Kotlin types via the SHARED canonToType 'kotlin' column
|
|
31
|
-
// (the single source of truth per language — do not keep a local table here).
|
|
32
|
-
//
|
|
33
|
-
// Keep the SAME type-name scheme as every other language: <Name>,
|
|
34
|
-
// <Name>LoadMatch, <Name>ListMatch, <Name>CreateData, <Name>UpdateData,
|
|
35
|
-
// <Name>RemoveMatch (via the shared opTypeName helper).
|
|
36
2
|
|
|
37
3
|
import {
|
|
38
4
|
cmp, each, names,
|
|
@@ -58,9 +24,6 @@ const KOTLIN_KEYWORDS = new Set<string>([
|
|
|
58
24
|
])
|
|
59
25
|
|
|
60
26
|
|
|
61
|
-
// A field/param name that has a safe Kotlin identifier rendering. Names that
|
|
62
|
-
// are not valid identifiers (hyphens, leading digits) have no clean component
|
|
63
|
-
// form and are skipped — they remain reachable via the runtime map.
|
|
64
27
|
function kotlinIdent(name: string): boolean {
|
|
65
28
|
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(name) && !KOTLIN_KEYWORDS.has(name)
|
|
66
29
|
}
|
|
@@ -69,12 +32,6 @@ function kotlinIdent(name: string): boolean {
|
|
|
69
32
|
const LANG = 'kotlin'
|
|
70
33
|
|
|
71
34
|
|
|
72
|
-
// Emit a nested `data class <typeName>(...)` from {name, type} items. An item
|
|
73
|
-
// whose name is not a legal identifier is skipped (WITH a warning — the key
|
|
74
|
-
// stays reachable via the runtime map, but its absence from the typed model
|
|
75
|
-
// should be visible, not silent); a duplicate component name (after the
|
|
76
|
-
// identifier filter) is dropped. An empty shape becomes a plain marker
|
|
77
|
-
// `class <typeName>` (Kotlin forbids a zero-component data class).
|
|
78
35
|
function emitRecord(typeName: string, items: any[], log?: any): void {
|
|
79
36
|
const seen = new Set<string>()
|
|
80
37
|
const usable = items.filter((it: any) => {
|
|
@@ -122,10 +79,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
122
79
|
|
|
123
80
|
const kotlinpackage = props.kotlinpackage || kotlinPackage(model)
|
|
124
81
|
|
|
125
|
-
// only_active:false — getModelPath DROPS active:false entries by default,
|
|
126
|
-
// but the consumer scaffold (create-sdkgen Root.ts) iterates the RAW entity
|
|
127
|
-
// collection, so inactive entities still get generated entity code that
|
|
128
|
-
// references these typed names. The typed model must cover them too.
|
|
129
82
|
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
130
83
|
// Emit for EVERY entity that gets generated entity code: the consumer
|
|
131
84
|
// scaffold (create-sdkgen Root.ts) iterates entities WITHOUT an active
|
|
@@ -137,9 +90,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
137
90
|
// entity not yet named (e.g. a fieldless placeholder) would otherwise read
|
|
138
91
|
// `Name = undefined` below. Parity with the go/py/csharp/java emitter's fix.
|
|
139
92
|
|
|
140
|
-
// Surface duplicate generated type names (two entities with the same
|
|
141
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
142
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
143
93
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
144
94
|
|
|
145
95
|
File({ name: model.const.Name + 'Types.' + ext }, () => {
|
|
@@ -169,13 +119,10 @@ object ${model.const.Name}Types {
|
|
|
169
119
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
170
120
|
.filter((f: any) => f.active !== false)
|
|
171
121
|
|
|
172
|
-
// Entity data model: one component per field.
|
|
173
122
|
emitRecord(Name, fields.map((f: any) => ({
|
|
174
123
|
name: f.name, type: f.type,
|
|
175
124
|
})), log)
|
|
176
125
|
|
|
177
|
-
// Per active op: a request/match type. Members come from the shared
|
|
178
|
-
// partiality policy (opRequestShape).
|
|
179
126
|
const ops = ent.op || {}
|
|
180
127
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
181
128
|
if (null == ops[opname]) {
|
|
@@ -43,10 +43,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
43
43
|
|
|
44
44
|
const opnames = Object.keys(entity.op || {})
|
|
45
45
|
|
|
46
|
-
// For each CRUD op: if the spec defines it, splice in the real
|
|
47
|
-
// implementation. Otherwise emit a stub that satisfies the SdkEntity
|
|
48
|
-
// interface (so the package compiles) but errors at runtime if the
|
|
49
|
-
// caller invokes an unsupported op.
|
|
50
46
|
const opfrags =
|
|
51
47
|
(['load', 'list', 'create', 'update', 'remove']
|
|
52
48
|
.reduce((a: any, opname: string) =>
|
|
@@ -51,62 +51,17 @@ const Main = cmp(async function Main(props: any) {
|
|
|
51
51
|
// token used throughout the templates (package/import statements).
|
|
52
52
|
Copy({
|
|
53
53
|
from: 'tm/' + target.name,
|
|
54
|
-
// pluginExcludes: the generate-time plugin trim (an INACTIVE plugin
|
|
55
|
-
// group's declared files stay out of the tree - the model's `path`
|
|
56
|
-
// entries are target-root-relative, which is this Copy's root). Without
|
|
57
|
-
// it every plugin group ships regardless of the model and the def maps
|
|
58
|
-
// decide nothing; an exclude that matches nothing is indistinguishable
|
|
59
|
-
// from no exclude at all, which is how this went wrong before.
|
|
60
54
|
exclude: [/src\//, TEST_CONTROL_EXCLUDE, ...pluginExcludes(model)],
|
|
61
55
|
replace: {
|
|
62
56
|
...props.ctx$.stdrep,
|
|
63
57
|
KOTLINPACKAGE: kotlinpackage,
|
|
64
58
|
|
|
65
|
-
// The vendored sekreto port carries upstream's own package root, and
|
|
66
|
-
// a generated SDK must not publish classes in it: a Maven artifact
|
|
67
|
-
// declaring `com.voxgig.sekreto` collides with the real library on
|
|
68
|
-
// any consumer classpath. It would not COMPILE either - the vendor
|
|
69
|
-
// route's `adapt` for this library matches only Sekreto.kt and
|
|
70
|
-
// Support.kt, so the other fifteen sekreto files still declare
|
|
71
|
-
// `package com.voxgig.sekreto` while those two moved, and every
|
|
72
|
-
// cross-file reference is unresolved.
|
|
73
|
-
//
|
|
74
|
-
// Done HERE, the way Main_go rewrites the placeholder
|
|
75
|
-
// `github.com/voxgig/struct` import, because this Copy is the one
|
|
76
|
-
// seam every vendored file crosses on its way into an SDK. It is a
|
|
77
|
-
// NO-OP for a file the vendor route already rewrote, so widening
|
|
78
|
-
// that route's `adapt.match` to the whole `feature/secrets/`
|
|
79
|
-
// directory simply retires this line.
|
|
80
|
-
//
|
|
81
|
-
// (The sibling `voxgig.plugin` rewrite is NOT needed: that route's
|
|
82
|
-
// adapt already matches the whole `feature/secrets/plugin/` tree,
|
|
83
|
-
// and the token appears nowhere in tm/kotlin. A replace that matches
|
|
84
|
-
// nothing is indistinguishable from no replace at all, so it is not
|
|
85
|
-
// carried "just in case".)
|
|
86
59
|
'com.voxgig.sekreto': kotlinpackage + '.feature.secrets.sekreto',
|
|
87
60
|
}
|
|
88
61
|
})
|
|
89
62
|
|
|
90
|
-
// Shared entity runtime (entity/EntityBase.kt).
|
|
91
63
|
EntityBase({ target })
|
|
92
64
|
|
|
93
|
-
// utility/PrepareAuth.kt. GENERATED, NOT COPIED: where the credential
|
|
94
|
-
// goes - header, query parameter or cookie, under the name the spec gives
|
|
95
|
-
// - is a fact about the API, and tm/ can only hold one answer. It was
|
|
96
|
-
// embedded in tm/kotlin/utility/Prepare.kt among the other prepare*
|
|
97
|
-
// helpers, hardcoding an `authorization` header; that one function has
|
|
98
|
-
// moved out into its own compilation unit in the same package, so
|
|
99
|
-
// Register.kt's `u.prepareAuth = ::prepareAuth` binds it unchanged.
|
|
100
|
-
//
|
|
101
|
-
// Called HERE, at Main's TOP LEVEL, and deliberately NOT inside the
|
|
102
|
-
// `core` Folder below. The kotlin tree is FLAT: build.gradle.kts declares
|
|
103
|
-
// core/, utility/, feature/ and entity/ as four sibling source roots, and
|
|
104
|
-
// the Copy above lands tm/kotlin/utility/* at <out>/utility/. The
|
|
105
|
-
// component opens `utility` itself, exactly as EntityBase opens `entity`.
|
|
106
|
-
// Nested in `core` it would write core/utility/PrepareAuth.kt - which
|
|
107
|
-
// still COMPILES, because core/ is scanned recursively and the package
|
|
108
|
-
// declaration is what resolves the symbol, so the misfiling would be
|
|
109
|
-
// invisible to every check. See PrepareAuth_kotlin.
|
|
110
65
|
PrepareAuth({ target })
|
|
111
66
|
|
|
112
67
|
// Generate the client class and config in core/.
|
|
@@ -126,7 +81,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
126
81
|
}
|
|
127
82
|
},
|
|
128
83
|
|
|
129
|
-
// Entities - injected at SLOT
|
|
130
84
|
() => {
|
|
131
85
|
each(entity, (entity: ModelEntity) => {
|
|
132
86
|
const entitySDK = getModelPath(model, `main.${KIT}.entity.${entity.name}`)
|