@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
|
@@ -67,28 +67,6 @@ function formatPhpValue(val: any, indent: number = 0): string {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
71
|
-
//
|
|
72
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
73
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
74
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
75
|
-
// payload — see CONFIG_DEFAULT.
|
|
76
|
-
//
|
|
77
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
78
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
79
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
80
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
81
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
82
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
83
|
-
//
|
|
84
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
85
|
-
// `active` means something different in feature config, where absent reads as
|
|
86
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
87
|
-
// disable the feature.
|
|
88
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
89
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
90
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
91
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
92
70
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
93
71
|
|
|
94
72
|
// Keys whose value IS the default the runtime already assumes when the key is
|
|
@@ -34,32 +34,11 @@ import {
|
|
|
34
34
|
} from './utility_py'
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
// PLUGIN DEFINITION IMPORTS AND THE FEATURE_PLUGINS MAP (mirrors
|
|
38
|
-
// cmp/ts/Config_ts.ts).
|
|
39
|
-
//
|
|
40
|
-
// Upstream sekreto replaced its self-registration registry with
|
|
41
|
-
// voxgig/plugin definitions: a provider kind the caller did not pass in
|
|
42
|
-
// via `plugins: [...]` is unknown to that Sekreto. So config imports each
|
|
43
|
-
// active plugin's exported definition BY NAME (the model's `def.py` map)
|
|
44
|
-
// and hands the list to the feature through FEATURE_PLUGINS.
|
|
45
|
-
//
|
|
46
|
-
// The `def` map is declared in the model rather than derived from
|
|
47
|
-
// filenames because one module may export several definitions (sekreto's
|
|
48
|
-
// aws.py exports awssecrets AND awsparams). A def value is the module's
|
|
49
|
-
// path under tm/py ('pkg/feature/.../aws.py'); Main copies tm/py/pkg INTO
|
|
50
|
-
// the <name>_sdk package, so the import module is the path with `pkg/`
|
|
51
|
-
// swapped for the package name and slashes for dots.
|
|
52
37
|
function pluginImports(feature: any, pkg: string) {
|
|
53
38
|
each(feature, (f: any) => {
|
|
54
|
-
// path -> [symbol, ...], so one import line serves a two-definition
|
|
55
|
-
// module.
|
|
56
39
|
const bypath: Record<string, string[]> = {}
|
|
57
40
|
|
|
58
41
|
each(f.plugin, (plugin: any) => {
|
|
59
|
-
// Filter on `active` HERE rather than trusting the feature object
|
|
60
|
-
// to arrive filtered: getting it wrong in this direction emits an
|
|
61
|
-
// import for a module the plugin trim just deleted - an SDK that
|
|
62
|
-
// does not import, rather than one that merely carries too much.
|
|
63
42
|
if (false === plugin.active || null == plugin.active) return
|
|
64
43
|
|
|
65
44
|
for (const [sym, one] of Object.entries(plugin.def?.py || {})) {
|
|
@@ -76,8 +55,6 @@ function pluginImports(feature: any, pkg: string) {
|
|
|
76
55
|
})
|
|
77
56
|
}
|
|
78
57
|
|
|
79
|
-
// The FEATURE_PLUGINS entries: one line per feature that has any active
|
|
80
|
-
// plugin definitions, listing the imported symbols.
|
|
81
58
|
function pluginDefs(feature: any) {
|
|
82
59
|
each(feature, (f: any) => {
|
|
83
60
|
const syms: string[] = []
|
|
@@ -99,15 +76,11 @@ const Config = cmp(async function Config(props: any) {
|
|
|
99
76
|
const model: Model = ctx$.model
|
|
100
77
|
|
|
101
78
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
102
|
-
// Gated by the applicability tags, so this target never imports or
|
|
103
|
-
// registers a feature it has no source for. One rule, one place:
|
|
104
|
-
// helpers/applicability.
|
|
105
79
|
const feature = targetFeatures(model, target)
|
|
106
80
|
|
|
107
81
|
const headers = getModelPath(model, `main.${KIT}.config.headers`) || {}
|
|
108
82
|
|
|
109
83
|
const authActive = isAuthActive(model)
|
|
110
|
-
// config.auth.prefix override -> spec-derived info.security.prefix -> 'Bearer'
|
|
111
84
|
const authPrefix = resolveAuthPrefix(model)
|
|
112
85
|
// `in` and `name` travel with the prefix now. They were resolved by
|
|
113
86
|
// apidef all along and dropped here, so an apiKey-in-query API got an
|
|
@@ -120,8 +93,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
120
93
|
let baseUrl = ''
|
|
121
94
|
try { baseUrl = getModelPath(model, `main.${KIT}.info.servers.0.url`) } catch (_e) { }
|
|
122
95
|
|
|
123
|
-
// Templated server URL: emit the spec's server-variable defaults so the
|
|
124
|
-
// runtime can substitute {name} placeholders in base (see make_options).
|
|
125
96
|
const svars = serverVariables(model)
|
|
126
97
|
const serverBlock = 0 === svars.length ? '' :
|
|
127
98
|
' "server": {\n' +
|
|
@@ -136,12 +107,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
136
107
|
},\n`
|
|
137
108
|
: ''
|
|
138
109
|
|
|
139
|
-
// The same config as an OBJECT, built by the shared helper so this target's
|
|
140
|
-
// literal and the data that replaces it above the threshold are the same
|
|
141
|
-
// config by construction. The JSON is what the threshold is measured on -
|
|
142
|
-
// emitted source size varies by language, the model does not. Passing the
|
|
143
|
-
// target name opts in to the main.slug/version/target identity fields -
|
|
144
|
-
// the literal path below emits them too, keeping the two reps in step.
|
|
145
110
|
const { def: configDef, json: configJson } = configDefinition(model, target.name)
|
|
146
111
|
const asData = isConfigData(configJson, configReprSetting(model))
|
|
147
112
|
|
|
@@ -193,20 +158,6 @@ def shared_config():
|
|
|
193
158
|
|
|
194
159
|
`)
|
|
195
160
|
|
|
196
|
-
// ABOVE THE THRESHOLD: emit the model as DATA.
|
|
197
|
-
//
|
|
198
|
-
// A dict literal makes CPython build the whole structure opcode by opcode
|
|
199
|
-
// at import, and the compiler hold the entire literal in memory to produce
|
|
200
|
-
// that bytecode. A string constant is one object, and `json.loads` (the C
|
|
201
|
-
// scanner) builds the dict far faster than the equivalent literal.
|
|
202
|
-
//
|
|
203
|
-
// `json.loads` yields exactly what the literal did - str keys, int for
|
|
204
|
-
// whole numbers, True/False/None - so make_config's result is unchanged.
|
|
205
|
-
//
|
|
206
|
-
// JSON.stringify output is a valid Python string literal: every escape it
|
|
207
|
-
// emits (\\", \\\\, \\n, \\uXXXX) means the same thing in Python, it never emits
|
|
208
|
-
// \\/ (which Python would not treat as an escape), and Python 3 source is
|
|
209
|
-
// UTF-8 so non-ASCII needs no escaping.
|
|
210
161
|
if (asData) {
|
|
211
162
|
Content(`# THE API MODEL, EMBEDDED AS DATA (sdkgen rung L1).
|
|
212
163
|
#
|
|
@@ -227,10 +178,6 @@ def make_config():
|
|
|
227
178
|
return
|
|
228
179
|
}
|
|
229
180
|
|
|
230
|
-
// Identity values from configDefinition's def, not re-derived here, so
|
|
231
|
-
// the literal rep and the data rep cannot disagree on identity (the
|
|
232
|
-
// slug is CARRIED, never derived from the camel name - station's
|
|
233
|
-
// descriptor reads all three; see cmp/ts/Config_ts.ts #MainMeta).
|
|
234
181
|
Content(`def make_config():
|
|
235
182
|
"""Build a fresh, fully materialised config dict.
|
|
236
183
|
|
|
@@ -1,35 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Typed-model generator (Python target). Port of EntityTypes_ts.ts.
|
|
4
|
-
//
|
|
5
|
-
// Reads main.<KIT>.entity.<e>.fields[] and per-op params
|
|
6
|
-
// (op.<name>.points[].args.params[]) and emits one module, <sdk>_types.py,
|
|
7
|
-
// with a `class <Name>(TypedDict):` per active entity plus a request/match type
|
|
8
|
-
// per active op. Field/param sentinels ($STRING, $INTEGER, ...) are turned into
|
|
9
|
-
// real Python types by the shared sdkgen helper `canonToType` (source of truth:
|
|
10
|
-
// @voxgig/apidef VALID_CANON).
|
|
11
|
-
//
|
|
12
|
-
// TYPE CHOICE: `TypedDict`, not `@dataclass`. The generated ops return/accept
|
|
13
|
-
// plain runtime dicts (data_get/match_get return `vs.clone(self._data)`; ops
|
|
14
|
-
// take/return dicts), so a `@dataclass` annotation is only aspirational — a
|
|
15
|
-
// strict checker at a call site would see dict-vs-dataclass. A TypedDict *is* a
|
|
16
|
-
// dict shape, so annotating these dict-returning/-accepting ops with TypedDict
|
|
17
|
-
// makes the TYPES MATCH the runtime. Runtime behaviour is unchanged.
|
|
18
|
-
//
|
|
19
|
-
// OPTIONAL FIELDS: a `req:false` field/param is a key that MAY be absent, which
|
|
20
|
-
// is exactly TypedDict `total=False` (key optionality), not `Optional[T]` (a
|
|
21
|
-
// None value). To express required AND optional keys on py>=3.8 WITHOUT a
|
|
22
|
-
// typing_extensions dependency (no `NotRequired`), a type with both splits into
|
|
23
|
-
// a required base `class <Name>Required(TypedDict): ...` and a `total=False`
|
|
24
|
-
// subclass `class <Name>(<Name>Required, total=False): ...` that carries the
|
|
25
|
-
// public name and adds the optional keys. Degenerate shapes collapse to a
|
|
26
|
-
// single class (all-required, all-optional, or empty). The all-optional
|
|
27
|
-
// collapse also serves the match-mirror types (the Python analogue of TS
|
|
28
|
-
// `Partial<${Name}>`).
|
|
29
|
-
//
|
|
30
|
-
// Keep the SAME type-name scheme as every other language: <Name>,
|
|
31
|
-
// <Name>LoadMatch, <Name>ListMatch, <Name>CreateData, <Name>UpdateData,
|
|
32
|
-
// <Name>RemoveMatch.
|
|
33
3
|
|
|
34
4
|
import {
|
|
35
5
|
cmp, each, names,
|
|
@@ -56,25 +26,11 @@ const PY_KEYWORDS = new Set([
|
|
|
56
26
|
])
|
|
57
27
|
|
|
58
28
|
|
|
59
|
-
// A name usable as a class-syntax TypedDict key (valid identifier, not a
|
|
60
|
-
// keyword). Non-identifier/keyword field names have no safe class-syntax
|
|
61
|
-
// rendering, so they are skipped (they remain reachable via the runtime dict).
|
|
62
29
|
function pyIdent(name: string): boolean {
|
|
63
30
|
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(name) && !PY_KEYWORDS.has(name)
|
|
64
31
|
}
|
|
65
32
|
|
|
66
33
|
|
|
67
|
-
// Emit a TypedDict named `typeName` from a list of {name, type, optional}
|
|
68
|
-
// items (optionality already decided by the caller — the shared partiality
|
|
69
|
-
// policy for op types, or `req` for the entity data type). Required items
|
|
70
|
-
// become required keys; optional items become not-required keys via a
|
|
71
|
-
// `total=False` extension.
|
|
72
|
-
//
|
|
73
|
-
// Shape selection (see file header for the rationale):
|
|
74
|
-
// both required + optional -> `<typeName>Required` base + `total=False` sub
|
|
75
|
-
// only required -> single `class <typeName>(TypedDict):`
|
|
76
|
-
// only optional -> single `class <typeName>(TypedDict, total=False):`
|
|
77
|
-
// no usable keys -> single `class <typeName>(TypedDict): pass`
|
|
78
34
|
function emitTypedDict(typeName: string, items: any[], log?: any): void {
|
|
79
35
|
const usable = items.filter((it: any) => it && null != it.name && pyIdent(it.name))
|
|
80
36
|
|
|
@@ -132,10 +88,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
132
88
|
const target = props.target || {}
|
|
133
89
|
const ext = target.ext || LANG
|
|
134
90
|
|
|
135
|
-
// only_active:false — getModelPath DROPS active:false entries by default,
|
|
136
|
-
// but the consumer scaffold (create-sdkgen Root.ts) iterates the RAW entity
|
|
137
|
-
// collection, so inactive entities still get generated entity code that
|
|
138
|
-
// references these typed names. The typed model must cover them too.
|
|
139
91
|
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
140
92
|
// Emit for EVERY entity that gets generated entity code: the consumer
|
|
141
93
|
// scaffold (create-sdkgen Root.ts) iterates entities WITHOUT an active
|
|
@@ -147,9 +99,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
147
99
|
// entity not yet named (e.g. a fieldless placeholder) would otherwise read
|
|
148
100
|
// `Name = undefined` below. Parity with the go emitter's fix.
|
|
149
101
|
|
|
150
|
-
// Surface duplicate generated type names (two entities with the same
|
|
151
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
152
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
153
102
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
154
103
|
|
|
155
104
|
File({ name: model.const.Name.toLowerCase() + '_types.' + ext }, () => {
|
|
@@ -177,7 +126,6 @@ from typing import TypedDict, Any
|
|
|
177
126
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
178
127
|
.filter((f: any) => f.active !== false)
|
|
179
128
|
|
|
180
|
-
// Entity data model: one key per field, `req:false` -> optional key.
|
|
181
129
|
Content(`
|
|
182
130
|
|
|
183
131
|
`)
|
|
@@ -185,9 +133,6 @@ from typing import TypedDict, Any
|
|
|
185
133
|
name: f.name, type: f.type, optional: false === f.req,
|
|
186
134
|
})), log)
|
|
187
135
|
|
|
188
|
-
// Per active op: a request/match type. Members and their optionality come
|
|
189
|
-
// from the shared partiality policy (opRequestShape); this file only
|
|
190
|
-
// renders them as a TypedDict.
|
|
191
136
|
const ops = ent.op || {}
|
|
192
137
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
193
138
|
if (null == ops[opname]) {
|
|
@@ -19,10 +19,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
19
19
|
const { model, stdrep } = props.ctx$
|
|
20
20
|
const { target, entity } = props
|
|
21
21
|
|
|
22
|
-
// Collision-free entity CLASS name (see entityClassName): normally
|
|
23
|
-
// `<Name>Entity`, disambiguated when it would clash with another entity's
|
|
24
|
-
// data-type name. The DATA type stays `<Name>`. The snake-cased source-file
|
|
25
|
-
// name is unaffected; only the class identifier changes.
|
|
26
22
|
const entityColl = entityCollection(model)
|
|
27
23
|
const cls = entityClassName(entity, entityColl)
|
|
28
24
|
|
|
@@ -32,8 +28,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
32
28
|
|
|
33
29
|
names(entrep, entity.Name, 'EntityName')
|
|
34
30
|
|
|
35
|
-
// Import exactly the typed models this entity references: its data type plus
|
|
36
|
-
// one request type per ACTIVE op (matches what EntityTypes_py.ts emits).
|
|
37
31
|
const typeNames = [entity.Name]
|
|
38
32
|
const opnamesAll = Object.keys(entity.op || {})
|
|
39
33
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
@@ -41,8 +35,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
41
35
|
typeNames.push(opTypeName(entity.Name, opname))
|
|
42
36
|
}
|
|
43
37
|
})
|
|
44
|
-
// The generated dataclasses live inside the SDK package alongside
|
|
45
|
-
// everything else, so the import is package-qualified.
|
|
46
38
|
const typesModule = model.const.Name.toLowerCase() + '_sdk.' +
|
|
47
39
|
model.const.Name.toLowerCase() + '_types'
|
|
48
40
|
const typeImport =
|
|
@@ -51,9 +43,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
51
43
|
|
|
52
44
|
const ff = Path.normalize(__dirname + '/../../../src/cmp/py/fragment/')
|
|
53
45
|
|
|
54
|
-
// Entity files go to <name>_sdk/entity/ — inside the SDK package, not at
|
|
55
|
-
// the language root. See the note in Main_py.ts: a top-level `entity`
|
|
56
|
-
// package is shadowable by any entity.py sitting beside the caller.
|
|
57
46
|
Folder({ name: model.const.Name.toLowerCase() + '_sdk' }, () => {
|
|
58
47
|
Folder({ name: 'entity' }, () => {
|
|
59
48
|
|
|
@@ -77,13 +66,8 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
77
66
|
EntityName: entity.Name,
|
|
78
67
|
entityname: entity.name,
|
|
79
68
|
|
|
80
|
-
// Class token decoupled from the EntityName data-type token in
|
|
81
|
-
// Entity.fragment.py so the class can be renamed independently.
|
|
82
69
|
EntyClass: cls,
|
|
83
70
|
|
|
84
|
-
// Literal-marker slot (jostraca's `#Name` tag pattern is hardcoded to
|
|
85
|
-
// `//` comments, so Python uses a `# #`-prefixed literal like the op
|
|
86
|
-
// frag slots) — fills in the typed-model import for this entity.
|
|
87
71
|
'# #TypeImports': typeImport,
|
|
88
72
|
|
|
89
73
|
// Feature-hook markers. jostraca's built-in `#Name-Tag` pattern is
|
|
@@ -42,20 +42,14 @@ const Main = cmp(async function Main(props: any) {
|
|
|
42
42
|
// helpers/applicability.
|
|
43
43
|
const feature = targetFeatures(model, target)
|
|
44
44
|
|
|
45
|
-
// Does the secrets feature apply here and is it switched on? Both, since
|
|
46
|
-
// targetFeatures already dropped it for a target with no sekreto port.
|
|
47
45
|
const secrets = null != (feature as any).secrets
|
|
48
46
|
|
|
49
|
-
// The one package directory everything the SDK owns lives in.
|
|
50
47
|
const pkgdir = model.const.Name.toLowerCase() + '_sdk'
|
|
51
48
|
|
|
52
49
|
Package({ target })
|
|
53
50
|
|
|
54
51
|
Gitignore({})
|
|
55
52
|
|
|
56
|
-
// Root-level statics only (Makefile, LICENSE, test/). The runtime
|
|
57
|
-
// packages live under tm/py/pkg and are copied INSIDE the SDK package
|
|
58
|
-
// below.
|
|
59
53
|
Copy({
|
|
60
54
|
from: 'tm/' + target.name,
|
|
61
55
|
exclude: [/src\//, /pkg\//, TEST_CONTROL_EXCLUDE],
|
|
@@ -64,35 +58,16 @@ const Main = cmp(async function Main(props: any) {
|
|
|
64
58
|
}
|
|
65
59
|
})
|
|
66
60
|
|
|
67
|
-
// Everything the SDK owns lives inside ONE package directory.
|
|
68
|
-
//
|
|
69
|
-
// core/, entity/, feature/ and utility/ used to sit at the language root
|
|
70
|
-
// as top-level importable names. `core`, `entity` and `utility` are all
|
|
71
|
-
// real PyPI distributions AND common scratch filenames, and Python puts
|
|
72
|
-
// the working directory first on sys.path — so a single utility.py beside
|
|
73
|
-
// a notebook shadowed ours and the SDK died on
|
|
74
|
-
// `No module named 'utility.voxgig_struct'`. Nesting them behind the
|
|
75
|
-
// model-named package makes that impossible.
|
|
76
|
-
//
|
|
77
|
-
// The public import is unchanged: `from <name>_sdk import <Name>SDK`,
|
|
78
|
-
// because <name>_sdk.py becomes <name>_sdk/__init__.py.
|
|
79
61
|
Folder({ name: pkgdir }, () => {
|
|
80
62
|
|
|
81
63
|
Copy({
|
|
82
64
|
from: 'tm/' + target.name + '/pkg',
|
|
83
|
-
// An ACTIVE feature's INACTIVE plugins do not ship. py has no
|
|
84
|
-
// src/feature layout (srcfeature: false), so this blanket pkg copy is
|
|
85
|
-
// the one place the generate-time plugin trim can act; the model's
|
|
86
|
-
// `plugin.<group>.path` entries name their files relative to THIS
|
|
87
|
-
// copy's root ('feature/secrets/voxgig_sekreto/plugins/<kind>.py').
|
|
88
|
-
// See helpers/featureSource.pluginExcludes.
|
|
89
65
|
exclude: [...pluginExcludes(model)],
|
|
90
66
|
replace: {
|
|
91
67
|
...props.ctx$.stdrep,
|
|
92
68
|
}
|
|
93
69
|
})
|
|
94
70
|
|
|
95
|
-
// Generate main SDK file
|
|
96
71
|
File({ name: '__init__.' + target.ext }, () => {
|
|
97
72
|
|
|
98
73
|
Fragment(
|
|
@@ -101,22 +76,7 @@ const Main = cmp(async function Main(props: any) {
|
|
|
101
76
|
replace: {
|
|
102
77
|
...props.ctx$.stdrep,
|
|
103
78
|
|
|
104
|
-
|
|
105
|
-
// applies to this target AND the model activates it - an
|
|
106
|
-
// unconditional edit would land in every generated SDK, and with
|
|
107
|
-
// the feature off the marker line is REMOVED, so the inactive
|
|
108
|
-
// output is byte-identical to pre-migration. `feature` is
|
|
109
|
-
// already gated by targetFeatures, so a target that does not
|
|
110
|
-
// provide 'sekreto' never reaches these.
|
|
111
|
-
//
|
|
112
|
-
// CUSTOM-REGEX keys, like Entity_py's hook markers: jostraca's
|
|
113
|
-
// built-in `#Name` tag pattern is hardcoded to `//` comments,
|
|
114
|
-
// so a bare '#SecretsAccessor' key would silently never match a
|
|
115
|
-
// python `# #SecretsAccessor` marker line.
|
|
116
|
-
|
|
117
|
-
// The LIVE Sekreto, not a clone: sekreto holds provider and
|
|
118
|
-
// cache state, so a clone would resolve into a copy that
|
|
119
|
-
// prepare_auth never sees.
|
|
79
|
+
|
|
120
80
|
'/(?<indent>[ \\t]*)#[ \\t]*#SecretsAccessor[ \\t]*\\n?/':
|
|
121
81
|
({ indent }: any) => !secrets ? '' :
|
|
122
82
|
`${indent}def secrets(self):\n` +
|
|
@@ -148,7 +108,6 @@ self._utility.feature_hook(self._rootctx, "${name}")
|
|
|
148
108
|
}
|
|
149
109
|
},
|
|
150
110
|
|
|
151
|
-
// Entities - injected at SLOT
|
|
152
111
|
() => {
|
|
153
112
|
each(entity, (entity: ModelEntity) => {
|
|
154
113
|
const entitySDK = getModelPath(model, `main.${KIT}.entity.${entity.name}`)
|
|
@@ -177,7 +136,6 @@ if TYPE_CHECKING:
|
|
|
177
136
|
}
|
|
178
137
|
})
|
|
179
138
|
|
|
180
|
-
// Generate the typed-model module (<sdk>_types.py) next to the main SDK file.
|
|
181
139
|
EntityTypes({ target })
|
|
182
140
|
|
|
183
141
|
// PEP 561 marker so the inline type hints ship to consumers. Emitted at the
|
|
@@ -187,24 +145,13 @@ if TYPE_CHECKING:
|
|
|
187
145
|
Content(``)
|
|
188
146
|
})
|
|
189
147
|
|
|
190
|
-
// Generate config module
|
|
191
148
|
Folder({ name: '.' }, () => {
|
|
192
149
|
Config({ target })
|
|
193
150
|
Schema({ target })
|
|
194
151
|
})
|
|
195
152
|
|
|
196
|
-
// GENERATED, NOT COPIED. Where the credential goes is a fact about the
|
|
197
|
-
// API, and tm/ can only hold one answer. The blanket tm/py/pkg copy above
|
|
198
|
-
// no longer brings a prepare_auth.py in - it was deleted, since both
|
|
199
|
-
// writers would claim the same output path. See PrepareAuth_py.
|
|
200
|
-
//
|
|
201
|
-
// Called HERE, inside the <name>_sdk package folder and outside any
|
|
202
|
-
// other, because that is where the deleted template's own path
|
|
203
|
-
// (tm/py/pkg/utility/prepare_auth.py) put it: the component opens the one
|
|
204
|
-
// remaining segment, `utility`, itself.
|
|
205
153
|
PrepareAuth({ target })
|
|
206
154
|
|
|
207
|
-
// Generate feature factory module
|
|
208
155
|
File({ name: 'features.' + target.ext }, () => {
|
|
209
156
|
Content(`# ${model.const.Name} SDK feature factory
|
|
210
157
|
|
|
@@ -252,11 +199,6 @@ def _has_feature(name):
|
|
|
252
199
|
`)
|
|
253
200
|
})
|
|
254
201
|
|
|
255
|
-
// Generate __init__.py files for sub-packages.
|
|
256
|
-
// NOTE: deliberately omit __init__.py at the language-root (py/) level —
|
|
257
|
-
// making py/ a package collides with the third-party `py` module on PyPI
|
|
258
|
-
// (a single-file `py.py`), which causes pytest to construct test module
|
|
259
|
-
// paths as `py.test.<file>` and fail with "'py' is not a package".
|
|
260
202
|
Folder({ name: 'core' }, () => {
|
|
261
203
|
File({ name: '__init__.' + target.ext }, () => {
|
|
262
204
|
Content(``)
|
|
@@ -267,8 +209,6 @@ def _has_feature(name):
|
|
|
267
209
|
File({ name: '__init__.' + target.ext }, () => {
|
|
268
210
|
Content(``)
|
|
269
211
|
})
|
|
270
|
-
// PEP 561 marker inside the type-bearing package so setuptools package-data
|
|
271
|
-
// ("*" = ["py.typed"]) bundles it into the wheel.
|
|
272
212
|
File({ name: 'py.typed' }, () => {
|
|
273
213
|
Content(``)
|
|
274
214
|
})
|
|
@@ -22,9 +22,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
22
22
|
|
|
23
23
|
const model: Model = ctx$.model
|
|
24
24
|
|
|
25
|
-
// PyPI distribution name is namespaced to model.origin (e.g. "voxgig-sdk").
|
|
26
|
-
// PyPI names can't contain "/", so the parts are hyphen-joined. The import
|
|
27
|
-
// package (the `${model.name}_sdk/` dir) is unchanged.
|
|
28
25
|
const ns = model.origin || 'voxgig-sdk'
|
|
29
26
|
const pkgBase = ns.endsWith('-sdk') ? model.name : `${model.name}-sdk`
|
|
30
27
|
const distName = packageName(model, target.name)
|
|
@@ -17,51 +17,19 @@ 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. The py port of cmp/ts/PrepareAuth_ts.ts; see that
|
|
22
|
-
// file for the full account.
|
|
23
|
-
//
|
|
24
|
-
// This was a static file at `tm/py/pkg/utility/prepare_auth.py` that
|
|
25
|
-
// hardcoded a lowercase `authorization` header. apidef has always resolved
|
|
26
|
-
// the scheme's `in` and `name` into `main.kit.info.security` — joplin's
|
|
27
|
-
// says `in: "query", name: "token"` — and generation dropped both, so the
|
|
28
|
-
// SDK sent a header the API does not read and never sent the query
|
|
29
|
-
// parameter it does.
|
|
30
|
-
//
|
|
31
|
-
// A template cannot fix this, because the three placements need three
|
|
32
|
-
// different bodies and a template has to pick one. A component emits the
|
|
33
|
-
// branch this API actually uses and nothing else — no dead query code in a
|
|
34
|
-
// bearer-token SDK, and no runtime `if` on a value that is fixed at
|
|
35
|
-
// generation time.
|
|
36
20
|
const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
37
21
|
const { target } = props
|
|
38
22
|
const { model } = props.ctx$
|
|
39
23
|
|
|
40
|
-
// FOLDER NESTING. Main_py already opened the ONE package folder
|
|
41
|
-
// (`<name>_sdk`) that everything the SDK owns lives in, and the blanket
|
|
42
|
-
// `Copy({from: 'tm/py/pkg'})` that used to bring this file in runs inside
|
|
43
|
-
// that same folder — which is why the template's own path,
|
|
44
|
-
// `tm/py/pkg/utility/prepare_auth.py`, lands at
|
|
45
|
-
// `<name>_sdk/utility/prepare_auth.py`. So this component opens exactly
|
|
46
|
-
// ONE segment, `utility`, to reproduce that path. Opening `<name>_sdk`
|
|
47
|
-
// again would write to `<name>_sdk/<name>_sdk/utility/`, which nothing
|
|
48
|
-
// imports, while register.py kept importing the stale copy.
|
|
49
24
|
Folder({ name: 'utility' }, () => {
|
|
50
25
|
File({ name: 'prepare_auth.' + target.ext }, () => {
|
|
51
26
|
Content(render({
|
|
52
|
-
// The generated package name, spelled the way Config_py spells it.
|
|
53
|
-
// A Copy applies ctx$.stdrep to the file it copies; Content does
|
|
54
|
-
// not, so the `projectname_sdk` placeholder the template carried
|
|
55
|
-
// has to be resolved here.
|
|
56
27
|
pkg: model.const.Name.toLowerCase() + '_sdk',
|
|
57
28
|
Name: model.const.Name,
|
|
58
29
|
active: isAuthActive_py(model),
|
|
59
30
|
where: resolveAuthIn(model),
|
|
60
31
|
name: resolveAuthName(model),
|
|
61
32
|
basic: isHttpBasicAuth(model),
|
|
62
|
-
// Read so the resolution is visible at generation time even though
|
|
63
|
-
// the emitted code takes the prefix from options at runtime (the
|
|
64
|
-
// secrets feature rewrites it there).
|
|
65
33
|
prefix: resolveAuthPrefix(model),
|
|
66
34
|
}))
|
|
67
35
|
})
|
|
@@ -113,10 +81,6 @@ def prepare_auth_util(ctx):
|
|
|
113
81
|
}
|
|
114
82
|
|
|
115
83
|
|
|
116
|
-
// HEADER. Byte-for-byte the old template when the scheme resolves to the
|
|
117
|
-
// defaults (header / Authorization), so every header-based SDK regenerates
|
|
118
|
-
// unchanged — only the constant's VALUE moves with the model, plus the
|
|
119
|
-
// HTTP Basic block, which is emitted only for a basic scheme.
|
|
120
84
|
function renderHeader(spec: AuthSpec, head: string): string {
|
|
121
85
|
return head + (spec.basic ? `import base64
|
|
122
86
|
` : '') + `from ${spec.pkg}.utility.voxgig_struct import voxgig_struct as vs
|
|
@@ -211,8 +175,6 @@ function basicBlock(spec: AuthSpec): string {
|
|
|
211
175
|
}
|
|
212
176
|
|
|
213
177
|
|
|
214
|
-
// QUERY. The credential is a query parameter, so it goes in spec.query and
|
|
215
|
-
// the headers are never touched.
|
|
216
178
|
function renderQuery(spec: AuthSpec, head: string): string {
|
|
217
179
|
return head + `from ${spec.pkg}.utility.voxgig_struct import voxgig_struct as vs
|
|
218
180
|
|
|
@@ -257,9 +219,6 @@ def prepare_auth_util(ctx):
|
|
|
257
219
|
}
|
|
258
220
|
|
|
259
221
|
|
|
260
|
-
// COOKIE. A cookie IS a header, so the credential rides the header bag -
|
|
261
|
-
// but the `cookie` header is SHARED with whatever cookies the caller set,
|
|
262
|
-
// so the pair is spliced in and out rather than the header assigned over.
|
|
263
222
|
function renderCookie(spec: AuthSpec, head: string): string {
|
|
264
223
|
return head + `from ${spec.pkg}.utility.voxgig_struct import voxgig_struct as vs
|
|
265
224
|
|
|
@@ -339,28 +298,6 @@ def prepare_auth_util(ctx):
|
|
|
339
298
|
}
|
|
340
299
|
|
|
341
300
|
|
|
342
|
-
// NOT `isAuthActive`, AND THE DIFFERENCE IS LOAD-BEARING. That helper is
|
|
343
|
-
// false whenever the SPEC declares no security scheme (`main.kit.info.auth:
|
|
344
|
-
// false`) — which is a statement about the DEFINITION, not a ban on ever
|
|
345
|
-
// sending a credential. apidef writes it for every spec with no
|
|
346
|
-
// securitySchemes block, GitHub's official OpenAPI included, and those SDKs
|
|
347
|
-
// are still expected to honour an `apikey` the caller passes; the old
|
|
348
|
-
// template placed the credential unconditionally, so they did.
|
|
349
|
-
//
|
|
350
|
-
// Gating the body on `isAuthActive` therefore does not just trim dead code,
|
|
351
|
-
// it removes working authentication from every such SDK. The generated
|
|
352
|
-
// suite catches it: generatedcompile's `py: auth null beats an explicit
|
|
353
|
-
// apikey` lane generates against a fixture that declares
|
|
354
|
-
// `main: kit: info: { ... auth: false }` and then requires
|
|
355
|
-
// `wire({apikey: 'OPTKEY01'})` to reach the transport as an authorization
|
|
356
|
-
// header. With the wider gate it reports
|
|
357
|
-
//
|
|
358
|
-
// FAIL: baseline broken: an ordinary apikey was not sent:
|
|
359
|
-
// {'called': True, 'had': False, 'val': None}
|
|
360
|
-
//
|
|
361
|
-
// So the no-op is emitted only when the PROJECT says so — `config.auth.active:
|
|
362
|
-
// false`, an explicit per-SDK switch nobody sets by accident. A spec that is
|
|
363
|
-
// merely silent keeps the credential path it has always had.
|
|
364
301
|
function isAuthActive_py(model: any): boolean {
|
|
365
302
|
const auth = getModelPath(model, `main.${KIT}.config.auth`,
|
|
366
303
|
{ only_active: false, required: false })
|
|
@@ -368,12 +305,6 @@ function isAuthActive_py(model: any): boolean {
|
|
|
368
305
|
}
|
|
369
306
|
|
|
370
307
|
|
|
371
|
-
// HTTP header names are case-insensitive, and the whole py runtime spells
|
|
372
|
-
// them lowercase - the debug feature's redact list, the secrets feature's
|
|
373
|
-
// in-place rewrite of `fetchdef["headers"]["authorization"]`, and the
|
|
374
|
-
// generated tests all match on the lowercase key. Lowercasing here keeps
|
|
375
|
-
// the default byte-identical to the old template AND keeps a custom header
|
|
376
|
-
// name (`X-API-Key`) findable by all of them.
|
|
377
308
|
function headerName(name: string): string {
|
|
378
309
|
return String(name).toLowerCase()
|
|
379
310
|
}
|
|
@@ -7,11 +7,6 @@ import {
|
|
|
7
7
|
} from '@voxgig/apidef'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
// A type-correct, JSON-serialisable Python literal for a field's canonical
|
|
11
|
-
// type. The create example is EXECUTED by the doc test (the body is
|
|
12
|
-
// JSON-serialised), so an Ellipsis (`...`) placeholder would raise
|
|
13
|
-
// "Object of type ellipsis is not JSON serializable" — use a real value.
|
|
14
|
-
// Strings render the quoted placeholder.
|
|
15
10
|
function pyLit(type: any, placeholder: string = 'example'): string {
|
|
16
11
|
const k = canonScalarKey(type)
|
|
17
12
|
if ('INTEGER' === k || 'NUMBER' === k) return '1'
|
|
@@ -22,14 +17,6 @@ function pyLit(type: any, placeholder: string = 'example'): string {
|
|
|
22
17
|
}
|
|
23
18
|
|
|
24
19
|
|
|
25
|
-
// Operation method spelling differs between Go and other languages — Go
|
|
26
|
-
// uses PascalCase methods with explicit ctrl arg, others use lowercase
|
|
27
|
-
// methods with optional ctrl. The op descriptions are language-agnostic.
|
|
28
|
-
// A `list()` on a NESTED entity needs its parent path params. The
|
|
29
|
-
// quickstart used to emit `client.Moon().list()` for an entity at
|
|
30
|
-
// `/planet/{planet_id}/moon`, which 404s against a live server from a
|
|
31
|
-
// half-built URL — indistinguishable from "no such record". The model
|
|
32
|
-
// already marks those params `reqd: true`; matchArg renders exactly them.
|
|
33
20
|
function listMatchArg(ent: any): string {
|
|
34
21
|
const idF = entityIdField(ent)
|
|
35
22
|
return matchArg('py', ent, 'list', idF, idLiteral(ent, 'list', idF))
|
|
@@ -8,37 +8,6 @@ import {
|
|
|
8
8
|
} from '@voxgig/apidef'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
// Emits py/test/test_readme_examples.py — a pytest COMPLETENESS GATE over
|
|
12
|
-
// every ```python fenced block in the repository ROOT README.md, in the
|
|
13
|
-
// per-language py/README.md, AND in the per-language py/REFERENCE.md.
|
|
14
|
-
//
|
|
15
|
-
// The gate GUARANTEES every documented python example is unit-tested. For each
|
|
16
|
-
// of the three docs it:
|
|
17
|
-
// 1. extracts every ```python block (tagged by source doc + index);
|
|
18
|
-
// 2. ast.parse + compile()s EVERY block -> SYNTAX gate;
|
|
19
|
-
// 3. EXECUTEs every RUNNABLE block (one that constructs the SDK, or drives a
|
|
20
|
-
// `client`/`sdk` the narrative built earlier) in a seeded, offline
|
|
21
|
-
// TEST-mode subprocess. A PROGRAMMING error
|
|
22
|
-
// (Name/Attribute/Type/Key/Index/Import/Syntax) FAILS; ONLY a
|
|
23
|
-
// not-found/404 domain error is tolerated. Any other error also FAILS;
|
|
24
|
-
// 4. asserts COMPLETENESS: it partitions every block into exactly one of
|
|
25
|
-
// {executed, compiled-nonrunnable, illustration} and asserts
|
|
26
|
-
// total == executed + compiled + illustration. "illustration" is a NARROW
|
|
27
|
-
// explicit class (a non-runnable block that is only imports / signature
|
|
28
|
-
// stubs / bare references / literal assignments — a pure signature/table
|
|
29
|
-
// snippet) and can NEVER absorb a runnable example. A block that looks
|
|
30
|
-
// runnable (references the SDK/client) but was not executed FAILS the
|
|
31
|
-
// test; a block that fails to compile FAILS the test. A per-doc summary
|
|
32
|
-
// (total/executed/compiled/illustration) is printed.
|
|
33
|
-
//
|
|
34
|
-
// If mypy is importable it also type-checks the concatenated ROOT README blocks
|
|
35
|
-
// (the SDK ships py.typed + TypedDicts) — a bonus TYPE gate over the primary
|
|
36
|
-
// EXECUTE gate.
|
|
37
|
-
//
|
|
38
|
-
// The emitted Python is written WITHOUT backticks or backslashes (chr(96) is
|
|
39
|
-
// the fence marker, chr(10) is newline) so this TS template literal stays
|
|
40
|
-
// clean — the only interpolations are the SDK module/class names and the
|
|
41
|
-
// generated entity map.
|
|
42
11
|
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
43
12
|
const { target, ctx$: { model } } = props
|
|
44
13
|
|
|
@@ -8,7 +8,6 @@ import {
|
|
|
8
8
|
} from '@voxgig/apidef'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
// A type-correct Python literal for a field's canonical type.
|
|
12
11
|
function pyLit(type: any): string {
|
|
13
12
|
const k = canonScalarKey(type)
|
|
14
13
|
if ('INTEGER' === k || 'NUMBER' === k) return '1'
|
|
@@ -31,8 +30,6 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
31
30
|
// Sanitise the local variable name — an entity whose lowercased name is a
|
|
32
31
|
// Python keyword (e.g. `class`) would otherwise emit uncompilable code.
|
|
33
32
|
const eVar = exampleVarName(eName.toLowerCase(), 'py')
|
|
34
|
-
// Model-driven id key: null when the entity has no id-like field, so a
|
|
35
|
-
// match op takes no argument.
|
|
36
33
|
const idF = exampleEntity ? entityIdField(exampleEntity) : null
|
|
37
34
|
const isMatchOp = 'load' === primaryOp || 'remove' === primaryOp
|
|
38
35
|
let testArg = ''
|