@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
|
@@ -33,10 +33,10 @@ function normalizePathParams(
|
|
|
33
33
|
// original name was renamed to another param's current name (e.g. badge
|
|
34
34
|
// load: param 'group_id' has orig 'id', and another param has name 'id').
|
|
35
35
|
const param = params.find((p: any) =>
|
|
36
|
-
p.
|
|
36
|
+
p.n === snaked || p.n === depluralized) ||
|
|
37
37
|
params.find((p: any) =>
|
|
38
|
-
p.
|
|
39
|
-
if (param) return '{' + param.
|
|
38
|
+
p.or === snaked || p.or === depluralized)
|
|
39
|
+
if (param) return '{' + param.n + '}'
|
|
40
40
|
|
|
41
41
|
if (rename) {
|
|
42
42
|
for (const [origCamel, renamedTo] of Object.entries(rename)) {
|
|
@@ -44,10 +44,10 @@ function normalizePathParams(
|
|
|
44
44
|
const origSnaked = snakify(origCamel)
|
|
45
45
|
const origDepluralized = depluralize(origSnaked)
|
|
46
46
|
const renamedParam = params.find(
|
|
47
|
-
(p: any) => p.
|
|
48
|
-
p.
|
|
47
|
+
(p: any) => p.or === origSnaked || p.n === origSnaked ||
|
|
48
|
+
p.or === origDepluralized || p.n === origDepluralized
|
|
49
49
|
)
|
|
50
|
-
if (renamedParam) return '{' + renamedParam.
|
|
50
|
+
if (renamedParam) return '{' + renamedParam.n + '}'
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -110,8 +110,8 @@ const TestDirect = cmp(function TestDirect(props: any) {
|
|
|
110
110
|
const listOp = entity.op?.list
|
|
111
111
|
|
|
112
112
|
const loadPoint = loadOp?.points?.[0]
|
|
113
|
-
const loadPath = loadPoint ? normalizePathParams(pointParts(loadPoint), loadPoint?.
|
|
114
|
-
const allLoadParams = loadPoint?.
|
|
113
|
+
const loadPath = loadPoint ? normalizePathParams(pointParts(loadPoint), loadPoint?.g?.params || [], loadPoint?.r?.param) : ''
|
|
114
|
+
const allLoadParams = loadPoint?.g?.params || []
|
|
115
115
|
// Only path params that actually appear in the URL template drive direct-
|
|
116
116
|
// test path-param setup and URL-substitution asserts (see TestDirect_rb).
|
|
117
117
|
const _pathPlaceholders = new Set<string>()
|
|
@@ -120,7 +120,7 @@ const TestDirect = cmp(function TestDirect(props: any) {
|
|
|
120
120
|
_pathPlaceholders.add(part.slice(1, -1))
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
-
const _renameMap = (loadPoint?.
|
|
123
|
+
const _renameMap = (loadPoint?.r?.param || {}) as Record<string, string>
|
|
124
124
|
const _renamedPlaceholders = new Set<string>()
|
|
125
125
|
for (const ph of _pathPlaceholders) {
|
|
126
126
|
_renamedPlaceholders.add(ph)
|
|
@@ -129,25 +129,25 @@ const TestDirect = cmp(function TestDirect(props: any) {
|
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
const loadParams = allLoadParams.filter((p: any) =>
|
|
132
|
-
_renamedPlaceholders.has(p.
|
|
132
|
+
_renamedPlaceholders.has(p.n) || _renamedPlaceholders.has(p.or))
|
|
133
133
|
|
|
134
134
|
const listPoint = listOp?.points?.[0]
|
|
135
|
-
const listPath = listPoint ? normalizePathParams(pointParts(listPoint), listPoint?.
|
|
136
|
-
const listParams = listPoint?.
|
|
135
|
+
const listPath = listPoint ? normalizePathParams(pointParts(listPoint), listPoint?.g?.params || [], listPoint?.r?.param) : ''
|
|
136
|
+
const listParams = listPoint?.g?.params || []
|
|
137
137
|
|
|
138
138
|
// Required query params with spec-provided examples - needed in live mode.
|
|
139
|
-
const loadQuery = loadPoint?.
|
|
139
|
+
const loadQuery = loadPoint?.g?.query || []
|
|
140
140
|
const loadLiveQueryEntries = loadQuery
|
|
141
|
-
.filter((q: any) => q.
|
|
141
|
+
.filter((q: any) => q.r && undefined !== q.ex && null !== q.ex)
|
|
142
142
|
const loadLiveQueryLines = loadLiveQueryEntries
|
|
143
|
-
.map((q: any) => ` $query->{'${q.
|
|
143
|
+
.map((q: any) => ` $query->{'${q.n}'} = ${perlScalar(q.ex)};`)
|
|
144
144
|
.join('\n')
|
|
145
145
|
|
|
146
146
|
const loadAllHaveExamples =
|
|
147
147
|
loadParams.length > 0 &&
|
|
148
|
-
loadParams.every((p: any) => undefined !== p.
|
|
148
|
+
loadParams.every((p: any) => undefined !== p.ex && null !== p.ex)
|
|
149
149
|
const loadExampleLines = loadAllHaveExamples
|
|
150
|
-
? loadParams.map((p: any) => ` $params->{'${p.
|
|
150
|
+
? loadParams.map((p: any) => ` $params->{'${p.n}'} = ${perlScalar(p.ex)};`).join('\n')
|
|
151
151
|
: ''
|
|
152
152
|
|
|
153
153
|
const entidEnvVar = `${PROJECTNAME}_TEST_${envToken(entity.name)}_ENTID`
|
|
@@ -171,9 +171,9 @@ require(Cwd::abs_path("$FindBin::Bin/runner.pm"));
|
|
|
171
171
|
|
|
172
172
|
if (hasList && listPoint) {
|
|
173
173
|
const listLiveIdKeys: string[] = listParams.map((lp: any) => {
|
|
174
|
-
return lp.
|
|
174
|
+
return lp.n === 'id'
|
|
175
175
|
? entity.name + '01'
|
|
176
|
-
: lp.
|
|
176
|
+
: lp.n.replace(/_id$/, '') + '01'
|
|
177
177
|
})
|
|
178
178
|
const listSkipBlock = listLiveIdKeys.length > 0
|
|
179
179
|
? ` if ($setup->{live}) {
|
|
@@ -207,14 +207,14 @@ ${listSkipBlock} my $client = $setup->{client};
|
|
|
207
207
|
Content(` my $params = {};
|
|
208
208
|
`)
|
|
209
209
|
for (const lp of listParams) {
|
|
210
|
-
const key = lp.
|
|
210
|
+
const key = lp.n === 'id'
|
|
211
211
|
? entity.name + '01'
|
|
212
|
-
: lp.
|
|
212
|
+
: lp.n.replace(/_id$/, '') + '01'
|
|
213
213
|
Content(` if ($setup->{live}) {
|
|
214
|
-
$params->{'${lp.
|
|
214
|
+
$params->{'${lp.n}'} = $setup->{idmap}{'${key}'};
|
|
215
215
|
}
|
|
216
216
|
else {
|
|
217
|
-
$params->{'${lp.
|
|
217
|
+
$params->{'${lp.n}'} = 'direct01';
|
|
218
218
|
}
|
|
219
219
|
`)
|
|
220
220
|
}
|
|
@@ -270,8 +270,6 @@ ${listSkipBlock} my $client = $setup->{client};
|
|
|
270
270
|
}
|
|
271
271
|
|
|
272
272
|
if (hasLoad && loadPoint) {
|
|
273
|
-
// Skip live direct-load only when we can't fill path params:
|
|
274
|
-
// no spec examples and no list-bootstrap. Spec examples win first.
|
|
275
273
|
const loadSkipBlock = (loadParams.length > 0 && !loadAllHaveExamples)
|
|
276
274
|
? ` if ($setup->{live}) {
|
|
277
275
|
note('live direct-load needs real ID - set *_ENTID env var with real IDs to run');
|
|
@@ -307,7 +305,7 @@ ${loadSkipBlock} my $client = $setup->{client};
|
|
|
307
305
|
else {
|
|
308
306
|
`)
|
|
309
307
|
for (let i = 0; i < loadParams.length; i++) {
|
|
310
|
-
Content(` $params->{'${loadParams[i].
|
|
308
|
+
Content(` $params->{'${loadParams[i].n}'} = 'direct0${i + 1}';
|
|
311
309
|
`)
|
|
312
310
|
}
|
|
313
311
|
Content(` }
|
|
@@ -322,7 +320,7 @@ ${loadLiveQueryLines}
|
|
|
322
320
|
Content(` unless ($setup->{live}) {
|
|
323
321
|
`)
|
|
324
322
|
for (let i = 0; i < loadParams.length; i++) {
|
|
325
|
-
Content(` $params->{'${loadParams[i].
|
|
323
|
+
Content(` $params->{'${loadParams[i].n}'} = 'direct0${i + 1}';
|
|
326
324
|
`)
|
|
327
325
|
}
|
|
328
326
|
Content(` }
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { flowSteps } from '@voxgig/sdkgen'
|
|
1
2
|
|
|
2
3
|
import {
|
|
3
4
|
KIT,
|
|
@@ -80,10 +81,10 @@ const TestEntity = cmp(function TestEntity(props: any) {
|
|
|
80
81
|
const idnames = buildIdNames(entity, basicflow)
|
|
81
82
|
const idnamesStr = idnames.map(n => `'${n}'`).join(', ')
|
|
82
83
|
|
|
83
|
-
const allSteps = Object.values(basicflow
|
|
84
|
-
const updateStep = allSteps.find((s: any) => s.
|
|
85
|
-
const updateData = updateStep?.
|
|
86
|
-
? Object.entries(updateStep.
|
|
84
|
+
const allSteps = Object.values(flowSteps(basicflow)) as any[]
|
|
85
|
+
const updateStep = allSteps.find((s: any) => s.o === 'update')
|
|
86
|
+
const updateData = updateStep?.d
|
|
87
|
+
? Object.entries(updateStep.d).filter(([k]: any) => k !== 'id' && !k.endsWith('$'))
|
|
87
88
|
: []
|
|
88
89
|
const aliases = updateData.map(([k, v]: any) => [k, v])
|
|
89
90
|
|
|
@@ -93,7 +94,7 @@ const TestEntity = cmp(function TestEntity(props: any) {
|
|
|
93
94
|
// below therefore wraps this in a second pair of parens, which is a no-op
|
|
94
95
|
// for a non-empty list because Perl flattens it.
|
|
95
96
|
const opsList = Array.from(new Set(
|
|
96
|
-
(allSteps as any[]).map((s: any) => s.
|
|
97
|
+
(allSteps as any[]).map((s: any) => s.o).filter(Boolean)))
|
|
97
98
|
.map(o => `'${o}'`).join(', ')
|
|
98
99
|
|
|
99
100
|
const genCtx: GenCtx = { model, entity, flow: basicflow, N, PROJUPPER }
|
|
@@ -145,7 +146,7 @@ BASIC_FLOW: {
|
|
|
145
146
|
`)
|
|
146
147
|
|
|
147
148
|
// Check if the flow has a create step
|
|
148
|
-
const flowHasCreate = allSteps.some((s: any) => s.
|
|
149
|
+
const flowHasCreate = allSteps.some((s: any) => s.o === 'create')
|
|
149
150
|
if (!flowHasCreate) {
|
|
150
151
|
Content(` # Bootstrap entity data from existing test data.
|
|
151
152
|
$V{${entity.name}_ref01_data_raw} = Voxgig::Struct::items(${N}Helpers::to_map(
|
|
@@ -159,8 +160,8 @@ BASIC_FLOW: {
|
|
|
159
160
|
}
|
|
160
161
|
|
|
161
162
|
// Model-driven step iteration
|
|
162
|
-
each(basicflow
|
|
163
|
-
const opgen: OpGen = GENERATE_OP[step.
|
|
163
|
+
each(flowSteps(basicflow), (step: any, index: any) => {
|
|
164
|
+
const opgen: OpGen = GENERATE_OP[step.o]
|
|
164
165
|
if (opgen) {
|
|
165
166
|
opgen(genCtx, step, index)
|
|
166
167
|
Content('\n')
|
|
@@ -261,13 +262,13 @@ done_testing();
|
|
|
261
262
|
|
|
262
263
|
const generateCreate: OpGen = (ctx, step, index) => {
|
|
263
264
|
const { entity, flow, N } = ctx
|
|
264
|
-
const ref = step.
|
|
265
|
-
const entvar = step.
|
|
266
|
-
const datavar = step.
|
|
265
|
+
const ref = step.i.ref ?? entity.name + '_ref01'
|
|
266
|
+
const entvar = step.i.entvar ?? ref + '_ent'
|
|
267
|
+
const datavar = step.i.datavar ?? (ref + '_data' + (step.i.suffix ?? ''))
|
|
267
268
|
|
|
268
|
-
const priorSteps = Object.values(flow
|
|
269
|
+
const priorSteps = Object.values(flowSteps(flow)).slice(0, Number(index)) as any[]
|
|
269
270
|
const needsEnt = !priorSteps.some((s: any) =>
|
|
270
|
-
['create', 'list', 'load', 'update', 'remove'].includes(s.
|
|
271
|
+
['create', 'list', 'load', 'update', 'remove'].includes(s.o))
|
|
271
272
|
|
|
272
273
|
Content(` # CREATE
|
|
273
274
|
`)
|
|
@@ -299,14 +300,14 @@ const generateCreate: OpGen = (ctx, step, index) => {
|
|
|
299
300
|
|
|
300
301
|
const generateList: OpGen = (ctx, step, index) => {
|
|
301
302
|
const { entity, flow, N } = ctx
|
|
302
|
-
const ref = step.
|
|
303
|
-
const entvar = step.
|
|
304
|
-
const matchvar = step.
|
|
305
|
-
const listvar = step.
|
|
303
|
+
const ref = step.i.ref ?? entity.name + '_ref01'
|
|
304
|
+
const entvar = step.i.entvar ?? ref + '_ent'
|
|
305
|
+
const matchvar = step.i.matchvar ?? (ref + '_match' + (step.i.suffix ?? ''))
|
|
306
|
+
const listvar = step.i.listvar ?? (ref + '_list' + (step.i.suffix ?? ''))
|
|
306
307
|
|
|
307
|
-
const priorSteps = Object.values(flow
|
|
308
|
+
const priorSteps = Object.values(flowSteps(flow)).slice(0, Number(index)) as any[]
|
|
308
309
|
const needsEnt = !priorSteps.some((s: any) =>
|
|
309
|
-
['create', 'list', 'load', 'update', 'remove'].includes(s.
|
|
310
|
+
['create', 'list', 'load', 'update', 'remove'].includes(s.o))
|
|
310
311
|
|
|
311
312
|
Content(` # LIST
|
|
312
313
|
`)
|
|
@@ -336,12 +337,12 @@ const generateList: OpGen = (ctx, step, index) => {
|
|
|
336
337
|
`)
|
|
337
338
|
|
|
338
339
|
// Handle validators
|
|
339
|
-
const allSteps = Object.values(flow
|
|
340
|
-
if (step.
|
|
341
|
-
for (const validator of step.
|
|
340
|
+
const allSteps = Object.values(flowSteps(flow)) as any[]
|
|
341
|
+
if (step.v) {
|
|
342
|
+
for (const validator of step.v) {
|
|
342
343
|
const validRef = validator.def?.ref
|
|
343
|
-
const hasRefData = validRef && allSteps.some((s: any) => 'create' === s.
|
|
344
|
-
((s.
|
|
344
|
+
const hasRefData = validRef && allSteps.some((s: any) => 'create' === s.o &&
|
|
345
|
+
((s.i.ref ?? entity.name + '_ref01') === validRef))
|
|
345
346
|
|
|
346
347
|
if ('ItemExists' === validator.apply && hasRefData) {
|
|
347
348
|
const refDataVar = validRef + '_data'
|
|
@@ -367,16 +368,16 @@ const generateList: OpGen = (ctx, step, index) => {
|
|
|
367
368
|
|
|
368
369
|
const generateUpdate: OpGen = (ctx, step, index) => {
|
|
369
370
|
const { entity, flow, N } = ctx
|
|
370
|
-
const ref = step.
|
|
371
|
-
const entvar = step.
|
|
372
|
-
const datavar = step.
|
|
373
|
-
const resdatavar = step.
|
|
374
|
-
const markdefvar = step.
|
|
375
|
-
const srcdatavar = step.
|
|
376
|
-
|
|
377
|
-
const priorSteps = Object.values(flow
|
|
371
|
+
const ref = step.i.ref ?? entity.name + '_ref01'
|
|
372
|
+
const entvar = step.i.entvar ?? ref + '_ent'
|
|
373
|
+
const datavar = step.i.datavar ?? (ref + '_data' + (step.i.suffix ?? ''))
|
|
374
|
+
const resdatavar = step.i.resdatavar ?? (ref + '_resdata' + (step.i.suffix ?? ''))
|
|
375
|
+
const markdefvar = step.i.markdefvar ?? (ref + '_markdef' + (step.i.suffix ?? ''))
|
|
376
|
+
const srcdatavar = step.i.srcdatavar ?? (ref + '_data' + (step.i.suffix ?? ''))
|
|
377
|
+
|
|
378
|
+
const priorSteps = Object.values(flowSteps(flow)).slice(0, Number(index)) as any[]
|
|
378
379
|
const needsEnt = !priorSteps.some((s: any) =>
|
|
379
|
-
['create', 'list', 'load', 'update', 'remove'].includes(s.
|
|
380
|
+
['create', 'list', 'load', 'update', 'remove'].includes(s.o))
|
|
380
381
|
|
|
381
382
|
const hasEntIdU = null != entity.id
|
|
382
383
|
|
|
@@ -393,8 +394,8 @@ const generateUpdate: OpGen = (ctx, step, index) => {
|
|
|
393
394
|
`)
|
|
394
395
|
}
|
|
395
396
|
|
|
396
|
-
if (step.
|
|
397
|
-
const dataEntries = Object.entries(step.
|
|
397
|
+
if (step.d) {
|
|
398
|
+
const dataEntries = Object.entries(step.d).filter(([k]: any) => k !== 'id' && !k.endsWith('$'))
|
|
398
399
|
for (const [key] of dataEntries) {
|
|
399
400
|
Content(` '${key}' => $setup->{idmap}{'${key}'},
|
|
400
401
|
`)
|
|
@@ -404,10 +405,10 @@ const generateUpdate: OpGen = (ctx, step, index) => {
|
|
|
404
405
|
Content(` };
|
|
405
406
|
`)
|
|
406
407
|
|
|
407
|
-
if (step.
|
|
408
|
-
for (const spec of step.
|
|
409
|
-
if ('TextFieldMark' === spec.apply && null != step.
|
|
410
|
-
const fieldname = step.
|
|
408
|
+
if (step.s) {
|
|
409
|
+
for (const spec of step.s) {
|
|
410
|
+
if ('TextFieldMark' === spec.apply && null != step.i.textfield) {
|
|
411
|
+
const fieldname = step.i.textfield
|
|
411
412
|
const fieldvalue = spec.def?.mark ?? `Mark01-${ref}`
|
|
412
413
|
Content(`
|
|
413
414
|
$V{${markdefvar}_name} = '${fieldname}';
|
|
@@ -428,9 +429,9 @@ const generateUpdate: OpGen = (ctx, step, index) => {
|
|
|
428
429
|
`)
|
|
429
430
|
}
|
|
430
431
|
|
|
431
|
-
if (step.
|
|
432
|
-
for (const spec of step.
|
|
433
|
-
if ('TextFieldMark' === spec.apply && null != step.
|
|
432
|
+
if (step.s) {
|
|
433
|
+
for (const spec of step.s) {
|
|
434
|
+
if ('TextFieldMark' === spec.apply && null != step.i.textfield) {
|
|
434
435
|
Content(` is($V{${resdatavar}}{ $V{${markdefvar}_name} }, $V{${markdefvar}_value}, '${entity.name} update: mark');
|
|
435
436
|
`)
|
|
436
437
|
}
|
|
@@ -441,23 +442,23 @@ const generateUpdate: OpGen = (ctx, step, index) => {
|
|
|
441
442
|
|
|
442
443
|
const generateLoad: OpGen = (ctx, step, index) => {
|
|
443
444
|
const { entity, flow, N } = ctx
|
|
444
|
-
const ref = step.
|
|
445
|
-
const entvar = step.
|
|
446
|
-
const matchvar = step.
|
|
447
|
-
const datavar = step.
|
|
448
|
-
const srcdatavar = step.
|
|
445
|
+
const ref = step.i.ref ?? entity.name + '_ref01'
|
|
446
|
+
const entvar = step.i.entvar ?? ref + '_ent'
|
|
447
|
+
const matchvar = step.i.matchvar ?? (ref + '_match' + (step.i.suffix ?? ''))
|
|
448
|
+
const datavar = step.i.datavar ?? (ref + '_data' + (step.i.suffix ?? ''))
|
|
449
|
+
const srcdatavar = step.i.srcdatavar ?? (ref + '_data' + (step.i.suffix ?? ''))
|
|
449
450
|
|
|
450
|
-
const priorSteps = Object.values(flow
|
|
451
|
+
const priorSteps = Object.values(flowSteps(flow)).slice(0, Number(index)) as any[]
|
|
451
452
|
const hasEntVar = priorSteps.some((s: any) =>
|
|
452
|
-
['create', 'list', 'load', 'update', 'remove'].includes(s.
|
|
453
|
+
['create', 'list', 'load', 'update', 'remove'].includes(s.o))
|
|
453
454
|
|
|
454
|
-
const flowHasCreate = Object.values(flow
|
|
455
|
+
const flowHasCreate = Object.values(flowSteps(flow)).some((s: any) => (s as any).o === 'create')
|
|
455
456
|
const preambleRef = entity.name + '_ref01'
|
|
456
457
|
const hasSrcData = (!flowHasCreate && srcdatavar === (preambleRef + '_data')) ||
|
|
457
458
|
priorSteps.some((s: any) => {
|
|
458
|
-
if ('create' === s.
|
|
459
|
-
const priorRef = s.
|
|
460
|
-
const priorDatvar = s.
|
|
459
|
+
if ('create' === s.o) {
|
|
460
|
+
const priorRef = s.i.ref ?? entity.name + '_ref01'
|
|
461
|
+
const priorDatvar = s.i.datavar ?? (priorRef + '_data' + (s.i.suffix ?? ''))
|
|
461
462
|
return priorDatvar === srcdatavar
|
|
462
463
|
}
|
|
463
464
|
return false
|
|
@@ -501,14 +502,14 @@ const generateLoad: OpGen = (ctx, step, index) => {
|
|
|
501
502
|
|
|
502
503
|
const generateRemove: OpGen = (ctx, step, index) => {
|
|
503
504
|
const { entity, flow, N } = ctx
|
|
504
|
-
const ref = step.
|
|
505
|
-
const entvar = step.
|
|
506
|
-
const matchvar = step.
|
|
507
|
-
const srcdatavar = step.
|
|
505
|
+
const ref = step.i.ref ?? entity.name + '_ref01'
|
|
506
|
+
const entvar = step.i.entvar ?? ref + '_ent'
|
|
507
|
+
const matchvar = step.i.matchvar ?? (ref + '_match' + (step.i.suffix ?? ''))
|
|
508
|
+
const srcdatavar = step.i.srcdatavar ?? (ref + '_data')
|
|
508
509
|
|
|
509
|
-
const priorSteps = Object.values(flow
|
|
510
|
+
const priorSteps = Object.values(flowSteps(flow)).slice(0, Number(index)) as any[]
|
|
510
511
|
const needsEnt = !priorSteps.some((s: any) =>
|
|
511
|
-
['create', 'list', 'load', 'update', 'remove'].includes(s.
|
|
512
|
+
['create', 'list', 'load', 'update', 'remove'].includes(s.o))
|
|
512
513
|
|
|
513
514
|
Content(` # REMOVE
|
|
514
515
|
`)
|
|
@@ -12,34 +12,8 @@ function projectPath(suffix?: string): string {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
// Strip model-internal keys (ending in `$`) so generated config JSON only
|
|
16
|
-
// carries API-shaped data.
|
|
17
|
-
// Emission-time normalisation of a model subtree (L0).
|
|
18
|
-
//
|
|
19
|
-
// Always drops jostraca's iteration metadata (`$`-suffixed keys: index$,
|
|
20
|
-
// key$, val$). With `dropDefaults`, also drops keys whose value IS the
|
|
21
|
-
// default the runtime already assumes when the key is absent, which is pure
|
|
22
|
-
// payload — see CONFIG_DEFAULT.
|
|
23
|
-
//
|
|
24
|
-
// Rebuilds the tree rather than mutating during a walk. The previous
|
|
25
|
-
// implementation walked a clone calling `delete p[k]`, but walk() assigns its
|
|
26
|
-
// callback's result back over the child (`setprop(out, ckey, walk(...))`), so
|
|
27
|
-
// the delete was undone on the way out and the helper silently did nothing.
|
|
28
|
-
// Returning `undefined` from the callback does not fix it either: setprop
|
|
29
|
-
// stores undefined rather than removing the key, which then emits as a null.
|
|
30
|
-
//
|
|
31
|
-
// `dropDefaults` is opt-in and must be passed ONLY for the entity subtree.
|
|
32
|
-
// `active` means something different in feature config, where absent reads as
|
|
33
|
-
// INACTIVE (see feature_init) — dropping `active: true` there would silently
|
|
34
|
-
// disable the feature.
|
|
35
|
-
// jostraca's iteration metadata, injected by each()/names() while it walks the
|
|
36
|
-
// model. Listed explicitly rather than matched by trailing-dollar suffix: a
|
|
37
|
-
// trailing dollar is not exclusive to jostraca -- Seneca uses entity$ as real
|
|
38
|
-
// data -- so a blanket suffix match can silently drop a legitimate API field.
|
|
39
15
|
const MODEL_META = ['index$', 'key$', 'val$']
|
|
40
16
|
|
|
41
|
-
// Keys whose value IS the default the runtime already assumes when the key is
|
|
42
|
-
// absent, so emitting them is pure payload.
|
|
43
17
|
const CONFIG_DEFAULT: Record<string, any> = {
|
|
44
18
|
active: true,
|
|
45
19
|
req: false,
|
|
@@ -35,45 +35,11 @@ import {
|
|
|
35
35
|
} from './utility_php'
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
// PLUGIN DEFINITION REQUIRES AND THE feature_plugins ACCESSOR (the php peer
|
|
39
|
-
// of cmp/rb/Config_rb.ts's rbPlugins and cmp/py/Config_py.ts's
|
|
40
|
-
// pluginImports/pluginDefs).
|
|
41
|
-
//
|
|
42
|
-
// Upstream sekreto replaced its self-registration registry with
|
|
43
|
-
// voxgig/plugin definitions: a provider kind the caller did not pass in via
|
|
44
|
-
// `plugins: [...]` is unknown to that Sekreto. So config names each active
|
|
45
|
-
// plugin's exported DEFINITION FUNCTION (the model's `def.php` map) and
|
|
46
|
-
// hands the list to the feature.
|
|
47
|
-
//
|
|
48
|
-
// A METHOD rather than a constant, and this is php's own constraint: a
|
|
49
|
-
// plugin definition holds CLOSURES (sekreto's Providers.php says so where
|
|
50
|
-
// it declares `builtins()`), and php has no constant that can. The
|
|
51
|
-
// `require_once` calls live INSIDE the method for the same reason upstream
|
|
52
|
-
// puts them inside plugins.php's own accessors - a plugin file is read only
|
|
53
|
-
// when a feature actually asks for its definitions.
|
|
54
|
-
//
|
|
55
|
-
// The `def` map is declared in the model rather than derived from filenames
|
|
56
|
-
// because one file may export several definitions (sekreto's aws.php
|
|
57
|
-
// exports awssecrets AND awsparams) - hence the de-duplication by path, so
|
|
58
|
-
// a two-definition file yields ONE require_once. A def value is the file's
|
|
59
|
-
// path under tm/php, which is this target's root and also config.php's own
|
|
60
|
-
// directory, so the require is that path verbatim.
|
|
61
|
-
//
|
|
62
|
-
// GATED, like rb: the whole block is emitted only when an active feature
|
|
63
|
-
// DECLARES a plugin catalogue for this target. An SDK that does not carry
|
|
64
|
-
// the secrets feature must be byte-identical to what it was before the
|
|
65
|
-
// feature existed, and an unread accessor is not a thing a simple SDK
|
|
66
|
-
// should have to explain. The feature reads it through `method_exists`, so
|
|
67
|
-
// its absence is not a load error.
|
|
68
38
|
function phpPlugins(model: any, feature: any) {
|
|
69
39
|
const defs: Record<string, { paths: string[], syms: string[] }> = {}
|
|
70
40
|
let declared = false
|
|
71
41
|
|
|
72
42
|
each(feature, (f: any) => {
|
|
73
|
-
// `only_active: false`, and this is the whole subtlety: the feature
|
|
74
|
-
// object a component is handed has ALREADY been filtered, so asking it
|
|
75
|
-
// whether a catalogue EXISTS answers no as soon as every group is off.
|
|
76
|
-
// (Same trap helpers/featureSource documents one level down.)
|
|
77
43
|
const all = getModelPath(model, `main.${KIT}.feature.${f.name}.plugin`,
|
|
78
44
|
{ required: false, only_active: false }) || {}
|
|
79
45
|
|
|
@@ -85,10 +51,6 @@ function phpPlugins(model: any, feature: any) {
|
|
|
85
51
|
const syms: string[] = []
|
|
86
52
|
|
|
87
53
|
each(f.plugin, (plugin: any) => {
|
|
88
|
-
// Filter on `active` HERE rather than trusting the feature object to
|
|
89
|
-
// arrive filtered: getting it wrong in this direction emits a
|
|
90
|
-
// require_once for a file the plugin trim just deleted - an SDK that
|
|
91
|
-
// does not load, rather than one that merely carries too much.
|
|
92
54
|
if (false === plugin.active || null == plugin.active) return
|
|
93
55
|
|
|
94
56
|
for (const [sym, one] of Object.entries(plugin.def?.php || {})) {
|
|
@@ -113,15 +75,11 @@ const Config = cmp(async function Config(props: any) {
|
|
|
113
75
|
const model: Model = ctx$.model
|
|
114
76
|
|
|
115
77
|
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
116
|
-
// Gated by the applicability tags, so this target never imports or
|
|
117
|
-
// registers a feature it has no source for. One rule, one place:
|
|
118
|
-
// helpers/applicability.
|
|
119
78
|
const feature = targetFeatures(model, target)
|
|
120
79
|
|
|
121
80
|
const headers = getModelPath(model, `main.${KIT}.config.headers`) || {}
|
|
122
81
|
|
|
123
82
|
const authActive = isAuthActive(model)
|
|
124
|
-
// config.auth.prefix override -> spec-derived info.security.prefix -> 'Bearer'
|
|
125
83
|
const authPrefix = resolveAuthPrefix(model)
|
|
126
84
|
// `in` and `name` travel with the prefix now. They were resolved by
|
|
127
85
|
// apidef all along and dropped here, so an apiKey-in-query API got an
|
|
@@ -134,9 +92,6 @@ const Config = cmp(async function Config(props: any) {
|
|
|
134
92
|
let baseUrl = ''
|
|
135
93
|
try { baseUrl = getModelPath(model, `main.${KIT}.info.servers.0.url`) } catch (_e) { }
|
|
136
94
|
|
|
137
|
-
// Templated server URL: emit the spec's server-variable defaults so the
|
|
138
|
-
// runtime can substitute {name} placeholders in base (see MakeOptions).
|
|
139
|
-
// `$` is escaped so a default can never open a PHP interpolation.
|
|
140
95
|
const svars = serverVariables(model)
|
|
141
96
|
const phps = (s: string) => JSON.stringify(s).replace(/\$/g, '\\$')
|
|
142
97
|
const serverBlock = 0 === svars.length ? '' :
|
|
@@ -152,21 +107,12 @@ const Config = cmp(async function Config(props: any) {
|
|
|
152
107
|
],\n`
|
|
153
108
|
: ''
|
|
154
109
|
|
|
155
|
-
// The same config as an OBJECT, built by the shared helper so this target's
|
|
156
|
-
// literal and the data that replaces it above the threshold are the same
|
|
157
|
-
// config by construction. The JSON is what the threshold is measured on -
|
|
158
|
-
// emitted source size varies by language, the model does not. Passing the
|
|
159
|
-
// target name opts in to the main.slug/version/target identity fields -
|
|
160
|
-
// both representations below carry them, keeping the reps interchangeable.
|
|
161
110
|
const { def: configDef, json: configJson } = configDefinition(model, target.name)
|
|
162
111
|
const asData = isConfigData(configJson, configReprSetting(model))
|
|
163
112
|
|
|
164
113
|
const { defs: pluginDefs, declared: pluginDeclared } = phpPlugins(model, feature)
|
|
165
114
|
const pluginFeatures = Object.keys(pluginDefs).sort()
|
|
166
115
|
|
|
167
|
-
// Emitted whenever a catalogue is declared, even with every group off:
|
|
168
|
-
// the feature asks for the list unconditionally, and an SDK whose chain
|
|
169
|
-
// is all built-ins still has to be answered with an empty one.
|
|
170
116
|
const featurePluginsBlock = !pluginDeclared ? '' : `
|
|
171
117
|
/**
|
|
172
118
|
* The sekreto plugin DEFINITIONS the model selected per feature, from
|
|
@@ -224,25 +170,6 @@ class ${model.const.Name}Config
|
|
|
224
170
|
|
|
225
171
|
`)
|
|
226
172
|
|
|
227
|
-
// ABOVE THE THRESHOLD: emit the model as DATA.
|
|
228
|
-
//
|
|
229
|
-
// An array literal is compiled opcode by opcode and held in the opcache
|
|
230
|
-
// entry for this file; a string constant is one token, and `json_decode`
|
|
231
|
-
// (C) builds the array far faster than the equivalent literal.
|
|
232
|
-
//
|
|
233
|
-
// PHP cannot tell an empty list from an empty map, so `{}` and `[]` decode
|
|
234
|
-
// to the same value and the two representations have to AGREE about which
|
|
235
|
-
// one the literal would have produced. `formatPhpArray` emits `[]` for
|
|
236
|
-
// every empty map, and the literal branch hand-writes `(object)[]` in
|
|
237
|
-
// exactly two places - `entity` and `options.entity`, and only when the
|
|
238
|
-
// model declares no entities at all, because the SDK runtime validator
|
|
239
|
-
// wants a map there. This reproduces that rule rather than improving on
|
|
240
|
-
// it: an emission wart is not something the data path gets to fix
|
|
241
|
-
// unilaterally, or the two branches stop being interchangeable.
|
|
242
|
-
//
|
|
243
|
-
// A SINGLE-quoted literal, so the JSON survives verbatim: a double-quoted
|
|
244
|
-
// PHP string would interpolate any `$name` the model contains - and the
|
|
245
|
-
// model is full of them (`$STRING`, `$action`).
|
|
246
173
|
if (asData) {
|
|
247
174
|
Content(` /**
|
|
248
175
|
* THE API MODEL, EMBEDDED AS DATA (sdkgen rung L1).
|
|
@@ -323,9 +250,6 @@ class ${model.const.Name}Config
|
|
|
323
250
|
`)
|
|
324
251
|
})
|
|
325
252
|
|
|
326
|
-
// PHP can't distinguish empty list from empty map; the SDK runtime
|
|
327
|
-
// validator wants an object for `entity` and `feature.test.entity`. Use
|
|
328
|
-
// `(object)[]` when the map is empty so the merge preserves map shape.
|
|
329
253
|
const entityIsEmpty = Object.keys(entity || {}).length === 0
|
|
330
254
|
if (entityIsEmpty) {
|
|
331
255
|
Content(` ],
|
|
@@ -1,28 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
// Typed-model generator (PHP 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, types/<Sdk>Types.php, containing a PHP 8 class with typed
|
|
8
|
-
// properties per active entity plus a request/match class per active op. Field/param
|
|
9
|
-
// sentinels ($STRING, $INTEGER, ...) are turned into real PHP types by the shared
|
|
10
|
-
// sdkgen helper `canonToType` (source of truth: @voxgig/apidef VALID_CANON):
|
|
11
|
-
// $STRING -> string, $INTEGER -> int, $NUMBER -> float, $BOOLEAN -> bool,
|
|
12
|
-
// $OBJECT/$ARRAY -> array, unknown -> mixed.
|
|
13
|
-
//
|
|
14
|
-
// Type-name scheme (IDENTICAL to TS): data type = <Name>; per-op request
|
|
15
|
-
// <Name>LoadMatch / <Name>ListMatch / <Name>RemoveMatch (query/id ops),
|
|
16
|
-
// <Name>CreateData / <Name>UpdateData (body ops). An op WITH params -> a typed
|
|
17
|
-
// class of those params (reqd:false -> nullable, defaulted null). An op WITHOUT
|
|
18
|
-
// params -> a match class over the entity fields, all nullable/optional (the
|
|
19
|
-
// PHP stand-in for TS `Partial<Name>`; callers may also pass a plain assoc-array).
|
|
20
|
-
//
|
|
21
|
-
// PHP has no generics and no structural typing, so these classes are documentation-
|
|
22
|
-
// grade value objects: op signatures keep a permissive native type (assoc-array in,
|
|
23
|
-
// mixed out at the item-5 boundary) and surface the class names via PHPDoc. The file
|
|
24
|
-
// lands under types/ and is registered on composer's classmap autoload (see
|
|
25
|
-
// Package_php.ts) so `new <Name>()` / type references resolve globally.
|
|
26
3
|
|
|
27
4
|
import {
|
|
28
5
|
cmp, each, names,
|
|
@@ -40,19 +17,11 @@ import {
|
|
|
40
17
|
const LANG = 'php'
|
|
41
18
|
|
|
42
19
|
|
|
43
|
-
// A valid PHP property/label name (identifiers only; the corpus never carries
|
|
44
|
-
// exotic field names, but guard so a bad name can never emit invalid PHP).
|
|
45
20
|
function validName(name: string): boolean {
|
|
46
21
|
return /^[A-Za-z_\x80-\xff][A-Za-z0-9_\x80-\xff]*$/.test(name)
|
|
47
22
|
}
|
|
48
23
|
|
|
49
24
|
|
|
50
|
-
// Emit one typed PHP property line. `mixed` is already nullable in PHP and
|
|
51
|
-
// rejects the `?` prefix, so it is special-cased; every other optional field
|
|
52
|
-
// becomes `?type` with a `= null` default so the property is safely optional.
|
|
53
|
-
// A `$NULL`-typed field maps to the 'null' type name, which is not usable as
|
|
54
|
-
// a property type here (`?null` is a fatal, and standalone `null` needs
|
|
55
|
-
// PHP >= 8.2), so it degrades to `mixed` too.
|
|
56
25
|
function propLine(name: string, sentinel: unknown, optional: boolean): string {
|
|
57
26
|
const type = canonToType(sentinel, LANG)
|
|
58
27
|
if ('mixed' === type || 'null' === type) {
|
|
@@ -69,10 +38,6 @@ function propLine(name: string, sentinel: unknown, optional: boolean): string {
|
|
|
69
38
|
const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
70
39
|
const { model, log } = props.ctx$
|
|
71
40
|
|
|
72
|
-
// only_active:false — getModelPath DROPS active:false entries by default,
|
|
73
|
-
// but the consumer scaffold (create-sdkgen Root.ts) iterates the RAW entity
|
|
74
|
-
// collection, so inactive entities still get generated entity code that
|
|
75
|
-
// references these typed names. The typed model must cover them too.
|
|
76
41
|
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
77
42
|
// Emit for EVERY entity that gets generated entity code: the consumer
|
|
78
43
|
// scaffold (create-sdkgen Root.ts) iterates entities WITHOUT an active
|
|
@@ -84,9 +49,6 @@ const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
|
84
49
|
// entity not yet named (e.g. a fieldless placeholder) would otherwise read
|
|
85
50
|
// `Name = undefined` below. Parity with the go emitter's fix.
|
|
86
51
|
|
|
87
|
-
// Surface duplicate generated type names (two entities with the same
|
|
88
|
-
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
89
|
-
// targets. Detection only; renaming is a model-level decision.
|
|
90
52
|
warnEntityTypeCollisions(entity, log, LANG)
|
|
91
53
|
|
|
92
54
|
Folder({ name: 'types' }, () => {
|
|
@@ -98,8 +60,8 @@ declare(strict_types=1);
|
|
|
98
60
|
|
|
99
61
|
// Typed models for the ${model.const.Name} SDK.
|
|
100
62
|
//
|
|
101
|
-
// GENERATED from the API model: main.${KIT}.entity.<e>.fields
|
|
102
|
-
// params (op.<name>.points[].
|
|
63
|
+
// GENERATED from the API model: main.${KIT}.entity.<e>.fields{} and per-op
|
|
64
|
+
// params (op.<name>.points[].g.params[]). Field/param types come from the
|
|
103
65
|
// canonical type sentinels via @voxgig/sdkgen canonToType (source of truth:
|
|
104
66
|
// @voxgig/apidef VALID_CANON). Do not edit by hand.
|
|
105
67
|
//
|
|
@@ -112,34 +74,21 @@ declare(strict_types=1);
|
|
|
112
74
|
entityList.forEach((ent: any) => {
|
|
113
75
|
const Name = ent.Name
|
|
114
76
|
const fields = (ent.fields ? each(ent.fields) : [])
|
|
115
|
-
.filter((f: any) => f.
|
|
116
|
-
|
|
117
|
-
// PHP refuses a reserved word where a class name is expected, and the
|
|
118
|
-
// check is CASE-INSENSITIVE — an entity named `Namespace` emitted
|
|
119
|
-
// `class Namespace`, which does not parse, and took the whole types
|
|
120
|
-
// file with it (issue #64). phpSafeTypeName appends `Type` on a real
|
|
121
|
-
// collision and leaves every other name untouched.
|
|
122
|
-
//
|
|
123
|
-
// Only the bare data class needs it: the per-op names below already
|
|
124
|
-
// carry a suffix no reserved word matches, and the entity accessor is
|
|
125
|
-
// a method, which PHP resolves separately.
|
|
77
|
+
.filter((f: any) => f.a !== false && validName(f.n))
|
|
78
|
+
|
|
126
79
|
const TypeName = phpSafeTypeName(Name)
|
|
127
80
|
|
|
128
|
-
// Entity data model: one typed property per field (`req:false` -> nullable).
|
|
129
81
|
Content(`/** ${Name} entity data model. */
|
|
130
82
|
class ${TypeName}
|
|
131
83
|
{
|
|
132
84
|
`)
|
|
133
85
|
fields.forEach((f: any) => {
|
|
134
|
-
Content(propLine(f.
|
|
86
|
+
Content(propLine(f.n, f.t, false === f.r))
|
|
135
87
|
})
|
|
136
88
|
Content(`}
|
|
137
89
|
|
|
138
90
|
`)
|
|
139
91
|
|
|
140
|
-
// Per active op: a request/match class. Members and their optionality
|
|
141
|
-
// come from the shared partiality policy (opRequestShape); this file
|
|
142
|
-
// only renders them as a PHP value-object class.
|
|
143
92
|
const ops = ent.op || {}
|
|
144
93
|
;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
|
|
145
94
|
if (null == ops[opname]) {
|