@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
|
@@ -17,29 +17,6 @@ import {
|
|
|
17
17
|
} from './utility_ocaml'
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
// THE GENERATED SCHEMA MODULE: the model's schemas, as data the SDK can run.
|
|
21
|
-
//
|
|
22
|
-
// The ocaml peer of src/cmp/ts/Schema_ts.ts. Same two members, same source:
|
|
23
|
-
// optspec from `main.kit.optspec` plus each feature's own `config.options`,
|
|
24
|
-
// entityspec from the entity field sentinels — both built by the shared
|
|
25
|
-
// helpers, so what ocaml validates against and what ts validates against
|
|
26
|
-
// cannot drift.
|
|
27
|
-
//
|
|
28
|
-
// EMBEDDED AS JSON, PARSED AT LOAD, where ts emits an object literal: JSON is
|
|
29
|
-
// a subset of TypeScript's own literal syntax and is not a subset of ocaml's.
|
|
30
|
-
// A string constant read by `Sdk_json.json_read`, exactly as sdk_config.ml
|
|
31
|
-
// carries its data rep above the size threshold.
|
|
32
|
-
//
|
|
33
|
-
// COMPILE ORDER. ocaml links a fixed module list, and sdk_runtime.ml's
|
|
34
|
-
// make_options reads this, so sdk_schema.ml is named in RUNTIME (the
|
|
35
|
-
// Makefile) between sdk_helpers.ml and sdk_runtime.ml. It opens nothing of
|
|
36
|
-
// the SDK beyond Voxgig_struct and Sdk_json, so it cannot close a cycle.
|
|
37
|
-
//
|
|
38
|
-
// The round-trip is exact because the spec holds only strings and booleans:
|
|
39
|
-
// pinned by "strings and booleans only, so the JSON round-trip is lossless"
|
|
40
|
-
// in ts/test/optspec.test.ts. json_read yields `Num (float)` for any number,
|
|
41
|
-
// and struct reads a spec BY EXAMPLE, so one number in here would mean
|
|
42
|
-
// something different in ocaml than in ts.
|
|
43
20
|
const Schema = cmp(async function Schema(props: any) {
|
|
44
21
|
const ctx$ = props.ctx$
|
|
45
22
|
const target = props.target
|
|
@@ -54,7 +31,7 @@ const Schema = cmp(async function Schema(props: any) {
|
|
|
54
31
|
Content(`(* ${model.const.Name} SDK: generated schemas. Do not edit.
|
|
55
32
|
*
|
|
56
33
|
* Built from the model: main.kit.optspec and each feature's config.options
|
|
57
|
-
* for the option spec; entity fields
|
|
34
|
+
* for the option spec; entity fields{}.type for the entity specs.
|
|
58
35
|
*
|
|
59
36
|
* opt_spec_value () - the option spec make_options validates client options
|
|
60
37
|
* against. entity_spec_value () - per-entity data and request specs, keyed by
|
|
@@ -7,10 +7,6 @@ import {
|
|
|
7
7
|
} from '@voxgig/sdkgen'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
// sdk_error.ml — a thin API-facing view of the branded SDK error. The error
|
|
11
|
-
// type and exception themselves live in the runtime (Sdk_types.sdk_error /
|
|
12
|
-
// Sdk_error_exc); this module re-exports them under stable names so callers
|
|
13
|
-
// have a single place to catch/inspect errors (twin of rust core/error.rs).
|
|
14
10
|
const SdkError = cmp(async function SdkError(props: any) {
|
|
15
11
|
const ctx$ = props.ctx$
|
|
16
12
|
const target = props.target
|
|
@@ -74,11 +74,6 @@ let () =
|
|
|
74
74
|
`)
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
// PR review #4: entity e_stream(action, args, callopts) runs the op through
|
|
78
|
-
// the full pipeline and returns a lazy Seq. Fallback (no streaming feature)
|
|
79
|
-
// yields the materialised items; with the streaming feature active it yields
|
|
80
|
-
// from the streaming iterator (chunkSize groups into batches). Needs a list
|
|
81
|
-
// op with seeded data.
|
|
82
77
|
if (hasList) {
|
|
83
78
|
Content(`
|
|
84
79
|
let () =
|
|
@@ -18,7 +18,6 @@ const OCAML_RESERVED = new Set<string>([
|
|
|
18
18
|
])
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
// A collision-free snake_case OCaml (lowercase) identifier for a model name.
|
|
22
21
|
function ocamlVarName(name: string): string {
|
|
23
22
|
let snake = String(name).replace(/[^a-zA-Z0-9_]/g, '_').toLowerCase()
|
|
24
23
|
if ('' === snake || !/^[a-z_]/.test(snake)) {
|
|
@@ -28,7 +27,6 @@ function ocamlVarName(name: string): string {
|
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
|
|
31
|
-
// The generated per-entity module basename (module Sdk_entity_<name>).
|
|
32
30
|
function entityModule(name: string): string {
|
|
33
31
|
return 'sdk_entity_' + ocamlVarName(name)
|
|
34
32
|
}
|
|
@@ -108,33 +106,8 @@ function formatOcamlValue(val: any, indent: number = 0): string {
|
|
|
108
106
|
}
|
|
109
107
|
|
|
110
108
|
|
|
111
|
-
// Deep-remove meta keys (`foo$`) from a model subtree (twin of go's clean).
|
|
112
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
113
|
-
//
|
|
114
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
115
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
116
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
117
|
-
// payload — see CONFIG_DEFAULT.
|
|
118
|
-
//
|
|
119
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
120
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
121
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
122
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
123
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
124
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
125
|
-
//
|
|
126
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
127
|
-
// `active` means something different in feature config, where absent reads as
|
|
128
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
129
|
-
// disable the feature.
|
|
130
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
131
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
132
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
133
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
134
109
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
135
110
|
|
|
136
|
-
// Keys whose value IS the default the runtime already assumes when the key is
|
|
137
|
-
// absent, so emitting them is pure payload.
|
|
138
111
|
const CONFIG_DEFAULT: Record<string, any> = {
|
|
139
112
|
active: true,
|
|
140
113
|
req: false,
|
|
@@ -16,24 +16,6 @@ import {
|
|
|
16
16
|
} from '@voxgig/apidef'
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
// PLUGIN DEFINITION IMPORTS AND THE FEATURE_PLUGINS TABLE (the perl peer
|
|
20
|
-
// of cmp/py/Config_py.ts pluginImports/pluginDefs and cmp/go's
|
|
21
|
-
// featurePlugins).
|
|
22
|
-
//
|
|
23
|
-
// Upstream sekreto replaced its self-registration registry with
|
|
24
|
-
// voxgig/plugin definitions: a provider kind the caller did not pass in
|
|
25
|
-
// via `plugins => [...]` is unknown to that Sekreto. So config imports
|
|
26
|
-
// each active plugin's exported definition BY NAME (the model's
|
|
27
|
-
// `def.perl` map) and hands the list to the feature through
|
|
28
|
-
// FEATURE_PLUGINS.
|
|
29
|
-
//
|
|
30
|
-
// The `def` map is declared in the model rather than derived from
|
|
31
|
-
// filenames because one module may export several definitions (sekreto's
|
|
32
|
-
// Aws.pm exports awssecrets AND awsparams). A def value is the module's
|
|
33
|
-
// path under tm/perl ('feature/secrets/plugins/Voxgig/Sekreto/Plugins/
|
|
34
|
-
// Hashicorp.pm'); the vendored tree keeps upstream's PACKAGE layout, so
|
|
35
|
-
// the module NAME is that path with the vendor root and the extension
|
|
36
|
-
// removed and the separators turned into '::'.
|
|
37
19
|
const PLUGIN_ROOT = 'feature/secrets/plugins/'
|
|
38
20
|
|
|
39
21
|
|
|
@@ -45,8 +27,6 @@ function pluginModule(path: string): string {
|
|
|
45
27
|
}
|
|
46
28
|
|
|
47
29
|
|
|
48
|
-
// path -> [symbol, ...] for every ACTIVE plugin of every feature, so one
|
|
49
|
-
// `use` line serves a two-definition module.
|
|
50
30
|
function pluginsByPath(feature: any): Record<string, Record<string, string[]>> {
|
|
51
31
|
const out: Record<string, Record<string, string[]>> = {}
|
|
52
32
|
|
|
@@ -54,11 +34,6 @@ function pluginsByPath(feature: any): Record<string, Record<string, string[]>> {
|
|
|
54
34
|
const bypath: Record<string, string[]> = {}
|
|
55
35
|
|
|
56
36
|
each(f.plugin, (plugin: any) => {
|
|
57
|
-
// Filter on `active` HERE rather than trusting the feature object to
|
|
58
|
-
// arrive filtered: getting it wrong in this direction emits a `use`
|
|
59
|
-
// for a module the plugin trim just deleted - an SDK that does not
|
|
60
|
-
// LOAD, rather than one that merely carries too much. Config_py.ts
|
|
61
|
-
// records the same rule.
|
|
62
37
|
if (false === plugin.active || null == plugin.active) return
|
|
63
38
|
|
|
64
39
|
for (const [sym, one] of Object.entries(plugin.def?.perl || {})) {
|
|
@@ -87,28 +62,8 @@ const Config = cmp(async function Config(props: any) {
|
|
|
87
62
|
|
|
88
63
|
const model: Model = ctx$.model
|
|
89
64
|
|
|
90
|
-
// THE canonical config object, from the shared helper - this component
|
|
91
|
-
// used to hand-assemble its own (and had already drifted: no server
|
|
92
|
-
// block, no identity beyond main.name). Passing the target name opts
|
|
93
|
-
// in to the main slug/version/target identity fields (station
|
|
94
|
-
// descriptor inputs), matching the ts/js/rb targets.
|
|
95
65
|
const { def: configDef } = configDefinition(model, target.name)
|
|
96
66
|
|
|
97
|
-
// `in` and `name` TRAVEL WITH THE PREFIX NOW. apidef resolved both from
|
|
98
|
-
// the spec's securityScheme all along (joplin's says `in: "query",
|
|
99
|
-
// name: "token"`) and generation dropped them, so an apiKey-in-query
|
|
100
|
-
// SDK carried an Authorization header the API does not read. The
|
|
101
|
-
// placement is a runtime option like the prefix, so it belongs in the
|
|
102
|
-
// config the SDK loads - see PrepareAuth_perl, which bakes the same two
|
|
103
|
-
// values into prepare_auth.pm.
|
|
104
|
-
//
|
|
105
|
-
// Overlaid HERE rather than inside configDefinition because that helper
|
|
106
|
-
// is shared by every target, and the other targets' emitters do not
|
|
107
|
-
// carry the fields yet - widening it would move their output too.
|
|
108
|
-
//
|
|
109
|
-
// Emitted ONLY when they differ from the defaults, so a
|
|
110
|
-
// header/Authorization SDK's config.pm is byte-identical to what it
|
|
111
|
-
// generated before.
|
|
112
67
|
if (null != configDef.options && null != configDef.options.auth) {
|
|
113
68
|
const authIn = resolveAuthIn(model)
|
|
114
69
|
const authName = resolveAuthName(model)
|
|
@@ -124,15 +79,9 @@ const Config = cmp(async function Config(props: any) {
|
|
|
124
79
|
|
|
125
80
|
const configJson = JSON.stringify(configDef, null, 2)
|
|
126
81
|
|
|
127
|
-
// Gated by the applicability tags, so this target never imports a
|
|
128
|
-
// plugin definition it has no source for. One rule, one place:
|
|
129
|
-
// helpers/applicability.
|
|
130
82
|
const bypath = pluginsByPath(targetFeatures(model, target))
|
|
131
83
|
const features = Object.keys(bypath).sort()
|
|
132
84
|
|
|
133
|
-
// Every emitted line below is conditional on there being at least one
|
|
134
|
-
// active plugin definition: an SDK that selected no plugin group (or no
|
|
135
|
-
// secrets feature at all) gets exactly the config.pm it got before.
|
|
136
85
|
const vendorInc = 0 === features.length ? '' : `
|
|
137
86
|
# The vendored sekreto and plugin ports keep their UPSTREAM package layout,
|
|
138
87
|
# so they resolve through @INC rather than a file-path require - the same
|
|
@@ -157,7 +106,6 @@ BEGIN {
|
|
|
157
106
|
lines.push(`use ${pluginModule(path)} qw(${syms.join(' ')});`)
|
|
158
107
|
}
|
|
159
108
|
}
|
|
160
|
-
// A module shared by two features is imported once.
|
|
161
109
|
pluginUse = '\n' + Array.from(new Set(lines)).join('\n') + '\n'
|
|
162
110
|
|
|
163
111
|
const entries = features.map((fname) => {
|
|
@@ -33,7 +33,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
33
33
|
|
|
34
34
|
const ff = Path.normalize(__dirname + '/../../../src/cmp/perl/fragment/')
|
|
35
35
|
|
|
36
|
-
// Entity files go to entity/ folder
|
|
37
36
|
Folder({ name: 'entity' }, () => {
|
|
38
37
|
|
|
39
38
|
File({ name: entity.name + '_entity.pm' }, () => {
|
|
@@ -56,8 +55,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
56
55
|
EntityName: entity.Name,
|
|
57
56
|
entityname: entity.name,
|
|
58
57
|
|
|
59
|
-
// Class token decoupled from the EntityName data-type token in
|
|
60
|
-
// Entity.fragment.pm so the class can be renamed independently.
|
|
61
58
|
EntyClass: cls,
|
|
62
59
|
|
|
63
60
|
// Feature-hook markers. jostraca's built-in `#Name-Tag` pattern is
|
|
@@ -57,13 +57,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
57
57
|
// Copy tm/perl files with replacements
|
|
58
58
|
Copy({
|
|
59
59
|
from: 'tm/' + target.name,
|
|
60
|
-
// An ACTIVE feature's INACTIVE plugins do not ship. perl has no
|
|
61
|
-
// src/feature layout (srcfeature: false), so this blanket copy is the
|
|
62
|
-
// one place the generate-time plugin trim can act; the model's
|
|
63
|
-
// `plugin.<group>.path` entries name their files relative to THIS
|
|
64
|
-
// copy's root ('feature/secrets/plugins/Voxgig/Sekreto/Plugins/
|
|
65
|
-
// <Kind>.pm'). See helpers/featureSource.pluginExcludes, and
|
|
66
|
-
// Main_go.ts / Main_py.ts, which do the same.
|
|
67
60
|
exclude: [/src\//, TEST_CONTROL_EXCLUDE, ...pluginExcludes(model)],
|
|
68
61
|
replace: {
|
|
69
62
|
...props.ctx$.stdrep,
|
|
@@ -87,19 +80,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
87
80
|
({ name, indent }: any) =>
|
|
88
81
|
`${indent}$utility->{feature_hook}->($ctx, "${name}");\n`,
|
|
89
82
|
|
|
90
|
-
// SECRETS. The accessor is emitted only when the secrets
|
|
91
|
-
// feature applies to this target AND the model activates it -
|
|
92
|
-
// with the feature off the marker line is REMOVED, so the
|
|
93
|
-
// inactive output is byte-identical to pre-migration.
|
|
94
|
-
//
|
|
95
|
-
// The LIVE Sekreto, not a clone: sekreto holds provider and
|
|
96
|
-
// cache state, so a clone would resolve into a copy nothing
|
|
97
|
-
// else can see.
|
|
98
|
-
//
|
|
99
|
-
// There is deliberately NO resolve seam here. Unlike ts and
|
|
100
|
-
// py, this port resolves at the TRANSPORT (see
|
|
101
|
-
// feature/secrets_feature.pm), which every wire path -
|
|
102
|
-
// entity ops, direct() and graphql() - already crosses.
|
|
103
83
|
'/(?<indent>[ \\t]*)#[ \\t]*#SecretsAccessor[ \\t]*\\n?/':
|
|
104
84
|
({ indent }: any) => !secrets ? '' :
|
|
105
85
|
`${indent}# The LIVE Sekreto instance: for arbitrary secrets and redaction.\n` +
|
|
@@ -117,7 +97,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
117
97
|
}
|
|
118
98
|
},
|
|
119
99
|
|
|
120
|
-
// Entities - injected at SLOT
|
|
121
100
|
() => {
|
|
122
101
|
each(entity, (entity: ModelEntity) => {
|
|
123
102
|
const entitySDK = getModelPath(model, `main.${KIT}.entity.${entity.name}`)
|
|
@@ -128,23 +107,11 @@ const Main = cmp(async function Main(props: any) {
|
|
|
128
107
|
})
|
|
129
108
|
})
|
|
130
109
|
|
|
131
|
-
// Generate config module
|
|
132
110
|
Folder({ name: '.' }, () => {
|
|
133
111
|
Config({ target })
|
|
134
112
|
Schema({ target })
|
|
135
113
|
})
|
|
136
114
|
|
|
137
|
-
// GENERATED, NOT COPIED. Where the credential goes is a fact about the
|
|
138
|
-
// API, and tm/ can only hold one answer. See PrepareAuth_perl.
|
|
139
|
-
//
|
|
140
|
-
// NO FOLDER OPEN HERE, deliberately. perl has no `src/` tree (the ts
|
|
141
|
-
// port's Main wraps Config and PrepareAuth in `Folder({name:'src'})`,
|
|
142
|
-
// and this one must not): Main writes `lib/`, `config.pm` and
|
|
143
|
-
// `features.pm` into the SDK root, and the blanket `Copy({from:
|
|
144
|
-
// 'tm/perl'})` above lands the utility tree at `<sdk>/utility/`. So
|
|
145
|
-
// this call sits OUTSIDE the `.` folder above and PrepareAuth opens the
|
|
146
|
-
// single `utility` folder itself, writing exactly the path the deleted
|
|
147
|
-
// template occupied.
|
|
148
115
|
PrepareAuth({ target })
|
|
149
116
|
|
|
150
117
|
// Generate feature factory module
|
|
@@ -28,14 +28,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
28
28
|
// (e.g. "Voxgig::SDK::Solar" -> dist voxgig-sdk-solar).
|
|
29
29
|
const Name = model.const.Name
|
|
30
30
|
|
|
31
|
-
// THE PERL FLOOR IS A FUNCTION OF THE FEATURE SET, not a constant.
|
|
32
|
-
//
|
|
33
|
-
// The base SDK is pure 5.018 perl. The secrets feature is not: the
|
|
34
|
-
// vendored voxgig/plugin runtime it depends on opens with
|
|
35
|
-
// `use builtin qw(is_bool)`, which is 5.36's and is the only way that
|
|
36
|
-
// port can tell `true` from `1`. Shipping 5.018 in the manifest of an
|
|
37
|
-
// SDK that cannot run on 5.018 installs cleanly and then dies at
|
|
38
|
-
// require time, so the floor moves with the feature.
|
|
39
31
|
const secrets = null != (targetFeatures(model, target) as any).secrets
|
|
40
32
|
const minperl = secrets ? '5.036' : '5.018'
|
|
41
33
|
|
|
@@ -16,51 +16,14 @@ import {
|
|
|
16
16
|
} from './utility_perl'
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
// WHERE THE CREDENTIAL GOES IS A FACT ABOUT THE API, so it is generated
|
|
20
|
-
// rather than templated. The perl peer of cmp/ts/PrepareAuth_ts.ts.
|
|
21
|
-
//
|
|
22
|
-
// This was a static file at `tm/perl/utility/prepare_auth.pm` that opened
|
|
23
|
-
// with `my $HEADER_AUTH = 'authorization';` and never looked further.
|
|
24
|
-
// apidef has always resolved the scheme's `in` and `name` into
|
|
25
|
-
// `main.kit.info.security` — joplin's says `in: "query", name: "token"` —
|
|
26
|
-
// and generation dropped both. The result was an SDK that sent a header
|
|
27
|
-
// the API does not read and never sent the query parameter it does, so it
|
|
28
|
-
// could not authenticate at all. Four repos in the cedar fleet shipped
|
|
29
|
-
// that way: joplin (`token`), pipedrive (`api_token`), trello (`key`),
|
|
30
|
-
// lm-umbrella (`apiKey`).
|
|
31
|
-
//
|
|
32
|
-
// A template cannot fix this, because the three placements need three
|
|
33
|
-
// different bodies and a template has to pick one. A component emits the
|
|
34
|
-
// branch this API actually uses and nothing else — no dead query code in
|
|
35
|
-
// a bearer-token SDK, and no runtime `if` on a value that is fixed at
|
|
36
|
-
// generation time.
|
|
37
19
|
const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
38
20
|
const { model } = props.ctx$
|
|
39
21
|
|
|
40
|
-
// `!isAuthSuppressed`, NOT `isAuthActive`. The latter is also false when
|
|
41
|
-
// the SPEC merely declares no security scheme (`main.kit.info.auth:
|
|
42
|
-
// false`), and those SDKs still carry a credential: optspec always
|
|
43
|
-
// declares `apikey` and makeOptions fills `options.auth` from its
|
|
44
|
-
// defaults, so the runtime guard never fired and they have always sent
|
|
45
|
-
// it. Only an explicit `main.kit.config.auth.active: false` means "no
|
|
46
|
-
// credential, ever", which is what isAuthSuppressed reads.
|
|
47
22
|
const active = !isAuthSuppressed(model)
|
|
48
23
|
const where = resolveAuthIn(model)
|
|
49
24
|
const name = resolveAuthName(model)
|
|
50
25
|
const basic = isHttpBasicAuth(model)
|
|
51
26
|
|
|
52
|
-
// EXACTLY ONE folder, and it is opened HERE.
|
|
53
|
-
//
|
|
54
|
-
// Unlike ts — whose Main opens `Folder({name:'src'})` around Config,
|
|
55
|
-
// SdkError and this component — perl's Main calls PrepareAuth at the
|
|
56
|
-
// TOP LEVEL, with no folder open. The template's own path says what the
|
|
57
|
-
// layout is: `tm/perl/utility/prepare_auth.pm`, copied by Main's
|
|
58
|
-
// blanket `Copy({from:'tm/perl'})` (which excludes only `src/`), lands
|
|
59
|
-
// at `<sdk>/utility/prepare_auth.pm`. perl has no `src/` tree at all —
|
|
60
|
-
// Main writes `lib/`, `config.pm` and `features.pm` straight into the
|
|
61
|
-
// root. So this component must open `utility` and nothing above it:
|
|
62
|
-
// opening a second folder would write `src/utility/` or `./utility/`,
|
|
63
|
-
// a path nothing requires, while the copied file kept being loaded.
|
|
64
27
|
Folder({ name: 'utility' }, () => {
|
|
65
28
|
File({ name: 'prepare_auth.pm' }, () => {
|
|
66
29
|
Content(render({ Name: model.const.Name, active, where, name, basic }))
|
|
@@ -78,20 +41,6 @@ type AuthSpec = {
|
|
|
78
41
|
}
|
|
79
42
|
|
|
80
43
|
|
|
81
|
-
// PERL KEEPS ITS HEADER KEYS LOWERCASE, and here that is load-bearing
|
|
82
|
-
// rather than cosmetic. The template's constant was `'authorization'`,
|
|
83
|
-
// and two other generated perl files address that exact spelling:
|
|
84
|
-
// `feature/secrets_feature.pm` rewrites `$headers->{'authorization'}` at
|
|
85
|
-
// the transport seam (it rebuilds the header the way prepare_auth does,
|
|
86
|
-
// so the two must not drift), and `t/pipeline.t` asserts on
|
|
87
|
-
// `$ctx->{spec}{headers}{authorization}`. Emitting the resolved name
|
|
88
|
-
// verbatim would give every default SDK `Authorization` and silently
|
|
89
|
-
// split those three into two different hash keys.
|
|
90
|
-
//
|
|
91
|
-
// Header field names are case-insensitive on the wire (and HTTP/2
|
|
92
|
-
// requires them lowercase), so lowercasing costs nothing and keeps a
|
|
93
|
-
// header-based SDK behaving exactly as it did. A QUERY PARAMETER and a
|
|
94
|
-
// COOKIE name are case-sensitive, and go in verbatim.
|
|
95
44
|
function credName(spec: AuthSpec): string {
|
|
96
45
|
return 'header' === spec.where ? spec.name.toLowerCase() : spec.name
|
|
97
46
|
}
|
|
@@ -102,8 +51,6 @@ function render(spec: AuthSpec): string {
|
|
|
102
51
|
}
|
|
103
52
|
|
|
104
53
|
|
|
105
|
-
// NO AUTH AT ALL. A public API's SDK gets a prepare_auth that is honest
|
|
106
|
-
// about it rather than one that deletes a header nobody set.
|
|
107
54
|
function renderInactive(spec: AuthSpec): string {
|
|
108
55
|
return `# ${spec.Name} SDK utility: prepare_auth
|
|
109
56
|
|
|
@@ -206,12 +153,6 @@ const MISSING = ` if (!defined $apikey || Voxgig::Struct::is_none($apikey)
|
|
|
206
153
|
|| (!ref $apikey && ($apikey eq $NOT_FOUND || $apikey eq ''))) {`
|
|
207
154
|
|
|
208
155
|
|
|
209
|
-
// Place the credential, or clear what a previous option left behind.
|
|
210
|
-
//
|
|
211
|
-
// Header and query keep the template's if/else, because both have real
|
|
212
|
-
// work to do in both branches. COOKIE HAS NOTHING TO CLEAR (see clear()),
|
|
213
|
-
// and an `if` whose whole body is a comment is not perl anybody writes -
|
|
214
|
-
// so that one returns early and lets the placement run unindented.
|
|
215
156
|
function credBlock(spec: AuthSpec): string {
|
|
216
157
|
if ('cookie' === spec.where) {
|
|
217
158
|
return `
|
|
@@ -231,8 +172,6 @@ ${place(spec)} }
|
|
|
231
172
|
}
|
|
232
173
|
|
|
233
174
|
|
|
234
|
-
// For the cookie placement, where the reason there is no `delete` has to
|
|
235
|
-
// be stated where the delete would have been.
|
|
236
175
|
function noCredNote(spec: AuthSpec): string {
|
|
237
176
|
if ('cookie' !== spec.where) {
|
|
238
177
|
return ''
|
|
@@ -245,9 +184,6 @@ function noCredNote(spec: AuthSpec): string {
|
|
|
245
184
|
}
|
|
246
185
|
|
|
247
186
|
|
|
248
|
-
// A one-line reminder, in the generated file, of what the model said —
|
|
249
|
-
// so a reader of a joplin SDK is not left wondering why prepare_auth
|
|
250
|
-
// touches the query string.
|
|
251
187
|
function placementNote(spec: AuthSpec): string {
|
|
252
188
|
if ('query' === spec.where) {
|
|
253
189
|
return `# This API carries its credential as a QUERY PARAMETER (the spec's\n` +
|
|
@@ -265,11 +201,6 @@ function placementNote(spec: AuthSpec): string {
|
|
|
265
201
|
// cookie IS a header.
|
|
266
202
|
function bag(spec: AuthSpec): string {
|
|
267
203
|
if ('query' === spec.where) {
|
|
268
|
-
// make_spec fills spec.query from prepare_query BEFORE prepare_auth
|
|
269
|
-
// runs, so the bag is normally already there. A spec handed in
|
|
270
|
-
// without one still has to receive the credential, and assigning
|
|
271
|
-
// through an undef lexical would autovivify a hash the spec never
|
|
272
|
-
// sees - so the bag is created ON THE SPEC.
|
|
273
204
|
return ` my $query = $spec->{query};
|
|
274
205
|
unless (Voxgig::Struct::ismap($query)) {
|
|
275
206
|
$query = {};
|
|
@@ -279,9 +210,6 @@ function bag(spec: AuthSpec): string {
|
|
|
279
210
|
`
|
|
280
211
|
}
|
|
281
212
|
|
|
282
|
-
// No blank line after it: this is the template's own line, in the
|
|
283
|
-
// template's own place, so a header-based SDK's prepare_auth.pm stays
|
|
284
|
-
// what it was.
|
|
285
213
|
return ` my $headers = $spec->{headers};
|
|
286
214
|
`
|
|
287
215
|
}
|
|
@@ -293,15 +221,6 @@ function clear(spec: AuthSpec, ind: string): string {
|
|
|
293
221
|
}
|
|
294
222
|
|
|
295
223
|
if ('cookie' === spec.where) {
|
|
296
|
-
// NOTHING TO CLEAR. The header case deletes its header because the
|
|
297
|
-
// caller's own `options.headers` may carry a stale `authorization`
|
|
298
|
-
// that must not go out when auth is suppressed. A cookie is
|
|
299
|
-
// different: this SDK APPENDS its pair to whatever cookie header the
|
|
300
|
-
// caller set, and prepare_headers hands it a fresh clone of that
|
|
301
|
-
// header on every request - so there is never a pair of ours left
|
|
302
|
-
// behind, and surgically removing one pair from the caller's own
|
|
303
|
-
// cookie header would be deleting something they put there
|
|
304
|
-
// deliberately. noCredNote() says so in the generated file.
|
|
305
224
|
return ''
|
|
306
225
|
}
|
|
307
226
|
|
|
@@ -311,9 +230,6 @@ function clear(spec: AuthSpec, ind: string): string {
|
|
|
311
230
|
|
|
312
231
|
function place(spec: AuthSpec): string {
|
|
313
232
|
if ('query' === spec.where) {
|
|
314
|
-
// NO PREFIX IN A QUERY STRING. `?token=Bearer%20abc` is not a thing
|
|
315
|
-
// any API reads; the prefix is a header convention and is dropped
|
|
316
|
-
// here deliberately rather than silently concatenated.
|
|
317
233
|
return ` # NO PREFIX IN A QUERY STRING: \`?token=Bearer%20abc\` is not a thing
|
|
318
234
|
# any API reads. The prefix is a header convention, and is dropped
|
|
319
235
|
# here deliberately rather than silently concatenated. make_url
|
|
@@ -32,8 +32,6 @@ function perlType(type: any): string {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
// Operation method spelling for Perl: lowercase methods called on the entity
|
|
36
|
-
// instance, taking a hashref match/data argument.
|
|
37
35
|
const OP_DESC: Record<string, { method: string, desc: string }> = {
|
|
38
36
|
load: { method: 'load($match)', desc: 'Load a single entity by match criteria.' },
|
|
39
37
|
list: { method: 'list()', desc: 'List entities, optionally matching the given criteria.' },
|
|
@@ -64,8 +62,7 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
64
62
|
|
|
65
63
|
publishedEntities.map((entity: any) => {
|
|
66
64
|
const opnames = Object.keys(entity.op || {})
|
|
67
|
-
const fields = entity.fields ||
|
|
68
|
-
// Model-driven id key: null when this entity has no id-like field.
|
|
65
|
+
const fields = Object.values(entity.fields || {})
|
|
69
66
|
const idF = entityIdField(entity)
|
|
70
67
|
const eVar = entity.name
|
|
71
68
|
|
|
@@ -110,8 +107,8 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
110
107
|
`)
|
|
111
108
|
|
|
112
109
|
each(fields, (field: any) => {
|
|
113
|
-
const desc = field.
|
|
114
|
-
Content(`| \`${field.
|
|
110
|
+
const desc = field.sh || ''
|
|
111
|
+
Content(`| \`${field.n}\` | \`${perlType(field.t)}\` | ${desc} |
|
|
115
112
|
`)
|
|
116
113
|
})
|
|
117
114
|
|
|
@@ -8,33 +8,6 @@ import {
|
|
|
8
8
|
} from '@voxgig/apidef'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
// Emits t/readme_examples.t — a Test::More COMPLETENESS GATE that guarantees
|
|
12
|
-
// every fenced `perl` code example across the package docs is unit-tested. It
|
|
13
|
-
// reads ALL THREE docs — the root (multi-language) ../README.md, the
|
|
14
|
-
// Perl-specific ../README.md, and ../REFERENCE.md — extracts every fenced perl
|
|
15
|
-
// block (tagged by source doc + index) and enforces:
|
|
16
|
-
//
|
|
17
|
-
// 1. SYNTAX — `perl -c` on every block (with the SDK lib on @INC, so a
|
|
18
|
-
// construction block's `use <Name>SDK` is actually compiled/loaded).
|
|
19
|
-
// 2. RUN — every RUNNABLE block (one that constructs the SDK, drives
|
|
20
|
-
// `$client`, or performs an entity op) is EXECUTED offline in seeded
|
|
21
|
-
// test mode against the real SDK. The captured stdout+stderr is scanned
|
|
22
|
-
// for FATAL perl-level programming-error markers REGARDLESS of exit code,
|
|
23
|
-
// so a bug an example's own eval swallows and prints is still caught.
|
|
24
|
-
// A domain not-found / 404 error never matches FATAL, so it is tolerated.
|
|
25
|
-
// 3. COMPLETENESS — every block is partitioned into exactly one of
|
|
26
|
-
// {executed, syntaxchecked-nonrunnable, illustration}; the counts must
|
|
27
|
-
// sum to the total. A runnable-looking block that was not executed lands
|
|
28
|
-
// in neither bucket and FAILS the gate.
|
|
29
|
-
//
|
|
30
|
-
// A runnable block is rewritten so its client is a test-mode client
|
|
31
|
-
// (<Name>SDK->test) seeded with an in-memory fixture for every entity it
|
|
32
|
-
// references; any real ->new/->test constructor is rewritten. A block that
|
|
33
|
-
// only uses `$client` (constructed in an earlier fenced block) gets a test
|
|
34
|
-
// client prepended.
|
|
35
|
-
//
|
|
36
|
-
// The emitted Perl builds the ``` fence via chr(96) so this generator string
|
|
37
|
-
// contains no backticks of its own.
|
|
38
11
|
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
39
12
|
const { target, ctx$: { model } } = props
|
|
40
13
|
|
|
@@ -116,13 +116,13 @@ On error, \`ok\` is false and \`err\` contains the error value.
|
|
|
116
116
|
|
|
117
117
|
`)
|
|
118
118
|
each(entityList, (ent: any) => {
|
|
119
|
-
const fields = ent.fields ||
|
|
119
|
+
const fields = Object.values(ent.fields || {})
|
|
120
120
|
const opnames = Object.keys(ent.op || {})
|
|
121
121
|
const ops = ent.op || {}
|
|
122
122
|
const points = each(ops).map((op: any) =>
|
|
123
123
|
op.points ? each(op.points) : []
|
|
124
124
|
).flat()
|
|
125
|
-
const path = points.length > 0 ? (points[0] as any).
|
|
125
|
+
const path = points.length > 0 ? (points[0] as any).o || '' : ''
|
|
126
126
|
|
|
127
127
|
Content(`#### ${ent.Name}
|
|
128
128
|
|
|
@@ -130,7 +130,7 @@ On error, \`ok\` is false and \`err\` contains the error value.
|
|
|
130
130
|
| --- | --- |
|
|
131
131
|
`)
|
|
132
132
|
each(fields, (field: any) => {
|
|
133
|
-
Content(`| \`${field.
|
|
133
|
+
Content(`| \`${field.n}\` | ${field.sh || ''} |
|
|
134
134
|
`)
|
|
135
135
|
})
|
|
136
136
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape , targetFeatures } from '@voxgig/sdkgen'
|
|
3
3
|
import { ReadmeRefFeatures } from '@voxgig/sdkgen'
|
|
4
4
|
|
|
5
5
|
import {
|
|
@@ -64,7 +64,7 @@ const ReadmeRef = cmp(function ReadmeRef(props: any) {
|
|
|
64
64
|
const { model } = props.ctx$
|
|
65
65
|
|
|
66
66
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
67
|
-
const feature =
|
|
67
|
+
const feature = targetFeatures(model, target)
|
|
68
68
|
|
|
69
69
|
const publishedEntities = each(entity).filter((e: any) => e.active !== false)
|
|
70
70
|
|
|
@@ -173,7 +173,7 @@ Prepare a fetch definition without sending. Returns the \`fetchdef\` and dies on
|
|
|
173
173
|
// Entity reference sections
|
|
174
174
|
publishedEntities.map((ent: any) => {
|
|
175
175
|
const opnames = Object.keys(ent.op || {})
|
|
176
|
-
const fields = ent.fields ||
|
|
176
|
+
const fields = Object.values(ent.fields || {})
|
|
177
177
|
// Model-driven id key: null when this entity has no id-like field.
|
|
178
178
|
const idF = entityIdField(ent)
|
|
179
179
|
const eVar = ent.name
|
|
@@ -206,9 +206,9 @@ my $${eVar} = $client->${ent.Name};
|
|
|
206
206
|
| --- | --- | --- | --- |
|
|
207
207
|
`)
|
|
208
208
|
each(fields, (field: any) => {
|
|
209
|
-
const req = field.
|
|
210
|
-
const desc = field.
|
|
211
|
-
Content(`| \`${field.
|
|
209
|
+
const req = field.r ? 'Yes' : 'No'
|
|
210
|
+
const desc = field.sh || ''
|
|
211
|
+
Content(`| \`${field.n}\` | \`${perlType(field.t)}\` | ${req} | ${desc} |
|
|
212
212
|
`)
|
|
213
213
|
})
|
|
214
214
|
|
|
@@ -233,7 +233,7 @@ my $${eVar} = $client->${ent.Name};
|
|
|
233
233
|
if (fop.active === false) return '-'
|
|
234
234
|
return 'Yes'
|
|
235
235
|
})
|
|
236
|
-
Content(`| \`${field.
|
|
236
|
+
Content(`| \`${field.n}\` | ${cols.join(' | ')} |
|
|
237
237
|
`)
|
|
238
238
|
})
|
|
239
239
|
|
|
@@ -387,9 +387,6 @@ my $client = ${model.const.Name}SDK->new({
|
|
|
387
387
|
\`\`\`
|
|
388
388
|
|
|
389
389
|
`)
|
|
390
|
-
// The shared feature reference: options, defaults, usage and the
|
|
391
|
-
// considerations. Model facts, identical in every target, so they are
|
|
392
|
-
// written once in cmp/ReadmeRefFeatures.ts rather than here.
|
|
393
390
|
ReadmeRefFeatures({ target })
|
|
394
391
|
}
|
|
395
392
|
|
|
@@ -46,8 +46,6 @@ my $client = ${ctor};
|
|
|
46
46
|
const eName = nom(exampleEntity, 'Name')
|
|
47
47
|
const eVar = eName.toLowerCase()
|
|
48
48
|
const opnames = Object.keys(exampleEntity.op || {})
|
|
49
|
-
// Model-driven id key: null when the entity has no id-like field, in which
|
|
50
|
-
// case the load example takes no match argument.
|
|
51
49
|
const idF = entityIdField(exampleEntity)
|
|
52
50
|
|
|
53
51
|
if (opnames.includes('list')) {
|
|
@@ -12,24 +12,6 @@ import {
|
|
|
12
12
|
} from '@voxgig/apidef'
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
// THE GENERATED SCHEMA MODULE: the model's schemas, as data the SDK can run.
|
|
16
|
-
//
|
|
17
|
-
// The perl peer of src/cmp/ts/Schema_ts.ts. Same two members, same source:
|
|
18
|
-
// optspec from `main.kit.optspec` plus each feature's own `config.options`,
|
|
19
|
-
// entityspec from the entity field sentinels — both built by the shared
|
|
20
|
-
// helpers, so what perl validates against and what ts validates against
|
|
21
|
-
// cannot drift.
|
|
22
|
-
//
|
|
23
|
-
// EMBEDDED AS JSON, PARSED AT LOAD, in a heredoc, exactly as config.pm
|
|
24
|
-
// carries its config — and here the parse is not merely convenient, it is the
|
|
25
|
-
// point. Perl has no native boolean scalar, so a spec written as a perl
|
|
26
|
-
// literal has to name Voxgig::Struct::JTRUE/JFALSE by hand at every boolean
|
|
27
|
-
// slot (the hand-written optspec this replaces did); parse_json produces
|
|
28
|
-
// those singletons itself, which is what `$BOOLEAN` matches against.
|
|
29
|
-
//
|
|
30
|
-
// The round-trip is exact because the spec holds only strings and booleans:
|
|
31
|
-
// pinned by "strings and booleans only, so the JSON round-trip is lossless"
|
|
32
|
-
// in ts/test/optspec.test.ts.
|
|
33
15
|
const Schema = cmp(async function Schema(props: any) {
|
|
34
16
|
const ctx$ = props.ctx$
|
|
35
17
|
const target = props.target
|
|
@@ -46,7 +28,7 @@ const Schema = cmp(async function Schema(props: any) {
|
|
|
46
28
|
Content(`# ${model.const.Name} SDK: generated schemas. Do not edit.
|
|
47
29
|
#
|
|
48
30
|
# Built from the model: \`main.kit.optspec\` and each feature's
|
|
49
|
-
# \`config.options\` for the option spec; entity \`fields
|
|
31
|
+
# \`config.options\` for the option spec; entity \`fields{}.type\` for the
|
|
50
32
|
# entity specs.
|
|
51
33
|
|
|
52
34
|
use strict;
|