@voxgig/sdkgen 4.34.0 → 4.34.2
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 +9 -7
- package/dist/cmp/ReadmeErrors.js.map +1 -1
- package/dist/cmp/ReadmeExplanation.js +7 -6
- 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 +6 -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 +108 -38
- 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 +120 -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 +12 -1
- package/dist/helpers/naming.js +154 -4
- 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 +20 -5
- package/dist/helpers/opExample.js +86 -24
- package/dist/helpers/opExample.js.map +1 -1
- package/dist/helpers/opShape.d.ts +22 -4
- package/dist/helpers/opShape.js +218 -38
- 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 +17 -10
- package/dist/sdkgen.js +87 -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 +3 -1
- package/dist/utility.js +59 -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 +24 -14
- package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +17 -8
- 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 +39 -21
- package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +41 -22
- package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +11 -8
- package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +23 -11
- 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/c/utility_c.ts +21 -2
- 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 +11 -5
- package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +18 -7
- 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 +11 -9
- package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +25 -12
- package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +42 -22
- package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +8 -5
- package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +17 -10
- package/project/.sdk/src/cmp/clojure/TestClean_clojure.ts +57 -27
- package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +64 -5
- package/project/.sdk/src/cmp/clojure/fragment/Entity.fragment.clj +24 -12
- 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/clojure/utility_clojure.ts +14 -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 +21 -13
- package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +18 -9
- 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 +28 -19
- package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +44 -26
- package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +9 -8
- package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +19 -11
- 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/cpp/utility_cpp.ts +13 -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 +10 -6
- package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +21 -9
- 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 +29 -13
- package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +41 -19
- package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +15 -8
- package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +19 -11
- 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 +19 -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 +17 -13
- package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +2 -1
- package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +18 -10
- 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 +36 -20
- package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +37 -21
- package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +13 -10
- package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +18 -13
- 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/EntityCreateOp.fragment.ex +4 -3
- package/project/.sdk/src/cmp/elixir/fragment/EntityListOp.fragment.ex +4 -3
- package/project/.sdk/src/cmp/elixir/fragment/EntityLoadOp.fragment.ex +4 -3
- package/project/.sdk/src/cmp/elixir/fragment/EntityPatchOp.fragment.ex +36 -0
- package/project/.sdk/src/cmp/elixir/fragment/EntityRemoveOp.fragment.ex +4 -3
- package/project/.sdk/src/cmp/elixir/fragment/EntityUpdateOp.fragment.ex +4 -3
- 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/elixir/utility_elixir.ts +12 -0
- 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 +9 -5
- package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +6 -1
- package/project/.sdk/src/cmp/go/ReadmeExplanation_go.ts +3 -1
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +21 -9
- 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 +18 -14
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +27 -12
- package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +40 -17
- package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +10 -8
- package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +7 -3
- 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/utility_go.ts +1 -1
- 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 +14 -22
- package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +20 -23
- 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 +11 -9
- package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +33 -28
- package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +45 -36
- package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +22 -25
- package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +19 -25
- 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/java/utility_java.ts +25 -0
- package/project/.sdk/src/cmp/js/EntityOperation_js.ts +3 -1
- 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 +8 -11
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +11 -12
- 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 +12 -11
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +23 -12
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +47 -19
- package/project/.sdk/src/cmp/js/ReadmeTopHowto_js.ts +2 -3
- package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +16 -11
- package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +12 -8
- 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/EntityCreateOp.fragment.js +1 -1
- package/project/.sdk/src/cmp/js/fragment/EntityListOp.fragment.js +1 -1
- package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +1 -1
- package/project/.sdk/src/cmp/js/fragment/EntityPatchOp.fragment.js +129 -0
- package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +1 -1
- package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +1 -1
- package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +39 -15
- package/project/.sdk/src/cmp/js/utility_js.ts +2 -1
- 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 +10 -6
- package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +20 -10
- 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 +11 -9
- package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +24 -10
- package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +38 -18
- package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +14 -8
- package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +18 -11
- 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/kotlin/utility_kotlin.ts +21 -1
- 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 +9 -5
- package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +15 -6
- package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +10 -8
- 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 +15 -14
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +29 -10
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +29 -12
- package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +15 -7
- package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +7 -6
- 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 +86 -48
- package/project/.sdk/src/cmp/lua/fragment/EntityCreateOp.fragment.lua +1 -1
- package/project/.sdk/src/cmp/lua/fragment/EntityListOp.fragment.lua +1 -1
- package/project/.sdk/src/cmp/lua/fragment/EntityLoadOp.fragment.lua +1 -1
- package/project/.sdk/src/cmp/lua/fragment/EntityPatchOp.fragment.lua +34 -0
- package/project/.sdk/src/cmp/lua/fragment/EntityRemoveOp.fragment.lua +1 -1
- package/project/.sdk/src/cmp/lua/fragment/EntityUpdateOp.fragment.lua +1 -1
- 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 +10 -6
- package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +5 -9
- 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 +3 -1
- package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +14 -4
- package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +31 -13
- package/project/.sdk/src/cmp/ocaml/ReadmeTopQuick_ocaml.ts +4 -2
- package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +5 -8
- 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 +20 -1
- 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 +13 -5
- package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +2 -2
- package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +11 -6
- 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 +11 -9
- package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +20 -9
- package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +43 -23
- package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +8 -5
- package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +12 -9
- 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 +17 -3
- package/project/.sdk/src/cmp/perl/fragment/EntityCreateOp.fragment.pm +2 -2
- package/project/.sdk/src/cmp/perl/fragment/EntityListOp.fragment.pm +2 -13
- package/project/.sdk/src/cmp/perl/fragment/EntityLoadOp.fragment.pm +2 -2
- package/project/.sdk/src/cmp/perl/fragment/EntityPatchOp.fragment.pm +32 -0
- package/project/.sdk/src/cmp/perl/fragment/EntityRemoveOp.fragment.pm +1 -1
- package/project/.sdk/src/cmp/perl/fragment/EntityUpdateOp.fragment.pm +2 -2
- package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +23 -5
- package/project/.sdk/src/cmp/perl/utility_perl.ts +26 -0
- package/project/.sdk/src/cmp/php/EntityOperation_php.ts +3 -1
- 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 +10 -6
- package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +3 -3
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +13 -7
- 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 +10 -9
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +12 -3
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +35 -17
- package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +5 -4
- package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +14 -8
- 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/EntityCreateOp.fragment.php +2 -2
- package/project/.sdk/src/cmp/php/fragment/EntityListOp.fragment.php +2 -2
- package/project/.sdk/src/cmp/php/fragment/EntityLoadOp.fragment.php +2 -2
- package/project/.sdk/src/cmp/php/fragment/EntityPatchOp.fragment.php +38 -0
- package/project/.sdk/src/cmp/php/fragment/EntityRemoveOp.fragment.php +2 -2
- package/project/.sdk/src/cmp/php/fragment/EntityUpdateOp.fragment.php +2 -2
- package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +26 -5
- package/project/.sdk/src/cmp/py/EntityOperation_py.ts +3 -1
- 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 +9 -11
- package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +12 -6
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +10 -10
- 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 +10 -9
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +18 -15
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +42 -32
- package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +7 -12
- package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +9 -8
- 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/EntityCreateOp.fragment.py +1 -1
- package/project/.sdk/src/cmp/py/fragment/EntityListOp.fragment.py +1 -1
- package/project/.sdk/src/cmp/py/fragment/EntityLoadOp.fragment.py +1 -1
- package/project/.sdk/src/cmp/py/fragment/EntityPatchOp.fragment.py +27 -0
- package/project/.sdk/src/cmp/py/fragment/EntityRemoveOp.fragment.py +1 -1
- package/project/.sdk/src/cmp/py/fragment/EntityUpdateOp.fragment.py +1 -1
- 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/EntityOperation_rb.ts +3 -1
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +5 -4
- 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 +13 -6
- package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +19 -10
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +21 -11
- 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 +11 -9
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +20 -8
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +38 -17
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +8 -5
- package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +15 -11
- 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/EntityCreateOp.fragment.rb +2 -1
- package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +2 -11
- package/project/.sdk/src/cmp/rb/fragment/EntityLoadOp.fragment.rb +2 -1
- package/project/.sdk/src/cmp/rb/fragment/EntityPatchOp.fragment.rb +32 -0
- package/project/.sdk/src/cmp/rb/fragment/EntityRemoveOp.fragment.rb +2 -1
- package/project/.sdk/src/cmp/rb/fragment/EntityUpdateOp.fragment.rb +2 -1
- package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +19 -5
- package/project/.sdk/src/cmp/rb/utility_rb.ts +10 -0
- 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 +19 -11
- package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +17 -6
- 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 +28 -19
- package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +38 -23
- package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +9 -10
- package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +20 -11
- 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/rust/utility_rust.ts +13 -1
- package/project/.sdk/src/cmp/scala/Config_scala.ts +4 -0
- package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +6 -3
- 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 +14 -22
- package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +18 -23
- 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 +11 -9
- package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +27 -28
- package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +43 -36
- package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +14 -25
- package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +17 -25
- 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/scala/utility_scala.ts +25 -0
- package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +4 -4
- 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 +10 -6
- package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +23 -9
- 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 +11 -9
- package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +26 -9
- package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +39 -18
- package/project/.sdk/src/cmp/swift/ReadmeTopQuick_swift.ts +12 -7
- package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +22 -11
- 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/swift/utility_swift.ts +14 -1
- 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 +8 -11
- package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +39 -21
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +11 -12
- 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 +12 -11
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +17 -14
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +47 -27
- package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +2 -3
- package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +8 -14
- package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +30 -15
- 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/EntityCreateOp.fragment.ts +1 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityListOp.fragment.ts +1 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +1 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityPatchOp.fragment.ts +126 -0
- package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +1 -1
- package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +50 -18
- package/project/.sdk/src/cmp/ts/utility_ts.ts +2 -1
- 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 +20 -11
- package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +20 -6
- 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 +32 -14
- package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +48 -24
- package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +11 -6
- package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +17 -9
- 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/src/cmp/zig/utility_zig.ts +13 -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 +446 -142
- package/project/.sdk/tm/clojure/src/sdk/features.clj +44 -20
- package/project/.sdk/tm/clojure/test/sdk/test/concurrency.clj +136 -0
- package/project/.sdk/tm/clojure/test/sdk/test/feature.clj +21 -1
- package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +13 -3
- package/project/.sdk/tm/cpp/LICENSE +1 -1
- package/project/.sdk/tm/cpp/core/types.hpp +167 -13
- 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/concurrency_test.cpp +348 -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 +482 -106
- package/project/.sdk/tm/csharp/LICENSE +1 -1
- package/project/.sdk/tm/csharp/core/Context.cs +9 -6
- 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/ConcurrencyTest.cs +238 -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/Clean.cs +12 -10
- 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 +4 -1
- package/project/.sdk/tm/elixir/lib/projectname/core.ex +7 -2
- package/project/.sdk/tm/elixir/lib/projectname/entity_base.ex +45 -13
- 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 +512 -138
- package/project/.sdk/tm/elixir/test/concurrency_test.exs +176 -0
- 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 +6 -2
- 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/concurrency_test.go +214 -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 +7 -4
- 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/ConcurrencyTest.java +221 -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 +39 -24
- 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 +6 -4
- 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/ConcurrencyTest.kt +193 -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/Makefile +21 -8
- 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 +385 -96
- package/project/.sdk/tm/ocaml/sdk_types.ml +12 -2
- package/project/.sdk/tm/ocaml/test/concurrency_test.ml +148 -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 +42 -12
- 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 +3 -3
- 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/clean.py +12 -8
- 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_concurrency.py +177 -0
- 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 +9 -4
- 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/concurrency_test.rb +160 -0
- 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 +22 -13
- 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 +5 -1
- package/project/.sdk/tm/scala/core/Context.scala +7 -5
- 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/ConcurrencyTest.scala +186 -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 +3 -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 +52 -19
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/ConcurrencyTest.swift +214 -0
- 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 +41 -10
- 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 +11 -9
- package/src/cmp/ReadmeExplanation.ts +8 -8
- 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 +7 -4
- 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 +126 -44
- 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 +139 -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 +200 -4
- package/src/helpers/npm.ts +68 -0
- package/src/helpers/npmScripts.ts +37 -0
- package/src/helpers/opExample.ts +111 -31
- package/src/helpers/opShape.ts +259 -37
- 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 +110 -16
- package/src/testkit.ts +2 -1
- package/src/utility.ts +68 -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);
|
|
@@ -148,16 +159,25 @@ let default_ctxspec () : ctxspec =
|
|
|
148
159
|
cs_reqdata = None; cs_match = None; cs_reqmatch = None; cs_point = None;
|
|
149
160
|
cs_spec = None; cs_result = None; cs_response = None }
|
|
150
161
|
|
|
162
|
+
(* Every request racing to build this Operation gets the one stored first. *)
|
|
163
|
+
let rec store_op (opmap : operation OpMap.t Atomic.t) (key : string) (op : operation) : operation =
|
|
164
|
+
let seen = Atomic.get opmap in
|
|
165
|
+
match OpMap.find_opt key seen with
|
|
166
|
+
| Some stored -> stored
|
|
167
|
+
| None ->
|
|
168
|
+
if Atomic.compare_and_set opmap seen (OpMap.add key op seen) then op
|
|
169
|
+
else store_op opmap key op
|
|
170
|
+
|
|
151
171
|
let resolve_op (ctx : ctx) (opname : string) : operation =
|
|
152
172
|
let entname = match ctx.c_entity with Some e -> e.e_name | None -> "_" in
|
|
153
173
|
let cache_key = entname ^ ":" ^ opname in
|
|
154
|
-
match
|
|
174
|
+
match OpMap.find_opt cache_key (Atomic.get ctx.c_opmap) with
|
|
155
175
|
| Some op -> op
|
|
156
176
|
| None ->
|
|
157
177
|
if opname = "" then new_operation (empty_map ())
|
|
158
178
|
else begin
|
|
159
179
|
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
|
|
180
|
+
let inpt = if opname = "update" || opname = "create" || opname = "patch" then "data" else "match" in
|
|
161
181
|
let points =
|
|
162
182
|
match to_map opcfg with
|
|
163
183
|
| Map _ -> (match getp opcfg "points" with List _ as l -> l | _ -> empty_list ())
|
|
@@ -166,8 +186,7 @@ let resolve_op (ctx : ctx) (opname : string) : operation =
|
|
|
166
186
|
let op = new_operation
|
|
167
187
|
(jo [("entity", Str entname); ("name", Str opname);
|
|
168
188
|
("input", Str inpt); ("points", points)]) in
|
|
169
|
-
|
|
170
|
-
op
|
|
189
|
+
store_op ctx.c_opmap cache_key op
|
|
171
190
|
end
|
|
172
191
|
|
|
173
192
|
let make_context_impl (cs : ctxspec) (basectx : ctx option) : ctx =
|
|
@@ -215,7 +234,7 @@ let make_context_impl (cs : ctxspec) (basectx : ctx option) : ctx =
|
|
|
215
234
|
| _ -> (match basectx with Some b -> b.c_shared | None -> Noval) in
|
|
216
235
|
let opmap =
|
|
217
236
|
match cs.cs_opmap with Some h -> h
|
|
218
|
-
| None -> (match basectx with Some b -> b.c_opmap | None ->
|
|
237
|
+
| None -> (match basectx with Some b -> b.c_opmap | None -> Atomic.make OpMap.empty) in
|
|
219
238
|
let mapof = function Some d -> (match to_map d with Map _ as m -> m | _ -> empty_map ()) | None -> empty_map () in
|
|
220
239
|
let data = mapof cs.cs_data and reqdata = mapof cs.cs_reqdata
|
|
221
240
|
and mtch = mapof cs.cs_match and reqmatch = mapof cs.cs_reqmatch in
|
|
@@ -310,18 +329,25 @@ let clean_forms (value : string) : string list =
|
|
|
310
329
|
if String.length j >= 2 then add (String.sub j 1 (String.length j - 2)));
|
|
311
330
|
!out
|
|
312
331
|
|
|
332
|
+
(* A registration reads the registry list and writes a new one, so requests
|
|
333
|
+
* on other domains registering at once take turns, or one would be dropped.
|
|
334
|
+
* Cleaning reads the list whole and needs no turn. *)
|
|
335
|
+
let clean_registering = Atomic.make false
|
|
336
|
+
|
|
313
337
|
let clean_add_util (ctx : ctx) (value : string) : unit =
|
|
314
338
|
let cfg = clean_config ctx in
|
|
315
339
|
let minlen = match getp cfg "min" with Num n -> int_of_float n | _ -> 4 in
|
|
316
340
|
match getp cfg "values" with
|
|
317
341
|
| List r when String.length value >= minlen ->
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
(
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
342
|
+
while not (Atomic.compare_and_set clean_registering false true) do () done;
|
|
343
|
+
Fun.protect ~finally:(fun () -> Atomic.set clean_registering false) (fun () ->
|
|
344
|
+
let have = str_values (List r) in
|
|
345
|
+
let add = List.filter (fun f -> String.length f >= minlen && not (List.mem f have))
|
|
346
|
+
(clean_forms value) in
|
|
347
|
+
(* Longest first, so a value is never masked by a substring of itself. *)
|
|
348
|
+
if add <> [] then
|
|
349
|
+
r := List.map (fun s -> Str s)
|
|
350
|
+
(List.stable_sort (fun a b -> compare (String.length b) (String.length a)) (have @ add)))
|
|
325
351
|
| _ -> ()
|
|
326
352
|
|
|
327
353
|
let mask_value (cfg : value) (value : string) : string =
|
|
@@ -588,6 +614,101 @@ let prepare_method_util (ctx : ctx) : string =
|
|
|
588
614
|
* two behaviours: a mistyped or unsupported op quietly fetched. *)
|
|
589
615
|
| _ -> ""
|
|
590
616
|
|
|
617
|
+
(* The arguments a point declares in one location, query or header, each as
|
|
618
|
+
* (name, wire, value): the name it travels under and the value this call
|
|
619
|
+
* passes in its match or else its data. Unlike a path parameter, the
|
|
620
|
+
* entity's stored match and data never supply one. *)
|
|
621
|
+
let call_args (ctx : ctx) (kind : string) : (string * string * value) list =
|
|
622
|
+
match getp (getp ctx.c_point "args") kind with
|
|
623
|
+
| List r ->
|
|
624
|
+
List.filter_map (fun ad ->
|
|
625
|
+
match getp ad "name" with
|
|
626
|
+
| Str name when name <> "" ->
|
|
627
|
+
let wire = match getp ad "orig" with Str o when o <> "" -> o | _ -> name in
|
|
628
|
+
let v = match getp ctx.c_reqmatch name with
|
|
629
|
+
| Noval | Null -> getp ctx.c_reqdata name
|
|
630
|
+
| v -> v
|
|
631
|
+
in
|
|
632
|
+
Some (name, wire, v)
|
|
633
|
+
| _ -> None) !r
|
|
634
|
+
| _ -> []
|
|
635
|
+
|
|
636
|
+
(* ---- media ----
|
|
637
|
+
* The media types a point declares: `response` (the model's `rs`) for the
|
|
638
|
+
* Accept header, and `body` (the model's `rb`) for the request body. *)
|
|
639
|
+
|
|
640
|
+
(* The data key holding a raw request body. Like `$action`, it can never be a
|
|
641
|
+
* declared argument name. *)
|
|
642
|
+
let raw_body_key = "$body"
|
|
643
|
+
|
|
644
|
+
let is_json_media (media : string) : bool =
|
|
645
|
+
let base = match String.index_opt media ';' with
|
|
646
|
+
| Some i -> String.sub media 0 i
|
|
647
|
+
| None -> media in
|
|
648
|
+
let m = String.lowercase_ascii (String.trim base) in
|
|
649
|
+
let n = String.length m in
|
|
650
|
+
m = "application/json" || m = "text/json"
|
|
651
|
+
|| (n >= 5 && String.sub m (n - 5) 5 = "+json")
|
|
652
|
+
|
|
653
|
+
(* The declared JSON type alone, else every declared type in the model's
|
|
654
|
+
* order; nothing when no success response declares a body. *)
|
|
655
|
+
let accept_of (point : value) : string option =
|
|
656
|
+
let res = getp point "response" in
|
|
657
|
+
match getp res "media" with
|
|
658
|
+
| Str media when media <> "" ->
|
|
659
|
+
(match getp res "kind" with
|
|
660
|
+
| Str "json" -> Some media
|
|
661
|
+
| _ ->
|
|
662
|
+
let others = match getp res "alternatives" with
|
|
663
|
+
| List r ->
|
|
664
|
+
List.filter_map (fun alt -> match getp alt "media" with
|
|
665
|
+
| Str m when m <> "" -> Some m
|
|
666
|
+
| _ -> None) !r
|
|
667
|
+
| _ -> [] in
|
|
668
|
+
Some (String.concat ", " (media :: others)))
|
|
669
|
+
| _ -> None
|
|
670
|
+
|
|
671
|
+
let is_raw_request (point : value) : bool =
|
|
672
|
+
match getp (getp point "body") "kind" with Str "raw" -> true | _ -> false
|
|
673
|
+
|
|
674
|
+
let is_json_request (point : value) : bool =
|
|
675
|
+
match getp (getp point "body") "kind" with Str "json" -> true | _ -> false
|
|
676
|
+
|
|
677
|
+
let has_media_header (headers : value) (name : string) : bool =
|
|
678
|
+
List.exists (fun k -> String.lowercase_ascii k = name) (keysof headers)
|
|
679
|
+
|
|
680
|
+
(* A caller's accept wins. A declared request type replaces each JSON
|
|
681
|
+
* content-type, the SDK default, and leaves any other the caller set. *)
|
|
682
|
+
let media_headers (point : value) (headers : value) : unit =
|
|
683
|
+
(match accept_of point with
|
|
684
|
+
| Some accept when not (has_media_header headers "accept") ->
|
|
685
|
+
setp headers "accept" (Str accept)
|
|
686
|
+
| _ -> ());
|
|
687
|
+
let body = getp point "body" in
|
|
688
|
+
match getp body "kind", getp body "media" with
|
|
689
|
+
| Str ("raw" | "json"), Str media when media <> "" ->
|
|
690
|
+
List.iter (fun k ->
|
|
691
|
+
match getp headers k with
|
|
692
|
+
| Str v when String.lowercase_ascii k = "content-type" && is_json_media v ->
|
|
693
|
+
ignore (delprop headers (Str k))
|
|
694
|
+
| _ -> ())
|
|
695
|
+
(keysof headers);
|
|
696
|
+
if not (has_media_header headers "content-type") then
|
|
697
|
+
setp headers "content-type" (Str media)
|
|
698
|
+
| _ -> ()
|
|
699
|
+
|
|
700
|
+
let raw_body (reqdata : value) : value = getp reqdata raw_body_key
|
|
701
|
+
|
|
702
|
+
(* The form style of a cookie parameter: a list repeats the name, a map sends
|
|
703
|
+
* its own keys, and every value is percent-encoded. *)
|
|
704
|
+
let cookie_pair (wire : string) (v : value) : string =
|
|
705
|
+
let esc x = escurl_s (stringify x) in
|
|
706
|
+
let pairs = match v with
|
|
707
|
+
| List items -> List.map (fun item -> wire ^ "=" ^ esc item) !items
|
|
708
|
+
| Map _ -> List.map (fun k -> escurl_s k ^ "=" ^ esc (getp v k)) (keysof v)
|
|
709
|
+
| _ -> [wire ^ "=" ^ esc v] in
|
|
710
|
+
String.concat "; " pairs
|
|
711
|
+
|
|
591
712
|
let prepare_headers_util (ctx : ctx) : value =
|
|
592
713
|
let options = client_options_map (cc ctx) in
|
|
593
714
|
let out =
|
|
@@ -595,58 +716,70 @@ let prepare_headers_util (ctx : ctx) : value =
|
|
|
595
716
|
| Noval -> empty_map ()
|
|
596
717
|
| h -> (match clone h with Map _ as m -> m | _ -> empty_map ())
|
|
597
718
|
in
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
*
|
|
601
|
-
(
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
719
|
+
media_headers ctx.c_point out;
|
|
720
|
+
(* A header argument replaces a default of the same name, whatever its
|
|
721
|
+
* case. *)
|
|
722
|
+
List.iter (fun (_, wire, v) ->
|
|
723
|
+
match v with
|
|
724
|
+
| Noval | Null -> ()
|
|
725
|
+
| v ->
|
|
726
|
+
let key = String.lowercase_ascii wire in
|
|
727
|
+
List.iter (fun k ->
|
|
728
|
+
if String.lowercase_ascii k = key then ignore (delprop out (Str k)))
|
|
729
|
+
(keysof out);
|
|
730
|
+
setp out key (Str (stringify v)))
|
|
731
|
+
(call_args ctx "header");
|
|
732
|
+
(* A cookie argument travels in the cookie header, form serialized and
|
|
733
|
+
* percent-encoded, replacing a cookie of the same name among those the
|
|
734
|
+
* caller's headers already send. *)
|
|
735
|
+
let sent = List.filter (fun (_, _, v) -> match v with Noval | Null -> false | _ -> true)
|
|
736
|
+
(call_args ctx "cookie") in
|
|
737
|
+
if sent <> [] then begin
|
|
738
|
+
let names = List.concat (List.map (fun (_, wire, v) ->
|
|
739
|
+
match v with Map _ -> List.map escurl_s (keysof v) | _ -> [wire]) sent) in
|
|
740
|
+
let given = List.filter (fun k -> String.lowercase_ascii k = "cookie") (keysof out) in
|
|
741
|
+
let kept = List.concat (List.map (fun k ->
|
|
742
|
+
match getp out k with
|
|
743
|
+
| Str s -> cookie_keep s names
|
|
744
|
+
| _ -> []) given) in
|
|
745
|
+
List.iter (fun k -> ignore (delprop out (Str k))) given;
|
|
746
|
+
let pairs = List.filter_map (fun (_, wire, v) ->
|
|
747
|
+
match cookie_pair wire v with "" -> None | pair -> Some pair) sent in
|
|
748
|
+
if kept @ pairs <> [] then setp out "cookie" (Str (String.concat "; " (kept @ pairs)))
|
|
749
|
+
end;
|
|
621
750
|
out
|
|
622
751
|
|
|
752
|
+
(* The name a point gives a parameter in the call, if it renames it. *)
|
|
753
|
+
let param_alias (point : value) (key : string) : string =
|
|
754
|
+
match to_map (getp point "alias") with
|
|
755
|
+
| Map _ as alias -> (match getp alias key with Str s -> s | _ -> "")
|
|
756
|
+
| _ -> ""
|
|
757
|
+
|
|
758
|
+
(* The value the call or its entity gives a point's parameter, under its name
|
|
759
|
+
or the point's alias for it. *)
|
|
760
|
+
let param_value (ctx : ctx) (point : value) (key : string) : value =
|
|
761
|
+
let akey = param_alias point key in
|
|
762
|
+
let v = ref (getp ctx.c_reqmatch key) in
|
|
763
|
+
if is_noval !v then v := getp ctx.c_match key;
|
|
764
|
+
if is_noval !v && akey <> "" then v := getp ctx.c_reqmatch akey;
|
|
765
|
+
if is_noval !v then v := getp ctx.c_reqdata key;
|
|
766
|
+
if is_noval !v then v := getp ctx.c_data key;
|
|
767
|
+
if is_noval !v && akey <> "" then begin
|
|
768
|
+
v := getp ctx.c_reqdata akey;
|
|
769
|
+
if is_noval !v then v := getp ctx.c_data akey
|
|
770
|
+
end;
|
|
771
|
+
!v
|
|
772
|
+
|
|
623
773
|
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
774
|
let pt = typify paramdef in
|
|
628
775
|
let key =
|
|
629
776
|
if (t_string land pt) > 0 then (match paramdef with Str s -> s | _ -> "")
|
|
630
777
|
else (match getp paramdef "name" with Str s -> s | _ -> "")
|
|
631
778
|
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
|
|
779
|
+
let akey = param_alias ctx.c_point key in
|
|
780
|
+
if akey <> "" && is_noval (getp ctx.c_reqmatch key) && is_noval (getp ctx.c_match key) then
|
|
781
|
+
(match ctx.c_spec with Some sp -> setp sp.sp_alias akey (Str key) | None -> ());
|
|
782
|
+
param_value ctx ctx.c_point key
|
|
650
783
|
|
|
651
784
|
let prepare_params_util (ctx : ctx) : value =
|
|
652
785
|
let params =
|
|
@@ -679,13 +812,26 @@ let prepare_query_util (ctx : ctx) : value =
|
|
|
679
812
|
| List r -> List.map (fun pd -> getp pd "name") !r
|
|
680
813
|
| _ -> []
|
|
681
814
|
in
|
|
682
|
-
(* A header parameter travels in the headers, which
|
|
815
|
+
(* A header or cookie parameter travels in the headers, which
|
|
816
|
+
* prepare_headers fills, unless a query parameter shares its name: then
|
|
817
|
+
* both are sent. *)
|
|
818
|
+
let declared =
|
|
819
|
+
match getp (getp ctx.c_point "args") "query" with
|
|
820
|
+
| List r -> List.map (fun qd -> getp qd "name") !r
|
|
821
|
+
| _ -> []
|
|
822
|
+
in
|
|
683
823
|
let header_names =
|
|
684
824
|
match getp (getp ctx.c_point "args") "header" with
|
|
685
825
|
| List r -> List.map (fun hd -> getp hd "name") !r
|
|
686
826
|
| _ -> []
|
|
687
827
|
in
|
|
688
|
-
let
|
|
828
|
+
let cookie_names =
|
|
829
|
+
match getp (getp ctx.c_point "args") "cookie" with
|
|
830
|
+
| List r -> List.map (fun cd -> getp cd "name") !r
|
|
831
|
+
| _ -> []
|
|
832
|
+
in
|
|
833
|
+
let elsewhere = List.filter (fun n -> not (List.mem n declared)) (header_names @ cookie_names) in
|
|
834
|
+
let params = params @ arg_names @ elsewhere in
|
|
689
835
|
let contains_param s = List.exists (fun v -> match v with Str x -> x = s | _ -> false) params in
|
|
690
836
|
(* A query parameter travels under the name the definition gives it, its
|
|
691
837
|
* orig, which the model may have renamed for the caller. *)
|
|
@@ -705,10 +851,18 @@ let prepare_query_util (ctx : ctx) : value =
|
|
|
705
851
|
if not (is_noval v) && k <> "$action" && not (contains_param k) then
|
|
706
852
|
setp out (wire_name k) v)
|
|
707
853
|
(keysof reqmatch);
|
|
854
|
+
(* A create or update passes its query arguments in its data. *)
|
|
855
|
+
List.iter (fun (name, orig, v) ->
|
|
856
|
+
match v with
|
|
857
|
+
| Noval | Null -> ()
|
|
858
|
+
| v -> if not (contains_param name) then setp out orig v)
|
|
859
|
+
(call_args ctx "query");
|
|
708
860
|
out
|
|
709
861
|
|
|
710
862
|
let prepare_body_util (ctx : ctx) : value =
|
|
711
|
-
if ctx.c_op.op_input
|
|
863
|
+
if ctx.c_op.op_input <> "data" then Noval
|
|
864
|
+
else if is_raw_request ctx.c_point then raw_body ctx.c_reqdata
|
|
865
|
+
else (cu ctx).u_transform_request ctx
|
|
712
866
|
|
|
713
867
|
(* ---- graphql (transport) -------------------------------------------------
|
|
714
868
|
*
|
|
@@ -859,18 +1013,28 @@ let omit_keys (reqdata : value) (names : string list) : value =
|
|
|
859
1013
|
untouched. *)
|
|
860
1014
|
let strip_action (reqdata : value) : value = omit_keys reqdata ["$action"]
|
|
861
1015
|
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
1016
|
+
let field_arg (ctx : ctx) (name : string) : bool =
|
|
1017
|
+
List.exists (fun kind ->
|
|
1018
|
+
match getp (getp ctx.c_point "args") kind with
|
|
1019
|
+
| List r ->
|
|
1020
|
+
List.exists (fun ad ->
|
|
1021
|
+
match getp ad "name", getp ad "field" with
|
|
1022
|
+
| Str n, Bool true -> n = name
|
|
1023
|
+
| _ -> false) !r
|
|
1024
|
+
| _ -> false)
|
|
1025
|
+
["header"; "cookie"; "query"]
|
|
1026
|
+
|
|
1027
|
+
(* A header, cookie or query argument travels where prepare_headers_util or
|
|
1028
|
+
prepare_query_util sends it, so the body is built from the request data
|
|
1029
|
+
without it, unless the point marks it as a field the body keeps. *)
|
|
1030
|
+
let routed_arg_names (ctx : ctx) : string list =
|
|
1031
|
+
List.filter (fun name -> not (field_arg ctx name))
|
|
1032
|
+
(List.map (fun (name, _, _) -> name)
|
|
1033
|
+
(call_args ctx "header" @ call_args ctx "cookie" @ call_args ctx "query"))
|
|
870
1034
|
|
|
871
1035
|
let transform_request_util (ctx : ctx) : value =
|
|
872
1036
|
(match ctx.c_spec with Some s -> s.sp_step <- "reqform" | None -> ());
|
|
873
|
-
let data = omit_keys ctx.c_reqdata (
|
|
1037
|
+
let data = omit_keys ctx.c_reqdata (routed_arg_names ctx) in
|
|
874
1038
|
strip_action
|
|
875
1039
|
(match to_map (getp ctx.c_point "transform") with
|
|
876
1040
|
| Map _ as tr ->
|
|
@@ -914,11 +1078,64 @@ let result_basic_util (ctx : ctx) : unit =
|
|
|
914
1078
|
end else (match response.rs_err with Some e -> result.rt_err <- Some e | None -> ())
|
|
915
1079
|
| _ -> ()
|
|
916
1080
|
|
|
1081
|
+
let preview_length = 160
|
|
1082
|
+
|
|
1083
|
+
(* Whitespace runs as one space, trimmed. *)
|
|
1084
|
+
let flatten_space (s : string) : string =
|
|
1085
|
+
let b = Buffer.create (String.length s) in
|
|
1086
|
+
let space = ref false in
|
|
1087
|
+
String.iter (fun c ->
|
|
1088
|
+
match c with
|
|
1089
|
+
| ' ' | '\t' | '\n' | '\r' | '\011' | '\012' -> space := Buffer.length b > 0
|
|
1090
|
+
| _ ->
|
|
1091
|
+
if !space then (Buffer.add_char b ' '; space := false);
|
|
1092
|
+
Buffer.add_char b c) s;
|
|
1093
|
+
Buffer.contents b
|
|
1094
|
+
|
|
1095
|
+
(* Cleaned whole: a secret the bound would split could leave its prefix. *)
|
|
1096
|
+
let body_preview (ctx : ctx) (text : value) : string =
|
|
1097
|
+
let flat = vstring (clean_util ctx (Str (flatten_space (vstring text)))) in
|
|
1098
|
+
let n = String.length flat in
|
|
1099
|
+
let rec cut i points =
|
|
1100
|
+
if i >= n then flat
|
|
1101
|
+
else if Char.code flat.[i] land 0xC0 = 0x80 then cut (i + 1) points
|
|
1102
|
+
else if points = preview_length then String.sub flat 0 i ^ "..."
|
|
1103
|
+
else cut (i + 1) (points + 1) in
|
|
1104
|
+
cut 0 0
|
|
1105
|
+
|
|
1106
|
+
(* A body that is not JSON. An HTTP failure keeps its own error, with the
|
|
1107
|
+
* response described; otherwise the code tells a wrong content type from
|
|
1108
|
+
* malformed JSON. *)
|
|
1109
|
+
let unreadable_body (ctx : ctx) (status : int) (headers : value) (text : value) (sent : value)
|
|
1110
|
+
(failed : sdk_error option) : sdk_error =
|
|
1111
|
+
let ctype = vstring (header_ci headers "content-type") in
|
|
1112
|
+
let agent = vstring (clean_util ctx (Str (vstring (header_ci sent "user-agent")))) in
|
|
1113
|
+
let detail = "HTTP " ^ string_of_int status ^ ", content-type " ^
|
|
1114
|
+
(if ctype = "" then "none" else ctype) ^ ", user-agent " ^
|
|
1115
|
+
(if agent = "" then "transport default" else agent) ^
|
|
1116
|
+
(match text with Noval | Null -> "" | _ -> ", body: " ^ body_preview ctx text) in
|
|
1117
|
+
match failed with
|
|
1118
|
+
| Some e -> e.err_msg <- e.err_msg ^ " (" ^ detail ^ ")"; e
|
|
1119
|
+
| None ->
|
|
1120
|
+
let lower = String.lowercase_ascii ctype in
|
|
1121
|
+
let rec has_json i =
|
|
1122
|
+
i + 4 <= String.length lower && (String.sub lower i 4 = "json" || has_json (i + 1)) in
|
|
1123
|
+
if ctype = "" || has_json 0 then
|
|
1124
|
+
ctx_make_error ctx "response_json_invalid" ("response: body is not valid JSON (" ^ detail ^ ")")
|
|
1125
|
+
else
|
|
1126
|
+
ctx_make_error ctx "response_content_type"
|
|
1127
|
+
("response: expected JSON, got " ^ ctype ^ " (" ^ detail ^ ")")
|
|
1128
|
+
|
|
917
1129
|
let result_body_util (ctx : ctx) : unit =
|
|
918
1130
|
match ctx.c_response, ctx.c_result with
|
|
919
1131
|
| Some response, Some result ->
|
|
920
1132
|
if is_callable response.rs_json && not (is_noval response.rs_body) then
|
|
921
|
-
result.rt_body <- call_json response.rs_json
|
|
1133
|
+
result.rt_body <- call_json response.rs_json;
|
|
1134
|
+
if response.rs_unreadable then begin
|
|
1135
|
+
let sent = match ctx.c_spec with Some sp -> sp.sp_headers | None -> Noval in
|
|
1136
|
+
result.rt_err <- Some (unreadable_body ctx result.rt_status result.rt_headers
|
|
1137
|
+
response.rs_body sent result.rt_err)
|
|
1138
|
+
end
|
|
922
1139
|
| _ -> ()
|
|
923
1140
|
|
|
924
1141
|
let result_headers_util (ctx : ctx) : unit =
|
|
@@ -931,6 +1148,33 @@ let result_headers_util (ctx : ctx) : unit =
|
|
|
931
1148
|
|
|
932
1149
|
(* ----- make_* pipeline stages ----- *)
|
|
933
1150
|
|
|
1151
|
+
(* The {name} placeholders in a text, in order. *)
|
|
1152
|
+
let placeholders (s : string) : string list =
|
|
1153
|
+
let n = String.length s in
|
|
1154
|
+
let rec close j = if j < n && not (String.contains "{}/" s.[j]) then close (j + 1) else j in
|
|
1155
|
+
let rec scan i acc =
|
|
1156
|
+
if i >= n then List.rev acc
|
|
1157
|
+
else if s.[i] <> '{' then scan (i + 1) acc
|
|
1158
|
+
else
|
|
1159
|
+
let j = close (i + 1) in
|
|
1160
|
+
if j < n && s.[j] = '}' && j > i + 1 then scan (j + 1) (String.sub s i (j - i + 1) :: acc)
|
|
1161
|
+
else scan (i + 1) acc
|
|
1162
|
+
in
|
|
1163
|
+
scan 0 []
|
|
1164
|
+
|
|
1165
|
+
(* The path parameters of a point that neither the call nor the entity gives
|
|
1166
|
+
a value for, looked up as param_util looks them up. *)
|
|
1167
|
+
let unfilled_params (ctx : ctx) (point : value) : string list =
|
|
1168
|
+
match getp point "parts" with
|
|
1169
|
+
| List r ->
|
|
1170
|
+
List.filter_map (fun part ->
|
|
1171
|
+
match part with
|
|
1172
|
+
| Str s when placeholders s = [s] ->
|
|
1173
|
+
let name = String.sub s 1 (String.length s - 2) in
|
|
1174
|
+
(match param_value ctx point name with Noval | Null -> Some name | _ -> None)
|
|
1175
|
+
| _ -> None) !r
|
|
1176
|
+
| _ -> []
|
|
1177
|
+
|
|
934
1178
|
let make_point_util (ctx : ctx) : (value * sdk_error option) =
|
|
935
1179
|
match Hashtbl.find_opt ctx.c_out "point" with
|
|
936
1180
|
| Some (OErr e) -> (Noval, Some e)
|
|
@@ -939,7 +1183,7 @@ let make_point_util (ctx : ctx) : (value * sdk_error option) =
|
|
|
939
1183
|
let op = ctx.c_op in
|
|
940
1184
|
let options = ctx.c_options in
|
|
941
1185
|
let allow_op = match getpath_s options "allow.op" with Str s -> s | _ -> "" in
|
|
942
|
-
if not (
|
|
1186
|
+
if not (allow_list_has (getpath_s options "allow.op") op.op_name) then
|
|
943
1187
|
(Noval, Some (ctx_make_error ctx "point_op_allow"
|
|
944
1188
|
("Operation \"" ^ op.op_name ^ "\" not allowed by SDK option allow.op value: \"" ^ allow_op ^ "\"")))
|
|
945
1189
|
else begin
|
|
@@ -1012,11 +1256,25 @@ let make_point_util (ctx : ctx) : (value * sdk_error option) =
|
|
|
1012
1256
|
String.length s > 0 && s.[0] = '{'
|
|
1013
1257
|
| [] -> false)
|
|
1014
1258
|
| _ -> false in
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1259
|
+
let own_point pts =
|
|
1260
|
+
List.fold_left (fun best cand ->
|
|
1261
|
+
let ct = terminal_param cand and bt = terminal_param best in
|
|
1262
|
+
if ct <> bt then (if ct then cand else best)
|
|
1263
|
+
else if parts_len cand < parts_len best then cand else best)
|
|
1264
|
+
(List.hd pts) pts in
|
|
1265
|
+
(* A call without an action falls back to a point without one, as
|
|
1266
|
+
generation does, and only to a route the call can fill. *)
|
|
1267
|
+
let plain = List.filter (fun p ->
|
|
1268
|
+
is_noval (getp (to_map (getp p "select")) "$action")) points in
|
|
1269
|
+
if plain = [] then
|
|
1270
|
+
raise (Sdk_error_exc (ctx_make_error ctx "point_action_required"
|
|
1271
|
+
("Operation \"" ^ op.op_name ^ "\" has only action endpoints; pass $action to choose one.")));
|
|
1272
|
+
match List.filter (fun p -> unfilled_params ctx p = []) plain with
|
|
1273
|
+
| [] ->
|
|
1274
|
+
raise (Sdk_error_exc (ctx_make_error ctx "point_no_match"
|
|
1275
|
+
("Operation \"" ^ op.op_name ^ "\" has no endpoint whose path parameters are all given (missing: " ^
|
|
1276
|
+
String.concat ", " (unfilled_params ctx (own_point plain)) ^ ").")))
|
|
1277
|
+
| fillable -> chosen := own_point fillable
|
|
1020
1278
|
end;
|
|
1021
1279
|
let req_action = getp reqselector "$action" in
|
|
1022
1280
|
if not (is_noval req_action) && not (is_noval !chosen) then begin
|
|
@@ -1046,7 +1304,7 @@ let make_spec_util (ctx : ctx) : (spec option * sdk_error option) =
|
|
|
1046
1304
|
ctx.c_spec <- Some sp;
|
|
1047
1305
|
sp.sp_method <- u.u_prepare_method ctx;
|
|
1048
1306
|
let allow_method = match getpath_s options "allow.method" with Str s -> s | _ -> "" in
|
|
1049
|
-
if not (
|
|
1307
|
+
if not (allow_list_has (getpath_s options "allow.method") sp.sp_method) then
|
|
1050
1308
|
(None, Some (ctx_make_error ctx "spec_method_allow"
|
|
1051
1309
|
("Method \"" ^ sp.sp_method ^ "\" not allowed by SDK option allow.method value: \"" ^ allow_method ^ "\"")))
|
|
1052
1310
|
else begin
|
|
@@ -1071,10 +1329,18 @@ let make_spec_util (ctx : ctx) : (spec option * sdk_error option) =
|
|
|
1071
1329
|
sp.sp_path <- u.u_prepare_path ctx
|
|
1072
1330
|
end;
|
|
1073
1331
|
(match ctx.c_ctrl.ctrl_explain with Map _ -> setp ctx.c_ctrl.ctrl_explain "spec" (spec_to_value sp) | _ -> ());
|
|
1332
|
+
(* Whatever prepare_auth sets in the query, under whichever name, is the
|
|
1333
|
+
* credential; a key it leaves as it was is the caller's. *)
|
|
1334
|
+
let query = List.map (fun k -> (k, getp sp.sp_query k)) (keysof sp.sp_query) in
|
|
1335
|
+
let note (s : spec) =
|
|
1336
|
+
s.sp_authquery <- List.filter (fun k ->
|
|
1337
|
+
match List.assoc_opt k query with
|
|
1338
|
+
| Some was -> not (veq was (getp s.sp_query k))
|
|
1339
|
+
| None -> true) (keysof s.sp_query) in
|
|
1074
1340
|
match u.u_prepare_auth ctx with
|
|
1075
1341
|
| (_, Some err) -> (None, Some err)
|
|
1076
|
-
| (Some spec2, None) -> ctx.c_spec <- Some spec2; (Some spec2, None)
|
|
1077
|
-
| (None, None) -> (Some sp, None)
|
|
1342
|
+
| (Some spec2, None) -> note spec2; ctx.c_spec <- Some spec2; (Some spec2, None)
|
|
1343
|
+
| (None, None) -> note sp; (Some sp, None)
|
|
1078
1344
|
end
|
|
1079
1345
|
|
|
1080
1346
|
let make_url_util (ctx : ctx) : (string * sdk_error option) =
|
|
@@ -1097,16 +1363,31 @@ let make_url_util (ctx : ctx) : (string * sdk_error option) =
|
|
|
1097
1363
|
url := str_replace_all !url ("{" ^ key ^ "}") encoded;
|
|
1098
1364
|
setp resmatch key v
|
|
1099
1365
|
end) (keysof spec.sp_params);
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1366
|
+
(* A placeholder left in the route would send the request to the wrong
|
|
1367
|
+
* route. The base's own placeholders are server variables, resolved with
|
|
1368
|
+
* the options. *)
|
|
1369
|
+
let rec root s = if ends_slash s then root (String.sub s 0 (String.length s - 1)) else s in
|
|
1370
|
+
let base = root spec.sp_base in
|
|
1371
|
+
let blen = String.length base in
|
|
1372
|
+
let route =
|
|
1373
|
+
if String.length !url >= blen && String.sub !url 0 blen = base
|
|
1374
|
+
then String.sub !url blen (String.length !url - blen) else !url in
|
|
1375
|
+
match placeholders route with
|
|
1376
|
+
| _ :: _ as unfilled ->
|
|
1377
|
+
("", Some (ctx_make_error ctx "url_param_missing"
|
|
1378
|
+
("URL path has no value for " ^ String.concat ", " unfilled ^ ".")))
|
|
1379
|
+
| [] ->
|
|
1380
|
+
let qsep = ref "?" in
|
|
1381
|
+
List.iter (fun key ->
|
|
1382
|
+
let v = getp spec.sp_query key in
|
|
1383
|
+
if not (is_noval v) then begin
|
|
1384
|
+
url := !url ^ !qsep ^ escurl_s key ^ "=" ^ escurl_s (vstring v);
|
|
1385
|
+
qsep := "&";
|
|
1386
|
+
(* Sent with the request, never recorded as the entity's match. *)
|
|
1387
|
+
if not (List.mem key spec.sp_authquery) then setp resmatch key v
|
|
1388
|
+
end) (keysof spec.sp_query);
|
|
1389
|
+
result.rt_resmatch <- resmatch;
|
|
1390
|
+
(!url, None)
|
|
1110
1391
|
|
|
1111
1392
|
let make_fetch_def_util (ctx : ctx) : (value * sdk_error option) =
|
|
1112
1393
|
match ctx.c_spec with
|
|
@@ -1119,9 +1400,13 @@ let make_fetch_def_util (ctx : ctx) : (value * sdk_error option) =
|
|
|
1119
1400
|
| (url, None) ->
|
|
1120
1401
|
spec.sp_url <- url;
|
|
1121
1402
|
let fetchdef = jo [("url", Str url); ("method", Str spec.sp_method); ("headers", spec.sp_headers)] in
|
|
1403
|
+
(* A map or a list is JSON, and so is a scalar on a point that declares
|
|
1404
|
+
a JSON body. Anything else goes as given. *)
|
|
1122
1405
|
(match spec.sp_body with
|
|
1123
1406
|
| Noval -> ()
|
|
1124
|
-
| Map _ -> setp fetchdef "body" (Str (jsonify
|
|
1407
|
+
| (Map _ | List _) as b -> setp fetchdef "body" (Str (jsonify b))
|
|
1408
|
+
| (Str _ | Num _ | Bool _) as b when is_json_request ctx.c_point ->
|
|
1409
|
+
setp fetchdef "body" (Str (jsonify b))
|
|
1125
1410
|
| b -> setp fetchdef "body" b);
|
|
1126
1411
|
(fetchdef, None))
|
|
1127
1412
|
|
|
@@ -1257,25 +1542,29 @@ let fetcher_util (ctx : ctx) (fullurl : string) (fetchdef : value) : (value * sd
|
|
|
1257
1542
|
(* ------------------------------------------------------------------ *)
|
|
1258
1543
|
|
|
1259
1544
|
|
|
1260
|
-
let
|
|
1545
|
+
let plain_settings (settings : value) (name : string) : value =
|
|
1261
1546
|
match settings with
|
|
1262
1547
|
| Map _ ->
|
|
1263
1548
|
let out = empty_map () in
|
|
1264
|
-
List.iter (fun k ->
|
|
1549
|
+
List.iter (fun k ->
|
|
1550
|
+
if k <> "entity" && not (name = "rbac" && k = "rules") then
|
|
1551
|
+
setp out k (getp settings k)) (keysof settings);
|
|
1265
1552
|
out
|
|
1266
1553
|
| v -> v
|
|
1267
1554
|
|
|
1268
1555
|
(* The options to scan for secrets. The feature map is keyed by feature
|
|
1269
1556
|
* names, not field names, so it is scanned as a list: `secrets` must not
|
|
1270
1557
|
* make every setting of that feature a secret. Entity blocks hold entity
|
|
1271
|
-
* settings and seeded records, never a credential, so none is scanned
|
|
1558
|
+
* settings and seeded records, never a credential, so none is scanned, and
|
|
1559
|
+
* nor are rbac's rules, keyed by entity and operation names. *)
|
|
1272
1560
|
let secret_scan (opts : value) (names : string list) : value =
|
|
1273
1561
|
let out = empty_map () in
|
|
1274
1562
|
List.iter (fun k ->
|
|
1275
1563
|
if k <> "entity" && not (List.mem k names) then
|
|
1276
1564
|
match k, getp opts k with
|
|
1277
|
-
| "feature", (Map _ as fm) ->
|
|
1278
|
-
|
|
1565
|
+
| "feature", (Map _ as fm) ->
|
|
1566
|
+
setp out k (ja (List.map (fun f -> plain_settings (getp fm f) f) (keysof fm)))
|
|
1567
|
+
| "test", v -> setp out k (plain_settings v "")
|
|
1279
1568
|
| _, v -> setp out k v) (keysof opts);
|
|
1280
1569
|
out
|
|
1281
1570
|
|