@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
|
@@ -2,25 +2,6 @@
|
|
|
2
2
|
import { cmp, Content, File } from '@voxgig/sdkgen'
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
// Emits elixir/test/readme_examples_test.exs — an ExUnit SYNTAX + PRESENCE
|
|
6
|
-
// gate over every ```elixir fenced block in the three docs that ship elixir
|
|
7
|
-
// examples: the repository ROOT README.md, the per-language elixir/README.md,
|
|
8
|
-
// and the per-language elixir/REFERENCE.md.
|
|
9
|
-
//
|
|
10
|
-
// For each block, tagged by (source doc, index), the gate PARSES it with
|
|
11
|
-
// `Code.string_to_quoted/1` — catching malformed examples (a missing `end`, a
|
|
12
|
-
// bad token, an unbalanced `%{}`). It also asserts each doc that exists ships
|
|
13
|
-
// at least one elixir block.
|
|
14
|
-
//
|
|
15
|
-
// SCOPE NOTE: unlike the Python/Lua gates this does NOT execute blocks in a
|
|
16
|
-
// seeded offline subprocess. Elixir's compile model makes running a README
|
|
17
|
-
// fragment against the generated `<Name>` modules substantially heavier (each
|
|
18
|
-
// block would need the SDK compiled and loaded, and the narrative aliases
|
|
19
|
-
// resolved), so this port stops at the syntax gate — a real, useful guard that
|
|
20
|
-
// keeps documented examples parseable as the generator evolves.
|
|
21
|
-
//
|
|
22
|
-
// The emitted Elixir avoids backticks (chr 96 via <<96>>) so this TS template
|
|
23
|
-
// literal stays clean; the only interpolation is the SDK module name.
|
|
24
5
|
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
25
6
|
const { ctx$: { model } } = props
|
|
26
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content, canonToType, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonToType, File, isAuthActive, entityIdField, opRequestShape , targetFeatures } from '@voxgig/sdkgen'
|
|
3
3
|
import { ReadmeRefFeatures } from '@voxgig/sdkgen'
|
|
4
4
|
|
|
5
5
|
import {
|
|
@@ -41,7 +41,7 @@ const ReadmeRef = cmp(function ReadmeRef(props: any) {
|
|
|
41
41
|
|
|
42
42
|
const Name = model.const.Name
|
|
43
43
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
44
|
-
const feature =
|
|
44
|
+
const feature = targetFeatures(model, target)
|
|
45
45
|
|
|
46
46
|
const publishedEntities = each(entity).filter((e: any) => e.active !== false)
|
|
47
47
|
|
|
@@ -323,9 +323,6 @@ sdk = ${Name}.new(${Name}.Helpers.deep(%{
|
|
|
323
323
|
\`\`\`
|
|
324
324
|
|
|
325
325
|
`)
|
|
326
|
-
// The shared feature reference: options, defaults, usage and the
|
|
327
|
-
// considerations. Model facts, identical in every target, so they are
|
|
328
|
-
// written once in cmp/ReadmeRefFeatures.ts rather than here.
|
|
329
326
|
ReadmeRefFeatures({ target })
|
|
330
327
|
}
|
|
331
328
|
|
|
@@ -18,23 +18,6 @@ import {
|
|
|
18
18
|
} from './utility_elixir'
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
// THE GENERATED SCHEMA MODULE: the model's schemas, as data the SDK can run.
|
|
22
|
-
//
|
|
23
|
-
// The elixir peer of src/cmp/ts/Schema_ts.ts. Same two exports, same source —
|
|
24
|
-
// OPTSPEC from `main.kit.optspec` plus each feature's own `config.options`,
|
|
25
|
-
// ENTITYSPEC from the entity field sentinels — built by the shared helpers,
|
|
26
|
-
// so what elixir validates against and what ts validates against cannot
|
|
27
|
-
// drift.
|
|
28
|
-
//
|
|
29
|
-
// EMBEDDED AS JSON IN A MODULE ATTRIBUTE, PARSED AT COMPILE TIME, exactly as
|
|
30
|
-
// config.ex carries the model. `elixirString` escapes every `#` for the
|
|
31
|
-
// reason recorded there: elixir interpolates `#{...}` inside a double-quoted
|
|
32
|
-
// string, so an unescaped one would be evaluated as code rather than emitted
|
|
33
|
-
// as text.
|
|
34
|
-
//
|
|
35
|
-
// The round-trip is exact because the spec holds only strings and booleans —
|
|
36
|
-
// pinned by "strings and booleans only, so the JSON round-trip is lossless"
|
|
37
|
-
// in ts/test/optspec.test.ts.
|
|
38
21
|
const Schema = cmp(async function Schema(props: any) {
|
|
39
22
|
const ctx$ = props.ctx$
|
|
40
23
|
const target = props.target
|
|
@@ -45,13 +28,6 @@ const Schema = cmp(async function Schema(props: any) {
|
|
|
45
28
|
const optspec = optionSpec(model, target.name)
|
|
46
29
|
const entityspec = entitySpecMap(model, target.name) || {}
|
|
47
30
|
|
|
48
|
-
// UNDER lib/, like config.ex and for a reason that bites immediately: mix's
|
|
49
|
-
// `elixirc_paths` is ["lib"] (plus test/ under :test), so a module at the
|
|
50
|
-
// SDK ROOT is never compiled. This file used to be emitted there, and
|
|
51
|
-
// `Schema.optspec/0` was therefore undefined in every generated elixir SDK
|
|
52
|
-
// — make_options raised UndefinedFunctionError on the first client
|
|
53
|
-
// construction. The elixir compile lane skips where no toolchain is
|
|
54
|
-
// installed, so nothing caught it.
|
|
55
31
|
Folder({ name: 'lib' }, () => {
|
|
56
32
|
|
|
57
33
|
File({ name: 'schema.ex' }, () => {
|
|
@@ -23,9 +23,6 @@ function elixirType(sentinel: unknown): string {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
// A type-correct, executable Elixir literal for a field/param of the given
|
|
27
|
-
// canonical type. Strings render the quoted placeholder; numeric/boolean/
|
|
28
|
-
// collection types render a real literal so example blocks parse and run.
|
|
29
26
|
function elixirLit(sentinel: unknown, placeholder: string = 'example'): string {
|
|
30
27
|
switch (canonScalarKey(sentinel)) {
|
|
31
28
|
case 'INTEGER':
|
|
@@ -43,10 +40,6 @@ function projectPath(suffix?: string): string {
|
|
|
43
40
|
}
|
|
44
41
|
|
|
45
42
|
|
|
46
|
-
// Render a JS value as an Elixir literal term (maps -> %{"k" => v}, lists ->
|
|
47
|
-
// [..], strings -> "..", booleans -> true/false, null -> nil). The result is
|
|
48
|
-
// fed to ProjectName.Helpers.deep/1 at runtime, which lifts native terms
|
|
49
|
-
// into the vendored struct's node representation.
|
|
50
43
|
function formatElixir(obj: any, indent: number = 0): string {
|
|
51
44
|
const pad = ' '.repeat(indent)
|
|
52
45
|
const padInner = ' '.repeat(indent + 1)
|
|
@@ -104,41 +97,14 @@ function elixirString(s: string): string {
|
|
|
104
97
|
}
|
|
105
98
|
|
|
106
99
|
|
|
107
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
108
|
-
//
|
|
109
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
110
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
111
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
112
|
-
// payload — see CONFIG_DEFAULT.
|
|
113
|
-
//
|
|
114
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
115
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
116
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
117
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
118
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
119
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
120
|
-
//
|
|
121
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
122
|
-
// `active` means something different in feature config, where absent reads as
|
|
123
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
124
|
-
// disable the feature.
|
|
125
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
126
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
127
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
128
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
129
100
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
130
101
|
|
|
131
|
-
// Keys whose value IS the default the runtime already assumes when the key is
|
|
132
|
-
// absent, so emitting them is pure payload.
|
|
133
102
|
const CONFIG_DEFAULT: Record<string, any> = {
|
|
134
103
|
active: true,
|
|
135
104
|
req: false,
|
|
136
105
|
reqd: false,
|
|
137
106
|
}
|
|
138
107
|
|
|
139
|
-
// Subtrees carrying user payload rather than schema. An active:true inside an
|
|
140
|
-
// OpenAPI example is DATA, not a default, so default-pruning stops at these
|
|
141
|
-
// keys and everything below them is passed through untouched.
|
|
142
108
|
const PAYLOAD_KEYS = ['default', 'example', 'examples']
|
|
143
109
|
|
|
144
110
|
function clean(o: any, dropDefaults?: boolean): any {
|
|
@@ -44,22 +44,16 @@ const Config = cmp(async function Config(props: any) {
|
|
|
44
44
|
const model: Model = ctx$.model
|
|
45
45
|
|
|
46
46
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
47
|
-
// Gated by the applicability tags, so this target never imports or
|
|
48
|
-
// registers a feature it has no source for. One rule, one place:
|
|
49
|
-
// helpers/applicability.
|
|
50
47
|
const feature = targetFeatures(model, target)
|
|
51
48
|
|
|
52
49
|
const headers = getModelPath(model, `main.${KIT}.config.headers`) || {}
|
|
53
50
|
|
|
54
51
|
const authActive = isAuthActive(model)
|
|
55
|
-
// config.auth.prefix override -> spec-derived info.security.prefix -> 'Bearer'
|
|
56
52
|
const authPrefix = resolveAuthPrefix(model)
|
|
57
53
|
|
|
58
54
|
let baseUrl = ''
|
|
59
55
|
try { baseUrl = getModelPath(model, `main.${KIT}.info.servers.0.url`) } catch (_e) { }
|
|
60
56
|
|
|
61
|
-
// Templated server URL: emit the spec's server-variable defaults so the
|
|
62
|
-
// runtime can substitute {name} placeholders in base (see make_options).
|
|
63
57
|
const svars = serverVariables(model)
|
|
64
58
|
const serverBlock = 0 === svars.length ? '' :
|
|
65
59
|
'\t\t\t"server": map[string]any{\n' +
|
|
@@ -81,27 +75,9 @@ const Config = cmp(async function Config(props: any) {
|
|
|
81
75
|
},\n`
|
|
82
76
|
: ''
|
|
83
77
|
|
|
84
|
-
// The same config as an OBJECT, built by the shared helper so this target's
|
|
85
|
-
// literal and the data that replaces it above the threshold are the same
|
|
86
|
-
// config by construction. The JSON is what the threshold is measured on -
|
|
87
|
-
// emitted source size varies by language, the model does not.
|
|
88
78
|
const { def: configDef, json: configJson } = configDefinition(model, target.name)
|
|
89
79
|
const asData = isConfigData(configJson, configReprSetting(model))
|
|
90
80
|
|
|
91
|
-
// PLUGIN DEFINITION IMPORTS AND THE FeaturePlugins MAP (the go peer of
|
|
92
|
-
// Config_ts's pluginImports/pluginDefs).
|
|
93
|
-
//
|
|
94
|
-
// Upstream sekreto replaced its self-registration registry with
|
|
95
|
-
// voxgig/plugin definitions: a provider kind the caller did not pass in
|
|
96
|
-
// via `Plugins: [...]` is unknown to that Sekreto. So the config imports
|
|
97
|
-
// each active plugin's exported Definition BY NAME (the model's
|
|
98
|
-
// per-target `def` map - `aws.Secrets`, a package-qualified go symbol)
|
|
99
|
-
// and hands the list to the feature through core.FeaturePlugins.
|
|
100
|
-
//
|
|
101
|
-
// Emitted in core (not in the feature package) so the dependency runs
|
|
102
|
-
// core -> plugins -> sekreto -> plugin with no cycle; the feature reads
|
|
103
|
-
// it back as []any and type-asserts, so a tree with the feature present
|
|
104
|
-
// but never selected still compiles.
|
|
105
81
|
const gomodule = goModule(model, target.name)
|
|
106
82
|
const pluginPaths = new Set<string>()
|
|
107
83
|
const featurePlugins: Record<string, string[]> = {}
|
|
@@ -109,12 +85,8 @@ const Config = cmp(async function Config(props: any) {
|
|
|
109
85
|
each(feature, (f: any) => {
|
|
110
86
|
const syms: string[] = []
|
|
111
87
|
each(f.plugin, (plugin: any) => {
|
|
112
|
-
// Filter on `active` HERE rather than trusting the feature object to
|
|
113
|
-
// arrive filtered (see Config_ts.pluginImports: getting this wrong
|
|
114
|
-
// emits an import for a package the trim just deleted).
|
|
115
88
|
if (false === plugin.active || null == plugin.active) return
|
|
116
89
|
for (const [sym, one] of Object.entries(plugin.def?.go || {})) {
|
|
117
|
-
// 'feature/secrets/plugins/aws/aws.go' -> its PACKAGE directory.
|
|
118
90
|
pluginPaths.add(String(one).replace(/\/[^/]+$/, ''))
|
|
119
91
|
syms.push(sym)
|
|
120
92
|
}
|
|
@@ -137,17 +109,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
137
109
|
|
|
138
110
|
File({ name: 'config.' + target.ext }, () => {
|
|
139
111
|
|
|
140
|
-
// ABOVE THE THRESHOLD: emit the model as DATA.
|
|
141
|
-
//
|
|
142
|
-
// A composite literal makes the compiler walk every node of the model;
|
|
143
|
-
// a string constant is one token. On the real gitlab model that is 30.8 s
|
|
144
|
-
// and 2.49 GB of compiler memory versus 0.34 s and 0.06 GB, and a binary
|
|
145
|
-
// 2.1x smaller. MakeConfig still returns the same map, so nothing
|
|
146
|
-
// downstream can tell which representation it got.
|
|
147
|
-
//
|
|
148
|
-
// JSON escapes work in Go interpreted strings; formatGoString also
|
|
149
|
-
// escapes BOM characters that Go forbids literally inside source files. A raw (backtick) literal could NOT be used - the model
|
|
150
|
-
// contains backticks in values like `$STRING`.
|
|
151
112
|
if (asData) {
|
|
152
113
|
Content(`package core
|
|
153
114
|
|
|
@@ -297,8 +258,6 @@ func makeFeature(name string) Feature {
|
|
|
297
258
|
`)
|
|
298
259
|
|
|
299
260
|
each(feature, (f: any) => {
|
|
300
|
-
// MUST match Main_go.ts, which DECLARES these identifiers in registry.go
|
|
301
|
-
// and the root init(); see goFeatureName.
|
|
302
261
|
const fname = goFeatureName(f)
|
|
303
262
|
if (f.name !== 'base') {
|
|
304
263
|
Content(` case "${f.name}":
|
|
@@ -1,30 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Typed-model generator (Go target).
|
|
4
|
-
//
|
|
5
|
-
// Reads main.<KIT>.entity.<e>.fields[] and per-op params
|
|
6
|
-
// (op.<name>.points[].args.params[]) and emits one file, entity/types.go, in
|
|
7
|
-
// the `entity` package, with a Go `type <Name> struct { ... }` per entity plus
|
|
8
|
-
// a request/match struct per active op. Field/param sentinels ($STRING,
|
|
9
|
-
// $INTEGER, ...) are turned into real Go types by the shared sdkgen helper
|
|
10
|
-
// `canonToType` (source of truth: @voxgig/apidef VALID_CANON).
|
|
11
|
-
//
|
|
12
|
-
// PORT NOTES (Go specifics vs the TS reference):
|
|
13
|
-
// * Types live in the SAME package as the entity methods (`entity`), so the
|
|
14
|
-
// generated typed accessors reference them without an import (task step B).
|
|
15
|
-
// * Go has no method overloading and go-cli / go-mcp dispatch entities
|
|
16
|
-
// dynamically through the untyped `core.ProjectNameEntity` interface
|
|
17
|
-
// (Load/List/... (map[string]any) (any, error)). That interface — and the
|
|
18
|
-
// untyped concrete methods that satisfy it — are therefore KEPT unchanged.
|
|
19
|
-
// Typed access is delivered ADDITIVELY: the op fragments emit `LoadTyped`
|
|
20
|
-
// / `ListTyped` / ... alongside the untyped methods, and Entity.fragment.go
|
|
21
|
-
// emits `DataTyped` / `MatchTyped`. All are thin typed wrappers over the
|
|
22
|
-
// untyped runtime (identical behaviour), converting at the typed boundary
|
|
23
|
-
// via the JSON-round-trip helpers emitted at the bottom of this file.
|
|
24
|
-
// * `list` typed op returns []<Name>; other typed ops return <Name>.
|
|
25
|
-
// * op WITH params -> a struct of those params (reqd:false -> pointer +
|
|
26
|
-
// ,omitempty). op WITHOUT params -> a struct mirroring the entity fields
|
|
27
|
-
// with every field optional (Go's analog of TS `Partial<Name>`).
|
|
28
3
|
|
|
29
4
|
import {
|
|
30
5
|
cmp, each,
|
|
@@ -47,8 +22,6 @@ function cap(s: string): string {
|
|
|
47
22
|
}
|
|
48
23
|
|
|
49
24
|
|
|
50
|
-
// A model field/param name -> an exported Go field identifier:
|
|
51
|
-
// advice -> Advice, some_field -> SomeField, id -> Id.
|
|
52
25
|
function goField(name: string): string {
|
|
53
26
|
const out = String(name)
|
|
54
27
|
.replace(/[^A-Za-z0-9]+/g, ' ')
|
|
@@ -57,30 +30,10 @@ function goField(name: string): string {
|
|
|
57
30
|
.filter(Boolean)
|
|
58
31
|
.map((s) => s.charAt(0).toUpperCase() + s.slice(1))
|
|
59
32
|
.join('')
|
|
60
|
-
// Go identifiers can't start with a digit.
|
|
61
33
|
return /^[A-Za-z_]/.test(out) ? out : 'F' + out
|
|
62
34
|
}
|
|
63
35
|
|
|
64
36
|
|
|
65
|
-
// The json struct tag is the WIRE CONTRACT: it decides the key requests
|
|
66
|
-
// marshal under and the key responses populate from.
|
|
67
|
-
//
|
|
68
|
-
// Can this spec-derived name be carried in a Go json struct tag AT ALL?
|
|
69
|
-
//
|
|
70
|
-
// It cannot always be. `encoding/json`'s isValidTag accepts letters, digits and
|
|
71
|
-
// a fixed punctuation set; a name containing a double quote, a backtick or a
|
|
72
|
-
// backslash is REJECTED, and Go then silently falls back to the Go FIELD name.
|
|
73
|
-
// Verified against go1.24 — for a field named `na"me`:
|
|
74
|
-
//
|
|
75
|
-
// raw literal `json:"na"me"` -> marshals as {"na": ...} (truncated)
|
|
76
|
-
// escaped literal "json:\"na\\\"me\"" -> marshals as {"NaMe": ...} (tag ignored)
|
|
77
|
-
//
|
|
78
|
-
// So there is no encoding that preserves such a name. An earlier version here
|
|
79
|
-
// stripped the offending characters, which is worse than either: it silently
|
|
80
|
-
// changed the wire contract, marshalling under a key the API never uses and
|
|
81
|
-
// never populating from the real response key. Names that cannot be
|
|
82
|
-
// represented are skipped with a warning instead — the same treatment
|
|
83
|
-
// csharp/java give names with no legal identifier form.
|
|
84
37
|
const GO_TAG_PUNCT = '!#$%&()*+-./:;<=>?@[]^_{|}~ '
|
|
85
38
|
|
|
86
39
|
function goTaggable(name: string): boolean {
|
|
@@ -113,15 +66,6 @@ function fieldLine(name: string, sentinel: any, optional: boolean, ident?: strin
|
|
|
113
66
|
}
|
|
114
67
|
|
|
115
68
|
|
|
116
|
-
// Collision-free Go field identifiers for one struct's members.
|
|
117
|
-
//
|
|
118
|
-
// goField() is lossy — it strips every non-alphanumeric character — so
|
|
119
|
-
// `some_field`, `some-field` and `someField` all map to `SomeField`. Emitting
|
|
120
|
-
// them into the same struct is a "field redeclared" compile error, and Go is
|
|
121
|
-
// the only target exposed to it (ts/py/… keep the raw key). Later duplicates
|
|
122
|
-
// get a numeric suffix; the FIRST occurrence keeps the natural name, and the
|
|
123
|
-
// json tag always keeps the original wire name, so behaviour is unchanged.
|
|
124
|
-
// Deterministic: members arrive in sorted-key order from opRequestShape/each.
|
|
125
69
|
function uniqueGoFields(members: { name: string }[]): string[] {
|
|
126
70
|
const taken: Record<string, boolean> = {}
|
|
127
71
|
return members.map((m) => {
|
|
@@ -174,18 +118,8 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
174
118
|
// collection, so inactive entities still get generated entity code that
|
|
175
119
|
// references these typed names. The typed model must cover them too.
|
|
176
120
|
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
177
|
-
// Emit for every entity that gets an entity file. Main_go.ts / Entity_go.ts
|
|
178
|
-
// iterate entities WITHOUT an `active` filter and reference the typed data
|
|
179
|
-
// type `<Name>` in every *_entity.go, so a struct is required for each or the
|
|
180
|
-
// package won't compile. deriveEntityNames() selects on `name` (always
|
|
181
|
-
// present) and derives the lazily-set PascalCase `Name` up front, so the
|
|
182
|
-
// struct set is deterministic and matches the *_entity.go set regardless of
|
|
183
|
-
// which component runs first.
|
|
184
121
|
const entityList = deriveEntityNames(entity)
|
|
185
122
|
|
|
186
|
-
// Surface duplicate generated type names (two entities with the same
|
|
187
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
188
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
189
123
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
190
124
|
|
|
191
125
|
Folder({ name: 'entity' }, () => {
|
|
@@ -213,7 +147,6 @@ import (
|
|
|
213
147
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
214
148
|
.filter((f: any) => f.active !== false)
|
|
215
149
|
|
|
216
|
-
// Entity data model: one field per model field. req:false -> pointer.
|
|
217
150
|
Content(`// ${Name} is the typed data model for the ${ent.name} entity.
|
|
218
151
|
type ${Name} struct {
|
|
219
152
|
`)
|
|
@@ -227,10 +160,6 @@ type ${Name} struct {
|
|
|
227
160
|
|
|
228
161
|
`)
|
|
229
162
|
|
|
230
|
-
// Per active op: a request/match struct (same package as the entity
|
|
231
|
-
// methods, so no import is needed there). Members and their optionality
|
|
232
|
-
// come from the shared partiality policy (opRequestShape); this file
|
|
233
|
-
// only renders them as a Go struct (optional -> pointer + ,omitempty).
|
|
234
163
|
const ops = ent.op || {}
|
|
235
164
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
236
165
|
if (null == ops[opname]) {
|
|
@@ -19,8 +19,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
19
19
|
const { model, stdrep } = props.ctx$
|
|
20
20
|
const { target, entity } = props
|
|
21
21
|
|
|
22
|
-
// Module name: concatenated lowercase
|
|
23
|
-
// Go module path == repo path on GitHub (org from model.origin).
|
|
24
22
|
const gomodule = goModule(model, target.name)
|
|
25
23
|
|
|
26
24
|
// Collision-free entity CLASS name (see entityClassName): normally
|
|
@@ -37,7 +35,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
37
35
|
|
|
38
36
|
const ff = Path.normalize(__dirname + '/../../../src/cmp/go/fragment/')
|
|
39
37
|
|
|
40
|
-
// Entity files go to entity/ folder with snake_case names
|
|
41
38
|
Folder({ name: 'entity' }, () => {
|
|
42
39
|
|
|
43
40
|
File({ name: entity.name + '_entity.' + target.ext }, () => {
|
|
@@ -74,8 +71,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
74
71
|
EntityName: entity.Name,
|
|
75
72
|
entityname: entity.name,
|
|
76
73
|
|
|
77
|
-
// Class/constructor tokens are decoupled from the EntityName data-type
|
|
78
|
-
// token in Entity.fragment.go so the class can be renamed independently.
|
|
79
74
|
EntyClass: cls,
|
|
80
75
|
NewEntyClass: 'New' + cls,
|
|
81
76
|
|
|
@@ -53,13 +53,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
53
53
|
|
|
54
54
|
Gitignore({})
|
|
55
55
|
|
|
56
|
-
// Copy tm/go files with replacements.
|
|
57
|
-
//
|
|
58
|
-
// Rewrite the placeholder `github.com/voxgig/struct` import (used in the
|
|
59
|
-
// template since it's a self-contained module there) to its in-SDK path.
|
|
60
|
-
// The struct package is inlined under `<gomodule>/utility/struct` so the
|
|
61
|
-
// module is fully self-contained — no external go.mod required by
|
|
62
|
-
// downstream consumers.
|
|
63
56
|
Copy({
|
|
64
57
|
from: 'tm/' + target.name,
|
|
65
58
|
// pluginExcludes: the generate-time plugin trim (an INACTIVE plugin
|
|
@@ -76,24 +69,10 @@ const Main = cmp(async function Main(props: any) {
|
|
|
76
69
|
}
|
|
77
70
|
})
|
|
78
71
|
|
|
79
|
-
// Typed models: entity/types.go (package entity), emitted alongside the
|
|
80
|
-
// generated *_entity.go files so the typed accessors resolve without imports.
|
|
81
72
|
EntityTypes({ target })
|
|
82
73
|
|
|
83
|
-
// utility/prepare_auth.go is GENERATED, not templated: where the
|
|
84
|
-
// credential goes (header / query / cookie, and under what name) is a
|
|
85
|
-
// fact about the API, and tm/ can only hold one answer. See
|
|
86
|
-
// PrepareAuth_go.
|
|
87
|
-
//
|
|
88
|
-
// AT ROOT LEVEL, and outside the `core` Folder below. Go's layout is flat
|
|
89
|
-
// at the target root, and the component opens `utility` itself - the same
|
|
90
|
-
// path `Copy({from:'tm/go'})` used for the template it replaces. Calling
|
|
91
|
-
// it beside Config, inside `Folder({name:'core'})`, would emit
|
|
92
|
-
// core/utility/prepare_auth.go instead: a package nothing imports, while
|
|
93
|
-
// registerAll keeps binding whatever utility/ actually holds.
|
|
94
74
|
PrepareAuth({ target })
|
|
95
75
|
|
|
96
|
-
// Generate main SDK file in core/ folder
|
|
97
76
|
Folder({ name: 'core' }, () => {
|
|
98
77
|
|
|
99
78
|
File({ name: model.name + '_sdk.' + target.ext }, () => {
|
|
@@ -121,7 +100,6 @@ s.utility.FeatureHook(s.rootctx, "${name}")
|
|
|
121
100
|
}
|
|
122
101
|
},
|
|
123
102
|
|
|
124
|
-
// Entities - injected at SLOT
|
|
125
103
|
() => {
|
|
126
104
|
each(entity, (entity: ModelEntity) => {
|
|
127
105
|
const entitySDK = getModelPath(model, `main.${KIT}.entity.${entity.name}`)
|
|
@@ -143,7 +121,6 @@ var UtilityRegistrar func(u *Utility)
|
|
|
143
121
|
var NewBaseFeatureFunc func() Feature
|
|
144
122
|
|
|
145
123
|
`)
|
|
146
|
-
// Feature constructor function vars (non-base)
|
|
147
124
|
each(feature, (feat: any) => {
|
|
148
125
|
if (feat.name !== 'base') {
|
|
149
126
|
const fname = goFeatureName(feat)
|
|
@@ -153,7 +130,6 @@ var NewBaseFeatureFunc func() Feature
|
|
|
153
130
|
}
|
|
154
131
|
})
|
|
155
132
|
|
|
156
|
-
// Entity constructor function vars
|
|
157
133
|
each(entity, (ent: any) => {
|
|
158
134
|
Content(`var New${ent.Name}EntityFunc func(client *${model.const.Name}SDK, entopts map[string]any) ${model.const.Name}Entity
|
|
159
135
|
|
|
@@ -162,7 +138,6 @@ var NewBaseFeatureFunc func() Feature
|
|
|
162
138
|
})
|
|
163
139
|
})
|
|
164
140
|
|
|
165
|
-
// Generate root package file
|
|
166
141
|
const hasEntities = Object.keys(entity || {}).length > 0
|
|
167
142
|
const entityImport = hasEntities ? `\n\t"${gomodule}/entity"` : ''
|
|
168
143
|
File({ name: model.name + '.' + target.ext }, () => {
|
|
@@ -195,13 +170,11 @@ type BaseFeature = feature.BaseFeature
|
|
|
195
170
|
func init() {
|
|
196
171
|
`)
|
|
197
172
|
|
|
198
|
-
// Register feature constructors - base is always present
|
|
199
173
|
Content(` core.NewBaseFeatureFunc = func() core.Feature {
|
|
200
174
|
return feature.NewBaseFeature()
|
|
201
175
|
}
|
|
202
176
|
`)
|
|
203
177
|
|
|
204
|
-
// Register non-base feature constructors
|
|
205
178
|
each(feature, (feat: any) => {
|
|
206
179
|
if (feat.name !== 'base') {
|
|
207
180
|
const fname = goFeatureName(feat)
|
|
@@ -212,7 +185,6 @@ func init() {
|
|
|
212
185
|
}
|
|
213
186
|
})
|
|
214
187
|
|
|
215
|
-
// Register entity constructors
|
|
216
188
|
each(entity, (ent: any) => {
|
|
217
189
|
Content(` core.New${ent.Name}EntityFunc = func(client *core.${model.const.Name}SDK, entopts map[string]any) core.${model.const.Name}Entity {
|
|
218
190
|
return entity.New${entityClassName(ent, entityCollection(model))}(client, entopts)
|
|
@@ -18,11 +18,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
18
18
|
|
|
19
19
|
const model: Model = ctx$.model
|
|
20
20
|
|
|
21
|
-
// Module path and language version both come from the model — see
|
|
22
|
-
// goModule / goVersion. Neither is derivable from the slug alone: the repo
|
|
23
|
-
// may not be named `<slug>-sdk`, and the hardcoded `go 1.20` this used to
|
|
24
|
-
// emit could not compile sdkgen's own `log` feature (it imports log/slog,
|
|
25
|
-
// which needs 1.21).
|
|
26
21
|
const gomodule = goModule(model, target.name)
|
|
27
22
|
|
|
28
23
|
File({ name: 'go.mod' }, () => {
|
|
@@ -35,8 +30,6 @@ go ${goVersion(model, target.name)}
|
|
|
35
30
|
const deps: Record<string, string> = {}
|
|
36
31
|
const replaceDirs: Record<string, string> = {}
|
|
37
32
|
for (const d of collectDeps(model, target.name, target.deps, ctx$.log)) {
|
|
38
|
-
// Target-level deps default to 'v0.0.0' when version is absent;
|
|
39
|
-
// feature deps require an explicit version.
|
|
40
33
|
deps[d.name] = d.source === 'target' ? (d.version || 'v0.0.0') : d.version
|
|
41
34
|
if (d.source === 'target' && d.raw?.replace) {
|
|
42
35
|
replaceDirs[d.name] = d.raw.replace
|
|
@@ -18,26 +18,6 @@ import {
|
|
|
18
18
|
} from '@voxgig/apidef'
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
// WHERE THE CREDENTIAL GOES IS A FACT ABOUT THE API, so it is generated
|
|
22
|
-
// rather than templated. This is the go peer of PrepareAuth_ts; read that
|
|
23
|
-
// one first, it carries the full account of the defect.
|
|
24
|
-
//
|
|
25
|
-
// This was a static file at `tm/go/utility/prepare_auth.go` that hardcoded
|
|
26
|
-
//
|
|
27
|
-
// const headerAuth = "authorization"
|
|
28
|
-
//
|
|
29
|
-
// apidef has always resolved the scheme's `in` and `name` into
|
|
30
|
-
// `main.kit.info.security` — joplin's says `in: "query", name: "token"` —
|
|
31
|
-
// and generation dropped both, so the SDK sent a header the API does not
|
|
32
|
-
// read and never sent the query parameter it does.
|
|
33
|
-
//
|
|
34
|
-
// A template cannot fix this, because the three placements need three
|
|
35
|
-
// different bodies and a template has to pick one. A component emits the
|
|
36
|
-
// branch this API actually uses and nothing else — no dead query code in a
|
|
37
|
-
// bearer-token SDK, and no runtime `if` on a value fixed at generation
|
|
38
|
-
// time. Go makes that stricter than most targets: an unused local is a
|
|
39
|
-
// COMPILE ERROR, so a file that resolved `authPrefix` and then dropped it
|
|
40
|
-
// for a query placement would not build at all.
|
|
41
21
|
const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
42
22
|
const { target } = props
|
|
43
23
|
const { model } = props.ctx$
|
|
@@ -54,16 +34,6 @@ const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
|
54
34
|
const prefix = resolveAuthPrefix(model)
|
|
55
35
|
const basic = isHttpBasicAuth(model)
|
|
56
36
|
|
|
57
|
-
// FOLDER NESTING. Main_go opens NO folder around this call: go's layout is
|
|
58
|
-
// flat at the target root (core/, utility/, feature/, entity/, test/), the
|
|
59
|
-
// template this replaces lived at `tm/go/utility/prepare_auth.go`, and
|
|
60
|
-
// `Copy({from:'tm/go'})` lands it at `<root>/utility/`. So the `utility`
|
|
61
|
-
// folder is opened HERE, exactly as EntityTypes_go opens `entity`.
|
|
62
|
-
//
|
|
63
|
-
// The call site matters as much: Config is inside `Folder({name:'core'})`,
|
|
64
|
-
// and putting PrepareAuth beside it would write `core/utility/prepare_auth.go`
|
|
65
|
-
// — a second `package utility` nobody imports, while the registrar keeps
|
|
66
|
-
// calling whatever `utility/` still holds. Main_go calls this at ROOT level.
|
|
67
37
|
Folder({ name: 'utility' }, () => {
|
|
68
38
|
File({ name: 'prepare_auth.' + target.ext }, () => {
|
|
69
39
|
Content(render({ gomodule, active, where, name, prefix, basic }))
|
|
@@ -84,9 +54,6 @@ type AuthSpec = {
|
|
|
84
54
|
|
|
85
55
|
function render(spec: AuthSpec): string {
|
|
86
56
|
|
|
87
|
-
// NO AUTH AT ALL. A public API's SDK gets a prepareAuth that is honest
|
|
88
|
-
// about it rather than one that deletes a header nobody set. `vs` is left
|
|
89
|
-
// out of the imports deliberately — go rejects an unused import.
|
|
90
57
|
if (!spec.active) {
|
|
91
58
|
return `package utility
|
|
92
59
|
|
|
@@ -209,19 +176,6 @@ ${place(spec.where)}
|
|
|
209
176
|
}
|
|
210
177
|
|
|
211
178
|
|
|
212
|
-
// The credential's key, as it goes into the bag.
|
|
213
|
-
//
|
|
214
|
-
// A HEADER name is lowercased. HTTP header names are case-insensitive
|
|
215
|
-
// (RFC 9110 5.1) and go's `req.Header.Set` canonicalises on the wire, so
|
|
216
|
-
// nothing changes over the socket — but this SDK's own header map is keyed
|
|
217
|
-
// in lowercase throughout (`content-type`, and the `authorization` that the
|
|
218
|
-
// generated pipeline/feature/secrets tests assert on), and the shipped
|
|
219
|
-
// `prepare_auth.go` said `"authorization"`. Emitting the resolver's
|
|
220
|
-
// title-cased default here would have left every header SDK's own test
|
|
221
|
-
// suite failing on a purely cosmetic difference.
|
|
222
|
-
//
|
|
223
|
-
// A QUERY parameter and a COOKIE name are case-SENSITIVE, so those go in
|
|
224
|
-
// verbatim: `?token=` is not `?Token=`.
|
|
225
179
|
function credLiteral(where: string, name: string): string {
|
|
226
180
|
return 'header' === where ? String(name).toLowerCase() : String(name)
|
|
227
181
|
}
|
|
@@ -246,9 +200,6 @@ function clear(where: string): string {
|
|
|
246
200
|
|
|
247
201
|
function place(where: string): string {
|
|
248
202
|
if ('query' === where) {
|
|
249
|
-
// NO PREFIX IN A QUERY STRING. `?token=Bearer%20abc` is not a thing any
|
|
250
|
-
// API reads; the prefix is a header convention and is dropped here
|
|
251
|
-
// deliberately rather than silently concatenated.
|
|
252
203
|
return ` apikeyVal := ""
|
|
253
204
|
if av, ok := apikey.(string); ok {
|
|
254
205
|
apikeyVal = av
|
|
@@ -257,8 +208,6 @@ function place(where: string): string {
|
|
|
257
208
|
}
|
|
258
209
|
|
|
259
210
|
if ('cookie' === where) {
|
|
260
|
-
// Append, never replace: the cookie header may already carry pairs this
|
|
261
|
-
// SDK did not set, and clobbering it would drop them.
|
|
262
211
|
return ` apikeyVal := ""
|
|
263
212
|
if av, ok := apikey.(string); ok {
|
|
264
213
|
apikeyVal = av
|
|
@@ -302,19 +251,6 @@ export {
|
|
|
302
251
|
}
|
|
303
252
|
|
|
304
253
|
|
|
305
|
-
// NOT `isAuthActive`, AND THE DIFFERENCE IS LOAD-BEARING. That helper is
|
|
306
|
-
// also false whenever the SPEC declares no security scheme
|
|
307
|
-
// (`main.kit.info.auth: false`) — a statement about the DEFINITION, not a
|
|
308
|
-
// ban on ever sending a credential. `optspec` still declares `apikey` and
|
|
309
|
-
// makeOptions fills `options.auth` from its defaults, so the runtime
|
|
310
|
-
// `options.auth == null` guard never fired and those SDKs have always sent
|
|
311
|
-
// the credential. Gating the body on `isAuthActive` does not trim dead
|
|
312
|
-
// code, it removes working authentication — which
|
|
313
|
-
// `go: auth null suppresses the credential` catches, and which takes the
|
|
314
|
-
// secrets feature down with it.
|
|
315
|
-
//
|
|
316
|
-
// `main.kit.config.auth.active: false` is the project saying "no credential,
|
|
317
|
-
// ever", and it is the only signal that can be honoured before runtime.
|
|
318
254
|
function isAuthActive_go(model: any): boolean {
|
|
319
255
|
const auth = getModelPath(model, `main.${KIT}.config.auth`,
|
|
320
256
|
{ only_active: false, required: false })
|
|
@@ -41,14 +41,9 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
41
41
|
`)
|
|
42
42
|
|
|
43
43
|
publishedEntities.map((entity: any) => {
|
|
44
|
-
// ACTIVE ops only — an inactive op generates no method, so an example
|
|
45
|
-
// calling it would not compile.
|
|
46
44
|
const opnames = entityOps(entity)
|
|
47
45
|
const fields = entity.fields || []
|
|
48
|
-
// Model-driven id key: null when this entity has no id-like field.
|
|
49
46
|
const idF = entityIdField(entity)
|
|
50
|
-
// camelCase Go identifier (a `status_embed_config` entity must not bind a
|
|
51
|
-
// snake_case Go variable, and a `type`/`range` entity not a Go keyword).
|
|
52
47
|
const eVar = goVarName(entity.name)
|
|
53
48
|
|
|
54
49
|
Content(`
|