@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
|
@@ -17,27 +17,6 @@ import {
|
|
|
17
17
|
} from './utility_cpp'
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
// THE GENERATED SCHEMA MODULE: the model's schemas, as data the SDK can run.
|
|
21
|
-
//
|
|
22
|
-
// The cpp peer of src/cmp/ts/Schema_ts.ts. Same two members, same source:
|
|
23
|
-
// optspec from `main.kit.optspec` plus each feature's own `config.options`,
|
|
24
|
-
// entityspec from the entity field sentinels — both built by the shared
|
|
25
|
-
// helpers, so what cpp validates against and what ts validates against cannot
|
|
26
|
-
// drift.
|
|
27
|
-
//
|
|
28
|
-
// EMBEDDED AS JSON, PARSED AT LOAD, where ts emits an object literal: JSON is
|
|
29
|
-
// a subset of TypeScript's own literal syntax and is not a subset of cpp's.
|
|
30
|
-
// Chunked adjacent string literals, exactly as config.hpp carries its config,
|
|
31
|
-
// so no single literal approaches an implementation's minimum-supported
|
|
32
|
-
// length however large the model grows.
|
|
33
|
-
//
|
|
34
|
-
// This REPLACES the OPTSPEC_JSON() that used to sit in pipeline.hpp — a
|
|
35
|
-
// hand-maintained copy of the spec that nothing cross-checked, and which had
|
|
36
|
-
// already drifted (no `extend`, no `server`, no `auth.basic`).
|
|
37
|
-
//
|
|
38
|
-
// The round-trip is exact because the spec holds only strings and booleans:
|
|
39
|
-
// pinned by "strings and booleans only, so the JSON round-trip is lossless"
|
|
40
|
-
// in ts/test/optspec.test.ts.
|
|
41
20
|
const Schema = cmp(async function Schema(props: any) {
|
|
42
21
|
const ctx$ = props.ctx$
|
|
43
22
|
const target = props.target
|
|
@@ -231,9 +231,6 @@ ${flowHasList ? ` T_RUN(${evar}_entity_stream);\n` : ''} T_RUN(${evar}_entity_
|
|
|
231
231
|
})
|
|
232
232
|
|
|
233
233
|
|
|
234
|
-
// declare a data var (C++ needs declaration); track declared vars per file is
|
|
235
|
-
// hard across generators, so each op declares with `Value` unless it's a known
|
|
236
|
-
// pre-declared ref. We use a simple convention: the first use declares it.
|
|
237
234
|
function decl(varname: string, declared: Set<string>): string {
|
|
238
235
|
if (declared.has(varname)) return ''
|
|
239
236
|
declared.add(varname)
|
|
@@ -16,9 +16,6 @@ const Test = cmp(function Test(props: any) {
|
|
|
16
16
|
const { model } = props.ctx$
|
|
17
17
|
const { target } = props
|
|
18
18
|
|
|
19
|
-
// The static test suite (exists / pipeline / primary / feature / custom /
|
|
20
|
-
// netsim / struct corpus) ships as tm/cpp/test templates (copied verbatim).
|
|
21
|
-
// Here we generate the per-entity model-driven tests into test/.
|
|
22
19
|
Folder({ name: 'test' }, () => {
|
|
23
20
|
|
|
24
21
|
// Write-once: a project's edited control file survives regeneration.
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
} from '@voxgig/struct'
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
// C++ reserved words illegal as identifiers.
|
|
9
8
|
const CPP_RESERVED = new Set<string>([
|
|
10
9
|
'alignas', 'alignof', 'and', 'and_eq', 'asm', 'auto', 'bitand', 'bitor',
|
|
11
10
|
'bool', 'break', 'case', 'catch', 'char', 'char16_t', 'char32_t', 'class',
|
|
@@ -22,40 +21,14 @@ const CPP_RESERVED = new Set<string>([
|
|
|
22
21
|
])
|
|
23
22
|
|
|
24
23
|
|
|
25
|
-
// A collision-free snake_case C++ identifier for a model name.
|
|
26
24
|
function cppVarName(name: string): string {
|
|
27
25
|
const snake = String(name).replace(/[^a-zA-Z0-9_]/g, '_').toLowerCase()
|
|
28
26
|
return CPP_RESERVED.has(snake) ? snake + '_' : snake
|
|
29
27
|
}
|
|
30
28
|
|
|
31
29
|
|
|
32
|
-
// Deep-remove meta keys (`foo$`) from a model subtree.
|
|
33
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
34
|
-
//
|
|
35
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
36
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
37
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
38
|
-
// payload — see CONFIG_DEFAULT.
|
|
39
|
-
//
|
|
40
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
41
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
42
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
43
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
44
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
45
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
46
|
-
//
|
|
47
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
48
|
-
// `active` means something different in feature config, where absent reads as
|
|
49
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
50
|
-
// disable the feature.
|
|
51
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
52
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
53
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
54
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
55
30
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
56
31
|
|
|
57
|
-
// Keys whose value IS the default the runtime already assumes when the key is
|
|
58
|
-
// absent, so emitting them is pure payload.
|
|
59
32
|
const CONFIG_DEFAULT: Record<string, any> = {
|
|
60
33
|
active: true,
|
|
61
34
|
req: false,
|
|
@@ -91,7 +64,6 @@ function cleanModel(o: any, dropDefaults?: boolean): any {
|
|
|
91
64
|
}
|
|
92
65
|
|
|
93
66
|
|
|
94
|
-
// Escape a string for embedding inside a C++ double-quoted string literal.
|
|
95
67
|
function cppEscape(s: string): string {
|
|
96
68
|
return s.replace(/\\/g, '\\\\').replace(/"/g, '\\"')
|
|
97
69
|
}
|
|
@@ -42,36 +42,8 @@ const Config = cmp(async function Config(props: any) {
|
|
|
42
42
|
// helpers/applicability.
|
|
43
43
|
const feature = targetFeatures(model, target)
|
|
44
44
|
|
|
45
|
-
// The same config as an OBJECT, built by the shared helper so this target's
|
|
46
|
-
// literal and the data that replaces it above the threshold are the same
|
|
47
|
-
// config by construction. The JSON is what the threshold is measured on -
|
|
48
|
-
// emitted source size varies by language, the model does not.
|
|
49
|
-
//
|
|
50
|
-
// Passing target.name opts this target into main.slug / main.version /
|
|
51
|
-
// main.target (the three station descriptor fields, station design §4):
|
|
52
|
-
// both reps flow from this one call - the literal via formatCsMap(configDef)
|
|
53
|
-
// and the data rep via csStringLiteral(configJson) - so they cannot
|
|
54
|
-
// disagree on identity (mirrors Config_ts's #MainMeta block).
|
|
55
45
|
const { def: configDef, json: baseJson } = configDefinition(model, target.name)
|
|
56
46
|
|
|
57
|
-
// `in` and `name` TRAVEL WITH THE PREFIX NOW.
|
|
58
|
-
//
|
|
59
|
-
// apidef resolved both from the spec's securityScheme all along and this
|
|
60
|
-
// generator dropped them, so an apiKey-in-query API got an Authorization
|
|
61
|
-
// header it does not read (see PrepareAuth_csharp). The generated
|
|
62
|
-
// prepareAuth is built from the same two values, and the config carries
|
|
63
|
-
// them so the placement is a visible, overridable runtime option beside
|
|
64
|
-
// auth.prefix - which is also what stops the SDK's own MakeOptions from
|
|
65
|
-
// rejecting its own config: the auth optspec in tm/csharp/utility/
|
|
66
|
-
// MakeOptions.cs is a CLOSED map, and an undeclared key there fails
|
|
67
|
-
// validate with "Unexpected keys at field auth".
|
|
68
|
-
//
|
|
69
|
-
// Emitted ONLY when they differ from header/Authorization, so a
|
|
70
|
-
// header-based SDK's Config.cs is byte-identical to what it generated
|
|
71
|
-
// before. Both representations are patched through the one object, so
|
|
72
|
-
// the literal (formatCsMap) and the data rep (csStringLiteral) cannot
|
|
73
|
-
// disagree - the json is re-derived from the def, exactly as
|
|
74
|
-
// configDefinition derives it.
|
|
75
47
|
const authIn = resolveAuthIn(model)
|
|
76
48
|
const authName = resolveAuthName(model)
|
|
77
49
|
let configJson = baseJson
|
|
@@ -93,19 +65,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
93
65
|
|
|
94
66
|
const asData = isConfigData(configJson, configReprSetting(model))
|
|
95
67
|
|
|
96
|
-
// THE FEATURE PLUGIN MAP (the csharp peer of Config_go's featurePlugins).
|
|
97
|
-
//
|
|
98
|
-
// Upstream sekreto replaced its self-registration registry with
|
|
99
|
-
// voxgig/plugin definitions: a provider kind the caller did not pass in
|
|
100
|
-
// via `Plugins: [...]` is unknown to that Sekreto. So the config names
|
|
101
|
-
// each active plugin's exported Definition (the model's per-target `def`
|
|
102
|
-
// map - `AwsPlugins.Secrets`, a C# static field) and hands the list to
|
|
103
|
-
// the feature through SdkConfig.FeaturePlugins.
|
|
104
|
-
//
|
|
105
|
-
// FULLY QUALIFIED with `global::`, which is what makes an inactive model
|
|
106
|
-
// cost nothing: no `using` is emitted, so a config for a project with no
|
|
107
|
-
// plugin groups names no sekreto type at all and the generated file is
|
|
108
|
-
// byte-identical to one from a tree that has never heard of the feature.
|
|
109
68
|
const featurePlugins: Record<string, string[]> = {}
|
|
110
69
|
|
|
111
70
|
each(feature, (f: any) => {
|
|
@@ -147,18 +106,6 @@ public static class SdkConfig
|
|
|
147
106
|
{
|
|
148
107
|
`)
|
|
149
108
|
|
|
150
|
-
// ABOVE THE THRESHOLD: emit the model as DATA.
|
|
151
|
-
//
|
|
152
|
-
// A composite Dictionary literal is a single expression the C# compiler
|
|
153
|
-
// must bind, type and lower node by node, and every entry becomes IL the
|
|
154
|
-
// JIT executes on first call. A string constant is one token, and
|
|
155
|
-
// System.Text.Json builds the same dictionary from it far faster.
|
|
156
|
-
//
|
|
157
|
-
// JSON.stringify output is ALMOST a valid C# string literal: every escape
|
|
158
|
-
// it emits (\\", \\\\, \\b, \\f, \\n, \\r, \\t, \\uXXXX) means the same thing in C#,
|
|
159
|
-
// and it never emits \\/ or \\0, neither of which C# would accept. What it
|
|
160
|
-
// does leave raw is U+0085/U+2028/U+2029, which C# counts as line
|
|
161
|
-
// terminators and forbids inside a quoted literal - hence csStringLiteral.
|
|
162
109
|
if (asData) {
|
|
163
110
|
Content(` // THE API MODEL, EMBEDDED AS DATA (sdkgen rung L1).
|
|
164
111
|
//
|
|
@@ -246,16 +193,6 @@ public static class SdkConfig
|
|
|
246
193
|
`)
|
|
247
194
|
}
|
|
248
195
|
|
|
249
|
-
// SHARED CONFIG (sdkgen rung L2).
|
|
250
|
-
//
|
|
251
|
-
// The SDK reads the config on every request and never writes to it, so one
|
|
252
|
-
// instance is shared by every client rather than rebuilt per client. Above
|
|
253
|
-
// the size threshold MakeConfig re-parses the whole embedded JSON, so this
|
|
254
|
-
// is the difference between parsing the model once per process and once
|
|
255
|
-
// per client.
|
|
256
|
-
//
|
|
257
|
-
// Lazy<T> defaults to ExecutionAndPublication, so concurrent first calls
|
|
258
|
-
// build it exactly once - the C# twin of go's sync.Once.
|
|
259
196
|
Content(`
|
|
260
197
|
private static readonly Lazy<Dictionary<string, object?>> SharedConfigVal =
|
|
261
198
|
new(MakeConfig);
|
|
@@ -270,22 +207,6 @@ public static class SdkConfig
|
|
|
270
207
|
}
|
|
271
208
|
`)
|
|
272
209
|
|
|
273
|
-
// ALWAYS EMITTED, even with no case at all - the same rule Config_py
|
|
274
|
-
// states for FEATURE_PLUGINS, and for the same reason. csharp's feature
|
|
275
|
-
// source is copied by Main's blanket `tm/<target>` copy whether or not
|
|
276
|
-
// the model declares the feature (only `target add` trims it, and only
|
|
277
|
-
// for a project that runs it), so SecretsFeature.cs can be present in a
|
|
278
|
-
// tree whose model has secrets switched off. Emitting this
|
|
279
|
-
// conditionally was tried and it breaks exactly there: `error CS0117:
|
|
280
|
-
// 'SdkConfig' does not contain a definition for 'FeaturePlugins'`,
|
|
281
|
-
// which takes the whole assembly down rather than leaving one unused
|
|
282
|
-
// class behind.
|
|
283
|
-
//
|
|
284
|
-
// The cost of always emitting is five inert lines and NO type
|
|
285
|
-
// reference: the return is List<object?>, so a Config.cs for a project
|
|
286
|
-
// with no plugin groups names nothing from the vendored trees and needs
|
|
287
|
-
// no `using`. The feature reads the list back and type-tests, which is
|
|
288
|
-
// go's shape too.
|
|
289
210
|
Content(`
|
|
290
211
|
public static List<object?> FeaturePlugins(string name)
|
|
291
212
|
{
|
|
@@ -9,9 +9,6 @@ const EntityOperation = cmp(function Operation(props: any) {
|
|
|
9
9
|
const { model } = props.ctx$
|
|
10
10
|
const { ff, opname, entity, entrep, cls } = props
|
|
11
11
|
|
|
12
|
-
// The op markers sit inside the class body, so the captured indent (the
|
|
13
|
-
// class-member indent, 4 spaces) is applied to the whole spliced
|
|
14
|
-
// fragment; the fragment's EJECT region is written at column 0.
|
|
15
12
|
const { indent } = props
|
|
16
13
|
|
|
17
14
|
Fragment({
|
|
@@ -1,33 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Typed-model generator (C# target). Port of EntityTypes_py.ts / EntityTypes_js.ts.
|
|
4
|
-
//
|
|
5
|
-
// Reads main.<KIT>.entity.<e>.fields[] and per-op params
|
|
6
|
-
// (op.<name>.points[].args.params[]) and emits one file, core/<Name>Types.cs,
|
|
7
|
-
// with a `public record <Name>` per active entity plus a request/match record
|
|
8
|
-
// per active op.
|
|
9
|
-
//
|
|
10
|
-
// TYPE CHOICE: reference `record` types with nullable `init` properties, NOT
|
|
11
|
-
// the wired runtime type. The generated ops take/return the loose object model
|
|
12
|
-
// (`Dictionary<string, object?>` / `object?`), so these records are NOT wired
|
|
13
|
-
// into the op signatures — they are documentation/DX reference shapes a caller
|
|
14
|
-
// may use to describe a payload before converting it to a dictionary. This
|
|
15
|
-
// mirrors the JS target's JSDoc typedefs (annotation only, no runtime effect):
|
|
16
|
-
// C# has no annotation-only type, so a `record` is the closest zero-behaviour
|
|
17
|
-
// analogue. Emitting unused records is harmless — they compile and have no
|
|
18
|
-
// runtime effect.
|
|
19
|
-
//
|
|
20
|
-
// OPTIONAL FIELDS: a `req:false` field/param becomes a nullable property
|
|
21
|
-
// (`T?`), a required one the plain type (`T`). Nullability warnings for
|
|
22
|
-
// uninitialised required reference properties (CS8618) are already suppressed
|
|
23
|
-
// by the generated csproj, so no initialisation is forced.
|
|
24
|
-
//
|
|
25
|
-
// Sentinels map to C# types via the SHARED canonToType 'csharp' column (the
|
|
26
|
-
// single source of truth per language — do not keep a local table here).
|
|
27
|
-
//
|
|
28
|
-
// Keep the SAME type-name scheme as every other language: <Name>,
|
|
29
|
-
// <Name>LoadMatch, <Name>ListMatch, <Name>CreateData, <Name>UpdateData,
|
|
30
|
-
// <Name>RemoveMatch (via the shared opTypeName helper).
|
|
31
3
|
|
|
32
4
|
import {
|
|
33
5
|
cmp, each, names,
|
|
@@ -45,7 +17,6 @@ import {
|
|
|
45
17
|
const LANG = 'csharp'
|
|
46
18
|
|
|
47
19
|
|
|
48
|
-
// C# keywords that need the `@` verbatim prefix to be legal identifiers.
|
|
49
20
|
const CS_KEYWORDS = new Set<string>([
|
|
50
21
|
'abstract', 'as', 'base', 'bool', 'break', 'byte', 'case', 'catch',
|
|
51
22
|
'char', 'checked', 'class', 'const', 'continue', 'decimal', 'default',
|
|
@@ -61,26 +32,16 @@ const CS_KEYWORDS = new Set<string>([
|
|
|
61
32
|
])
|
|
62
33
|
|
|
63
34
|
|
|
64
|
-
// A field/param name that has a safe C# property rendering (valid identifier).
|
|
65
|
-
// Names that are not valid identifiers (hyphens, leading digits) have no clean
|
|
66
|
-
// property form and are skipped — they remain reachable via the runtime dict.
|
|
67
35
|
function csIdent(name: string): boolean {
|
|
68
36
|
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(name)
|
|
69
37
|
}
|
|
70
38
|
|
|
71
39
|
|
|
72
|
-
// A legal C# property identifier: keyword names get the `@` verbatim prefix.
|
|
73
40
|
function csProp(name: string): string {
|
|
74
41
|
return CS_KEYWORDS.has(name) ? '@' + name : name
|
|
75
42
|
}
|
|
76
43
|
|
|
77
44
|
|
|
78
|
-
// Emit `public record <typeName>` from {name, type, optional} items. Optional
|
|
79
|
-
// items become nullable properties (`T?`); required items the plain type. An
|
|
80
|
-
// item whose name is not a legal identifier is skipped (WITH a warning — the
|
|
81
|
-
// key stays reachable via the runtime dict, but its absence from the typed
|
|
82
|
-
// model should be visible, not silent). An empty record is a valid,
|
|
83
|
-
// zero-member shape.
|
|
84
45
|
function emitRecord(typeName: string, items: any[], log?: any): void {
|
|
85
46
|
const usable = items.filter((it: any) => it && null != it.name && csIdent(it.name))
|
|
86
47
|
|
|
@@ -107,7 +68,6 @@ function emitRecord(typeName: string, items: any[], log?: any): void {
|
|
|
107
68
|
`)
|
|
108
69
|
usable.forEach((it: any) => {
|
|
109
70
|
const base = canonToType(it.type, LANG)
|
|
110
|
-
// `object?` is already nullable; other types get a trailing `?` when optional.
|
|
111
71
|
const t = it.optional && !base.endsWith('?') ? base + '?' : base
|
|
112
72
|
Content(` public ${t} ${csProp(it.name)} { get; init; }
|
|
113
73
|
`)
|
|
@@ -123,10 +83,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
123
83
|
const target = props.target || {}
|
|
124
84
|
const ext = target.ext || 'cs'
|
|
125
85
|
|
|
126
|
-
// only_active:false — getModelPath DROPS active:false entries by default,
|
|
127
|
-
// but the consumer scaffold (create-sdkgen Root.ts) iterates the RAW entity
|
|
128
|
-
// collection, so inactive entities still get generated entity code that
|
|
129
|
-
// references these typed names. The typed model must cover them too.
|
|
130
86
|
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
131
87
|
// Emit for EVERY entity that gets generated entity code: the consumer
|
|
132
88
|
// scaffold (create-sdkgen Root.ts) iterates entities WITHOUT an active
|
|
@@ -138,9 +94,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
138
94
|
// entity not yet named (e.g. a fieldless placeholder) would otherwise read
|
|
139
95
|
// `Name = undefined` below. Parity with the go/py emitter's fix.
|
|
140
96
|
|
|
141
|
-
// Surface duplicate generated type names (two entities with the same
|
|
142
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
143
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
144
97
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
145
98
|
|
|
146
99
|
File({ name: model.const.Name + 'Types.' + ext }, () => {
|
|
@@ -167,13 +120,10 @@ namespace ${model.const.Name}Sdk.Types;
|
|
|
167
120
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
168
121
|
.filter((f: any) => f.active !== false)
|
|
169
122
|
|
|
170
|
-
// Entity data model: one property per field, `req:false` -> nullable.
|
|
171
123
|
emitRecord(Name, fields.map((f: any) => ({
|
|
172
124
|
name: f.name, type: f.type, optional: false === f.req,
|
|
173
125
|
})), log)
|
|
174
126
|
|
|
175
|
-
// Per active op: a request/match record. Members and their optionality
|
|
176
|
-
// come from the shared partiality policy (opRequestShape).
|
|
177
127
|
const ops = ent.op || {}
|
|
178
128
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
179
129
|
if (null == ops[opname]) {
|
|
@@ -33,7 +33,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
33
33
|
|
|
34
34
|
const ff = Path.normalize(__dirname + '/../../../src/cmp/csharp/fragment/')
|
|
35
35
|
|
|
36
|
-
// Entity files go to entity/ with PascalCase class-file names.
|
|
37
36
|
Folder({ name: 'entity' }, () => {
|
|
38
37
|
|
|
39
38
|
File({ name: cls + '.' + target.ext }, () => {
|
|
@@ -42,15 +42,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
42
42
|
|
|
43
43
|
Gitignore({})
|
|
44
44
|
|
|
45
|
-
// Copy tm/csharp files with replacements. `src/` holds only the
|
|
46
|
-
// per-feature extension folders (not shipped into the SDK output).
|
|
47
|
-
//
|
|
48
|
-
// pluginExcludes: the generate-time plugin trim (a DECLARED-but-INACTIVE
|
|
49
|
-
// plugin group's files are never copied). Without it every group's files
|
|
50
|
-
// ship regardless of the model, and an SDK whose chain is [dotenv, env]
|
|
51
|
-
// carries AWS request signing and seven HTTP vault clients - the whole
|
|
52
|
-
// point of the trim. Feature-level trimming happens at `target add`
|
|
53
|
-
// time; this is the per-plugin cut inside a feature that IS selected.
|
|
54
45
|
Copy({
|
|
55
46
|
from: 'tm/' + target.name,
|
|
56
47
|
exclude: [/src\//, TEST_CONTROL_EXCLUDE, ...pluginExcludes(model)],
|
|
@@ -59,21 +50,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
59
50
|
}
|
|
60
51
|
})
|
|
61
52
|
|
|
62
|
-
// GENERATED, NOT COPIED. Where the credential goes is a fact about the
|
|
63
|
-
// API, and tm/ can only hold one answer. See PrepareAuth_csharp.
|
|
64
|
-
//
|
|
65
|
-
// CALLED HERE, AT THE ROOT, and NOT inside the core/ Folder below. The
|
|
66
|
-
// template it replaces lived at `tm/csharp/utility/PrepareAuth.cs`, so
|
|
67
|
-
// the blanket Copy above put it at `<out>/utility/PrepareAuth.cs` -
|
|
68
|
-
// beside Register.cs, which wires `u.PrepareAuth = PrepareAuthUtil` from
|
|
69
|
-
// the same `partial class SdkUtility`. The component opens its own
|
|
70
|
-
// `utility` Folder; moving this call next to Config would nest it under
|
|
71
|
-
// core/ and write `core/utility/PrepareAuth.cs`, where nothing compiles
|
|
72
|
-
// it into the utility partial.
|
|
73
|
-
//
|
|
74
|
-
// The template MUST be deleted for the same reason it is generated: the
|
|
75
|
-
// Copy above and this component would otherwise both claim
|
|
76
|
-
// `utility/PrepareAuth.cs`, and jostraca refuses a duplicate output path.
|
|
77
53
|
PrepareAuth({ target })
|
|
78
54
|
|
|
79
55
|
// Generated files live in core/ beside the copied runtime.
|
|
@@ -22,12 +22,6 @@ import {
|
|
|
22
22
|
} from '@voxgig/apidef'
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
// Emits the two MSBuild project files (the C# twin of Package_go's go.mod):
|
|
26
|
-
// <Name>SDK.csproj - the library, compiling everything except test/
|
|
27
|
-
// test/<Name>SDKTest.csproj - the xunit test project (mirrors the
|
|
28
|
-
// voxgig/struct csharp two-csproj layout)
|
|
29
|
-
// PackageReference entries come from collectDeps (feature + target deps);
|
|
30
|
-
// the runtime itself is BCL-only.
|
|
31
25
|
const Package = cmp(async function Package(props: any) {
|
|
32
26
|
const ctx$ = props.ctx$
|
|
33
27
|
const target = props.target
|
|
@@ -50,20 +44,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
50
44
|
? ` <ItemGroup>\n${depRefs}\n </ItemGroup>\n`
|
|
51
45
|
: ''
|
|
52
46
|
|
|
53
|
-
// CS8619, and ONLY when the secrets feature's `aws` plugin group is
|
|
54
|
-
// selected. Upstream sekreto builds its plugin assembly with <Nullable>
|
|
55
|
-
// disabled; vendored into an SDK that enables it, plugins/Aws.cs:87
|
|
56
|
-
// reports one nullability mismatch on a tuple conversion. It is a
|
|
57
|
-
// VENDORED file, so it cannot be fixed here (a silent tweak to vendored
|
|
58
|
-
// source is exactly what the vendoring guard exists to prevent), and it
|
|
59
|
-
// is the only such warning in the whole vendored set.
|
|
60
|
-
//
|
|
61
|
-
// Gated rather than added to the standing list because the standing list
|
|
62
|
-
// is a promise about EVERY generated SDK: CS8619 catches a real class of
|
|
63
|
-
// bug in ordinary code, and switching it off for everyone to quiet one
|
|
64
|
-
// line in one vendored file would be paying for a feature that is off by
|
|
65
|
-
// default. `getModelPath` is active-filtered, so this reads as present
|
|
66
|
-
// only when the group is really on.
|
|
67
47
|
const awsPlugin = getModelPath(model,
|
|
68
48
|
`main.${KIT}.feature.secrets.plugin.aws`, { required: false })
|
|
69
49
|
const vendorNoWarn = null == awsPlugin ? '' : ';CS8619'
|
|
@@ -16,30 +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/csharp/utility/PrepareAuth.cs` that
|
|
23
|
-
// hardcoded `authorization` and a header. apidef has always resolved the
|
|
24
|
-
// scheme's `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
|
|
28
|
-
// repos 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
|
|
34
|
-
// a bearer-token SDK, and no runtime `if` on a value that is fixed at
|
|
35
|
-
// generation time.
|
|
36
|
-
//
|
|
37
|
-
// This is the csharp port of PrepareAuth_ts, and it keeps the C# file's
|
|
38
|
-
// own idioms (lazy prefix read, `TryGetValue` for a suppressed auth
|
|
39
|
-
// block, `Remove` rather than a struct delprop): the credential MOVES,
|
|
40
|
-
// nothing else changes. For the default header placement the rendered
|
|
41
|
-
// file is BYTE-IDENTICAL to the template it replaces, so every
|
|
42
|
-
// header-based csharp SDK regenerates with no diff at all.
|
|
43
19
|
const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
44
20
|
const { target } = props
|
|
45
21
|
const { model } = props.ctx$
|
|
@@ -49,19 +25,6 @@ const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
|
49
25
|
const name = resolveAuthName(model)
|
|
50
26
|
const basic = isHttpBasicAuth(model)
|
|
51
27
|
|
|
52
|
-
// `utility`, opened HERE, and the call site in Main_csharp is at the
|
|
53
|
-
// ROOT - deliberately outside `Folder({ name: 'core' })`.
|
|
54
|
-
//
|
|
55
|
-
// csharp's layout is not ts's. Main_csharp copies `tm/csharp` at the
|
|
56
|
-
// root, so the template this replaces landed at `<out>/utility/
|
|
57
|
-
// PrepareAuth.cs`, beside MakeSpec.cs and Register.cs - which is the
|
|
58
|
-
// one path that compiles, since Register.cs wires `u.PrepareAuth =
|
|
59
|
-
// PrepareAuthUtil` from the same `partial class SdkUtility`. The
|
|
60
|
-
// generated files (Config, SdkError, EntityBase, EntityTypes) sit one
|
|
61
|
-
// level down in `core/` because Main opens that Folder around them; a
|
|
62
|
-
// call from inside it would write `core/utility/PrepareAuth.cs`, which
|
|
63
|
-
// nothing compiles into the utility partial and which would leave the
|
|
64
|
-
// stale copy at `utility/` being used instead.
|
|
65
28
|
Folder({ name: 'utility' }, () => {
|
|
66
29
|
File({ name: 'PrepareAuth.' + target.ext }, () => {
|
|
67
30
|
Content(render({
|
|
@@ -76,30 +39,6 @@ const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
|
76
39
|
})
|
|
77
40
|
|
|
78
41
|
|
|
79
|
-
// DELIBERATELY NARROWER THAN isAuthActive, and measured rather than assumed.
|
|
80
|
-
//
|
|
81
|
-
// isAuthActive answers TWO different questions with one boolean:
|
|
82
|
-
//
|
|
83
|
-
// 1. `main.kit.config.auth.active: false` - this SDK is deliberately
|
|
84
|
-
// built WITHOUT auth. A per-SDK decision.
|
|
85
|
-
// 2. `main.kit.info.auth: false` - the SPEC declares no security
|
|
86
|
-
// scheme. A fact about the API.
|
|
87
|
-
//
|
|
88
|
-
// Only (1) may silence prepareAuth. (2) says nothing about whether the
|
|
89
|
-
// CALLER holds a credential, and csharp has always let one through: the
|
|
90
|
-
// optspec in tm/csharp/utility/MakeOptions.cs supplies an `auth` default
|
|
91
|
-
// map whether or not the generated config carries one, so `options.auth` is
|
|
92
|
-
// non-null at runtime and the old template placed `options.apikey` in the
|
|
93
|
-
// authorization header regardless of what the spec declared. The generated
|
|
94
|
-
// secrets feature and the auth-null probe both depend on exactly that.
|
|
95
|
-
//
|
|
96
|
-
// Gating the no-op on isAuthActive instead turns two csharp tests red -
|
|
97
|
-
// `csharp: auth null beats an explicit apikey` ("baseline broken: an
|
|
98
|
-
// ordinary apikey was not sent") and `csharp: the secrets feature runs with
|
|
99
|
-
// the feature active` - because the generate harness model IS case (2)
|
|
100
|
-
// (`main: kit: info: { ..., auth: false }`). Losing the ability to
|
|
101
|
-
// authenticate is the defect this whole change exists to fix, so it is not
|
|
102
|
-
// worth re-introducing at the other end.
|
|
103
42
|
function authSwitchedOff(model: any): boolean {
|
|
104
43
|
const auth = getModelPath(model, `main.${KIT}.config.auth`,
|
|
105
44
|
{ only_active: false, required: false })
|
|
@@ -112,9 +51,6 @@ function render(spec: {
|
|
|
112
51
|
}): string {
|
|
113
52
|
const Name = spec.Name
|
|
114
53
|
|
|
115
|
-
// AUTH SWITCHED OFF FOR THIS SDK (`config.auth.active: false`). The
|
|
116
|
-
// project has said it wants no credential placed, so prepareAuth places
|
|
117
|
-
// none - rather than one that deletes a header nobody set.
|
|
118
54
|
if (!spec.active) {
|
|
119
55
|
return `// ${Name} SDK utility: prepareAuth - this SDK is built with auth
|
|
120
56
|
// switched off, so there is no credential to place.
|
|
@@ -142,22 +78,10 @@ public static partial class SdkUtility
|
|
|
142
78
|
return renderCookie(Name, csstr(spec.name))
|
|
143
79
|
}
|
|
144
80
|
|
|
145
|
-
// HEADER NAMES ARE LOWERCASED, and the rest of the generated C# is why.
|
|
146
|
-
// `spec.Headers` is a plain Dictionary<string, object?> - case-SENSITIVE -
|
|
147
|
-
// and every other writer of an auth header in this target spells it
|
|
148
|
-
// lowercase: SecretsFeature re-writes `headers["authorization"]` on a
|
|
149
|
-
// refresh, MakeSpec sets `headers["content-type"]`, and the generated
|
|
150
|
-
// tests assert `Headers["authorization"]`. An `Authorization` key here
|
|
151
|
-
// would sit BESIDE those rather than replace them and go out as a second
|
|
152
|
-
// header. Header names are case-insensitive on the wire (RFC 7230) and
|
|
153
|
-
// lowercase on HTTP/2, so nothing is lost. Query parameter and cookie
|
|
154
|
-
// names, which ARE case-sensitive, are emitted verbatim above.
|
|
155
81
|
return renderHeader(Name, csstr(String(spec.name).toLowerCase()), spec.basic)
|
|
156
82
|
}
|
|
157
83
|
|
|
158
84
|
|
|
159
|
-
// HEADER. Byte-identical to the template it replaces whenever the resolved
|
|
160
|
-
// name is the default (`authorization`) and the scheme is not HTTP Basic.
|
|
161
85
|
function renderHeader(Name: string, cred: string, basic: boolean): string {
|
|
162
86
|
// HTTP Basic is header-only by definition: the scheme is
|
|
163
87
|
// `Authorization: Basic base64(user:pass)`. It cannot be expressed as a
|
|
@@ -320,9 +244,6 @@ public static partial class SdkUtility
|
|
|
320
244
|
}
|
|
321
245
|
|
|
322
246
|
|
|
323
|
-
// COOKIE. A cookie IS a header, so the credential rides in the shared
|
|
324
|
-
// `cookie` header - APPENDED to whatever options.headers (or an earlier
|
|
325
|
-
// feature) already put there, never assigned over it.
|
|
326
247
|
function renderCookie(Name: string, cred: string): string {
|
|
327
248
|
return `// ${Name} SDK utility: prepareAuth - carry the API credential in the
|
|
328
249
|
// ${cred} cookie, from the client options.
|
|
@@ -380,8 +301,6 @@ public static partial class SdkUtility
|
|
|
380
301
|
}
|
|
381
302
|
|
|
382
303
|
|
|
383
|
-
// A C# double-quoted string literal body. These names come from the API's
|
|
384
|
-
// own securityScheme, so they are not guaranteed to be bare identifiers.
|
|
385
304
|
function csstr(s: string): string {
|
|
386
305
|
return String(s).replace(/\\/g, '\\\\').replace(/"/g, '\\"')
|
|
387
306
|
}
|
|
@@ -56,7 +56,6 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
56
56
|
publishedEntities.map((entity: any) => {
|
|
57
57
|
const opnames = Object.keys(entity.op || {})
|
|
58
58
|
const fields = entity.fields || []
|
|
59
|
-
// Model-driven id key: null when this entity has no id-like field.
|
|
60
59
|
const idF = entityIdField(entity)
|
|
61
60
|
// Sanitise the local variable name — a camelCased C# keyword gets a
|
|
62
61
|
// trailing underscore (csVarName) so the snippet compiles.
|
|
@@ -2,29 +2,6 @@
|
|
|
2
2
|
import { cmp, File, Content } from '@voxgig/sdkgen'
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
// Emits test/ReadmeExamplesTest.cs — an xUnit PRESENCE + STRUCTURE gate over
|
|
6
|
-
// every ```csharp fenced block in the repository ROOT README.md, the
|
|
7
|
-
// per-language csharp/README.md, AND the per-language csharp/REFERENCE.md.
|
|
8
|
-
//
|
|
9
|
-
// SCOPE NOTE (deliberate, documented): the Python/TS/Go equivalents EXECUTE and
|
|
10
|
-
// type-check every documented block. That is infeasible here — the generated
|
|
11
|
-
// C# SDK targets the .NET BCL only (no Roslyn scripting dependency), so a test
|
|
12
|
-
// project cannot compile-and-run arbitrary doc snippets at test time without a
|
|
13
|
-
// dependency the target explicitly forbids. This gate therefore guarantees the
|
|
14
|
-
// weaker-but-real invariant that keeps the docs honest as the generator
|
|
15
|
-
// evolves:
|
|
16
|
-
// 1. every doc exists and contains at least one ```csharp block (nothing was
|
|
17
|
-
// dropped);
|
|
18
|
-
// 2. every ```csharp block is structurally well-formed — its braces,
|
|
19
|
-
// parentheses and brackets balance (catches a truncated or malformed
|
|
20
|
-
// generated snippet), and it references the SDK/client surface so it is a
|
|
21
|
-
// real example, not an empty fence.
|
|
22
|
-
// A per-doc summary line makes the coverage visible in the test output.
|
|
23
|
-
//
|
|
24
|
-
// The emitted C# is written WITHOUT literal backticks (the fence marker is
|
|
25
|
-
// built at runtime as new string((char)96, 3)) so this TS template literal
|
|
26
|
-
// stays clean — the only interpolations are the SDK class name and the
|
|
27
|
-
// generated entity map.
|
|
28
5
|
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
29
6
|
const { target, ctx$: { model } } = props
|
|
30
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape , targetFeatures } from '@voxgig/sdkgen'
|
|
3
3
|
import { ReadmeRefFeatures } from '@voxgig/sdkgen'
|
|
4
4
|
|
|
5
5
|
import {
|
|
@@ -58,7 +58,7 @@ const ReadmeRef = cmp(function ReadmeRef(props: any) {
|
|
|
58
58
|
const { model } = props.ctx$
|
|
59
59
|
|
|
60
60
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
61
|
-
const feature =
|
|
61
|
+
const feature = targetFeatures(model, target)
|
|
62
62
|
|
|
63
63
|
const publishedEntities = each(entity).filter((e: any) => e.active !== false)
|
|
64
64
|
|
|
@@ -380,9 +380,6 @@ var client = new ${model.const.Name}SDK(new Dictionary<string, object?>
|
|
|
380
380
|
\`\`\`
|
|
381
381
|
|
|
382
382
|
`)
|
|
383
|
-
// The shared feature reference: options, defaults, usage and the
|
|
384
|
-
// considerations. Model facts, identical in every target, so they are
|
|
385
|
-
// written once in cmp/ReadmeRefFeatures.ts rather than here.
|
|
386
383
|
ReadmeRefFeatures({ target })
|
|
387
384
|
}
|
|
388
385
|
|
|
@@ -49,8 +49,6 @@ var client = ${ctor};
|
|
|
49
49
|
// C# keyword gets a trailing underscore (csVarName) so the snippet compiles.
|
|
50
50
|
const eVar = csVarName(exampleEntity.name)
|
|
51
51
|
const opnames = Object.keys(exampleEntity.op || {})
|
|
52
|
-
// Model-driven id key: null when the entity has no id-like field, in which
|
|
53
|
-
// case the load example takes an empty match.
|
|
54
52
|
const idF = entityIdField(exampleEntity)
|
|
55
53
|
|
|
56
54
|
if (opnames.includes('list')) {
|