@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
|
@@ -4,26 +4,6 @@ import { cmp, File, Content } from '@voxgig/sdkgen'
|
|
|
4
4
|
import { javaPackage } from './utility_java'
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
// Emits test/ReadmeExamplesTest.java — a JUnit PRESENCE + STRUCTURE gate over
|
|
8
|
-
// every ```java fenced block in the repository ROOT README.md, the
|
|
9
|
-
// per-language java/README.md, AND the per-language java/REFERENCE.md.
|
|
10
|
-
//
|
|
11
|
-
// SCOPE NOTE (deliberate, documented): the Python/TS/Go equivalents EXECUTE and
|
|
12
|
-
// type-check every documented block. That is infeasible here — the generated
|
|
13
|
-
// Java SDK compiles with plain `javac`/Maven only (no in-process Java compiler
|
|
14
|
-
// dependency wired into the test classpath), so a test cannot compile-and-run
|
|
15
|
-
// arbitrary doc snippets at test time. This gate therefore guarantees the
|
|
16
|
-
// weaker-but-real invariant that keeps the docs honest as the generator evolves:
|
|
17
|
-
// 1. every doc exists and contains at least one ```java block (nothing was
|
|
18
|
-
// dropped);
|
|
19
|
-
// 2. every ```java block is structurally well-formed — its braces,
|
|
20
|
-
// parentheses and brackets balance (catches a truncated or malformed
|
|
21
|
-
// generated snippet).
|
|
22
|
-
// A per-doc summary line makes the coverage visible in the test output.
|
|
23
|
-
//
|
|
24
|
-
// The emitted Java is written WITHOUT literal backticks (the fence marker is
|
|
25
|
-
// built at runtime as String.valueOf((char) 96).repeat(3)) so this TS template
|
|
26
|
-
// literal stays clean.
|
|
27
7
|
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
28
8
|
const { target, ctx$: { model } } = props
|
|
29
9
|
|
|
@@ -91,8 +91,6 @@ ${'' === javaServerLines
|
|
|
91
91
|
const eVar = javaVarName(exampleEntity.name)
|
|
92
92
|
const accessor = javaVarName(exampleEntity.name)
|
|
93
93
|
const opnames = entityOps(exampleEntity)
|
|
94
|
-
// Model-driven id key: `idF` is the entity's id-like MATCH field name, or
|
|
95
|
-
// null when it has none.
|
|
96
94
|
const idF = entityIdField(exampleEntity)
|
|
97
95
|
|
|
98
96
|
if (opnames.includes('list')) {
|
|
@@ -152,7 +150,6 @@ catch (RuntimeException err) {
|
|
|
152
150
|
`)
|
|
153
151
|
}
|
|
154
152
|
else if (opnames.includes('load')) {
|
|
155
|
-
// Every REQUIRED load-match key (id first, then parent path params).
|
|
156
153
|
const loadRequired = opRequestShape(exampleEntity, 'load').items
|
|
157
154
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
158
155
|
.sort((a: any, b: any) =>
|
|
@@ -219,7 +216,6 @@ client.${accessor}(null).update(Map.of(${updatePairs.join(', ')}), null);
|
|
|
219
216
|
`)
|
|
220
217
|
}
|
|
221
218
|
if (opnames.includes('remove')) {
|
|
222
|
-
// Every REQUIRED remove-match key: the id plus parent keys like page_id.
|
|
223
219
|
const removePairs = opRequestShape(exampleEntity, 'remove').items
|
|
224
220
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
225
221
|
.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 {
|
|
@@ -60,7 +60,7 @@ const ReadmeRef = cmp(function ReadmeRef(props: any) {
|
|
|
60
60
|
const SDK = model.const.Name + 'SDK'
|
|
61
61
|
|
|
62
62
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
63
|
-
const feature =
|
|
63
|
+
const feature = targetFeatures(model, target)
|
|
64
64
|
|
|
65
65
|
const publishedEntities = each(entity).filter((e: any) => e.active !== false)
|
|
66
66
|
|
|
@@ -378,9 +378,6 @@ ${SDK} client = new ${SDK}(options);
|
|
|
378
378
|
\`\`\`
|
|
379
379
|
|
|
380
380
|
`)
|
|
381
|
-
// The shared feature reference: options, defaults, usage and the
|
|
382
|
-
// considerations. Model facts, identical in every target, so they are
|
|
383
|
-
// written once in cmp/ReadmeRefFeatures.ts rather than here.
|
|
384
381
|
ReadmeRefFeatures({ target })
|
|
385
382
|
}
|
|
386
383
|
|
|
@@ -68,14 +68,10 @@ ${javaServerLines}${SDK} client = new ${SDK}(options);
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
if (exampleEntity) {
|
|
71
|
-
// Sanitise the local variable name — an entity whose camelCased name is a
|
|
72
|
-
// Java keyword gets a trailing underscore (javaVarName) so the snippet compiles.
|
|
73
71
|
const eVar = javaVarName(exampleEntity.name)
|
|
74
72
|
const accessor = javaVarName(exampleEntity.name)
|
|
75
73
|
const eNameLower = nom(exampleEntity, 'Name').toLowerCase()
|
|
76
74
|
const opnames = Object.keys(exampleEntity.op || {})
|
|
77
|
-
// Model-driven id key: null when the entity has no id-like field, in which
|
|
78
|
-
// case the load example takes an empty match.
|
|
79
75
|
const idF = entityIdField(exampleEntity)
|
|
80
76
|
|
|
81
77
|
if (opnames.includes('list')) {
|
|
@@ -86,9 +82,6 @@ System.out.println(${eVar}List);
|
|
|
86
82
|
}
|
|
87
83
|
|
|
88
84
|
if (opnames.includes('load')) {
|
|
89
|
-
// Every REQUIRED load-match key (id first, then parent path params like
|
|
90
|
-
// page_id) — the same shape the runtime resolves path params from, so
|
|
91
|
-
// the example always works.
|
|
92
85
|
const loadItems = opRequestShape(exampleEntity, 'load').items
|
|
93
86
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
94
87
|
.sort((a: any, b: any) =>
|
|
@@ -18,25 +18,6 @@ import {
|
|
|
18
18
|
} from './utility_java'
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
// THE GENERATED SCHEMA MODULE: the model's schemas, as data the SDK can run.
|
|
22
|
-
//
|
|
23
|
-
// The java peer of src/cmp/ts/Schema_ts.ts. Same two members, same source:
|
|
24
|
-
// OPTSPEC from `main.kit.optspec` plus each feature's own `config.options`,
|
|
25
|
-
// ENTITYSPEC from the entity field sentinels — both built by the shared
|
|
26
|
-
// helpers, so what java validates against and what ts validates against
|
|
27
|
-
// cannot drift.
|
|
28
|
-
//
|
|
29
|
-
// EMBEDDED AS JSON, PARSED AT LOAD, where ts emits an object literal: JSON is
|
|
30
|
-
// a subset of TypeScript's own literal syntax and is not a subset of java's.
|
|
31
|
-
// Chunked StringBuilder appends, exactly as Config.java carries its config,
|
|
32
|
-
// keep every string constant far below the JVM's 64KB limit no matter how
|
|
33
|
-
// many features or entities the model grows.
|
|
34
|
-
//
|
|
35
|
-
// The round-trip is exact because the spec holds only strings and booleans:
|
|
36
|
-
// pinned by "strings and booleans only, so the JSON round-trip is lossless"
|
|
37
|
-
// in ts/test/optspec.test.ts. That is not incidental — Json.parse decodes a
|
|
38
|
-
// JSON number to one java type and struct reads a spec BY EXAMPLE, so one
|
|
39
|
-
// number in here would mean something different in java than in ts.
|
|
40
21
|
const Schema = cmp(async function Schema(props: any) {
|
|
41
22
|
const ctx$ = props.ctx$
|
|
42
23
|
const target = props.target
|
|
@@ -57,13 +57,6 @@ function normalizePathParams(
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
// Render a JSON value as a Java literal for query examples.
|
|
61
|
-
// A Java source literal for an example value from the model.
|
|
62
|
-
//
|
|
63
|
-
// An integer beyond Java's int range needs the L suffix: javac rejects a bare
|
|
64
|
-
// 120615523104 outright ("integer number too large"), so one large id in a
|
|
65
|
-
// spec's example makes the whole generated test package fail to compile.
|
|
66
|
-
// A non-integral double is fine unsuffixed.
|
|
67
60
|
function javaLiteral(v: any): string {
|
|
68
61
|
if (null == v) return 'null'
|
|
69
62
|
if ('boolean' === typeof v) return String(v)
|
|
@@ -179,10 +179,6 @@ ${allSteps.length > 0 ? ` ${SDK} client = setup.client;\n\n` : ''}`)
|
|
|
179
179
|
|
|
180
180
|
`)
|
|
181
181
|
|
|
182
|
-
// Stream test (PR #4): the entity `stream` method runs the op pipeline and
|
|
183
|
-
// returns a Stream. With the streaming feature active it yields from the
|
|
184
|
-
// feature's incremental iterator; otherwise it falls back to the
|
|
185
|
-
// materialised items. Only emitted for entities whose flow lists.
|
|
186
182
|
const flowHasList = allSteps.some((s: any) => s.op === 'list')
|
|
187
183
|
if (flowHasList) {
|
|
188
184
|
Content(` @Test
|
|
@@ -24,12 +24,6 @@ const Test = cmp(function Test(props: any) {
|
|
|
24
24
|
// Write-once: a project's edited control file survives regeneration.
|
|
25
25
|
TestControl({ target, dir: 'test' })
|
|
26
26
|
|
|
27
|
-
// The shared test infrastructure (RunnerSupport, the vendored omni
|
|
28
|
-
// runner under test/vendor/omni with its OmniResolver/OmniSmokeTest,
|
|
29
|
-
// FeatureHarness, PipelineTest, FeatureTest, NetsimTest,
|
|
30
|
-
// PrimaryUtilityTest, CustomUtilityTest, StructCorpusTest, ExistsTest
|
|
31
|
-
// and sdk-test-control.json) ships as templates in tm/java/test/ and
|
|
32
|
-
// is copied by Main_java. Here we generate only the API-specific tests.
|
|
33
27
|
const entity = each(entityCollection(model))
|
|
34
28
|
.filter((e: any) => false !== e.active)
|
|
35
29
|
each(entity, (entity: ModelEntity) => {
|
|
@@ -34,7 +34,6 @@ function javaPackage(model: any): string {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
// Maven coordinates for the generated SDK (used by Package_java).
|
|
38
37
|
function mavenGroupId(model: any): string {
|
|
39
38
|
const org = String(model.origin || 'voxgig-sdk')
|
|
40
39
|
.replace(/-sdk$/, '')
|
|
@@ -52,14 +51,10 @@ const JAVA_KEYWORDS = new Set([
|
|
|
52
51
|
'package', 'private', 'protected', 'public', 'return', 'short', 'static',
|
|
53
52
|
'strictfp', 'super', 'switch', 'synchronized', 'this', 'throw', 'throws',
|
|
54
53
|
'transient', 'try', 'void', 'volatile', 'while',
|
|
55
|
-
// contextual/literal words unusable as identifiers
|
|
56
54
|
'true', 'false', 'null', 'var', 'record', 'yield',
|
|
57
55
|
])
|
|
58
56
|
|
|
59
57
|
|
|
60
|
-
// A camelCase Java identifier for a snake_case model name
|
|
61
|
-
// (`status_embed_config` -> `statusEmbedConfig`), with a reserved-word
|
|
62
|
-
// guard (a `new`/`class` entity must not bind a Java keyword).
|
|
63
58
|
function javaVarName(name: string): string {
|
|
64
59
|
const pascal = camelify(name)
|
|
65
60
|
const out = pascal.charAt(0).toLowerCase() + pascal.slice(1)
|
|
@@ -67,42 +62,14 @@ function javaVarName(name: string): string {
|
|
|
67
62
|
}
|
|
68
63
|
|
|
69
64
|
|
|
70
|
-
// Strip model bookkeeping keys (ending in $) from a config subtree.
|
|
71
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
72
|
-
//
|
|
73
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
74
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
75
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
76
|
-
// payload — see CONFIG_DEFAULT.
|
|
77
|
-
//
|
|
78
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
79
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
80
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
81
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
82
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
83
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
84
|
-
//
|
|
85
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
86
|
-
// `active` means something different in feature config, where absent reads as
|
|
87
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
88
|
-
// disable the feature.
|
|
89
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
90
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
91
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
92
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
93
65
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
94
66
|
|
|
95
|
-
// Keys whose value IS the default the runtime already assumes when the key is
|
|
96
|
-
// absent, so emitting them is pure payload.
|
|
97
67
|
const CONFIG_DEFAULT: Record<string, any> = {
|
|
98
68
|
active: true,
|
|
99
69
|
req: false,
|
|
100
70
|
reqd: false,
|
|
101
71
|
}
|
|
102
72
|
|
|
103
|
-
// Subtrees carrying user payload rather than schema. An active:true inside an
|
|
104
|
-
// OpenAPI example is DATA, not a default, so default-pruning stops at these
|
|
105
|
-
// keys and everything below them is passed through untouched.
|
|
106
73
|
const PAYLOAD_KEYS = ['default', 'example', 'examples']
|
|
107
74
|
|
|
108
75
|
function cleanModel(o: any, dropDefaults?: boolean): any {
|
|
@@ -42,9 +42,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
42
42
|
const model: Model = ctx$.model
|
|
43
43
|
|
|
44
44
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
45
|
-
// Gated by the applicability tags, so this target never imports or
|
|
46
|
-
// registers a feature it has no source for. One rule, one place:
|
|
47
|
-
// helpers/applicability.
|
|
48
45
|
const feature = targetFeatures(model, target)
|
|
49
46
|
|
|
50
47
|
const ff = Path.normalize(__dirname + '/../../../src/cmp/js/fragment/')
|
|
@@ -52,7 +49,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
52
49
|
const headers = getModelPath(model, `main.${KIT}.config.headers`) || {}
|
|
53
50
|
|
|
54
51
|
const authActive = isAuthActive(model)
|
|
55
|
-
// config.auth.prefix override -> spec-derived info.security.prefix -> 'Bearer'
|
|
56
52
|
const authPrefix = resolveAuthPrefix(model)
|
|
57
53
|
// `in` and `name` travel with the prefix now. They were resolved by
|
|
58
54
|
// apidef all along and dropped here, so an apiKey-in-query API got an
|
|
@@ -71,30 +67,17 @@ const Config = cmp(async function Config(props: any) {
|
|
|
71
67
|
`
|
|
72
68
|
: ''
|
|
73
69
|
|
|
74
|
-
// Templated server URL: emit the spec's server-variable defaults so the
|
|
75
|
-
// runtime can substitute {name} placeholders in base (see makeOptions).
|
|
76
70
|
const svars = serverVariables(model)
|
|
77
71
|
const serverBlock = 0 === svars.length ? '' :
|
|
78
72
|
'server: {\n' +
|
|
79
73
|
svars.map((v: any) => ` ${JSON.stringify(v.name)}: ${JSON.stringify(v.dflt)},\n`).join('') +
|
|
80
74
|
' },\n\n '
|
|
81
75
|
|
|
82
|
-
// Read the base URL here rather than leaving it to a `$$...$$` stdrep
|
|
83
|
-
// placeholder in the fragment. stdrep can only substitute a path the model
|
|
84
|
-
// actually has: a model with no `info.servers` left the placeholder itself in
|
|
85
|
-
// the generated source, so `options.base` came out as the literal string
|
|
86
|
-
// '$main.kit.info.servers.0.url$'. Reading it explicitly yields '' in that
|
|
87
|
-
// case, which is what every other target already emits, and is identical to
|
|
88
|
-
// the old output whenever the model does define a server.
|
|
89
76
|
let baseUrl = ''
|
|
90
77
|
try {
|
|
91
78
|
baseUrl = getModelPath(model, `main.${KIT}.info.servers.0.url`)
|
|
92
79
|
} catch (_e) { }
|
|
93
80
|
|
|
94
|
-
// The same config as an OBJECT, built by the shared helper so this target's
|
|
95
|
-
// literal and the data that replaces it above the threshold are the same
|
|
96
|
-
// config by construction. The JSON is what the threshold is measured on -
|
|
97
|
-
// emitted source size varies by language, the model does not.
|
|
98
81
|
const { def: configDef, json: configJson } = configDefinition(model, target.name)
|
|
99
82
|
const asData = isConfigData(configJson, configReprSetting(model))
|
|
100
83
|
|
|
@@ -122,9 +105,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
122
105
|
|
|
123
106
|
'// #FeaturePlugins': () => pluginDefs(feature),
|
|
124
107
|
|
|
125
|
-
// A JS string literal, so the JSON survives verbatim. JSON.stringify
|
|
126
|
-
// escapes the quotes and backslashes the model contains (values like
|
|
127
|
-
// `$STRING` carry backticks, which a template literal could not).
|
|
128
108
|
"'CONFIGJSON'": JSON.stringify(configJson),
|
|
129
109
|
}
|
|
130
110
|
})
|
|
@@ -162,8 +142,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
162
142
|
|
|
163
143
|
'// #FeatureClasses': () => {
|
|
164
144
|
each(feature, (f: any) => {
|
|
165
|
-
// Trailing comma: the map has one entry per feature, so entries
|
|
166
|
-
// must be comma-separated (a single feature hid this until now).
|
|
167
145
|
Line(` ${f.name}: ${nom(f, 'Name')}Feature,`)
|
|
168
146
|
})
|
|
169
147
|
},
|
|
@@ -189,12 +167,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
189
167
|
})
|
|
190
168
|
},
|
|
191
169
|
|
|
192
|
-
// configDefinition's `def.entity` verbatim, NOT rebuilt here. This
|
|
193
|
-
// reduce was a second copy of that function's entityDefs loop, and
|
|
194
|
-
// when configDefinition started reconstructing a point's `parts`
|
|
195
|
-
// from apidef's segment vector (its ADR-003), only the data
|
|
196
|
-
// representation got it — the literal one emitted empty paths. The
|
|
197
|
-
// config-repr equivalence test caught it, which is what it is for.
|
|
198
170
|
"'ENTITYMAP'": formatJson(configDef.entity, { margin: 2 }).trim(),
|
|
199
171
|
}
|
|
200
172
|
})
|
|
@@ -202,24 +174,8 @@ const Config = cmp(async function Config(props: any) {
|
|
|
202
174
|
})
|
|
203
175
|
|
|
204
176
|
|
|
205
|
-
// PLUGIN DEFINITION REQUIRES AND THE FEATURE_PLUGINS MAP.
|
|
206
|
-
//
|
|
207
|
-
// Upstream sekreto replaced its self-registration registry with
|
|
208
|
-
// voxgig/plugin definitions: a provider kind the caller did not pass in
|
|
209
|
-
// via `plugins: [...]` is unknown to that Sekreto. So Config no longer
|
|
210
|
-
// requires provider modules for their side effects — it requires each
|
|
211
|
-
// active plugin's exported Definition BY NAME (the model's `def` map)
|
|
212
|
-
// and hands the list to the feature through FEATURE_PLUGINS.
|
|
213
|
-
//
|
|
214
|
-
// Emitted here because Config already requires every active feature from
|
|
215
|
-
// the model, and this is the same list one level down. The `def` map is
|
|
216
|
-
// declared in the model rather than derived from filenames because one
|
|
217
|
-
// file may export several definitions (sekreto's aws.js exports
|
|
218
|
-
// awssecrets AND awsparams).
|
|
219
177
|
function pluginImports(feature: any) {
|
|
220
178
|
each(feature, (f: any) => {
|
|
221
|
-
// path -> [symbol, ...], so one require line serves a two-definition
|
|
222
|
-
// module.
|
|
223
179
|
const bypath: Record<string, string[]> = {}
|
|
224
180
|
|
|
225
181
|
each(f.plugin, (plugin: any) => {
|
|
@@ -243,8 +199,6 @@ function pluginImports(feature: any) {
|
|
|
243
199
|
})
|
|
244
200
|
}
|
|
245
201
|
|
|
246
|
-
// The FEATURE_PLUGINS entries: one line per feature that has any active
|
|
247
|
-
// plugin definitions, listing the required symbols.
|
|
248
202
|
function pluginDefs(feature: any) {
|
|
249
203
|
each(feature, (f: any) => {
|
|
250
204
|
const syms: string[] = []
|
|
@@ -1,25 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Typed-model generator (JavaScript target).
|
|
4
|
-
//
|
|
5
|
-
// JavaScript is dynamically typed, so the "types" are JSDoc typedefs
|
|
6
|
-
// (@typedef / @property) for editor/tooling DX only — no runtime effect.
|
|
7
|
-
//
|
|
8
|
-
// Reads main.<KIT>.entity.<e>.fields[] and per-op params
|
|
9
|
-
// (op.<name>.points[].args.params[]) and emits one file, src/<Sdk>Types.js,
|
|
10
|
-
// with a `@typedef {Object} <Name>` per active entity plus a request/match
|
|
11
|
-
// typedef per active op. Field/param sentinels ($STRING, $INTEGER, ...) are
|
|
12
|
-
// turned into JSDoc types by the shared sdkgen helper `canonToType`
|
|
13
|
-
// ('js' column: Object / Array / * for open shapes).
|
|
14
|
-
//
|
|
15
|
-
// The typedefs are emitted at file (script) scope so they are GLOBAL across
|
|
16
|
-
// the SDK's JS program — the op fragments reference them by bare name
|
|
17
|
-
// (@param {AdviceLoadMatch} / @returns {Promise<Advice>}). The program itself
|
|
18
|
-
// is established by the tm/js/jsconfig.json template shipped at the SDK root
|
|
19
|
-
// (one project spanning src/ + test/), so resolution does not depend on
|
|
20
|
-
// editor workspace inference. Keeps the SAME type-name scheme as the TS
|
|
21
|
-
// reference (<Name>, <Name>LoadMatch, <Name>ListMatch, <Name>CreateData,
|
|
22
|
-
// <Name>UpdateData, <Name>RemoveMatch).
|
|
23
3
|
|
|
24
4
|
import {
|
|
25
5
|
cmp, each, names,
|
|
@@ -37,8 +17,6 @@ import {
|
|
|
37
17
|
const LANG = 'js'
|
|
38
18
|
|
|
39
19
|
|
|
40
|
-
// A bare JSDoc property key, or a quoted string literal for anything that is
|
|
41
|
-
// not a plain identifier.
|
|
42
20
|
function propKey(name: string): string {
|
|
43
21
|
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name) ? name : JSON.stringify(name)
|
|
44
22
|
}
|
|
@@ -47,10 +25,6 @@ function propKey(name: string): string {
|
|
|
47
25
|
const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
48
26
|
const { model, log } = props.ctx$
|
|
49
27
|
|
|
50
|
-
// only_active:false — getModelPath DROPS active:false entries by default,
|
|
51
|
-
// but the consumer scaffold (create-sdkgen Root.ts) iterates the RAW entity
|
|
52
|
-
// collection, so inactive entities still get generated entity code that
|
|
53
|
-
// references these typed names. The typed model must cover them too.
|
|
54
28
|
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
55
29
|
// Emit for EVERY entity that gets generated entity code: the consumer
|
|
56
30
|
// scaffold (create-sdkgen Root.ts) iterates entities WITHOUT an active
|
|
@@ -62,9 +36,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
62
36
|
// entity not yet named (e.g. a fieldless placeholder) would otherwise read
|
|
63
37
|
// `Name = undefined` below. Parity with the go emitter's fix.
|
|
64
38
|
|
|
65
|
-
// Surface duplicate generated type names (two entities with the same
|
|
66
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
67
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
68
39
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
69
40
|
|
|
70
41
|
File({ name: model.const.Name + 'Types.' + LANG }, () => {
|
|
@@ -84,7 +55,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
84
55
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
85
56
|
.filter((f: any) => f.active !== false)
|
|
86
57
|
|
|
87
|
-
// Entity data model: one @property per field, `req:false` -> optional [].
|
|
88
58
|
Content(`/**
|
|
89
59
|
* @typedef {Object} ${Name}
|
|
90
60
|
`)
|
|
@@ -97,9 +67,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
97
67
|
|
|
98
68
|
`)
|
|
99
69
|
|
|
100
|
-
// Per active op: a request/match typedef. Members and their optionality
|
|
101
|
-
// come from the shared partiality policy (opRequestShape); this file only
|
|
102
|
-
// renders them as JSDoc @property lines (optional -> [bracketed] key).
|
|
103
70
|
const ops = ent.op || {}
|
|
104
71
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
105
72
|
if (null == ops[opname]) {
|
|
@@ -55,15 +55,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
55
55
|
|
|
56
56
|
Copy({
|
|
57
57
|
from: 'tm/' + target.name,
|
|
58
|
-
// Root copies src/feature/<name>/ per ACTIVE feature; keep this blanket
|
|
59
|
-
// copy from restoring one that was switched off after `target add`.
|
|
60
|
-
// A feature's inactive plugins go too - same rule, one level
|
|
61
|
-
// deeper. See helpers/featureSource.pluginExcludes.
|
|
62
|
-
//
|
|
63
|
-
// pluginExcludes is REQUIRED, not cosmetic: Feature() renders before
|
|
64
|
-
// Main(), so its per-feature Copy applies pluginExcludesFor and then
|
|
65
|
-
// this blanket copy runs — and without the same patterns here it puts
|
|
66
|
-
// every trimmed plugin straight back.
|
|
67
58
|
exclude: [
|
|
68
59
|
...srcFeatureExcludes(model),
|
|
69
60
|
...pluginExcludes(model),
|
|
@@ -93,14 +84,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
93
84
|
replace: {
|
|
94
85
|
...props.ctx$.stdrep,
|
|
95
86
|
|
|
96
|
-
// SECRETS. All five slots are emitted only when the secrets
|
|
97
|
-
// feature applies to this target AND the model activates it.
|
|
98
|
-
// An unconditional edit here would land in every generated SDK
|
|
99
|
-
// and break the inactive-output gate: a model without the
|
|
100
|
-
// feature must generate byte-identically to pre-migration.
|
|
101
|
-
//
|
|
102
|
-
// `feature` is already gated by targetFeatures, so a target
|
|
103
|
-
// that does not provide 'sekreto' never reaches these.
|
|
104
87
|
'// #SecretsImport': () => secrets ?
|
|
105
88
|
Line(`const sekreto = require('./feature/secrets/sekreto')`) : undefined,
|
|
106
89
|
|
|
@@ -117,15 +100,6 @@ secrets() {
|
|
|
117
100
|
}
|
|
118
101
|
`) : undefined,
|
|
119
102
|
|
|
120
|
-
// prepare() bypasses the feature hook pipeline, so the PreSpec
|
|
121
|
-
// hook that resolves the secret for entity ops never runs on
|
|
122
|
-
// this path and the resolve has to be explicit. This is also
|
|
123
|
-
// what defends direct() and graphql(), which run no feature
|
|
124
|
-
// hooks at all and reach the wire through prepare().
|
|
125
|
-
//
|
|
126
|
-
// It RETURNS the Error rather than rejecting: _rawRequest
|
|
127
|
-
// awaits prepare() outside its try, and direct()/graphql() are
|
|
128
|
-
// documented to return a value or an Error, never reject.
|
|
129
103
|
'// #SecretsResolve': ({ indent }: any) => secrets ?
|
|
130
104
|
Content({ indent }, `
|
|
131
105
|
if (null != this._secrets) {
|
|
@@ -174,13 +148,6 @@ if (fres instanceof Promise) { await fres }
|
|
|
174
148
|
})
|
|
175
149
|
})
|
|
176
150
|
|
|
177
|
-
// Station self-registration (station design §6.2 path 1;
|
|
178
|
-
// station-declarative-config §11 item 2): emitted ONLY when the model
|
|
179
|
-
// carries an ACTIVE station feature (installed via
|
|
180
|
-
// `package add @voxgig/sdkgen-station`). The library package name
|
|
181
|
-
// comes from the feature model's own `deps.js` block — the same entry
|
|
182
|
-
// collectDeps flows into package.json — so the manifest dependency
|
|
183
|
-
// and the emitted require cannot disagree.
|
|
184
151
|
const stationPkg = stationLibrary(model, target.name)
|
|
185
152
|
if (null != stationPkg) {
|
|
186
153
|
Fragment({
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
packageVersion,
|
|
15
15
|
authorInfo,
|
|
16
16
|
targetFeatures, envName,
|
|
17
|
+
hasLiveScenarios,
|
|
17
18
|
} from '@voxgig/sdkgen'
|
|
18
19
|
|
|
19
20
|
|
|
@@ -44,14 +45,11 @@ const Package = cmp(async function Package(props: any) {
|
|
|
44
45
|
const only = (kind: string, deps: any) =>
|
|
45
46
|
omap(deps, ([k, v]: any) => [v.active && kind === v.kind ? k : undefined, v.version])
|
|
46
47
|
|
|
47
|
-
// merge target and feature deps, by kind
|
|
48
48
|
const deps =
|
|
49
49
|
each(feature, (feature: any) =>
|
|
50
50
|
omap(feature.deps?.[target.name], ([k, v]: any) =>
|
|
51
51
|
[v.active ? k : undefined, v]))
|
|
52
52
|
|
|
53
|
-
// TODO: sort by version; rules for version choice?
|
|
54
|
-
// TODO: non-node dep kinds
|
|
55
53
|
.reduce((a: any, deps: any) => (each(deps, (dep: any) =>
|
|
56
54
|
a[dep.kind][dep.key$] = dep.version), a),
|
|
57
55
|
{
|
|
@@ -64,8 +62,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
64
62
|
const { repoUrl, issuesUrl } = repoInfo(model)
|
|
65
63
|
|
|
66
64
|
const pkg = {
|
|
67
|
-
// The ts target publishes the canonical scoped npm name; the js target
|
|
68
|
-
// appends `-js` so the two never collide on npm.
|
|
69
65
|
name: packageName(model, target.name),
|
|
70
66
|
version: packageVersion(model, target.name),
|
|
71
67
|
description: pkgDescription(model, target.name),
|
|
@@ -81,7 +77,7 @@ const Package = cmp(async function Package(props: any) {
|
|
|
81
77
|
// directly (no build step), so that is the whole package.
|
|
82
78
|
files: ['src'],
|
|
83
79
|
scripts: {
|
|
84
|
-
...(
|
|
80
|
+
...(hasLiveScenarios(model) ? {
|
|
85
81
|
'test:live': `${envName(model)}_TEST_LIVE=TRUE node --test test/live.test.js`,
|
|
86
82
|
} : {}),
|
|
87
83
|
|
|
@@ -95,7 +91,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
95
91
|
},
|
|
96
92
|
author,
|
|
97
93
|
|
|
98
|
-
// TODO: needs to be config
|
|
99
94
|
license: 'MIT',
|
|
100
95
|
|
|
101
96
|
dependencies: deps.prod,
|
|
@@ -17,53 +17,17 @@ import {
|
|
|
17
17
|
} from '@voxgig/apidef'
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
// WHERE THE CREDENTIAL GOES IS A FACT ABOUT THE API, so it is generated
|
|
21
|
-
// rather than templated.
|
|
22
|
-
//
|
|
23
|
-
// This was a static file at `tm/js/src/utility/PrepareAuthUtility.js` that
|
|
24
|
-
// hardcoded `authorization` and a header. apidef has always resolved the
|
|
25
|
-
// scheme's `in` and `name` into `main.kit.info.security` — joplin's says
|
|
26
|
-
// `in: "query", name: "token"` — and generation dropped both. The result
|
|
27
|
-
// was an SDK that sent a header the API does not read and never sent the
|
|
28
|
-
// query parameter it does, so it could not authenticate at all. Four
|
|
29
|
-
// repos in the cedar fleet shipped that way: joplin (`token`), pipedrive
|
|
30
|
-
// (`api_token`), trello (`key`), lm-umbrella (`apiKey`).
|
|
31
|
-
//
|
|
32
|
-
// A template cannot fix this, because the three placements need three
|
|
33
|
-
// different bodies and a template has to pick one. A component emits the
|
|
34
|
-
// branch this API actually uses and nothing else — no dead query code in
|
|
35
|
-
// a bearer-token SDK, and no runtime `if` on a value that is fixed at
|
|
36
|
-
// generation time.
|
|
37
|
-
//
|
|
38
|
-
// Ported from PrepareAuth_ts, which is the proven shape. The differences
|
|
39
|
-
// are the language's, not the design's: no type import, `module.exports`
|
|
40
|
-
// instead of `export {}`, and the prefix read inline off `options.auth`
|
|
41
|
-
// exactly as the js template read it, rather than hoisted into a local
|
|
42
|
-
// that the query and cookie bodies would leave unused.
|
|
43
20
|
const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
44
21
|
const { target } = props
|
|
45
22
|
const { model } = props.ctx$
|
|
46
23
|
|
|
47
24
|
const active = isAuthActive_js(model)
|
|
48
25
|
const where = resolveAuthIn(model)
|
|
49
|
-
// LOWERCASED FOR A HEADER, VERBATIM OTHERWISE. The js runtime keys its
|
|
50
|
-
// header map in lower case — the old template hardcoded 'authorization',
|
|
51
|
-
// the shared corpus asserts ctx:spec:headers:authorization, and every
|
|
52
|
-
// generatedcompile probe reads the lower-case key. apidef writes
|
|
53
|
-
// name: "Authorization", so emitting it verbatim hides the credential
|
|
54
|
-
// under a key nothing reads. Query parameters and cookies ARE
|
|
55
|
-
// case-sensitive and keep the spec's spelling.
|
|
56
26
|
const resolvedName = resolveAuthName(model)
|
|
57
27
|
const name = 'header' === where ? resolvedName.toLowerCase() : resolvedName
|
|
58
28
|
const prefix = resolveAuthPrefix(model)
|
|
59
29
|
const basic = isHttpBasicAuth(model)
|
|
60
30
|
|
|
61
|
-
// No `src` folder here: Main_js already opened it, and Config, Schema,
|
|
62
|
-
// SdkError, EntityBase and EntityTypes all write straight into it. The
|
|
63
|
-
// template this replaces lived at `tm/js/src/utility/`, so relative to
|
|
64
|
-
// that open folder the file needs `utility` and nothing more. Opening a
|
|
65
|
-
// second `src` would put it at src/src/utility/ — where nothing imports
|
|
66
|
-
// it, and the stale copy at src/utility/ keeps being used.
|
|
67
31
|
Folder({ name: 'utility' }, () => {
|
|
68
32
|
File({ name: 'PrepareAuthUtility.' + target.ext }, () => {
|
|
69
33
|
Content(render({ active, where, name, prefix, basic }))
|
|
@@ -76,8 +40,6 @@ function render(spec: {
|
|
|
76
40
|
active: boolean, where: string, name: string, prefix: string, basic: boolean
|
|
77
41
|
}): string {
|
|
78
42
|
|
|
79
|
-
// NO AUTH AT ALL. A public API's SDK gets a prepareAuth that is honest
|
|
80
|
-
// about it rather than one that deletes a header nobody set.
|
|
81
43
|
if (!spec.active) {
|
|
82
44
|
return `
|
|
83
45
|
// This API declares no authentication, so there is no credential to
|
|
@@ -193,16 +155,10 @@ function clear(where: string): string {
|
|
|
193
155
|
|
|
194
156
|
function place(where: string): string {
|
|
195
157
|
if ('query' === where) {
|
|
196
|
-
// NO PREFIX IN A QUERY STRING. `?token=Bearer%20abc` is not a thing any
|
|
197
|
-
// API reads; the prefix is a header convention and is dropped here
|
|
198
|
-
// deliberately rather than silently concatenated.
|
|
199
158
|
return ` setprop(query, CRED_name, apikey)`
|
|
200
159
|
}
|
|
201
160
|
|
|
202
161
|
if ('cookie' === where) {
|
|
203
|
-
// APPEND, never clobber: the request may already carry a session
|
|
204
|
-
// cookie set from options.headers, and a cookie header holds a
|
|
205
|
-
// '; '-joined list of pairs.
|
|
206
162
|
return ` const existing = getprop(headers, 'cookie', '')
|
|
207
163
|
const pair = CRED_name + '=' + apikey
|
|
208
164
|
setprop(headers, 'cookie', existing ? existing + '; ' + pair : pair)`
|
|
@@ -224,19 +180,6 @@ export {
|
|
|
224
180
|
}
|
|
225
181
|
|
|
226
182
|
|
|
227
|
-
// NOT `isAuthActive`, AND THE DIFFERENCE IS LOAD-BEARING. That helper is
|
|
228
|
-
// also false whenever the SPEC declares no security scheme
|
|
229
|
-
// (`main.kit.info.auth: false`) — a statement about the DEFINITION, not a
|
|
230
|
-
// ban on ever sending a credential. `optspec` still declares `apikey` and
|
|
231
|
-
// makeOptions fills `options.auth` from its defaults, so the runtime
|
|
232
|
-
// `options.auth == null` guard never fired and those SDKs have always sent
|
|
233
|
-
// the credential. Gating the body on `isAuthActive` does not trim dead
|
|
234
|
-
// code, it removes working authentication — which
|
|
235
|
-
// `js: auth null suppresses the credential` catches, and which takes the
|
|
236
|
-
// secrets feature down with it.
|
|
237
|
-
//
|
|
238
|
-
// `main.kit.config.auth.active: false` is the project saying "no credential,
|
|
239
|
-
// ever", and it is the only signal that can be honoured before runtime.
|
|
240
183
|
function isAuthActive_js(model: any): boolean {
|
|
241
184
|
const auth = getModelPath(model, `main.${KIT}.config.auth`,
|
|
242
185
|
{ only_active: false, required: false })
|
|
@@ -9,14 +9,6 @@ import {
|
|
|
9
9
|
import { exampleValue } from './utility_js'
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
// Operation method spelling differs between Go and other languages — Go
|
|
13
|
-
// uses PascalCase methods with explicit ctrl arg, others use lowercase
|
|
14
|
-
// methods with optional ctrl. The op descriptions are language-agnostic.
|
|
15
|
-
// A `list()` on a NESTED entity needs its parent path params. The
|
|
16
|
-
// quickstart used to emit `client.Moon().list()` for an entity at
|
|
17
|
-
// `/planet/{planet_id}/moon`, which 404s against a live server from a
|
|
18
|
-
// half-built URL — indistinguishable from "no such record". The model
|
|
19
|
-
// already marks those params `reqd: true`; matchArg renders exactly them.
|
|
20
12
|
function listMatchArg(ent: any): string {
|
|
21
13
|
const idF = entityIdField(ent)
|
|
22
14
|
return matchArg('ts', ent, 'list', idF, idLiteral(ent, 'list', idF))
|
|
@@ -56,7 +48,6 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
56
48
|
const fields = entity.fields || []
|
|
57
49
|
// Model-driven id key: null when this entity has no id-like field.
|
|
58
50
|
const idF = entityIdField(entity)
|
|
59
|
-
// Variable-safe lowercase name (a `Delete` entity must not bind `delete`).
|
|
60
51
|
const eVar = exampleVarName(entity.name, 'js')
|
|
61
52
|
|
|
62
53
|
Content(`
|