@voxgig/sdkgen 4.34.0 → 4.34.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/voxgig-sdkgen +1 -1
- package/dist/action/copies.d.ts +4 -3
- package/dist/action/copies.js +142 -45
- package/dist/action/copies.js.map +1 -1
- package/dist/action/doctor.d.ts +1 -0
- package/dist/action/doctor.js +6 -2
- package/dist/action/doctor.js.map +1 -1
- package/dist/action/package.d.ts +3 -1
- package/dist/action/package.js +12 -5
- package/dist/action/package.js.map +1 -1
- package/dist/action/resolve.d.ts +11 -2
- package/dist/action/resolve.js +27 -0
- package/dist/action/resolve.js.map +1 -1
- package/dist/admin/npm-trust.js +7 -7
- package/dist/admin/npm-trust.js.map +1 -1
- package/dist/cmp/AgentGuide.js +4 -3
- package/dist/cmp/AgentGuide.js.map +1 -1
- package/dist/cmp/AgentGuideFeature.js +3 -2
- package/dist/cmp/AgentGuideFeature.js.map +1 -1
- package/dist/cmp/AgentGuideTop.js +2 -1
- package/dist/cmp/AgentGuideTop.js.map +1 -1
- package/dist/cmp/Changelog.js +2 -1
- package/dist/cmp/Changelog.js.map +1 -1
- package/dist/cmp/Deploy.js +2 -1
- package/dist/cmp/Deploy.js.map +1 -1
- package/dist/cmp/Entity.js +2 -2
- package/dist/cmp/Entity.js.map +1 -1
- package/dist/cmp/ExternalTarget.js +2 -1
- package/dist/cmp/ExternalTarget.js.map +1 -1
- package/dist/cmp/Feature.js +2 -1
- package/dist/cmp/Feature.js.map +1 -1
- package/dist/cmp/FeatureHook.js +2 -1
- package/dist/cmp/FeatureHook.js.map +1 -1
- package/dist/cmp/License.js +6 -4
- package/dist/cmp/License.js.map +1 -1
- package/dist/cmp/Main.js +2 -2
- package/dist/cmp/Main.js.map +1 -1
- package/dist/cmp/PublishWorkflow.js +2 -1
- package/dist/cmp/PublishWorkflow.js.map +1 -1
- package/dist/cmp/Readme.js +2 -1
- package/dist/cmp/Readme.js.map +1 -1
- package/dist/cmp/ReadmeEntity.js +4 -4
- package/dist/cmp/ReadmeEntity.js.map +1 -1
- package/dist/cmp/ReadmeErrors.js +6 -4
- package/dist/cmp/ReadmeErrors.js.map +1 -1
- package/dist/cmp/ReadmeExplanation.js +4 -3
- package/dist/cmp/ReadmeExplanation.js.map +1 -1
- package/dist/cmp/ReadmeFeatures.js +4 -3
- package/dist/cmp/ReadmeFeatures.js.map +1 -1
- package/dist/cmp/ReadmeHowto.js +4 -3
- package/dist/cmp/ReadmeHowto.js.map +1 -1
- package/dist/cmp/ReadmeInstall.js +4 -3
- package/dist/cmp/ReadmeInstall.js.map +1 -1
- package/dist/cmp/ReadmeIntro.js +4 -4
- package/dist/cmp/ReadmeIntro.js.map +1 -1
- package/dist/cmp/ReadmeModel.js +6 -3
- package/dist/cmp/ReadmeModel.js.map +1 -1
- package/dist/cmp/ReadmeOptions.js +4 -4
- package/dist/cmp/ReadmeOptions.js.map +1 -1
- package/dist/cmp/ReadmeQuick.js +4 -3
- package/dist/cmp/ReadmeQuick.js.map +1 -1
- package/dist/cmp/ReadmeRef.js +4 -4
- package/dist/cmp/ReadmeRef.js.map +1 -1
- package/dist/cmp/ReadmeRefFeatures.js +2 -1
- package/dist/cmp/ReadmeRefFeatures.js.map +1 -1
- package/dist/cmp/ReadmeStation.js +2 -1
- package/dist/cmp/ReadmeStation.js.map +1 -1
- package/dist/cmp/ReadmeTop.js +104 -35
- package/dist/cmp/ReadmeTop.js.map +1 -1
- package/dist/cmp/ReadmeUnions.js +2 -1
- package/dist/cmp/ReadmeUnions.js.map +1 -1
- package/dist/cmp/Registered.js +4 -3
- package/dist/cmp/Registered.js.map +1 -1
- package/dist/cmp/Security.js +10 -6
- package/dist/cmp/Security.js.map +1 -1
- package/dist/cmp/Test.js +2 -1
- package/dist/cmp/Test.js.map +1 -1
- package/dist/cmp/TestControl.js +2 -1
- package/dist/cmp/TestControl.js.map +1 -1
- package/dist/helpers/component.d.ts +4 -0
- package/dist/helpers/component.js +54 -0
- package/dist/helpers/component.js.map +1 -0
- package/dist/helpers/definition.js +2 -2
- package/dist/helpers/definition.js.map +1 -1
- package/dist/helpers/definitionPlan.d.ts +16 -0
- package/dist/helpers/definitionPlan.js +116 -12
- package/dist/helpers/definitionPlan.js.map +1 -1
- package/dist/helpers/featureSource.d.ts +2 -1
- package/dist/helpers/featureSource.js +44 -2
- package/dist/helpers/featureSource.js.map +1 -1
- package/dist/helpers/flowGuard.d.ts +8 -0
- package/dist/helpers/flowGuard.js +84 -0
- package/dist/helpers/flowGuard.js.map +1 -0
- package/dist/helpers/generated.d.ts +26 -0
- package/dist/helpers/generated.js +363 -0
- package/dist/helpers/generated.js.map +1 -0
- package/dist/helpers/mcpTools.d.ts +11 -0
- package/dist/helpers/mcpTools.js +28 -0
- package/dist/helpers/mcpTools.js.map +1 -0
- package/dist/helpers/media.d.ts +9 -0
- package/dist/helpers/media.js +61 -0
- package/dist/helpers/media.js.map +1 -0
- package/dist/helpers/modelNames.js +147 -14
- package/dist/helpers/modelNames.js.map +1 -1
- package/dist/helpers/naming.d.ts +11 -1
- package/dist/helpers/naming.js +143 -0
- package/dist/helpers/naming.js.map +1 -1
- package/dist/helpers/npm.d.ts +13 -0
- package/dist/helpers/npm.js +41 -0
- package/dist/helpers/npm.js.map +1 -0
- package/dist/helpers/npmScripts.d.ts +4 -0
- package/dist/helpers/npmScripts.js +30 -0
- package/dist/helpers/npmScripts.js.map +1 -0
- package/dist/helpers/opExample.d.ts +5 -4
- package/dist/helpers/opExample.js +10 -7
- package/dist/helpers/opExample.js.map +1 -1
- package/dist/helpers/opShape.d.ts +20 -4
- package/dist/helpers/opShape.js +197 -30
- package/dist/helpers/opShape.js.map +1 -1
- package/dist/helpers/optional.d.ts +20 -0
- package/dist/helpers/optional.js +51 -0
- package/dist/helpers/optional.js.map +1 -0
- package/dist/helpers/packageMeta.d.ts +9 -1
- package/dist/helpers/packageMeta.js +70 -11
- package/dist/helpers/packageMeta.js.map +1 -1
- package/dist/helpers/stdrep.js +3 -0
- package/dist/helpers/stdrep.js.map +1 -1
- package/dist/helpers/testPolicy.d.ts +9 -1
- package/dist/helpers/testPolicy.js +48 -0
- package/dist/helpers/testPolicy.js.map +1 -1
- package/dist/helpers/text.d.ts +2 -0
- package/dist/helpers/text.js +27 -0
- package/dist/helpers/text.js.map +1 -0
- package/dist/sdkgen.d.ts +15 -8
- package/dist/sdkgen.js +79 -12
- package/dist/sdkgen.js.map +1 -1
- package/dist/testkit.js +2 -1
- package/dist/testkit.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utility.d.ts +2 -1
- package/dist/utility.js +33 -18
- package/dist/utility.js.map +1 -1
- package/model/sdkgen.aontu +24 -1
- package/package.json +8 -2
- package/project/.sdk/model/feature/timeout.aontu +2 -0
- package/project/.sdk/model/target/go-mcp.aontu +2 -0
- package/project/.sdk/src/cmp/c/Config_c.ts +5 -0
- package/project/.sdk/src/cmp/c/EntityTypes_c.ts +1 -1
- package/project/.sdk/src/cmp/c/Entity_c.ts +1 -1
- package/project/.sdk/src/cmp/c/Main_c.ts +4 -20
- package/project/.sdk/src/cmp/c/PrepareAuth_c.ts +169 -51
- package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +22 -13
- package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +10 -5
- package/project/.sdk/src/cmp/c/ReadmeInstall_c.ts +2 -2
- package/project/.sdk/src/cmp/c/ReadmeIntro_c.ts +3 -3
- package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +11 -10
- package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +37 -20
- package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +39 -21
- package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +9 -7
- package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +15 -4
- package/project/.sdk/src/cmp/c/TestClean_c.ts +56 -22
- package/project/.sdk/src/cmp/c/TestDirect_c.ts +2 -2
- package/project/.sdk/src/cmp/c/TestEntity_c.ts +77 -4
- package/project/.sdk/src/cmp/c/fragment/Entity.fragment.c +33 -27
- package/project/.sdk/src/cmp/c/fragment/EntityPatchOp.fragment.c +36 -0
- package/project/.sdk/src/cmp/c/fragment/Main.fragment.c +40 -7
- package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +1 -1
- package/project/.sdk/src/cmp/clojure/Main_clojure.ts +3 -1
- package/project/.sdk/src/cmp/clojure/PrepareAuth_clojure.ts +44 -28
- package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +7 -4
- package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +1 -1
- package/project/.sdk/src/cmp/clojure/ReadmeInstall_clojure.ts +3 -3
- package/project/.sdk/src/cmp/clojure/ReadmeIntro_clojure.ts +3 -3
- package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +7 -5
- package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +12 -4
- package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +24 -7
- package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +2 -2
- package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +1 -1
- package/project/.sdk/src/cmp/clojure/TestClean_clojure.ts +53 -23
- package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +64 -5
- package/project/.sdk/src/cmp/clojure/fragment/Entity.fragment.clj +22 -11
- package/project/.sdk/src/cmp/clojure/fragment/EntityListOp.fragment.clj +7 -9
- package/project/.sdk/src/cmp/clojure/fragment/EntityPatchOp.fragment.clj +15 -0
- package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +1 -1
- package/project/.sdk/src/cmp/cpp/Entity_cpp.ts +2 -2
- package/project/.sdk/src/cmp/cpp/Main_cpp.ts +3 -19
- package/project/.sdk/src/cmp/cpp/PrepareAuth_cpp.ts +38 -39
- package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +19 -12
- package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +11 -6
- package/project/.sdk/src/cmp/cpp/ReadmeInstall_cpp.ts +2 -2
- package/project/.sdk/src/cmp/cpp/ReadmeIntro_cpp.ts +3 -3
- package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +10 -9
- package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +26 -18
- package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +42 -25
- package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +7 -7
- package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +11 -4
- package/project/.sdk/src/cmp/cpp/TestClean_cpp.ts +69 -21
- package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +135 -6
- package/project/.sdk/src/cmp/cpp/fragment/Entity.fragment.cpp +2 -0
- package/project/.sdk/src/cmp/cpp/fragment/EntityPatchOp.fragment.cpp +28 -0
- package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/Main_csharp.ts +3 -1
- package/project/.sdk/src/cmp/csharp/Package_csharp.ts +4 -1
- package/project/.sdk/src/cmp/csharp/PrepareAuth_csharp.ts +69 -23
- package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +7 -4
- package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/ReadmeInstall_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/ReadmeIntro_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +11 -9
- package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +17 -6
- package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +33 -16
- package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/TestClean_csharp.ts +67 -14
- package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +43 -31
- package/project/.sdk/src/cmp/csharp/TestEntity_csharp.ts +187 -15
- package/project/.sdk/src/cmp/csharp/fragment/Entity.fragment.cs +2 -0
- package/project/.sdk/src/cmp/csharp/fragment/EntityBase.fragment.cs +11 -2
- package/project/.sdk/src/cmp/csharp/fragment/EntityPatchOp.fragment.cs +41 -0
- package/project/.sdk/src/cmp/csharp/fragment/Main.fragment.cs +28 -4
- package/project/.sdk/src/cmp/csharp/utility_csharp.ts +6 -0
- package/project/.sdk/src/cmp/elixir/EntityOperation_elixir.ts +5 -0
- package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +3 -3
- package/project/.sdk/src/cmp/elixir/Entity_elixir.ts +22 -1
- package/project/.sdk/src/cmp/elixir/MainEntity_elixir.ts +4 -2
- package/project/.sdk/src/cmp/elixir/Main_elixir.ts +6 -2
- package/project/.sdk/src/cmp/elixir/Package_elixir.ts +7 -0
- package/project/.sdk/src/cmp/elixir/PrepareAuth_elixir.ts +40 -30
- package/project/.sdk/src/cmp/elixir/ReadmeEntity_elixir.ts +13 -9
- package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +6 -5
- package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +2 -2
- package/project/.sdk/src/cmp/elixir/ReadmeIntro_elixir.ts +4 -4
- package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +13 -11
- package/project/.sdk/src/cmp/elixir/ReadmeQuick_elixir.ts +25 -12
- package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +29 -13
- package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +5 -4
- package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +5 -4
- package/project/.sdk/src/cmp/elixir/TestClean_elixir.ts +41 -12
- package/project/.sdk/src/cmp/elixir/TestEntity_elixir.ts +152 -23
- package/project/.sdk/src/cmp/elixir/fragment/Entity.fragment.ex +4 -4
- package/project/.sdk/src/cmp/elixir/fragment/EntityPatchOp.fragment.ex +35 -0
- package/project/.sdk/src/cmp/elixir/fragment/Main.fragment.ex +29 -5
- package/project/.sdk/src/cmp/elixir/fragment/Pipeline.fragment.ex +23 -16
- package/project/.sdk/src/cmp/go/EntityTypes_go.ts +1 -1
- package/project/.sdk/src/cmp/go/Entity_go.ts +1 -1
- package/project/.sdk/src/cmp/go/Main_go.ts +5 -6
- package/project/.sdk/src/cmp/go/PrepareAuth_go.ts +40 -26
- package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +1 -0
- package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +6 -1
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +1 -1
- package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +3 -3
- package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +3 -3
- package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +3 -2
- package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +14 -0
- package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +29 -7
- package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +1 -1
- package/project/.sdk/src/cmp/go/TestClean_go.ts +81 -18
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +47 -53
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +204 -24
- package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +79 -60
- package/project/.sdk/src/cmp/go/fragment/EntityPatchOp.fragment.go +49 -0
- package/project/.sdk/src/cmp/go/fragment/Main.fragment.go +26 -5
- package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +8 -10
- package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +240 -121
- package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +1 -1
- package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +34 -27
- package/project/.sdk/src/cmp/java/EntityTypes_java.ts +1 -1
- package/project/.sdk/src/cmp/java/Entity_java.ts +1 -1
- package/project/.sdk/src/cmp/java/Main_java.ts +3 -1
- package/project/.sdk/src/cmp/java/PrepareAuth_java.ts +58 -23
- package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +7 -4
- package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +1 -1
- package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +3 -3
- package/project/.sdk/src/cmp/java/ReadmeIntro_java.ts +3 -3
- package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +2 -1
- package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +10 -1
- package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +22 -5
- package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +1 -1
- package/project/.sdk/src/cmp/java/TestClean_java.ts +57 -12
- package/project/.sdk/src/cmp/java/TestDirect_java.ts +50 -36
- package/project/.sdk/src/cmp/java/TestEntity_java.ts +180 -13
- package/project/.sdk/src/cmp/java/fragment/Entity.fragment.java +2 -0
- package/project/.sdk/src/cmp/java/fragment/EntityBase.fragment.java +5 -3
- package/project/.sdk/src/cmp/java/fragment/EntityPatchOp.fragment.java +45 -0
- package/project/.sdk/src/cmp/js/EntityTypes_js.ts +1 -1
- package/project/.sdk/src/cmp/js/Entity_js.ts +1 -1
- package/project/.sdk/src/cmp/js/Main_js.ts +2 -0
- package/project/.sdk/src/cmp/js/Package_js.ts +11 -8
- package/project/.sdk/src/cmp/js/PrepareAuth_js.ts +39 -27
- package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +7 -4
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +0 -3
- package/project/.sdk/src/cmp/js/ReadmeInstall_js.ts +3 -3
- package/project/.sdk/src/cmp/js/ReadmeIntro_js.ts +3 -3
- package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +4 -3
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +17 -0
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +37 -8
- package/project/.sdk/src/cmp/js/ReadmeTopHowto_js.ts +2 -3
- package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +1 -1
- package/project/.sdk/src/cmp/js/TestClean_js.ts +52 -8
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +81 -54
- package/project/.sdk/src/cmp/js/TestEntity_js.ts +95 -2
- package/project/.sdk/src/cmp/js/TestLive_js.ts +4 -3
- package/project/.sdk/src/cmp/js/fragment/Direct.test.fragment.js +4 -0
- package/project/.sdk/src/cmp/js/fragment/Entity.fragment.js +2 -0
- package/project/.sdk/src/cmp/js/fragment/Entity.test.fragment.js +2 -0
- package/project/.sdk/src/cmp/js/fragment/EntityBase.fragment.js +51 -25
- package/project/.sdk/src/cmp/js/fragment/EntityPatchOp.fragment.js +129 -0
- package/project/.sdk/src/cmp/js/fragment/Main.fragment.js +39 -15
- package/project/.sdk/src/cmp/kotlin/Config_kotlin.ts +4 -0
- package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +3 -1
- package/project/.sdk/src/cmp/kotlin/PrepareAuth_kotlin.ts +56 -31
- package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +7 -4
- package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/ReadmeIntro_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +2 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +10 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +22 -5
- package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/TestClean_kotlin.ts +45 -10
- package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +49 -26
- package/project/.sdk/src/cmp/kotlin/TestEntity_kotlin.ts +168 -10
- package/project/.sdk/src/cmp/kotlin/fragment/Entity.fragment.kt +2 -0
- package/project/.sdk/src/cmp/kotlin/fragment/EntityBase.fragment.kt +2 -1
- package/project/.sdk/src/cmp/kotlin/fragment/EntityPatchOp.fragment.kt +40 -0
- package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/Entity_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/Main_lua.ts +2 -1
- package/project/.sdk/src/cmp/lua/PrepareAuth_lua.ts +42 -23
- package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +7 -4
- package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +8 -2
- package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/ReadmeInstall_lua.ts +2 -2
- package/project/.sdk/src/cmp/lua/ReadmeIntro_lua.ts +3 -3
- package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +3 -2
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +9 -1
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +22 -6
- package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/TestClean_lua.ts +46 -12
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +100 -124
- package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +173 -20
- package/project/.sdk/src/cmp/lua/fragment/Entity.fragment.lua +85 -48
- package/project/.sdk/src/cmp/lua/fragment/EntityPatchOp.fragment.lua +34 -0
- package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +28 -6
- package/project/.sdk/src/cmp/ocaml/EntityOperation_ocaml.ts +8 -11
- package/project/.sdk/src/cmp/ocaml/Entity_ocaml.ts +8 -3
- package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +2 -1
- package/project/.sdk/src/cmp/ocaml/Package_ocaml.ts +7 -5
- package/project/.sdk/src/cmp/ocaml/PrepareAuth_ocaml.ts +39 -34
- package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +7 -4
- package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +3 -8
- package/project/.sdk/src/cmp/ocaml/ReadmeInstall_ocaml.ts +2 -2
- package/project/.sdk/src/cmp/ocaml/ReadmeIntro_ocaml.ts +3 -3
- package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +2 -1
- package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +9 -1
- package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +22 -6
- package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +3 -7
- package/project/.sdk/src/cmp/ocaml/TestClean_ocaml.ts +47 -14
- package/project/.sdk/src/cmp/ocaml/TestEntity_ocaml.ts +88 -3
- package/project/.sdk/src/cmp/ocaml/fragment/RunOp.fragment.ml +10 -11
- package/project/.sdk/src/cmp/ocaml/utility_ocaml.ts +7 -0
- package/project/.sdk/src/cmp/perl/Entity_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/Main_perl.ts +3 -1
- package/project/.sdk/src/cmp/perl/Package_perl.ts +5 -4
- package/project/.sdk/src/cmp/perl/PrepareAuth_perl.ts +48 -33
- package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +9 -4
- package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +2 -2
- package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/ReadmeInstall_perl.ts +9 -3
- package/project/.sdk/src/cmp/perl/ReadmeIntro_perl.ts +3 -3
- package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +7 -5
- package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +12 -4
- package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +26 -9
- package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +2 -2
- package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/TestClean_perl.ts +42 -11
- package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +121 -149
- package/project/.sdk/src/cmp/perl/TestEntity_perl.ts +178 -17
- package/project/.sdk/src/cmp/perl/fragment/Entity.fragment.pm +16 -2
- package/project/.sdk/src/cmp/perl/fragment/EntityListOp.fragment.pm +2 -13
- package/project/.sdk/src/cmp/perl/fragment/EntityPatchOp.fragment.pm +32 -0
- package/project/.sdk/src/cmp/perl/fragment/Main.fragment.pm +23 -5
- package/project/.sdk/src/cmp/perl/utility_perl.ts +16 -0
- package/project/.sdk/src/cmp/php/EntityTypes_php.ts +3 -3
- package/project/.sdk/src/cmp/php/Entity_php.ts +4 -3
- package/project/.sdk/src/cmp/php/MainEntity_php.ts +1 -1
- package/project/.sdk/src/cmp/php/Main_php.ts +3 -1
- package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
- package/project/.sdk/src/cmp/php/PrepareAuth_php.ts +36 -28
- package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +7 -4
- package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +3 -3
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +1 -1
- package/project/.sdk/src/cmp/php/ReadmeInstall_php.ts +2 -2
- package/project/.sdk/src/cmp/php/ReadmeIntro_php.ts +3 -3
- package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +2 -1
- package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +9 -1
- package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +23 -6
- package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +1 -1
- package/project/.sdk/src/cmp/php/TestClean_php.ts +73 -12
- package/project/.sdk/src/cmp/php/TestDirect_php.ts +95 -127
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +219 -20
- package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +82 -45
- package/project/.sdk/src/cmp/php/fragment/EntityPatchOp.fragment.php +38 -0
- package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +26 -5
- package/project/.sdk/src/cmp/py/EntityTypes_py.ts +1 -1
- package/project/.sdk/src/cmp/py/Entity_py.ts +2 -2
- package/project/.sdk/src/cmp/py/Main_py.ts +6 -2
- package/project/.sdk/src/cmp/py/Package_py.ts +7 -0
- package/project/.sdk/src/cmp/py/PrepareAuth_py.ts +52 -26
- package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +7 -4
- package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +12 -6
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +1 -1
- package/project/.sdk/src/cmp/py/ReadmeInstall_py.ts +3 -3
- package/project/.sdk/src/cmp/py/ReadmeIntro_py.ts +3 -3
- package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +2 -1
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +9 -1
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +23 -6
- package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +1 -1
- package/project/.sdk/src/cmp/py/TestClean_py.ts +41 -10
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +91 -121
- package/project/.sdk/src/cmp/py/TestEntity_py.ts +146 -20
- package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +62 -42
- package/project/.sdk/src/cmp/py/fragment/EntityPatchOp.fragment.py +27 -0
- package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +23 -5
- package/project/.sdk/src/cmp/py-data/Main_py-data.ts +1 -1
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/Entity_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/Main_rb.ts +5 -6
- package/project/.sdk/src/cmp/rb/Package_rb.ts +3 -1
- package/project/.sdk/src/cmp/rb/PrepareAuth_rb.ts +30 -28
- package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +9 -5
- package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +16 -8
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/ReadmeInstall_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/ReadmeIntro_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +3 -2
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +14 -5
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +26 -8
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +1 -1
- package/project/.sdk/src/cmp/rb/TestClean_rb.ts +36 -10
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +95 -126
- package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +177 -21
- package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +49 -29
- package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +2 -11
- package/project/.sdk/src/cmp/rb/fragment/EntityPatchOp.fragment.rb +31 -0
- package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +19 -5
- package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +1 -1
- package/project/.sdk/src/cmp/rust/Entity_rust.ts +2 -2
- package/project/.sdk/src/cmp/rust/Main_rust.ts +7 -6
- package/project/.sdk/src/cmp/rust/PrepareAuth_rust.ts +56 -29
- package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +16 -9
- package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +11 -4
- package/project/.sdk/src/cmp/rust/ReadmeInstall_rust.ts +3 -3
- package/project/.sdk/src/cmp/rust/ReadmeIntro_rust.ts +3 -3
- package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +12 -9
- package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +25 -17
- package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +35 -21
- package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +6 -8
- package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +13 -5
- package/project/.sdk/src/cmp/rust/TestClean_rust.ts +80 -21
- package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +124 -79
- package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +164 -17
- package/project/.sdk/src/cmp/rust/fragment/Entity.fragment.rs +44 -23
- package/project/.sdk/src/cmp/rust/fragment/EntityPatchOp.fragment.rs +41 -0
- package/project/.sdk/src/cmp/rust/fragment/Main.fragment.rs +39 -9
- package/project/.sdk/src/cmp/scala/Config_scala.ts +4 -0
- package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/Entity_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/Main_scala.ts +4 -20
- package/project/.sdk/src/cmp/scala/PrepareAuth_scala.ts +56 -24
- package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +7 -4
- package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/ReadmeIntro_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +2 -1
- package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +10 -1
- package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +22 -5
- package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +1 -1
- package/project/.sdk/src/cmp/scala/TestClean_scala.ts +39 -10
- package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +113 -3
- package/project/.sdk/src/cmp/scala/fragment/Entity.fragment.scala +2 -0
- package/project/.sdk/src/cmp/scala/fragment/EntityBase.fragment.scala +4 -2
- package/project/.sdk/src/cmp/scala/fragment/EntityPatchOp.fragment.scala +33 -0
- package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/Entity_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/Main_swift.ts +6 -2
- package/project/.sdk/src/cmp/swift/PrepareAuth_swift.ts +56 -29
- package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +7 -4
- package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/ReadmeIntro_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +2 -1
- package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +10 -1
- package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +21 -5
- package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/TestClean_swift.ts +44 -10
- package/project/.sdk/src/cmp/swift/TestEntity_swift.ts +90 -2
- package/project/.sdk/src/cmp/swift/fragment/Entity.fragment.swift +2 -0
- package/project/.sdk/src/cmp/swift/fragment/EntityBase.fragment.swift +9 -1
- package/project/.sdk/src/cmp/swift/fragment/EntityPatchOp.fragment.swift +24 -0
- package/project/.sdk/src/cmp/swift/fragment/Main.fragment.swift +23 -3
- package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +9 -3
- package/project/.sdk/src/cmp/ts/Entity_ts.ts +5 -5
- package/project/.sdk/src/cmp/ts/Main_ts.ts +4 -3
- package/project/.sdk/src/cmp/ts/Package_ts.ts +18 -10
- package/project/.sdk/src/cmp/ts/PrepareAuth_ts.ts +37 -28
- package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +7 -4
- package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +39 -21
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +0 -3
- package/project/.sdk/src/cmp/ts/ReadmeInstall_ts.ts +3 -3
- package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +3 -3
- package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +4 -3
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +10 -1
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +37 -8
- package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +2 -3
- package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +1 -1
- package/project/.sdk/src/cmp/ts/TestClean_ts.ts +52 -8
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +50 -109
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +92 -2
- package/project/.sdk/src/cmp/ts/TestLive_ts.ts +4 -3
- package/project/.sdk/src/cmp/ts/fragment/Direct.test.fragment.ts +3 -0
- package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +2 -0
- package/project/.sdk/src/cmp/ts/fragment/Entity.test.fragment.ts +3 -1
- package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +49 -24
- package/project/.sdk/src/cmp/ts/fragment/EntityPatchOp.fragment.ts +126 -0
- package/project/.sdk/src/cmp/ts/fragment/Main.fragment.ts +50 -18
- package/project/.sdk/src/cmp/zig/Entity_zig.ts +2 -2
- package/project/.sdk/src/cmp/zig/Main_zig.ts +5 -22
- package/project/.sdk/src/cmp/zig/Package_zig.ts +11 -2
- package/project/.sdk/src/cmp/zig/PrepareAuth_zig.ts +57 -31
- package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +17 -9
- package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +14 -4
- package/project/.sdk/src/cmp/zig/ReadmeInstall_zig.ts +2 -2
- package/project/.sdk/src/cmp/zig/ReadmeIntro_zig.ts +3 -3
- package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +12 -10
- package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +29 -12
- package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +45 -22
- package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +8 -4
- package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +10 -3
- package/project/.sdk/src/cmp/zig/TestClean_zig.ts +67 -28
- package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +54 -5
- package/project/.sdk/src/cmp/zig/Test_zig.ts +1 -0
- package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +44 -34
- package/project/.sdk/src/cmp/zig/fragment/EntityPatchOp.fragment.zig +26 -0
- package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +30 -6
- package/project/.sdk/src/cmp/zig/fragment/Root.fragment.zig +1 -0
- package/project/.sdk/tm/c/LICENSE +1 -1
- package/project/.sdk/tm/c/core/context.c +2 -1
- package/project/.sdk/tm/c/core/helpers.c +21 -0
- package/project/.sdk/tm/c/core/response.c +103 -0
- package/project/.sdk/tm/c/core/sdk.h +26 -0
- package/project/.sdk/tm/c/core/spec.c +10 -0
- package/project/.sdk/tm/c/feature/test.c +46 -2
- package/project/.sdk/tm/c/feature/validate.c +2 -0
- package/project/.sdk/tm/c/tests/feature_harness.h +1 -1
- package/project/.sdk/tm/c/tests/primary_utility_test.c +9 -5
- package/project/.sdk/tm/c/tests/server_variable_test.c +80 -0
- package/project/.sdk/tm/c/utility/make_fetch_def.c +5 -1
- package/project/.sdk/tm/c/utility/make_options.c +84 -6
- package/project/.sdk/tm/c/utility/make_point.c +100 -8
- package/project/.sdk/tm/c/utility/make_spec.c +17 -1
- package/project/.sdk/tm/c/utility/make_url.c +38 -1
- package/project/.sdk/tm/c/utility/media.c +107 -0
- package/project/.sdk/tm/c/utility/param.c +52 -28
- package/project/.sdk/tm/c/utility/prepare_body.c +1 -0
- package/project/.sdk/tm/c/utility/prepare_headers.c +199 -29
- package/project/.sdk/tm/c/utility/prepare_query.c +24 -2
- package/project/.sdk/tm/c/utility/result_body.c +4 -0
- package/project/.sdk/tm/c/utility/transform_request.c +54 -17
- package/project/.sdk/tm/clojure/LICENSE +1 -1
- package/project/.sdk/tm/clojure/feature/secrets/sdk/feature/secrets.clj +0 -3
- package/project/.sdk/tm/clojure/src/sdk/client.clj +19 -5
- package/project/.sdk/tm/clojure/src/sdk/core.clj +415 -117
- package/project/.sdk/tm/clojure/src/sdk/features.clj +44 -20
- package/project/.sdk/tm/clojure/test/sdk/test/feature.clj +21 -1
- package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +10 -2
- package/project/.sdk/tm/cpp/LICENSE +1 -1
- package/project/.sdk/tm/cpp/core/types.hpp +131 -7
- package/project/.sdk/tm/cpp/feature/test.hpp +32 -2
- package/project/.sdk/tm/cpp/feature/timeout.hpp +29 -9
- package/project/.sdk/tm/cpp/feature/validate.hpp +2 -0
- package/project/.sdk/tm/cpp/test/feature_test.cpp +37 -0
- package/project/.sdk/tm/cpp/test/harness.hpp +1 -1
- package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +6 -2
- package/project/.sdk/tm/cpp/test/server_variable_test.cpp +57 -0
- package/project/.sdk/tm/cpp/utility/cookie.hpp +36 -0
- package/project/.sdk/tm/cpp/utility/pipeline.hpp +441 -82
- package/project/.sdk/tm/csharp/LICENSE +1 -1
- package/project/.sdk/tm/csharp/core/Context.cs +1 -1
- package/project/.sdk/tm/csharp/core/Helpers.cs +17 -0
- package/project/.sdk/tm/csharp/core/Response.cs +75 -0
- package/project/.sdk/tm/csharp/core/Spec.cs +3 -0
- package/project/.sdk/tm/csharp/feature/TestFeature.cs +41 -3
- package/project/.sdk/tm/csharp/feature/TimeoutFeature.cs +31 -3
- package/project/.sdk/tm/csharp/feature/ValidateFeature.cs +2 -0
- package/project/.sdk/tm/csharp/test/FeatureHarness.cs +1 -1
- package/project/.sdk/tm/csharp/test/FeatureTest.cs +35 -0
- package/project/.sdk/tm/csharp/test/PipelineTest.cs +28 -0
- package/project/.sdk/tm/csharp/test/Runner.cs +119 -0
- package/project/.sdk/tm/csharp/test/feature/secrets/SecretsFeatureTest.cs +8 -3
- package/project/.sdk/tm/csharp/utility/Fetcher.cs +25 -7
- package/project/.sdk/tm/csharp/utility/MakeFetchDef.cs +1 -5
- package/project/.sdk/tm/csharp/utility/MakeOptions.cs +8 -6
- package/project/.sdk/tm/csharp/utility/MakePoint.cs +68 -17
- package/project/.sdk/tm/csharp/utility/MakeSpec.cs +24 -6
- package/project/.sdk/tm/csharp/utility/MakeUrl.cs +21 -1
- package/project/.sdk/tm/csharp/utility/Media.cs +124 -0
- package/project/.sdk/tm/csharp/utility/Param.cs +57 -20
- package/project/.sdk/tm/csharp/utility/PrepareBody.cs +4 -0
- package/project/.sdk/tm/csharp/utility/PrepareHeaders.cs +103 -24
- package/project/.sdk/tm/csharp/utility/PrepareQuery.cs +33 -3
- package/project/.sdk/tm/csharp/utility/ResultBody.cs +5 -0
- package/project/.sdk/tm/csharp/utility/TransformRequest.cs +21 -13
- package/project/.sdk/tm/csharp/utility/struct/Struct.cs +3 -2
- package/project/.sdk/tm/elixir/LICENSE +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/context.ex +1 -1
- package/project/.sdk/tm/elixir/lib/projectname/core.ex +7 -2
- package/project/.sdk/tm/elixir/lib/projectname/entity_base.ex +43 -12
- package/project/.sdk/tm/elixir/lib/projectname/feature/test.ex +47 -21
- package/project/.sdk/tm/elixir/lib/projectname/feature/validate.ex +2 -0
- package/project/.sdk/tm/elixir/lib/projectname/utility.ex +482 -129
- package/project/.sdk/tm/elixir/test/support/feature_harness.ex +1 -0
- package/project/.sdk/tm/go/LICENSE +1 -1
- package/project/.sdk/tm/go/core/context.go +1 -1
- package/project/.sdk/tm/go/core/helpers.go +19 -1
- package/project/.sdk/tm/go/core/response.go +72 -0
- package/project/.sdk/tm/go/core/spec.go +3 -0
- package/project/.sdk/tm/go/core/types.go +9 -1
- package/project/.sdk/tm/go/feature/test_feature.go +44 -3
- package/project/.sdk/tm/go/feature/timeout_feature.go +39 -22
- package/project/.sdk/tm/go/feature/validate_feature.go +2 -0
- package/project/.sdk/tm/go/test/feature_corpus_test.go +45 -1
- package/project/.sdk/tm/go/test/feature_harness_test.go +1 -1
- package/project/.sdk/tm/go/test/feature_test.go +86 -0
- package/project/.sdk/tm/go/test/primary_utility_test.go +37 -1
- package/project/.sdk/tm/go/test/testsupport_test.go +106 -0
- package/project/.sdk/tm/go/utility/fetcher.go +20 -6
- package/project/.sdk/tm/go/utility/make_fetch_def.go +1 -7
- package/project/.sdk/tm/go/utility/make_options.go +12 -6
- package/project/.sdk/tm/go/utility/make_point.go +52 -3
- package/project/.sdk/tm/go/utility/make_spec.go +23 -3
- package/project/.sdk/tm/go/utility/make_url.go +23 -1
- package/project/.sdk/tm/go/utility/media.go +111 -0
- package/project/.sdk/tm/go/utility/param.go +61 -20
- package/project/.sdk/tm/go/utility/prepare_body.go +3 -0
- package/project/.sdk/tm/go/utility/prepare_headers.go +108 -22
- package/project/.sdk/tm/go/utility/prepare_query.go +25 -2
- package/project/.sdk/tm/go/utility/result_body.go +8 -0
- package/project/.sdk/tm/go/utility/transform_request.go +20 -9
- package/project/.sdk/tm/java/LICENSE +1 -1
- package/project/.sdk/tm/java/core/Context.java +1 -1
- package/project/.sdk/tm/java/core/Helpers.java +13 -0
- package/project/.sdk/tm/java/core/Response.java +61 -0
- package/project/.sdk/tm/java/core/SdkClient.java +21 -3
- package/project/.sdk/tm/java/core/SdkEntity.java +2 -0
- package/project/.sdk/tm/java/core/Spec.java +4 -0
- package/project/.sdk/tm/java/feature/TestFeature.java +46 -3
- package/project/.sdk/tm/java/feature/TimeoutFeature.java +51 -18
- package/project/.sdk/tm/java/feature/ValidateFeature.java +2 -0
- package/project/.sdk/tm/java/test/FeatureCorpusTest.java +93 -35
- package/project/.sdk/tm/java/test/FeatureHarness.java +1 -0
- package/project/.sdk/tm/java/test/FeatureTest.java +33 -0
- package/project/.sdk/tm/java/test/PipelineTest.java +4 -1
- package/project/.sdk/tm/java/test/RunnerSupport.java +97 -0
- package/project/.sdk/tm/java/utility/Clean.java +17 -7
- package/project/.sdk/tm/java/utility/Fetcher.java +27 -3
- package/project/.sdk/tm/java/utility/MakeFetchDef.java +1 -7
- package/project/.sdk/tm/java/utility/MakePoint.java +62 -10
- package/project/.sdk/tm/java/utility/MakeSpec.java +26 -1
- package/project/.sdk/tm/java/utility/MakeUrl.java +23 -1
- package/project/.sdk/tm/java/utility/Media.java +117 -0
- package/project/.sdk/tm/java/utility/Param.java +59 -20
- package/project/.sdk/tm/java/utility/PrepareBody.java +3 -0
- package/project/.sdk/tm/java/utility/PrepareHeaders.java +76 -18
- package/project/.sdk/tm/java/utility/PrepareMethod.java +2 -1
- package/project/.sdk/tm/java/utility/PrepareQuery.java +26 -2
- package/project/.sdk/tm/java/utility/ResultBody.java +5 -0
- package/project/.sdk/tm/java/utility/TransformRequest.java +24 -11
- package/project/.sdk/tm/js/LICENSE +1 -1
- package/project/.sdk/tm/js/src/Context.js +1 -1
- package/project/.sdk/tm/js/src/Control.js +1 -0
- package/project/.sdk/tm/js/src/Response.js +10 -1
- package/project/.sdk/tm/js/src/Spec.js +3 -0
- package/project/.sdk/tm/js/src/feature/base/BaseFeature.js +28 -0
- package/project/.sdk/tm/js/src/feature/netsim/NetsimFeature.js +10 -8
- package/project/.sdk/tm/js/src/feature/ratelimit/RatelimitFeature.js +8 -6
- package/project/.sdk/tm/js/src/feature/retry/RetryFeature.js +17 -4
- package/project/.sdk/tm/js/src/feature/test/TestFeature.js +40 -12
- package/project/.sdk/tm/js/src/feature/timeout/TimeoutFeature.js +17 -3
- package/project/.sdk/tm/js/src/feature/validate/ValidateFeature.js +2 -0
- package/project/.sdk/tm/js/src/utility/CleanUtility.js +25 -1
- package/project/.sdk/tm/js/src/utility/FetcherUtility.js +23 -1
- package/project/.sdk/tm/js/src/utility/MakeErrorUtility.js +2 -2
- package/project/.sdk/tm/js/src/utility/MakeFetchDefUtility.js +14 -2
- package/project/.sdk/tm/js/src/utility/MakeOptionsUtility.js +6 -6
- package/project/.sdk/tm/js/src/utility/MakePointUtility.js +39 -2
- package/project/.sdk/tm/js/src/utility/MakeRequestUtility.js +27 -2
- package/project/.sdk/tm/js/src/utility/MakeResponseUtility.js +2 -1
- package/project/.sdk/tm/js/src/utility/MakeSpecUtility.js +14 -1
- package/project/.sdk/tm/js/src/utility/MakeUrlUtility.js +23 -0
- package/project/.sdk/tm/js/src/utility/MediaUtility.js +145 -0
- package/project/.sdk/tm/js/src/utility/ParamUtility.js +46 -18
- package/project/.sdk/tm/js/src/utility/PrepareBodyUtility.js +6 -0
- package/project/.sdk/tm/js/src/utility/PrepareHeadersUtility.js +55 -14
- package/project/.sdk/tm/js/src/utility/PrepareMethodUtility.js +9 -0
- package/project/.sdk/tm/js/src/utility/PrepareQueryUtility.js +23 -6
- package/project/.sdk/tm/js/src/utility/ResultBodyUtility.js +60 -3
- package/project/.sdk/tm/js/src/utility/TransformRequestUtility.js +16 -7
- package/project/.sdk/tm/js/test/definition-runner.js +103 -3
- package/project/.sdk/tm/js/test/feature/Corpus.test.js +47 -16
- package/project/.sdk/tm/js/test/feature/harness.js +4 -1
- package/project/.sdk/tm/js/test/feature/secrets/Secrets.test.js +7 -7
- package/project/.sdk/tm/js/test/feature.test.js +134 -0
- package/project/.sdk/tm/js/test/live-contract.js +73 -3
- package/project/.sdk/tm/js/test/live-entity.js +34 -15
- package/project/.sdk/tm/js/test/live-runner.js +52 -7
- package/project/.sdk/tm/js/test/live-scenarios.js +4 -4
- package/project/.sdk/tm/js/test/pipeline.test.js +52 -1
- package/project/.sdk/tm/js/test/utility.js +30 -4
- package/project/.sdk/tm/kotlin/LICENSE +1 -1
- package/project/.sdk/tm/kotlin/core/Context.kt +1 -1
- package/project/.sdk/tm/kotlin/core/Helpers.kt +8 -0
- package/project/.sdk/tm/kotlin/core/Interfaces.kt +2 -0
- package/project/.sdk/tm/kotlin/core/Response.kt +65 -0
- package/project/.sdk/tm/kotlin/core/SdkClient.kt +20 -3
- package/project/.sdk/tm/kotlin/core/Spec.kt +3 -0
- package/project/.sdk/tm/kotlin/feature/TestFeature.kt +23 -3
- package/project/.sdk/tm/kotlin/feature/TimeoutFeature.kt +42 -15
- package/project/.sdk/tm/kotlin/feature/ValidateFeature.kt +2 -0
- package/project/.sdk/tm/kotlin/test/FeatureHarness.kt +1 -1
- package/project/.sdk/tm/kotlin/test/FeatureTest.kt +32 -0
- package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +90 -0
- package/project/.sdk/tm/kotlin/test/ServerVariableTest.kt +50 -0
- package/project/.sdk/tm/kotlin/utility/CoreUtil.kt +9 -7
- package/project/.sdk/tm/kotlin/utility/Fetcher.kt +24 -4
- package/project/.sdk/tm/kotlin/utility/MakeOptions.kt +26 -0
- package/project/.sdk/tm/kotlin/utility/MakePoint.kt +57 -12
- package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +26 -7
- package/project/.sdk/tm/kotlin/utility/Media.kt +83 -0
- package/project/.sdk/tm/kotlin/utility/Prepare.kt +127 -48
- package/project/.sdk/tm/kotlin/utility/ResultTransform.kt +18 -7
- package/project/.sdk/tm/lua/LICENSE +1 -1
- package/project/.sdk/tm/lua/core/context.lua +1 -1
- package/project/.sdk/tm/lua/core/helpers.lua +103 -0
- package/project/.sdk/tm/lua/core/response.lua +3 -0
- package/project/.sdk/tm/lua/core/spec.lua +3 -0
- package/project/.sdk/tm/lua/feature/test_feature.lua +36 -3
- package/project/.sdk/tm/lua/feature/validate_feature.lua +2 -0
- package/project/.sdk/tm/lua/test/feature_test.lua +1 -1
- package/project/.sdk/tm/lua/test/runner.lua +107 -0
- package/project/.sdk/tm/lua/utility/fetcher.lua +9 -2
- package/project/.sdk/tm/lua/utility/make_fetch_def.lua +2 -6
- package/project/.sdk/tm/lua/utility/make_options.lua +10 -7
- package/project/.sdk/tm/lua/utility/make_point.lua +65 -12
- package/project/.sdk/tm/lua/utility/make_spec.lua +19 -4
- package/project/.sdk/tm/lua/utility/make_url.lua +22 -1
- package/project/.sdk/tm/lua/utility/media.lua +106 -0
- package/project/.sdk/tm/lua/utility/param.lua +5 -45
- package/project/.sdk/tm/lua/utility/prepare_body.lua +5 -0
- package/project/.sdk/tm/lua/utility/prepare_headers.lua +71 -21
- package/project/.sdk/tm/lua/utility/prepare_query.lua +28 -6
- package/project/.sdk/tm/lua/utility/result_body.lua +7 -0
- package/project/.sdk/tm/lua/utility/transform_request.lua +23 -10
- package/project/.sdk/tm/lua/utility/unreadable_body.lua +70 -0
- package/project/.sdk/tm/ocaml/LICENSE +1 -1
- package/project/.sdk/tm/ocaml/sdk_features.ml +56 -10
- package/project/.sdk/tm/ocaml/sdk_helpers.ml +9 -0
- package/project/.sdk/tm/ocaml/sdk_runtime.ml +359 -85
- package/project/.sdk/tm/ocaml/sdk_types.ml +6 -0
- package/project/.sdk/tm/ocaml/test/harness.ml +1 -1
- package/project/.sdk/tm/ocaml/test/t_pipeline.ml +2 -1
- package/project/.sdk/tm/perl/LICENSE +1 -1
- package/project/.sdk/tm/perl/core/context.pm +1 -1
- package/project/.sdk/tm/perl/core/response.pm +2 -0
- package/project/.sdk/tm/perl/core/spec.pm +3 -0
- package/project/.sdk/tm/perl/feature/test_feature.pm +26 -3
- package/project/.sdk/tm/perl/feature/validate_feature.pm +2 -0
- package/project/.sdk/tm/perl/t/feature.t +1 -1
- package/project/.sdk/tm/perl/t/feature_corpus.t +72 -33
- package/project/.sdk/tm/perl/t/runner.pm +86 -0
- package/project/.sdk/tm/perl/t/server_variables.t +39 -0
- package/project/.sdk/tm/perl/utility/clean.pm +12 -7
- package/project/.sdk/tm/perl/utility/fetcher.pm +32 -19
- package/project/.sdk/tm/perl/utility/make_fetch_def.pm +4 -4
- package/project/.sdk/tm/perl/utility/make_options.pm +24 -0
- package/project/.sdk/tm/perl/utility/make_point.pm +55 -9
- package/project/.sdk/tm/perl/utility/make_spec.pm +27 -3
- package/project/.sdk/tm/perl/utility/make_url.pm +13 -1
- package/project/.sdk/tm/perl/utility/media.pm +109 -0
- package/project/.sdk/tm/perl/utility/param.pm +50 -24
- package/project/.sdk/tm/perl/utility/prepare_body.pm +11 -3
- package/project/.sdk/tm/perl/utility/prepare_headers.pm +63 -16
- package/project/.sdk/tm/perl/utility/prepare_method.pm +13 -0
- package/project/.sdk/tm/perl/utility/prepare_query.pm +18 -4
- package/project/.sdk/tm/perl/utility/result_body.pm +60 -0
- package/project/.sdk/tm/perl/utility/transform_request.pm +23 -8
- package/project/.sdk/tm/php/LICENSE +1 -1
- package/project/.sdk/tm/php/core/Context.php +1 -1
- package/project/.sdk/tm/php/core/Response.php +3 -0
- package/project/.sdk/tm/php/core/Spec.php +4 -0
- package/project/.sdk/tm/php/feature/CostFeature.php +2 -7
- package/project/.sdk/tm/php/feature/TestFeature.php +33 -3
- package/project/.sdk/tm/php/feature/ValidateFeature.php +14 -12
- package/project/.sdk/tm/php/test/FeatureCorpusTest.php +90 -35
- package/project/.sdk/tm/php/test/FeatureTest.php +4 -5
- package/project/.sdk/tm/php/test/PipelineTest.php +18 -1
- package/project/.sdk/tm/php/test/Runner.php +86 -0
- package/project/.sdk/tm/php/utility/Clean.php +10 -5
- package/project/.sdk/tm/php/utility/Fetcher.php +48 -6
- package/project/.sdk/tm/php/utility/MakeFetchDef.php +2 -1
- package/project/.sdk/tm/php/utility/MakePoint.php +55 -11
- package/project/.sdk/tm/php/utility/MakeSpec.php +21 -4
- package/project/.sdk/tm/php/utility/MakeUrl.php +16 -1
- package/project/.sdk/tm/php/utility/Media.php +111 -0
- package/project/.sdk/tm/php/utility/Param.php +66 -27
- package/project/.sdk/tm/php/utility/PrepareBody.php +5 -0
- package/project/.sdk/tm/php/utility/PrepareHeaders.php +83 -23
- package/project/.sdk/tm/php/utility/PrepareMethod.php +15 -0
- package/project/.sdk/tm/php/utility/PrepareQuery.php +22 -8
- package/project/.sdk/tm/php/utility/ResultBody.php +71 -0
- package/project/.sdk/tm/php/utility/TransformRequest.php +22 -11
- package/project/.sdk/tm/py/LICENSE +1 -1
- package/project/.sdk/tm/py/pkg/core/context.py +1 -1
- package/project/.sdk/tm/py/pkg/core/response.py +3 -0
- package/project/.sdk/tm/py/pkg/core/spec.py +3 -0
- package/project/.sdk/tm/py/pkg/feature/test_feature.py +27 -3
- package/project/.sdk/tm/py/pkg/feature/validate_feature.py +2 -0
- package/project/.sdk/tm/py/pkg/utility/fetcher.py +17 -7
- package/project/.sdk/tm/py/pkg/utility/make_fetch_def.py +2 -5
- package/project/.sdk/tm/py/pkg/utility/make_options.py +14 -8
- package/project/.sdk/tm/py/pkg/utility/make_point.py +40 -4
- package/project/.sdk/tm/py/pkg/utility/make_spec.py +12 -4
- package/project/.sdk/tm/py/pkg/utility/make_url.py +19 -1
- package/project/.sdk/tm/py/pkg/utility/media.py +88 -0
- package/project/.sdk/tm/py/pkg/utility/param.py +47 -18
- package/project/.sdk/tm/py/pkg/utility/prepare_body.py +4 -0
- package/project/.sdk/tm/py/pkg/utility/prepare_headers.py +56 -20
- package/project/.sdk/tm/py/pkg/utility/prepare_method.py +7 -0
- package/project/.sdk/tm/py/pkg/utility/prepare_query.py +17 -8
- package/project/.sdk/tm/py/pkg/utility/result_body.py +51 -0
- package/project/.sdk/tm/py/pkg/utility/transform_request.py +18 -9
- package/project/.sdk/tm/py/test/feature_harness.py +1 -1
- package/project/.sdk/tm/py/test/runner.py +77 -2
- package/project/.sdk/tm/py/test/test_feature_corpus.py +69 -32
- package/project/.sdk/tm/py-data/LICENSE +1 -1
- package/project/.sdk/tm/py-data/Makefile +2 -2
- package/project/.sdk/tm/rb/LICENSE +1 -1
- package/project/.sdk/tm/rb/core/context.rb +1 -1
- package/project/.sdk/tm/rb/core/response.rb +3 -1
- package/project/.sdk/tm/rb/core/spec.rb +4 -1
- package/project/.sdk/tm/rb/feature/test_feature.rb +27 -8
- package/project/.sdk/tm/rb/feature/validate_feature.rb +3 -1
- package/project/.sdk/tm/rb/test/feature_corpus_test.rb +74 -30
- package/project/.sdk/tm/rb/test/feature_test.rb +1 -1
- package/project/.sdk/tm/rb/test/runner.rb +54 -2
- package/project/.sdk/tm/rb/utility/clean.rb +14 -6
- package/project/.sdk/tm/rb/utility/fetcher.rb +22 -14
- package/project/.sdk/tm/rb/utility/make_fetch_def.rb +2 -4
- package/project/.sdk/tm/rb/utility/make_point.rb +44 -8
- package/project/.sdk/tm/rb/utility/make_spec.rb +14 -2
- package/project/.sdk/tm/rb/utility/make_url.rb +13 -1
- package/project/.sdk/tm/rb/utility/media.rb +75 -0
- package/project/.sdk/tm/rb/utility/param.rb +44 -25
- package/project/.sdk/tm/rb/utility/prepare_body.rb +4 -1
- package/project/.sdk/tm/rb/utility/prepare_headers.rb +50 -16
- package/project/.sdk/tm/rb/utility/prepare_method.rb +6 -0
- package/project/.sdk/tm/rb/utility/prepare_query.rb +12 -4
- package/project/.sdk/tm/rb/utility/result_body.rb +45 -0
- package/project/.sdk/tm/rb/utility/transform_request.rb +17 -7
- package/project/.sdk/tm/rust/LICENSE +1 -1
- package/project/.sdk/tm/rust/core/context.rs +1 -1
- package/project/.sdk/tm/rust/core/helpers.rs +10 -0
- package/project/.sdk/tm/rust/core/response.rs +80 -1
- package/project/.sdk/tm/rust/core/spec.rs +4 -0
- package/project/.sdk/tm/rust/core/types.rs +1 -0
- package/project/.sdk/tm/rust/feature/test.rs +29 -2
- package/project/.sdk/tm/rust/feature/validate.rs +2 -0
- package/project/.sdk/tm/rust/tests/common/mod.rs +108 -1
- package/project/.sdk/tm/rust/utility/clean.rs +0 -2
- package/project/.sdk/tm/rust/utility/fetcher.rs +19 -11
- package/project/.sdk/tm/rust/utility/make_fetch_def.rs +12 -1
- package/project/.sdk/tm/rust/utility/make_options.rs +6 -5
- package/project/.sdk/tm/rust/utility/make_point.rs +80 -16
- package/project/.sdk/tm/rust/utility/make_spec.rs +23 -4
- package/project/.sdk/tm/rust/utility/make_url.rs +39 -2
- package/project/.sdk/tm/rust/utility/media.rs +116 -0
- package/project/.sdk/tm/rust/utility/mod.rs +1 -0
- package/project/.sdk/tm/rust/utility/param.rs +66 -19
- package/project/.sdk/tm/rust/utility/prepare_body.rs +4 -0
- package/project/.sdk/tm/rust/utility/prepare_headers.rs +85 -28
- package/project/.sdk/tm/rust/utility/prepare_query.rs +27 -5
- package/project/.sdk/tm/rust/utility/result_body.rs +15 -2
- package/project/.sdk/tm/rust/utility/transform_request.rs +27 -14
- package/project/.sdk/tm/scala/LICENSE +1 -1
- package/project/.sdk/tm/scala/Makefile +3 -1
- package/project/.sdk/tm/scala/core/Context.scala +1 -1
- package/project/.sdk/tm/scala/core/Contracts.scala +1 -0
- package/project/.sdk/tm/scala/core/Helpers.scala +7 -0
- package/project/.sdk/tm/scala/core/Response.scala +55 -0
- package/project/.sdk/tm/scala/core/SdkClient.scala +18 -5
- package/project/.sdk/tm/scala/core/Spec.scala +3 -0
- package/project/.sdk/tm/scala/feature/TestFeature.scala +36 -3
- package/project/.sdk/tm/scala/feature/TimeoutFeature.scala +39 -13
- package/project/.sdk/tm/scala/feature/ValidateFeature.scala +2 -0
- package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +16 -1
- package/project/.sdk/tm/scala/sdktest/ServerVariableTest.scala +49 -0
- package/project/.sdk/tm/scala/sdktest/feature/secrets/SecretsTestMain.scala +1 -0
- package/project/.sdk/tm/scala/utility/Fetcher.scala +17 -2
- package/project/.sdk/tm/scala/utility/Make.scala +141 -43
- package/project/.sdk/tm/scala/utility/MakeSpec.scala +20 -2
- package/project/.sdk/tm/scala/utility/Media.scala +96 -0
- package/project/.sdk/tm/scala/utility/Misc.scala +56 -23
- package/project/.sdk/tm/scala/utility/Prepare.scala +84 -31
- package/project/.sdk/tm/scala/utility/Results.scala +5 -0
- package/project/.sdk/tm/scala/utility/Transform.scala +15 -19
- package/project/.sdk/tm/swift/LICENSE +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Context.swift +1 -1
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Response.swift +57 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Spec.swift +3 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/core/Support.swift +8 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TestFeature.swift +34 -3
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/TimeoutFeature.swift +19 -3
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/feature/ValidateFeature.swift +2 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Fetcher.swift +21 -12
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Make.swift +85 -18
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/MakeOptions.swift +73 -7
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Media.swift +76 -0
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +118 -43
- package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/ResultUtil.swift +18 -8
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/FeatureTest.swift +31 -1
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +6 -0
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/ServerVariableTest.swift +42 -0
- package/project/.sdk/tm/ts/LICENSE +1 -1
- package/project/.sdk/tm/ts/src/Context.ts +1 -1
- package/project/.sdk/tm/ts/src/Control.ts +3 -0
- package/project/.sdk/tm/ts/src/Response.ts +10 -1
- package/project/.sdk/tm/ts/src/Spec.ts +4 -0
- package/project/.sdk/tm/ts/src/feature/base/BaseFeature.ts +28 -0
- package/project/.sdk/tm/ts/src/feature/netsim/NetsimFeature.ts +10 -8
- package/project/.sdk/tm/ts/src/feature/ratelimit/RatelimitFeature.ts +8 -6
- package/project/.sdk/tm/ts/src/feature/retry/RetryFeature.ts +17 -4
- package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +41 -13
- package/project/.sdk/tm/ts/src/feature/timeout/TimeoutFeature.ts +17 -3
- package/project/.sdk/tm/ts/src/feature/validate/ValidateFeature.ts +2 -0
- package/project/.sdk/tm/ts/src/tsconfig.json +2 -1
- package/project/.sdk/tm/ts/src/utility/CleanUtility.ts +25 -1
- package/project/.sdk/tm/ts/src/utility/FetcherUtility.ts +24 -1
- package/project/.sdk/tm/ts/src/utility/MakeErrorUtility.ts +2 -2
- package/project/.sdk/tm/ts/src/utility/MakeFetchDefUtility.ts +15 -2
- package/project/.sdk/tm/ts/src/utility/MakeOptionsUtility.ts +6 -6
- package/project/.sdk/tm/ts/src/utility/MakePointUtility.ts +38 -2
- package/project/.sdk/tm/ts/src/utility/MakeRequestUtility.ts +29 -2
- package/project/.sdk/tm/ts/src/utility/MakeResponseUtility.ts +3 -1
- package/project/.sdk/tm/ts/src/utility/MakeSpecUtility.ts +16 -6
- package/project/.sdk/tm/ts/src/utility/MakeUrlUtility.ts +16 -2
- package/project/.sdk/tm/ts/src/utility/MediaUtility.ts +143 -0
- package/project/.sdk/tm/ts/src/utility/ParamUtility.ts +50 -18
- package/project/.sdk/tm/ts/src/utility/PrepareBodyUtility.ts +6 -0
- package/project/.sdk/tm/ts/src/utility/PrepareHeadersUtility.ts +53 -11
- package/project/.sdk/tm/ts/src/utility/PrepareMethodUtility.ts +9 -0
- package/project/.sdk/tm/ts/src/utility/PrepareQueryUtility.ts +22 -6
- package/project/.sdk/tm/ts/src/utility/ResultBodyUtility.ts +68 -3
- package/project/.sdk/tm/ts/src/utility/TransformRequestUtility.ts +16 -6
- package/project/.sdk/tm/ts/test/definition-runner.ts +109 -3
- package/project/.sdk/tm/ts/test/feature/Corpus.test.ts +47 -16
- package/project/.sdk/tm/ts/test/feature/harness.ts +4 -1
- package/project/.sdk/tm/ts/test/feature/secrets/Secrets.test.ts +1 -1
- package/project/.sdk/tm/ts/test/feature.test.ts +134 -0
- package/project/.sdk/tm/ts/test/live-contract.ts +60 -2
- package/project/.sdk/tm/ts/test/live-entity.ts +36 -12
- package/project/.sdk/tm/ts/test/live-runner.ts +79 -12
- package/project/.sdk/tm/ts/test/live-scenarios.ts +5 -4
- package/project/.sdk/tm/ts/test/pipeline.test.ts +52 -1
- package/project/.sdk/tm/ts/test/tsconfig.json +2 -1
- package/project/.sdk/tm/ts/test/utility.ts +35 -7
- package/project/.sdk/tm/zig/LICENSE +1 -1
- package/project/.sdk/tm/zig/core/context.zig +2 -1
- package/project/.sdk/tm/zig/core/helpers.zig +33 -0
- package/project/.sdk/tm/zig/core/response.zig +3 -0
- package/project/.sdk/tm/zig/core/spec.zig +27 -0
- package/project/.sdk/tm/zig/core/types.zig +6 -0
- package/project/.sdk/tm/zig/core/utility.zig +456 -84
- package/project/.sdk/tm/zig/feature/test.zig +31 -2
- package/project/.sdk/tm/zig/feature/validate.zig +2 -0
- package/project/.sdk/tm/zig/test/fh.zig +1 -1
- package/project/sdkgen-package.json +1 -1
- package/src/action/copies.ts +179 -46
- package/src/action/doctor.ts +13 -3
- package/src/action/package.ts +17 -9
- package/src/action/resolve.ts +41 -0
- package/src/admin/npm-trust.ts +9 -8
- package/src/cmp/AgentGuide.ts +4 -3
- package/src/cmp/AgentGuideFeature.ts +3 -2
- package/src/cmp/AgentGuideTop.ts +2 -1
- package/src/cmp/Changelog.ts +2 -1
- package/src/cmp/Deploy.ts +2 -1
- package/src/cmp/Entity.ts +1 -3
- package/src/cmp/ExternalTarget.ts +2 -1
- package/src/cmp/Feature.ts +2 -1
- package/src/cmp/FeatureHook.ts +2 -1
- package/src/cmp/License.ts +7 -5
- package/src/cmp/Main.ts +2 -1
- package/src/cmp/PublishWorkflow.ts +2 -1
- package/src/cmp/Readme.ts +2 -1
- package/src/cmp/ReadmeEntity.ts +3 -3
- package/src/cmp/ReadmeErrors.ts +6 -4
- package/src/cmp/ReadmeExplanation.ts +4 -3
- package/src/cmp/ReadmeFeatures.ts +4 -3
- package/src/cmp/ReadmeHowto.ts +4 -3
- package/src/cmp/ReadmeInstall.ts +4 -3
- package/src/cmp/ReadmeIntro.ts +3 -3
- package/src/cmp/ReadmeModel.ts +6 -3
- package/src/cmp/ReadmeOptions.ts +3 -3
- package/src/cmp/ReadmeQuick.ts +4 -3
- package/src/cmp/ReadmeRef.ts +3 -3
- package/src/cmp/ReadmeRefFeatures.ts +2 -1
- package/src/cmp/ReadmeStation.ts +2 -1
- package/src/cmp/ReadmeTop.ts +121 -37
- package/src/cmp/ReadmeUnions.ts +2 -1
- package/src/cmp/Registered.ts +4 -4
- package/src/cmp/Security.ts +14 -7
- package/src/cmp/Test.ts +2 -1
- package/src/cmp/TestControl.ts +1 -1
- package/src/helpers/component.ts +25 -0
- package/src/helpers/definition.ts +2 -2
- package/src/helpers/definitionPlan.ts +135 -13
- package/src/helpers/featureSource.ts +55 -2
- package/src/helpers/flowGuard.ts +111 -0
- package/src/helpers/generated.ts +488 -0
- package/src/helpers/mcpTools.ts +47 -0
- package/src/helpers/media.ts +79 -0
- package/src/helpers/modelNames.ts +186 -16
- package/src/helpers/naming.ts +188 -0
- package/src/helpers/npm.ts +68 -0
- package/src/helpers/npmScripts.ts +37 -0
- package/src/helpers/opExample.ts +19 -11
- package/src/helpers/opShape.ts +235 -29
- package/src/helpers/optional.ts +76 -0
- package/src/helpers/packageMeta.ts +83 -11
- package/src/helpers/stdrep.ts +5 -1
- package/src/helpers/testPolicy.ts +68 -1
- package/src/helpers/text.ts +33 -0
- package/src/sdkgen.ts +97 -14
- package/src/testkit.ts +2 -1
- package/src/utility.ts +41 -19
- package/project/.sdk/src/cmp/go/fragment/SdkError.fragment.go +0 -22
- package/project/.sdk/src/cmp/lua/fragment/SdkError.fragment.lua +0 -38
- package/project/.sdk/src/cmp/perl/fragment/SdkError.fragment.pm +0 -27
- package/project/.sdk/src/cmp/php/fragment/SdkError.fragment.php +0 -35
- package/project/.sdk/src/cmp/py/fragment/SdkError.fragment.py +0 -27
- package/project/.sdk/src/cmp/rb/fragment/SdkError.fragment.rb +0 -25
|
@@ -90,7 +90,7 @@ OPTION_APIKEY = "apikey"
|
|
|
90
90
|
` + (spec.basic ? `OPTION_SECRET = "secret"
|
|
91
91
|
` : '') + `NOT_FOUND = "__NOTFOUND__"
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
` + authName('HEADER_AUTH', true) + `
|
|
94
94
|
def prepare_auth_util(ctx):
|
|
95
95
|
spec = ctx.spec
|
|
96
96
|
if spec is None:
|
|
@@ -105,6 +105,12 @@ def prepare_auth_util(ctx):
|
|
|
105
105
|
headers.pop(HEADER_AUTH, None)
|
|
106
106
|
return spec, None
|
|
107
107
|
|
|
108
|
+
name = _auth_name(options)
|
|
109
|
+
|
|
110
|
+
# A credential left under the declared name would travel beside the renamed one.
|
|
111
|
+
if name != HEADER_AUTH:
|
|
112
|
+
headers.pop(HEADER_AUTH, None)
|
|
113
|
+
|
|
108
114
|
apikey = vs.getprop(options, OPTION_APIKEY, NOT_FOUND)
|
|
109
115
|
` + basicBlock(spec) + `
|
|
110
116
|
if (
|
|
@@ -112,7 +118,7 @@ def prepare_auth_util(ctx):
|
|
|
112
118
|
or apikey is None
|
|
113
119
|
or apikey == ""
|
|
114
120
|
):
|
|
115
|
-
headers.pop(
|
|
121
|
+
headers.pop(name, None)
|
|
116
122
|
else:
|
|
117
123
|
auth_prefix = ""
|
|
118
124
|
ap = vs.getpath(options, "auth.prefix")
|
|
@@ -122,7 +128,7 @@ def prepare_auth_util(ctx):
|
|
|
122
128
|
if isinstance(apikey, str):
|
|
123
129
|
apikey_val = apikey
|
|
124
130
|
# Empty prefix (raw apiKey credential) must not add a leading space.
|
|
125
|
-
headers[
|
|
131
|
+
headers[name] = (
|
|
126
132
|
auth_prefix + " " + apikey_val if auth_prefix else apikey_val
|
|
127
133
|
)
|
|
128
134
|
|
|
@@ -159,7 +165,7 @@ function basicBlock(spec: AuthSpec): string {
|
|
|
159
165
|
)
|
|
160
166
|
|
|
161
167
|
if no_apikey:
|
|
162
|
-
headers.pop(
|
|
168
|
+
headers.pop(name, None)
|
|
163
169
|
else:
|
|
164
170
|
auth_prefix = ""
|
|
165
171
|
ap = vs.getpath(options, "auth.prefix")
|
|
@@ -171,7 +177,7 @@ function basicBlock(spec: AuthSpec): string {
|
|
|
171
177
|
# The joined, encoded pair is a wire form neither credential's
|
|
172
178
|
# own registration covers.
|
|
173
179
|
ctx.utility.clean_add(ctx, b64)
|
|
174
|
-
headers[
|
|
180
|
+
headers[name] = (
|
|
175
181
|
auth_prefix + " " + b64 if auth_prefix else b64
|
|
176
182
|
)
|
|
177
183
|
|
|
@@ -187,7 +193,7 @@ QUERY_AUTH = ${pystr(spec.name)}
|
|
|
187
193
|
OPTION_APIKEY = "apikey"
|
|
188
194
|
NOT_FOUND = "__NOTFOUND__"
|
|
189
195
|
|
|
190
|
-
|
|
196
|
+
` + authName('QUERY_AUTH', false) + `
|
|
191
197
|
def prepare_auth_util(ctx):
|
|
192
198
|
spec = ctx.spec
|
|
193
199
|
if spec is None:
|
|
@@ -202,6 +208,12 @@ def prepare_auth_util(ctx):
|
|
|
202
208
|
query.pop(QUERY_AUTH, None)
|
|
203
209
|
return spec, None
|
|
204
210
|
|
|
211
|
+
name = _auth_name(options)
|
|
212
|
+
|
|
213
|
+
# A credential left under the declared name would travel beside the renamed one.
|
|
214
|
+
if name != QUERY_AUTH:
|
|
215
|
+
query.pop(QUERY_AUTH, None)
|
|
216
|
+
|
|
205
217
|
apikey = vs.getprop(options, OPTION_APIKEY, NOT_FOUND)
|
|
206
218
|
|
|
207
219
|
if (
|
|
@@ -209,7 +221,7 @@ def prepare_auth_util(ctx):
|
|
|
209
221
|
or apikey is None
|
|
210
222
|
or apikey == ""
|
|
211
223
|
):
|
|
212
|
-
query.pop(
|
|
224
|
+
query.pop(name, None)
|
|
213
225
|
else:
|
|
214
226
|
apikey_val = ""
|
|
215
227
|
if isinstance(apikey, str):
|
|
@@ -217,7 +229,7 @@ def prepare_auth_util(ctx):
|
|
|
217
229
|
# NO PREFIX IN A QUERY STRING. \`?${spec.name}=Bearer%20abc\` is not a
|
|
218
230
|
# thing any API reads: the prefix is a header convention, so it is
|
|
219
231
|
# dropped here deliberately rather than silently concatenated.
|
|
220
|
-
query[
|
|
232
|
+
query[name] = apikey_val
|
|
221
233
|
|
|
222
234
|
return spec, None
|
|
223
235
|
`
|
|
@@ -226,36 +238,30 @@ def prepare_auth_util(ctx):
|
|
|
226
238
|
|
|
227
239
|
function renderCookie(spec: AuthSpec, head: string): string {
|
|
228
240
|
return head + `from ${spec.pkg}.utility.voxgig_struct import voxgig_struct as vs
|
|
241
|
+
from ${spec.pkg}.utility.prepare_headers import cookie_keep
|
|
229
242
|
|
|
230
243
|
COOKIE_HEADER = "cookie"
|
|
231
244
|
COOKIE_AUTH = ${pystr(spec.name)}
|
|
232
245
|
OPTION_APIKEY = "apikey"
|
|
233
246
|
NOT_FOUND = "__NOTFOUND__"
|
|
234
247
|
|
|
235
|
-
|
|
236
|
-
def _cookies_without_cred(headers):
|
|
237
|
-
"""The cookie header minus
|
|
248
|
+
` + authName('COOKIE_AUTH', false) + `
|
|
249
|
+
def _cookies_without_cred(headers, name):
|
|
250
|
+
"""The cookie header minus the named pair, every other cookie untouched."""
|
|
238
251
|
existing = headers.get(COOKIE_HEADER)
|
|
239
252
|
if not isinstance(existing, str) or existing == "":
|
|
240
253
|
return ""
|
|
241
254
|
|
|
242
|
-
|
|
243
|
-
for part in existing.split(";"):
|
|
244
|
-
piece = part.strip()
|
|
245
|
-
if piece == "" or piece == COOKIE_AUTH or piece.startswith(COOKIE_AUTH + "="):
|
|
246
|
-
continue
|
|
247
|
-
kept.append(piece)
|
|
248
|
-
|
|
249
|
-
return "; ".join(kept)
|
|
255
|
+
return "; ".join(cookie_keep(existing, [name]))
|
|
250
256
|
|
|
251
257
|
|
|
252
|
-
def _apply_cookie(headers, value):
|
|
253
|
-
"""Set (value) or remove (None)
|
|
258
|
+
def _apply_cookie(headers, name, value):
|
|
259
|
+
"""Set (value) or remove (None) the named pair, leaving the rest in place.
|
|
254
260
|
|
|
255
261
|
Splicing rather than assigning also makes this idempotent: a retried
|
|
256
262
|
request cannot end up with the credential in the header twice.
|
|
257
263
|
"""
|
|
258
|
-
rest = _cookies_without_cred(headers)
|
|
264
|
+
rest = _cookies_without_cred(headers, name)
|
|
259
265
|
|
|
260
266
|
if value is None:
|
|
261
267
|
if rest == "":
|
|
@@ -264,7 +270,7 @@ def _apply_cookie(headers, value):
|
|
|
264
270
|
headers[COOKIE_HEADER] = rest
|
|
265
271
|
return
|
|
266
272
|
|
|
267
|
-
pair =
|
|
273
|
+
pair = name + "=" + value
|
|
268
274
|
headers[COOKIE_HEADER] = rest + "; " + pair if rest else pair
|
|
269
275
|
|
|
270
276
|
|
|
@@ -279,9 +285,15 @@ def prepare_auth_util(ctx):
|
|
|
279
285
|
|
|
280
286
|
# Public APIs that need no auth omit the options.auth block entirely.
|
|
281
287
|
if options.get("auth") is None:
|
|
282
|
-
_apply_cookie(headers, None)
|
|
288
|
+
_apply_cookie(headers, COOKIE_AUTH, None)
|
|
283
289
|
return spec, None
|
|
284
290
|
|
|
291
|
+
name = _auth_name(options)
|
|
292
|
+
|
|
293
|
+
# A credential left under the declared name would travel beside the renamed one.
|
|
294
|
+
if name != COOKIE_AUTH:
|
|
295
|
+
_apply_cookie(headers, COOKIE_AUTH, None)
|
|
296
|
+
|
|
285
297
|
apikey = vs.getprop(options, OPTION_APIKEY, NOT_FOUND)
|
|
286
298
|
|
|
287
299
|
if (
|
|
@@ -289,20 +301,34 @@ def prepare_auth_util(ctx):
|
|
|
289
301
|
or apikey is None
|
|
290
302
|
or apikey == ""
|
|
291
303
|
):
|
|
292
|
-
_apply_cookie(headers, None)
|
|
304
|
+
_apply_cookie(headers, name, None)
|
|
293
305
|
else:
|
|
294
306
|
apikey_val = ""
|
|
295
307
|
if isinstance(apikey, str):
|
|
296
308
|
apikey_val = apikey
|
|
297
309
|
# NO PREFIX IN A COOKIE either - a cookie carries a bare
|
|
298
310
|
# \`name=value\` pair, not a header's scheme-prefixed credential.
|
|
299
|
-
_apply_cookie(headers, apikey_val)
|
|
311
|
+
_apply_cookie(headers, name, apikey_val)
|
|
300
312
|
|
|
301
313
|
return spec, None
|
|
302
314
|
`
|
|
303
315
|
}
|
|
304
316
|
|
|
305
317
|
|
|
318
|
+
// The client's `auth.name` option, when set, replaces the declared name; a
|
|
319
|
+
// header name travels lower-cased.
|
|
320
|
+
function authName(declared: string, header: boolean): string {
|
|
321
|
+
return `
|
|
322
|
+
def _auth_name(options):
|
|
323
|
+
name = vs.getpath(options, "auth.name")
|
|
324
|
+
if isinstance(name, str) and name != "":
|
|
325
|
+
return ${header ? 'name.lower()' : 'name'}
|
|
326
|
+
return ${declared}
|
|
327
|
+
|
|
328
|
+
`
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
|
|
306
332
|
function isAuthActive_py(model: any): boolean {
|
|
307
333
|
const auth = getModelPath(model, `main.${KIT}.config.auth`,
|
|
308
334
|
{ only_active: false, required: false })
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral, opNeedsAction } from '@voxgig/sdkgen'
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
KIT,
|
|
@@ -28,6 +28,7 @@ const OP_DESC: Record<string, { method: string, desc: string }> = {
|
|
|
28
28
|
list: { method: 'list()', desc: 'List entities, optionally matching the given criteria.' },
|
|
29
29
|
create: { method: 'create(data)', desc: 'Create a new entity with the given data.' },
|
|
30
30
|
update: { method: 'update(data)', desc: 'Update an existing entity.' },
|
|
31
|
+
patch: { method: 'patch(data)', desc: 'Change part of an existing entity.' },
|
|
31
32
|
remove: { method: 'remove(match)', desc: 'Remove the matching entity.' },
|
|
32
33
|
}
|
|
33
34
|
|
|
@@ -53,6 +54,8 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
53
54
|
|
|
54
55
|
publishedEntities.map((entity: any) => {
|
|
55
56
|
const opnames = Object.keys(entity.op || {})
|
|
57
|
+
// An op that needs an action has no plain call to show.
|
|
58
|
+
const callable = opnames.filter((o: string) => !opNeedsAction(entity.op[o]))
|
|
56
59
|
const fields = Object.values(entity.fields || {})
|
|
57
60
|
// Model-driven id key: null when this entity has no id-like field.
|
|
58
61
|
const idF = entityIdField(entity)
|
|
@@ -110,7 +113,7 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
|
110
113
|
`)
|
|
111
114
|
}
|
|
112
115
|
|
|
113
|
-
if (
|
|
116
|
+
if (callable.includes('load')) {
|
|
114
117
|
// The id key plus every REQUIRED match key (parent path params like
|
|
115
118
|
// page_id) — the same shape the runtime resolves path params from, so
|
|
116
119
|
// the example always works.
|
|
@@ -132,7 +135,7 @@ ${eVar} = client.${entity.Name}().load(${loadArg})
|
|
|
132
135
|
`)
|
|
133
136
|
}
|
|
134
137
|
|
|
135
|
-
if (
|
|
138
|
+
if (callable.includes('list')) {
|
|
136
139
|
Content(`#### Example: List
|
|
137
140
|
|
|
138
141
|
\`\`\`python
|
|
@@ -142,7 +145,7 @@ ${eVar}s = client.${entity.Name}().list(${listMatchArg(entity)})
|
|
|
142
145
|
`)
|
|
143
146
|
}
|
|
144
147
|
|
|
145
|
-
if (
|
|
148
|
+
if (callable.includes('create')) {
|
|
146
149
|
// Members come from the SAME shape the runtime validates
|
|
147
150
|
// (opRequestShape): every required member must appear — including a
|
|
148
151
|
// required id and parent keys like page_id — with a real, executable
|
|
@@ -224,6 +224,8 @@ def test_readme_python_blocks_typecheck():
|
|
|
224
224
|
env["PYTHONDONTWRITEBYTECODE"] = "1"
|
|
225
225
|
# Resolve "from _SDK_MODULE import _SDK_CLASS" against the package root.
|
|
226
226
|
env["MYPYPATH"] = _PY_ROOT + os.pathsep + env.get("MYPYPATH", "")
|
|
227
|
+
# The child writes UTF-8 and the capture reads it, whatever the locale.
|
|
228
|
+
env["PYTHONIOENCODING"] = "utf-8"
|
|
227
229
|
|
|
228
230
|
proc = subprocess.run(
|
|
229
231
|
[
|
|
@@ -238,6 +240,7 @@ def test_readme_python_blocks_typecheck():
|
|
|
238
240
|
env=env,
|
|
239
241
|
capture_output=True,
|
|
240
242
|
text=True,
|
|
243
|
+
encoding="utf-8",
|
|
241
244
|
)
|
|
242
245
|
|
|
243
246
|
base = os.path.basename(snippet_path)
|
|
@@ -263,10 +266,9 @@ def test_readme_python_blocks_typecheck():
|
|
|
263
266
|
# ----------------------------------------------------------------------------
|
|
264
267
|
|
|
265
268
|
def _uses_var(block, var):
|
|
266
|
-
# True if the block reads an attribute off the
|
|
267
|
-
#
|
|
268
|
-
#
|
|
269
|
-
# import module name.
|
|
269
|
+
# True if the block reads an attribute off the variable "var", not off a
|
|
270
|
+
# name that ends in it: "_sdk." in a module name, "-client." in a package
|
|
271
|
+
# name or a host, ".client." on another object.
|
|
270
272
|
needle = var + "."
|
|
271
273
|
start = 0
|
|
272
274
|
while True:
|
|
@@ -276,7 +278,7 @@ def _uses_var(block, var):
|
|
|
276
278
|
ok_before = True
|
|
277
279
|
if j > 0:
|
|
278
280
|
ch = block[j - 1]
|
|
279
|
-
if ch.isalnum() or ch
|
|
281
|
+
if ch.isalnum() or ch in "_-./\\"'":
|
|
280
282
|
ok_before = False
|
|
281
283
|
if ok_before:
|
|
282
284
|
return True
|
|
@@ -483,6 +485,8 @@ def _run_batch(items, label):
|
|
|
483
485
|
env = dict(os.environ)
|
|
484
486
|
env["PYTHONDONTWRITEBYTECODE"] = "1"
|
|
485
487
|
env["PYTHONPATH"] = _PY_ROOT + os.pathsep + env.get("PYTHONPATH", "")
|
|
488
|
+
# The child writes UTF-8 and the capture reads it, whatever the locale.
|
|
489
|
+
env["PYTHONIOENCODING"] = "utf-8"
|
|
486
490
|
|
|
487
491
|
# A FILE, not "python -c". The driver embeds every runnable snippet's
|
|
488
492
|
# source, and a large SDK documents hundreds of them: passing that on the
|
|
@@ -495,7 +499,7 @@ def _run_batch(items, label):
|
|
|
495
499
|
fh.write(driver)
|
|
496
500
|
proc = subprocess.run(
|
|
497
501
|
[sys.executable, driver_path],
|
|
498
|
-
cwd=_PY_ROOT, env=env, capture_output=True, text=True,
|
|
502
|
+
cwd=_PY_ROOT, env=env, capture_output=True, text=True, encoding="utf-8",
|
|
499
503
|
)
|
|
500
504
|
return (proc.stdout or "") + (proc.stderr or "")
|
|
501
505
|
|
|
@@ -545,6 +549,7 @@ def _run_source(source, label, index):
|
|
|
545
549
|
env = dict(os.environ)
|
|
546
550
|
env["PYTHONDONTWRITEBYTECODE"] = "1"
|
|
547
551
|
env["PYTHONPATH"] = _PY_ROOT + os.pathsep + env.get("PYTHONPATH", "")
|
|
552
|
+
env["PYTHONIOENCODING"] = "utf-8"
|
|
548
553
|
|
|
549
554
|
proc = subprocess.run(
|
|
550
555
|
[sys.executable, "-c", source],
|
|
@@ -552,6 +557,7 @@ def _run_source(source, label, index):
|
|
|
552
557
|
env=env,
|
|
553
558
|
capture_output=True,
|
|
554
559
|
text=True,
|
|
560
|
+
encoding="utf-8",
|
|
555
561
|
)
|
|
556
562
|
if proc.returncode == 0:
|
|
557
563
|
return None
|
|
@@ -40,7 +40,7 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
40
40
|
testArg = 0 < items.length
|
|
41
41
|
? `{${items.map((it: any) => `"${it.name}": ${it.name === idF ? '"test01"' : pyLit(it.type)}`).join(', ')}}`
|
|
42
42
|
: ''
|
|
43
|
-
} else if (exampleEntity && ('create' === primaryOp || 'update' === primaryOp)) {
|
|
43
|
+
} else if (exampleEntity && ('create' === primaryOp || 'update' === primaryOp || 'patch' === primaryOp)) {
|
|
44
44
|
const items = opRequestShape(exampleEntity, primaryOp).items
|
|
45
45
|
.filter((it: any) => it.name !== idF && it.name !== 'id')
|
|
46
46
|
const required = items.filter((it: any) => !it.optional)
|
|
@@ -23,9 +23,9 @@ pip install -e .
|
|
|
23
23
|
|
|
24
24
|
// Publish pending: not yet on PyPI. Install from the git release tag or
|
|
25
25
|
// from a local source checkout.
|
|
26
|
-
const {
|
|
27
|
-
Content(`This package is not yet published to PyPI. Install it from the
|
|
28
|
-
release tag (\`${target.name}/vX.Y.Z\`, see [
|
|
26
|
+
const { hostName, tagsUrl } = repoInfo(model)
|
|
27
|
+
Content(`This package is not yet published to PyPI. Install it from the ${hostName}
|
|
28
|
+
release tag (\`${target.name}/vX.Y.Z\`, see [Tags](${tagsUrl})) or
|
|
29
29
|
from a source checkout:
|
|
30
30
|
|
|
31
31
|
\`\`\`bash
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, Content } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, Content, modelText } from '@voxgig/sdkgen'
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
KIT,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
|
|
11
11
|
const ReadmeIntro = cmp(function ReadmeIntro(props: any) {
|
|
12
12
|
const { target, ctx$: { model } } = props
|
|
13
|
-
const info = (model
|
|
13
|
+
const info = modelText(model)
|
|
14
14
|
const tagline = info.tagline || ''
|
|
15
15
|
|
|
16
16
|
Content(`# ${model.Name} ${target.title} SDK
|
|
@@ -35,7 +35,7 @@ The ${target.title} SDK for the ${model.Name} API — an entity-oriented client
|
|
|
35
35
|
// Model-driven op list — only the operations the active entities actually
|
|
36
36
|
// expose (a read-only entity has just list+load); never claim
|
|
37
37
|
// create/update/remove exist when no entity has them.
|
|
38
|
-
const CANON_OPS = ['list', 'load', 'create', 'update', 'remove']
|
|
38
|
+
const CANON_OPS = ['list', 'load', 'create', 'update', 'patch', 'remove']
|
|
39
39
|
const opSet = new Set<string>()
|
|
40
40
|
Object.values(entity || {}).forEach((e: any) => {
|
|
41
41
|
if (!e || e.active === false) return
|
|
@@ -25,9 +25,10 @@ const ReadmeModel = cmp(function ReadmeModel(props: any) {
|
|
|
25
25
|
list: '| `list` | `(reqmatch, ctrl) -> list` | List entities matching the criteria. Raises on error. |',
|
|
26
26
|
create: '| `create` | `(reqdata, ctrl) -> any` | Create a new entity. Raises on error. |',
|
|
27
27
|
update: '| `update` | `(reqdata, ctrl) -> any` | Update an existing entity. Raises on error. |',
|
|
28
|
+
patch: '| `patch` | `(reqdata, ctrl) -> any` | Change part of an existing entity. Raises on error. |',
|
|
28
29
|
remove: '| `remove` | `(reqmatch, ctrl) -> any` | Remove an entity. Raises on error. |',
|
|
29
30
|
}
|
|
30
|
-
const opRows = ['load', 'list', 'create', 'update', 'remove']
|
|
31
|
+
const opRows = ['load', 'list', 'create', 'update', 'patch', 'remove']
|
|
31
32
|
.filter((o) => opUnion.has(o)).map((o) => opRowDefs[o]).join('\n')
|
|
32
33
|
|
|
33
34
|
const apikeyOptionRow = isAuthActive(model)
|
|
@@ -181,7 +181,8 @@ except Exception as err:
|
|
|
181
181
|
? `created.data_get()["${dataIdF}"]`
|
|
182
182
|
: pyLit(idParamType(opname), 'example_id')
|
|
183
183
|
|
|
184
|
-
if (opnames.includes('create') || opnames.includes('update') || opnames.includes('
|
|
184
|
+
if (opnames.includes('create') || opnames.includes('update') || opnames.includes('patch') ||
|
|
185
|
+
opnames.includes('remove')) {
|
|
185
186
|
Content(`### 4. Create, update, and remove
|
|
186
187
|
|
|
187
188
|
\`\`\`python
|
|
@@ -198,6 +199,13 @@ created = client.${eName}().create({${examplePairs('create').join(', ')}})
|
|
|
198
199
|
Content(`# Update${fromCreated ? " — the created record's id is a plain dict key" : ''}
|
|
199
200
|
client.${eName}().update({${updatePairs.join(', ')}})
|
|
200
201
|
|
|
202
|
+
`)
|
|
203
|
+
}
|
|
204
|
+
if (opnames.includes('patch')) {
|
|
205
|
+
const patchPairs = (idF ? [`"${idF}": ${idValueFor('patch')}`] : []).concat(examplePairs('patch'))
|
|
206
|
+
Content(`# Patch — sends only the fields given
|
|
207
|
+
client.${eName}().patch({${patchPairs.join(', ')}})
|
|
208
|
+
|
|
201
209
|
`)
|
|
202
210
|
}
|
|
203
211
|
if (opnames.includes('remove')) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral, targetFeatures } from '@voxgig/sdkgen'
|
|
2
|
+
import { cmp, each, Content, canonToType, canonKey, canonScalarKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName, matchArg, idLiteral, targetFeatures, opNeedsAction, bodyNote } from '@voxgig/sdkgen'
|
|
3
3
|
import { ReadmeRefFeatures } from '@voxgig/sdkgen'
|
|
4
4
|
|
|
5
5
|
import {
|
|
@@ -48,6 +48,11 @@ const OP_SIGNATURES: Record<string, { sig: string, returns: string, desc: string
|
|
|
48
48
|
returns: 'the updated entity data',
|
|
49
49
|
desc: 'Update an existing entity. The data must include the entity `id`. Returns the updated entity data and raises on error.',
|
|
50
50
|
},
|
|
51
|
+
patch: {
|
|
52
|
+
sig: 'patch(reqdata, ctrl=None) -> dict',
|
|
53
|
+
returns: 'the patched entity data',
|
|
54
|
+
desc: 'Change part of an existing entity: only the fields given are sent. The data must include the entity `id`. Returns the patched entity data and raises on error.',
|
|
55
|
+
},
|
|
51
56
|
remove: {
|
|
52
57
|
sig: 'remove(reqmatch, ctrl=None) -> dict',
|
|
53
58
|
returns: 'the removed entity data',
|
|
@@ -216,7 +221,7 @@ ${eVar} = client.${ent.Name}()
|
|
|
216
221
|
if (hasFieldOps) {
|
|
217
222
|
// Only emit columns for operations this entity actually exposes —
|
|
218
223
|
// never advertise a create/update/remove column the entity lacks.
|
|
219
|
-
const opcols = ['load', 'list', 'create', 'update', 'remove']
|
|
224
|
+
const opcols = ['load', 'list', 'create', 'update', 'patch', 'remove']
|
|
220
225
|
.filter((op: string) => opnames.includes(op) && ent.op[op]?.active !== false)
|
|
221
226
|
Content(`### Field Usage by Operation
|
|
222
227
|
|
|
@@ -256,6 +261,10 @@ ${info.desc}
|
|
|
256
261
|
|
|
257
262
|
`)
|
|
258
263
|
|
|
264
|
+
if (opNeedsAction(ent.op[opname])) {
|
|
265
|
+
return
|
|
266
|
+
}
|
|
267
|
+
|
|
259
268
|
// Show example. Entity ops return the ENTITY and raise on
|
|
260
269
|
// error; direct() is the only method that returns a result dict.
|
|
261
270
|
if ('load' === opname || 'remove' === opname) {
|
|
@@ -306,10 +315,10 @@ result = client.${ent.Name}().create({
|
|
|
306
315
|
|
|
307
316
|
`)
|
|
308
317
|
}
|
|
309
|
-
else if ('update' === opname) {
|
|
318
|
+
else if ('update' === opname || 'patch' === opname) {
|
|
310
319
|
// The id key plus every REQUIRED data member — the same shape the
|
|
311
320
|
// runtime validates — then the patch-fields note.
|
|
312
|
-
const updateItems = opRequestShape(ent,
|
|
321
|
+
const updateItems = opRequestShape(ent, opname).items
|
|
313
322
|
.filter((it: any) => !it.optional || it.name === idF)
|
|
314
323
|
.sort((a: any, b: any) =>
|
|
315
324
|
(a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
|
|
@@ -317,13 +326,21 @@ result = client.${ent.Name}().create({
|
|
|
317
326
|
` "${it.name}": ${pyLit(it.type,
|
|
318
327
|
it.name === idF ? ent.name + '_id' : it.name)},\n`).join('')
|
|
319
328
|
Content(`\`\`\`python
|
|
320
|
-
result = client.${ent.Name}()
|
|
321
|
-
${updateLines} # Fields to update
|
|
329
|
+
result = client.${ent.Name}().${opname}({
|
|
330
|
+
${updateLines} # ${'patch' === opname ? 'Only the fields to change' : 'Fields to update'}
|
|
322
331
|
})
|
|
323
332
|
\`\`\`
|
|
324
333
|
|
|
325
334
|
`)
|
|
326
335
|
}
|
|
336
|
+
|
|
337
|
+
if ('create' === opname || 'update' === opname || 'patch' === opname) {
|
|
338
|
+
const note = bodyNote(ent.op[opname], {
|
|
339
|
+
values: '`bytes`, `bytearray`, `memoryview`, a `str` or a file object',
|
|
340
|
+
once: 'a file object',
|
|
341
|
+
})
|
|
342
|
+
if ('' !== note) Content(note)
|
|
343
|
+
}
|
|
327
344
|
})
|
|
328
345
|
}
|
|
329
346
|
|
|
@@ -48,7 +48,7 @@ client = ${model.const.Name}SDK.test()
|
|
|
48
48
|
? `{${items.map((it: any) =>
|
|
49
49
|
`"${it.name}": ${it.name === idF ? '"test01"' : pyLit(it.type)}`).join(', ')}}`
|
|
50
50
|
: ''
|
|
51
|
-
} else if ('create' === primaryOp || 'update' === primaryOp) {
|
|
51
|
+
} else if ('create' === primaryOp || 'update' === primaryOp || 'patch' === primaryOp) {
|
|
52
52
|
const items = opRequestShape(exampleEntity, primaryOp).items
|
|
53
53
|
.filter((it: any) => it.name !== idF && it.name !== 'id')
|
|
54
54
|
const required = items.filter((it: any) => !it.optional)
|
|
@@ -188,7 +188,23 @@ SCENARIOS = [
|
|
|
188
188
|
]
|
|
189
189
|
|
|
190
190
|
|
|
191
|
-
|
|
191
|
+
# Offline, as every generated suite is: the test OPTION resolves a required
|
|
192
|
+
# server variable to test-<name>, and installs no transport.
|
|
193
|
+
def _offline(opts):
|
|
194
|
+
return dict(opts, test={"active": True})
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
# A client the sweep cannot build leaves nothing swept: a harness error, not a leak.
|
|
198
|
+
def _construct(opts):
|
|
199
|
+
try:
|
|
200
|
+
return ${Name}SDK(_offline(opts))
|
|
201
|
+
except Exception as e:
|
|
202
|
+
raise RuntimeError(
|
|
203
|
+
"clean harness: the client could not be constructed, so nothing was swept: "
|
|
204
|
+
+ str(e)) from e
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
def _make_sdk(respond, sinks, cleanopts=None, extra=None, auth=None):
|
|
192
208
|
def capture(name):
|
|
193
209
|
return lambda rec, *a: sinks.extend(_forms(name, rec))
|
|
194
210
|
|
|
@@ -214,7 +230,7 @@ def _make_sdk(respond, sinks, cleanopts=None, extra=None):
|
|
|
214
230
|
clean = {"values": CANARY["value"]}
|
|
215
231
|
clean.update(cleanopts or {})
|
|
216
232
|
|
|
217
|
-
|
|
233
|
+
opts = {
|
|
218
234
|
"apikey": CANARY["apikey"],
|
|
219
235
|
"secret": CANARY["secret"],
|
|
220
236
|
"headers": {"X-Custom-Token": CANARY["header"]},
|
|
@@ -222,14 +238,17 @@ def _make_sdk(respond, sinks, cleanopts=None, extra=None):
|
|
|
222
238
|
"feature": feature,
|
|
223
239
|
"extend": [_CaptureFeature(sinks)] + list(extra or []),
|
|
224
240
|
"utility": {"fetcher": lambda ctx, url, fetchdef: respond(url, fetchdef)},
|
|
225
|
-
}
|
|
241
|
+
}
|
|
242
|
+
if auth is not None:
|
|
243
|
+
opts["auth"] = auth
|
|
244
|
+
return _construct(opts)
|
|
226
245
|
|
|
227
246
|
|
|
228
247
|
# The first operation that completes against a plain 200: with no
|
|
229
248
|
# arguments, else with every path parameter its points declare filled in.
|
|
230
249
|
def _usable_op():
|
|
231
250
|
def plain():
|
|
232
|
-
return
|
|
251
|
+
return _construct({
|
|
233
252
|
"apikey": CANARY["apikey"],
|
|
234
253
|
"utility": {"fetcher": lambda ctx, url, fetchdef: (_response(200, {"id": "i1"}), None)},
|
|
235
254
|
})
|
|
@@ -257,7 +276,7 @@ def _usable_op():
|
|
|
257
276
|
safe = {"list": 0, "load": 1}
|
|
258
277
|
for name in sorted(found):
|
|
259
278
|
accessor, ent = found[name]
|
|
260
|
-
ops = [op for op in ["list", "load", "create", "update", "remove"]
|
|
279
|
+
ops = [op for op in ["list", "load", "create", "update", "patch", "remove"]
|
|
261
280
|
if callable(getattr(ent, op, None))]
|
|
262
281
|
ops.sort(key=lambda o: safe.get(o, 2))
|
|
263
282
|
opdefs = (entities.get(name) or {}).get("op") or {}
|
|
@@ -338,16 +357,19 @@ class _StreamOkFeature(${Name}BaseFeature):
|
|
|
338
357
|
def _drive(sdk, target, ctrl, sinks):
|
|
339
358
|
# A caller may keep the record it passed rather than read ctrl["explain"].
|
|
340
359
|
held = ctrl.get("explain")
|
|
360
|
+
entity = getattr(sdk, target[0])()
|
|
341
361
|
out = None
|
|
342
362
|
err = None
|
|
343
363
|
try:
|
|
344
|
-
out = getattr(
|
|
364
|
+
out = getattr(entity, target[1])(dict(target[2]), ctrl)
|
|
345
365
|
except Exception as e:
|
|
346
366
|
err = e
|
|
347
367
|
if err is not None:
|
|
348
368
|
sinks.extend(_forms("error", err))
|
|
349
369
|
if out is not None:
|
|
350
370
|
sinks.extend(_forms("result", out))
|
|
371
|
+
# Raw, as a caller copying the match into another query reads it.
|
|
372
|
+
sinks.extend(_forms("match", entity.match_get()))
|
|
351
373
|
if ctrl.get("explain") is not None:
|
|
352
374
|
sinks.extend(_forms("explain", ctrl["explain"]))
|
|
353
375
|
if held is not None and held is not ctrl.get("explain"):
|
|
@@ -383,11 +405,16 @@ class TestClean:
|
|
|
383
405
|
sinks.extend(_forms("sdk", sdk))
|
|
384
406
|
sinks.append(("sdk:vars", json.dumps(vars(sdk), default=repr)))
|
|
385
407
|
|
|
408
|
+
# A name given at run time replaces the declared one: the match
|
|
409
|
+
# leaves out whichever name prepare_auth placed.
|
|
410
|
+
_drive(_make_sdk(SCENARIOS[0][1], sinks, auth={"name": "zzcred"}), target, {}, sinks)
|
|
411
|
+
|
|
386
412
|
# A credential mistyped as a map is rejected by validation, whose
|
|
387
413
|
# message quotes the value it rejected.
|
|
388
414
|
rejected = None
|
|
389
415
|
try:
|
|
390
|
-
${Name}SDK(
|
|
416
|
+
${Name}SDK(_offline(
|
|
417
|
+
{"apikey": {"value": CANARY["apikey"]}, "clean": {"values": CANARY["value"]}}))
|
|
391
418
|
except Exception as e:
|
|
392
419
|
rejected = e
|
|
393
420
|
assert rejected is not None, "a credential mistyped as a map should be rejected"
|
|
@@ -453,7 +480,7 @@ class TestClean:
|
|
|
453
480
|
assert cfgclean == {"keys": "zzsens", "values": CANARY["config"]}, cfgclean
|
|
454
481
|
|
|
455
482
|
# With no clean option at all, the schema defaults still apply.
|
|
456
|
-
bare =
|
|
483
|
+
bare = _construct({
|
|
457
484
|
"apikey": CANARY["apikey"],
|
|
458
485
|
"secret": CANARY["secret"],
|
|
459
486
|
"headers": {"X-Custom-Token": CANARY["header"]},
|
|
@@ -463,12 +490,14 @@ class TestClean:
|
|
|
463
490
|
|
|
464
491
|
# A feature's name is not a field name: only the sensitive names
|
|
465
492
|
# inside its settings register. An entity block, of per-entity
|
|
466
|
-
# settings or seeded records keyed by entity name and id, is not read
|
|
467
|
-
|
|
493
|
+
# settings or seeded records keyed by entity name and id, is not read,
|
|
494
|
+
# and nor are rbac's rules, keyed by entity and operation names.
|
|
495
|
+
featured = _construct({
|
|
468
496
|
"apikey": CANARY["apikey"],
|
|
469
497
|
"feature": {
|
|
470
498
|
"zzsecrets": {"active": False, "kind": "PLAINSETTING-q8w2e4r6"},
|
|
471
499
|
"zzfeat": {"active": False, "apitoken": "FEATTOKEN-z9y8x7w6"},
|
|
500
|
+
"rbac": {"active": False, "rules": {"zztoken.load": "PLAINRULE-k7j5h3g1"}},
|
|
472
501
|
"test": {"active": False, "entity": {
|
|
473
502
|
"zztoken": {"ZZTOKEN01": {"note": "PLAINRECORD-t5r3e1w9"}}}},
|
|
474
503
|
},
|
|
@@ -480,6 +509,7 @@ class TestClean:
|
|
|
480
509
|
ftoken = fclean(froot, "token FEATTOKEN-z9y8x7w6")
|
|
481
510
|
frecord = fclean(froot, "record PLAINRECORD-t5r3e1w9")
|
|
482
511
|
falias = fclean(froot, "alias PLAINALIAS-m2n4b6v8")
|
|
512
|
+
frule = fclean(froot, "rule PLAINRULE-k7j5h3g1")
|
|
483
513
|
|
|
484
514
|
leaked = [(name, _leaks(text)) for name, text in sinks]
|
|
485
515
|
leaked = [(name, found) for name, found in leaked if 0 < len(found)]
|
|
@@ -513,6 +543,7 @@ class TestClean:
|
|
|
513
543
|
assert ftoken == "token " + MASK, ftoken
|
|
514
544
|
assert frecord == "record PLAINRECORD-t5r3e1w9", frecord
|
|
515
545
|
assert falias == "alias PLAINALIAS-m2n4b6v8", falias
|
|
546
|
+
assert frule == "rule PLAINRULE-k7j5h3g1", frule
|
|
516
547
|
|
|
517
548
|
explained = explains.get("ok/explain") or {}
|
|
518
549
|
assert explained.get("result") is not None, "the explain record should carry the result"
|