@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
|
@@ -1,29 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Typed-model generator (Ruby target).
|
|
4
|
-
//
|
|
5
|
-
// Ported from the TypeScript reference EntityTypes_ts.ts. Reads
|
|
6
|
-
// main.<KIT>.entity.<e>.fields[] and per-op params (op.<name>.points[].args.params[])
|
|
7
|
-
// and emits one file, <Sdk>_types.rb, containing a keyword-init Struct per active
|
|
8
|
-
// entity plus a request/match Struct per active op. Ruby has no enforced static
|
|
9
|
-
// types, so each member carries a YARD `@!attribute`/`@return` annotation whose
|
|
10
|
-
// element type comes from the canonical sentinels via the shared sdkgen helper
|
|
11
|
-
// `canonToType` (source of truth: @voxgig/apidef VALID_CANON):
|
|
12
|
-
// $STRING -> String, $INTEGER -> Integer, $NUMBER -> Float, $BOOLEAN -> Boolean,
|
|
13
|
-
// $OBJECT -> Hash, $ARRAY -> Array, unknown -> Object.
|
|
14
|
-
//
|
|
15
|
-
// Type-name scheme (as TS, with one Ruby-only guard): data type = <Name>,
|
|
16
|
-
// except where Ruby core already owns that constant — `File`, `Time`, `Data`,
|
|
17
|
-
// … — which would be silently REPLACED by the assignment; those become
|
|
18
|
-
// <Name>Type (see rbSafeTypeName). Per-op request
|
|
19
|
-
// <Name>LoadMatch / <Name>ListMatch / <Name>RemoveMatch (query/id ops),
|
|
20
|
-
// <Name>CreateData / <Name>UpdateData (body ops). An op WITH params -> a Struct of
|
|
21
|
-
// those params (reqd:false -> annotated `[Type, nil]`). An op WITHOUT params -> a
|
|
22
|
-
// Struct over the entity fields (Struct members are always optional/nil, so this is
|
|
23
|
-
// the Ruby stand-in for TS `Partial<Name>`; callers may equally pass a plain Hash).
|
|
24
|
-
//
|
|
25
|
-
// Struct.new(keyword_init: true) gives value objects usable as `Advice.new(id: ...)`.
|
|
26
|
-
// The file is required by the main SDK module so these constants are always loaded.
|
|
27
3
|
|
|
28
4
|
import {
|
|
29
5
|
cmp, each, names,
|
|
@@ -47,17 +23,6 @@ function symName(name: string): string {
|
|
|
47
23
|
}
|
|
48
24
|
|
|
49
25
|
|
|
50
|
-
// Emit one typed value class: a YARD @!attribute block plus a keyword-init
|
|
51
|
-
// Struct. Ruby's `Struct.new` rejects zero members, so an empty shape falls
|
|
52
|
-
// back to a plain empty class (keeps the type name available).
|
|
53
|
-
//
|
|
54
|
-
// A member with an EMPTY name is dropped first. `Struct.new(:"")` raises
|
|
55
|
-
// `NameError: cannot make operator ID : attrset` when the file loads, which
|
|
56
|
-
// takes the whole SDK down rather than just that type -- and quoting does
|
|
57
|
-
// not help, since the empty symbol is the one Ruby will not accept (`:"a-b"`
|
|
58
|
-
// and `:"1x"` are both fine). A model should not carry a nameless field, so
|
|
59
|
-
// upstream is where it gets fixed; this keeps one bad field from costing the
|
|
60
|
-
// target everything.
|
|
61
26
|
function emitStruct(
|
|
62
27
|
typeName: string,
|
|
63
28
|
doc: string,
|
|
@@ -92,24 +57,12 @@ function emitStruct(
|
|
|
92
57
|
const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
93
58
|
const { model, log } = props.ctx$
|
|
94
59
|
|
|
95
|
-
// only_active:false — getModelPath DROPS active:false entries by default,
|
|
96
|
-
// but the consumer scaffold (create-sdkgen Root.ts) iterates the RAW entity
|
|
97
|
-
// collection, so inactive entities still get generated entity code that
|
|
98
|
-
// references these typed names. The typed model must cover them too.
|
|
99
60
|
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
100
|
-
// Emit for EVERY entity that gets generated entity code: the consumer
|
|
101
|
-
// scaffold (create-sdkgen Root.ts) iterates entities WITHOUT an active
|
|
102
|
-
// filter, so inactive entities still get class files referencing these
|
|
103
|
-
// typed names. Filter on `name` (always present), NOT `active` — parity
|
|
104
|
-
// with the go emitter's fix.
|
|
105
61
|
const entityList = deriveEntityNames(entity)
|
|
106
62
|
// Derive the PascalCase Name up-front — it is set LAZILY by names(), so an
|
|
107
63
|
// entity not yet named (e.g. a fieldless placeholder) would otherwise read
|
|
108
64
|
// `Name = undefined` below. Parity with the go emitter's fix.
|
|
109
65
|
|
|
110
|
-
// Surface duplicate generated type names (two entities with the same
|
|
111
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
112
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
113
66
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
114
67
|
|
|
115
68
|
File({ name: model.const.Name + '_types.' + LANG }, () => {
|
|
@@ -118,8 +71,8 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
118
71
|
|
|
119
72
|
# Typed models for the ${model.const.Name} SDK.
|
|
120
73
|
#
|
|
121
|
-
# GENERATED from the API model: main.${KIT}.entity.<e>.fields
|
|
122
|
-
# params (op.<name>.points[].
|
|
74
|
+
# GENERATED from the API model: main.${KIT}.entity.<e>.fields{} and per-op
|
|
75
|
+
# params (op.<name>.points[].g.params[]). Member types come from the
|
|
123
76
|
# canonical type sentinels via @voxgig/sdkgen canonToType (source of truth:
|
|
124
77
|
# @voxgig/apidef VALID_CANON). Ruby types are unenforced; these YARD
|
|
125
78
|
# annotations document the shapes. Do not edit by hand.
|
|
@@ -128,27 +81,16 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
128
81
|
|
|
129
82
|
entityList.forEach((ent: any) => {
|
|
130
83
|
const Name = ent.Name
|
|
131
|
-
// Ruby constants share ONE namespace with the core classes, and
|
|
132
|
-
// assigning one silently replaces it — an entity named `File` emitting
|
|
133
|
-
// `File = Struct.new(...)` clobbers ::File and every later `File.join`
|
|
134
|
-
// raises NoMethodError. Only the bare data-type constant needs the
|
|
135
|
-
// guard; the per-op names below always carry a suffix that no core
|
|
136
|
-
// constant matches. The `client.File(...)` accessor is a METHOD, a
|
|
137
|
-
// separate namespace, so the public surface is unchanged.
|
|
138
84
|
const TypeName = rbSafeTypeName(Name)
|
|
139
85
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
140
|
-
.filter((f: any) => f.
|
|
86
|
+
.filter((f: any) => f.a !== false)
|
|
141
87
|
|
|
142
|
-
// Entity data model: one member per field (`req:false` -> nilable).
|
|
143
88
|
emitStruct(
|
|
144
89
|
TypeName,
|
|
145
90
|
`${Name} entity data model.`,
|
|
146
|
-
fields.map((f: any) => ({ name: f.
|
|
91
|
+
fields.map((f: any) => ({ name: f.n, type: f.t, optional: false === f.r })),
|
|
147
92
|
)
|
|
148
93
|
|
|
149
|
-
// Per active op: a request/match Struct. Members and their optionality
|
|
150
|
-
// come from the shared partiality policy (opRequestShape); this file only
|
|
151
|
-
// renders them as a keyword-init Struct.
|
|
152
94
|
const ops = ent.op || {}
|
|
153
95
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
154
96
|
if (null == ops[opname]) {
|
|
@@ -33,7 +33,6 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
33
33
|
|
|
34
34
|
const ff = Path.normalize(__dirname + '/../../../src/cmp/rb/fragment/')
|
|
35
35
|
|
|
36
|
-
// Entity files go to entity/ folder
|
|
37
36
|
Folder({ name: 'entity' }, () => {
|
|
38
37
|
|
|
39
38
|
File({ name: entity.name + '_entity.' + target.ext }, () => {
|
|
@@ -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.rb 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
|
|
@@ -59,7 +59,6 @@ const Main = cmp(async function Main(props: any) {
|
|
|
59
59
|
}
|
|
60
60
|
})
|
|
61
61
|
|
|
62
|
-
// Generate main SDK file
|
|
63
62
|
File({ name: model.const.Name + '_sdk.' + target.ext }, () => {
|
|
64
63
|
|
|
65
64
|
Fragment(
|
|
@@ -83,7 +82,6 @@ utility.feature_hook.call(@_rootctx, "${name}")
|
|
|
83
82
|
}
|
|
84
83
|
},
|
|
85
84
|
|
|
86
|
-
// Entities - injected at SLOT
|
|
87
85
|
() => {
|
|
88
86
|
each(entity, (entity: ModelEntity) => {
|
|
89
87
|
const entitySDK = getModelPath(model, `main.${KIT}.entity.${entity.name}`)
|
|
@@ -93,19 +91,11 @@ utility.feature_hook.call(@_rootctx, "${name}")
|
|
|
93
91
|
})
|
|
94
92
|
})
|
|
95
93
|
|
|
96
|
-
// Generate config module
|
|
97
94
|
Folder({ name: '.' }, () => {
|
|
98
95
|
Config({ target })
|
|
99
96
|
Schema({ target })
|
|
100
97
|
})
|
|
101
98
|
|
|
102
|
-
// GENERATED, NOT COPIED. Where the credential goes is a fact about the
|
|
103
|
-
// API, and tm/ can only hold one answer. See PrepareAuth_rb.
|
|
104
|
-
//
|
|
105
|
-
// At the TARGET ROOT, not inside the `.` folder above and not inside any
|
|
106
|
-
// `src`: rb's tree is flat (utility/, core/, feature/ sit at the root),
|
|
107
|
-
// the component opens the one `utility` folder it needs, and that
|
|
108
|
-
// reproduces tm/rb/utility/prepare_auth.rb's old path exactly.
|
|
109
99
|
PrepareAuth({ target })
|
|
110
100
|
|
|
111
101
|
// Generate typed models (<Sdk>_types.rb) — required by the main SDK file.
|
|
@@ -28,9 +28,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
28
28
|
// constant here did.
|
|
29
29
|
const author = authorInfo(model, target.name)
|
|
30
30
|
|
|
31
|
-
// Gem name is namespaced to model.origin (e.g. "voxgig-sdk"). RubyGems
|
|
32
|
-
// names can't contain "/", so the parts are hyphen-joined. The require
|
|
33
|
-
// path (`${model.name}_sdk`) is unchanged.
|
|
34
31
|
const ns = model.origin || 'voxgig-sdk'
|
|
35
32
|
const pkgBase = ns.endsWith('-sdk') ? model.name : `${model.name}-sdk`
|
|
36
33
|
const gemName = packageName(model, target.name)
|
|
@@ -39,7 +36,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
39
36
|
const versionOf = (d: { version: string; source: 'feature' | 'target' }) =>
|
|
40
37
|
d.source === 'target' ? (d.version || '0.0') : d.version
|
|
41
38
|
|
|
42
|
-
// Generate Gemfile
|
|
43
39
|
File({ name: 'Gemfile' }, () => {
|
|
44
40
|
Content(`source "https://rubygems.org"
|
|
45
41
|
|
|
@@ -53,7 +49,6 @@ gemspec
|
|
|
53
49
|
}
|
|
54
50
|
})
|
|
55
51
|
|
|
56
|
-
// Generate gemspec
|
|
57
52
|
File({ name: model.const.Name + '_sdk.gemspec' }, () => {
|
|
58
53
|
// RubyGems rejects a gemspec that declares the same runtime dependency
|
|
59
54
|
// twice (Gem::InvalidSpecificationException at `gem build`), so the
|
|
@@ -16,28 +16,6 @@ import {
|
|
|
16
16
|
} from '@voxgig/apidef'
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
// WHERE THE CREDENTIAL GOES IS A FACT ABOUT THE API, so it is generated
|
|
20
|
-
// rather than templated.
|
|
21
|
-
//
|
|
22
|
-
// This was a static file at `tm/rb/utility/prepare_auth.rb` that hardcoded
|
|
23
|
-
// `HEADER_AUTH = "authorization"`. apidef has always resolved the scheme's
|
|
24
|
-
// `in` and `name` into `main.kit.info.security` — joplin's says
|
|
25
|
-
// `in: "query", name: "token"` — and generation dropped both. The result
|
|
26
|
-
// was an SDK that sent a header the API does not read and never sent the
|
|
27
|
-
// query parameter it does, so it could not authenticate at all. Four repos
|
|
28
|
-
// in the cedar fleet shipped that way: joplin (`token`), pipedrive
|
|
29
|
-
// (`api_token`), trello (`key`), lm-umbrella (`apiKey`).
|
|
30
|
-
//
|
|
31
|
-
// A template cannot fix this, because the three placements need three
|
|
32
|
-
// different bodies and a template has to pick one. A component emits the
|
|
33
|
-
// branch this API actually uses and nothing else — no dead query code in a
|
|
34
|
-
// bearer-token SDK, and no runtime `if` on a value that is fixed at
|
|
35
|
-
// generation time.
|
|
36
|
-
//
|
|
37
|
-
// The ts port is the reference (cmp/ts/PrepareAuth_ts.ts). Two things are
|
|
38
|
-
// deliberately NOT the same here, both recorded at their site below: the
|
|
39
|
-
// header name is lower-cased, and the cookie clear removes our own pair
|
|
40
|
-
// instead of a header that was never set.
|
|
41
19
|
const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
42
20
|
const { target } = props
|
|
43
21
|
const { model } = props.ctx$
|
|
@@ -47,17 +25,6 @@ const PrepareAuth = cmp(async function PrepareAuth(props: any) {
|
|
|
47
25
|
const name = resolveAuthName(model)
|
|
48
26
|
const basic = isHttpBasicAuth(model)
|
|
49
27
|
|
|
50
|
-
// RB'S LAYOUT IS FLAT, WHICH IS WHY THIS FOLDER IS OPENED HERE AND THE TS
|
|
51
|
-
// PORT OPENS NONE. In ts, Main wraps its whole body in
|
|
52
|
-
// `Folder({name:'src'})` and the utilities live at `src/utility/`, so a
|
|
53
|
-
// second `src` there would write `src/src/utility/`. Main_rb opens no such
|
|
54
|
-
// folder: `Package`, `Gitignore`, the SDK file and `Copy({from:'tm/rb'})`
|
|
55
|
-
// all land at the target root, and `Config` sits inside a `Folder({name:
|
|
56
|
-
// '.'})` that is the root too. The template this replaces was
|
|
57
|
-
// `tm/rb/utility/prepare_auth.rb`, and that Copy's root IS the target root,
|
|
58
|
-
// so the file it produced was `<root>/utility/prepare_auth.rb`. One folder,
|
|
59
|
-
// `utility`, reproduces exactly that path — and register.rb's
|
|
60
|
-
// `require_relative 'prepare_auth'` (from `utility/`) only resolves there.
|
|
61
28
|
Folder({ name: 'utility' }, () => {
|
|
62
29
|
File({ name: 'prepare_auth.' + target.ext }, () => {
|
|
63
30
|
Content(render({ Name: model.const.Name, active, where, name, basic }))
|
|
@@ -101,22 +68,8 @@ end
|
|
|
101
68
|
// mean something.
|
|
102
69
|
const basicHere = spec.basic && 'header' === spec.where
|
|
103
70
|
|
|
104
|
-
// The constant keeps the template's name per placement, so a
|
|
105
|
-
// header-based SDK regenerates the file it already had.
|
|
106
71
|
const CRED = query ? 'QUERY_AUTH' : cookie ? 'COOKIE_AUTH' : 'HEADER_AUTH'
|
|
107
72
|
|
|
108
|
-
// HEADER NAMES ARE LOWER-CASED; QUERY AND COOKIE NAMES ARE NOT.
|
|
109
|
-
//
|
|
110
|
-
// `resolveAuthName` answers 'Authorization' by default, but the whole rb
|
|
111
|
-
// runtime spells header names in lower case — the template's
|
|
112
|
-
// `HEADER_AUTH = "authorization"`, secrets_feature.rb's
|
|
113
|
-
// `headers["authorization"]`, debug_feature.rb's mask list. A Ruby Hash key
|
|
114
|
-
// is case-sensitive, so emitting "Authorization" here would leave the
|
|
115
|
-
// secrets feature writing a SECOND, separate header and the copied
|
|
116
|
-
// pipeline_test.rb assertions on `headers["authorization"]` failing. HTTP
|
|
117
|
-
// header names are case-insensitive on the wire, so lower-casing costs
|
|
118
|
-
// nothing. Query parameter and cookie names ARE case-sensitive (`?Token=`
|
|
119
|
-
// is not `?token=`), so those go in verbatim.
|
|
120
73
|
const credName = query || cookie ? spec.name : spec.name.toLowerCase()
|
|
121
74
|
|
|
122
75
|
const consts =
|
|
@@ -140,10 +93,6 @@ end
|
|
|
140
93
|
: ` headers = spec.headers
|
|
141
94
|
`
|
|
142
95
|
|
|
143
|
-
// Removing OUR pair, not the whole cookie header. The ts port deletes
|
|
144
|
-
// `headers[CRED_name]` for the cookie case, which is a header nothing ever
|
|
145
|
-
// set — so a stale cookie survives a withdrawn credential there. This
|
|
146
|
-
// splits the header, drops the one pair we own, and puts the rest back.
|
|
147
96
|
const dropCookie = !cookie ? '' : `
|
|
148
97
|
# Our own pair, and only ours: another cookie the caller set survives.
|
|
149
98
|
drop_cookie = ->(hs) {
|
|
@@ -209,9 +158,6 @@ end
|
|
|
209
158
|
// The one thing that actually differs between placements: where the
|
|
210
159
|
// credential is written, and whether the prefix travels with it.
|
|
211
160
|
function place(where: string, clear: string): string {
|
|
212
|
-
// NO PREFIX IN A QUERY STRING. `?token=Bearer%20abc` is not a thing any
|
|
213
|
-
// API reads; the prefix is a header convention and is dropped here
|
|
214
|
-
// deliberately rather than silently concatenated.
|
|
215
161
|
if ('query' === where) {
|
|
216
162
|
return `
|
|
217
163
|
if apikey.nil? || (apikey.is_a?(String) && (apikey == NOT_FOUND || apikey == ""))
|
|
@@ -244,7 +190,6 @@ function place(where: string, clear: string): string {
|
|
|
244
190
|
`
|
|
245
191
|
}
|
|
246
192
|
|
|
247
|
-
// HEADER: the template's body, unchanged.
|
|
248
193
|
return `
|
|
249
194
|
if apikey.nil? || (apikey.is_a?(String) && (apikey == NOT_FOUND || apikey == ""))
|
|
250
195
|
${clear}
|
|
@@ -259,30 +204,6 @@ function place(where: string, clear: string): string {
|
|
|
259
204
|
}
|
|
260
205
|
|
|
261
206
|
|
|
262
|
-
// NOT `isAuthActive`, AND THE DIFFERENCE IS LOAD-BEARING (the py port found
|
|
263
|
-
// this first; same reasoning, same fix).
|
|
264
|
-
//
|
|
265
|
-
// `isAuthActive` is false whenever the SPEC declares no security scheme
|
|
266
|
-
// (`main.kit.info.auth: false`). That is a statement about the DEFINITION,
|
|
267
|
-
// not a ban on ever sending a credential: apidef writes it for every spec
|
|
268
|
-
// with no securitySchemes block, and those SDKs are still expected to honour
|
|
269
|
-
// an `apikey` the caller passes. The template placed the credential
|
|
270
|
-
// unconditionally, so they did.
|
|
271
|
-
//
|
|
272
|
-
// Gating the body on `isAuthActive` therefore does not trim dead code, it
|
|
273
|
-
// deletes working authentication. MEASURED, not assumed: with the wider gate
|
|
274
|
-
// this component emitted the no-op for generatedcompile's own fixture
|
|
275
|
-
// (`main: kit: info: { ... auth: false }`) and two running rb lanes went red
|
|
276
|
-
// —
|
|
277
|
-
//
|
|
278
|
-
// rb: auth null beats an explicit apikey
|
|
279
|
-
// FAIL: baseline broken: an ordinary apikey was not sent
|
|
280
|
-
// rb: the secrets feature runs with the feature active
|
|
281
|
-
// expected the authorization header to carry OPTKEY01, got: nil
|
|
282
|
-
//
|
|
283
|
-
// So the no-op is emitted only when the PROJECT says so: `config.auth.active:
|
|
284
|
-
// false`, an explicit per-SDK switch nobody sets by accident. A spec that is
|
|
285
|
-
// merely silent keeps the credential path it has always had.
|
|
286
207
|
function authSwitchedOn(model: any): boolean {
|
|
287
208
|
const auth = getModelPath(model, `main.${KIT}.config.auth`,
|
|
288
209
|
{ only_active: false, required: false })
|
|
@@ -290,8 +211,6 @@ function authSwitchedOn(model: any): boolean {
|
|
|
290
211
|
}
|
|
291
212
|
|
|
292
213
|
|
|
293
|
-
// A Ruby double-quoted literal. `#` is escaped only where it would OPEN an
|
|
294
|
-
// interpolation, matching utility_rb.formatRubyValue.
|
|
295
214
|
function rbstr(s: string): string {
|
|
296
215
|
return '"' + String(s)
|
|
297
216
|
.replace(/\\/g, '\\\\')
|
|
@@ -7,9 +7,6 @@ import {
|
|
|
7
7
|
} from '@voxgig/apidef'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
// A type-correct Ruby literal for a field's canonical type — the create body
|
|
11
|
-
// is EXECUTED by the doc test, so it must carry a real value per field.
|
|
12
|
-
// Strings render the quoted placeholder.
|
|
13
10
|
function rbLit(type: any, placeholder: string = 'example'): string {
|
|
14
11
|
const k = canonScalarKey(type)
|
|
15
12
|
if ('INTEGER' === k || 'NUMBER' === k) return '1'
|
|
@@ -53,8 +50,7 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
53
50
|
|
|
54
51
|
publishedEntities.map((entity: any) => {
|
|
55
52
|
const opnames = Object.keys(entity.op || {})
|
|
56
|
-
const fields = entity.fields ||
|
|
57
|
-
// Model-driven id key: null when this entity has no id-like field.
|
|
53
|
+
const fields = Object.values(entity.fields || {})
|
|
58
54
|
const idF = entityIdField(entity)
|
|
59
55
|
// Sanitise the local variable name — an entity whose lowercased name is a
|
|
60
56
|
// Ruby keyword (e.g. `self`) would otherwise emit uncompilable code.
|
|
@@ -101,8 +97,8 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
101
97
|
`)
|
|
102
98
|
|
|
103
99
|
each(fields, (field: any) => {
|
|
104
|
-
const desc = field.
|
|
105
|
-
Content(`| \`${field.
|
|
100
|
+
const desc = field.sh || ''
|
|
101
|
+
Content(`| \`${field.n}\` | \`${canonToType(field.t, target.name)}\` | ${desc} |
|
|
106
102
|
`)
|
|
107
103
|
})
|
|
108
104
|
|
|
@@ -111,9 +107,6 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
111
107
|
}
|
|
112
108
|
|
|
113
109
|
if (opnames.includes('load')) {
|
|
114
|
-
// The id key plus every REQUIRED match key (parent path params like
|
|
115
|
-
// page_id) — the same shape the runtime resolves path params from, so
|
|
116
|
-
// the example always works.
|
|
117
110
|
const loadItems = opRequestShape(entity, 'load').items
|
|
118
111
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
119
112
|
.sort((a: any, b: any) =>
|
|
@@ -7,38 +7,6 @@ import {
|
|
|
7
7
|
} from '@voxgig/apidef'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
// Emits test/readme_examples_test.rb — a Minitest COMPLETENESS GATE that
|
|
11
|
-
// guarantees every fenced ruby code example in the package docs is unit-tested.
|
|
12
|
-
// It reads ALL THREE docs — the root (multi-language) ../../README.md, the
|
|
13
|
-
// Ruby-specific ../README.md, and ../REFERENCE.md — extracts every fenced ruby
|
|
14
|
-
// block (tagged by source doc + index) and enforces four properties:
|
|
15
|
-
//
|
|
16
|
-
// 1. SYNTAX — `ruby -c` on every block. Every documented example must parse.
|
|
17
|
-
// 2. RUN — every RUNNABLE block (one that constructs the SDK, drives
|
|
18
|
-
// client., or performs an entity op) is EXECUTED offline in seeded test
|
|
19
|
-
// mode against the real SDK. The captured stdout+stderr is scanned for
|
|
20
|
-
// FATAL programming-error markers REGARDLESS of exit code, so a bug that a
|
|
21
|
-
// documented begin/rescue swallows and prints is still caught. Only a
|
|
22
|
-
// not-found / domain error is tolerated.
|
|
23
|
-
// 3. COMPLETENESS — every block is partitioned into exactly one of
|
|
24
|
-
// {executed, syntaxchecked-nonrunnable, illustration} and the counts must
|
|
25
|
-
// sum to the total. "illustration" is a NARROW explicit class (a
|
|
26
|
-
// signature / method-table block that names the SDK class or a documented
|
|
27
|
-
// method but never uses a live client) — never a catch-all. A
|
|
28
|
-
// runnable-looking block that was NOT executed lands in neither bucket and
|
|
29
|
-
// FAILS the gate: no runnable example can be silently skipped.
|
|
30
|
-
// 4. A per-doc summary (total / executed / syntaxchecked / illustration) is
|
|
31
|
-
// printed.
|
|
32
|
-
//
|
|
33
|
-
// A runnable block is rewritten so its client is a test-mode client
|
|
34
|
-
// (<Sdk>SDK.test) seeded with an in-memory fixture for every entity it
|
|
35
|
-
// references; any real .new/.test constructor is rewritten and the doc's own
|
|
36
|
-
// require of the SDK file is stripped (we require it by absolute path). A block
|
|
37
|
-
// that only *uses* `client` (constructed in an earlier fenced block) gets a
|
|
38
|
-
// test client prepended.
|
|
39
|
-
//
|
|
40
|
-
// The emitted Ruby builds the ``` fence via 96.chr and shells out via Open3,
|
|
41
|
-
// so this generator string contains no backticks of its own.
|
|
42
10
|
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
43
11
|
const { target } = props
|
|
44
12
|
const { model } = props.ctx$
|
|
@@ -8,7 +8,6 @@ import {
|
|
|
8
8
|
} from '@voxgig/apidef'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
// A type-correct Ruby literal for a field's canonical type.
|
|
12
11
|
function rbLit(type: any): string {
|
|
13
12
|
const k = canonScalarKey(type)
|
|
14
13
|
if ('INTEGER' === k || 'NUMBER' === k) return '1'
|
|
@@ -23,9 +22,6 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
23
22
|
const { target, ctx$: { model } } = props
|
|
24
23
|
|
|
25
24
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
26
|
-
// Pick an entity with a real op (prefer a read op) — never fabricate a
|
|
27
|
-
// `load` on an op-less entity like Cloudsmith's `Abort`. primaryOp is null
|
|
28
|
-
// only when NO entity exposes any op (a direct()-only SDK).
|
|
29
25
|
const { entity: exampleEntity, primaryOp } = pickExampleEntity(entity)
|
|
30
26
|
const eName = exampleEntity ? nom(exampleEntity, 'Name') : 'Entity'
|
|
31
27
|
// Sanitise the local variable name — an entity whose lowercased name is a
|
|
@@ -33,9 +29,6 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
33
29
|
// fixture KEY (`"${eName.toLowerCase()}"`) stays raw — it must match the
|
|
34
30
|
// entity's registered name for the mock lookup to resolve.
|
|
35
31
|
const eVar = exampleVarName(eName.toLowerCase(), 'rb')
|
|
36
|
-
// Model-driven id key: null when the entity has no id-like field (a
|
|
37
|
-
// response-wrapped spec). When null the fixture seeds no id and a match op
|
|
38
|
-
// takes no argument.
|
|
39
32
|
const idF = exampleEntity ? entityIdField(exampleEntity) : null
|
|
40
33
|
const isMatchOp = 'load' === primaryOp || 'remove' === primaryOp
|
|
41
34
|
const seedSentence = idF
|
|
@@ -44,8 +37,6 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
44
37
|
const testCtor = idF
|
|
45
38
|
? `${model.const.Name}SDK.test({\n "entity" => { "${eName.toLowerCase()}" => { "test01" => { "${idF}" => "test01" } } },\n})`
|
|
46
39
|
: `${model.const.Name}SDK.test`
|
|
47
|
-
// A type-correct argument for the primary-op call: a match hash for load/
|
|
48
|
-
// remove, a required-field body for create/update, nothing for list.
|
|
49
40
|
let testCallArg = ''
|
|
50
41
|
if (exampleEntity && isMatchOp) {
|
|
51
42
|
const items = opRequestShape(exampleEntity, primaryOp).items
|
|
@@ -115,13 +115,13 @@ returns a result \`Hash\` with these keys:
|
|
|
115
115
|
|
|
116
116
|
`)
|
|
117
117
|
each(entityList, (ent: any) => {
|
|
118
|
-
const fields = ent.fields ||
|
|
118
|
+
const fields = Object.values(ent.fields || {})
|
|
119
119
|
const opnames = Object.keys(ent.op || {})
|
|
120
120
|
const ops = ent.op || {}
|
|
121
121
|
const points = each(ops).map((op: any) =>
|
|
122
122
|
op.points ? each(op.points) : []
|
|
123
123
|
).flat()
|
|
124
|
-
const path = points.length > 0 ? (points[0] as any).
|
|
124
|
+
const path = points.length > 0 ? (points[0] as any).o || '' : ''
|
|
125
125
|
|
|
126
126
|
Content(`#### ${ent.Name}
|
|
127
127
|
|
|
@@ -129,7 +129,7 @@ returns a result \`Hash\` with these keys:
|
|
|
129
129
|
| --- | --- |
|
|
130
130
|
`)
|
|
131
131
|
each(fields, (field: any) => {
|
|
132
|
-
Content(`| \`${field.
|
|
132
|
+
Content(`| \`${field.n}\` | ${field.sh || ''} |
|
|
133
133
|
`)
|
|
134
134
|
})
|
|
135
135
|
|
|
@@ -47,12 +47,6 @@ client = ${ctor}
|
|
|
47
47
|
// Ruby keyword (e.g. `self`) would otherwise emit uncompilable code.
|
|
48
48
|
const eVar = exampleVarName(eName.toLowerCase(), 'rb')
|
|
49
49
|
const opnames = entityOps(exampleEntity)
|
|
50
|
-
// Model-driven id keys: `idF` is the load-MATCH key (null when the entity
|
|
51
|
-
// has no id-like field — a response-wrapped spec); when null, load/remove
|
|
52
|
-
// take no argument. `dataIdF` is the id on the RETURNED record's data type —
|
|
53
|
-
// an entity can key its match on an id it does not carry as data, so both a
|
|
54
|
-
// listed record's id column and a `created["id"]` read must be guarded on
|
|
55
|
-
// this, not the match key.
|
|
56
50
|
const idF = entityIdField(exampleEntity)
|
|
57
51
|
const dataIdF = entityDataIdField(exampleEntity)
|
|
58
52
|
|
|
@@ -72,13 +66,13 @@ client = ${ctor}
|
|
|
72
66
|
// Model-driven display field: the entity's first non-id string field
|
|
73
67
|
// (falling back to any non-id field), so the list example prints a real
|
|
74
68
|
// column instead of a hardcoded "name" the entity may not have.
|
|
75
|
-
const fields = exampleEntity.fields ||
|
|
69
|
+
const fields: any[] = Object.values(exampleEntity.fields || {})
|
|
76
70
|
const displayField =
|
|
77
|
-
fields.find((f: any) => f && f.
|
|
78
|
-
fields.find((f: any) => f && f.
|
|
71
|
+
fields.find((f: any) => f && f.n !== 'id' && f.t === '$STRING') ||
|
|
72
|
+
fields.find((f: any) => f && f.n !== 'id') ||
|
|
79
73
|
null
|
|
80
74
|
const idCol = dataIdF ? `#{item[${JSON.stringify(dataIdF)}]}` : null
|
|
81
|
-
const dispCol = displayField ? `#{item[${JSON.stringify(displayField.
|
|
75
|
+
const dispCol = displayField ? `#{item[${JSON.stringify(displayField.n)}]}` : null
|
|
82
76
|
const itemPrint = [idCol, dispCol].filter(Boolean).join(' ') || '#{item}'
|
|
83
77
|
|
|
84
78
|
if (opnames.includes('list')) {
|
|
@@ -136,9 +130,6 @@ end
|
|
|
136
130
|
`)
|
|
137
131
|
}
|
|
138
132
|
else if (opnames.includes('load')) {
|
|
139
|
-
// Every REQUIRED load-match key (id first, then parent path params like
|
|
140
|
-
// page_id) — the same shape the runtime resolves path params from, so
|
|
141
|
-
// the example always works.
|
|
142
133
|
const loadRequired = opRequestShape(exampleEntity, 'load').items
|
|
143
134
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
144
135
|
.sort((a: any, b: any) =>
|
|
@@ -164,30 +155,18 @@ end
|
|
|
164
155
|
`)
|
|
165
156
|
}
|
|
166
157
|
|
|
167
|
-
// Model-driven example fields: derive the create/update body from the op
|
|
168
|
-
// shape (opRequestShape) so the docs reference REAL writable fields, not a
|
|
169
|
-
// hardcoded "name" the entity may not have. Literals are Ruby-typed by the
|
|
170
|
-
// field's canonical type. ids are rendered separately as the match key for
|
|
171
|
-
// update/remove; a REQUIRED create id stays (the call is invalid without
|
|
172
|
-
// it).
|
|
173
158
|
const examplePairs = (opname: string): string[] => {
|
|
174
159
|
const items = opRequestShape(exampleEntity, opname).items
|
|
175
160
|
.filter((it: any) => (it.name !== idF && it.name !== 'id') ||
|
|
176
161
|
('create' === opname && !it.optional))
|
|
177
162
|
const required = items.filter((it: any) => !it.optional)
|
|
178
163
|
const optional = items.filter((it: any) => it.optional)
|
|
179
|
-
// create needs ALL required fields; update is a patch, so the required
|
|
180
|
-
// members plus a sample optional field or two suffice.
|
|
181
164
|
const chosen = 'create' === opname
|
|
182
165
|
? (required.length ? required : items.slice(0, 2))
|
|
183
166
|
: required.concat(optional).slice(0, Math.max(2, required.length))
|
|
184
167
|
return chosen.map((it: any) => `"${it.name}" => ${rbLit(it.type, 'example_' + it.name)}`)
|
|
185
168
|
}
|
|
186
169
|
|
|
187
|
-
// The id VALUE for an update/remove match: off the returned `created`
|
|
188
|
-
// record only when its data type carries the id AND a create ran, else a
|
|
189
|
-
// type-correct literal (so an update-without-create never references an
|
|
190
|
-
// undefined `created`).
|
|
191
170
|
const idParamType = (opname: string): any => {
|
|
192
171
|
const it = opRequestShape(exampleEntity, opname).items.find((x: any) => x.name === idF)
|
|
193
172
|
return it && it.type
|
|
@@ -216,8 +195,6 @@ client.${eName}.update({ ${updatePairs.join(', ')} })
|
|
|
216
195
|
`)
|
|
217
196
|
}
|
|
218
197
|
if (opnames.includes('remove')) {
|
|
219
|
-
// Every REQUIRED remove-match key: the id (off the created record
|
|
220
|
-
// when possible) plus parent keys like page_id.
|
|
221
198
|
const removePairs = opRequestShape(exampleEntity, 'remove').items
|
|
222
199
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
223
200
|
.sort((a: any, b: any) =>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName , targetFeatures } from '@voxgig/sdkgen'
|
|
3
3
|
import { ReadmeRefFeatures } from '@voxgig/sdkgen'
|
|
4
4
|
|
|
5
5
|
import {
|
|
@@ -55,7 +55,7 @@ const ReadmeRef = cmp(function ReadmeRef(props: any) {
|
|
|
55
55
|
const { model } = props.ctx$
|
|
56
56
|
|
|
57
57
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
58
|
-
const feature =
|
|
58
|
+
const feature = targetFeatures(model, target)
|
|
59
59
|
|
|
60
60
|
const publishedEntities = each(entity).filter((e: any) => e.active !== false)
|
|
61
61
|
|
|
@@ -169,7 +169,7 @@ same parameters as \`direct()\`. Raises on error.
|
|
|
169
169
|
// Entity reference sections
|
|
170
170
|
publishedEntities.map((ent: any) => {
|
|
171
171
|
const opnames = Object.keys(ent.op || {})
|
|
172
|
-
const fields = ent.fields ||
|
|
172
|
+
const fields = Object.values(ent.fields || {})
|
|
173
173
|
// Model-driven id key: null when this entity has no id-like field, in
|
|
174
174
|
// which case load/remove match on no argument and update omits the id.
|
|
175
175
|
const idF = entityIdField(ent)
|
|
@@ -197,7 +197,6 @@ ${eVar} = client.${ent.Name}
|
|
|
197
197
|
`)
|
|
198
198
|
|
|
199
199
|
|
|
200
|
-
// Field schema
|
|
201
200
|
if (fields.length > 0) {
|
|
202
201
|
Content(`### Fields
|
|
203
202
|
|
|
@@ -205,9 +204,9 @@ ${eVar} = client.${ent.Name}
|
|
|
205
204
|
| --- | --- | --- | --- |
|
|
206
205
|
`)
|
|
207
206
|
each(fields, (field: any) => {
|
|
208
|
-
const req = field.
|
|
209
|
-
const desc = field.
|
|
210
|
-
Content(`| \`${field.
|
|
207
|
+
const req = field.r ? 'Yes' : 'No'
|
|
208
|
+
const desc = field.sh || ''
|
|
209
|
+
Content(`| \`${field.n}\` | \`${canonToType(field.t, target.name)}\` | ${req} | ${desc} |
|
|
211
210
|
`)
|
|
212
211
|
})
|
|
213
212
|
|
|
@@ -234,7 +233,7 @@ ${eVar} = client.${ent.Name}
|
|
|
234
233
|
if (fop.active === false) return '-'
|
|
235
234
|
return 'Yes'
|
|
236
235
|
})
|
|
237
|
-
Content(`| \`${field.
|
|
236
|
+
Content(`| \`${field.n}\` | ${cols.join(' | ')} |
|
|
238
237
|
`)
|
|
239
238
|
})
|
|
240
239
|
|
|
@@ -244,7 +243,6 @@ ${eVar} = client.${ent.Name}
|
|
|
244
243
|
}
|
|
245
244
|
|
|
246
245
|
|
|
247
|
-
// Operation details
|
|
248
246
|
if (opnames.length > 0) {
|
|
249
247
|
Content(`### Operations
|
|
250
248
|
|
|
@@ -260,7 +258,6 @@ ${info.desc}
|
|
|
260
258
|
|
|
261
259
|
`)
|
|
262
260
|
|
|
263
|
-
// Show example
|
|
264
261
|
if ('load' === opname || 'remove' === opname) {
|
|
265
262
|
// The id key plus every REQUIRED match key (parent path params
|
|
266
263
|
// like page_id) — the same shape the runtime resolves path
|
|
@@ -329,7 +326,6 @@ ${updateLines} # Fields to update
|
|
|
329
326
|
}
|
|
330
327
|
|
|
331
328
|
|
|
332
|
-
// Common methods
|
|
333
329
|
Content(`### Common Methods
|
|
334
330
|
|
|
335
331
|
#### \`data_get -> Hash\`
|
|
@@ -361,7 +357,6 @@ Return the entity name.
|
|
|
361
357
|
})
|
|
362
358
|
|
|
363
359
|
|
|
364
|
-
// Features section
|
|
365
360
|
const activeFeatures = each(feature).filter((f: any) => f.active)
|
|
366
361
|
if (activeFeatures.length > 0) {
|
|
367
362
|
Content(`
|
|
@@ -397,9 +392,6 @@ client = ${model.const.Name}SDK.new({
|
|
|
397
392
|
\`\`\`
|
|
398
393
|
|
|
399
394
|
`)
|
|
400
|
-
// The shared feature reference: options, defaults, usage and the
|
|
401
|
-
// considerations. Model facts, identical in every target, so they are
|
|
402
|
-
// written once in cmp/ReadmeRefFeatures.ts rather than here.
|
|
403
395
|
ReadmeRefFeatures({ target })
|
|
404
396
|
}
|
|
405
397
|
|