@voxgig/sdkgen 4.34.0 → 4.34.1
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/copies.d.ts +4 -3
- package/dist/action/copies.js +142 -45
- package/dist/action/copies.js.map +1 -1
- package/dist/action/doctor.d.ts +1 -0
- package/dist/action/doctor.js +6 -2
- package/dist/action/doctor.js.map +1 -1
- package/dist/action/package.d.ts +3 -1
- package/dist/action/package.js +12 -5
- package/dist/action/package.js.map +1 -1
- package/dist/action/resolve.d.ts +11 -2
- package/dist/action/resolve.js +27 -0
- package/dist/action/resolve.js.map +1 -1
- package/dist/admin/npm-trust.js +7 -7
- package/dist/admin/npm-trust.js.map +1 -1
- package/dist/cmp/AgentGuide.js +4 -3
- package/dist/cmp/AgentGuide.js.map +1 -1
- package/dist/cmp/AgentGuideFeature.js +3 -2
- package/dist/cmp/AgentGuideFeature.js.map +1 -1
- package/dist/cmp/AgentGuideTop.js +2 -1
- package/dist/cmp/AgentGuideTop.js.map +1 -1
- package/dist/cmp/Changelog.js +2 -1
- package/dist/cmp/Changelog.js.map +1 -1
- package/dist/cmp/Deploy.js +2 -1
- package/dist/cmp/Deploy.js.map +1 -1
- package/dist/cmp/Entity.js +2 -2
- package/dist/cmp/Entity.js.map +1 -1
- package/dist/cmp/ExternalTarget.js +2 -1
- package/dist/cmp/ExternalTarget.js.map +1 -1
- package/dist/cmp/Feature.js +2 -1
- package/dist/cmp/Feature.js.map +1 -1
- package/dist/cmp/FeatureHook.js +2 -1
- package/dist/cmp/FeatureHook.js.map +1 -1
- package/dist/cmp/License.js +6 -4
- package/dist/cmp/License.js.map +1 -1
- package/dist/cmp/Main.js +2 -2
- package/dist/cmp/Main.js.map +1 -1
- package/dist/cmp/PublishWorkflow.js +2 -1
- package/dist/cmp/PublishWorkflow.js.map +1 -1
- package/dist/cmp/Readme.js +2 -1
- package/dist/cmp/Readme.js.map +1 -1
- package/dist/cmp/ReadmeEntity.js +4 -4
- package/dist/cmp/ReadmeEntity.js.map +1 -1
- package/dist/cmp/ReadmeErrors.js +6 -4
- package/dist/cmp/ReadmeErrors.js.map +1 -1
- package/dist/cmp/ReadmeExplanation.js +4 -3
- package/dist/cmp/ReadmeExplanation.js.map +1 -1
- package/dist/cmp/ReadmeFeatures.js +4 -3
- package/dist/cmp/ReadmeFeatures.js.map +1 -1
- package/dist/cmp/ReadmeHowto.js +4 -3
- package/dist/cmp/ReadmeHowto.js.map +1 -1
- package/dist/cmp/ReadmeInstall.js +4 -3
- package/dist/cmp/ReadmeInstall.js.map +1 -1
- package/dist/cmp/ReadmeIntro.js +4 -4
- package/dist/cmp/ReadmeIntro.js.map +1 -1
- package/dist/cmp/ReadmeModel.js +6 -3
- package/dist/cmp/ReadmeModel.js.map +1 -1
- package/dist/cmp/ReadmeOptions.js +4 -4
- package/dist/cmp/ReadmeOptions.js.map +1 -1
- package/dist/cmp/ReadmeQuick.js +4 -3
- package/dist/cmp/ReadmeQuick.js.map +1 -1
- package/dist/cmp/ReadmeRef.js +4 -4
- package/dist/cmp/ReadmeRef.js.map +1 -1
- package/dist/cmp/ReadmeRefFeatures.js +2 -1
- package/dist/cmp/ReadmeRefFeatures.js.map +1 -1
- package/dist/cmp/ReadmeStation.js +2 -1
- package/dist/cmp/ReadmeStation.js.map +1 -1
- package/dist/cmp/ReadmeTop.js +104 -35
- package/dist/cmp/ReadmeTop.js.map +1 -1
- package/dist/cmp/ReadmeUnions.js +2 -1
- package/dist/cmp/ReadmeUnions.js.map +1 -1
- package/dist/cmp/Registered.js +4 -3
- package/dist/cmp/Registered.js.map +1 -1
- package/dist/cmp/Security.js +10 -6
- package/dist/cmp/Security.js.map +1 -1
- package/dist/cmp/Test.js +2 -1
- package/dist/cmp/Test.js.map +1 -1
- package/dist/cmp/TestControl.js +2 -1
- package/dist/cmp/TestControl.js.map +1 -1
- package/dist/helpers/component.d.ts +4 -0
- package/dist/helpers/component.js +54 -0
- package/dist/helpers/component.js.map +1 -0
- package/dist/helpers/definition.js +2 -2
- package/dist/helpers/definition.js.map +1 -1
- package/dist/helpers/definitionPlan.d.ts +16 -0
- package/dist/helpers/definitionPlan.js +116 -12
- package/dist/helpers/definitionPlan.js.map +1 -1
- package/dist/helpers/featureSource.d.ts +2 -1
- package/dist/helpers/featureSource.js +44 -2
- package/dist/helpers/featureSource.js.map +1 -1
- package/dist/helpers/flowGuard.d.ts +8 -0
- package/dist/helpers/flowGuard.js +84 -0
- package/dist/helpers/flowGuard.js.map +1 -0
- package/dist/helpers/generated.d.ts +26 -0
- package/dist/helpers/generated.js +363 -0
- package/dist/helpers/generated.js.map +1 -0
- package/dist/helpers/mcpTools.d.ts +11 -0
- package/dist/helpers/mcpTools.js +28 -0
- package/dist/helpers/mcpTools.js.map +1 -0
- package/dist/helpers/media.d.ts +9 -0
- package/dist/helpers/media.js +61 -0
- package/dist/helpers/media.js.map +1 -0
- package/dist/helpers/modelNames.js +147 -14
- package/dist/helpers/modelNames.js.map +1 -1
- package/dist/helpers/naming.d.ts +11 -1
- package/dist/helpers/naming.js +143 -0
- package/dist/helpers/naming.js.map +1 -1
- package/dist/helpers/npm.d.ts +13 -0
- package/dist/helpers/npm.js +41 -0
- package/dist/helpers/npm.js.map +1 -0
- package/dist/helpers/npmScripts.d.ts +4 -0
- package/dist/helpers/npmScripts.js +30 -0
- package/dist/helpers/npmScripts.js.map +1 -0
- package/dist/helpers/opExample.d.ts +5 -4
- package/dist/helpers/opExample.js +10 -7
- package/dist/helpers/opExample.js.map +1 -1
- package/dist/helpers/opShape.d.ts +20 -4
- package/dist/helpers/opShape.js +197 -30
- package/dist/helpers/opShape.js.map +1 -1
- package/dist/helpers/optional.d.ts +20 -0
- package/dist/helpers/optional.js +51 -0
- package/dist/helpers/optional.js.map +1 -0
- package/dist/helpers/packageMeta.d.ts +9 -1
- package/dist/helpers/packageMeta.js +70 -11
- package/dist/helpers/packageMeta.js.map +1 -1
- package/dist/helpers/stdrep.js +3 -0
- package/dist/helpers/stdrep.js.map +1 -1
- package/dist/helpers/testPolicy.d.ts +9 -1
- package/dist/helpers/testPolicy.js +48 -0
- package/dist/helpers/testPolicy.js.map +1 -1
- package/dist/helpers/text.d.ts +2 -0
- package/dist/helpers/text.js +27 -0
- package/dist/helpers/text.js.map +1 -0
- package/dist/sdkgen.d.ts +15 -8
- package/dist/sdkgen.js +79 -12
- package/dist/sdkgen.js.map +1 -1
- package/dist/testkit.js +2 -1
- package/dist/testkit.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utility.d.ts +2 -1
- package/dist/utility.js +33 -18
- package/dist/utility.js.map +1 -1
- package/model/sdkgen.aontu +24 -1
- package/package.json +8 -2
- package/project/.sdk/model/feature/timeout.aontu +2 -0
- package/project/.sdk/model/target/go-mcp.aontu +2 -0
- package/project/.sdk/src/cmp/c/Config_c.ts +5 -0
- package/project/.sdk/src/cmp/c/EntityTypes_c.ts +1 -1
- package/project/.sdk/src/cmp/c/Entity_c.ts +1 -1
- package/project/.sdk/src/cmp/c/Main_c.ts +4 -20
- package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +169 -51
- package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +22 -13
- package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +10 -5
- package/project/.sdk/src/cmp/c/ReadmeInstall_c.ts +2 -2
- package/project/.sdk/src/cmp/c/ReadmeIntro_c.ts +3 -3
- package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +11 -10
- package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +37 -20
- package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +39 -21
- package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +9 -7
- package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +15 -4
- package/project/.sdk/src/cmp/c/TestClean_c.ts +56 -22
- package/project/.sdk/src/cmp/c/TestDirect_c.ts +2 -2
- package/project/.sdk/src/cmp/c/TestEntity_c.ts +77 -4
- package/project/.sdk/src/cmp/c/fragment/Entity.fragment.c +33 -27
- package/project/.sdk/src/cmp/c/fragment/EntityPatchOp.fragment.c +36 -0
- package/project/.sdk/src/cmp/c/fragment/Main.fragment.c +40 -7
- package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +1 -1
- package/project/.sdk/src/cmp/clojure/Main_clojure.ts +3 -1
- package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +44 -28
- package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +7 -4
- package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +1 -1
- package/project/.sdk/src/cmp/clojure/ReadmeInstall_clojure.ts +3 -3
- package/project/.sdk/src/cmp/clojure/ReadmeIntro_clojure.ts +3 -3
- package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +7 -5
- package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +12 -4
- package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +24 -7
- package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +2 -2
- package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +1 -1
- package/project/.sdk/src/cmp/clojure/TestClean_clojure.ts +53 -23
- package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +64 -5
- package/project/.sdk/src/cmp/clojure/fragment/Entity.fragment.clj +22 -11
- package/project/.sdk/src/cmp/clojure/fragment/EntityListOp.fragment.clj +7 -9
- package/project/.sdk/src/cmp/clojure/fragment/EntityPatchOp.fragment.clj +15 -0
- package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +1 -1
- package/project/.sdk/src/cmp/cpp/Entity_cpp.ts +2 -2
- package/project/.sdk/src/cmp/cpp/Main_cpp.ts +3 -19
- package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +38 -39
- package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +19 -12
- package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +11 -6
- package/project/.sdk/src/cmp/cpp/ReadmeInstall_cpp.ts +2 -2
- package/project/.sdk/src/cmp/cpp/ReadmeIntro_cpp.ts +3 -3
- package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +10 -9
- package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +26 -18
- package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +42 -25
- package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +7 -7
- package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +11 -4
- package/project/.sdk/src/cmp/cpp/TestClean_cpp.ts +69 -21
- package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +135 -6
- package/project/.sdk/src/cmp/cpp/fragment/Entity.fragment.cpp +2 -0
- package/project/.sdk/src/cmp/cpp/fragment/EntityPatchOp.fragment.cpp +28 -0
- package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/Main_csharp.ts +3 -1
- package/project/.sdk/src/cmp/csharp/Package_csharp.ts +4 -1
- package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +69 -23
- package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +7 -4
- package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/ReadmeInstall_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/ReadmeIntro_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +11 -9
- package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +17 -6
- package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +33 -16
- package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/TestClean_csharp.ts +67 -14
- package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +43 -31
- package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +187 -15
- package/project/.sdk/src/cmp/csharp/fragment/Entity.fragment.cs +2 -0
- package/project/.sdk/src/cmp/csharp/fragment/EntityBase.fragment.cs +11 -2
- package/project/.sdk/src/cmp/csharp/fragment/EntityPatchOp.fragment.cs +41 -0
- package/project/.sdk/src/cmp/csharp/fragment/Main.fragment.cs +28 -4
- package/project/.sdk/src/cmp/csharp/utility_csharp.ts +6 -0
- package/project/.sdk/src/cmp/elixir/EntityOperation_elixir.ts +5 -0
- package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +3 -3
- package/project/.sdk/src/cmp/elixir/Entity_elixir.ts +22 -1
- package/project/.sdk/src/cmp/elixir/MainEntity_elixir.ts +4 -2
- package/project/.sdk/src/cmp/elixir/Main_elixir.ts +6 -2
- package/project/.sdk/src/cmp/elixir/Package_elixir.ts +7 -0
- package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +40 -30
- package/project/.sdk/src/cmp/elixir/ReadmeEntity_elixir.ts +13 -9
- package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +6 -5
- package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +2 -2
- package/project/.sdk/src/cmp/elixir/ReadmeIntro_elixir.ts +4 -4
- package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +13 -11
- package/project/.sdk/src/cmp/elixir/ReadmeQuick_elixir.ts +25 -12
- package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +29 -13
- package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +5 -4
- package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +5 -4
- package/project/.sdk/src/cmp/elixir/TestClean_elixir.ts +41 -12
- package/project/.sdk/src/cmp/elixir/TestEntity_elixir.ts +152 -23
- package/project/.sdk/src/cmp/elixir/fragment/Entity.fragment.ex +4 -4
- package/project/.sdk/src/cmp/elixir/fragment/EntityPatchOp.fragment.ex +35 -0
- package/project/.sdk/src/cmp/elixir/fragment/Main.fragment.ex +29 -5
- package/project/.sdk/src/cmp/elixir/fragment/Pipeline.fragment.ex +23 -16
- package/project/.sdk/src/cmp/go/EntityTypes_go.ts +1 -1
- package/project/.sdk/src/cmp/go/Entity_go.ts +1 -1
- package/project/.sdk/src/cmp/go/Main_go.ts +5 -6
- package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +40 -26
- package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +1 -0
- package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +6 -1
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +1 -1
- package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +3 -3
- package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +3 -3
- package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +3 -2
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +14 -0
- package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +29 -7
- package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +1 -1
- package/project/.sdk/src/cmp/go/TestClean_go.ts +81 -18
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +47 -53
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +204 -24
- package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +79 -60
- package/project/.sdk/src/cmp/go/fragment/EntityPatchOp.fragment.go +49 -0
- package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +26 -5
- package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +8 -10
- package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +240 -121
- package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +1 -1
- package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +34 -27
- package/project/.sdk/src/cmp/java/EntityTypes_java.ts +1 -1
- package/project/.sdk/src/cmp/java/Entity_java.ts +1 -1
- package/project/.sdk/src/cmp/java/Main_java.ts +3 -1
- package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +58 -23
- package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +7 -4
- package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +1 -1
- package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +3 -3
- package/project/.sdk/src/cmp/java/ReadmeIntro_java.ts +3 -3
- package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +2 -1
- package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +10 -1
- package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +22 -5
- package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +1 -1
- package/project/.sdk/src/cmp/java/TestClean_java.ts +57 -12
- package/project/.sdk/src/cmp/java/TestDirect_java.ts +50 -36
- package/project/.sdk/src/cmp/java/TestEntity_java.ts +180 -13
- package/project/.sdk/src/cmp/java/fragment/Entity.fragment.java +2 -0
- package/project/.sdk/src/cmp/java/fragment/EntityBase.fragment.java +5 -3
- package/project/.sdk/src/cmp/java/fragment/EntityPatchOp.fragment.java +45 -0
- package/project/.sdk/src/cmp/js/EntityTypes_js.ts +1 -1
- package/project/.sdk/src/cmp/js/Entity_js.ts +1 -1
- package/project/.sdk/src/cmp/js/Main_js.ts +2 -0
- package/project/.sdk/src/cmp/js/Package_js.ts +11 -8
- package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +39 -27
- package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +7 -4
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +0 -3
- package/project/.sdk/src/cmp/js/ReadmeInstall_js.ts +3 -3
- package/project/.sdk/src/cmp/js/ReadmeIntro_js.ts +3 -3
- package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +4 -3
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +17 -0
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +37 -8
- package/project/.sdk/src/cmp/js/ReadmeTopHowto_js.ts +2 -3
- package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +1 -1
- package/project/.sdk/src/cmp/js/TestClean_js.ts +52 -8
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +81 -54
- package/project/.sdk/src/cmp/js/TestEntity_js.ts +95 -2
- package/project/.sdk/src/cmp/js/TestLive_js.ts +4 -3
- package/project/.sdk/src/cmp/js/fragment/Direct.test.fragment.js +4 -0
- package/project/.sdk/src/cmp/js/fragment/Entity.fragment.js +2 -0
- package/project/.sdk/src/cmp/js/fragment/Entity.test.fragment.js +2 -0
- package/project/.sdk/src/cmp/js/fragment/EntityBase.fragment.js +51 -25
- package/project/.sdk/src/cmp/js/fragment/EntityPatchOp.fragment.js +129 -0
- package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +39 -15
- package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +4 -0
- package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +3 -1
- package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +56 -31
- package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +7 -4
- package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/ReadmeIntro_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +2 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +10 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +22 -5
- package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/TestClean_kotlin.ts +45 -10
- package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +49 -26
- package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +168 -10
- package/project/.sdk/src/cmp/kotlin/fragment/Entity.fragment.kt +2 -0
- package/project/.sdk/src/cmp/kotlin/fragment/EntityBase.fragment.kt +2 -1
- package/project/.sdk/src/cmp/kotlin/fragment/EntityPatchOp.fragment.kt +40 -0
- package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/Entity_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/Main_lua.ts +2 -1
- package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +42 -23
- package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +7 -4
- package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +8 -2
- package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/ReadmeInstall_lua.ts +2 -2
- package/project/.sdk/src/cmp/lua/ReadmeIntro_lua.ts +3 -3
- package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +3 -2
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +9 -1
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +22 -6
- package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/TestClean_lua.ts +46 -12
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +100 -124
- package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +173 -20
- package/project/.sdk/src/cmp/lua/fragment/Entity.fragment.lua +85 -48
- package/project/.sdk/src/cmp/lua/fragment/EntityPatchOp.fragment.lua +34 -0
- package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +28 -6
- package/project/.sdk/src/cmp/ocaml/EntityOperation_ocaml.ts +8 -11
- package/project/.sdk/src/cmp/ocaml/Entity_ocaml.ts +8 -3
- package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +2 -1
- package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +7 -5
- package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +39 -34
- package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +7 -4
- package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +3 -8
- package/project/.sdk/src/cmp/ocaml/ReadmeInstall_ocaml.ts +2 -2
- package/project/.sdk/src/cmp/ocaml/ReadmeIntro_ocaml.ts +3 -3
- package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +2 -1
- package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +9 -1
- package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +22 -6
- package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +3 -7
- package/project/.sdk/src/cmp/ocaml/TestClean_ocaml.ts +47 -14
- package/project/.sdk/src/cmp/ocaml/TestEntity_ocaml.ts +88 -3
- package/project/.sdk/src/cmp/ocaml/fragment/RunOp.fragment.ml +10 -11
- package/project/.sdk/src/cmp/ocaml/utility_ocaml.ts +7 -0
- package/project/.sdk/src/cmp/perl/Entity_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/Main_perl.ts +3 -1
- package/project/.sdk/src/cmp/perl/Package_perl.ts +5 -4
- package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +48 -33
- package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +9 -4
- package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +2 -2
- package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/ReadmeInstall_perl.ts +9 -3
- package/project/.sdk/src/cmp/perl/ReadmeIntro_perl.ts +3 -3
- package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +7 -5
- package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +12 -4
- package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +26 -9
- package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +2 -2
- package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/TestClean_perl.ts +42 -11
- package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +121 -149
- package/project/.sdk/src/cmp/perl/TestEntity_perl.ts +178 -17
- package/project/.sdk/src/cmp/perl/fragment/Entity.fragment.pm +16 -2
- package/project/.sdk/src/cmp/perl/fragment/EntityListOp.fragment.pm +2 -13
- package/project/.sdk/src/cmp/perl/fragment/EntityPatchOp.fragment.pm +32 -0
- package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +23 -5
- package/project/.sdk/src/cmp/perl/utility_perl.ts +16 -0
- package/project/.sdk/src/cmp/php/EntityTypes_php.ts +3 -3
- package/project/.sdk/src/cmp/php/Entity_php.ts +4 -3
- package/project/.sdk/src/cmp/php/MainEntity_php.ts +1 -1
- package/project/.sdk/src/cmp/php/Main_php.ts +3 -1
- package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
- package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +36 -28
- package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +7 -4
- package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +3 -3
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +1 -1
- package/project/.sdk/src/cmp/php/ReadmeInstall_php.ts +2 -2
- package/project/.sdk/src/cmp/php/ReadmeIntro_php.ts +3 -3
- package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +2 -1
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +9 -1
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +23 -6
- package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +1 -1
- package/project/.sdk/src/cmp/php/TestClean_php.ts +73 -12
- package/project/.sdk/src/cmp/php/TestDirect_php.ts +95 -127
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +219 -20
- package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +82 -45
- package/project/.sdk/src/cmp/php/fragment/EntityPatchOp.fragment.php +38 -0
- package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +26 -5
- package/project/.sdk/src/cmp/py/EntityTypes_py.ts +1 -1
- package/project/.sdk/src/cmp/py/Entity_py.ts +2 -2
- package/project/.sdk/src/cmp/py/Main_py.ts +6 -2
- package/project/.sdk/src/cmp/py/Package_py.ts +7 -0
- package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +52 -26
- package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +7 -4
- package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +12 -6
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +1 -1
- package/project/.sdk/src/cmp/py/ReadmeInstall_py.ts +3 -3
- package/project/.sdk/src/cmp/py/ReadmeIntro_py.ts +3 -3
- package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +2 -1
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +9 -1
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +23 -6
- package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +1 -1
- package/project/.sdk/src/cmp/py/TestClean_py.ts +41 -10
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +91 -121
- package/project/.sdk/src/cmp/py/TestEntity_py.ts +146 -20
- package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +62 -42
- package/project/.sdk/src/cmp/py/fragment/EntityPatchOp.fragment.py +27 -0
- package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +23 -5
- package/project/.sdk/src/cmp/py-data/Main_py-data.ts +1 -1
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/Entity_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/Main_rb.ts +5 -6
- package/project/.sdk/src/cmp/rb/Package_rb.ts +3 -1
- package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +30 -28
- package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +9 -5
- package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +16 -8
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/ReadmeInstall_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/ReadmeIntro_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +3 -2
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +14 -5
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +26 -8
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/TestClean_rb.ts +36 -10
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +95 -126
- package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +177 -21
- package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +49 -29
- package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +2 -11
- package/project/.sdk/src/cmp/rb/fragment/EntityPatchOp.fragment.rb +31 -0
- package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +19 -5
- package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +1 -1
- package/project/.sdk/src/cmp/rust/Entity_rust.ts +2 -2
- package/project/.sdk/src/cmp/rust/Main_rust.ts +7 -6
- package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +56 -29
- package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +16 -9
- package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +11 -4
- package/project/.sdk/src/cmp/rust/ReadmeInstall_rust.ts +3 -3
- package/project/.sdk/src/cmp/rust/ReadmeIntro_rust.ts +3 -3
- package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +12 -9
- package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +25 -17
- package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +35 -21
- package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +6 -8
- package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +13 -5
- package/project/.sdk/src/cmp/rust/TestClean_rust.ts +80 -21
- package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +124 -79
- package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +164 -17
- package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +44 -23
- package/project/.sdk/src/cmp/rust/fragment/EntityPatchOp.fragment.rs +41 -0
- package/project/.sdk/src/cmp/rust/fragment/Main.fragment.rs +39 -9
- package/project/.sdk/src/cmp/scala/Config_scala.ts +4 -0
- package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/Entity_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/Main_scala.ts +4 -20
- package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +56 -24
- package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +7 -4
- package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/ReadmeIntro_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +2 -1
- package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +10 -1
- package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +22 -5
- package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/TestClean_scala.ts +39 -10
- package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +113 -3
- package/project/.sdk/src/cmp/scala/fragment/Entity.fragment.scala +2 -0
- package/project/.sdk/src/cmp/scala/fragment/EntityBase.fragment.scala +4 -2
- package/project/.sdk/src/cmp/scala/fragment/EntityPatchOp.fragment.scala +33 -0
- package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/Entity_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/Main_swift.ts +6 -2
- package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +56 -29
- package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +7 -4
- package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/ReadmeIntro_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +2 -1
- package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +10 -1
- package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +21 -5
- package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/TestClean_swift.ts +44 -10
- package/project/.sdk/src/cmp/swift/TestEntity_swift.ts +90 -2
- package/project/.sdk/src/cmp/swift/fragment/Entity.fragment.swift +2 -0
- package/project/.sdk/src/cmp/swift/fragment/EntityBase.fragment.swift +9 -1
- package/project/.sdk/src/cmp/swift/fragment/EntityPatchOp.fragment.swift +24 -0
- package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +23 -3
- package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +9 -3
- package/project/.sdk/src/cmp/ts/Entity_ts.ts +5 -5
- package/project/.sdk/src/cmp/ts/Main_ts.ts +4 -3
- package/project/.sdk/src/cmp/ts/Package_ts.ts +18 -10
- package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +37 -28
- package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +7 -4
- package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +39 -21
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +0 -3
- package/project/.sdk/src/cmp/ts/ReadmeInstall_ts.ts +3 -3
- package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +3 -3
- package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +4 -3
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +10 -1
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +37 -8
- package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +2 -3
- package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +1 -1
- package/project/.sdk/src/cmp/ts/TestClean_ts.ts +52 -8
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +50 -109
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +92 -2
- package/project/.sdk/src/cmp/ts/TestLive_ts.ts +4 -3
- package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +3 -0
- package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +2 -0
- package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +3 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +49 -24
- package/project/.sdk/src/cmp/ts/fragment/EntityPatchOp.fragment.ts +126 -0
- package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +50 -18
- package/project/.sdk/src/cmp/zig/Entity_zig.ts +2 -2
- package/project/.sdk/src/cmp/zig/Main_zig.ts +5 -22
- package/project/.sdk/src/cmp/zig/Package_zig.ts +11 -2
- package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +57 -31
- package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +17 -9
- package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +14 -4
- package/project/.sdk/src/cmp/zig/ReadmeInstall_zig.ts +2 -2
- package/project/.sdk/src/cmp/zig/ReadmeIntro_zig.ts +3 -3
- package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +12 -10
- package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +29 -12
- package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +45 -22
- package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +8 -4
- package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +10 -3
- package/project/.sdk/src/cmp/zig/TestClean_zig.ts +67 -28
- package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +54 -5
- package/project/.sdk/src/cmp/zig/Test_zig.ts +1 -0
- package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +44 -34
- package/project/.sdk/src/cmp/zig/fragment/EntityPatchOp.fragment.zig +26 -0
- package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +30 -6
- package/project/.sdk/src/cmp/zig/fragment/Root.fragment.zig +1 -0
- package/project/.sdk/tm/c/LICENSE +1 -1
- package/project/.sdk/tm/c/core/context.c +2 -1
- package/project/.sdk/tm/c/core/helpers.c +21 -0
- package/project/.sdk/tm/c/core/response.c +103 -0
- package/project/.sdk/tm/c/core/sdk.h +26 -0
- package/project/.sdk/tm/c/core/spec.c +10 -0
- package/project/.sdk/tm/c/feature/test.c +46 -2
- package/project/.sdk/tm/c/feature/validate.c +2 -0
- package/project/.sdk/tm/c/tests/feature_harness.h +1 -1
- package/project/.sdk/tm/c/tests/primary_utility_test.c +9 -5
- package/project/.sdk/tm/c/tests/server_variable_test.c +80 -0
- package/project/.sdk/tm/c/utility/make_fetch_def.c +5 -1
- package/project/.sdk/tm/c/utility/make_options.c +84 -6
- package/project/.sdk/tm/c/utility/make_point.c +100 -8
- package/project/.sdk/tm/c/utility/make_spec.c +17 -1
- package/project/.sdk/tm/c/utility/make_url.c +38 -1
- package/project/.sdk/tm/c/utility/media.c +107 -0
- package/project/.sdk/tm/c/utility/param.c +52 -28
- package/project/.sdk/tm/c/utility/prepare_body.c +1 -0
- package/project/.sdk/tm/c/utility/prepare_headers.c +199 -29
- package/project/.sdk/tm/c/utility/prepare_query.c +24 -2
- package/project/.sdk/tm/c/utility/result_body.c +4 -0
- package/project/.sdk/tm/c/utility/transform_request.c +54 -17
- package/project/.sdk/tm/clojure/LICENSE +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +0 -3
- package/project/.sdk/tm/clojure/src/sdk/client.clj +19 -5
- package/project/.sdk/tm/clojure/src/sdk/core.clj +415 -117
- package/project/.sdk/tm/clojure/src/sdk/features.clj +44 -20
- package/project/.sdk/tm/clojure/test/sdk/test/feature.clj +21 -1
- package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +10 -2
- package/project/.sdk/tm/cpp/LICENSE +1 -1
- package/project/.sdk/tm/cpp/core/types.hpp +131 -7
- package/project/.sdk/tm/cpp/feature/test.hpp +32 -2
- package/project/.sdk/tm/cpp/feature/timeout.hpp +29 -9
- package/project/.sdk/tm/cpp/feature/validate.hpp +2 -0
- package/project/.sdk/tm/cpp/test/feature_test.cpp +37 -0
- package/project/.sdk/tm/cpp/test/harness.hpp +1 -1
- package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +6 -2
- package/project/.sdk/tm/cpp/test/server_variable_test.cpp +57 -0
- package/project/.sdk/tm/cpp/utility/cookie.hpp +36 -0
- package/project/.sdk/tm/cpp/utility/pipeline.hpp +441 -82
- package/project/.sdk/tm/csharp/LICENSE +1 -1
- package/project/.sdk/tm/csharp/core/Context.cs +1 -1
- package/project/.sdk/tm/csharp/core/Helpers.cs +17 -0
- package/project/.sdk/tm/csharp/core/Response.cs +75 -0
- package/project/.sdk/tm/csharp/core/Spec.cs +3 -0
- package/project/.sdk/tm/csharp/feature/TestFeature.cs +41 -3
- package/project/.sdk/tm/csharp/feature/TimeoutFeature.cs +31 -3
- package/project/.sdk/tm/csharp/feature/ValidateFeature.cs +2 -0
- package/project/.sdk/tm/csharp/test/FeatureHarness.cs +1 -1
- package/project/.sdk/tm/csharp/test/FeatureTest.cs +35 -0
- package/project/.sdk/tm/csharp/test/PipelineTest.cs +28 -0
- package/project/.sdk/tm/csharp/test/Runner.cs +119 -0
- package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +8 -3
- package/project/.sdk/tm/csharp/utility/Fetcher.cs +25 -7
- package/project/.sdk/tm/csharp/utility/MakeFetchDef.cs +1 -5
- package/project/.sdk/tm/csharp/utility/MakeOptions.cs +8 -6
- package/project/.sdk/tm/csharp/utility/MakePoint.cs +68 -17
- package/project/.sdk/tm/csharp/utility/MakeSpec.cs +24 -6
- package/project/.sdk/tm/csharp/utility/MakeUrl.cs +21 -1
- package/project/.sdk/tm/csharp/utility/Media.cs +124 -0
- package/project/.sdk/tm/csharp/utility/Param.cs +57 -20
- package/project/.sdk/tm/csharp/utility/PrepareBody.cs +4 -0
- package/project/.sdk/tm/csharp/utility/PrepareHeaders.cs +103 -24
- package/project/.sdk/tm/csharp/utility/PrepareQuery.cs +33 -3
- package/project/.sdk/tm/csharp/utility/ResultBody.cs +5 -0
- package/project/.sdk/tm/csharp/utility/TransformRequest.cs +21 -13
- package/project/.sdk/tm/csharp/utility/struct/Struct.cs +3 -2
- package/project/.sdk/tm/elixir/LICENSE +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/context.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/core.ex +7 -2
- package/project/.sdk/tm/elixir/lib/projectname/entity_base.ex +43 -12
- package/project/.sdk/tm/elixir/lib/projectname/feature/test.ex +47 -21
- package/project/.sdk/tm/elixir/lib/projectname/feature/validate.ex +2 -0
- package/project/.sdk/tm/elixir/lib/projectname/utility.ex +482 -129
- package/project/.sdk/tm/elixir/test/support/feature_harness.ex +1 -0
- package/project/.sdk/tm/go/LICENSE +1 -1
- package/project/.sdk/tm/go/core/context.go +1 -1
- package/project/.sdk/tm/go/core/helpers.go +19 -1
- package/project/.sdk/tm/go/core/response.go +72 -0
- package/project/.sdk/tm/go/core/spec.go +3 -0
- package/project/.sdk/tm/go/core/types.go +9 -1
- package/project/.sdk/tm/go/feature/test_feature.go +44 -3
- package/project/.sdk/tm/go/feature/timeout_feature.go +39 -22
- package/project/.sdk/tm/go/feature/validate_feature.go +2 -0
- package/project/.sdk/tm/go/test/feature_corpus_test.go +45 -1
- package/project/.sdk/tm/go/test/feature_harness_test.go +1 -1
- package/project/.sdk/tm/go/test/feature_test.go +86 -0
- package/project/.sdk/tm/go/test/primary_utility_test.go +37 -1
- package/project/.sdk/tm/go/test/testsupport_test.go +106 -0
- package/project/.sdk/tm/go/utility/fetcher.go +20 -6
- package/project/.sdk/tm/go/utility/make_fetch_def.go +1 -7
- package/project/.sdk/tm/go/utility/make_options.go +12 -6
- package/project/.sdk/tm/go/utility/make_point.go +52 -3
- package/project/.sdk/tm/go/utility/make_spec.go +23 -3
- package/project/.sdk/tm/go/utility/make_url.go +23 -1
- package/project/.sdk/tm/go/utility/media.go +111 -0
- package/project/.sdk/tm/go/utility/param.go +61 -20
- package/project/.sdk/tm/go/utility/prepare_body.go +3 -0
- package/project/.sdk/tm/go/utility/prepare_headers.go +108 -22
- package/project/.sdk/tm/go/utility/prepare_query.go +25 -2
- package/project/.sdk/tm/go/utility/result_body.go +8 -0
- package/project/.sdk/tm/go/utility/transform_request.go +20 -9
- package/project/.sdk/tm/java/LICENSE +1 -1
- package/project/.sdk/tm/java/core/Context.java +1 -1
- package/project/.sdk/tm/java/core/Helpers.java +13 -0
- package/project/.sdk/tm/java/core/Response.java +61 -0
- package/project/.sdk/tm/java/core/SdkClient.java +21 -3
- package/project/.sdk/tm/java/core/SdkEntity.java +2 -0
- package/project/.sdk/tm/java/core/Spec.java +4 -0
- package/project/.sdk/tm/java/feature/TestFeature.java +46 -3
- package/project/.sdk/tm/java/feature/TimeoutFeature.java +51 -18
- package/project/.sdk/tm/java/feature/ValidateFeature.java +2 -0
- package/project/.sdk/tm/java/test/FeatureCorpusTest.java +93 -35
- package/project/.sdk/tm/java/test/FeatureHarness.java +1 -0
- package/project/.sdk/tm/java/test/FeatureTest.java +33 -0
- package/project/.sdk/tm/java/test/PipelineTest.java +4 -1
- package/project/.sdk/tm/java/test/RunnerSupport.java +97 -0
- package/project/.sdk/tm/java/utility/Clean.java +17 -7
- package/project/.sdk/tm/java/utility/Fetcher.java +27 -3
- package/project/.sdk/tm/java/utility/MakeFetchDef.java +1 -7
- package/project/.sdk/tm/java/utility/MakePoint.java +62 -10
- package/project/.sdk/tm/java/utility/MakeSpec.java +26 -1
- package/project/.sdk/tm/java/utility/MakeUrl.java +23 -1
- package/project/.sdk/tm/java/utility/Media.java +117 -0
- package/project/.sdk/tm/java/utility/Param.java +59 -20
- package/project/.sdk/tm/java/utility/PrepareBody.java +3 -0
- package/project/.sdk/tm/java/utility/PrepareHeaders.java +76 -18
- package/project/.sdk/tm/java/utility/PrepareMethod.java +2 -1
- package/project/.sdk/tm/java/utility/PrepareQuery.java +26 -2
- package/project/.sdk/tm/java/utility/ResultBody.java +5 -0
- package/project/.sdk/tm/java/utility/TransformRequest.java +24 -11
- package/project/.sdk/tm/js/LICENSE +1 -1
- package/project/.sdk/tm/js/src/Context.js +1 -1
- package/project/.sdk/tm/js/src/Control.js +1 -0
- package/project/.sdk/tm/js/src/Response.js +10 -1
- package/project/.sdk/tm/js/src/Spec.js +3 -0
- package/project/.sdk/tm/js/src/feature/base/BaseFeature.js +28 -0
- package/project/.sdk/tm/js/src/feature/netsim/NetsimFeature.js +10 -8
- package/project/.sdk/tm/js/src/feature/ratelimit/RatelimitFeature.js +8 -6
- package/project/.sdk/tm/js/src/feature/retry/RetryFeature.js +17 -4
- package/project/.sdk/tm/js/src/feature/test/TestFeature.js +40 -12
- package/project/.sdk/tm/js/src/feature/timeout/TimeoutFeature.js +17 -3
- package/project/.sdk/tm/js/src/feature/validate/ValidateFeature.js +2 -0
- package/project/.sdk/tm/js/src/utility/CleanUtility.js +25 -1
- package/project/.sdk/tm/js/src/utility/FetcherUtility.js +23 -1
- package/project/.sdk/tm/js/src/utility/MakeErrorUtility.js +2 -2
- package/project/.sdk/tm/js/src/utility/MakeFetchDefUtility.js +14 -2
- package/project/.sdk/tm/js/src/utility/MakeOptionsUtility.js +6 -6
- package/project/.sdk/tm/js/src/utility/MakePointUtility.js +39 -2
- package/project/.sdk/tm/js/src/utility/MakeRequestUtility.js +27 -2
- package/project/.sdk/tm/js/src/utility/MakeResponseUtility.js +2 -1
- package/project/.sdk/tm/js/src/utility/MakeSpecUtility.js +14 -1
- package/project/.sdk/tm/js/src/utility/MakeUrlUtility.js +23 -0
- package/project/.sdk/tm/js/src/utility/MediaUtility.js +145 -0
- package/project/.sdk/tm/js/src/utility/ParamUtility.js +46 -18
- package/project/.sdk/tm/js/src/utility/PrepareBodyUtility.js +6 -0
- package/project/.sdk/tm/js/src/utility/PrepareHeadersUtility.js +55 -14
- package/project/.sdk/tm/js/src/utility/PrepareMethodUtility.js +9 -0
- package/project/.sdk/tm/js/src/utility/PrepareQueryUtility.js +23 -6
- package/project/.sdk/tm/js/src/utility/ResultBodyUtility.js +60 -3
- package/project/.sdk/tm/js/src/utility/TransformRequestUtility.js +16 -7
- package/project/.sdk/tm/js/test/definition-runner.js +103 -3
- package/project/.sdk/tm/js/test/feature/Corpus.test.js +47 -16
- package/project/.sdk/tm/js/test/feature/harness.js +4 -1
- package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +7 -7
- package/project/.sdk/tm/js/test/feature.test.js +134 -0
- package/project/.sdk/tm/js/test/live-contract.js +73 -3
- package/project/.sdk/tm/js/test/live-entity.js +34 -15
- package/project/.sdk/tm/js/test/live-runner.js +52 -7
- package/project/.sdk/tm/js/test/live-scenarios.js +4 -4
- package/project/.sdk/tm/js/test/pipeline.test.js +52 -1
- package/project/.sdk/tm/js/test/utility.js +30 -4
- package/project/.sdk/tm/kotlin/LICENSE +1 -1
- package/project/.sdk/tm/kotlin/core/Context.kt +1 -1
- package/project/.sdk/tm/kotlin/core/Helpers.kt +8 -0
- package/project/.sdk/tm/kotlin/core/Interfaces.kt +2 -0
- package/project/.sdk/tm/kotlin/core/Response.kt +65 -0
- package/project/.sdk/tm/kotlin/core/SdkClient.kt +20 -3
- package/project/.sdk/tm/kotlin/core/Spec.kt +3 -0
- package/project/.sdk/tm/kotlin/feature/TestFeature.kt +23 -3
- package/project/.sdk/tm/kotlin/feature/TimeoutFeature.kt +42 -15
- package/project/.sdk/tm/kotlin/feature/ValidateFeature.kt +2 -0
- package/project/.sdk/tm/kotlin/test/FeatureHarness.kt +1 -1
- package/project/.sdk/tm/kotlin/test/FeatureTest.kt +32 -0
- package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +90 -0
- package/project/.sdk/tm/kotlin/test/ServerVariableTest.kt +50 -0
- package/project/.sdk/tm/kotlin/utility/CoreUtil.kt +9 -7
- package/project/.sdk/tm/kotlin/utility/Fetcher.kt +24 -4
- package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +26 -0
- package/project/.sdk/tm/kotlin/utility/MakePoint.kt +57 -12
- package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +26 -7
- package/project/.sdk/tm/kotlin/utility/Media.kt +83 -0
- package/project/.sdk/tm/kotlin/utility/Prepare.kt +127 -48
- package/project/.sdk/tm/kotlin/utility/ResultTransform.kt +18 -7
- package/project/.sdk/tm/lua/LICENSE +1 -1
- package/project/.sdk/tm/lua/core/context.lua +1 -1
- package/project/.sdk/tm/lua/core/helpers.lua +103 -0
- package/project/.sdk/tm/lua/core/response.lua +3 -0
- package/project/.sdk/tm/lua/core/spec.lua +3 -0
- package/project/.sdk/tm/lua/feature/test_feature.lua +36 -3
- package/project/.sdk/tm/lua/feature/validate_feature.lua +2 -0
- package/project/.sdk/tm/lua/test/feature_test.lua +1 -1
- package/project/.sdk/tm/lua/test/runner.lua +107 -0
- package/project/.sdk/tm/lua/utility/fetcher.lua +9 -2
- package/project/.sdk/tm/lua/utility/make_fetch_def.lua +2 -6
- package/project/.sdk/tm/lua/utility/make_options.lua +10 -7
- package/project/.sdk/tm/lua/utility/make_point.lua +65 -12
- package/project/.sdk/tm/lua/utility/make_spec.lua +19 -4
- package/project/.sdk/tm/lua/utility/make_url.lua +22 -1
- package/project/.sdk/tm/lua/utility/media.lua +106 -0
- package/project/.sdk/tm/lua/utility/param.lua +5 -45
- package/project/.sdk/tm/lua/utility/prepare_body.lua +5 -0
- package/project/.sdk/tm/lua/utility/prepare_headers.lua +71 -21
- package/project/.sdk/tm/lua/utility/prepare_query.lua +28 -6
- package/project/.sdk/tm/lua/utility/result_body.lua +7 -0
- package/project/.sdk/tm/lua/utility/transform_request.lua +23 -10
- package/project/.sdk/tm/lua/utility/unreadable_body.lua +70 -0
- package/project/.sdk/tm/ocaml/LICENSE +1 -1
- package/project/.sdk/tm/ocaml/sdk_features.ml +56 -10
- package/project/.sdk/tm/ocaml/sdk_helpers.ml +9 -0
- package/project/.sdk/tm/ocaml/sdk_runtime.ml +359 -85
- package/project/.sdk/tm/ocaml/sdk_types.ml +6 -0
- package/project/.sdk/tm/ocaml/test/harness.ml +1 -1
- package/project/.sdk/tm/ocaml/test/t_pipeline.ml +2 -1
- package/project/.sdk/tm/perl/LICENSE +1 -1
- package/project/.sdk/tm/perl/core/context.pm +1 -1
- package/project/.sdk/tm/perl/core/response.pm +2 -0
- package/project/.sdk/tm/perl/core/spec.pm +3 -0
- package/project/.sdk/tm/perl/feature/test_feature.pm +26 -3
- package/project/.sdk/tm/perl/feature/validate_feature.pm +2 -0
- package/project/.sdk/tm/perl/t/feature.t +1 -1
- package/project/.sdk/tm/perl/t/feature_corpus.t +72 -33
- package/project/.sdk/tm/perl/t/runner.pm +86 -0
- package/project/.sdk/tm/perl/t/server_variables.t +39 -0
- package/project/.sdk/tm/perl/utility/clean.pm +12 -7
- package/project/.sdk/tm/perl/utility/fetcher.pm +32 -19
- package/project/.sdk/tm/perl/utility/make_fetch_def.pm +4 -4
- package/project/.sdk/tm/perl/utility/make_options.pm +24 -0
- package/project/.sdk/tm/perl/utility/make_point.pm +55 -9
- package/project/.sdk/tm/perl/utility/make_spec.pm +27 -3
- package/project/.sdk/tm/perl/utility/make_url.pm +13 -1
- package/project/.sdk/tm/perl/utility/media.pm +109 -0
- package/project/.sdk/tm/perl/utility/param.pm +50 -24
- package/project/.sdk/tm/perl/utility/prepare_body.pm +11 -3
- package/project/.sdk/tm/perl/utility/prepare_headers.pm +63 -16
- package/project/.sdk/tm/perl/utility/prepare_method.pm +13 -0
- package/project/.sdk/tm/perl/utility/prepare_query.pm +18 -4
- package/project/.sdk/tm/perl/utility/result_body.pm +60 -0
- package/project/.sdk/tm/perl/utility/transform_request.pm +23 -8
- package/project/.sdk/tm/php/LICENSE +1 -1
- package/project/.sdk/tm/php/core/Context.php +1 -1
- package/project/.sdk/tm/php/core/Response.php +3 -0
- package/project/.sdk/tm/php/core/Spec.php +4 -0
- package/project/.sdk/tm/php/feature/CostFeature.php +2 -7
- package/project/.sdk/tm/php/feature/TestFeature.php +33 -3
- package/project/.sdk/tm/php/feature/ValidateFeature.php +14 -12
- package/project/.sdk/tm/php/test/FeatureCorpusTest.php +90 -35
- package/project/.sdk/tm/php/test/FeatureTest.php +4 -5
- package/project/.sdk/tm/php/test/PipelineTest.php +18 -1
- package/project/.sdk/tm/php/test/Runner.php +86 -0
- package/project/.sdk/tm/php/utility/Clean.php +10 -5
- package/project/.sdk/tm/php/utility/Fetcher.php +48 -6
- package/project/.sdk/tm/php/utility/MakeFetchDef.php +2 -1
- package/project/.sdk/tm/php/utility/MakePoint.php +55 -11
- package/project/.sdk/tm/php/utility/MakeSpec.php +21 -4
- package/project/.sdk/tm/php/utility/MakeUrl.php +16 -1
- package/project/.sdk/tm/php/utility/Media.php +111 -0
- package/project/.sdk/tm/php/utility/Param.php +66 -27
- package/project/.sdk/tm/php/utility/PrepareBody.php +5 -0
- package/project/.sdk/tm/php/utility/PrepareHeaders.php +83 -23
- package/project/.sdk/tm/php/utility/PrepareMethod.php +15 -0
- package/project/.sdk/tm/php/utility/PrepareQuery.php +22 -8
- package/project/.sdk/tm/php/utility/ResultBody.php +71 -0
- package/project/.sdk/tm/php/utility/TransformRequest.php +22 -11
- package/project/.sdk/tm/py/LICENSE +1 -1
- package/project/.sdk/tm/py/pkg/core/context.py +1 -1
- package/project/.sdk/tm/py/pkg/core/response.py +3 -0
- package/project/.sdk/tm/py/pkg/core/spec.py +3 -0
- package/project/.sdk/tm/py/pkg/feature/test_feature.py +27 -3
- package/project/.sdk/tm/py/pkg/feature/validate_feature.py +2 -0
- package/project/.sdk/tm/py/pkg/utility/fetcher.py +17 -7
- package/project/.sdk/tm/py/pkg/utility/make_fetch_def.py +2 -5
- package/project/.sdk/tm/py/pkg/utility/make_options.py +14 -8
- package/project/.sdk/tm/py/pkg/utility/make_point.py +40 -4
- package/project/.sdk/tm/py/pkg/utility/make_spec.py +12 -4
- package/project/.sdk/tm/py/pkg/utility/make_url.py +19 -1
- package/project/.sdk/tm/py/pkg/utility/media.py +88 -0
- package/project/.sdk/tm/py/pkg/utility/param.py +47 -18
- package/project/.sdk/tm/py/pkg/utility/prepare_body.py +4 -0
- package/project/.sdk/tm/py/pkg/utility/prepare_headers.py +56 -20
- package/project/.sdk/tm/py/pkg/utility/prepare_method.py +7 -0
- package/project/.sdk/tm/py/pkg/utility/prepare_query.py +17 -8
- package/project/.sdk/tm/py/pkg/utility/result_body.py +51 -0
- package/project/.sdk/tm/py/pkg/utility/transform_request.py +18 -9
- package/project/.sdk/tm/py/test/feature_harness.py +1 -1
- package/project/.sdk/tm/py/test/runner.py +77 -2
- package/project/.sdk/tm/py/test/test_feature_corpus.py +69 -32
- package/project/.sdk/tm/py-data/LICENSE +1 -1
- package/project/.sdk/tm/py-data/Makefile +2 -2
- package/project/.sdk/tm/rb/LICENSE +1 -1
- package/project/.sdk/tm/rb/core/context.rb +1 -1
- package/project/.sdk/tm/rb/core/response.rb +3 -1
- package/project/.sdk/tm/rb/core/spec.rb +4 -1
- package/project/.sdk/tm/rb/feature/test_feature.rb +27 -8
- package/project/.sdk/tm/rb/feature/validate_feature.rb +3 -1
- package/project/.sdk/tm/rb/test/feature_corpus_test.rb +74 -30
- package/project/.sdk/tm/rb/test/feature_test.rb +1 -1
- package/project/.sdk/tm/rb/test/runner.rb +54 -2
- package/project/.sdk/tm/rb/utility/clean.rb +14 -6
- package/project/.sdk/tm/rb/utility/fetcher.rb +22 -14
- package/project/.sdk/tm/rb/utility/make_fetch_def.rb +2 -4
- package/project/.sdk/tm/rb/utility/make_point.rb +44 -8
- package/project/.sdk/tm/rb/utility/make_spec.rb +14 -2
- package/project/.sdk/tm/rb/utility/make_url.rb +13 -1
- package/project/.sdk/tm/rb/utility/media.rb +75 -0
- package/project/.sdk/tm/rb/utility/param.rb +44 -25
- package/project/.sdk/tm/rb/utility/prepare_body.rb +4 -1
- package/project/.sdk/tm/rb/utility/prepare_headers.rb +50 -16
- package/project/.sdk/tm/rb/utility/prepare_method.rb +6 -0
- package/project/.sdk/tm/rb/utility/prepare_query.rb +12 -4
- package/project/.sdk/tm/rb/utility/result_body.rb +45 -0
- package/project/.sdk/tm/rb/utility/transform_request.rb +17 -7
- package/project/.sdk/tm/rust/LICENSE +1 -1
- package/project/.sdk/tm/rust/core/context.rs +1 -1
- package/project/.sdk/tm/rust/core/helpers.rs +10 -0
- package/project/.sdk/tm/rust/core/response.rs +80 -1
- package/project/.sdk/tm/rust/core/spec.rs +4 -0
- package/project/.sdk/tm/rust/core/types.rs +1 -0
- package/project/.sdk/tm/rust/feature/test.rs +29 -2
- package/project/.sdk/tm/rust/feature/validate.rs +2 -0
- package/project/.sdk/tm/rust/tests/common/mod.rs +108 -1
- package/project/.sdk/tm/rust/utility/clean.rs +0 -2
- package/project/.sdk/tm/rust/utility/fetcher.rs +19 -11
- package/project/.sdk/tm/rust/utility/make_fetch_def.rs +12 -1
- package/project/.sdk/tm/rust/utility/make_options.rs +6 -5
- package/project/.sdk/tm/rust/utility/make_point.rs +80 -16
- package/project/.sdk/tm/rust/utility/make_spec.rs +23 -4
- package/project/.sdk/tm/rust/utility/make_url.rs +39 -2
- package/project/.sdk/tm/rust/utility/media.rs +116 -0
- package/project/.sdk/tm/rust/utility/mod.rs +1 -0
- package/project/.sdk/tm/rust/utility/param.rs +66 -19
- package/project/.sdk/tm/rust/utility/prepare_body.rs +4 -0
- package/project/.sdk/tm/rust/utility/prepare_headers.rs +85 -28
- package/project/.sdk/tm/rust/utility/prepare_query.rs +27 -5
- package/project/.sdk/tm/rust/utility/result_body.rs +15 -2
- package/project/.sdk/tm/rust/utility/transform_request.rs +27 -14
- package/project/.sdk/tm/scala/LICENSE +1 -1
- package/project/.sdk/tm/scala/Makefile +3 -1
- package/project/.sdk/tm/scala/core/Context.scala +1 -1
- package/project/.sdk/tm/scala/core/Contracts.scala +1 -0
- package/project/.sdk/tm/scala/core/Helpers.scala +7 -0
- package/project/.sdk/tm/scala/core/Response.scala +55 -0
- package/project/.sdk/tm/scala/core/SdkClient.scala +18 -5
- package/project/.sdk/tm/scala/core/Spec.scala +3 -0
- package/project/.sdk/tm/scala/feature/TestFeature.scala +36 -3
- package/project/.sdk/tm/scala/feature/TimeoutFeature.scala +39 -13
- package/project/.sdk/tm/scala/feature/ValidateFeature.scala +2 -0
- package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +16 -1
- package/project/.sdk/tm/scala/sdktest/ServerVariableTest.scala +49 -0
- package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +1 -0
- package/project/.sdk/tm/scala/utility/Fetcher.scala +17 -2
- package/project/.sdk/tm/scala/utility/Make.scala +141 -43
- package/project/.sdk/tm/scala/utility/MakeSpec.scala +20 -2
- package/project/.sdk/tm/scala/utility/Media.scala +96 -0
- package/project/.sdk/tm/scala/utility/Misc.scala +56 -23
- package/project/.sdk/tm/scala/utility/Prepare.scala +84 -31
- package/project/.sdk/tm/scala/utility/Results.scala +5 -0
- package/project/.sdk/tm/scala/utility/Transform.scala +15 -19
- package/project/.sdk/tm/swift/LICENSE +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Context.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Response.swift +57 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Spec.swift +3 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Support.swift +8 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TestFeature.swift +34 -3
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TimeoutFeature.swift +19 -3
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ValidateFeature.swift +2 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Fetcher.swift +21 -12
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Make.swift +85 -18
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +73 -7
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Media.swift +76 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +118 -43
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/ResultUtil.swift +18 -8
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/FeatureTest.swift +31 -1
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +6 -0
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/ServerVariableTest.swift +42 -0
- package/project/.sdk/tm/ts/LICENSE +1 -1
- package/project/.sdk/tm/ts/src/Context.ts +1 -1
- package/project/.sdk/tm/ts/src/Control.ts +3 -0
- package/project/.sdk/tm/ts/src/Response.ts +10 -1
- package/project/.sdk/tm/ts/src/Spec.ts +4 -0
- package/project/.sdk/tm/ts/src/feature/base/BaseFeature.ts +28 -0
- package/project/.sdk/tm/ts/src/feature/netsim/NetsimFeature.ts +10 -8
- package/project/.sdk/tm/ts/src/feature/ratelimit/RatelimitFeature.ts +8 -6
- package/project/.sdk/tm/ts/src/feature/retry/RetryFeature.ts +17 -4
- package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +41 -13
- package/project/.sdk/tm/ts/src/feature/timeout/TimeoutFeature.ts +17 -3
- package/project/.sdk/tm/ts/src/feature/validate/ValidateFeature.ts +2 -0
- package/project/.sdk/tm/ts/src/tsconfig.json +2 -1
- package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +25 -1
- package/project/.sdk/tm/ts/src/utility/FetcherUtility.ts +24 -1
- package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +2 -2
- package/project/.sdk/tm/ts/src/utility/MakeFetchDefUtility.ts +15 -2
- package/project/.sdk/tm/ts/src/utility/MakeOptionsUtility.ts +6 -6
- package/project/.sdk/tm/ts/src/utility/MakePointUtility.ts +38 -2
- package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +29 -2
- package/project/.sdk/tm/ts/src/utility/MakeResponseUtility.ts +3 -1
- package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +16 -6
- package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +16 -2
- package/project/.sdk/tm/ts/src/utility/MediaUtility.ts +143 -0
- package/project/.sdk/tm/ts/src/utility/ParamUtility.ts +50 -18
- package/project/.sdk/tm/ts/src/utility/PrepareBodyUtility.ts +6 -0
- package/project/.sdk/tm/ts/src/utility/PrepareHeadersUtility.ts +53 -11
- package/project/.sdk/tm/ts/src/utility/PrepareMethodUtility.ts +9 -0
- package/project/.sdk/tm/ts/src/utility/PrepareQueryUtility.ts +22 -6
- package/project/.sdk/tm/ts/src/utility/ResultBodyUtility.ts +68 -3
- package/project/.sdk/tm/ts/src/utility/TransformRequestUtility.ts +16 -6
- package/project/.sdk/tm/ts/test/definition-runner.ts +109 -3
- package/project/.sdk/tm/ts/test/feature/Corpus.test.ts +47 -16
- package/project/.sdk/tm/ts/test/feature/harness.ts +4 -1
- package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +1 -1
- package/project/.sdk/tm/ts/test/feature.test.ts +134 -0
- package/project/.sdk/tm/ts/test/live-contract.ts +60 -2
- package/project/.sdk/tm/ts/test/live-entity.ts +36 -12
- package/project/.sdk/tm/ts/test/live-runner.ts +79 -12
- package/project/.sdk/tm/ts/test/live-scenarios.ts +5 -4
- package/project/.sdk/tm/ts/test/pipeline.test.ts +52 -1
- package/project/.sdk/tm/ts/test/tsconfig.json +2 -1
- package/project/.sdk/tm/ts/test/utility.ts +35 -7
- package/project/.sdk/tm/zig/LICENSE +1 -1
- package/project/.sdk/tm/zig/core/context.zig +2 -1
- package/project/.sdk/tm/zig/core/helpers.zig +33 -0
- package/project/.sdk/tm/zig/core/response.zig +3 -0
- package/project/.sdk/tm/zig/core/spec.zig +27 -0
- package/project/.sdk/tm/zig/core/types.zig +6 -0
- package/project/.sdk/tm/zig/core/utility.zig +456 -84
- package/project/.sdk/tm/zig/feature/test.zig +31 -2
- package/project/.sdk/tm/zig/feature/validate.zig +2 -0
- package/project/.sdk/tm/zig/test/fh.zig +1 -1
- package/project/sdkgen-package.json +1 -1
- package/src/action/copies.ts +179 -46
- package/src/action/doctor.ts +13 -3
- package/src/action/package.ts +17 -9
- package/src/action/resolve.ts +41 -0
- package/src/admin/npm-trust.ts +9 -8
- package/src/cmp/AgentGuide.ts +4 -3
- package/src/cmp/AgentGuideFeature.ts +3 -2
- package/src/cmp/AgentGuideTop.ts +2 -1
- package/src/cmp/Changelog.ts +2 -1
- package/src/cmp/Deploy.ts +2 -1
- package/src/cmp/Entity.ts +1 -3
- package/src/cmp/ExternalTarget.ts +2 -1
- package/src/cmp/Feature.ts +2 -1
- package/src/cmp/FeatureHook.ts +2 -1
- package/src/cmp/License.ts +7 -5
- package/src/cmp/Main.ts +2 -1
- package/src/cmp/PublishWorkflow.ts +2 -1
- package/src/cmp/Readme.ts +2 -1
- package/src/cmp/ReadmeEntity.ts +3 -3
- package/src/cmp/ReadmeErrors.ts +6 -4
- package/src/cmp/ReadmeExplanation.ts +4 -3
- package/src/cmp/ReadmeFeatures.ts +4 -3
- package/src/cmp/ReadmeHowto.ts +4 -3
- package/src/cmp/ReadmeInstall.ts +4 -3
- package/src/cmp/ReadmeIntro.ts +3 -3
- package/src/cmp/ReadmeModel.ts +6 -3
- package/src/cmp/ReadmeOptions.ts +3 -3
- package/src/cmp/ReadmeQuick.ts +4 -3
- package/src/cmp/ReadmeRef.ts +3 -3
- package/src/cmp/ReadmeRefFeatures.ts +2 -1
- package/src/cmp/ReadmeStation.ts +2 -1
- package/src/cmp/ReadmeTop.ts +121 -37
- package/src/cmp/ReadmeUnions.ts +2 -1
- package/src/cmp/Registered.ts +4 -4
- package/src/cmp/Security.ts +14 -7
- package/src/cmp/Test.ts +2 -1
- package/src/cmp/TestControl.ts +1 -1
- package/src/helpers/component.ts +25 -0
- package/src/helpers/definition.ts +2 -2
- package/src/helpers/definitionPlan.ts +135 -13
- package/src/helpers/featureSource.ts +55 -2
- package/src/helpers/flowGuard.ts +111 -0
- package/src/helpers/generated.ts +488 -0
- package/src/helpers/mcpTools.ts +47 -0
- package/src/helpers/media.ts +79 -0
- package/src/helpers/modelNames.ts +186 -16
- package/src/helpers/naming.ts +188 -0
- package/src/helpers/npm.ts +68 -0
- package/src/helpers/npmScripts.ts +37 -0
- package/src/helpers/opExample.ts +19 -11
- package/src/helpers/opShape.ts +235 -29
- package/src/helpers/optional.ts +76 -0
- package/src/helpers/packageMeta.ts +83 -11
- package/src/helpers/stdrep.ts +5 -1
- package/src/helpers/testPolicy.ts +68 -1
- package/src/helpers/text.ts +33 -0
- package/src/sdkgen.ts +97 -14
- package/src/testkit.ts +2 -1
- package/src/utility.ts +41 -19
- package/project/.sdk/src/cmp/go/fragment/SdkError.fragment.go +0 -22
- package/project/.sdk/src/cmp/lua/fragment/SdkError.fragment.lua +0 -38
- package/project/.sdk/src/cmp/perl/fragment/SdkError.fragment.pm +0 -27
- package/project/.sdk/src/cmp/php/fragment/SdkError.fragment.php +0 -35
- package/project/.sdk/src/cmp/py/fragment/SdkError.fragment.py +0 -27
- package/project/.sdk/src/cmp/rb/fragment/SdkError.fragment.rb +0 -25
|
@@ -226,7 +226,7 @@ public class Context
|
|
|
226
226
|
var opcfg = StructUtils.GetPath(Config,
|
|
227
227
|
StructUtils.Jt("entity", entname, "op", opname));
|
|
228
228
|
|
|
229
|
-
var input = (opname == "update" || opname == "create") ? "data" : "match";
|
|
229
|
+
var input = (opname == "update" || opname == "create" || opname == "patch") ? "data" : "match";
|
|
230
230
|
|
|
231
231
|
List<object?>? points = null;
|
|
232
232
|
if (opcfg is Dictionary<string, object?> ocm)
|
|
@@ -17,6 +17,23 @@ public static class Helpers
|
|
|
17
17
|
$"operation '{opname}' not supported by entity '{entityname}'");
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
// Whether a comma-separated allow option names the item: whole names, any case.
|
|
21
|
+
public static bool Allowed(object? names, string? item)
|
|
22
|
+
{
|
|
23
|
+
if (names is not string list || string.IsNullOrEmpty(item))
|
|
24
|
+
{
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
foreach (var name in list.Split(','))
|
|
28
|
+
{
|
|
29
|
+
if (string.Equals(name.Trim(), item, StringComparison.OrdinalIgnoreCase))
|
|
30
|
+
{
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
|
|
20
37
|
public static Dictionary<string, object?>? ToMapAny(object? v)
|
|
21
38
|
{
|
|
22
39
|
return v as Dictionary<string, object?>;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// ProjectName SDK - transport response wrapper.
|
|
2
2
|
|
|
3
|
+
using System.Text.RegularExpressions;
|
|
4
|
+
|
|
3
5
|
using Voxgig.Struct;
|
|
4
6
|
|
|
5
7
|
namespace ProjectNameSdk;
|
|
@@ -13,6 +15,11 @@ public class Response
|
|
|
13
15
|
public object? Body;
|
|
14
16
|
public Exception? Err;
|
|
15
17
|
|
|
18
|
+
// Set by a transport that could not read a non-blank body as JSON.
|
|
19
|
+
public bool Unreadable;
|
|
20
|
+
|
|
21
|
+
private const int PreviewLength = 160;
|
|
22
|
+
|
|
16
23
|
public Response(Dictionary<string, object?>? resmap)
|
|
17
24
|
{
|
|
18
25
|
resmap ??= new Dictionary<string, object?>();
|
|
@@ -41,5 +48,73 @@ public class Response
|
|
|
41
48
|
{
|
|
42
49
|
Err = er;
|
|
43
50
|
}
|
|
51
|
+
|
|
52
|
+
Unreadable = StructUtils.GetProp(resmap, "unreadable") is true;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// A body that is not JSON. An HTTP failure keeps its own error, with the
|
|
56
|
+
// response described; otherwise the code tells a wrong content type from
|
|
57
|
+
// malformed JSON.
|
|
58
|
+
public static Exception UnreadableBody(Context ctx, int status, object? headers,
|
|
59
|
+
object? text, object? sent, Exception? failed)
|
|
60
|
+
{
|
|
61
|
+
var type = HeaderValue(headers, "content-type");
|
|
62
|
+
var agent = Clean(ctx, HeaderValue(sent, "user-agent"));
|
|
63
|
+
var detail = "HTTP " + status + ", content-type " + (type == "" ? "none" : type) +
|
|
64
|
+
", user-agent " + (agent == "" ? "transport default" : agent) +
|
|
65
|
+
(text == null ? "" : ", body: " + Preview(ctx, text));
|
|
66
|
+
|
|
67
|
+
if (failed is ProjectNameError sdkErr)
|
|
68
|
+
{
|
|
69
|
+
sdkErr.SetMessage(sdkErr.Message + " (" + detail + ")");
|
|
70
|
+
return sdkErr;
|
|
71
|
+
}
|
|
72
|
+
if (failed != null)
|
|
73
|
+
{
|
|
74
|
+
return new Exception(failed.Message + " (" + detail + ")", failed);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return type == "" || type.Contains("json", StringComparison.OrdinalIgnoreCase)
|
|
78
|
+
? ctx.MakeError("response_json_invalid", "response: body is not valid JSON (" + detail + ")")
|
|
79
|
+
: ctx.MakeError("response_content_type",
|
|
80
|
+
"response: expected JSON, got " + type + " (" + detail + ")");
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
private static string HeaderValue(object? headers, string name)
|
|
84
|
+
{
|
|
85
|
+
if (headers is IDictionary<string, object?> map)
|
|
86
|
+
{
|
|
87
|
+
foreach (var kv in map)
|
|
88
|
+
{
|
|
89
|
+
if (string.Equals(kv.Key, name, StringComparison.OrdinalIgnoreCase))
|
|
90
|
+
{
|
|
91
|
+
return kv.Value?.ToString() ?? "";
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return "";
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
private static string Clean(Context ctx, string s)
|
|
99
|
+
{
|
|
100
|
+
return ctx.Utility?.Clean(ctx, s)?.ToString() ?? s;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Cleaned whole: a secret the bound would split could leave its prefix.
|
|
104
|
+
private static string Preview(Context ctx, object text)
|
|
105
|
+
{
|
|
106
|
+
var flat = Clean(ctx, Regex.Replace(text.ToString() ?? "", @"\s+", " ").Trim());
|
|
107
|
+
var count = 0;
|
|
108
|
+
var end = 0;
|
|
109
|
+
foreach (var rune in flat.EnumerateRunes())
|
|
110
|
+
{
|
|
111
|
+
if (count == PreviewLength)
|
|
112
|
+
{
|
|
113
|
+
return flat.Substring(0, end) + "...";
|
|
114
|
+
}
|
|
115
|
+
count++;
|
|
116
|
+
end += rune.Utf16SequenceLength;
|
|
117
|
+
}
|
|
118
|
+
return flat;
|
|
44
119
|
}
|
|
45
120
|
}
|
|
@@ -17,6 +17,9 @@ public class Spec
|
|
|
17
17
|
public object? Body;
|
|
18
18
|
public string Url = "";
|
|
19
19
|
public string Path = "";
|
|
20
|
+
// The query parameters PrepareAuth placed: the credential, which the
|
|
21
|
+
// request sends and the entity's match leaves out.
|
|
22
|
+
public List<string> AuthQuery = new();
|
|
20
23
|
|
|
21
24
|
public Spec(Dictionary<string, object?>? specmap)
|
|
22
25
|
{
|
|
@@ -58,6 +58,16 @@ public class TestFeature : BaseFeature
|
|
|
58
58
|
{
|
|
59
59
|
if (data == null || ctx2.Point == null) { return data; }
|
|
60
60
|
var tm = StructUtils.GetProp(ctx2.Point, "transform");
|
|
61
|
+
var key = ItemEnvelopeKey(StructUtils.GetProp(tm, "res"));
|
|
62
|
+
if (key != null && data is System.Collections.IList items)
|
|
63
|
+
{
|
|
64
|
+
var wrapped = new List<object?>();
|
|
65
|
+
foreach (var item in items)
|
|
66
|
+
{
|
|
67
|
+
wrapped.Add(new Dictionary<string, object?> { [key] = item });
|
|
68
|
+
}
|
|
69
|
+
return wrapped;
|
|
70
|
+
}
|
|
61
71
|
if (StructUtils.GetProp(tm, "res") is not string spec) { return data; }
|
|
62
72
|
// Rebuild whatever nesting the transform unwraps. Multi-segment on purpose:
|
|
63
73
|
// GraphQL ops unwrap `body.data.<field>`, not just one envelope property.
|
|
@@ -160,7 +170,7 @@ public class TestFeature : BaseFeature
|
|
|
160
170
|
var outval = StructUtils.Clone(found);
|
|
161
171
|
return Respond(200, outval, null);
|
|
162
172
|
}
|
|
163
|
-
else if (op.Name == "update")
|
|
173
|
+
else if (op.Name == "update" || op.Name == "patch")
|
|
164
174
|
{
|
|
165
175
|
// Match the existing entity by id only (or its alias).
|
|
166
176
|
// Reqdata also contains the new field values, which would
|
|
@@ -198,7 +208,7 @@ public class TestFeature : BaseFeature
|
|
|
198
208
|
}
|
|
199
209
|
if (ent is Dictionary<string, object?> && ctx2.Reqdata != null)
|
|
200
210
|
{
|
|
201
|
-
StructUtils.Merge(new List<object?> { ent, ctx2.Reqdata });
|
|
211
|
+
StructUtils.Merge(new List<object?> { ent, Record(ctx2.Reqdata) });
|
|
202
212
|
}
|
|
203
213
|
StructUtils.DelProp(ent, "$KEY");
|
|
204
214
|
var outval = StructUtils.Clone(ent);
|
|
@@ -226,7 +236,7 @@ public class TestFeature : BaseFeature
|
|
|
226
236
|
Random.Shared.Next(0x10000), Random.Shared.Next(0x10000),
|
|
227
237
|
Random.Shared.Next(0x10000), Random.Shared.Next(0x10000));
|
|
228
238
|
|
|
229
|
-
var ent = StructUtils.Clone(ctx2.Reqdata);
|
|
239
|
+
var ent = StructUtils.Clone(Record(ctx2.Reqdata));
|
|
230
240
|
if (ent is Dictionary<string, object?> entm)
|
|
231
241
|
{
|
|
232
242
|
entm["id"] = id;
|
|
@@ -328,6 +338,34 @@ public class TestFeature : BaseFeature
|
|
|
328
338
|
};
|
|
329
339
|
}
|
|
330
340
|
|
|
341
|
+
// The record the mock keeps: the request data without `$body`, which only the
|
|
342
|
+
// wire carries.
|
|
343
|
+
private static Dictionary<string, object?>? Record(Dictionary<string, object?>? reqdata)
|
|
344
|
+
{
|
|
345
|
+
if (reqdata == null)
|
|
346
|
+
{
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
var rec = new Dictionary<string, object?>(reqdata);
|
|
350
|
+
rec.Remove("$body");
|
|
351
|
+
return rec;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
// The key a list's response transform
|
|
355
|
+
// ["`$EACH`", "body", {"`$MERGE`": "`.<key>`"}] reads each item's record under.
|
|
356
|
+
private static string? ItemEnvelopeKey(object? restf)
|
|
357
|
+
{
|
|
358
|
+
if (restf is not System.Collections.IList spec || spec.Count != 3 ||
|
|
359
|
+
!"`$EACH`".Equals(spec[0]) || !"body".Equals(spec[1]) ||
|
|
360
|
+
spec[2] is not System.Collections.IDictionary child ||
|
|
361
|
+
child["`$MERGE`"] is not string merge)
|
|
362
|
+
{
|
|
363
|
+
return null;
|
|
364
|
+
}
|
|
365
|
+
var m = System.Text.RegularExpressions.Regex.Match(merge, "^`\\.([^.`$]+)`$");
|
|
366
|
+
return m.Success ? m.Groups[1].Value : null;
|
|
367
|
+
}
|
|
368
|
+
|
|
331
369
|
private static object BuildArgs(Context ctx, Operation op, Dictionary<string, object?>? args)
|
|
332
370
|
{
|
|
333
371
|
var opname = op.Name;
|
|
@@ -49,16 +49,44 @@ public class TimeoutFeature : BaseFeature
|
|
|
49
49
|
return inner(ctx, url, fetchdef);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
// The deadline runs from here, not from the wait below: a caller paused
|
|
53
|
+
// between the two would otherwise find a late response complete and
|
|
54
|
+
// take it. The worker notes when it finished, so a response or a
|
|
55
|
+
// failure after the deadline is a timeout however late the caller looks.
|
|
56
|
+
var now = FoptNow(_options);
|
|
57
|
+
var start = now();
|
|
58
|
+
long arrived = long.MaxValue;
|
|
59
|
+
var task = Task.Run(() =>
|
|
60
|
+
{
|
|
61
|
+
try
|
|
62
|
+
{
|
|
63
|
+
return inner(ctx, url, fetchdef);
|
|
64
|
+
}
|
|
65
|
+
finally
|
|
66
|
+
{
|
|
67
|
+
Interlocked.Exchange(ref arrived, now());
|
|
68
|
+
}
|
|
69
|
+
});
|
|
53
70
|
|
|
54
|
-
|
|
71
|
+
var remaining = Math.Max(0L, ms - (now() - start));
|
|
72
|
+
if (task == Task.WhenAny(task, Task.Delay(TimeSpan.FromMilliseconds(remaining)))
|
|
73
|
+
.GetAwaiter().GetResult())
|
|
55
74
|
{
|
|
75
|
+
if (ms < Interlocked.Read(ref arrived) - start)
|
|
76
|
+
{
|
|
77
|
+
throw TimedOut(ctx, ms);
|
|
78
|
+
}
|
|
56
79
|
// Unwraps any inner exception.
|
|
57
80
|
return task.GetAwaiter().GetResult();
|
|
58
81
|
}
|
|
59
82
|
|
|
83
|
+
throw TimedOut(ctx, ms);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
private Exception TimedOut(Context ctx, int ms)
|
|
87
|
+
{
|
|
60
88
|
Track(ms);
|
|
61
|
-
|
|
89
|
+
return ctx.MakeError("timeout", $"Request exceeded timeout of {ms}ms");
|
|
62
90
|
}
|
|
63
91
|
|
|
64
92
|
private void Track(int ms)
|
|
@@ -207,6 +207,8 @@ public class ValidateFeature : BaseFeature
|
|
|
207
207
|
// custom-action call would be rejected for the one key that made it
|
|
208
208
|
// reachable.
|
|
209
209
|
outmap.Remove("$action");
|
|
210
|
+
// Nor is `$body`, the raw request body.
|
|
211
|
+
outmap.Remove("$body");
|
|
210
212
|
|
|
211
213
|
return outmap;
|
|
212
214
|
}
|
|
@@ -342,6 +342,41 @@ public class FeatureTimeoutTest
|
|
|
342
342
|
Assert.Equal(1, f.Count);
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
+
// The deadline runs from the request's start, not from the wait: a response
|
|
346
|
+
// that arrives after it is a timeout even when the caller only looks once it
|
|
347
|
+
// is complete. The clock stands at the start for the caller and 300 ms
|
|
348
|
+
// later for the worker.
|
|
349
|
+
[Fact]
|
|
350
|
+
public void LateResponseTimesOutHoweverLateTheCallerLooks()
|
|
351
|
+
{
|
|
352
|
+
if (Fh.SkipWithout("timeout")) return;
|
|
353
|
+
var f = new TimeoutFeature();
|
|
354
|
+
var h = Fh.Make(null, (f, new Dictionary<string, object?> { ["ms"] = 20, ["now"] = WorkerClock(300L) }));
|
|
355
|
+
var res = h.Op(new FhOpSpec { Op = "load" });
|
|
356
|
+
Assert.Equal("timeout", Fh.ErrCode(res.Err));
|
|
357
|
+
Assert.Equal(1, f.Count);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// A transport failure after the deadline is a timeout too, not the failure.
|
|
361
|
+
[Fact]
|
|
362
|
+
public void LateFailureTimesOut()
|
|
363
|
+
{
|
|
364
|
+
if (Fh.SkipWithout("timeout")) return;
|
|
365
|
+
var f = new TimeoutFeature();
|
|
366
|
+
var h = Fh.Make((ctx, url, fetchdef) => throw new InvalidOperationException("socket closed"),
|
|
367
|
+
(f, new Dictionary<string, object?> { ["ms"] = 20, ["now"] = WorkerClock(300L) }));
|
|
368
|
+
var res = h.Op(new FhOpSpec { Op = "load" });
|
|
369
|
+
Assert.Equal("timeout", Fh.ErrCode(res.Err));
|
|
370
|
+
Assert.Equal(1, f.Count);
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// A clock standing at 0 for the calling thread and at later for any other.
|
|
374
|
+
private static Func<long> WorkerClock(long later)
|
|
375
|
+
{
|
|
376
|
+
var caller = Thread.CurrentThread.ManagedThreadId;
|
|
377
|
+
return () => Thread.CurrentThread.ManagedThreadId == caller ? 0L : later;
|
|
378
|
+
}
|
|
379
|
+
|
|
345
380
|
[Fact]
|
|
346
381
|
public void FastRequestPasses()
|
|
347
382
|
{
|
|
@@ -41,6 +41,34 @@ public class PipelineTest
|
|
|
41
41
|
return utility.MakeContext(ctxmap, client.GetRootCtx());
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
// A typed collection is a list or a map to a cookie argument, as it is to
|
|
45
|
+
// the rest of the SDK: a List<string> repeats the name, a
|
|
46
|
+
// Dictionary<string, string> sends its keys.
|
|
47
|
+
[Fact]
|
|
48
|
+
public void PrepareHeadersCookieTypedCollections()
|
|
49
|
+
{
|
|
50
|
+
var (client, utility) = PlClient(null);
|
|
51
|
+
var ctx = PlCtx(client, utility, null);
|
|
52
|
+
ctx.Point = new Dictionary<string, object?>
|
|
53
|
+
{
|
|
54
|
+
["args"] = new Dictionary<string, object?>
|
|
55
|
+
{
|
|
56
|
+
["cookie"] = new List<object?>
|
|
57
|
+
{
|
|
58
|
+
new Dictionary<string, object?> { ["name"] = "theme", ["orig"] = "theme", ["kind"] = "cookie" },
|
|
59
|
+
new Dictionary<string, object?> { ["name"] = "prefs", ["orig"] = "prefs", ["kind"] = "cookie" },
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
ctx.Reqmatch = new Dictionary<string, object?>
|
|
64
|
+
{
|
|
65
|
+
["theme"] = new List<string> { "dark", "x y" },
|
|
66
|
+
["prefs"] = new Dictionary<string, string> { ["size"] = "2", ["lang"] = "en gb" },
|
|
67
|
+
};
|
|
68
|
+
var headers = utility.PrepareHeaders(ctx);
|
|
69
|
+
Assert.Equal("theme=dark; theme=x%20y; lang=en%20gb; size=2", headers["cookie"]);
|
|
70
|
+
}
|
|
71
|
+
|
|
44
72
|
private static string ErrCode(Action act)
|
|
45
73
|
{
|
|
46
74
|
try
|
|
@@ -483,6 +483,125 @@ public static class TestRunner
|
|
|
483
483
|
return new ProjectNameError(code, msg, null);
|
|
484
484
|
}
|
|
485
485
|
|
|
486
|
+
// A live check that did not pass, as main.kit.test.live.strict decides:
|
|
487
|
+
// strict fails the test; lenient prints the reason and the caller
|
|
488
|
+
// returns, as xunit 2 has no runtime skip.
|
|
489
|
+
public static void LiveMiss(bool strict, string reason)
|
|
490
|
+
{
|
|
491
|
+
Assert.False(strict, reason);
|
|
492
|
+
Console.WriteLine("skip: " + reason);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
// An account holding no record for the test to read skips either way.
|
|
496
|
+
public static void LiveEmpty(string reason)
|
|
497
|
+
{
|
|
498
|
+
Console.WriteLine("skip: " + reason);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
// A live response that succeeded: no error, ok, and a 2xx status.
|
|
502
|
+
public static bool LiveOk(Dictionary<string, object?> result)
|
|
503
|
+
{
|
|
504
|
+
var status = ProjectNameSdk.Helpers.ToInt(result.TryGetValue("status", out var s) ? s : null);
|
|
505
|
+
return (!result.TryGetValue("err", out var err) || err == null)
|
|
506
|
+
&& Equals(result.TryGetValue("ok", out var ok) ? ok : null, true)
|
|
507
|
+
&& status >= 200 && status < 300;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
// A live list response's records: the body, or the first list an
|
|
511
|
+
// envelope holds.
|
|
512
|
+
public static List<object?>? LiveList(object? data)
|
|
513
|
+
{
|
|
514
|
+
if (data is List<object?> list)
|
|
515
|
+
{
|
|
516
|
+
return list;
|
|
517
|
+
}
|
|
518
|
+
if (data is Dictionary<string, object?> map)
|
|
519
|
+
{
|
|
520
|
+
var keys = new List<string>(map.Keys);
|
|
521
|
+
keys.Sort(StringComparer.Ordinal);
|
|
522
|
+
foreach (var key in keys)
|
|
523
|
+
{
|
|
524
|
+
if (map[key] is List<object?> found)
|
|
525
|
+
{
|
|
526
|
+
return found;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
return null;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
// A live response for a message: the SDK's error, or else its status and
|
|
534
|
+
// content type, never its body.
|
|
535
|
+
public static string LiveDescribe(Dictionary<string, object?> result)
|
|
536
|
+
{
|
|
537
|
+
if (result.TryGetValue("err", out var err) && err != null)
|
|
538
|
+
{
|
|
539
|
+
return err is Exception e ? e.Message : (err.ToString() ?? "");
|
|
540
|
+
}
|
|
541
|
+
var output = "HTTP " + (result.TryGetValue("status", out var status) ? status : null);
|
|
542
|
+
if (result.TryGetValue("headers", out var headers) &&
|
|
543
|
+
headers is Dictionary<string, object?> hmap)
|
|
544
|
+
{
|
|
545
|
+
foreach (var entry in hmap)
|
|
546
|
+
{
|
|
547
|
+
if (string.Equals(entry.Key, "content-type", StringComparison.OrdinalIgnoreCase)
|
|
548
|
+
&& entry.Value != null)
|
|
549
|
+
{
|
|
550
|
+
output += " " + (entry.Value.ToString() ?? "").Split(';')[0].Trim();
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
return output;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
// The record a create-less flow reads live: the first its list returns,
|
|
558
|
+
// put where the flow reads the fixture's existing records. False once
|
|
559
|
+
// the test is settled and has to return.
|
|
560
|
+
public static bool LiveExisting(Dictionary<string, object?> data, bool strict, string name,
|
|
561
|
+
Func<object?> list)
|
|
562
|
+
{
|
|
563
|
+
object? found;
|
|
564
|
+
try
|
|
565
|
+
{
|
|
566
|
+
found = list();
|
|
567
|
+
}
|
|
568
|
+
catch (Exception e)
|
|
569
|
+
{
|
|
570
|
+
LiveMiss(strict, "Live list discovery failed: " + e.Message);
|
|
571
|
+
return false;
|
|
572
|
+
}
|
|
573
|
+
if (found is not List<object?> items)
|
|
574
|
+
{
|
|
575
|
+
LiveMiss(strict, "Live list discovery returned no list");
|
|
576
|
+
return false;
|
|
577
|
+
}
|
|
578
|
+
if (items.Count == 0)
|
|
579
|
+
{
|
|
580
|
+
LiveEmpty("The account has no " + name + " record to load");
|
|
581
|
+
return false;
|
|
582
|
+
}
|
|
583
|
+
var record = items[0] is IEntity ent ? ent.Data() : items[0];
|
|
584
|
+
if (!(data.TryGetValue("existing", out var existing) &&
|
|
585
|
+
existing is Dictionary<string, object?> emap))
|
|
586
|
+
{
|
|
587
|
+
emap = new Dictionary<string, object?>();
|
|
588
|
+
data["existing"] = emap;
|
|
589
|
+
}
|
|
590
|
+
emap[name] = new Dictionary<string, object?> { ["live01"] = record };
|
|
591
|
+
return true;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
// In a lenient live run a failing check is reported and the test
|
|
595
|
+
// returns, observing the live API rather than failing on it.
|
|
596
|
+
public static void LiveObserve(Exception err, bool live, bool strict)
|
|
597
|
+
{
|
|
598
|
+
if (strict || !live)
|
|
599
|
+
{
|
|
600
|
+
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(err).Throw();
|
|
601
|
+
}
|
|
602
|
+
Console.WriteLine("skip: live run, main.kit.test.live.strict is false: " + err.Message);
|
|
603
|
+
}
|
|
604
|
+
|
|
486
605
|
// EntityListToData extracts data maps from a list of entity objects.
|
|
487
606
|
public static List<object?> EntityListToData(List<object?> list)
|
|
488
607
|
{
|
|
@@ -1391,8 +1391,9 @@ public class SecretsFeatureTest
|
|
|
1391
1391
|
["feature"] = ExchangeOpts(null),
|
|
1392
1392
|
});
|
|
1393
1393
|
|
|
1394
|
+
var results = new Dictionary<string, object?>[4];
|
|
1394
1395
|
Parallel.For(0, 4, i =>
|
|
1395
|
-
client.Direct(new Dictionary<string, object?> { ["path"] = "/p" + i }));
|
|
1396
|
+
results[i] = client.Direct(new Dictionary<string, object?> { ["path"] = "/p" + i }));
|
|
1396
1397
|
|
|
1397
1398
|
// REPORTS WHAT WENT OUT, not just how many. This assertion failed
|
|
1398
1399
|
// once in CI and passed on re-run, and the count alone could not
|
|
@@ -1400,10 +1401,14 @@ public class SecretsFeatureTest
|
|
|
1400
1401
|
// purchases (the coalescing missed) or none (the exchange never
|
|
1401
1402
|
// ran). By the time anyone looked, the re-run had replaced the
|
|
1402
1403
|
// job log and the number was gone. Report() exists for exactly
|
|
1403
|
-
// this, and the sibling assertions already use it.
|
|
1404
|
+
// this, and the sibling assertions already use it. The results
|
|
1405
|
+
// ride along because Direct returns its error: a purchase that
|
|
1406
|
+
// never ran leaves nothing on the wire, and only they say why.
|
|
1404
1407
|
Assert.True(1 == w.Token().Count,
|
|
1405
1408
|
"four operations at once must open exactly ONE token request, saw " +
|
|
1406
|
-
w.Token().Count + " — calls: " + w.Report()
|
|
1409
|
+
w.Token().Count + " — calls: " + w.Report() + " — results: " +
|
|
1410
|
+
string.Join(", ", Array.ConvertAll(results,
|
|
1411
|
+
r => "ok=" + r["ok"] + " err=" + ErrMessage(r))));
|
|
1407
1412
|
}
|
|
1408
1413
|
finally
|
|
1409
1414
|
{
|
|
@@ -72,9 +72,20 @@ public static partial class SdkUtility
|
|
|
72
72
|
|
|
73
73
|
using var req = new HttpRequestMessage(new HttpMethod(method), fullurl);
|
|
74
74
|
|
|
75
|
-
if (fetchdef.TryGetValue("body", out var braw)
|
|
75
|
+
if (fetchdef.TryGetValue("body", out var braw))
|
|
76
76
|
{
|
|
77
|
-
|
|
77
|
+
if (braw is string body && body != "")
|
|
78
|
+
{
|
|
79
|
+
req.Content = new StringContent(body, Encoding.UTF8, "application/json");
|
|
80
|
+
}
|
|
81
|
+
else if (braw is byte[] bytes)
|
|
82
|
+
{
|
|
83
|
+
req.Content = new ByteArrayContent(bytes);
|
|
84
|
+
}
|
|
85
|
+
else if (braw is Stream stream)
|
|
86
|
+
{
|
|
87
|
+
req.Content = new StreamContent(stream);
|
|
88
|
+
}
|
|
78
89
|
}
|
|
79
90
|
|
|
80
91
|
var hasUA = false;
|
|
@@ -102,11 +113,16 @@ public static partial class SdkUtility
|
|
|
102
113
|
}
|
|
103
114
|
}
|
|
104
115
|
// Default User-Agent - some CDNs block requests without one. Use a
|
|
105
|
-
// Mozilla-shaped UA unless the caller already set one
|
|
116
|
+
// Mozilla-shaped UA unless the caller already set one, and record it
|
|
117
|
+
// with the headers the request sent.
|
|
106
118
|
if (!hasUA)
|
|
107
119
|
{
|
|
108
|
-
|
|
109
|
-
|
|
120
|
+
var agent = "Mozilla/5.0 (compatible; ProjectNameSDK/1.0)";
|
|
121
|
+
req.Headers.TryAddWithoutValidation("User-Agent", agent);
|
|
122
|
+
if (hraw is Dictionary<string, object?> sent)
|
|
123
|
+
{
|
|
124
|
+
sent["user-agent"] = agent;
|
|
125
|
+
}
|
|
110
126
|
}
|
|
111
127
|
|
|
112
128
|
using var resp = ClientFor(fetchdef).Send(req, HttpCompletionOption.ResponseContentRead);
|
|
@@ -122,7 +138,8 @@ public static partial class SdkUtility
|
|
|
122
138
|
}
|
|
123
139
|
|
|
124
140
|
object? jsonBody = null;
|
|
125
|
-
|
|
141
|
+
var unreadable = false;
|
|
142
|
+
if (!string.IsNullOrWhiteSpace(bodyText))
|
|
126
143
|
{
|
|
127
144
|
try
|
|
128
145
|
{
|
|
@@ -131,7 +148,7 @@ public static partial class SdkUtility
|
|
|
131
148
|
}
|
|
132
149
|
catch (JsonException)
|
|
133
150
|
{
|
|
134
|
-
|
|
151
|
+
unreadable = true;
|
|
135
152
|
}
|
|
136
153
|
}
|
|
137
154
|
|
|
@@ -144,6 +161,7 @@ public static partial class SdkUtility
|
|
|
144
161
|
["headers"] = resheaders,
|
|
145
162
|
["json"] = (Func<object?>)(() => jsonBody),
|
|
146
163
|
["body"] = bodyText,
|
|
164
|
+
["unreadable"] = unreadable,
|
|
147
165
|
};
|
|
148
166
|
}
|
|
149
167
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
// ProjectName SDK utility: makeFetchDef.
|
|
2
2
|
|
|
3
|
-
using Voxgig.Struct;
|
|
4
|
-
|
|
5
3
|
namespace ProjectNameSdk.Util;
|
|
6
4
|
|
|
7
5
|
public static partial class SdkUtility
|
|
@@ -28,9 +26,7 @@ public static partial class SdkUtility
|
|
|
28
26
|
|
|
29
27
|
if (spec.Body != null)
|
|
30
28
|
{
|
|
31
|
-
fetchdef["body"] = spec.Body
|
|
32
|
-
? StructUtils.Jsonify(spec.Body)
|
|
33
|
-
: spec.Body;
|
|
29
|
+
fetchdef["body"] = RequestBody(ctx.Point, spec.Body);
|
|
34
30
|
}
|
|
35
31
|
|
|
36
32
|
return fetchdef;
|
|
@@ -366,14 +366,15 @@ public static partial class SdkUtility
|
|
|
366
366
|
|
|
367
367
|
// A feature's name is not a field name: a feature called `secrets` does
|
|
368
368
|
// not make every one of its options a secret. Entity blocks (entity
|
|
369
|
-
// settings, seeded records) hold no credential
|
|
369
|
+
// settings, seeded records) hold no credential, and nor do rbac's rules,
|
|
370
|
+
// keyed by entity and operation names.
|
|
370
371
|
private static void CleanAddOptions(Context cleanctx, Dictionary<string, object?> opts,
|
|
371
372
|
params string[] omit)
|
|
372
373
|
{
|
|
373
374
|
var top = CleanOmit(opts, omit.Append("feature").Append("entity").ToArray());
|
|
374
375
|
if (top.ContainsKey("test"))
|
|
375
376
|
{
|
|
376
|
-
top["test"] =
|
|
377
|
+
top["test"] = CleanPlain(top["test"], null);
|
|
377
378
|
}
|
|
378
379
|
CleanAddSensitive(cleanctx, top);
|
|
379
380
|
var feature = opts.GetValueOrDefault("feature");
|
|
@@ -381,14 +382,15 @@ public static partial class SdkUtility
|
|
|
381
382
|
{
|
|
382
383
|
foreach (DictionaryEntry kv in fmap)
|
|
383
384
|
{
|
|
384
|
-
CleanAddSensitive(cleanctx,
|
|
385
|
+
CleanAddSensitive(cleanctx, CleanPlain(kv.Value, Convert.ToString(kv.Key)));
|
|
385
386
|
}
|
|
386
387
|
}
|
|
387
388
|
else if (feature is IList flist)
|
|
388
389
|
{
|
|
389
390
|
foreach (var entry in flist)
|
|
390
391
|
{
|
|
391
|
-
|
|
392
|
+
var name = entry is IDictionary e && e.Contains("name") ? e["name"] as string : null;
|
|
393
|
+
CleanAddSensitive(cleanctx, CleanPlain(entry, name));
|
|
392
394
|
}
|
|
393
395
|
}
|
|
394
396
|
else
|
|
@@ -397,7 +399,7 @@ public static partial class SdkUtility
|
|
|
397
399
|
}
|
|
398
400
|
}
|
|
399
401
|
|
|
400
|
-
private static object?
|
|
402
|
+
private static object? CleanPlain(object? block, string? name)
|
|
401
403
|
{
|
|
402
404
|
if (block is not IDictionary dict)
|
|
403
405
|
{
|
|
@@ -407,7 +409,7 @@ public static partial class SdkUtility
|
|
|
407
409
|
foreach (DictionaryEntry kv in dict)
|
|
408
410
|
{
|
|
409
411
|
var key = Convert.ToString(kv.Key) ?? "";
|
|
410
|
-
if (key != "entity")
|
|
412
|
+
if (key != "entity" && !("rbac" == name && key == "rules"))
|
|
411
413
|
{
|
|
412
414
|
out_[key] = kv.Value;
|
|
413
415
|
}
|