@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
|
@@ -27,6 +27,15 @@ let substr_contains (hay : string) (needle : string) : bool =
|
|
|
27
27
|
in
|
|
28
28
|
go 0
|
|
29
29
|
|
|
30
|
+
(* Whether a comma-separated allow option names the item: whole names, any case. *)
|
|
31
|
+
let allow_list_has (names : value) (item : string) : bool =
|
|
32
|
+
match names with
|
|
33
|
+
| Str list when item <> "" ->
|
|
34
|
+
let want = String.uppercase_ascii item in
|
|
35
|
+
List.exists (fun name -> String.uppercase_ascii (String.trim name) = want)
|
|
36
|
+
(String.split_on_char ',' list)
|
|
37
|
+
| _ -> false
|
|
38
|
+
|
|
30
39
|
let str_replace_all (s : string) (find : string) (repl : string) : string =
|
|
31
40
|
if find = "" then s
|
|
32
41
|
else begin
|
|
@@ -92,7 +101,8 @@ let new_spec (m : value) : spec =
|
|
|
92
101
|
sp_query = gv "query" (empty_map ());
|
|
93
102
|
sp_step = gs "step" ""; sp_method = gs "method" "GET";
|
|
94
103
|
sp_body = getp m "body";
|
|
95
|
-
sp_url = gs "url" ""; sp_path = gs "path" ""
|
|
104
|
+
sp_url = gs "url" ""; sp_path = gs "path" "";
|
|
105
|
+
sp_authquery = [] }
|
|
96
106
|
|
|
97
107
|
let new_response (m : value) : response =
|
|
98
108
|
{ rs_status = (match getp m "status" with Num n -> int_of_float n | _ -> -1);
|
|
@@ -100,7 +110,8 @@ let new_response (m : value) : response =
|
|
|
100
110
|
rs_headers = getp m "headers";
|
|
101
111
|
rs_json = (match getp m "json" with Func _ as f -> f | _ -> Noval);
|
|
102
112
|
rs_body = getp m "body";
|
|
103
|
-
rs_err = None
|
|
113
|
+
rs_err = None;
|
|
114
|
+
rs_unreadable = (getp m "unreadable" = Bool true) }
|
|
104
115
|
|
|
105
116
|
let new_result (m : value) : result =
|
|
106
117
|
{ rt_ok = (getp m "ok" = Bool true);
|
|
@@ -157,7 +168,7 @@ let resolve_op (ctx : ctx) (opname : string) : operation =
|
|
|
157
168
|
if opname = "" then new_operation (empty_map ())
|
|
158
169
|
else begin
|
|
159
170
|
let opcfg = getpath_s ctx.c_config ("entity." ^ entname ^ ".op." ^ opname) in
|
|
160
|
-
let inpt = if opname = "update" || opname = "create" then "data" else "match" in
|
|
171
|
+
let inpt = if opname = "update" || opname = "create" || opname = "patch" then "data" else "match" in
|
|
161
172
|
let points =
|
|
162
173
|
match to_map opcfg with
|
|
163
174
|
| Map _ -> (match getp opcfg "points" with List _ as l -> l | _ -> empty_list ())
|
|
@@ -588,6 +599,101 @@ let prepare_method_util (ctx : ctx) : string =
|
|
|
588
599
|
* two behaviours: a mistyped or unsupported op quietly fetched. *)
|
|
589
600
|
| _ -> ""
|
|
590
601
|
|
|
602
|
+
(* The arguments a point declares in one location, query or header, each as
|
|
603
|
+
* (name, wire, value): the name it travels under and the value this call
|
|
604
|
+
* passes in its match or else its data. Unlike a path parameter, the
|
|
605
|
+
* entity's stored match and data never supply one. *)
|
|
606
|
+
let call_args (ctx : ctx) (kind : string) : (string * string * value) list =
|
|
607
|
+
match getp (getp ctx.c_point "args") kind with
|
|
608
|
+
| List r ->
|
|
609
|
+
List.filter_map (fun ad ->
|
|
610
|
+
match getp ad "name" with
|
|
611
|
+
| Str name when name <> "" ->
|
|
612
|
+
let wire = match getp ad "orig" with Str o when o <> "" -> o | _ -> name in
|
|
613
|
+
let v = match getp ctx.c_reqmatch name with
|
|
614
|
+
| Noval | Null -> getp ctx.c_reqdata name
|
|
615
|
+
| v -> v
|
|
616
|
+
in
|
|
617
|
+
Some (name, wire, v)
|
|
618
|
+
| _ -> None) !r
|
|
619
|
+
| _ -> []
|
|
620
|
+
|
|
621
|
+
(* ---- media ----
|
|
622
|
+
* The media types a point declares: `response` (the model's `rs`) for the
|
|
623
|
+
* Accept header, and `body` (the model's `rb`) for the request body. *)
|
|
624
|
+
|
|
625
|
+
(* The data key holding a raw request body. Like `$action`, it can never be a
|
|
626
|
+
* declared argument name. *)
|
|
627
|
+
let raw_body_key = "$body"
|
|
628
|
+
|
|
629
|
+
let is_json_media (media : string) : bool =
|
|
630
|
+
let base = match String.index_opt media ';' with
|
|
631
|
+
| Some i -> String.sub media 0 i
|
|
632
|
+
| None -> media in
|
|
633
|
+
let m = String.lowercase_ascii (String.trim base) in
|
|
634
|
+
let n = String.length m in
|
|
635
|
+
m = "application/json" || m = "text/json"
|
|
636
|
+
|| (n >= 5 && String.sub m (n - 5) 5 = "+json")
|
|
637
|
+
|
|
638
|
+
(* The declared JSON type alone, else every declared type in the model's
|
|
639
|
+
* order; nothing when no success response declares a body. *)
|
|
640
|
+
let accept_of (point : value) : string option =
|
|
641
|
+
let res = getp point "response" in
|
|
642
|
+
match getp res "media" with
|
|
643
|
+
| Str media when media <> "" ->
|
|
644
|
+
(match getp res "kind" with
|
|
645
|
+
| Str "json" -> Some media
|
|
646
|
+
| _ ->
|
|
647
|
+
let others = match getp res "alternatives" with
|
|
648
|
+
| List r ->
|
|
649
|
+
List.filter_map (fun alt -> match getp alt "media" with
|
|
650
|
+
| Str m when m <> "" -> Some m
|
|
651
|
+
| _ -> None) !r
|
|
652
|
+
| _ -> [] in
|
|
653
|
+
Some (String.concat ", " (media :: others)))
|
|
654
|
+
| _ -> None
|
|
655
|
+
|
|
656
|
+
let is_raw_request (point : value) : bool =
|
|
657
|
+
match getp (getp point "body") "kind" with Str "raw" -> true | _ -> false
|
|
658
|
+
|
|
659
|
+
let is_json_request (point : value) : bool =
|
|
660
|
+
match getp (getp point "body") "kind" with Str "json" -> true | _ -> false
|
|
661
|
+
|
|
662
|
+
let has_media_header (headers : value) (name : string) : bool =
|
|
663
|
+
List.exists (fun k -> String.lowercase_ascii k = name) (keysof headers)
|
|
664
|
+
|
|
665
|
+
(* A caller's accept wins. A declared request type replaces each JSON
|
|
666
|
+
* content-type, the SDK default, and leaves any other the caller set. *)
|
|
667
|
+
let media_headers (point : value) (headers : value) : unit =
|
|
668
|
+
(match accept_of point with
|
|
669
|
+
| Some accept when not (has_media_header headers "accept") ->
|
|
670
|
+
setp headers "accept" (Str accept)
|
|
671
|
+
| _ -> ());
|
|
672
|
+
let body = getp point "body" in
|
|
673
|
+
match getp body "kind", getp body "media" with
|
|
674
|
+
| Str ("raw" | "json"), Str media when media <> "" ->
|
|
675
|
+
List.iter (fun k ->
|
|
676
|
+
match getp headers k with
|
|
677
|
+
| Str v when String.lowercase_ascii k = "content-type" && is_json_media v ->
|
|
678
|
+
ignore (delprop headers (Str k))
|
|
679
|
+
| _ -> ())
|
|
680
|
+
(keysof headers);
|
|
681
|
+
if not (has_media_header headers "content-type") then
|
|
682
|
+
setp headers "content-type" (Str media)
|
|
683
|
+
| _ -> ()
|
|
684
|
+
|
|
685
|
+
let raw_body (reqdata : value) : value = getp reqdata raw_body_key
|
|
686
|
+
|
|
687
|
+
(* The form style of a cookie parameter: a list repeats the name, a map sends
|
|
688
|
+
* its own keys, and every value is percent-encoded. *)
|
|
689
|
+
let cookie_pair (wire : string) (v : value) : string =
|
|
690
|
+
let esc x = escurl_s (stringify x) in
|
|
691
|
+
let pairs = match v with
|
|
692
|
+
| List items -> List.map (fun item -> wire ^ "=" ^ esc item) !items
|
|
693
|
+
| Map _ -> List.map (fun k -> escurl_s k ^ "=" ^ esc (getp v k)) (keysof v)
|
|
694
|
+
| _ -> [wire ^ "=" ^ esc v] in
|
|
695
|
+
String.concat "; " pairs
|
|
696
|
+
|
|
591
697
|
let prepare_headers_util (ctx : ctx) : value =
|
|
592
698
|
let options = client_options_map (cc ctx) in
|
|
593
699
|
let out =
|
|
@@ -595,58 +701,70 @@ let prepare_headers_util (ctx : ctx) : value =
|
|
|
595
701
|
| Noval -> empty_map ()
|
|
596
702
|
| h -> (match clone h with Map _ as m -> m | _ -> empty_map ())
|
|
597
703
|
in
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
*
|
|
601
|
-
(
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
704
|
+
media_headers ctx.c_point out;
|
|
705
|
+
(* A header argument replaces a default of the same name, whatever its
|
|
706
|
+
* case. *)
|
|
707
|
+
List.iter (fun (_, wire, v) ->
|
|
708
|
+
match v with
|
|
709
|
+
| Noval | Null -> ()
|
|
710
|
+
| v ->
|
|
711
|
+
let key = String.lowercase_ascii wire in
|
|
712
|
+
List.iter (fun k ->
|
|
713
|
+
if String.lowercase_ascii k = key then ignore (delprop out (Str k)))
|
|
714
|
+
(keysof out);
|
|
715
|
+
setp out key (Str (stringify v)))
|
|
716
|
+
(call_args ctx "header");
|
|
717
|
+
(* A cookie argument travels in the cookie header, form serialized and
|
|
718
|
+
* percent-encoded, replacing a cookie of the same name among those the
|
|
719
|
+
* caller's headers already send. *)
|
|
720
|
+
let sent = List.filter (fun (_, _, v) -> match v with Noval | Null -> false | _ -> true)
|
|
721
|
+
(call_args ctx "cookie") in
|
|
722
|
+
if sent <> [] then begin
|
|
723
|
+
let names = List.concat (List.map (fun (_, wire, v) ->
|
|
724
|
+
match v with Map _ -> List.map escurl_s (keysof v) | _ -> [wire]) sent) in
|
|
725
|
+
let given = List.filter (fun k -> String.lowercase_ascii k = "cookie") (keysof out) in
|
|
726
|
+
let kept = List.concat (List.map (fun k ->
|
|
727
|
+
match getp out k with
|
|
728
|
+
| Str s -> cookie_keep s names
|
|
729
|
+
| _ -> []) given) in
|
|
730
|
+
List.iter (fun k -> ignore (delprop out (Str k))) given;
|
|
731
|
+
let pairs = List.filter_map (fun (_, wire, v) ->
|
|
732
|
+
match cookie_pair wire v with "" -> None | pair -> Some pair) sent in
|
|
733
|
+
if kept @ pairs <> [] then setp out "cookie" (Str (String.concat "; " (kept @ pairs)))
|
|
734
|
+
end;
|
|
621
735
|
out
|
|
622
736
|
|
|
737
|
+
(* The name a point gives a parameter in the call, if it renames it. *)
|
|
738
|
+
let param_alias (point : value) (key : string) : string =
|
|
739
|
+
match to_map (getp point "alias") with
|
|
740
|
+
| Map _ as alias -> (match getp alias key with Str s -> s | _ -> "")
|
|
741
|
+
| _ -> ""
|
|
742
|
+
|
|
743
|
+
(* The value the call or its entity gives a point's parameter, under its name
|
|
744
|
+
or the point's alias for it. *)
|
|
745
|
+
let param_value (ctx : ctx) (point : value) (key : string) : value =
|
|
746
|
+
let akey = param_alias point key in
|
|
747
|
+
let v = ref (getp ctx.c_reqmatch key) in
|
|
748
|
+
if is_noval !v then v := getp ctx.c_match key;
|
|
749
|
+
if is_noval !v && akey <> "" then v := getp ctx.c_reqmatch akey;
|
|
750
|
+
if is_noval !v then v := getp ctx.c_reqdata key;
|
|
751
|
+
if is_noval !v then v := getp ctx.c_data key;
|
|
752
|
+
if is_noval !v && akey <> "" then begin
|
|
753
|
+
v := getp ctx.c_reqdata akey;
|
|
754
|
+
if is_noval !v then v := getp ctx.c_data akey
|
|
755
|
+
end;
|
|
756
|
+
!v
|
|
757
|
+
|
|
623
758
|
let param_util (ctx : ctx) (paramdef : value) : value =
|
|
624
|
-
let point = ctx.c_point and spec = ctx.c_spec in
|
|
625
|
-
let mtch = ctx.c_match and reqmatch = ctx.c_reqmatch
|
|
626
|
-
and data = ctx.c_data and reqdata = ctx.c_reqdata in
|
|
627
759
|
let pt = typify paramdef in
|
|
628
760
|
let key =
|
|
629
761
|
if (t_string land pt) > 0 then (match paramdef with Str s -> s | _ -> "")
|
|
630
762
|
else (match getp paramdef "name" with Str s -> s | _ -> "")
|
|
631
763
|
in
|
|
632
|
-
let akey =
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
in
|
|
637
|
-
let v = ref (getp reqmatch key) in
|
|
638
|
-
if is_noval !v then v := getp mtch key;
|
|
639
|
-
if is_noval !v && akey <> "" then begin
|
|
640
|
-
(match spec with Some sp -> setp sp.sp_alias akey (Str key) | None -> ());
|
|
641
|
-
v := getp reqmatch akey
|
|
642
|
-
end;
|
|
643
|
-
if is_noval !v then v := getp reqdata key;
|
|
644
|
-
if is_noval !v then v := getp data key;
|
|
645
|
-
if is_noval !v && akey <> "" then begin
|
|
646
|
-
v := getp reqdata akey;
|
|
647
|
-
if is_noval !v then v := getp data akey
|
|
648
|
-
end;
|
|
649
|
-
!v
|
|
764
|
+
let akey = param_alias ctx.c_point key in
|
|
765
|
+
if akey <> "" && is_noval (getp ctx.c_reqmatch key) && is_noval (getp ctx.c_match key) then
|
|
766
|
+
(match ctx.c_spec with Some sp -> setp sp.sp_alias akey (Str key) | None -> ());
|
|
767
|
+
param_value ctx ctx.c_point key
|
|
650
768
|
|
|
651
769
|
let prepare_params_util (ctx : ctx) : value =
|
|
652
770
|
let params =
|
|
@@ -679,13 +797,26 @@ let prepare_query_util (ctx : ctx) : value =
|
|
|
679
797
|
| List r -> List.map (fun pd -> getp pd "name") !r
|
|
680
798
|
| _ -> []
|
|
681
799
|
in
|
|
682
|
-
(* A header parameter travels in the headers, which
|
|
800
|
+
(* A header or cookie parameter travels in the headers, which
|
|
801
|
+
* prepare_headers fills, unless a query parameter shares its name: then
|
|
802
|
+
* both are sent. *)
|
|
803
|
+
let declared =
|
|
804
|
+
match getp (getp ctx.c_point "args") "query" with
|
|
805
|
+
| List r -> List.map (fun qd -> getp qd "name") !r
|
|
806
|
+
| _ -> []
|
|
807
|
+
in
|
|
683
808
|
let header_names =
|
|
684
809
|
match getp (getp ctx.c_point "args") "header" with
|
|
685
810
|
| List r -> List.map (fun hd -> getp hd "name") !r
|
|
686
811
|
| _ -> []
|
|
687
812
|
in
|
|
688
|
-
let
|
|
813
|
+
let cookie_names =
|
|
814
|
+
match getp (getp ctx.c_point "args") "cookie" with
|
|
815
|
+
| List r -> List.map (fun cd -> getp cd "name") !r
|
|
816
|
+
| _ -> []
|
|
817
|
+
in
|
|
818
|
+
let elsewhere = List.filter (fun n -> not (List.mem n declared)) (header_names @ cookie_names) in
|
|
819
|
+
let params = params @ arg_names @ elsewhere in
|
|
689
820
|
let contains_param s = List.exists (fun v -> match v with Str x -> x = s | _ -> false) params in
|
|
690
821
|
(* A query parameter travels under the name the definition gives it, its
|
|
691
822
|
* orig, which the model may have renamed for the caller. *)
|
|
@@ -705,10 +836,18 @@ let prepare_query_util (ctx : ctx) : value =
|
|
|
705
836
|
if not (is_noval v) && k <> "$action" && not (contains_param k) then
|
|
706
837
|
setp out (wire_name k) v)
|
|
707
838
|
(keysof reqmatch);
|
|
839
|
+
(* A create or update passes its query arguments in its data. *)
|
|
840
|
+
List.iter (fun (name, orig, v) ->
|
|
841
|
+
match v with
|
|
842
|
+
| Noval | Null -> ()
|
|
843
|
+
| v -> if not (contains_param name) then setp out orig v)
|
|
844
|
+
(call_args ctx "query");
|
|
708
845
|
out
|
|
709
846
|
|
|
710
847
|
let prepare_body_util (ctx : ctx) : value =
|
|
711
|
-
if ctx.c_op.op_input
|
|
848
|
+
if ctx.c_op.op_input <> "data" then Noval
|
|
849
|
+
else if is_raw_request ctx.c_point then raw_body ctx.c_reqdata
|
|
850
|
+
else (cu ctx).u_transform_request ctx
|
|
712
851
|
|
|
713
852
|
(* ---- graphql (transport) -------------------------------------------------
|
|
714
853
|
*
|
|
@@ -859,18 +998,28 @@ let omit_keys (reqdata : value) (names : string list) : value =
|
|
|
859
998
|
untouched. *)
|
|
860
999
|
let strip_action (reqdata : value) : value = omit_keys reqdata ["$action"]
|
|
861
1000
|
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
1001
|
+
let field_arg (ctx : ctx) (name : string) : bool =
|
|
1002
|
+
List.exists (fun kind ->
|
|
1003
|
+
match getp (getp ctx.c_point "args") kind with
|
|
1004
|
+
| List r ->
|
|
1005
|
+
List.exists (fun ad ->
|
|
1006
|
+
match getp ad "name", getp ad "field" with
|
|
1007
|
+
| Str n, Bool true -> n = name
|
|
1008
|
+
| _ -> false) !r
|
|
1009
|
+
| _ -> false)
|
|
1010
|
+
["header"; "cookie"; "query"]
|
|
1011
|
+
|
|
1012
|
+
(* A header, cookie or query argument travels where prepare_headers_util or
|
|
1013
|
+
prepare_query_util sends it, so the body is built from the request data
|
|
1014
|
+
without it, unless the entity declares it as a field too. *)
|
|
1015
|
+
let routed_arg_names (ctx : ctx) : string list =
|
|
1016
|
+
List.filter (fun name -> not (field_arg ctx name))
|
|
1017
|
+
(List.map (fun (name, _, _) -> name)
|
|
1018
|
+
(call_args ctx "header" @ call_args ctx "cookie" @ call_args ctx "query"))
|
|
870
1019
|
|
|
871
1020
|
let transform_request_util (ctx : ctx) : value =
|
|
872
1021
|
(match ctx.c_spec with Some s -> s.sp_step <- "reqform" | None -> ());
|
|
873
|
-
let data = omit_keys ctx.c_reqdata (
|
|
1022
|
+
let data = omit_keys ctx.c_reqdata (routed_arg_names ctx) in
|
|
874
1023
|
strip_action
|
|
875
1024
|
(match to_map (getp ctx.c_point "transform") with
|
|
876
1025
|
| Map _ as tr ->
|
|
@@ -914,11 +1063,64 @@ let result_basic_util (ctx : ctx) : unit =
|
|
|
914
1063
|
end else (match response.rs_err with Some e -> result.rt_err <- Some e | None -> ())
|
|
915
1064
|
| _ -> ()
|
|
916
1065
|
|
|
1066
|
+
let preview_length = 160
|
|
1067
|
+
|
|
1068
|
+
(* Whitespace runs as one space, trimmed. *)
|
|
1069
|
+
let flatten_space (s : string) : string =
|
|
1070
|
+
let b = Buffer.create (String.length s) in
|
|
1071
|
+
let space = ref false in
|
|
1072
|
+
String.iter (fun c ->
|
|
1073
|
+
match c with
|
|
1074
|
+
| ' ' | '\t' | '\n' | '\r' | '\011' | '\012' -> space := Buffer.length b > 0
|
|
1075
|
+
| _ ->
|
|
1076
|
+
if !space then (Buffer.add_char b ' '; space := false);
|
|
1077
|
+
Buffer.add_char b c) s;
|
|
1078
|
+
Buffer.contents b
|
|
1079
|
+
|
|
1080
|
+
(* Cleaned whole: a secret the bound would split could leave its prefix. *)
|
|
1081
|
+
let body_preview (ctx : ctx) (text : value) : string =
|
|
1082
|
+
let flat = vstring (clean_util ctx (Str (flatten_space (vstring text)))) in
|
|
1083
|
+
let n = String.length flat in
|
|
1084
|
+
let rec cut i points =
|
|
1085
|
+
if i >= n then flat
|
|
1086
|
+
else if Char.code flat.[i] land 0xC0 = 0x80 then cut (i + 1) points
|
|
1087
|
+
else if points = preview_length then String.sub flat 0 i ^ "..."
|
|
1088
|
+
else cut (i + 1) (points + 1) in
|
|
1089
|
+
cut 0 0
|
|
1090
|
+
|
|
1091
|
+
(* A body that is not JSON. An HTTP failure keeps its own error, with the
|
|
1092
|
+
* response described; otherwise the code tells a wrong content type from
|
|
1093
|
+
* malformed JSON. *)
|
|
1094
|
+
let unreadable_body (ctx : ctx) (status : int) (headers : value) (text : value) (sent : value)
|
|
1095
|
+
(failed : sdk_error option) : sdk_error =
|
|
1096
|
+
let ctype = vstring (header_ci headers "content-type") in
|
|
1097
|
+
let agent = vstring (clean_util ctx (Str (vstring (header_ci sent "user-agent")))) in
|
|
1098
|
+
let detail = "HTTP " ^ string_of_int status ^ ", content-type " ^
|
|
1099
|
+
(if ctype = "" then "none" else ctype) ^ ", user-agent " ^
|
|
1100
|
+
(if agent = "" then "transport default" else agent) ^
|
|
1101
|
+
(match text with Noval | Null -> "" | _ -> ", body: " ^ body_preview ctx text) in
|
|
1102
|
+
match failed with
|
|
1103
|
+
| Some e -> e.err_msg <- e.err_msg ^ " (" ^ detail ^ ")"; e
|
|
1104
|
+
| None ->
|
|
1105
|
+
let lower = String.lowercase_ascii ctype in
|
|
1106
|
+
let rec has_json i =
|
|
1107
|
+
i + 4 <= String.length lower && (String.sub lower i 4 = "json" || has_json (i + 1)) in
|
|
1108
|
+
if ctype = "" || has_json 0 then
|
|
1109
|
+
ctx_make_error ctx "response_json_invalid" ("response: body is not valid JSON (" ^ detail ^ ")")
|
|
1110
|
+
else
|
|
1111
|
+
ctx_make_error ctx "response_content_type"
|
|
1112
|
+
("response: expected JSON, got " ^ ctype ^ " (" ^ detail ^ ")")
|
|
1113
|
+
|
|
917
1114
|
let result_body_util (ctx : ctx) : unit =
|
|
918
1115
|
match ctx.c_response, ctx.c_result with
|
|
919
1116
|
| Some response, Some result ->
|
|
920
1117
|
if is_callable response.rs_json && not (is_noval response.rs_body) then
|
|
921
|
-
result.rt_body <- call_json response.rs_json
|
|
1118
|
+
result.rt_body <- call_json response.rs_json;
|
|
1119
|
+
if response.rs_unreadable then begin
|
|
1120
|
+
let sent = match ctx.c_spec with Some sp -> sp.sp_headers | None -> Noval in
|
|
1121
|
+
result.rt_err <- Some (unreadable_body ctx result.rt_status result.rt_headers
|
|
1122
|
+
response.rs_body sent result.rt_err)
|
|
1123
|
+
end
|
|
922
1124
|
| _ -> ()
|
|
923
1125
|
|
|
924
1126
|
let result_headers_util (ctx : ctx) : unit =
|
|
@@ -931,6 +1133,33 @@ let result_headers_util (ctx : ctx) : unit =
|
|
|
931
1133
|
|
|
932
1134
|
(* ----- make_* pipeline stages ----- *)
|
|
933
1135
|
|
|
1136
|
+
(* The {name} placeholders in a text, in order. *)
|
|
1137
|
+
let placeholders (s : string) : string list =
|
|
1138
|
+
let n = String.length s in
|
|
1139
|
+
let rec close j = if j < n && not (String.contains "{}/" s.[j]) then close (j + 1) else j in
|
|
1140
|
+
let rec scan i acc =
|
|
1141
|
+
if i >= n then List.rev acc
|
|
1142
|
+
else if s.[i] <> '{' then scan (i + 1) acc
|
|
1143
|
+
else
|
|
1144
|
+
let j = close (i + 1) in
|
|
1145
|
+
if j < n && s.[j] = '}' && j > i + 1 then scan (j + 1) (String.sub s i (j - i + 1) :: acc)
|
|
1146
|
+
else scan (i + 1) acc
|
|
1147
|
+
in
|
|
1148
|
+
scan 0 []
|
|
1149
|
+
|
|
1150
|
+
(* The path parameters of a point that neither the call nor the entity gives
|
|
1151
|
+
a value for, looked up as param_util looks them up. *)
|
|
1152
|
+
let unfilled_params (ctx : ctx) (point : value) : string list =
|
|
1153
|
+
match getp point "parts" with
|
|
1154
|
+
| List r ->
|
|
1155
|
+
List.filter_map (fun part ->
|
|
1156
|
+
match part with
|
|
1157
|
+
| Str s when placeholders s = [s] ->
|
|
1158
|
+
let name = String.sub s 1 (String.length s - 2) in
|
|
1159
|
+
(match param_value ctx point name with Noval | Null -> Some name | _ -> None)
|
|
1160
|
+
| _ -> None) !r
|
|
1161
|
+
| _ -> []
|
|
1162
|
+
|
|
934
1163
|
let make_point_util (ctx : ctx) : (value * sdk_error option) =
|
|
935
1164
|
match Hashtbl.find_opt ctx.c_out "point" with
|
|
936
1165
|
| Some (OErr e) -> (Noval, Some e)
|
|
@@ -939,7 +1168,7 @@ let make_point_util (ctx : ctx) : (value * sdk_error option) =
|
|
|
939
1168
|
let op = ctx.c_op in
|
|
940
1169
|
let options = ctx.c_options in
|
|
941
1170
|
let allow_op = match getpath_s options "allow.op" with Str s -> s | _ -> "" in
|
|
942
|
-
if not (
|
|
1171
|
+
if not (allow_list_has (getpath_s options "allow.op") op.op_name) then
|
|
943
1172
|
(Noval, Some (ctx_make_error ctx "point_op_allow"
|
|
944
1173
|
("Operation \"" ^ op.op_name ^ "\" not allowed by SDK option allow.op value: \"" ^ allow_op ^ "\"")))
|
|
945
1174
|
else begin
|
|
@@ -1012,11 +1241,25 @@ let make_point_util (ctx : ctx) : (value * sdk_error option) =
|
|
|
1012
1241
|
String.length s > 0 && s.[0] = '{'
|
|
1013
1242
|
| [] -> false)
|
|
1014
1243
|
| _ -> false in
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1244
|
+
let own_point pts =
|
|
1245
|
+
List.fold_left (fun best cand ->
|
|
1246
|
+
let ct = terminal_param cand and bt = terminal_param best in
|
|
1247
|
+
if ct <> bt then (if ct then cand else best)
|
|
1248
|
+
else if parts_len cand < parts_len best then cand else best)
|
|
1249
|
+
(List.hd pts) pts in
|
|
1250
|
+
(* A call without an action falls back to a point without one, as
|
|
1251
|
+
generation does, and only to a route the call can fill. *)
|
|
1252
|
+
let plain = List.filter (fun p ->
|
|
1253
|
+
is_noval (getp (to_map (getp p "select")) "$action")) points in
|
|
1254
|
+
if plain = [] then
|
|
1255
|
+
raise (Sdk_error_exc (ctx_make_error ctx "point_action_required"
|
|
1256
|
+
("Operation \"" ^ op.op_name ^ "\" has only action endpoints; pass $action to choose one.")));
|
|
1257
|
+
match List.filter (fun p -> unfilled_params ctx p = []) plain with
|
|
1258
|
+
| [] ->
|
|
1259
|
+
raise (Sdk_error_exc (ctx_make_error ctx "point_no_match"
|
|
1260
|
+
("Operation \"" ^ op.op_name ^ "\" has no endpoint whose path parameters are all given (missing: " ^
|
|
1261
|
+
String.concat ", " (unfilled_params ctx (own_point plain)) ^ ").")))
|
|
1262
|
+
| fillable -> chosen := own_point fillable
|
|
1020
1263
|
end;
|
|
1021
1264
|
let req_action = getp reqselector "$action" in
|
|
1022
1265
|
if not (is_noval req_action) && not (is_noval !chosen) then begin
|
|
@@ -1046,7 +1289,7 @@ let make_spec_util (ctx : ctx) : (spec option * sdk_error option) =
|
|
|
1046
1289
|
ctx.c_spec <- Some sp;
|
|
1047
1290
|
sp.sp_method <- u.u_prepare_method ctx;
|
|
1048
1291
|
let allow_method = match getpath_s options "allow.method" with Str s -> s | _ -> "" in
|
|
1049
|
-
if not (
|
|
1292
|
+
if not (allow_list_has (getpath_s options "allow.method") sp.sp_method) then
|
|
1050
1293
|
(None, Some (ctx_make_error ctx "spec_method_allow"
|
|
1051
1294
|
("Method \"" ^ sp.sp_method ^ "\" not allowed by SDK option allow.method value: \"" ^ allow_method ^ "\"")))
|
|
1052
1295
|
else begin
|
|
@@ -1071,10 +1314,18 @@ let make_spec_util (ctx : ctx) : (spec option * sdk_error option) =
|
|
|
1071
1314
|
sp.sp_path <- u.u_prepare_path ctx
|
|
1072
1315
|
end;
|
|
1073
1316
|
(match ctx.c_ctrl.ctrl_explain with Map _ -> setp ctx.c_ctrl.ctrl_explain "spec" (spec_to_value sp) | _ -> ());
|
|
1317
|
+
(* Whatever prepare_auth sets in the query, under whichever name, is the
|
|
1318
|
+
* credential; a key it leaves as it was is the caller's. *)
|
|
1319
|
+
let query = List.map (fun k -> (k, getp sp.sp_query k)) (keysof sp.sp_query) in
|
|
1320
|
+
let note (s : spec) =
|
|
1321
|
+
s.sp_authquery <- List.filter (fun k ->
|
|
1322
|
+
match List.assoc_opt k query with
|
|
1323
|
+
| Some was -> not (veq was (getp s.sp_query k))
|
|
1324
|
+
| None -> true) (keysof s.sp_query) in
|
|
1074
1325
|
match u.u_prepare_auth ctx with
|
|
1075
1326
|
| (_, Some err) -> (None, Some err)
|
|
1076
|
-
| (Some spec2, None) -> ctx.c_spec <- Some spec2; (Some spec2, None)
|
|
1077
|
-
| (None, None) -> (Some sp, None)
|
|
1327
|
+
| (Some spec2, None) -> note spec2; ctx.c_spec <- Some spec2; (Some spec2, None)
|
|
1328
|
+
| (None, None) -> note sp; (Some sp, None)
|
|
1078
1329
|
end
|
|
1079
1330
|
|
|
1080
1331
|
let make_url_util (ctx : ctx) : (string * sdk_error option) =
|
|
@@ -1097,16 +1348,31 @@ let make_url_util (ctx : ctx) : (string * sdk_error option) =
|
|
|
1097
1348
|
url := str_replace_all !url ("{" ^ key ^ "}") encoded;
|
|
1098
1349
|
setp resmatch key v
|
|
1099
1350
|
end) (keysof spec.sp_params);
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1351
|
+
(* A placeholder left in the route would send the request to the wrong
|
|
1352
|
+
* route. The base's own placeholders are server variables, resolved with
|
|
1353
|
+
* the options. *)
|
|
1354
|
+
let rec root s = if ends_slash s then root (String.sub s 0 (String.length s - 1)) else s in
|
|
1355
|
+
let base = root spec.sp_base in
|
|
1356
|
+
let blen = String.length base in
|
|
1357
|
+
let route =
|
|
1358
|
+
if String.length !url >= blen && String.sub !url 0 blen = base
|
|
1359
|
+
then String.sub !url blen (String.length !url - blen) else !url in
|
|
1360
|
+
match placeholders route with
|
|
1361
|
+
| _ :: _ as unfilled ->
|
|
1362
|
+
("", Some (ctx_make_error ctx "url_param_missing"
|
|
1363
|
+
("URL path has no value for " ^ String.concat ", " unfilled ^ ".")))
|
|
1364
|
+
| [] ->
|
|
1365
|
+
let qsep = ref "?" in
|
|
1366
|
+
List.iter (fun key ->
|
|
1367
|
+
let v = getp spec.sp_query key in
|
|
1368
|
+
if not (is_noval v) then begin
|
|
1369
|
+
url := !url ^ !qsep ^ escurl_s key ^ "=" ^ escurl_s (vstring v);
|
|
1370
|
+
qsep := "&";
|
|
1371
|
+
(* Sent with the request, never recorded as the entity's match. *)
|
|
1372
|
+
if not (List.mem key spec.sp_authquery) then setp resmatch key v
|
|
1373
|
+
end) (keysof spec.sp_query);
|
|
1374
|
+
result.rt_resmatch <- resmatch;
|
|
1375
|
+
(!url, None)
|
|
1110
1376
|
|
|
1111
1377
|
let make_fetch_def_util (ctx : ctx) : (value * sdk_error option) =
|
|
1112
1378
|
match ctx.c_spec with
|
|
@@ -1119,9 +1385,13 @@ let make_fetch_def_util (ctx : ctx) : (value * sdk_error option) =
|
|
|
1119
1385
|
| (url, None) ->
|
|
1120
1386
|
spec.sp_url <- url;
|
|
1121
1387
|
let fetchdef = jo [("url", Str url); ("method", Str spec.sp_method); ("headers", spec.sp_headers)] in
|
|
1388
|
+
(* A map or a list is JSON, and so is a scalar on a point that declares
|
|
1389
|
+
a JSON body. Anything else goes as given. *)
|
|
1122
1390
|
(match spec.sp_body with
|
|
1123
1391
|
| Noval -> ()
|
|
1124
|
-
| Map _ -> setp fetchdef "body" (Str (jsonify
|
|
1392
|
+
| (Map _ | List _) as b -> setp fetchdef "body" (Str (jsonify b))
|
|
1393
|
+
| (Str _ | Num _ | Bool _) as b when is_json_request ctx.c_point ->
|
|
1394
|
+
setp fetchdef "body" (Str (jsonify b))
|
|
1125
1395
|
| b -> setp fetchdef "body" b);
|
|
1126
1396
|
(fetchdef, None))
|
|
1127
1397
|
|
|
@@ -1257,25 +1527,29 @@ let fetcher_util (ctx : ctx) (fullurl : string) (fetchdef : value) : (value * sd
|
|
|
1257
1527
|
(* ------------------------------------------------------------------ *)
|
|
1258
1528
|
|
|
1259
1529
|
|
|
1260
|
-
let
|
|
1530
|
+
let plain_settings (settings : value) (name : string) : value =
|
|
1261
1531
|
match settings with
|
|
1262
1532
|
| Map _ ->
|
|
1263
1533
|
let out = empty_map () in
|
|
1264
|
-
List.iter (fun k ->
|
|
1534
|
+
List.iter (fun k ->
|
|
1535
|
+
if k <> "entity" && not (name = "rbac" && k = "rules") then
|
|
1536
|
+
setp out k (getp settings k)) (keysof settings);
|
|
1265
1537
|
out
|
|
1266
1538
|
| v -> v
|
|
1267
1539
|
|
|
1268
1540
|
(* The options to scan for secrets. The feature map is keyed by feature
|
|
1269
1541
|
* names, not field names, so it is scanned as a list: `secrets` must not
|
|
1270
1542
|
* make every setting of that feature a secret. Entity blocks hold entity
|
|
1271
|
-
* settings and seeded records, never a credential, so none is scanned
|
|
1543
|
+
* settings and seeded records, never a credential, so none is scanned, and
|
|
1544
|
+
* nor are rbac's rules, keyed by entity and operation names. *)
|
|
1272
1545
|
let secret_scan (opts : value) (names : string list) : value =
|
|
1273
1546
|
let out = empty_map () in
|
|
1274
1547
|
List.iter (fun k ->
|
|
1275
1548
|
if k <> "entity" && not (List.mem k names) then
|
|
1276
1549
|
match k, getp opts k with
|
|
1277
|
-
| "feature", (Map _ as fm) ->
|
|
1278
|
-
|
|
1550
|
+
| "feature", (Map _ as fm) ->
|
|
1551
|
+
setp out k (ja (List.map (fun f -> plain_settings (getp fm f) f) (keysof fm)))
|
|
1552
|
+
| "test", v -> setp out k (plain_settings v "")
|
|
1279
1553
|
| _, v -> setp out k v) (keysof opts);
|
|
1280
1554
|
out
|
|
1281
1555
|
|
|
@@ -68,6 +68,9 @@ and spec = {
|
|
|
68
68
|
mutable sp_body : value;
|
|
69
69
|
mutable sp_url : string;
|
|
70
70
|
mutable sp_path : string;
|
|
71
|
+
(* The query parameters prepare_auth placed: the credential, which the
|
|
72
|
+
* request sends and the entity's match leaves out. *)
|
|
73
|
+
mutable sp_authquery : string list;
|
|
71
74
|
}
|
|
72
75
|
|
|
73
76
|
and response = {
|
|
@@ -77,6 +80,8 @@ and response = {
|
|
|
77
80
|
mutable rs_json : value; (* Func thunk or Noval *)
|
|
78
81
|
mutable rs_body : value;
|
|
79
82
|
mutable rs_err : sdk_error option;
|
|
83
|
+
(* Set by a transport that could not read a non-blank body as JSON. *)
|
|
84
|
+
mutable rs_unreadable : bool;
|
|
80
85
|
}
|
|
81
86
|
|
|
82
87
|
and result = {
|
|
@@ -208,6 +213,7 @@ and entity_obj = {
|
|
|
208
213
|
mutable e_list : value -> value -> entity_obj list;
|
|
209
214
|
mutable e_create : value -> value -> entity_obj;
|
|
210
215
|
mutable e_update : value -> value -> entity_obj;
|
|
216
|
+
mutable e_patch : value -> value -> entity_obj;
|
|
211
217
|
mutable e_remove : value -> value -> entity_obj;
|
|
212
218
|
(* e_remove resolves to the entity, marked. The instance KEEPS the data it
|
|
213
219
|
* held - a caller can still read what was deleted - but it is no longer a
|
|
@@ -117,7 +117,7 @@ let make_client ?(server : server option) ?(mode = "test") ?(base = "http://api.
|
|
|
117
117
|
let feature (h : harness) (name : string) : feature option =
|
|
118
118
|
List.find_opt (fun f -> f.f_name = name) h.h_client.cl_features
|
|
119
119
|
|
|
120
|
-
let default_method op = match op with "create" -> "POST" | "update" -> "PATCH" | "remove" -> "DELETE" | _ -> "GET"
|
|
120
|
+
let default_method op = match op with "create" -> "POST" | "update" | "patch" -> "PATCH" | "remove" -> "DELETE" | _ -> "GET"
|
|
121
121
|
|
|
122
122
|
let build_url (sp : spec) : string =
|
|
123
123
|
let q = match sp.sp_query with Map _ as m -> m | _ -> empty_map () in
|
|
@@ -40,7 +40,8 @@ let make_factory (cl : sdk_client) (made : value list ref) : entity_obj =
|
|
|
40
40
|
(* Ops resolve to the ENTITY (see Sdk_types); this fake never runs them. *)
|
|
41
41
|
e_load = (fun _ _ -> failwith "unused"); e_list = (fun _ _ -> []);
|
|
42
42
|
e_create = (fun _ _ -> failwith "unused");
|
|
43
|
-
e_update = (fun _ _ -> failwith "unused");
|
|
43
|
+
e_update = (fun _ _ -> failwith "unused"); e_patch = (fun _ _ -> failwith "unused");
|
|
44
|
+
e_remove = (fun _ _ -> failwith "unused");
|
|
44
45
|
e_deleted = false; e_mark_deleted = (fun () -> ());
|
|
45
46
|
e_stream = (fun _ _ _ -> Seq.empty);
|
|
46
47
|
} in
|