@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
|
@@ -16,28 +16,6 @@ import {
|
|
|
16
16
|
} from '@voxgig/apidef'
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
// WHERE THE CREDENTIAL GOES IS A FACT ABOUT THE API, so it is generated
|
|
20
|
-
// rather than templated.
|
|
21
|
-
//
|
|
22
|
-
// This was a static file at `tm/rb/utility/prepare_auth.rb` that hardcoded
|
|
23
|
-
// `HEADER_AUTH = "authorization"`. apidef has always resolved the scheme's
|
|
24
|
-
// `in` and `name` into `main.kit.info.security` — joplin's says
|
|
25
|
-
// `in: "query", name: "token"` — and generation dropped both. The result
|
|
26
|
-
// was an SDK that sent a header the API does not read and never sent the
|
|
27
|
-
// query parameter it does, so it could not authenticate at all. Four repos
|
|
28
|
-
// in the cedar fleet shipped that way: joplin (`token`), pipedrive
|
|
29
|
-
// (`api_token`), trello (`key`), lm-umbrella (`apiKey`).
|
|
30
|
-
//
|
|
31
|
-
// A template cannot fix this, because the three placements need three
|
|
32
|
-
// different bodies and a template has to pick one. A component emits the
|
|
33
|
-
// branch this API actually uses and nothing else — no dead query code in a
|
|
34
|
-
// bearer-token SDK, and no runtime `if` on a value that is fixed at
|
|
35
|
-
// generation time.
|
|
36
|
-
//
|
|
37
|
-
// The ts port is the reference (cmp/ts/PrepareAuth_ts.ts). Two things are
|
|
38
|
-
// deliberately NOT the same here, both recorded at their site below: the
|
|
39
|
-
// header name is lower-cased, and the cookie clear removes our own pair
|
|
40
|
-
// instead of a header that was never set.
|
|
41
19
|
const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
42
20
|
const { target } = props
|
|
43
21
|
const { model } = props.ctx$
|
|
@@ -47,17 +25,6 @@ const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
|
47
25
|
const name = resolveAuthName(model)
|
|
48
26
|
const basic = isHttpBasicAuth(model)
|
|
49
27
|
|
|
50
|
-
// RB'S LAYOUT IS FLAT, WHICH IS WHY THIS FOLDER IS OPENED HERE AND THE TS
|
|
51
|
-
// PORT OPENS NONE. In ts, Main wraps its whole body in
|
|
52
|
-
// `Folder({name:'src'})` and the utilities live at `src/utility/`, so a
|
|
53
|
-
// second `src` there would write `src/src/utility/`. Main_rb opens no such
|
|
54
|
-
// folder: `Package`, `Gitignore`, the SDK file and `Copy({from:'tm/rb'})`
|
|
55
|
-
// all land at the target root, and `Config` sits inside a `Folder({name:
|
|
56
|
-
// '.'})` that is the root too. The template this replaces was
|
|
57
|
-
// `tm/rb/utility/prepare_auth.rb`, and that Copy's root IS the target root,
|
|
58
|
-
// so the file it produced was `<root>/utility/prepare_auth.rb`. One folder,
|
|
59
|
-
// `utility`, reproduces exactly that path — and register.rb's
|
|
60
|
-
// `require_relative 'prepare_auth'` (from `utility/`) only resolves there.
|
|
61
28
|
Folder({ name: 'utility' }, () => {
|
|
62
29
|
File({ name: 'prepare_auth.' + target.ext }, () => {
|
|
63
30
|
Content(render({ Name: model.const.Name, active, where, name, basic }))
|
|
@@ -101,22 +68,8 @@ end
|
|
|
101
68
|
// mean something.
|
|
102
69
|
const basicHere = spec.basic && 'header' === spec.where
|
|
103
70
|
|
|
104
|
-
// The constant keeps the template's name per placement, so a
|
|
105
|
-
// header-based SDK regenerates the file it already had.
|
|
106
71
|
const CRED = query ? 'QUERY_AUTH' : cookie ? 'COOKIE_AUTH' : 'HEADER_AUTH'
|
|
107
72
|
|
|
108
|
-
// HEADER NAMES ARE LOWER-CASED; QUERY AND COOKIE NAMES ARE NOT.
|
|
109
|
-
//
|
|
110
|
-
// `resolveAuthName` answers 'Authorization' by default, but the whole rb
|
|
111
|
-
// runtime spells header names in lower case — the template's
|
|
112
|
-
// `HEADER_AUTH = "authorization"`, secrets_feature.rb's
|
|
113
|
-
// `headers["authorization"]`, debug_feature.rb's mask list. A Ruby Hash key
|
|
114
|
-
// is case-sensitive, so emitting "Authorization" here would leave the
|
|
115
|
-
// secrets feature writing a SECOND, separate header and the copied
|
|
116
|
-
// pipeline_test.rb assertions on `headers["authorization"]` failing. HTTP
|
|
117
|
-
// header names are case-insensitive on the wire, so lower-casing costs
|
|
118
|
-
// nothing. Query parameter and cookie names ARE case-sensitive (`?Token=`
|
|
119
|
-
// is not `?token=`), so those go in verbatim.
|
|
120
73
|
const credName = query || cookie ? spec.name : spec.name.toLowerCase()
|
|
121
74
|
|
|
122
75
|
const consts =
|
|
@@ -140,10 +93,6 @@ end
|
|
|
140
93
|
: ` headers = spec.headers
|
|
141
94
|
`
|
|
142
95
|
|
|
143
|
-
// Removing OUR pair, not the whole cookie header. The ts port deletes
|
|
144
|
-
// `headers[CRED_name]` for the cookie case, which is a header nothing ever
|
|
145
|
-
// set — so a stale cookie survives a withdrawn credential there. This
|
|
146
|
-
// splits the header, drops the one pair we own, and puts the rest back.
|
|
147
96
|
const dropCookie = !cookie ? '' : `
|
|
148
97
|
# Our own pair, and only ours: another cookie the caller set survives.
|
|
149
98
|
drop_cookie = ->(hs) {
|
|
@@ -209,9 +158,6 @@ end
|
|
|
209
158
|
// The one thing that actually differs between placements: where the
|
|
210
159
|
// credential is written, and whether the prefix travels with it.
|
|
211
160
|
function place(where: string, clear: string): string {
|
|
212
|
-
// NO PREFIX IN A QUERY STRING. `?token=Bearer%20abc` is not a thing any
|
|
213
|
-
// API reads; the prefix is a header convention and is dropped here
|
|
214
|
-
// deliberately rather than silently concatenated.
|
|
215
161
|
if ('query' === where) {
|
|
216
162
|
return `
|
|
217
163
|
if apikey.nil? || (apikey.is_a?(String) && (apikey == NOT_FOUND || apikey == ""))
|
|
@@ -244,7 +190,6 @@ function place(where: string, clear: string): string {
|
|
|
244
190
|
`
|
|
245
191
|
}
|
|
246
192
|
|
|
247
|
-
// HEADER: the template's body, unchanged.
|
|
248
193
|
return `
|
|
249
194
|
if apikey.nil? || (apikey.is_a?(String) && (apikey == NOT_FOUND || apikey == ""))
|
|
250
195
|
${clear}
|
|
@@ -259,30 +204,6 @@ function place(where: string, clear: string): string {
|
|
|
259
204
|
}
|
|
260
205
|
|
|
261
206
|
|
|
262
|
-
// NOT `isAuthActive`, AND THE DIFFERENCE IS LOAD-BEARING (the py port found
|
|
263
|
-
// this first; same reasoning, same fix).
|
|
264
|
-
//
|
|
265
|
-
// `isAuthActive` is false whenever the SPEC declares no security scheme
|
|
266
|
-
// (`main.kit.info.auth: false`). That is a statement about the DEFINITION,
|
|
267
|
-
// not a ban on ever sending a credential: apidef writes it for every spec
|
|
268
|
-
// with no securitySchemes block, and those SDKs are still expected to honour
|
|
269
|
-
// an `apikey` the caller passes. The template placed the credential
|
|
270
|
-
// unconditionally, so they did.
|
|
271
|
-
//
|
|
272
|
-
// Gating the body on `isAuthActive` therefore does not trim dead code, it
|
|
273
|
-
// deletes working authentication. MEASURED, not assumed: with the wider gate
|
|
274
|
-
// this component emitted the no-op for generatedcompile's own fixture
|
|
275
|
-
// (`main: kit: info: { ... auth: false }`) and two running rb lanes went red
|
|
276
|
-
// —
|
|
277
|
-
//
|
|
278
|
-
// rb: auth null beats an explicit apikey
|
|
279
|
-
// FAIL: baseline broken: an ordinary apikey was not sent
|
|
280
|
-
// rb: the secrets feature runs with the feature active
|
|
281
|
-
// expected the authorization header to carry OPTKEY01, got: nil
|
|
282
|
-
//
|
|
283
|
-
// So the no-op is emitted only when the PROJECT says so: `config.auth.active:
|
|
284
|
-
// false`, an explicit per-SDK switch nobody sets by accident. A spec that is
|
|
285
|
-
// merely silent keeps the credential path it has always had.
|
|
286
207
|
function authSwitchedOn(model: any): boolean {
|
|
287
208
|
const auth = getModelPath(model, `main.${KIT}.config.auth`,
|
|
288
209
|
{ only_active: false, required: false })
|
|
@@ -290,8 +211,6 @@ function authSwitchedOn(model: any): boolean {
|
|
|
290
211
|
}
|
|
291
212
|
|
|
292
213
|
|
|
293
|
-
// A Ruby double-quoted literal. `#` is escaped only where it would OPEN an
|
|
294
|
-
// interpolation, matching utility_rb.formatRubyValue.
|
|
295
214
|
function rbstr(s: string): string {
|
|
296
215
|
return '"' + String(s)
|
|
297
216
|
.replace(/\\/g, '\\\\')
|
|
@@ -7,9 +7,6 @@ import {
|
|
|
7
7
|
} from '@voxgig/apidef'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
// A type-correct Ruby literal for a field's canonical type — the create body
|
|
11
|
-
// is EXECUTED by the doc test, so it must carry a real value per field.
|
|
12
|
-
// Strings render the quoted placeholder.
|
|
13
10
|
function rbLit(type: any, placeholder: string = 'example'): string {
|
|
14
11
|
const k = canonScalarKey(type)
|
|
15
12
|
if ('INTEGER' === k || 'NUMBER' === k) return '1'
|
|
@@ -54,7 +51,6 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
54
51
|
publishedEntities.map((entity: any) => {
|
|
55
52
|
const opnames = Object.keys(entity.op || {})
|
|
56
53
|
const fields = entity.fields || []
|
|
57
|
-
// Model-driven id key: null when this entity has no id-like field.
|
|
58
54
|
const idF = entityIdField(entity)
|
|
59
55
|
// Sanitise the local variable name — an entity whose lowercased name is a
|
|
60
56
|
// Ruby keyword (e.g. `self`) would otherwise emit uncompilable code.
|
|
@@ -111,9 +107,6 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
111
107
|
}
|
|
112
108
|
|
|
113
109
|
if (opnames.includes('load')) {
|
|
114
|
-
// The id key plus every REQUIRED match key (parent path params like
|
|
115
|
-
// page_id) — the same shape the runtime resolves path params from, so
|
|
116
|
-
// the example always works.
|
|
117
110
|
const loadItems = opRequestShape(entity, 'load').items
|
|
118
111
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
119
112
|
.sort((a: any, b: any) =>
|
|
@@ -7,38 +7,6 @@ import {
|
|
|
7
7
|
} from '@voxgig/apidef'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
// Emits test/readme_examples_test.rb — a Minitest COMPLETENESS GATE that
|
|
11
|
-
// guarantees every fenced ruby code example in the package docs is unit-tested.
|
|
12
|
-
// It reads ALL THREE docs — the root (multi-language) ../../README.md, the
|
|
13
|
-
// Ruby-specific ../README.md, and ../REFERENCE.md — extracts every fenced ruby
|
|
14
|
-
// block (tagged by source doc + index) and enforces four properties:
|
|
15
|
-
//
|
|
16
|
-
// 1. SYNTAX — `ruby -c` on every block. Every documented example must parse.
|
|
17
|
-
// 2. RUN — every RUNNABLE block (one that constructs the SDK, drives
|
|
18
|
-
// client., or performs an entity op) is EXECUTED offline in seeded test
|
|
19
|
-
// mode against the real SDK. The captured stdout+stderr is scanned for
|
|
20
|
-
// FATAL programming-error markers REGARDLESS of exit code, so a bug that a
|
|
21
|
-
// documented begin/rescue swallows and prints is still caught. Only a
|
|
22
|
-
// not-found / domain error is tolerated.
|
|
23
|
-
// 3. COMPLETENESS — every block is partitioned into exactly one of
|
|
24
|
-
// {executed, syntaxchecked-nonrunnable, illustration} and the counts must
|
|
25
|
-
// sum to the total. "illustration" is a NARROW explicit class (a
|
|
26
|
-
// signature / method-table block that names the SDK class or a documented
|
|
27
|
-
// method but never uses a live client) — never a catch-all. A
|
|
28
|
-
// runnable-looking block that was NOT executed lands in neither bucket and
|
|
29
|
-
// FAILS the gate: no runnable example can be silently skipped.
|
|
30
|
-
// 4. A per-doc summary (total / executed / syntaxchecked / illustration) is
|
|
31
|
-
// printed.
|
|
32
|
-
//
|
|
33
|
-
// A runnable block is rewritten so its client is a test-mode client
|
|
34
|
-
// (<Sdk>SDK.test) seeded with an in-memory fixture for every entity it
|
|
35
|
-
// references; any real .new/.test constructor is rewritten and the doc's own
|
|
36
|
-
// require of the SDK file is stripped (we require it by absolute path). A block
|
|
37
|
-
// that only *uses* `client` (constructed in an earlier fenced block) gets a
|
|
38
|
-
// test client prepended.
|
|
39
|
-
//
|
|
40
|
-
// The emitted Ruby builds the ``` fence via 96.chr and shells out via Open3,
|
|
41
|
-
// so this generator string contains no backticks of its own.
|
|
42
10
|
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
43
11
|
const { target } = props
|
|
44
12
|
const { model } = props.ctx$
|
|
@@ -8,7 +8,6 @@ import {
|
|
|
8
8
|
} from '@voxgig/apidef'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
// A type-correct Ruby literal for a field's canonical type.
|
|
12
11
|
function rbLit(type: any): string {
|
|
13
12
|
const k = canonScalarKey(type)
|
|
14
13
|
if ('INTEGER' === k || 'NUMBER' === k) return '1'
|
|
@@ -23,9 +22,6 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
23
22
|
const { target, ctx$: { model } } = props
|
|
24
23
|
|
|
25
24
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
26
|
-
// Pick an entity with a real op (prefer a read op) — never fabricate a
|
|
27
|
-
// `load` on an op-less entity like Cloudsmith's `Abort`. primaryOp is null
|
|
28
|
-
// only when NO entity exposes any op (a direct()-only SDK).
|
|
29
25
|
const { entity: exampleEntity, primaryOp } = pickExampleEntity(entity)
|
|
30
26
|
const eName = exampleEntity ? nom(exampleEntity, 'Name') : 'Entity'
|
|
31
27
|
// Sanitise the local variable name — an entity whose lowercased name is a
|
|
@@ -33,9 +29,6 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
33
29
|
// fixture KEY (`"${eName.toLowerCase()}"`) stays raw — it must match the
|
|
34
30
|
// entity's registered name for the mock lookup to resolve.
|
|
35
31
|
const eVar = exampleVarName(eName.toLowerCase(), 'rb')
|
|
36
|
-
// Model-driven id key: null when the entity has no id-like field (a
|
|
37
|
-
// response-wrapped spec). When null the fixture seeds no id and a match op
|
|
38
|
-
// takes no argument.
|
|
39
32
|
const idF = exampleEntity ? entityIdField(exampleEntity) : null
|
|
40
33
|
const isMatchOp = 'load' === primaryOp || 'remove' === primaryOp
|
|
41
34
|
const seedSentence = idF
|
|
@@ -44,8 +37,6 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
44
37
|
const testCtor = idF
|
|
45
38
|
? `${model.const.Name}SDK.test({\n "entity" => { "${eName.toLowerCase()}" => { "test01" => { "${idF}" => "test01" } } },\n})`
|
|
46
39
|
: `${model.const.Name}SDK.test`
|
|
47
|
-
// A type-correct argument for the primary-op call: a match hash for load/
|
|
48
|
-
// remove, a required-field body for create/update, nothing for list.
|
|
49
40
|
let testCallArg = ''
|
|
50
41
|
if (exampleEntity && isMatchOp) {
|
|
51
42
|
const items = opRequestShape(exampleEntity, primaryOp).items
|
|
@@ -47,12 +47,6 @@ client = ${ctor}
|
|
|
47
47
|
// Ruby keyword (e.g. `self`) would otherwise emit uncompilable code.
|
|
48
48
|
const eVar = exampleVarName(eName.toLowerCase(), 'rb')
|
|
49
49
|
const opnames = entityOps(exampleEntity)
|
|
50
|
-
// Model-driven id keys: `idF` is the load-MATCH key (null when the entity
|
|
51
|
-
// has no id-like field — a response-wrapped spec); when null, load/remove
|
|
52
|
-
// take no argument. `dataIdF` is the id on the RETURNED record's data type —
|
|
53
|
-
// an entity can key its match on an id it does not carry as data, so both a
|
|
54
|
-
// listed record's id column and a `created["id"]` read must be guarded on
|
|
55
|
-
// this, not the match key.
|
|
56
50
|
const idF = entityIdField(exampleEntity)
|
|
57
51
|
const dataIdF = entityDataIdField(exampleEntity)
|
|
58
52
|
|
|
@@ -136,9 +130,6 @@ end
|
|
|
136
130
|
`)
|
|
137
131
|
}
|
|
138
132
|
else if (opnames.includes('load')) {
|
|
139
|
-
// Every REQUIRED load-match key (id first, then parent path params like
|
|
140
|
-
// page_id) — the same shape the runtime resolves path params from, so
|
|
141
|
-
// the example always works.
|
|
142
133
|
const loadRequired = opRequestShape(exampleEntity, 'load').items
|
|
143
134
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
144
135
|
.sort((a: any, b: any) =>
|
|
@@ -164,30 +155,18 @@ end
|
|
|
164
155
|
`)
|
|
165
156
|
}
|
|
166
157
|
|
|
167
|
-
// Model-driven example fields: derive the create/update body from the op
|
|
168
|
-
// shape (opRequestShape) so the docs reference REAL writable fields, not a
|
|
169
|
-
// hardcoded "name" the entity may not have. Literals are Ruby-typed by the
|
|
170
|
-
// field's canonical type. ids are rendered separately as the match key for
|
|
171
|
-
// update/remove; a REQUIRED create id stays (the call is invalid without
|
|
172
|
-
// it).
|
|
173
158
|
const examplePairs = (opname: string): string[] => {
|
|
174
159
|
const items = opRequestShape(exampleEntity, opname).items
|
|
175
160
|
.filter((it: any) => (it.name !== idF && it.name !== 'id') ||
|
|
176
161
|
('create' === opname && !it.optional))
|
|
177
162
|
const required = items.filter((it: any) => !it.optional)
|
|
178
163
|
const optional = items.filter((it: any) => it.optional)
|
|
179
|
-
// create needs ALL required fields; update is a patch, so the required
|
|
180
|
-
// members plus a sample optional field or two suffice.
|
|
181
164
|
const chosen = 'create' === opname
|
|
182
165
|
? (required.length ? required : items.slice(0, 2))
|
|
183
166
|
: required.concat(optional).slice(0, Math.max(2, required.length))
|
|
184
167
|
return chosen.map((it: any) => `"${it.name}" => ${rbLit(it.type, 'example_' + it.name)}`)
|
|
185
168
|
}
|
|
186
169
|
|
|
187
|
-
// The id VALUE for an update/remove match: off the returned `created`
|
|
188
|
-
// record only when its data type carries the id AND a create ran, else a
|
|
189
|
-
// type-correct literal (so an update-without-create never references an
|
|
190
|
-
// undefined `created`).
|
|
191
170
|
const idParamType = (opname: string): any => {
|
|
192
171
|
const it = opRequestShape(exampleEntity, opname).items.find((x: any) => x.name === idF)
|
|
193
172
|
return it && it.type
|
|
@@ -216,8 +195,6 @@ client.${eName}.update({ ${updatePairs.join(', ')} })
|
|
|
216
195
|
`)
|
|
217
196
|
}
|
|
218
197
|
if (opnames.includes('remove')) {
|
|
219
|
-
// Every REQUIRED remove-match key: the id (off the created record
|
|
220
|
-
// when possible) plus parent keys like page_id.
|
|
221
198
|
const removePairs = opRequestShape(exampleEntity, 'remove').items
|
|
222
199
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
223
200
|
.sort((a: any, b: any) =>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName , targetFeatures } from '@voxgig/sdkgen'
|
|
3
3
|
import { ReadmeRefFeatures } from '@voxgig/sdkgen'
|
|
4
4
|
|
|
5
5
|
import {
|
|
@@ -55,7 +55,7 @@ const ReadmeRef = cmp(function ReadmeRef(props: any) {
|
|
|
55
55
|
const { model } = props.ctx$
|
|
56
56
|
|
|
57
57
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
58
|
-
const feature =
|
|
58
|
+
const feature = targetFeatures(model, target)
|
|
59
59
|
|
|
60
60
|
const publishedEntities = each(entity).filter((e: any) => e.active !== false)
|
|
61
61
|
|
|
@@ -197,7 +197,6 @@ ${eVar} = client.${ent.Name}
|
|
|
197
197
|
`)
|
|
198
198
|
|
|
199
199
|
|
|
200
|
-
// Field schema
|
|
201
200
|
if (fields.length > 0) {
|
|
202
201
|
Content(`### Fields
|
|
203
202
|
|
|
@@ -244,7 +243,6 @@ ${eVar} = client.${ent.Name}
|
|
|
244
243
|
}
|
|
245
244
|
|
|
246
245
|
|
|
247
|
-
// Operation details
|
|
248
246
|
if (opnames.length > 0) {
|
|
249
247
|
Content(`### Operations
|
|
250
248
|
|
|
@@ -260,7 +258,6 @@ ${info.desc}
|
|
|
260
258
|
|
|
261
259
|
`)
|
|
262
260
|
|
|
263
|
-
// Show example
|
|
264
261
|
if ('load' === opname || 'remove' === opname) {
|
|
265
262
|
// The id key plus every REQUIRED match key (parent path params
|
|
266
263
|
// like page_id) — the same shape the runtime resolves path
|
|
@@ -329,7 +326,6 @@ ${updateLines} # Fields to update
|
|
|
329
326
|
}
|
|
330
327
|
|
|
331
328
|
|
|
332
|
-
// Common methods
|
|
333
329
|
Content(`### Common Methods
|
|
334
330
|
|
|
335
331
|
#### \`data_get -> Hash\`
|
|
@@ -361,7 +357,6 @@ Return the entity name.
|
|
|
361
357
|
})
|
|
362
358
|
|
|
363
359
|
|
|
364
|
-
// Features section
|
|
365
360
|
const activeFeatures = each(feature).filter((f: any) => f.active)
|
|
366
361
|
if (activeFeatures.length > 0) {
|
|
367
362
|
Content(`
|
|
@@ -397,9 +392,6 @@ client = ${model.const.Name}SDK.new({
|
|
|
397
392
|
\`\`\`
|
|
398
393
|
|
|
399
394
|
`)
|
|
400
|
-
// The shared feature reference: options, defaults, usage and the
|
|
401
|
-
// considerations. Model facts, identical in every target, so they are
|
|
402
|
-
// written once in cmp/ReadmeRefFeatures.ts rather than here.
|
|
403
395
|
ReadmeRefFeatures({ target })
|
|
404
396
|
}
|
|
405
397
|
|
|
@@ -47,8 +47,6 @@ client = ${ctor}
|
|
|
47
47
|
// Ruby keyword (e.g. `self`) would otherwise emit uncompilable code.
|
|
48
48
|
const eVar = exampleVarName(eName.toLowerCase(), 'rb')
|
|
49
49
|
const opnames = Object.keys(exampleEntity.op || {})
|
|
50
|
-
// Model-driven id key: null when the entity has no id-like field, in which
|
|
51
|
-
// case the load example takes no match argument.
|
|
52
50
|
const idF = entityIdField(exampleEntity)
|
|
53
51
|
|
|
54
52
|
let hasCall = false
|
|
@@ -62,9 +60,6 @@ puts ${eVar}s
|
|
|
62
60
|
}
|
|
63
61
|
|
|
64
62
|
if (opnames.includes('load')) {
|
|
65
|
-
// Every REQUIRED load-match key (id first, then parent path params like
|
|
66
|
-
// page_id) — the same shape the runtime resolves path params from, so
|
|
67
|
-
// the example always works.
|
|
68
63
|
const loadItems = opRequestShape(exampleEntity, 'load').items
|
|
69
64
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
70
65
|
.sort((a: any, b: any) =>
|
|
@@ -8,7 +8,6 @@ import {
|
|
|
8
8
|
} from '@voxgig/apidef'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
// A type-correct Ruby literal for a field's canonical type.
|
|
12
11
|
function rbLit(type: any): string {
|
|
13
12
|
const k = canonScalarKey(type)
|
|
14
13
|
if ('INTEGER' === k || 'NUMBER' === k) return '1'
|
|
@@ -24,8 +23,6 @@ const ReadmeTopTest = cmp(function ReadmeTopTest(props: any) {
|
|
|
24
23
|
|
|
25
24
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
26
25
|
|
|
27
|
-
// Pick an entity with a real op (prefer a read op) — never fabricate a
|
|
28
|
-
// `load` on an op-less entity like Cloudsmith's `Abort`.
|
|
29
26
|
const { entity: exampleEntity, primaryOp } = pickExampleEntity(entity)
|
|
30
27
|
|
|
31
28
|
if (exampleEntity && primaryOp) {
|
|
@@ -13,21 +13,6 @@ import {
|
|
|
13
13
|
} from '@voxgig/apidef'
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
// THE GENERATED SCHEMA MODULE: the model's schemas, as data the SDK can run.
|
|
17
|
-
//
|
|
18
|
-
// The ruby peer of src/cmp/ts/Schema_ts.ts. Same two exports, same source —
|
|
19
|
-
// OPTSPEC from `main.kit.optspec` plus each feature's own `config.options`,
|
|
20
|
-
// ENTITYSPEC from the entity field sentinels — built by the shared helpers,
|
|
21
|
-
// so what ruby validates against and what ts validates against cannot drift.
|
|
22
|
-
//
|
|
23
|
-
// EMBEDDED AS JSON, PARSED AT LOAD, the mechanism config.rb already uses for
|
|
24
|
-
// the model above the size threshold, and SINGLE-quoted for the reason
|
|
25
|
-
// recorded there: a double-quoted ruby string would interpolate any `#{` the
|
|
26
|
-
// model happens to contain.
|
|
27
|
-
//
|
|
28
|
-
// The round-trip is exact because the spec holds only strings and booleans —
|
|
29
|
-
// pinned by "strings and booleans only, so the JSON round-trip is lossless"
|
|
30
|
-
// in ts/test/optspec.test.ts.
|
|
31
16
|
const Schema = cmp(async function Schema(props: any) {
|
|
32
17
|
const ctx$ = props.ctx$
|
|
33
18
|
const target = props.target
|
|
@@ -250,8 +250,6 @@ ${listSkipBlock} client = setup[:client]
|
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
if (hasLoad && loadPoint) {
|
|
253
|
-
// Skip live direct-load only when we can't fill path params:
|
|
254
|
-
// no spec examples and no list-bootstrap. Spec examples win first.
|
|
255
253
|
const loadSkipBlock = (loadParams.length > 0 && !loadAllHaveExamples)
|
|
256
254
|
? ` if setup[:live]
|
|
257
255
|
skip "live direct-load needs real ID — set *_ENTID env var with real IDs to run"
|
|
@@ -68,28 +68,6 @@ function formatRubyValue(val: any, indent: number = 0): string {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
|
|
71
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
72
|
-
//
|
|
73
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
74
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
75
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
76
|
-
// payload — see CONFIG_DEFAULT.
|
|
77
|
-
//
|
|
78
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
79
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
80
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
81
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
82
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
83
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
84
|
-
//
|
|
85
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
86
|
-
// `active` means something different in feature config, where absent reads as
|
|
87
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
88
|
-
// disable the feature.
|
|
89
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
90
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
91
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
92
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
93
71
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
94
72
|
|
|
95
73
|
// Keys whose value IS the default the runtime already assumes when the key is
|
|
@@ -52,34 +52,8 @@ const Config = cmp(async function Config(props: any) {
|
|
|
52
52
|
let baseUrl = ''
|
|
53
53
|
try { baseUrl = getModelPath(model, `main.${KIT}.info.servers.0.url`) } catch (_e) { }
|
|
54
54
|
|
|
55
|
-
// The canonical config OBJECT and its JSON, from the shared helper. Both
|
|
56
|
-
// representations render from the same `def`, so they cannot describe
|
|
57
|
-
// different configs - and this target picks up `options.server` (the
|
|
58
|
-
// OpenAPI server-variable defaults), which the hand-rolled build here
|
|
59
|
-
// omitted entirely. Passing target.name opts into the main
|
|
60
|
-
// slug/version/target identity fields (station descriptor input, mirrors
|
|
61
|
-
// Config_ts) - both reps below render from this same def, so the data
|
|
62
|
-
// and literal branches pick the fields up together.
|
|
63
55
|
const { def: config, json: baseJson } = configDefinition(model, target.name)
|
|
64
56
|
|
|
65
|
-
// `in` and `name` TRAVEL WITH THE PREFIX NOW.
|
|
66
|
-
//
|
|
67
|
-
// apidef resolved both from the spec's securityScheme all along and this
|
|
68
|
-
// generator dropped them, so an apiKey-in-query API got an `authorization`
|
|
69
|
-
// header it does not read (see PrepareAuth_rust). The generated
|
|
70
|
-
// prepare_auth is built from the same two values, and the config carries
|
|
71
|
-
// them so the placement is a visible, overridable runtime option beside
|
|
72
|
-
// auth.prefix - which is also what keeps the SDK from rejecting its own
|
|
73
|
-
// config: the auth optspec in tm/rust/utility/make_options.rs is a CLOSED
|
|
74
|
-
// map, and an undeclared key there fails validate with "Unexpected keys at
|
|
75
|
-
// field auth".
|
|
76
|
-
//
|
|
77
|
-
// Emitted ONLY when they differ from header/Authorization, so a
|
|
78
|
-
// header-based SDK's config.rs is byte-identical to what it generated
|
|
79
|
-
// before. Both representations are patched through the one object, so the
|
|
80
|
-
// literal (formatRustValue) and the data rep (rustRawString) cannot
|
|
81
|
-
// disagree - the json is re-derived from the def, exactly as
|
|
82
|
-
// configDefinition derives it.
|
|
83
57
|
const authIn = resolveAuthIn(model)
|
|
84
58
|
const authName = resolveAuthName(model)
|
|
85
59
|
let configJson = baseJson
|
|
@@ -103,15 +77,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
103
77
|
|
|
104
78
|
File({ name: 'config.' + target.ext }, () => {
|
|
105
79
|
|
|
106
|
-
// ABOVE THE THRESHOLD: emit the model as DATA.
|
|
107
|
-
//
|
|
108
|
-
// The literal is one deeply nested expression. rustc type-checks and
|
|
109
|
-
// monomorphises it as a single item, so compile time and memory grow with
|
|
110
|
-
// the whole model at once; a string constant is one token, and json_parse
|
|
111
|
-
// builds the same Value tree at runtime.
|
|
112
|
-
//
|
|
113
|
-
// No number-type question here, unlike Go: `Value::Num` is f64 in both
|
|
114
|
-
// representations, so there is nothing for the two paths to disagree about.
|
|
115
80
|
if (asData) {
|
|
116
81
|
Content(`// Generated API configuration (mirrors go core/config.go).
|
|
117
82
|
|
|
@@ -1,28 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Typed-model generator (Rust target). Port of EntityTypes_go.ts.
|
|
4
|
-
//
|
|
5
|
-
// Reads main.<KIT>.entity.<e>.fields[] and per-op params
|
|
6
|
-
// (op.<name>.points[].args.params[]) and emits one file, entity/types.rs, with
|
|
7
|
-
// a rust `struct <Name> { ... }` per entity plus a request/match struct per
|
|
8
|
-
// active op. Field/param sentinels ($STRING, $INTEGER, ...) map to rust types
|
|
9
|
-
// via the SHARED canonToType 'rust' column (the single source of truth per
|
|
10
|
-
// language — do not keep a local table here). Note OBJECT renders as
|
|
11
|
-
// std::collections::HashMap<String, Value> (fully qualified, no import
|
|
12
|
-
// needed).
|
|
13
|
-
//
|
|
14
|
-
// DESIGN NOTE (rust specifics vs the go reference):
|
|
15
|
-
// * The rust runtime is fully DYNAMIC: every op takes and returns the
|
|
16
|
-
// vendored `Value` enum (Result<Value, ...Error>), and the op fragments
|
|
17
|
-
// emit no typed wrappers. Go additionally emits `LoadTyped`/`ListTyped`
|
|
18
|
-
// wrappers plus json round-trip helpers; rust has no serde/json-derive
|
|
19
|
-
// dependency (only `ureq`), so these typed models are DOCUMENTARY: they
|
|
20
|
-
// mirror the entity/op shapes for reference and IDE support, but are not
|
|
21
|
-
// wired into the runtime. They compile as part of the crate (declared in
|
|
22
|
-
// entity/mod.rs) so they stay in sync with the model.
|
|
23
|
-
// * Optional (req:false) member -> `Option<T>`.
|
|
24
|
-
// * The module carries broad `#![allow(...)]` since nothing consumes the
|
|
25
|
-
// types yet (parity intent, not dead-code churn).
|
|
26
3
|
|
|
27
4
|
import {
|
|
28
5
|
cmp, each,
|
|
@@ -52,8 +29,6 @@ function fieldLine(name: string, sentinel: any, optional: boolean): string {
|
|
|
52
29
|
}
|
|
53
30
|
|
|
54
31
|
|
|
55
|
-
// Emit a struct named `typeName` from {name, type, optional} items, dropping
|
|
56
|
-
// duplicate rust identifiers (two model names can collapse to one ident).
|
|
57
32
|
function emitStruct(comment: string, typeName: string, items: any[]): void {
|
|
58
33
|
Content(`${comment}
|
|
59
34
|
#[derive(Debug, Clone)]
|
|
@@ -82,14 +57,8 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
82
57
|
// collection, so inactive entities still get generated entity code that
|
|
83
58
|
// references these typed names. The typed model must cover them too.
|
|
84
59
|
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
85
|
-
// Emit for every entity that gets an entity file (filter on `name`, always
|
|
86
|
-
// present; derive `Name` here so the struct set is deterministic — parity
|
|
87
|
-
// with the go emitter's fix).
|
|
88
60
|
const entityList = deriveEntityNames(entity)
|
|
89
61
|
|
|
90
|
-
// Surface duplicate generated type names (two entities with the same
|
|
91
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
92
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
93
62
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
94
63
|
|
|
95
64
|
Folder({ name: 'entity' }, () => {
|
|
@@ -116,15 +85,12 @@ use crate::utility::voxgigstruct::Value;
|
|
|
116
85
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
117
86
|
.filter((f: any) => f.active !== false)
|
|
118
87
|
|
|
119
|
-
// Entity data model: one field per model field. req:false -> Option.
|
|
120
88
|
emitStruct(
|
|
121
89
|
`/// ${Name} is the typed data model for the ${ent.name} entity.`,
|
|
122
90
|
Name,
|
|
123
91
|
fields.map((f: any) => ({ name: f.name, type: f.type, optional: false === f.req }))
|
|
124
92
|
)
|
|
125
93
|
|
|
126
|
-
// Per active op: a request/match struct. Members and their optionality
|
|
127
|
-
// come from the shared partiality policy (opRequestShape).
|
|
128
94
|
const ops = ent.op || {}
|
|
129
95
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
130
96
|
if (null == ops[opname]) {
|
|
@@ -32,19 +32,12 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
32
32
|
|
|
33
33
|
const ff = Path.normalize(__dirname + '/../../../src/cmp/rust/fragment/')
|
|
34
34
|
|
|
35
|
-
// Entity files go to entity/ as one module per entity.
|
|
36
35
|
Folder({ name: 'entity' }, () => {
|
|
37
36
|
|
|
38
37
|
File({ name: rustVarName(entity.name) + '.' + target.ext }, () => {
|
|
39
38
|
|
|
40
39
|
const opnames = Object.keys(entity.op || {})
|
|
41
40
|
|
|
42
|
-
// For each CRUD op: if the spec defines it, splice in the real
|
|
43
|
-
// implementation. Otherwise emit a stub that satisfies the static
|
|
44
|
-
// ProjectNameEntity trait (so the crate compiles) but errors at
|
|
45
|
-
// runtime if the caller invokes an unsupported op.
|
|
46
|
-
// Tag-form keys (`#LoadOp`) match the marker line `// #LoadOp` and
|
|
47
|
-
// capture its indent, so the spliced method nests inside the impl.
|
|
48
41
|
const opfrags =
|
|
49
42
|
(['load', 'list', 'create', 'update', 'remove']
|
|
50
43
|
.reduce((a: any, opname: string) =>
|
|
@@ -74,8 +67,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
74
67
|
EntityName: entity.Name,
|
|
75
68
|
entityname: entity.name,
|
|
76
69
|
|
|
77
|
-
// Class/constructor tokens are decoupled from the EntityName
|
|
78
|
-
// data-type token so the class can be renamed independently.
|
|
79
70
|
EntyClass: cls,
|
|
80
71
|
|
|
81
72
|
// Matches every `// #<Stage>-Hook` marker in the fragment (all of
|