@voxgig/sdkgen 4.21.0 → 4.23.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 +1 -81
- package/dist/cmp/ReadmeTop.js.map +1 -1
- package/dist/cmp/ReadmeUnions.js +1 -16
- 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 +3 -2
- 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.d.ts +3 -1
- package/dist/helpers/buildIdNames.js +15 -19
- package/dist/helpers/buildIdNames.js.map +1 -1
- package/dist/helpers/canonSpec.js +2 -116
- 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 +2 -6
- 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 +5 -79
- 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 +33 -231
- 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 +5 -65
- package/dist/helpers/pointPath.js.map +1 -1
- package/dist/helpers/resolved.d.ts +6 -0
- package/dist/helpers/resolved.js +22 -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 +3 -2
- package/dist/sdkgen.js +15 -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 +15 -250
- 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 +4 -40
- 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/ReadmeEntity_c.ts +3 -3
- package/project/.sdk/src/cmp/c/ReadmeExamplesTest_c.ts +0 -20
- package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +3 -3
- package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +7 -10
- package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +0 -2
- package/project/.sdk/src/cmp/c/Schema_c.ts +1 -20
- package/project/.sdk/src/cmp/c/TestDirect_c.ts +12 -12
- 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/ReadmeEntity_clojure.ts +3 -3
- package/project/.sdk/src/cmp/clojure/ReadmeExamplesTest_clojure.ts +0 -16
- package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +3 -3
- package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +7 -10
- package/project/.sdk/src/cmp/clojure/Schema_clojure.ts +1 -21
- 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 +3 -39
- 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/ReadmeEntity_cpp.ts +3 -3
- package/project/.sdk/src/cmp/cpp/ReadmeExamplesTest_cpp.ts +0 -19
- package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +3 -3
- package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +0 -7
- package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +7 -10
- package/project/.sdk/src/cmp/cpp/Schema_cpp.ts +1 -22
- package/project/.sdk/src/cmp/cpp/TestDirect_cpp.ts +14 -14
- package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +51 -53
- 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 +4 -54
- 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 +3 -4
- package/project/.sdk/src/cmp/csharp/ReadmeExamplesTest_csharp.ts +0 -23
- package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +7 -10
- package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +0 -2
- package/project/.sdk/src/cmp/csharp/Schema_csharp.ts +1 -19
- package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +30 -30
- package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +66 -69
- 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 +4 -42
- 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/ReadmeEntity_elixir.ts +3 -3
- package/project/.sdk/src/cmp/elixir/ReadmeExamplesTest_elixir.ts +0 -19
- package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +3 -3
- package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +6 -9
- package/project/.sdk/src/cmp/elixir/Schema_elixir.ts +1 -25
- 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 +4 -75
- 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 +3 -8
- 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 +3 -14
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +0 -21
- package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +7 -19
- package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +0 -9
- package/project/.sdk/src/cmp/go/Schema_go.ts +1 -22
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +38 -61
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +75 -82
- 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 +5 -75
- 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 +4 -54
- 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 +3 -4
- package/project/.sdk/src/cmp/java/ReadmeExamplesTest_java.ts +0 -20
- package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +3 -3
- package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +0 -4
- package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +7 -10
- package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +0 -7
- package/project/.sdk/src/cmp/java/Schema_java.ts +1 -20
- package/project/.sdk/src/cmp/java/TestDirect_java.ts +30 -37
- package/project/.sdk/src/cmp/java/TestEntity_java.ts +69 -72
- 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 +5 -38
- 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 +3 -12
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +0 -2
- package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +3 -3
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +0 -15
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +7 -12
- package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +0 -7
- package/project/.sdk/src/cmp/js/Schema_js.ts +1 -22
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +29 -43
- package/project/.sdk/src/cmp/js/TestEntity_js.ts +69 -82
- package/project/.sdk/src/cmp/js/TestLive_js.ts +12 -5
- package/project/.sdk/src/cmp/js/utility_js.ts +5 -63
- 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 +4 -57
- 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 +3 -4
- package/project/.sdk/src/cmp/kotlin/ReadmeExamplesTest_kotlin.ts +0 -20
- package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +7 -10
- package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +0 -5
- package/project/.sdk/src/cmp/kotlin/Schema_kotlin.ts +1 -20
- package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +30 -30
- package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +67 -70
- 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 +5 -35
- 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 +3 -11
- package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +0 -24
- package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +3 -13
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +4 -25
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +7 -17
- package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +0 -3
- package/project/.sdk/src/cmp/lua/Schema_lua.ts +1 -17
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +25 -27
- package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +66 -65
- 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/ReadmeEntity_ocaml.ts +3 -3
- package/project/.sdk/src/cmp/ocaml/ReadmeExamplesTest_ocaml.ts +0 -17
- package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +3 -3
- package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +7 -10
- package/project/.sdk/src/cmp/ocaml/Schema_ocaml.ts +1 -24
- 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 +3 -6
- package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +0 -27
- package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +3 -3
- package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +7 -10
- package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +0 -2
- package/project/.sdk/src/cmp/perl/Schema_perl.ts +1 -19
- package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +25 -27
- package/project/.sdk/src/cmp/perl/TestEntity_perl.ts +60 -59
- 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 +5 -56
- 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 +3 -7
- 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/ReadmeModel_php.ts +3 -3
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +4 -23
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +7 -12
- package/project/.sdk/src/cmp/php/Schema_php.ts +1 -16
- package/project/.sdk/src/cmp/php/TestDirect_php.ts +25 -25
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +66 -74
- 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 +4 -59
- 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 +3 -16
- 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/ReadmeModel_py.ts +3 -3
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +0 -28
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +7 -21
- package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +0 -14
- package/project/.sdk/src/cmp/py/Schema_py.ts +1 -20
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +25 -27
- package/project/.sdk/src/cmp/py/TestEntity_py.ts +66 -65
- package/project/.sdk/src/cmp/py/utility_py.ts +0 -22
- package/project/.sdk/src/cmp/py-data/Main_py-data.ts +13 -47
- package/project/.sdk/src/cmp/rb/Config_rb.ts +0 -56
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +4 -62
- 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 +3 -10
- 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/ReadmeModel_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +4 -27
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +7 -15
- 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 +1 -16
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +25 -27
- package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +66 -65
- 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 +4 -38
- 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/ReadmeEntity_rust.ts +3 -3
- package/project/.sdk/src/cmp/rust/ReadmeExamplesTest_rust.ts +0 -16
- package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +3 -3
- package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +7 -10
- package/project/.sdk/src/cmp/rust/Schema_rust.ts +1 -19
- package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +18 -25
- package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +63 -71
- 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 +4 -55
- 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 +3 -4
- package/project/.sdk/src/cmp/scala/ReadmeExamplesTest_scala.ts +0 -23
- package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +7 -10
- package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +0 -5
- package/project/.sdk/src/cmp/scala/Schema_scala.ts +1 -20
- package/project/.sdk/src/cmp/scala/TestDirect_scala.ts +14 -14
- package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +60 -67
- 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 +5 -44
- 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 +3 -5
- package/project/.sdk/src/cmp/swift/ReadmeExamplesTest_swift.ts +0 -22
- package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +7 -10
- package/project/.sdk/src/cmp/swift/Schema_swift.ts +1 -19
- 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 +5 -39
- 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 +3 -12
- 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 +3 -6
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +1 -44
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +7 -25
- 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 +1 -22
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +42 -93
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +76 -107
- package/project/.sdk/src/cmp/ts/TestLive_ts.ts +12 -6
- 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 +5 -64
- 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/ReadmeEntity_zig.ts +3 -3
- package/project/.sdk/src/cmp/zig/ReadmeExamplesTest_zig.ts +0 -18
- package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +3 -3
- package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +0 -3
- package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +7 -10
- package/project/.sdk/src/cmp/zig/Schema_zig.ts +1 -24
- 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/c/feature/test.c +20 -4
- package/project/.sdk/tm/clojure/src/sdk/features.clj +6 -4
- package/project/.sdk/tm/cpp/feature/test.hpp +17 -6
- package/project/.sdk/tm/csharp/feature/FeatureOptions.cs +18 -5
- package/project/.sdk/tm/csharp/feature/TestFeature.cs +10 -4
- package/project/.sdk/tm/elixir/lib/projectname/feature/test.ex +11 -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/java/feature/TestFeature.java +11 -6
- package/project/.sdk/tm/js/src/feature/test/TestFeature.js +12 -4
- package/project/.sdk/tm/js/test/live-entity.js +29 -29
- package/project/.sdk/tm/js/test/live-scenarios.js +4 -4
- package/project/.sdk/tm/kotlin/feature/TestFeature.kt +8 -4
- package/project/.sdk/tm/ocaml/sdk_features.ml +6 -4
- package/project/.sdk/tm/perl/feature/test_feature.pm +6 -4
- package/project/.sdk/tm/rb/feature/test_feature.rb +6 -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 +8 -23
- 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/scala/feature/TestFeature.scala +10 -6
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TestFeature.swift +10 -6
- 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/live-entity.ts +26 -26
- package/project/.sdk/tm/ts/test/live-scenarios.ts +3 -3
- 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/.sdk/tm/zig/feature/test.zig +11 -4
- 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 +1 -81
- package/src/cmp/ReadmeUnions.ts +1 -16
- package/src/cmp/Registered.ts +0 -30
- package/src/cmp/Security.ts +0 -2
- package/src/cmp/Test.ts +4 -2
- package/src/cmp/TestControl.ts +0 -25
- package/src/helpers/applicability.ts +0 -60
- package/src/helpers/buildIdNames.ts +17 -19
- package/src/helpers/canonSpec.ts +2 -116
- 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 +2 -6
- package/src/helpers/junk.ts +13 -89
- package/src/helpers/manifest.ts +0 -169
- package/src/helpers/modelNames.ts +6 -82
- 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 +33 -233
- package/src/helpers/optspec.ts +0 -77
- package/src/helpers/packageMeta.ts +1 -200
- package/src/helpers/pointPath.ts +5 -65
- package/src/helpers/resolved.ts +39 -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 +18 -264
- package/src/testkit.ts +6 -312
- package/src/types.ts +1 -30
- package/src/utility.ts +16 -250
package/src/helpers/opShape.ts
CHANGED
|
@@ -1,30 +1,3 @@
|
|
|
1
|
-
// Per-op request-payload shape + partiality policy for the typed-model
|
|
2
|
-
// generators (EntityTypes_<lang>.ts).
|
|
3
|
-
//
|
|
4
|
-
// SINGLE SOURCE OF TRUTH for two things every language generator needs:
|
|
5
|
-
// 1. The type-name scheme: <Name>{Load,List,Remove}Match /
|
|
6
|
-
// <Name>{Create,Update}Data (OP_SUFFIX + opTypeName).
|
|
7
|
-
// 2. Which fields make up an op's request payload, and whether each is
|
|
8
|
-
// required or optional (opRequestShape) — i.e. the partiality policy.
|
|
9
|
-
//
|
|
10
|
-
// PARTIALITY POLICY
|
|
11
|
-
// Op-declared params win: if the op declares params
|
|
12
|
-
// (op.<name>.points[].args.params[]), the payload is built from them and a
|
|
13
|
-
// param is optional iff `reqd === false` (this is how path/query params such
|
|
14
|
-
// as {id} become required). `fromParams` is true in that case.
|
|
15
|
-
//
|
|
16
|
-
// Otherwise the payload mirrors the entity's fields, filtered to those active
|
|
17
|
-
// for the op (field.op[opname].active !== false; absent -> participates), and
|
|
18
|
-
// optionality is decided per-op:
|
|
19
|
-
// create -> required iff `field.req` (server-shaped required fields);
|
|
20
|
-
// update -> all optional (patch);
|
|
21
|
-
// load / remove -> a field named `id` is required, the rest optional
|
|
22
|
-
// (best-effort key convention; degrades to all-optional if no `id`);
|
|
23
|
-
// list -> all optional (filter).
|
|
24
|
-
//
|
|
25
|
-
// The generators consume `items` (each already carrying its final `optional`
|
|
26
|
-
// flag) and render them in the target language's struct/interface/TypedDict
|
|
27
|
-
// syntax; the policy itself is language-neutral and tested in isolation.
|
|
28
1
|
|
|
29
2
|
import { each, names } from 'jostraca'
|
|
30
3
|
import { KIT, getModelPath } from '@voxgig/apidef'
|
|
@@ -32,23 +5,6 @@ import { KIT, getModelPath } from '@voxgig/apidef'
|
|
|
32
5
|
import { pointSegments, pointTerminalParam, pointPathKey } from './pointPath'
|
|
33
6
|
|
|
34
7
|
|
|
35
|
-
// THE entity collection for a model — resolved once, with a stable identity.
|
|
36
|
-
//
|
|
37
|
-
// Two problems this solves, both caused by every component calling
|
|
38
|
-
// `getModelPath(model, 'main.<KIT>.entity')` for itself:
|
|
39
|
-
//
|
|
40
|
-
// * CORRECTNESS. getModelPath drops `active: false` entries by default, but
|
|
41
|
-
// the consumer scaffold (create-sdkgen Root.ts) generates entity code for
|
|
42
|
-
// EVERY entity and every EntityTypes_<lang> emits data types with
|
|
43
|
-
// `only_active: false`. Class-name assignment done against the filtered
|
|
44
|
-
// view cannot see the inactive entities whose data types it must avoid.
|
|
45
|
-
// This resolver always returns the unfiltered collection.
|
|
46
|
-
//
|
|
47
|
-
// * PERFORMANCE. getModelPath REBUILDS the container object on every call
|
|
48
|
-
// when filtering, so the WeakMap memos below never hit across callers —
|
|
49
|
-
// the O(n·ops) class-name assignment re-ran per entity per target. At 500
|
|
50
|
-
// entities x 22 targets that was ~15s of pure recomputation; caching the
|
|
51
|
-
// resolved collection on the model makes it ~3ms.
|
|
52
8
|
const _entityCollCache = new WeakMap<object, any>()
|
|
53
9
|
|
|
54
10
|
function entityCollection(model: any): any {
|
|
@@ -67,16 +23,6 @@ function entityCollection(model: any): any {
|
|
|
67
23
|
}
|
|
68
24
|
|
|
69
25
|
|
|
70
|
-
// Derive the PascalCase `Name` on every entity in a collection.
|
|
71
|
-
//
|
|
72
|
-
// `Name` is injected LAZILY by jostraca's names(), historically by whichever
|
|
73
|
-
// component happened to run first (create-sdkgen Root.ts, or an EntityTypes
|
|
74
|
-
// emitter). Anything reading `e.Name` before that ran saw `undefined` — and
|
|
75
|
-
// because the helpers below MEMOISE, one early read poisoned the result for
|
|
76
|
-
// the whole run (`undefinedEntity` class names; a permanently empty collision
|
|
77
|
-
// list). The helpers therefore derive `Name` themselves, up front, so they
|
|
78
|
-
// never depend on component ordering. Idempotent: names() is only called for
|
|
79
|
-
// an entity that lacks `Name`.
|
|
80
26
|
function deriveEntityNames(entityColl: any): any[] {
|
|
81
27
|
const ents = each(entityColl).filter((e: any) => e && null != e.name)
|
|
82
28
|
ents.forEach((e: any) => { if (null == e.Name) names(e, e.name) })
|
|
@@ -100,14 +46,11 @@ function cap(s: string): string {
|
|
|
100
46
|
}
|
|
101
47
|
|
|
102
48
|
|
|
103
|
-
// The generated type name for an op's request payload, e.g. AdviceLoadMatch.
|
|
104
49
|
function opTypeName(Name: string, opname: string): string {
|
|
105
50
|
return Name + cap(opname) + (OP_SUFFIX[opname] || 'Match')
|
|
106
51
|
}
|
|
107
52
|
|
|
108
53
|
|
|
109
|
-
// One request-payload member: a model field or op param, with the final
|
|
110
|
-
// required/optional decision already applied per the partiality policy.
|
|
111
54
|
type OpShapeItem = {
|
|
112
55
|
name: string
|
|
113
56
|
type: any // canonical type sentinel (e.g. `$STRING`); render via canonToType
|
|
@@ -115,42 +58,19 @@ type OpShapeItem = {
|
|
|
115
58
|
}
|
|
116
59
|
|
|
117
60
|
|
|
118
|
-
// Collect an op's params, deduped by name across its points.
|
|
119
|
-
//
|
|
120
|
-
// Points tagged with `select.$action` are sub-resource/action routes folded
|
|
121
|
-
// into the op (e.g. POST .../components/{component_id}/page_access_groups on
|
|
122
|
-
// the create op); they do not describe the op's canonical request payload,
|
|
123
|
-
// so they are excluded — unless the op consists only of action points.
|
|
124
|
-
//
|
|
125
|
-
// Requiredness merges by INTERSECTION: with several alternative canonical
|
|
126
|
-
// points, a param the caller must always supply is one required by every
|
|
127
|
-
// point; a param only some routes use is optional in the merged shape.
|
|
128
|
-
// (Union-required makes the common route untypeable — e.g. a plain
|
|
129
|
-
// list-by-parent-id call failing because sibling routes' ids are demanded —
|
|
130
|
-
// and steers callers into passing keys that flip runtime point dispatch to
|
|
131
|
-
// the wrong route.)
|
|
132
|
-
// The action names an op multiplexes, from its points' `select.$action`.
|
|
133
|
-
//
|
|
134
|
-
// A custom POST route like `/api/planet/{id}/terraform` is folded into the
|
|
135
|
-
// `create` op as an alternative point, discriminated at call time by
|
|
136
|
-
// `$action` in the data argument. The mechanism worked and was documented
|
|
137
|
-
// NOWHERE — not in the README, not in the reference — so for an API with two
|
|
138
|
-
// such routes, two of its six endpoints were unreachable by anyone using the
|
|
139
|
-
// documented interface. Generated docs list them via this helper.
|
|
140
61
|
function opActions(op: any): { action: string, path: string }[] {
|
|
141
62
|
const points: any[] = op && op.points ? each(op.points) : []
|
|
142
63
|
|
|
143
64
|
return points
|
|
144
|
-
.filter((pt: any) => null != (pt && pt.
|
|
65
|
+
.filter((pt: any) => null != (pt && pt.q && pt.q['$action']))
|
|
145
66
|
.map((pt: any) => ({
|
|
146
|
-
action: String(pt.
|
|
147
|
-
path: String(pt.
|
|
67
|
+
action: String(pt.q['$action']),
|
|
68
|
+
path: String(pt.o || ''),
|
|
148
69
|
}))
|
|
149
70
|
.sort((a, b) => a.action < b.action ? -1 : a.action > b.action ? 1 : 0)
|
|
150
71
|
}
|
|
151
72
|
|
|
152
73
|
|
|
153
|
-
// True when any of the entity's ops multiplexes a custom action.
|
|
154
74
|
function entityActions(entity: any): { op: string, action: string, path: string }[] {
|
|
155
75
|
const out: { op: string, action: string, path: string }[] = []
|
|
156
76
|
|
|
@@ -162,12 +82,6 @@ function entityActions(entity: any): { op: string, action: string, path: string
|
|
|
162
82
|
}
|
|
163
83
|
|
|
164
84
|
|
|
165
|
-
// The entity's own API path — the route a reader should recognise it by.
|
|
166
|
-
//
|
|
167
|
-
// NOT `points[0]` across every op flattened. Ops iterate in sorted-key order,
|
|
168
|
-
// so `create` came first, and an entity whose create op folds in a custom
|
|
169
|
-
// action (`/api/planet/{id}/forbid`) advertised THAT as its path. The
|
|
170
|
-
// canonical route is the collection or record route, and never an action.
|
|
171
85
|
function entityPath(entity: any): string {
|
|
172
86
|
const ops: any = (entity && entity.op) || {}
|
|
173
87
|
|
|
@@ -179,11 +93,11 @@ function entityPath(entity: any): string {
|
|
|
179
93
|
|
|
180
94
|
const points: any[] = op.points ? each(op.points) : []
|
|
181
95
|
const canonical = points.filter((pt: any) =>
|
|
182
|
-
null == (pt && pt.
|
|
96
|
+
null == (pt && pt.q && pt.q['$action']))
|
|
183
97
|
|
|
184
98
|
const pick = (0 < canonical.length ? canonical : points)[0]
|
|
185
|
-
if (null != pick && null != pick.
|
|
186
|
-
return String(pick.
|
|
99
|
+
if (null != pick && null != pick.o && '' !== pick.o) {
|
|
100
|
+
return String(pick.o)
|
|
187
101
|
}
|
|
188
102
|
}
|
|
189
103
|
|
|
@@ -191,39 +105,11 @@ function entityPath(entity: any): string {
|
|
|
191
105
|
}
|
|
192
106
|
|
|
193
107
|
|
|
194
|
-
// The entity's OWN endpoint among an op's points.
|
|
195
|
-
//
|
|
196
|
-
// The other notion of canonical above — "not a `$action` route" — separates a
|
|
197
|
-
// folded-in custom action from the real op. This one separates the entity's
|
|
198
|
-
// own route from a CROSS-REFERENCE: another resource's route that happens to
|
|
199
|
-
// return this entity (`/notifications/{id}/board` for a board). Both are
|
|
200
|
-
// plain GETs with no `$action`, so the path itself is all there is to go on.
|
|
201
|
-
//
|
|
202
|
-
// Two signals, in order:
|
|
203
|
-
//
|
|
204
|
-
// 1. A record route ends in the record's identifier (`/boards/{id}`,
|
|
205
|
-
// `/accounts/{account_id}/users/{id}`); a cross-reference ends in the
|
|
206
|
-
// relationship's name (`/posts/{id}/author`). A terminal parameter is
|
|
207
|
-
// the stronger signal, and unlike depth alone it survives an entity
|
|
208
|
-
// nested more deeply than the route that points at it — depth by itself
|
|
209
|
-
// picked `/posts/{id}/author` over `/accounts/{account_id}/users/{id}`
|
|
210
|
-
// and then generated that op's required params from the wrong route.
|
|
211
|
-
// 2. Failing that, fewest path segments — the shallower route is the one
|
|
212
|
-
// the entity is named for, which is what settles a `list` op where
|
|
213
|
-
// neither route ends in an id (`/boards` over `/members/{id}/boards`).
|
|
214
|
-
//
|
|
215
|
-
// Ties keep the earlier point, so the sorted-key order of the model decides
|
|
216
|
-
// and the output stays byte-stable.
|
|
217
|
-
//
|
|
218
|
-
// The same rule runs at RUNTIME, in each language's makePoint template, when
|
|
219
|
-
// no point's `select.exist` matches. It cannot be shared with them — a
|
|
220
|
-
// template ships standalone, outside this package — so it is written twice on
|
|
221
|
-
// purpose, and both sides must move together.
|
|
222
108
|
function ownPoint(points: any[]): any {
|
|
223
109
|
let best = points[0]
|
|
224
110
|
|
|
225
111
|
for (const pt of points) {
|
|
226
|
-
if (null == pt || null == pt.
|
|
112
|
+
if (null == pt || null == pt.s || null == best || null == best.s) {
|
|
227
113
|
continue
|
|
228
114
|
}
|
|
229
115
|
|
|
@@ -254,7 +140,7 @@ function opParams(op: any): any[] {
|
|
|
254
140
|
let points: any[] = op && op.points ? each(op.points) : []
|
|
255
141
|
|
|
256
142
|
const canonical = points.filter((pt: any) =>
|
|
257
|
-
null == (pt && pt.
|
|
143
|
+
null == (pt && pt.q && pt.q['$action']))
|
|
258
144
|
if (0 < canonical.length) {
|
|
259
145
|
points = canonical
|
|
260
146
|
}
|
|
@@ -266,18 +152,17 @@ function opParams(op: any): any[] {
|
|
|
266
152
|
points.forEach((pt: any, pointIndex: number) => {
|
|
267
153
|
// Path AND query: a path-param-only read misses e.g. GET /result?trace_id=,
|
|
268
154
|
// which has no path param at all but still addresses one record.
|
|
269
|
-
const pathParams = pt && pt.
|
|
270
|
-
const queryParams = pt && pt.
|
|
155
|
+
const pathParams = pt && pt.g && pt.g.params ? each(pt.g.params) : []
|
|
156
|
+
const queryParams = pt && pt.g && pt.g.query ? each(pt.g.query) : []
|
|
271
157
|
const params = [...pathParams, ...queryParams]
|
|
272
158
|
const requiredHere: Record<string, boolean> = {}
|
|
273
159
|
params.forEach((p: any) => {
|
|
274
|
-
if (p && null != p.
|
|
275
|
-
requiredHere[p.
|
|
276
|
-
if (!seen[p.
|
|
277
|
-
seen[p.
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
out.push(seen[p.name])
|
|
160
|
+
if (p && null != p.n) {
|
|
161
|
+
requiredHere[p.n] = false !== p.r
|
|
162
|
+
if (!seen[p.n]) {
|
|
163
|
+
seen[p.n] = { ...p }
|
|
164
|
+
requiredOnAll[p.n] = 0 === pointIndex
|
|
165
|
+
out.push(seen[p.n])
|
|
281
166
|
}
|
|
282
167
|
}
|
|
283
168
|
})
|
|
@@ -289,25 +174,10 @@ function opParams(op: any): any[] {
|
|
|
289
174
|
})
|
|
290
175
|
|
|
291
176
|
out.forEach((p: any) => {
|
|
292
|
-
p.
|
|
177
|
+
p.r = true === requiredOnAll[p.n]
|
|
293
178
|
})
|
|
294
179
|
|
|
295
|
-
|
|
296
|
-
// empty and NOTHING is required — which generates a `load({})` that drops
|
|
297
|
-
// the id. Fall back to the entity's own point and take its params whole.
|
|
298
|
-
//
|
|
299
|
-
// Two guards, and both are load-bearing:
|
|
300
|
-
//
|
|
301
|
-
// - only when the intersection produced nothing, so a genuine set of
|
|
302
|
-
// alternative routes with a shared param still merges (a `page_id` on
|
|
303
|
-
// every route stays required, per-route siblings stay optional);
|
|
304
|
-
// - only when the points describe DIFFERENT routes. Points on one path
|
|
305
|
-
// that differ solely by optional query params (`/users?email=` and
|
|
306
|
-
// `/users?name=`) legitimately require nothing, and are not
|
|
307
|
-
// cross-references — collapsing them to one point would drop the
|
|
308
|
-
// other's fields from the generated request type, so a caller could
|
|
309
|
-
// not express them at all.
|
|
310
|
-
if (1 < points.length && !out.some((p: any) => p.reqd) && !samePath(points)) {
|
|
180
|
+
if (1 < points.length && !out.some((p: any) => p.r) && !samePath(points)) {
|
|
311
181
|
return opParams({ points: [ownPoint(points)] })
|
|
312
182
|
}
|
|
313
183
|
|
|
@@ -315,30 +185,23 @@ function opParams(op: any): any[] {
|
|
|
315
185
|
}
|
|
316
186
|
|
|
317
187
|
|
|
318
|
-
// Does a field participate in an op? Absent op-entry -> participates; only an
|
|
319
|
-
// explicit `active: false` excludes it.
|
|
320
188
|
function fieldInOp(field: any, opname: string): boolean {
|
|
321
189
|
const fop = field && field.op && field.op[opname]
|
|
322
190
|
return null == fop || fop.active !== false
|
|
323
191
|
}
|
|
324
192
|
|
|
325
193
|
|
|
326
|
-
// Decide optionality for a field in a no-params request payload, per op.
|
|
327
194
|
function fieldOptional(field: any, opname: string): boolean {
|
|
328
195
|
switch (opname) {
|
|
329
196
|
case 'create':
|
|
330
|
-
|
|
331
|
-
return false === field.req
|
|
197
|
+
return false === field.r
|
|
332
198
|
case 'update':
|
|
333
|
-
// Patch semantics — every field optional.
|
|
334
199
|
return true
|
|
335
200
|
case 'load':
|
|
336
201
|
case 'remove':
|
|
337
|
-
|
|
338
|
-
return 'id' !== field.name
|
|
202
|
+
return 'id' !== field.n
|
|
339
203
|
case 'list':
|
|
340
204
|
default:
|
|
341
|
-
// Filter — every field optional.
|
|
342
205
|
return true
|
|
343
206
|
}
|
|
344
207
|
}
|
|
@@ -355,46 +218,35 @@ function opRequestShape(ent: any, opname: string):
|
|
|
355
218
|
return { items: [], fromParams: false }
|
|
356
219
|
}
|
|
357
220
|
|
|
358
|
-
// Ops that carry a BODY are the exception to "op-declared params win":
|
|
359
|
-
// their request payload is BOTH. `PUT /v1/todo/item/{id}` declares the path
|
|
360
|
-
// param `id`, which the SDK resolves out of reqdata (see the param
|
|
361
|
-
// utility's reqmatch -> match -> reqdata search), while the fields the
|
|
362
|
-
// caller wants to change come from the entity. Params alone produced
|
|
363
|
-
// `<Name>UpdateData = { id }` — no way to send anything to update.
|
|
364
|
-
//
|
|
365
|
-
// The param stays in the payload because the path needs it; keeping it out
|
|
366
|
-
// of the request BODY is the model's job, via the op's `transform.req`
|
|
367
|
-
// (@voxgig/apidef restricts the body to a closed request schema's declared
|
|
368
|
-
// properties).
|
|
369
221
|
const isbodyop = 'create' === opname || 'update' === opname || 'patch' === opname
|
|
370
222
|
|
|
371
223
|
const params = opParams(op)
|
|
372
224
|
if (0 < params.length && !isbodyop) {
|
|
373
225
|
const items = params.map((p: any) => ({
|
|
374
|
-
name: p.
|
|
375
|
-
type: p.
|
|
376
|
-
optional: false === p.
|
|
226
|
+
name: p.n,
|
|
227
|
+
type: p.t,
|
|
228
|
+
optional: false === p.r,
|
|
377
229
|
}))
|
|
378
230
|
return { items, fromParams: true }
|
|
379
231
|
}
|
|
380
232
|
|
|
381
233
|
const paramItems = isbodyop ? params.map((p: any) => ({
|
|
382
|
-
name: p.
|
|
383
|
-
type: p.
|
|
384
|
-
optional: false === p.
|
|
234
|
+
name: p.n,
|
|
235
|
+
type: p.t,
|
|
236
|
+
optional: false === p.r,
|
|
385
237
|
})) : []
|
|
386
238
|
const paramNames = new Set(paramItems.map((p: any) => p.name))
|
|
387
239
|
|
|
388
240
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
389
|
-
.filter((f: any) => f.
|
|
241
|
+
.filter((f: any) => f.a !== false)
|
|
390
242
|
.filter((f: any) => fieldInOp(f, opname))
|
|
391
243
|
|
|
392
244
|
const items = paramItems.concat(
|
|
393
245
|
fields
|
|
394
|
-
.filter((f: any) => !paramNames.has(f.
|
|
246
|
+
.filter((f: any) => !paramNames.has(f.n))
|
|
395
247
|
.map((f: any) => ({
|
|
396
|
-
name: f.
|
|
397
|
-
type: f.
|
|
248
|
+
name: f.n,
|
|
249
|
+
type: f.t,
|
|
398
250
|
optional: fieldOptional(f, opname),
|
|
399
251
|
})))
|
|
400
252
|
|
|
@@ -402,13 +254,6 @@ function opRequestShape(ent: any, opname: string):
|
|
|
402
254
|
}
|
|
403
255
|
|
|
404
256
|
|
|
405
|
-
// The entity's id-like key field, or null when it has none. Used by the doc
|
|
406
|
-
// generators to decide whether an example may key a load/remove on `{ id: ... }`
|
|
407
|
-
// and access `.id` on a returned entity, OR must degrade to `load()` with no
|
|
408
|
-
// argument (some APIs model an entity whose load match carries no id — e.g. a
|
|
409
|
-
// response-wrapped spec, where AqiLoadMatch is { code, data, msg }). Prefers the
|
|
410
|
-
// model's declared id field name, then a literal `id`, checking the load-match
|
|
411
|
-
// shape first and the entity's own fields as a fallback.
|
|
412
257
|
function entityIdField(ent: any): string | null {
|
|
413
258
|
if (null == ent) {
|
|
414
259
|
return null
|
|
@@ -460,29 +305,6 @@ function entityPrimaryOp(ent: any): string | null {
|
|
|
460
305
|
}
|
|
461
306
|
|
|
462
307
|
|
|
463
|
-
// Collision-free target-language CLASS name for an entity. The natural
|
|
464
|
-
// class name is `<Name>Entity`, but that can equal another entity's
|
|
465
|
-
// canonical DATA-type name `<Name'>` when Name' === Name + 'Entity' (e.g.
|
|
466
|
-
// GitLab's `project` -> class `ProjectEntity` collides with `project_entity`
|
|
467
|
-
// -> data type `ProjectEntity`), which redeclares a type in Go and merges/
|
|
468
|
-
// shadows it in ts/py/rb. This assigns each entity a class name that is
|
|
469
|
-
// unique across ALL emitted top-level type names (every entity's data type
|
|
470
|
-
// and per-op Match/Data types, plus already-assigned class names): the
|
|
471
|
-
// natural `<Name>Entity` when free, else `<Name>EntityClient`, `...Client2`,
|
|
472
|
-
// … The DATA type keeps its canonical `<Name>` — only the suffixed class
|
|
473
|
-
// yields. Deterministic (sorted-key iteration) and stable across runs.
|
|
474
|
-
//
|
|
475
|
-
// Covers EVERY entity, active or not: the consumer scaffold (create-sdkgen
|
|
476
|
-
// Root.ts) iterates the RAW entity collection, and every EntityTypes_<lang>
|
|
477
|
-
// emits with `only_active: false`, so an inactive entity still contributes a
|
|
478
|
-
// generated data type AND still needs a class name. Filtering to actives here
|
|
479
|
-
// left inactive entities on the un-deduped `<Name>Entity` fallback and left
|
|
480
|
-
// their data types out of `taken` — so an ACTIVE entity's class could collide
|
|
481
|
-
// with an INACTIVE entity's emitted data type (e.g. active `project` ->
|
|
482
|
-
// class `ProjectEntity` vs inactive `project-entity` -> type `ProjectEntity`,
|
|
483
|
-
// a redeclaration in Go).
|
|
484
|
-
//
|
|
485
|
-
// Memoised per entity-collection object so the O(n) assignment runs once.
|
|
486
308
|
const _classNameCache = new WeakMap<object, Record<string, string>>()
|
|
487
309
|
|
|
488
310
|
function entityClassNames(entityColl: any): Record<string, string> {
|
|
@@ -493,7 +315,6 @@ function entityClassNames(entityColl: any): Record<string, string> {
|
|
|
493
315
|
|
|
494
316
|
const ents = deriveEntityNames(entityColl)
|
|
495
317
|
|
|
496
|
-
// 1. Every top-level DATA-type name the target emits.
|
|
497
318
|
const taken: Record<string, boolean> = {}
|
|
498
319
|
ents.forEach((e: any) => {
|
|
499
320
|
taken[e.Name] = true
|
|
@@ -537,19 +358,6 @@ function entityClassName(ent: any, entityColl: any): string {
|
|
|
537
358
|
}
|
|
538
359
|
|
|
539
360
|
|
|
540
|
-
// Cross-entity TYPE-name collision detection. entityClassNames keeps CLASS
|
|
541
|
-
// names collision-free, but the DATA/op type names are the raw `<Name>` /
|
|
542
|
-
// opTypeName(...) — two entities whose PascalCase Name coincides (e.g.
|
|
543
|
-
// `foo-bar` vs `foo_bar`), or a data-type name equal to another entity's
|
|
544
|
-
// op-type name, emit DUPLICATE top-level type declarations: a redeclaration
|
|
545
|
-
// compile error in go/rust/c/cpp/csharp and the JVM containers, silent
|
|
546
|
-
// merging in ts. The names cannot be auto-renamed here — the generated
|
|
547
|
-
// entity classes and op fragments reference them by token — so the guard
|
|
548
|
-
// surfaces the collision loudly instead. Returns the sorted duplicate names
|
|
549
|
-
// (empty when clean). `Name` is derived here (deriveEntityNames), so the
|
|
550
|
-
// guard cannot be silently disabled by running before an emitter.
|
|
551
|
-
//
|
|
552
|
-
// Memoised per entity-collection object, like entityClassNames.
|
|
553
361
|
const _typeCollisionCache = new WeakMap<object, string[]>()
|
|
554
362
|
|
|
555
363
|
function entityTypeCollisions(entityColl: any): string[] {
|
|
@@ -594,14 +402,6 @@ function warnEntityTypeCollisions(entityColl: any, log: any, lang: string): stri
|
|
|
594
402
|
}
|
|
595
403
|
|
|
596
404
|
|
|
597
|
-
// Pick a representative entity for a single illustrative snippet (e.g. the
|
|
598
|
-
// README's test-mode example): the first ACTIVE entity that exposes a read
|
|
599
|
-
// op (list/load) so the snippet is meaningful, else the first with ANY
|
|
600
|
-
// active op, else the first active entity. Returns { entity, primaryOp }
|
|
601
|
-
// where primaryOp is null only when NO entity has an op — so callers never
|
|
602
|
-
// fabricate an op the entity lacks (the cause of `.load()` on an op-less
|
|
603
|
-
// entity like Cloudsmith's `Abort`). Entities iterate in sorted-key order
|
|
604
|
-
// for deterministic output.
|
|
605
405
|
function pickExampleEntity(entity: any): { entity: any, primaryOp: string | null } {
|
|
606
406
|
const actives = each(entity).filter((e: any) => e && e.active !== false)
|
|
607
407
|
const readable = actives.filter((e: any) => {
|
|
@@ -653,7 +453,7 @@ function medianOf(xs: number[]): number {
|
|
|
653
453
|
}
|
|
654
454
|
|
|
655
455
|
|
|
656
|
-
// The id field on the entity's DATA type (its fields
|
|
456
|
+
// The id field on the entity's DATA type (its fields{}), or null. DISTINCT from
|
|
657
457
|
// entityIdField (the load-MATCH key): an API can model a load match that carries
|
|
658
458
|
// an `id` param while the response entity itself has no `id` field, so `.id`
|
|
659
459
|
// access on a RETURNED record must be guarded on this, not on the match key.
|
|
@@ -663,10 +463,10 @@ function entityDataIdField(ent: any): string | null {
|
|
|
663
463
|
}
|
|
664
464
|
const idName = (ent.id && ent.id.field) || 'id'
|
|
665
465
|
const fields = ent.fields ? each(ent.fields) : []
|
|
666
|
-
if (fields.some((f: any) => f && f.
|
|
466
|
+
if (fields.some((f: any) => f && f.n === idName)) {
|
|
667
467
|
return idName
|
|
668
468
|
}
|
|
669
|
-
if (fields.some((f: any) => f && f.
|
|
469
|
+
if (fields.some((f: any) => f && f.n === 'id')) {
|
|
670
470
|
return 'id'
|
|
671
471
|
}
|
|
672
472
|
return null
|
package/src/helpers/optspec.ts
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
// THE CLIENT OPTION SPEC, assembled from the model.
|
|
2
|
-
//
|
|
3
|
-
// One schema, not twenty. `main.kit.optspec` (model/sdkgen.aon) declares the
|
|
4
|
-
// standard SDK options; each active feature's own `config.options` declares
|
|
5
|
-
// its own. Both are already struct.validate specs in the by-example sense — a
|
|
6
|
-
// concrete value is the type AND the default — so assembling them is a merge,
|
|
7
|
-
// not a translation. The `Spec` component writes the result into the SDK and
|
|
8
|
-
// makeOptions validates the caller's options against it.
|
|
9
|
-
//
|
|
10
|
-
// WHAT THIS REPLACES. Every language's make_options template carried its own
|
|
11
|
-
// literal copy of the standard options (cpp and scala as JSON string
|
|
12
|
-
// constants), and the feature half did not exist at all: the shipped spec was
|
|
13
|
-
//
|
|
14
|
-
// feature: { `$CHILD`: { `$OPEN`: true, active: false } }
|
|
15
|
-
//
|
|
16
|
-
// so a feature's options were never checked and a typo in one was silently
|
|
17
|
-
// ignored — `{ feature: { cache: { ttl: '5s' } } }` configured nothing and
|
|
18
|
-
// said nothing. Meanwhile the README's option tables came from a THIRD place
|
|
19
|
-
// (`target.options`, `feature.config.options`), which is how a documented
|
|
20
|
-
// option and a validated option could be different sets.
|
|
21
1
|
|
|
22
2
|
import { each } from 'jostraca'
|
|
23
3
|
import { KIT, getModelPath } from '@voxgig/apidef'
|
|
@@ -32,33 +12,11 @@ const S_ONE = sentinel('ONE')
|
|
|
32
12
|
const S_NIL = sentinel('NIL')
|
|
33
13
|
|
|
34
14
|
|
|
35
|
-
// A feature entry the caller may omit.
|
|
36
|
-
//
|
|
37
|
-
// WHY NOT A BARE MAP. A spec value is also the value validate INSERTS when
|
|
38
|
-
// the key is absent, so naming every feature with a bare map would put an
|
|
39
|
-
// entry for every feature the model declares into `options.feature` — and
|
|
40
|
-
// `makeOptions` derives the feature ADD ORDER from that map's keys. The
|
|
41
|
-
// `$ONE`/`$NIL` union keeps an absent feature absent and validates a supplied
|
|
42
|
-
// one, which is the behaviour `$CHILD` had and the behaviour callers have.
|
|
43
15
|
function optional(spec: any): any[] {
|
|
44
16
|
return [S_ONE, spec, S_NIL]
|
|
45
17
|
}
|
|
46
18
|
|
|
47
19
|
|
|
48
|
-
// The spec for one feature's options.
|
|
49
|
-
//
|
|
50
|
-
// TWO DECLARATIONS, ONE SPEC:
|
|
51
|
-
// `config.options` — options WITH a default. Also the docs table.
|
|
52
|
-
// `config.optspec` — options with NO sensible default: callbacks (`sink`,
|
|
53
|
-
// `now`, `idgen`), injected objects (`logger`), values
|
|
54
|
-
// that only make sense when supplied. Declared as bare
|
|
55
|
-
// sentinels, so they type-check without inventing a
|
|
56
|
-
// default the feature would then have to ignore.
|
|
57
|
-
//
|
|
58
|
-
// OPEN BY DEFAULT. A feature may read an option neither list names — the
|
|
59
|
-
// shipped set still does, which is why this is open rather than closed — and
|
|
60
|
-
// rejecting those would break working clients on upgrade. `config.strict:
|
|
61
|
-
// true` closes one feature's spec once its options are fully declared.
|
|
62
20
|
function featureOptionSpec(feat: any): Record<string, any> {
|
|
63
21
|
const config = (feat && feat.config) || {}
|
|
64
22
|
const spec: Record<string, any> = {}
|
|
@@ -67,19 +25,8 @@ function featureOptionSpec(feat: any): Record<string, any> {
|
|
|
67
25
|
spec[S_OPEN] = true
|
|
68
26
|
}
|
|
69
27
|
|
|
70
|
-
// Every feature takes `active`, whatever else it declares. Stated rather
|
|
71
|
-
// than assumed: a feature whose model omits `config.options` entirely
|
|
72
|
-
// (nothing stops one) must still validate the one option it certainly has.
|
|
73
28
|
spec.active = optionalSpec(byExampleSpec(false))
|
|
74
29
|
|
|
75
|
-
// EVERY FEATURE OPTION IS OPTIONAL, and that is not a policy choice here —
|
|
76
|
-
// it is what a caller does. `{ feature: { cost: { active: true, unit:
|
|
77
|
-
// 0.002 } } }` names two of cost's nine options and means the defaults for
|
|
78
|
-
// the other seven, which the feature's own code applies. A spec naming a
|
|
79
|
-
// key requires it, so without this widening cost's own corpus case failed
|
|
80
|
-
// its own feature's spec for the seven it did not mention.
|
|
81
|
-
//
|
|
82
|
-
// Widened to their KIND as well — see byExampleSpec.
|
|
83
30
|
for (const [name, val] of Object.entries(config.options || {})) {
|
|
84
31
|
spec[name] = optionalSpec(byExampleSpec(val))
|
|
85
32
|
}
|
|
@@ -101,25 +48,11 @@ function featureOptionSpec(feat: any): Record<string, any> {
|
|
|
101
48
|
// target must not validate against — or document — a feature it has no
|
|
102
49
|
// implementation for. Without a name every active feature is included.
|
|
103
50
|
function optionSpec(model: any, targetname?: string): Record<string, any> {
|
|
104
|
-
// `only_active: false` IS THE WHOLE SPEC. getModelPath filters out any
|
|
105
|
-
// child whose `active` is false, and a spec is full of them: `test: {
|
|
106
|
-
// active: false }`, the `$CHILD` entity template, every feature default.
|
|
107
|
-
// Filtered, the spec silently lost its `test` entry and validate then
|
|
108
|
-
// rejected a perfectly ordinary `{ test: { active: true } }` with
|
|
109
|
-
// "Unexpected keys at field <root>: test". This is a SCHEMA, not a set of
|
|
110
|
-
// things to emit — `active: false` here is a default value, not a switch.
|
|
111
51
|
const base = getModelPath(model, `main.${KIT}.optspec`,
|
|
112
52
|
{ required: false, only_active: false }) || {}
|
|
113
53
|
|
|
114
|
-
// Cloned, because the model is shared across every target in one build and
|
|
115
|
-
// a spec assembled for `ts` must not be the object `js` then extends.
|
|
116
54
|
const spec: Record<string, any> = JSON.parse(JSON.stringify(base))
|
|
117
55
|
|
|
118
|
-
// The generic entry, kept from the shipped spec: a feature supplied at
|
|
119
|
-
// construction through `extend` (the station adopt path) is not in the
|
|
120
|
-
// model, so its options must still pass. Named entries below are checked
|
|
121
|
-
// against their own spec; anything else gets `active` checked and the rest
|
|
122
|
-
// waved through.
|
|
123
56
|
const feature: Record<string, any> = {
|
|
124
57
|
[S_CHILD]: {
|
|
125
58
|
[S_OPEN]: true,
|
|
@@ -141,16 +74,6 @@ function optionSpec(model: any, targetname?: string): Record<string, any> {
|
|
|
141
74
|
}
|
|
142
75
|
|
|
143
76
|
|
|
144
|
-
// The per-entity data/request specs a target needs, or null when it needs
|
|
145
|
-
// none.
|
|
146
|
-
//
|
|
147
|
-
// GATED ON THE FEATURE, and that gate is the whole reason this returns null
|
|
148
|
-
// rather than an empty map. The specs are derived data: every one of them can
|
|
149
|
-
// be rebuilt from `fields[].type`, which the generated config already
|
|
150
|
-
// carries. Emitting them unconditionally would grow every existing project's
|
|
151
|
-
// generated source — and, above the config size threshold, flip targets from
|
|
152
|
-
// the literal representation to the parsed-JSON one — to carry a spec nothing
|
|
153
|
-
// reads. A project that turns `validate` on pays for it; nobody else does.
|
|
154
77
|
function entitySpecMap(model: any, targetname?: string): Record<string, any> | null {
|
|
155
78
|
const feats = targetFeatures(model, null == targetname ? undefined : targetname)
|
|
156
79
|
const validate = (feats as any).validate
|