@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,16 +1,3 @@
|
|
|
1
|
-
// Behavioural tests for the secrets feature (vendored @voxgig/sekreto).
|
|
2
|
-
//
|
|
3
|
-
// The contract under test: the `apikey` OPTION keeps its exact old meaning
|
|
4
|
-
// and always wins, because SecretsFeature places it FIRST in the provider
|
|
5
|
-
// chain (a `memory` store named `options`) — explicit-beats-lookup falls
|
|
6
|
-
// out of sekreto's first-hit rule rather than from special-case logic.
|
|
7
|
-
// With the feature inactive nothing changes at all. With it active and the
|
|
8
|
-
// option unset, the chain (env, dotenv, a custom provider, a vault)
|
|
9
|
-
// supplies the credential instead.
|
|
10
|
-
//
|
|
11
|
-
// This file lives in the `feature/` container on purpose: `target add`
|
|
12
|
-
// trims it, along with the feature source and the vendored library, for a
|
|
13
|
-
// project whose model does not select `secrets`.
|
|
14
1
|
|
|
15
2
|
import { test, describe, beforeEach } from 'node:test'
|
|
16
3
|
import assert from 'node:assert'
|
|
@@ -32,12 +19,6 @@ async function prepared(sdkopts: any): Promise<any> {
|
|
|
32
19
|
}
|
|
33
20
|
|
|
34
21
|
|
|
35
|
-
// The Authorization header carries the SPEC's credential prefix, which a
|
|
36
|
-
// TEMPLATE cannot know: an OpenAPI `http`/`bearer` scheme gives
|
|
37
|
-
// `Bearer <token>`, an apiKey scheme the raw token. So assert on the
|
|
38
|
-
// CREDENTIAL and let the prefix be whatever this SDK's API declares —
|
|
39
|
-
// pinning the whole header value passes only for a prefix-less API, and
|
|
40
|
-
// this file ships to every project that selects the feature.
|
|
41
22
|
function credentialIs(header: any, token: string) {
|
|
42
23
|
const got = String(null == header ? '' : header)
|
|
43
24
|
assert.ok(got === token || got.endsWith(' ' + token),
|
|
@@ -93,12 +74,6 @@ describe('secrets', () => {
|
|
|
93
74
|
})
|
|
94
75
|
|
|
95
76
|
|
|
96
|
-
// The three ways an apikey can be "not given", pinned together because
|
|
97
|
-
// they are easy to conflate and only one of them is a suppression.
|
|
98
|
-
//
|
|
99
|
-
// makeOptions normalises an omitted apikey to '' before features
|
|
100
|
-
// initialise, so by init time omitted and explicit-empty are
|
|
101
|
-
// indistinguishable — both defer to the chain, deliberately.
|
|
102
77
|
|
|
103
78
|
test('active: an OMITTED apikey defers to the chain', async () => {
|
|
104
79
|
process.env[ENVPREFIX + 'APIKEY'] = 'ENVKEY01'
|
|
@@ -115,21 +90,6 @@ describe('secrets', () => {
|
|
|
115
90
|
})
|
|
116
91
|
|
|
117
92
|
|
|
118
|
-
// `auth: null` — the documented way to disable auth outright, which
|
|
119
|
-
// prepareAuth honours before it ever reads the apikey.
|
|
120
|
-
//
|
|
121
|
-
// This needs an explicit guard because struct 0.3.2 nearly removed it in
|
|
122
|
-
// silence. Under 0.0.10, getprop returned a stored null as null, so
|
|
123
|
-
// validate saw `auth: null` as a non-map and REJECTED it for any SDK
|
|
124
|
-
// whose optspec supplies an `auth` default. Under 0.3.2 getprop treats a
|
|
125
|
-
// stored null as "no value", so the default fires instead and the
|
|
126
|
-
// suppression became "use default auth" — transmitting a credential the
|
|
127
|
-
// caller explicitly asked not to send. makeOptions now captures
|
|
128
|
-
// suppliedness BEFORE validate and restores the null after it.
|
|
129
|
-
//
|
|
130
|
-
// No corpus entry could catch this: corpus nulls travel as the
|
|
131
|
-
// '__NULL__' string, so real-JSON-null semantics are invisible to every
|
|
132
|
-
// port's shared fixtures.
|
|
133
93
|
test('active: auth null suppresses the credential, chain or no chain',
|
|
134
94
|
async () => {
|
|
135
95
|
process.env[ENVPREFIX + 'APIKEY'] = 'ENVKEY01'
|
|
@@ -177,13 +137,6 @@ describe('secrets', () => {
|
|
|
177
137
|
})
|
|
178
138
|
|
|
179
139
|
|
|
180
|
-
// sekreto's miss-vs-error invariant: a MISS falls through to the next
|
|
181
|
-
// provider, an ERROR does not. A broken vault must never degrade into an
|
|
182
|
-
// unauthenticated request.
|
|
183
|
-
//
|
|
184
|
-
// On the DIRECT path the error is RETURNED, not thrown: _rawRequest
|
|
185
|
-
// awaits prepare() outside its try, and direct()/graphql() are documented
|
|
186
|
-
// to return a value or an Error and never reject.
|
|
187
140
|
test('active: a provider ERROR is returned by prepare, not thrown',
|
|
188
141
|
async () => {
|
|
189
142
|
const sdk = (SDK as any).test({}, {
|
|
@@ -260,15 +213,6 @@ describe('secrets', () => {
|
|
|
260
213
|
})
|
|
261
214
|
|
|
262
215
|
|
|
263
|
-
// A MISS IS NOT A CACHEABLE ANSWER — sekreto's own rule, which this
|
|
264
|
-
// feature used to override from the layer above.
|
|
265
|
-
//
|
|
266
|
-
// Default caching here, deliberately: `cache: true` is about holding a
|
|
267
|
-
// HIT, and holding the settled promise after a miss meant the chain was
|
|
268
|
-
// never asked again for the life of the client. A secret provisioned
|
|
269
|
-
// after startup (a mounted file, a vault policy granted a minute late)
|
|
270
|
-
// was invisible forever, and the only workaround was giving up hit
|
|
271
|
-
// caching entirely.
|
|
272
216
|
test('active: a MISS is re-asked, so a late secret is picked up',
|
|
273
217
|
async () => {
|
|
274
218
|
let calls = 0
|
|
@@ -355,14 +299,6 @@ describe('secrets', () => {
|
|
|
355
299
|
})
|
|
356
300
|
|
|
357
301
|
|
|
358
|
-
// The bridge that makes the whole design work: resolution is async, the
|
|
359
|
-
// auth header is built synchronously, and entity ops await
|
|
360
|
-
// featureHook('PreSpec') before makeSpec — so that is where the lookup
|
|
361
|
-
// happens and still lands in time.
|
|
362
|
-
//
|
|
363
|
-
// The entity is discovered from the SDK's own config rather than named,
|
|
364
|
-
// because this file is a TEMPLATE: it ships to every project, and no
|
|
365
|
-
// project's entity names are known here.
|
|
366
302
|
test('active: entity ops resolve via the PreSpec hook', async () => {
|
|
367
303
|
process.env[ENVPREFIX + 'APIKEY'] = 'ENVKEY02'
|
|
368
304
|
|
|
@@ -377,18 +313,6 @@ describe('secrets', () => {
|
|
|
377
313
|
// Before any op, nothing has been resolved.
|
|
378
314
|
assert.equal(sdk.options().apikey, '')
|
|
379
315
|
|
|
380
|
-
// AN OP THAT EXISTS, not `list` on whichever entity comes first.
|
|
381
|
-
//
|
|
382
|
-
// A generated TS entity carries only the ops its model DECLARES, so
|
|
383
|
-
// `list` is absent from an entity declaring `create` alone — and
|
|
384
|
-
// calling it throws before the PreSpec hook can run, failing the
|
|
385
|
-
// assertion below for a reason that has nothing to do with secrets.
|
|
386
|
-
// univec-sdk hit exactly that: its first entity declares `create`
|
|
387
|
-
// only, so this test failed on every run while PreSpec worked
|
|
388
|
-
// perfectly. Any real op exercises the hook; `list` is not special.
|
|
389
|
-
//
|
|
390
|
-
// This file is a TEMPLATE, so no project's op names are known here
|
|
391
|
-
// either. Discover the first callable one rather than assuming.
|
|
392
316
|
let ran = false
|
|
393
317
|
for (const one of names) {
|
|
394
318
|
const acc = one.charAt(0).toUpperCase() + one.slice(1)
|
|
@@ -424,17 +348,6 @@ describe('secrets', () => {
|
|
|
424
348
|
})
|
|
425
349
|
|
|
426
350
|
|
|
427
|
-
// ACCESS-TOKEN EXCHANGE.
|
|
428
|
-
//
|
|
429
|
-
// The shape these tests pin: what the chain resolves is a REFRESH token,
|
|
430
|
-
// which is POSTed to a token endpoint for a short-lived ACCESS token; the
|
|
431
|
-
// access token is what the Authorization header carries; and when the API
|
|
432
|
-
// answers 401 the client buys another and tries the same request again,
|
|
433
|
-
// once.
|
|
434
|
-
//
|
|
435
|
-
// A LIVE client throughout, with `system.fetch` stubbed. Test mode is
|
|
436
|
-
// deliberately excluded here — it buys nothing (see SecretsFeature._buy),
|
|
437
|
-
// which is the subject of its own test at the end.
|
|
438
351
|
describe('secrets exchange', () => {
|
|
439
352
|
|
|
440
353
|
const BASE = 'http://exchange.test/api'
|
|
@@ -587,7 +500,6 @@ describe('secrets exchange', () => {
|
|
|
587
500
|
assert.equal(stub.api().length, 2, 'expected the request to be retried')
|
|
588
501
|
|
|
589
502
|
authIs(stub.api()[0], 'ACCESS01')
|
|
590
|
-
// The retry must carry the NEW token, not the spent one.
|
|
591
503
|
authIs(stub.api()[1], 'ACCESS02')
|
|
592
504
|
|
|
593
505
|
assert.equal(res.ok, true, 'the caller sees the successful retry')
|
|
@@ -749,10 +661,6 @@ describe('secrets exchange', () => {
|
|
|
749
661
|
test('auth: null suppresses the credential, refusal or not', async () => {
|
|
750
662
|
process.env[ENVPREFIX + 'REFRESH_TOKEN'] = REFRESH
|
|
751
663
|
|
|
752
|
-
// `auth: null` is the documented way to send no credential at all.
|
|
753
|
-
// A refusal of a deliberately unauthenticated request is not an
|
|
754
|
-
// expired token: buying one and retrying would transmit exactly the
|
|
755
|
-
// credential the caller suppressed.
|
|
756
664
|
const stub = stubfetch({ apiStatus: [401] })
|
|
757
665
|
const sdk = new (SDK as any)({
|
|
758
666
|
base: BASE,
|
|
@@ -774,10 +682,6 @@ describe('secrets exchange', () => {
|
|
|
774
682
|
assert.equal(stub.api()[0].auth, undefined,
|
|
775
683
|
'no credential may be sent when auth is suppressed')
|
|
776
684
|
|
|
777
|
-
// AND NO PURCHASE. This is the half the API-call assertions cannot see:
|
|
778
|
-
// resolve() runs before _withRefresh's suppression check, so the
|
|
779
|
-
// refresh token used to go to the token endpoint in a request body
|
|
780
|
-
// even here. Stopping the retry does not unsend it.
|
|
781
685
|
assert.equal(stub.token().length, 0,
|
|
782
686
|
'auth: null suppressed the credential but the refresh token was ' +
|
|
783
687
|
'still POSTed to the exchange endpoint')
|
|
@@ -787,16 +691,6 @@ describe('secrets exchange', () => {
|
|
|
787
691
|
test('a token another request already bought is spent, not re-bought', async () => {
|
|
788
692
|
process.env[ENVPREFIX + 'REFRESH_TOKEN'] = REFRESH
|
|
789
693
|
|
|
790
|
-
// STAGGERED 401s: the case the shared in-flight purchase does NOT
|
|
791
|
-
// cover. Two requests go out on the same token; the first is refused,
|
|
792
|
-
// buys a new one and clears the shared promise; only then is the
|
|
793
|
-
// second refused. Buying again there is a wasted exchange, and on a
|
|
794
|
-
// provider that invalidates the previous credential on issuance it
|
|
795
|
-
// breaks the first request's own retry.
|
|
796
|
-
//
|
|
797
|
-
// Driven through the transport wrapper directly, because the race is
|
|
798
|
-
// in WHEN the refusal arrives relative to another request's refresh,
|
|
799
|
-
// and that is not something two ordinary calls can be made to stage.
|
|
800
694
|
const stub = stubfetch()
|
|
801
695
|
const sdk = exchangeSdk(stub)
|
|
802
696
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { LiveBlocked } from './live-runner'
|
|
2
2
|
|
|
3
|
-
// Deliberately conservative: unsupported constraints block preparation instead
|
|
4
|
-
// of labelling an invented value as live-valid. Errors never include values.
|
|
5
3
|
export function validateContract(schema: any, value: any, direction = 'request', depth = 0): void {
|
|
6
4
|
const bad = () => { throw new Error('Operation contract mismatch') }
|
|
7
5
|
if (depth > 40 || schema === false) return bad()
|
|
@@ -5,26 +5,26 @@ import { isControlSkipped, liveDelayMs } from './utility'
|
|
|
5
5
|
|
|
6
6
|
// The offline flow keeps its deterministic fixture assertions. Live flows
|
|
7
7
|
// resolve real prerequisites per operation and collect failures until done.
|
|
8
|
-
async function runLiveEntity(setup: any, entity: any, flow: any, accessor: string) {
|
|
8
|
+
async function runLiveEntity(setup: any, entity: any, flow: any, accessor: string, facts: any = {}) {
|
|
9
9
|
const { client, transport } = setup
|
|
10
|
-
const steps: any[] = flow.step || []
|
|
10
|
+
const steps: any[] = (flow.step || []).filter((step: any) => false !== step.a)
|
|
11
11
|
const created = new Map<string, any>()
|
|
12
12
|
const listed: any[] = []
|
|
13
13
|
const marks = new Map<string, { name: string, value: any }>()
|
|
14
14
|
const idField = entity.id?.field || 'id'
|
|
15
15
|
const copy = (value: any) => JSON.parse(JSON.stringify(value ?? {}))
|
|
16
|
-
const hasCreate = steps.some(step => step.
|
|
16
|
+
const hasCreate = steps.some(step => step.o === 'create')
|
|
17
17
|
const report = await runLiveSteps(steps.map((step, index) => {
|
|
18
|
-
const ref = step.
|
|
19
|
-
const op = step.
|
|
18
|
+
const ref = step.i?.ref || entity.name + '_ref01'
|
|
19
|
+
const op = step.o
|
|
20
20
|
const excluded = isControlSkipped('entityOp', entity.name + '.' + op, 'live')
|
|
21
21
|
return {
|
|
22
22
|
id: entity.name + '.' + op + '.' + index,
|
|
23
|
-
cleanup: op === 'remove' || (step.
|
|
23
|
+
cleanup: op === 'remove' || (step.v || []).some((v: any) => v.apply === 'ItemNotExists'),
|
|
24
24
|
excluded: excluded.skip ? excluded.reason || 'Excluded by test control' : undefined,
|
|
25
25
|
run: async (context: any) => {
|
|
26
26
|
transport.enter(context)
|
|
27
|
-
const points = entity.op?.[op]?.points || []
|
|
27
|
+
const points = (entity.op?.[op]?.points || []).filter((point: any) => false !== point.a)
|
|
28
28
|
if (!points.length) throw new LiveBlocked('No modelled operation point')
|
|
29
29
|
const record = created.get(ref)
|
|
30
30
|
// A failed create must not turn a later update/remove into a write
|
|
@@ -41,7 +41,7 @@ async function runLiveEntity(setup: any, entity: any, flow: any, accessor: strin
|
|
|
41
41
|
|
|
42
42
|
let input: any = op === 'create'
|
|
43
43
|
? copy(setup.data.new?.[entity.name]?.[ref]) : {}
|
|
44
|
-
for (const [name, binding] of Object.entries({ ...step.
|
|
44
|
+
for (const [name, binding] of Object.entries({ ...step.m, ...step.d })) {
|
|
45
45
|
const value = setup.idmap[binding as string] ?? setup.idmap[name]
|
|
46
46
|
if (undefined !== value) input[name] = value
|
|
47
47
|
}
|
|
@@ -57,34 +57,34 @@ async function runLiveEntity(setup: any, entity: any, flow: any, accessor: strin
|
|
|
57
57
|
let selected: any
|
|
58
58
|
const missing = new Set<string>()
|
|
59
59
|
for (const point of points) {
|
|
60
|
-
if (point.
|
|
60
|
+
if (point.q?.$action !== input.$action) continue
|
|
61
61
|
const candidate = { ...input }
|
|
62
62
|
let viable = true
|
|
63
|
-
const params = point.
|
|
64
|
-
const query = (point.
|
|
63
|
+
const params = point.g?.params || []
|
|
64
|
+
const query = (point.g?.query || []).filter((arg: any) => arg.r)
|
|
65
65
|
for (const arg of [...params, ...query]) {
|
|
66
|
-
if (undefined !== candidate[arg.
|
|
67
|
-
const key = arg.
|
|
68
|
-
const value = setup.idmap[key] ?? setup.idmap[arg.
|
|
69
|
-
if (undefined !== value && null !== value) candidate[arg.
|
|
70
|
-
else if (arg.
|
|
66
|
+
if (undefined !== candidate[arg.n] && null !== candidate[arg.n]) continue
|
|
67
|
+
const key = arg.n === 'id' ? entity.name + '01' : arg.n.replace(/_id$/, '') + '01'
|
|
68
|
+
const value = setup.idmap[key] ?? setup.idmap[arg.n] ?? loaded?.[arg.n] ?? arg.ex
|
|
69
|
+
if (undefined !== value && null !== value) candidate[arg.n] = value
|
|
70
|
+
else if (arg.r !== false) { viable = false; missing.add(arg.n) }
|
|
71
71
|
}
|
|
72
72
|
if (viable) { resolved = candidate; selected = point; break }
|
|
73
73
|
}
|
|
74
74
|
if (!resolved) throw new LiveBlocked('No usable route; missing arguments: ' + [...missing].join(', '))
|
|
75
75
|
input = resolved
|
|
76
|
-
if (op === 'create' && selected.
|
|
77
|
-
const
|
|
78
|
-
const request = requestContract(
|
|
79
|
-
if (request.schema) input = { ...synthesizeInput(request.schema,
|
|
80
|
-
else if (
|
|
81
|
-
for (const arg of selected.
|
|
76
|
+
if (op === 'create' && facts[selected.m + ' ' + selected.o]) {
|
|
77
|
+
const selectedFacts = facts[selected.m + ' ' + selected.o]
|
|
78
|
+
const request = requestContract(selectedFacts)
|
|
79
|
+
if (request.schema) input = { ...synthesizeInput(request.schema, selected.li?.input ?? request.example) }
|
|
80
|
+
else if (selectedFacts.protocol === 'http') input = {}
|
|
81
|
+
for (const arg of selected.g?.params || []) if (resolved[arg.n] !== undefined) input[arg.n] = resolved[arg.n]
|
|
82
82
|
}
|
|
83
83
|
let intendedMark: { name: string, value: any } | undefined
|
|
84
84
|
if (op === 'update') {
|
|
85
|
-
for (const spec of step.
|
|
86
|
-
if (spec.apply === 'TextFieldMark' && step.
|
|
87
|
-
const mark = { name: step.
|
|
85
|
+
for (const spec of step.s || []) {
|
|
86
|
+
if (spec.apply === 'TextFieldMark' && step.i?.textfield) {
|
|
87
|
+
const mark = { name: step.i.textfield, value: spec.def.mark + '_' + setup.now }
|
|
88
88
|
input[mark.name] = mark.value
|
|
89
89
|
intendedMark = mark
|
|
90
90
|
}
|
|
@@ -103,7 +103,7 @@ async function runLiveEntity(setup: any, entity: any, flow: any, accessor: strin
|
|
|
103
103
|
})
|
|
104
104
|
listed.splice(0, listed.length, ...data)
|
|
105
105
|
context.publish(data)
|
|
106
|
-
for (const validation of step.
|
|
106
|
+
for (const validation of step.v || []) {
|
|
107
107
|
const previous = created.get(validation.def?.ref)
|
|
108
108
|
const id = previous?.[idField] ?? previous?.id
|
|
109
109
|
if (undefined === id) continue
|
|
@@ -52,9 +52,9 @@ export async function runLiveScenarios(SDK: any, plan: any[], envPrefix: string,
|
|
|
52
52
|
const explicit = hint.input === undefined ? request.example : resolveRecipe(hint.input, ctx.values)
|
|
53
53
|
let input = request.schema ? synthesizeInput(request.schema, explicit) : explicit ?? {}
|
|
54
54
|
for (const kind of ['params', 'query', 'header', 'cookie']) for (const arg of point.args?.[kind] || []) {
|
|
55
|
-
if (arg.
|
|
56
|
-
if (arg.
|
|
57
|
-
input[arg.
|
|
55
|
+
if (arg.r && input[arg.n] === undefined) {
|
|
56
|
+
if (arg.ex === undefined) throw new LiveBlocked('Missing required argument: ' + arg.n)
|
|
57
|
+
input[arg.n] = arg.ex
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
const role = hint.auth || (point.facts.security?.length === 0 || point.facts.securitySource === 'unspecified' ? 'public' : 'account')
|
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
// The corpus test runner: vendored @voxgig/omni driven through its NATIVE
|
|
2
|
-
// API (`makeRunner(specref, provider)`), presented to the corpus tests in
|
|
3
|
-
// the struct-runner shape they already use (`R.spec`, `R.runset`,
|
|
4
|
-
// `R.runsetflags`, `R.client`). No compat shim is vendored: the adapter
|
|
5
|
-
// below IS the whole bridge, per language, per the vendor-tag rollout
|
|
6
|
-
// (docs/design/vendor-tag-rollout.md, Decision 4).
|
|
7
|
-
//
|
|
8
|
-
// Two local decisions, both required:
|
|
9
|
-
//
|
|
10
|
-
// 1. SPEC PATH. omni's own spec resolution expects the caller to hand it a
|
|
11
|
-
// usable path — its docs say a port must resolve the path itself. This
|
|
12
|
-
// module compiles to dist-test/omni.js, the same depth as the old
|
|
13
|
-
// dist-test/runner.js, so the existing TEST_JSON_FILE constant keeps
|
|
14
|
-
// working verbatim: a relative path is absolutized against __dirname.
|
|
15
|
-
//
|
|
16
|
-
// 2. PROVIDER DELEGATION. Corpus-driven contexts get `ctx.client` set to
|
|
17
|
-
// the runner's provider (omni overwrites it on any ctx/args map entry).
|
|
18
|
-
// A five-hook provider object HIDES the live SDK from the generated
|
|
19
|
-
// utilities that reach through it — prepareHeaders via client.options(),
|
|
20
|
-
// fetcher via client._mode, the feature helpers via client._rootctx and
|
|
21
|
-
// even ASSIGNING client._features. So the provider here is built by
|
|
22
|
-
// PROTOTYPE DELEGATION over the live SDK instance: every SDK member
|
|
23
|
-
// resolves, while the omni hooks sit on top. (Upstream omni#56 tracks
|
|
24
|
-
// giving the stock provider the same shape.)
|
|
25
1
|
|
|
26
2
|
import { isAbsolute, join } from 'node:path'
|
|
27
3
|
|
|
@@ -37,8 +13,6 @@ import {
|
|
|
37
13
|
import type { Json, Provider, Subject } from './vendor/omni/index'
|
|
38
14
|
|
|
39
15
|
|
|
40
|
-
// The runner API the corpus tests consume — struct's runner shape, name
|
|
41
|
-
// for name, served over native omni.
|
|
42
16
|
export type StructSubject = (...args: any[]) => any
|
|
43
17
|
export type StructRunSet = (testspec: any, testsubject?: StructSubject) => Promise<void>
|
|
44
18
|
export type StructRunSetFlags = (
|
|
@@ -67,11 +41,8 @@ export type StructProvider = Provider & {
|
|
|
67
41
|
}
|
|
68
42
|
|
|
69
43
|
|
|
70
|
-
// The omni hooks for an SDK subject — what the retired compat shim called
|
|
71
|
-
// `structprovider`, inlined here because this resolver is the one consumer.
|
|
72
44
|
function sdkhooks(sdk: any) {
|
|
73
45
|
return {
|
|
74
|
-
// A subject is resolved from the utility, or from utility.struct.
|
|
75
46
|
subject: (name: string): Subject | undefined => {
|
|
76
47
|
const utility = sdk.utility()
|
|
77
48
|
return utility[name] || (utility.struct && utility.struct[name])
|
|
@@ -81,7 +52,6 @@ function sdkhooks(sdk: any) {
|
|
|
81
52
|
// same delegating shape, not a plain hook object.
|
|
82
53
|
client: async (options: Json) => sdkprovider(await sdk.tester(options)),
|
|
83
54
|
|
|
84
|
-
// The SDK supplies its own context wrapper.
|
|
85
55
|
contextify: (val: Json): Json => {
|
|
86
56
|
const utility = sdk.utility()
|
|
87
57
|
const hook =
|
|
@@ -95,7 +65,6 @@ function sdkhooks(sdk: any) {
|
|
|
95
65
|
return ctx
|
|
96
66
|
},
|
|
97
67
|
|
|
98
|
-
// Client options may reference the runner store.
|
|
99
68
|
inject: (options: Json, store: Json): Json => {
|
|
100
69
|
const structutils = sdk.utility().struct
|
|
101
70
|
if (structutils && 'function' === typeof structutils.inject) {
|
|
@@ -144,7 +113,6 @@ async function makeRunner(testfile: string | Json, client: any): Promise<StructR
|
|
|
144
113
|
}
|
|
145
114
|
|
|
146
115
|
|
|
147
|
-
// struct's flag-modifier name, served from native omni.
|
|
148
116
|
const nullModifier = nullmodifier
|
|
149
117
|
|
|
150
118
|
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
// Direct unit tests for the operation-pipeline utilities. The generated
|
|
3
|
-
// entity tests exercise the happy path; these drive the error and edge
|
|
4
|
-
// branches (missing spec/response/result, 4xx handling, transport
|
|
5
|
-
// failures, feature ordering, auth header shaping) that a normal
|
|
6
|
-
// success-path op never reaches. All utilities are reached through
|
|
7
|
-
// `stdutil`, so this suite is API-agnostic.
|
|
8
2
|
|
|
9
3
|
import { test, describe } from 'node:test'
|
|
10
4
|
import { strictEqual, ok, deepStrictEqual } from 'node:assert'
|
|
@@ -325,43 +319,66 @@ describe('pipeline:feature order', () => {
|
|
|
325
319
|
|
|
326
320
|
describe('pipeline:prepareAuth', () => {
|
|
327
321
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
322
|
+
function authCtx(options: any, spec: any) {
|
|
323
|
+
return base({ client: { options: () => options }, spec })
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
function bags(): any {
|
|
327
|
+
return { headers: {} as any, query: {} as any }
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// Run prepareAuth with both containers present and see which one the
|
|
331
|
+
// generated utility writes to, and under what name. Null means this SDK
|
|
332
|
+
// places no credential at all — a public API — which is a legitimate
|
|
333
|
+
// shape, and the tests below assert exactly that instead.
|
|
334
|
+
const CRED = (() => {
|
|
335
|
+
const ctx = authCtx({ apikey: 'K', auth: { prefix: 'Bearer' } }, bags())
|
|
336
|
+
;(stdutil as any).prepareAuth(ctx)
|
|
337
|
+
for (const where of ['headers', 'query'] as const) {
|
|
338
|
+
const name = Object.keys(ctx.spec[where] as any)[0]
|
|
339
|
+
if (null != name) return { where, name, value: ctx.spec[where][name] }
|
|
340
|
+
}
|
|
341
|
+
return null
|
|
342
|
+
})()
|
|
343
|
+
|
|
344
|
+
function placed(options: any, seed?: any) {
|
|
345
|
+
const spec: any = bags()
|
|
346
|
+
if (null != CRED && null != seed) spec[CRED.where][CRED.name] = seed
|
|
347
|
+
const ctx = authCtx(options, spec)
|
|
348
|
+
;(stdutil as any).prepareAuth(ctx)
|
|
349
|
+
return null == CRED ? undefined : ctx.spec[CRED.where][CRED.name]
|
|
331
350
|
}
|
|
332
351
|
|
|
333
352
|
test('guards a missing spec', () => {
|
|
334
353
|
strictEqual((stdutil as any).prepareAuth(authCtx({ auth: { prefix: '' }, apikey: 'K' }, null)).code, 'auth_no_spec')
|
|
335
354
|
})
|
|
336
355
|
|
|
337
|
-
test('
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
356
|
+
test('the apikey is placed where this API puts it', () => {
|
|
357
|
+
if (null == CRED) {
|
|
358
|
+
// A public API places nothing, and that is the whole assertion.
|
|
359
|
+
strictEqual(placed({ apikey: 'K', auth: { prefix: 'Bearer' } }), undefined)
|
|
360
|
+
return
|
|
361
|
+
}
|
|
362
|
+
ok('headers' === CRED.where || 'query' === CRED.where)
|
|
363
|
+
// A header credential is prefix-joined; a query credential is the raw
|
|
364
|
+
// key, because a query parameter has nowhere to put a scheme name.
|
|
365
|
+
strictEqual(CRED.value, 'headers' === CRED.where ? 'Bearer K' : 'K')
|
|
341
366
|
})
|
|
342
367
|
|
|
343
368
|
test('a raw apikey (empty prefix) goes in as-is', () => {
|
|
344
|
-
|
|
345
|
-
;(stdutil as any).prepareAuth(ctx)
|
|
346
|
-
strictEqual(ctx.spec.headers.authorization, 'K')
|
|
369
|
+
strictEqual(placed({ apikey: 'K', auth: { prefix: '' } }), null == CRED ? undefined : 'K')
|
|
347
370
|
})
|
|
348
371
|
|
|
349
|
-
test('an empty apikey drops the
|
|
350
|
-
|
|
351
|
-
;(stdutil as any).prepareAuth(ctx)
|
|
352
|
-
strictEqual(ctx.spec.headers.authorization, undefined)
|
|
372
|
+
test('an empty apikey drops the credential', () => {
|
|
373
|
+
strictEqual(placed({ apikey: '', auth: { prefix: 'Bearer' } }, 'stale'), undefined)
|
|
353
374
|
})
|
|
354
375
|
|
|
355
|
-
test('a public API (no auth block) drops the
|
|
356
|
-
|
|
357
|
-
;(stdutil as any).prepareAuth(ctx)
|
|
358
|
-
strictEqual(ctx.spec.headers.authorization, undefined)
|
|
376
|
+
test('a public API (no auth block) drops the credential', () => {
|
|
377
|
+
strictEqual(placed({ apikey: 'K' }, 'stale'), undefined)
|
|
359
378
|
})
|
|
360
379
|
|
|
361
|
-
test('a missing apikey option drops the
|
|
362
|
-
|
|
363
|
-
;(stdutil as any).prepareAuth(ctx)
|
|
364
|
-
strictEqual(ctx.spec.headers.authorization, undefined)
|
|
380
|
+
test('a missing apikey option drops the credential', () => {
|
|
381
|
+
strictEqual(placed({ auth: { prefix: 'Bearer' } }, 'stale'), undefined)
|
|
365
382
|
})
|
|
366
383
|
})
|
|
367
384
|
|
|
@@ -6,19 +6,6 @@ import { join } from 'node:path'
|
|
|
6
6
|
import { TEST_JSON_FILE } from './index'
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
// Guards the shared corpus AS A WHOLE, which the per-section guard in the
|
|
10
|
-
// language runners cannot do.
|
|
11
|
-
//
|
|
12
|
-
// That guard only fires for a section some test actually runs. Seven sections
|
|
13
|
-
// — fetcher, makeFetchDef, makePoint, makeResult, featureAdd, featureHook and
|
|
14
|
-
// featureInit — had no test calling them at all, so they sat at `set: []`
|
|
15
|
-
// through two reviews reporting nothing. A fixture nobody runs is
|
|
16
|
-
// indistinguishable from a fixture that passes.
|
|
17
|
-
//
|
|
18
|
-
// Deferral is therefore DATA (`basic.pending`), not a comment: comments do not
|
|
19
|
-
// survive compilation to test.json, so a marker written only in the .aon
|
|
20
|
-
// source cannot be checked by the thing that consumes it. Being data, these
|
|
21
|
-
// invariants hold for every port, not just this one.
|
|
22
9
|
describe('Corpus', () => {
|
|
23
10
|
|
|
24
11
|
// Resolved the same way runner.ts resolves it — from dist-test/, one level
|
|
@@ -31,23 +31,11 @@ describe('PrimaryUtility', async () => {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
// Sections deliberately left empty in the shared corpus
|
|
35
|
-
// (.sdk/test/primary/<name>.aon carries a PENDING header). Everything
|
|
36
|
-
// else MUST contribute cases.
|
|
37
34
|
const PENDING = new Set([
|
|
38
35
|
'fetcher', 'makeFetchDef', 'makeResult',
|
|
39
36
|
'featureAdd', 'featureHook', 'featureInit',
|
|
40
37
|
])
|
|
41
38
|
|
|
42
|
-
// Run one corpus section, failing loudly when it would run ZERO cases.
|
|
43
|
-
// A renamed section or a fixture that compiled to an empty `set` used to
|
|
44
|
-
// pass silently, which defeats the point of a shared oracle. (The guard
|
|
45
|
-
// lives here rather than in runner.ts, which is vendored verbatim from
|
|
46
|
-
// @voxgig/struct and must stay byte-identical to upstream.)
|
|
47
|
-
//
|
|
48
|
-
// EVERY corpus-backed test goes through here — a guard that only some
|
|
49
|
-
// sections opt into leaves the rest able to run zero assertions, which is
|
|
50
|
-
// the exact hole it was added to close.
|
|
51
39
|
async function runsection(name: string, subject: Function) {
|
|
52
40
|
const section = spec[name]
|
|
53
41
|
ok(null != section,
|
|
@@ -70,10 +58,6 @@ describe('PrimaryUtility', async () => {
|
|
|
70
58
|
spec = run.spec
|
|
71
59
|
runset = run.runset
|
|
72
60
|
runsetflags = run.runsetflags
|
|
73
|
-
// Under the old hand-vendored runner, run.client WAS the SDK; under
|
|
74
|
-
// omni it is the provider wrapping it. This suite treats the client as
|
|
75
|
-
// the SDK — including ASSIGNING to client._features, which prototype
|
|
76
|
-
// delegation cannot forward — so unwrap the real instance.
|
|
77
61
|
client = (run.client as any).sdk
|
|
78
62
|
utility = client.utility()
|
|
79
63
|
struct = utility.struct
|
|
@@ -111,14 +95,65 @@ describe('PrimaryUtility', async () => {
|
|
|
111
95
|
})
|
|
112
96
|
|
|
113
97
|
|
|
98
|
+
function credential() {
|
|
99
|
+
const ctx: any = {
|
|
100
|
+
utility,
|
|
101
|
+
client: { options: () => ({ apikey: 'PROBE', auth: { prefix: '' } }) },
|
|
102
|
+
spec: { headers: {}, query: {} },
|
|
103
|
+
error: (code: string, msg: string) => Object.assign(new Error(msg), { code }),
|
|
104
|
+
}
|
|
105
|
+
try { utility.prepareAuth(ctx) } catch (e) { return null }
|
|
106
|
+
for (const where of ['headers', 'query']) {
|
|
107
|
+
const name = Object.keys(ctx.spec[where] || {})[0]
|
|
108
|
+
if (null != name) return { where, name }
|
|
109
|
+
}
|
|
110
|
+
return null
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Rename the corpus's `headers` bag to the real container, and the
|
|
114
|
+
// `authorization` key inside it to the real credential name. Applied only
|
|
115
|
+
// to the prepareAuth section, so real header assertions elsewhere are
|
|
116
|
+
// untouched.
|
|
117
|
+
function retarget(node: any, cred: { where: string, name: string }): any {
|
|
118
|
+
if (null == node || 'object' !== typeof node) return node
|
|
119
|
+
if (Array.isArray(node)) return node.map((n) => retarget(n, cred))
|
|
120
|
+
const out: any = {}
|
|
121
|
+
for (const key of Object.keys(node)) {
|
|
122
|
+
if ('headers' === key) {
|
|
123
|
+
const bag: any = {}
|
|
124
|
+
for (const bk of Object.keys(node[key] || {})) {
|
|
125
|
+
bag['authorization' === bk ? cred.name : bk] = retarget(node[key][bk], cred)
|
|
126
|
+
}
|
|
127
|
+
out[cred.where] = bag
|
|
128
|
+
}
|
|
129
|
+
else out[key] = retarget(node[key], cred)
|
|
130
|
+
}
|
|
131
|
+
return out
|
|
132
|
+
}
|
|
133
|
+
|
|
114
134
|
test('auth-basic', async () => {
|
|
115
135
|
const sdkopts = spec.prepareAuth?.DEF?.setup?.a || {}
|
|
116
136
|
const authClient = SDK.test({}, sdkopts)
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
137
|
+
|
|
138
|
+
const cred = credential()
|
|
139
|
+
ok(null != cred, 'prepareAuth placed no credential in headers or query')
|
|
140
|
+
|
|
141
|
+
const section = spec.prepareAuth
|
|
142
|
+
const original = section.basic
|
|
143
|
+
if ('headers' !== cred!.where || 'authorization' !== cred!.name) {
|
|
144
|
+
section.basic = retarget(original, cred!)
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
try {
|
|
148
|
+
await runsection('prepareAuth', (ctx: any) => {
|
|
149
|
+
ctx.client = authClient
|
|
150
|
+
fixctx(ctx)
|
|
151
|
+
return utility.prepareAuth(ctx)
|
|
152
|
+
})
|
|
153
|
+
}
|
|
154
|
+
finally {
|
|
155
|
+
section.basic = original
|
|
156
|
+
}
|
|
122
157
|
})
|
|
123
158
|
|
|
124
159
|
|
|
@@ -233,7 +268,6 @@ describe('PrimaryUtility', async () => {
|
|
|
233
268
|
body: 'present',
|
|
234
269
|
})
|
|
235
270
|
const reqClient = new (SDK as any)({
|
|
236
|
-
// Concrete base: a live construction must satisfy any server variables a templated base URL declares; a literal base sidesteps the requirement.
|
|
237
271
|
base: 'http://localhost:8080',
|
|
238
272
|
system: { fetch: mockFetch }
|
|
239
273
|
})
|
|
@@ -283,13 +317,6 @@ describe('PrimaryUtility', async () => {
|
|
|
283
317
|
})
|
|
284
318
|
|
|
285
319
|
|
|
286
|
-
// Was one hand-written case (the single-point path) covering one of this
|
|
287
|
-
// utility's seven branches, which is how the corpus fixture came to be
|
|
288
|
-
// marked deferred as "needs a real client". It does not: Context rebuilds
|
|
289
|
-
// `op` from opname + entity + config, and `options` can be supplied
|
|
290
|
-
// literally, so allow.op, the empty-points error, exist-selection,
|
|
291
|
-
// $action selection and the invalid-$action error are all expressible.
|
|
292
|
-
// Driven from the corpus now, so every port asserts the same branches.
|
|
293
320
|
test('makePoint-basic', async () => {
|
|
294
321
|
await runsection('makePoint', utility.makePoint)
|
|
295
322
|
})
|
|
@@ -315,12 +315,6 @@ describe('struct', async () => {
|
|
|
315
315
|
})
|
|
316
316
|
|
|
317
317
|
|
|
318
|
-
// The struct.nullsem section: does a PRESENT key holding a JSON null
|
|
319
|
-
// read as "no value"? Opt-in per target (create-sdkgen ships it; an
|
|
320
|
-
// older project corpus may predate it - the skip below says so OUT
|
|
321
|
-
// LOUD rather than passing vacuously). All lanes run {null: false}:
|
|
322
|
-
// without the flag the runner rewrites every null to '__NULL__' and
|
|
323
|
-
// the section asserts nothing about null at all.
|
|
324
318
|
test('nullsem', async (t) => {
|
|
325
319
|
const nullsem = spec.nullsem
|
|
326
320
|
if (null == nullsem) {
|
|
@@ -822,7 +816,6 @@ describe('struct', async () => {
|
|
|
822
816
|
const extra = {
|
|
823
817
|
$INTEGER: (inj: any) => {
|
|
824
818
|
const { key } = inj
|
|
825
|
-
// let out = getprop(current, key)
|
|
826
819
|
let out = struct.getprop(inj.dparent, key)
|
|
827
820
|
|
|
828
821
|
let t = typeof out
|