@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
|
@@ -12,11 +12,6 @@ function projectPath(suffix?: string): string {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
// Render a JSON-shaped value as Clojure source that builds the equivalent
|
|
16
|
-
// vendored-struct value node: maps -> (vs/jm "k" v ...), arrays -> (vs/jt v
|
|
17
|
-
// ...), scalars -> literals. Keys are emitted in sorted order for byte-stable
|
|
18
|
-
// output. Empty map/array render as (vs/jm) / (vs/jt), so the result is valid
|
|
19
|
-
// for 0, 1 or N entries (N-feature-safe).
|
|
20
15
|
function formatCljValue(val: any, indent: number = 0): string {
|
|
21
16
|
if (val === null || val === undefined) {
|
|
22
17
|
return 'nil'
|
|
@@ -63,29 +58,6 @@ function cljString(s: string): string {
|
|
|
63
58
|
}
|
|
64
59
|
|
|
65
60
|
|
|
66
|
-
// Remove `$`-suffixed model annotation keys (mirrors utility_rb.clean).
|
|
67
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
68
|
-
//
|
|
69
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
70
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
71
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
72
|
-
// payload — see CONFIG_DEFAULT.
|
|
73
|
-
//
|
|
74
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
75
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
76
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
77
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
78
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
79
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
80
|
-
//
|
|
81
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
82
|
-
// `active` means something different in feature config, where absent reads as
|
|
83
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
84
|
-
// disable the feature.
|
|
85
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
86
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
87
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
88
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
89
61
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
90
62
|
|
|
91
63
|
// Keys whose value IS the default the runtime already assumes when the key is
|
|
@@ -126,25 +98,6 @@ function clean(o: any, dropDefaults?: boolean): any {
|
|
|
126
98
|
|
|
127
99
|
|
|
128
100
|
|
|
129
|
-
// The JSON as Clojure string literals, CHUNKED, joined at load.
|
|
130
|
-
//
|
|
131
|
-
// A Clojure string literal becomes a JVM constant-pool UTF-8 entry, and those
|
|
132
|
-
// are capped at 65,535 bytes. One constant therefore cannot hold a config
|
|
133
|
-
// large enough to select the data representation at all - the threshold is
|
|
134
|
-
// 256 KB, so every model that reaches this branch would exceed the limit.
|
|
135
|
-
//
|
|
136
|
-
// The failure is AOT-only and so is easy to miss: loading from source is fine,
|
|
137
|
-
// and `clojure -M:test-compile` only `require`s. It appears the moment anyone
|
|
138
|
-
// compiles the SDK, which is the normal path for distribution:
|
|
139
|
-
//
|
|
140
|
-
// Execution error (IllegalArgumentException)
|
|
141
|
-
// at clojure.asm.ByteVector/putUTF8 (ByteVector.java:245)
|
|
142
|
-
//
|
|
143
|
-
// java/kotlin/scala already chunk for exactly this reason (see Config_java's
|
|
144
|
-
// jsonAppendLines). Chunks are measured in UTF-8 BYTES, not characters, with
|
|
145
|
-
// a wide margin: modified UTF-8 encodes a supplementary character as six
|
|
146
|
-
// bytes, so a character count is not a byte count. Surrogate pairs are kept
|
|
147
|
-
// whole, or a cut would emit a lone surrogate.
|
|
148
101
|
function cljStringChunks(json: string, maxBytes: number = 20000): string[] {
|
|
149
102
|
const chunks: string[] = []
|
|
150
103
|
let start = 0
|
|
@@ -24,27 +24,6 @@ import {
|
|
|
24
24
|
} from './utility_cpp'
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
// PLUGIN DEFINITIONS PER FEATURE (the cpp peer of Config_c's
|
|
28
|
-
// pluginDefinitions and Config_go's featurePlugins map).
|
|
29
|
-
//
|
|
30
|
-
// Upstream sekreto retired its self-registration registry for voxgig/plugin
|
|
31
|
-
// definitions: a provider kind the caller did not pass in
|
|
32
|
-
// `SekretoOptions::plugins` is unknown to that Sekreto. So the model's
|
|
33
|
-
// choice of plugin groups IS the SDK's provider vocabulary, and the
|
|
34
|
-
// generated code names each active group's factory (`def: cpp:` in
|
|
35
|
-
// model/feature/secrets.aon - `hashicorp`, the `Definition hashicorp()`
|
|
36
|
-
// each vendored kind header declares in namespace sekreto) and nothing
|
|
37
|
-
// else. A symbol named here whose file the plugin trim removed is an
|
|
38
|
-
// unresolved reference at link time - a loud failure, which is the right
|
|
39
|
-
// kind. The owning file is kept per symbol because the generated
|
|
40
|
-
// translation unit has to include that file's header.
|
|
41
|
-
//
|
|
42
|
-
// One entry per ACTIVE feature that declares a `plugin` map at all, read
|
|
43
|
-
// with `only_active: false` (pluginExcludesFor's subtlety: the feature
|
|
44
|
-
// object a component is handed has already been filtered, so a feature
|
|
45
|
-
// whose groups are all off would otherwise look like one with no plugin
|
|
46
|
-
// machinery, and its kinds.cpp - which the Makefile reads as the feature's
|
|
47
|
-
// WIRING - would not be emitted).
|
|
48
27
|
function pluginDefinitions(model: Model, target: any):
|
|
49
28
|
Record<string, { syms: Record<string, string>, groups: number }> {
|
|
50
29
|
const out: Record<string, { syms: Record<string, string>, groups: number }> = {}
|
|
@@ -75,50 +54,6 @@ function pluginDefinitions(model: Model, target: any):
|
|
|
75
54
|
}
|
|
76
55
|
|
|
77
56
|
|
|
78
|
-
// feature/<name>/kinds.cpp - GENERATED, one per plugin-bearing active
|
|
79
|
-
// feature, and the ONE translation unit this otherwise header-only target
|
|
80
|
-
// generates.
|
|
81
|
-
//
|
|
82
|
-
// It cannot live in core/config.hpp: that header is included by every test
|
|
83
|
-
// translation unit, and it must not name the vendored voxgig/plugin's
|
|
84
|
-
// `Definition` type - the same reason go hides its list behind []any and c
|
|
85
|
-
// behind void**. So config.hpp's accessor is type-erased
|
|
86
|
-
// (std::shared_ptr<void>), and this file, which may include the kind
|
|
87
|
-
// headers, produces the erased list. It sits one level ABOVE the vendored
|
|
88
|
-
// sekreto/, plugin/ and plugins/ directories on purpose: the vendoring
|
|
89
|
-
// guard fails any non-vendored file inside a vendor dir, and this one is
|
|
90
|
-
// generated.
|
|
91
|
-
//
|
|
92
|
-
// Beside it goes feature/<name>/kinds.mk, the feature's BUILD WIRING: a
|
|
93
|
-
// generated make fragment that tm/cpp/Makefile reads through
|
|
94
|
-
// `-include $(wildcard feature/*/kinds.mk)`. The Makefile itself names no
|
|
95
|
-
// feature (the `nothing left behind names a dropped feature` guard holds a
|
|
96
|
-
// trimmed template tree to that), so everything the payload needs from the
|
|
97
|
-
// build is stated here, from the model: this translation unit and the
|
|
98
|
-
// vendored cores to compile into libsdkfeature.a, the suite to build, and
|
|
99
|
-
// - only when a plugin group is active - the plugin layer with the OpenSSL
|
|
100
|
-
// it brings. A tree whose model never activated the feature has no
|
|
101
|
-
// fragment, compiles none of the payload and links libstdc++ alone. Both
|
|
102
|
-
// files are emitted for an active feature with NO active group as well -
|
|
103
|
-
// an [env, memory] chain still needs the sekreto core - with an empty
|
|
104
|
-
// definitions list and no plugin layer.
|
|
105
|
-
//
|
|
106
|
-
// For `secrets` it additionally carries `secrets_rawfetch`, the
|
|
107
|
-
// token-exchange transport of last resort (go's rawExchangeFetch). The cpp
|
|
108
|
-
// core ships no HTTP client (utility/pipeline.hpp fetcher: "provide
|
|
109
|
-
// options.system.fetch"), and the decision for this target - as for c - is
|
|
110
|
-
// to bundle one INSIDE the gated feature, compiled in only when a plugin
|
|
111
|
-
// group is active, so an SDK without secrets, or with a chain of built-ins,
|
|
112
|
-
// still ships zero external dependencies. DELIBERATE DIVERGENCE from c,
|
|
113
|
-
// which bundles libcurl: the cpp sekreto port exports its own HTTPS client
|
|
114
|
-
// (`sekreto::httprequest`, plugins/Httpjson.cpp over plugins/Tls.cpp), and
|
|
115
|
-
// it is already compiled and linked - OpenSSL and all - on exactly the
|
|
116
|
-
// condition this transport needs. Reusing it means one HTTP stack and one
|
|
117
|
-
// -l pair (-lssl -lcrypto) instead of two; kinds.mk links OpenSSL on the
|
|
118
|
-
// same condition (a plugin group active), so the two cannot disagree.
|
|
119
|
-
// With no group active the exchange still works through a caller-supplied
|
|
120
|
-
// options.system.fetch, which every live cpp request already lives under;
|
|
121
|
-
// only the fallback is missing, and it says so.
|
|
122
57
|
const FeaturePlugins = cmp(async function FeaturePlugins(props: any) {
|
|
123
58
|
const ctx$ = props.ctx$
|
|
124
59
|
const target = props.target
|
|
@@ -132,10 +67,6 @@ const FeaturePlugins = cmp(async function FeaturePlugins(props: any) {
|
|
|
132
67
|
const { syms, groups } = defs[fname]
|
|
133
68
|
const symnames = Object.keys(syms).sort()
|
|
134
69
|
|
|
135
|
-
// The header each selected kind file declares its factory in,
|
|
136
|
-
// relative to this file (feature/<fname>/): `feature/<fname>/
|
|
137
|
-
// plugins/Hashicorp.cpp` -> `plugins/Hashicorp.hpp`. Deduplicated,
|
|
138
|
-
// because aws declares two factories in one header.
|
|
139
70
|
const headers = Array.from(new Set(symnames.map((sym) =>
|
|
140
71
|
syms[sym]
|
|
141
72
|
.replace(new RegExp('^feature/' + fname + '/'), '')
|
|
@@ -324,38 +255,8 @@ const Config = cmp(async function Config(props: any) {
|
|
|
324
255
|
// helpers/applicability.
|
|
325
256
|
const feature = targetFeatures(model, target)
|
|
326
257
|
|
|
327
|
-
// The embedded config, built by the shared helper so this target's shapes
|
|
328
|
-
// and identity fields stay in step with the ts reference by construction.
|
|
329
|
-
// Passing target.name opts cpp into main.slug/version/target (the station
|
|
330
|
-
// descriptor identity, ts/src/utility.ts configDefinition) - cpp has only
|
|
331
|
-
// the data rep (one chunked JSON literal), so this is the whole #MainMeta
|
|
332
|
-
// story for this target.
|
|
333
258
|
const { def: configDef } = configDefinition(model, target.name)
|
|
334
259
|
|
|
335
|
-
// `in` and `name` TRAVEL WITH THE PREFIX NOW.
|
|
336
|
-
//
|
|
337
|
-
// apidef resolved both from the spec's securityScheme all along and this
|
|
338
|
-
// generator dropped them, so an apiKey-in-query API got an `authorization`
|
|
339
|
-
// header it does not read (see PrepareAuth_cpp). The generated
|
|
340
|
-
// prepare_auth is built from the same two values, and the config carries
|
|
341
|
-
// them so the placement is a visible, overridable runtime option beside
|
|
342
|
-
// auth.prefix.
|
|
343
|
-
//
|
|
344
|
-
// IT IS INERT WITHOUT THE OPTSPEC. cpp does not build its option schema
|
|
345
|
-
// from the model: it is a JSON literal in tm/cpp/utility/pipeline.hpp
|
|
346
|
-
// (OPTSPEC_JSON), and cpp's vendored Struct::validate SILENTLY DROPS a key
|
|
347
|
-
// that literal does not declare rather than rejecting it. So the config
|
|
348
|
-
// written here reached makeOptions and was trimmed back to `prefix` on the
|
|
349
|
-
// way in, and prepareAuth read an `auth` map with no `in`, no `name` and
|
|
350
|
-
// no `basic` - measured on a generated client before the literal was
|
|
351
|
-
// extended. That literal now declares all three; changing only this file
|
|
352
|
-
// would have changed nothing a running SDK can see.
|
|
353
|
-
//
|
|
354
|
-
// Emitted ONLY when they differ from header/Authorization, so a
|
|
355
|
-
// header-based SDK's core/config.hpp is byte-identical to what it
|
|
356
|
-
// generated before. cpp has one representation - the chunked JSON literal
|
|
357
|
-
// rendered from this same def by cppConfigLiterals - so there is no second
|
|
358
|
-
// copy to keep in step.
|
|
359
260
|
const authIn = resolveAuthIn(model)
|
|
360
261
|
const authName = resolveAuthName(model)
|
|
361
262
|
|
|
@@ -435,16 +336,6 @@ inline FeaturePtr makeFeature(const std::string& name) {
|
|
|
435
336
|
}
|
|
436
337
|
`)
|
|
437
338
|
|
|
438
|
-
// The plugin-definitions accessor, EMITTED UNCONDITIONALLY so a caller
|
|
439
|
-
// can always ask, and EMPTY unless a plugin-bearing feature is active:
|
|
440
|
-
// each such feature's list lives in its generated
|
|
441
|
-
// feature/<name>/kinds.cpp (see FeaturePlugins above), which this
|
|
442
|
-
// dispatches to by name, so this header never names the vendored
|
|
443
|
-
// plugin's types - the list is type-erased (std::shared_ptr<void>; the
|
|
444
|
-
// feature casts back to plugin::DefinitionPtr), the way go returns
|
|
445
|
-
// []any and c void**. The per-feature function is an ordinary extern
|
|
446
|
-
// declaration here and in the feature header alike; kinds.cpp defines
|
|
447
|
-
// it, and the generated kinds.mk has the Makefile compile it.
|
|
448
339
|
const plugged = Object.keys(pluginDefinitions(model, target)).sort()
|
|
449
340
|
|
|
450
341
|
Content(`
|
|
@@ -1,27 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Typed-model generator (C++ target). Port of EntityTypes_ts.ts / _py.ts.
|
|
4
|
-
//
|
|
5
|
-
// The C++ SDK runtime is fully DYNAMIC: every op takes and returns the
|
|
6
|
-
// JSON-like sdk::Value, so — unlike a statically typed target — there are no
|
|
7
|
-
// generated structs the runtime consumes. This module emits a DOCUMENTATION
|
|
8
|
-
// header, <sdk>_types.hpp, describing the shape of each entity and its per-op
|
|
9
|
-
// request/match payloads as plain C++ structs in a dedicated `sdk::types`
|
|
10
|
-
// namespace. They are convenience/reference types a consumer MAY use to model
|
|
11
|
-
// payloads; the SDK itself neither includes nor requires this header, so it is
|
|
12
|
-
// safe (it cannot affect the runtime or the test build).
|
|
13
|
-
//
|
|
14
|
-
// Field/param sentinels ($STRING, $INTEGER, ...) map to concrete C++ types via
|
|
15
|
-
// the SHARED canonToType 'cpp' column (the single source of truth per language
|
|
16
|
-
// — do not keep a local table here). Array surfaces as std::vector<Value>,
|
|
17
|
-
// object as std::map<std::string, Value>, and any/null/unknown as the dynamic
|
|
18
|
-
// sdk::Value. Optional (req:false) members are marked with a trailing
|
|
19
|
-
// `// optional` comment — a struct member is always present in C++, so
|
|
20
|
-
// key-optionality is documented rather than encoded.
|
|
21
|
-
//
|
|
22
|
-
// Keep the SAME type-name scheme as every other language: <Name>,
|
|
23
|
-
// <Name>LoadMatch, <Name>ListMatch, <Name>CreateData, <Name>UpdateData,
|
|
24
|
-
// <Name>RemoveMatch (via the shared opTypeName helper).
|
|
25
3
|
|
|
26
4
|
import {
|
|
27
5
|
cmp, each, names,
|
|
@@ -39,18 +17,11 @@ import {
|
|
|
39
17
|
const LANG = 'cpp'
|
|
40
18
|
|
|
41
19
|
|
|
42
|
-
// A valid C++ identifier for a struct member; non-identifier field names have
|
|
43
|
-
// no safe struct-member rendering, so they are skipped (still reachable via the
|
|
44
|
-
// runtime Value map).
|
|
45
20
|
function cppIdent(name: string): boolean {
|
|
46
21
|
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(name)
|
|
47
22
|
}
|
|
48
23
|
|
|
49
24
|
|
|
50
|
-
// Emit a struct named `typeName` from a list of {name, type, optional} items.
|
|
51
|
-
// An item whose name is not a legal identifier is skipped (WITH a warning —
|
|
52
|
-
// the key stays reachable via the runtime Value map, but its absence from the
|
|
53
|
-
// typed model should be visible, not silent).
|
|
54
25
|
function emitStruct(typeName: string, items: any[], log?: any): void {
|
|
55
26
|
const usable = items.filter((it: any) => it && null != it.name && cppIdent(it.name))
|
|
56
27
|
|
|
@@ -101,11 +72,7 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
101
72
|
// typed names. Filter on `name` (always present), NOT `active` — parity
|
|
102
73
|
// with the go emitter's fix.
|
|
103
74
|
const entityList = deriveEntityNames(entity)
|
|
104
|
-
// Derive the PascalCase Name up-front — it is set LAZILY by names().
|
|
105
75
|
|
|
106
|
-
// Surface duplicate generated type names (two entities with the same
|
|
107
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
108
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
109
76
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
110
77
|
|
|
111
78
|
const guard = 'SDK_' + model.const.Name.toUpperCase().replace(/[^A-Z0-9]/g, '_') + '_TYPES_HPP'
|
|
@@ -142,13 +109,10 @@ namespace types {
|
|
|
142
109
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
143
110
|
.filter((f: any) => f.active !== false)
|
|
144
111
|
|
|
145
|
-
// Entity data model: one member per field, `req:false` -> optional.
|
|
146
112
|
emitStruct(Name, fields.map((f: any) => ({
|
|
147
113
|
name: f.name, type: f.type, optional: false === f.req,
|
|
148
114
|
})), log)
|
|
149
115
|
|
|
150
|
-
// Per active op: a request/match type. Members and their optionality
|
|
151
|
-
// come from the shared partiality policy (opRequestShape).
|
|
152
116
|
const ops = ent.op || {}
|
|
153
117
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
154
118
|
if (null == ops[opname]) {
|
|
@@ -38,28 +38,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
38
38
|
|
|
39
39
|
const entity: ModelEntity = getModelPath(model, `main.${KIT}.entity`)
|
|
40
40
|
|
|
41
|
-
// THE PLUGIN TRIM FOR A FEATURE THAT IS ITSELF OFF (Main_c's and
|
|
42
|
-
// Main_scala's inactivePluginExcludes, for the same reason).
|
|
43
|
-
//
|
|
44
|
-
// pluginExcludes(model) below walks only the model's ACTIVE features, so
|
|
45
|
-
// a `secrets` declared `active: false` keeps every declared group's
|
|
46
|
-
// vendored kind file in the tree. For cpp that is not merely untidy: the
|
|
47
|
-
// Makefile decides whether to compile the plugin layer - and to link
|
|
48
|
-
// OpenSSL - from whether a KIND FILE is present under
|
|
49
|
-
// feature/secrets/plugins/, so the files have to go. Every declared group
|
|
50
|
-
// of an inactive feature goes, not only the groups marked inactive: a
|
|
51
|
-
// feature that is off has no active plugins whatever its `plugin` map
|
|
52
|
-
// says (targetFeatures drops it before Config ever reads a group). The
|
|
53
|
-
// feature's own header and the vendored cores are left to the Makefile's
|
|
54
|
-
// wiring gate (feature/secrets/kinds.cpp is generated only for an active
|
|
55
|
-
// feature; without it nothing of the feature is compiled, and
|
|
56
|
-
// core/config.hpp includes no feature/secrets.hpp) and to `target add`,
|
|
57
|
-
// which trims the whole container for a real project.
|
|
58
|
-
//
|
|
59
|
-
// Rooting matches pluginExcludes': cpp's declared paths are
|
|
60
|
-
// target-root-relative, which is this Copy's root, and the other
|
|
61
|
-
// targets' paths in the same list cannot match anything in a cpp tree
|
|
62
|
-
// (every pattern is anchored at its own extension).
|
|
63
41
|
const feature = targetFeatures(model, target)
|
|
64
42
|
const esc = (s: string) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
|
65
43
|
const allfeature = getModelPath(model, `main.${KIT}.feature`,
|
|
@@ -82,17 +60,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
82
60
|
|
|
83
61
|
Gitignore({})
|
|
84
62
|
|
|
85
|
-
// Copy tm/cpp verbatim (with placeholder substitution). The tm src/ subtree
|
|
86
|
-
// only stages the per-feature custom-source dirs (target add), so exclude it.
|
|
87
|
-
//
|
|
88
|
-
// pluginExcludes: the generate-time plugin trim (an INACTIVE plugin
|
|
89
|
-
// group's declared files stay out of the tree - the model's `path`
|
|
90
|
-
// entries are target-root-relative, which is this Copy's root). cpp has
|
|
91
|
-
// `srcfeature: false`, so the per-feature Copy in cmp/Feature.ts - where
|
|
92
|
-
// pluginExcludesFor normally applies this trim - never runs for it, and
|
|
93
|
-
// this whole-tree Copy is the ONLY copy the target has: without the
|
|
94
|
-
// exclude an active secrets feature would ship every inactive kind, and
|
|
95
|
-
// the Makefile would compile and link them all (Main_go.ts precedent).
|
|
96
63
|
Copy({
|
|
97
64
|
from: 'tm/' + target.name,
|
|
98
65
|
exclude: [/src\//, TEST_CONTROL_EXCLUDE,
|
|
@@ -138,20 +105,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
138
105
|
})
|
|
139
106
|
})
|
|
140
107
|
|
|
141
|
-
// utility/prepare_auth.hpp is GENERATED, not templated: where the
|
|
142
|
-
// credential goes (header / query / cookie, and under what name) is a fact
|
|
143
|
-
// about the API, and tm/ can only hold one answer. See PrepareAuth_cpp.
|
|
144
|
-
//
|
|
145
|
-
// cpp had no prepare_auth template to replace - the logic was EMBEDDED in
|
|
146
|
-
// tm/cpp/utility/pipeline.hpp. It now lives in its own header, which
|
|
147
|
-
// pipeline.hpp includes; register_all still binds
|
|
148
|
-
// `u.prepareAuth = util::prepareAuth`, so every call site is unchanged.
|
|
149
|
-
//
|
|
150
|
-
// AT ROOT LEVEL, and OUTSIDE the `core` Folder above. The component opens
|
|
151
|
-
// `utility` itself, mirroring where `Copy({from:'tm/cpp'})` lands
|
|
152
|
-
// utility/pipeline.hpp; calling it beside Config would write
|
|
153
|
-
// `core/utility/prepare_auth.hpp`, which pipeline.hpp's
|
|
154
|
-
// `#include "prepare_auth.hpp"` does not resolve.
|
|
155
108
|
PrepareAuth({ target })
|
|
156
109
|
|
|
157
110
|
// feature/<name>/kinds.cpp — the plugin definitions an active
|
|
@@ -4,20 +4,6 @@ import {
|
|
|
4
4
|
} from '@voxgig/sdkgen'
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
// The C++ target ships a header-only SDK built by the tm/cpp Makefile (copied
|
|
8
|
-
// verbatim); there is no package manifest to generate (unlike pom.xml /
|
|
9
|
-
// Cargo.toml / go.mod). This component is a no-op kept for parity with the
|
|
10
|
-
// other targets' Main -> Package call.
|
|
11
|
-
//
|
|
12
|
-
// The Makefile stays a TEMPLATE even now that the gated `secrets` feature
|
|
13
|
-
// brings a multi-translation-unit payload: the Makefile names no feature
|
|
14
|
-
// and reads `-include $(wildcard feature/*/kinds.mk)`, so the same verbatim
|
|
15
|
-
// file is right for every model, and everything that differs per API -
|
|
16
|
-
// which payload to compile, which suite to build, which kinds were
|
|
17
|
-
// selected, whether OpenSSL is linked - is emitted by Config_cpp's
|
|
18
|
-
// FeaturePlugins as feature/secrets/kinds.mk and kinds.cpp, not here. (c
|
|
19
|
-
// makes the same choice; rust generates a module index instead because
|
|
20
|
-
// cargo has no wildcard.)
|
|
21
7
|
const Package = cmp(async function Package(_props: any) {
|
|
22
8
|
})
|
|
23
9
|
|
|
@@ -16,52 +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. This is the cpp peer of PrepareAuth_ts,
|
|
21
|
-
// PrepareAuth_c and PrepareAuth_go; read PrepareAuth_ts first, it carries
|
|
22
|
-
// the full account of the defect.
|
|
23
|
-
//
|
|
24
|
-
// apidef has always resolved the scheme's `in` and `name` into
|
|
25
|
-
// `main.kit.info.security` — joplin's says `in: "query", name: "token"` —
|
|
26
|
-
// and generation dropped both, hardcoding
|
|
27
|
-
//
|
|
28
|
-
// static const std::string HEADER_AUTH = "authorization";
|
|
29
|
-
//
|
|
30
|
-
// so the SDK sent a header the API does not read and never sent the query
|
|
31
|
-
// parameter it does.
|
|
32
|
-
//
|
|
33
|
-
// A template cannot fix this, because the three placements need three
|
|
34
|
-
// different bodies and a template has to pick one. A component emits the
|
|
35
|
-
// branch this API actually uses and nothing else — no dead query code in a
|
|
36
|
-
// bearer-token SDK, and no runtime `if` on a value fixed at generation
|
|
37
|
-
// time. In cpp it also keeps the includes honest: the base64 encoder the
|
|
38
|
-
// Basic branch needs (the cpp core ships none) is emitted only by the one
|
|
39
|
-
// placement that can use it.
|
|
40
|
-
//
|
|
41
|
-
// CPP IS THE ONE TARGET WITH NO prepare_auth TEMPLATE TO DELETE. The logic
|
|
42
|
-
// was EMBEDDED in `tm/cpp/utility/pipeline.hpp`, between preparePath and
|
|
43
|
-
// transformRequest, and the extraction shape is the PREFERRED one rather
|
|
44
|
-
// than the whole-module fallback:
|
|
45
|
-
//
|
|
46
|
-
// - the SDK runtime is HEADER-ONLY, so "its own compilation unit" is its
|
|
47
|
-
// own HEADER — `utility/prepare_auth.hpp`. Nothing has to move to a
|
|
48
|
-
// .cpp, nothing new has to be compiled or linked, and the Makefile's
|
|
49
|
-
// `SDK_HDRS := $(wildcard ... utility/*.hpp ...)` already lists it as a
|
|
50
|
-
// rebuild dependency of every test binary.
|
|
51
|
-
//
|
|
52
|
-
// - the BINDING is untouched. `prepareAuth` stays `inline SpecPtr
|
|
53
|
-
// prepareAuth(CtxPtr)` in `namespace sdk::util`; pipeline.hpp includes
|
|
54
|
-
// this header at the top (beside `../core/types.hpp`, outside any
|
|
55
|
-
// namespace) and its `register_all` still binds
|
|
56
|
-
// `u.prepareAuth = util::prepareAuth;`. Every call site therefore
|
|
57
|
-
// resolves exactly as before: `utility->prepareAuth(ctx)` in
|
|
58
|
-
// pipeline.hpp's own makeSpec, `u->prepareAuth(ctx)` in
|
|
59
|
-
// core/types.hpp, and `utility->prepareAuth(ctx)` in the shipped
|
|
60
|
-
// test/pipeline_test.cpp and test/primary_utility_test.cpp.
|
|
61
|
-
//
|
|
62
|
-
// Generating the whole of pipeline.hpp instead would have turned 1300 lines
|
|
63
|
-
// of hand-maintained runtime — every other pipeline step, makeOptions, the
|
|
64
|
-
// feature hooks — into a generator string literal to buy one function.
|
|
65
19
|
const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
66
20
|
const { target } = props
|
|
67
21
|
const { model } = props.ctx$
|
|
@@ -72,20 +26,6 @@ const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
|
72
26
|
const prefix = resolveAuthPrefix(model)
|
|
73
27
|
const basic = isHttpBasicAuth(model)
|
|
74
28
|
|
|
75
|
-
// FOLDER NESTING. Main_cpp calls this at ROOT level — after the
|
|
76
|
-
// `Folder({name:'core'})` that wraps Config and client.hpp has closed —
|
|
77
|
-
// so `utility` is opened HERE and the file lands at
|
|
78
|
-
// `<root>/utility/prepare_auth.hpp`, the sibling of the
|
|
79
|
-
// `utility/pipeline.hpp` that `Copy({from:'tm/cpp'})` brings in and that
|
|
80
|
-
// `#include "prepare_auth.hpp"`s it by that relative name.
|
|
81
|
-
//
|
|
82
|
-
// The call site matters as much as the folder. Putting this beside Config
|
|
83
|
-
// would write `core/utility/prepare_auth.hpp`: pipeline.hpp's include
|
|
84
|
-
// would not resolve and the build would fail — loudly, which is the good
|
|
85
|
-
// case. The bad case is the ts port's: opening a redundant second folder
|
|
86
|
-
// (`src` there, `utility` here — `utility/utility/prepare_auth.hpp`)
|
|
87
|
-
// emits a file nothing includes while a stale copy keeps being compiled,
|
|
88
|
-
// and no test can see it.
|
|
89
29
|
Folder({ name: 'utility' }, () => {
|
|
90
30
|
File({ name: 'prepare_auth.' + target.ext }, () => {
|
|
91
31
|
Content(render({ active, where, name, prefix, basic }))
|
|
@@ -94,31 +34,6 @@ const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
|
94
34
|
})
|
|
95
35
|
|
|
96
36
|
|
|
97
|
-
// NOT `isAuthActive`, AND THE DIFFERENCE IS LOAD-BEARING (the py port found
|
|
98
|
-
// this first; six of the twelve ports found it independently).
|
|
99
|
-
//
|
|
100
|
-
// `isAuthActive` is false whenever the SPEC declares no security scheme
|
|
101
|
-
// (`main.kit.info.auth: false`). That is a statement about the DEFINITION,
|
|
102
|
-
// not a ban on ever sending a credential: apidef writes it for every spec
|
|
103
|
-
// with no securitySchemes block, and those SDKs are still expected to
|
|
104
|
-
// honour an `apikey` the caller passes. `optspec` always declares `apikey`,
|
|
105
|
-
// makeOptions fills `options.auth` from the optspec defaults, so the
|
|
106
|
-
// template's `is_nullish(getp(options, "auth"))` guard never actually fired
|
|
107
|
-
// and every such SDK has always sent `options.apikey`.
|
|
108
|
-
//
|
|
109
|
-
// Gating the body on `isAuthActive` therefore does not trim dead code, it
|
|
110
|
-
// deletes working authentication — and takes the secrets feature with it,
|
|
111
|
-
// since that resolves a secret into `options.apikey` and prepareAuth then
|
|
112
|
-
// places nothing. This target has a lane that catches it: generatedcompile's
|
|
113
|
-
// `cpp: auth null beats an explicit apikey` builds test/authnull_probe.cpp
|
|
114
|
-
// against a fixture whose model says `main: kit: info: { ... auth: false }`
|
|
115
|
-
// and requires the baseline `{apikey: 'OPTKEY01'}` to reach
|
|
116
|
-
// `spec->headers["authorization"]`.
|
|
117
|
-
//
|
|
118
|
-
// So the no-op is emitted only when the PROJECT says so:
|
|
119
|
-
// `main.kit.config.auth.active: false`, an explicit per-SDK switch nobody
|
|
120
|
-
// sets by accident. A spec that is merely silent keeps the credential path
|
|
121
|
-
// it has always had.
|
|
122
37
|
function authSwitchedOn(model: any): boolean {
|
|
123
38
|
const auth = getModelPath(model, `main.${KIT}.config.auth`,
|
|
124
39
|
{ only_active: false, required: false })
|
|
@@ -222,10 +137,6 @@ inline std::string authBase64(const std::string& in) {
|
|
|
222
137
|
|
|
223
138
|
`
|
|
224
139
|
|
|
225
|
-
// The template's body, unchanged except for WHICH bag the credential
|
|
226
|
-
// lands in and under what name. Same option keys (`auth`, `apikey`,
|
|
227
|
-
// `auth.prefix`), same NOT_FOUND sentinel, same `skip` test, same
|
|
228
|
-
// `throw ctx->makeError("auth_no_spec", ...)`, same Group A reads.
|
|
229
140
|
const preamble = `inline SpecPtr prepareAuth(CtxPtr ctx) {
|
|
230
141
|
SpecPtr spec = ctx->spec;
|
|
231
142
|
if (!spec) throw ctx->makeError("auth_no_spec", "Expected context spec property to be defined.");
|
|
@@ -298,15 +209,6 @@ ${place(spec.where)}
|
|
|
298
209
|
}
|
|
299
210
|
|
|
300
211
|
|
|
301
|
-
// COOKIE SPLICING. A cookie IS a header, so the credential rides the header
|
|
302
|
-
// bag — but the `cookie` header is SHARED with whatever cookies the caller
|
|
303
|
-
// set, so our pair is spliced in and out rather than the header assigned
|
|
304
|
-
// over. Splicing also makes this idempotent: a retried request cannot end
|
|
305
|
-
// up carrying the credential twice.
|
|
306
|
-
//
|
|
307
|
-
// `cred` is a parameter rather than a file-scope constant so the one
|
|
308
|
-
// constant in this file stays where the template put it — a function-local
|
|
309
|
-
// static inside prepareAuth.
|
|
310
212
|
function cookieHelpers(): string {
|
|
311
213
|
return `// The cookie header minus our own pair, every other cookie untouched.
|
|
312
214
|
inline std::string authCookieRest(const Value& headers, const std::string& cred) {
|
|
@@ -361,35 +263,16 @@ inline void authCookieApply(const Value& headers, const std::string& cred,
|
|
|
361
263
|
}
|
|
362
264
|
|
|
363
265
|
|
|
364
|
-
// The credential's key, as it goes into the bag.
|
|
365
|
-
//
|
|
366
|
-
// A HEADER name is LOWERCASED. HTTP header names are case-insensitive
|
|
367
|
-
// (RFC 9110 5.1), and this SDK's own header map is keyed in lowercase
|
|
368
|
-
// throughout — `content-type` in makeSpec, the `authorization` the shipped
|
|
369
|
-
// test/pipeline_test.cpp and test/primary_utility_test.cpp assert on, the
|
|
370
|
-
// `authorization` feature/secrets.hpp injects and retracts, and the
|
|
371
|
-
// `authorization` generatedcompile's cpp auth-null probe reads — while the
|
|
372
|
-
// template this replaces said `"authorization"` outright. apidef writes
|
|
373
|
-
// `name: "Authorization"`, so emitting the resolver's value verbatim would
|
|
374
|
-
// put the credential under a key nothing in this runtime reads.
|
|
375
|
-
//
|
|
376
|
-
// A QUERY parameter and a COOKIE name are case-SENSITIVE, so those go in
|
|
377
|
-
// verbatim: `?token=` is not `?Token=`.
|
|
378
266
|
function credLiteral(where: string, name: string): string {
|
|
379
267
|
return 'header' === where ? String(name).toLowerCase() : String(name)
|
|
380
268
|
}
|
|
381
269
|
|
|
382
270
|
|
|
383
|
-
// The bag the credential lands in, per placement. It is both the local
|
|
384
|
-
// variable name and the Spec field, which in cpp are spelled the same
|
|
385
|
-
// (spec->headers / spec->query). Cookies ride the header bag because a
|
|
386
|
-
// cookie IS a header.
|
|
387
271
|
function bagName(where: string): string {
|
|
388
272
|
return 'query' === where ? 'query' : 'headers'
|
|
389
273
|
}
|
|
390
274
|
|
|
391
275
|
|
|
392
|
-
// Drop any stale credential.
|
|
393
276
|
function clear(where: string, indent: number): string {
|
|
394
277
|
const pad = ' '.repeat(indent)
|
|
395
278
|
|
|
@@ -403,22 +286,14 @@ function clear(where: string, indent: number): string {
|
|
|
403
286
|
|
|
404
287
|
function place(where: string): string {
|
|
405
288
|
if ('query' === where) {
|
|
406
|
-
// NO PREFIX IN A QUERY STRING. `?token=Bearer%20abc` is not a thing any
|
|
407
|
-
// API reads; the prefix is a header convention and is dropped here
|
|
408
|
-
// deliberately rather than silently concatenated. makeUrl appends
|
|
409
|
-
// spec->query to the URL after this runs, so the parameter reaches the
|
|
410
|
-
// wire escaped by the same escurl every other query parameter uses.
|
|
411
289
|
return ` map_put(query, CRED_NAME, Value(apikey.is_string() ? apikey.as_string() : ""));`
|
|
412
290
|
}
|
|
413
291
|
|
|
414
292
|
if ('cookie' === where) {
|
|
415
|
-
// NO PREFIX IN A COOKIE either — a cookie carries a bare `name=value`
|
|
416
|
-
// pair, not a header's scheme-prefixed credential.
|
|
417
293
|
return ` authCookieApply(headers, CRED_NAME,
|
|
418
294
|
apikey.is_string() ? apikey.as_string() : "", false);`
|
|
419
295
|
}
|
|
420
296
|
|
|
421
|
-
// The template's header body, unchanged.
|
|
422
297
|
return ` std::string authPrefix = as_str(Struct::getpath(options, {"auth", "prefix"}));
|
|
423
298
|
std::string apikeyVal = apikey.is_string() ? apikey.as_string() : "";
|
|
424
299
|
// A raw credential (empty prefix, e.g. an apiKey scheme) must go in
|
|
@@ -2,25 +2,6 @@
|
|
|
2
2
|
import { cmp, Content, File } from '@voxgig/sdkgen'
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
// Emits test/readme_examples_test.cpp — a structural gate over every ```cpp
|
|
6
|
-
// fenced block in the docs that ship C++ examples:
|
|
7
|
-
// - the root README.md (top-level, multi-language quick start)
|
|
8
|
-
// - the per-language cpp/README.md
|
|
9
|
-
// - the per-language cpp/REFERENCE.md
|
|
10
|
-
//
|
|
11
|
-
// DESIGN NOTE (mirrors ReadmeExamplesTest_c): the go gate shells out to
|
|
12
|
-
// `go build`/`go run` to COMPILE and RUN every block. A faithful C++ port
|
|
13
|
-
// would extract each snippet, wrap it in a translation unit, and drive the
|
|
14
|
-
// bundled Makefile / c++ against the header-only runtime — a large,
|
|
15
|
-
// environment-sensitive harness that cannot be authored safely here. This gate
|
|
16
|
-
// instead validates that every documented C++ block is PRESENT and
|
|
17
|
-
// STRUCTURALLY well-formed (balanced ()[]{}, non-empty). It is a real,
|
|
18
|
-
// always-passing test that keeps the docs honest about block structure;
|
|
19
|
-
// upgrading it to a true compile gate is left as a follow-up. Missing docs are
|
|
20
|
-
// tolerated (a run may generate a subset of phases).
|
|
21
|
-
//
|
|
22
|
-
// The test binary runs with the C++ project root as its working directory, so
|
|
23
|
-
// the doc paths resolve as "README.md", "REFERENCE.md", and "../README.md".
|
|
24
5
|
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
25
6
|
const { model } = props.ctx$
|
|
26
7
|
|
|
@@ -67,7 +67,6 @@ ${ctor}
|
|
|
67
67
|
if (exampleEntity) {
|
|
68
68
|
const eName = nom(exampleEntity, 'Name')
|
|
69
69
|
const article = /^[aeiou]/i.test(eName) ? 'an' : 'a'
|
|
70
|
-
// The client accessor is the entity's snake_case name (client->planet()).
|
|
71
70
|
const acc = cppVarName(exampleEntity.name)
|
|
72
71
|
const eVar = acc
|
|
73
72
|
const opnames = entityOps(exampleEntity)
|
|
@@ -135,8 +134,6 @@ try {
|
|
|
135
134
|
`)
|
|
136
135
|
}
|
|
137
136
|
else if (opnames.includes('load')) {
|
|
138
|
-
// Every REQUIRED load-match key (id first, then parent path params like
|
|
139
|
-
// page_id) — the same shape the runtime resolves path params from.
|
|
140
137
|
const loadRequired = opRequestShape(exampleEntity, 'load').items
|
|
141
138
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
142
139
|
.sort((a: any, b: any) =>
|
|
@@ -163,8 +160,6 @@ try {
|
|
|
163
160
|
`)
|
|
164
161
|
}
|
|
165
162
|
|
|
166
|
-
// Model-driven example fields: derive the create/update body from the op
|
|
167
|
-
// shape (opRequestShape) so the docs reference REAL writable fields.
|
|
168
163
|
const examplePairs = (opname: string): string[] => {
|
|
169
164
|
const items = opRequestShape(exampleEntity, opname).items
|
|
170
165
|
.filter((it: any) => (it.name !== idF && it.name !== 'id') ||
|
|
@@ -208,8 +203,6 @@ client->${acc}()->update(vmap({${updatePairs.join(', ')}}), Value::undef());
|
|
|
208
203
|
`)
|
|
209
204
|
}
|
|
210
205
|
if (opnames.includes('remove')) {
|
|
211
|
-
// Every REQUIRED remove-match key: the id (off the created record
|
|
212
|
-
// when possible) plus parent keys like page_id.
|
|
213
206
|
const removePairs = opRequestShape(exampleEntity, 'remove').items
|
|
214
207
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
215
208
|
.sort((a: any, b: any) =>
|
|
@@ -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 {
|
|
@@ -57,7 +57,7 @@ const ReadmeRef = cmp(function ReadmeRef(props: any) {
|
|
|
57
57
|
const { model } = props.ctx$
|
|
58
58
|
|
|
59
59
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
60
|
-
const feature =
|
|
60
|
+
const feature = targetFeatures(model, target)
|
|
61
61
|
|
|
62
62
|
const publishedEntities = each(entity).filter((e: any) => e.active !== false)
|
|
63
63
|
|
|
@@ -375,9 +375,6 @@ auto client = std::make_shared<${model.const.Name}SDK>(vmap({
|
|
|
375
375
|
\`\`\`
|
|
376
376
|
|
|
377
377
|
`)
|
|
378
|
-
// The shared feature reference: options, defaults, usage and the
|
|
379
|
-
// considerations. Model facts, identical in every target, so they are
|
|
380
|
-
// written once in cmp/ReadmeRefFeatures.ts rather than here.
|
|
381
378
|
ReadmeRefFeatures({ target })
|
|
382
379
|
}
|
|
383
380
|
|