@voxgig/sdkgen 1.3.14 → 1.3.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/voxgig-sdkgen +1 -1
- package/dist/action/action.js.map +1 -1
- package/dist/action/feature.js.map +1 -1
- package/dist/action/target.js.map +1 -1
- package/dist/cmp/AgentGuide.js.map +1 -1
- package/dist/cmp/AgentGuideContent.js.map +1 -1
- package/dist/cmp/AgentGuideFeature.js.map +1 -1
- package/dist/cmp/AgentGuideTop.js.map +1 -1
- package/dist/cmp/Changelog.js.map +1 -1
- package/dist/cmp/Deploy.js.map +1 -1
- package/dist/cmp/Entity.js +5 -1
- package/dist/cmp/Entity.js.map +1 -1
- package/dist/cmp/Feature.js +2 -1
- package/dist/cmp/Feature.js.map +1 -1
- package/dist/cmp/FeatureHook.js.map +1 -1
- package/dist/cmp/License.js.map +1 -1
- package/dist/cmp/Main.js.map +1 -1
- package/dist/cmp/Readme.js.map +1 -1
- package/dist/cmp/ReadmeEntity.js.map +1 -1
- package/dist/cmp/ReadmeErrors.js +1 -1
- package/dist/cmp/ReadmeErrors.js.map +1 -1
- package/dist/cmp/ReadmeExplanation.js +2 -2
- package/dist/cmp/ReadmeExplanation.js.map +1 -1
- package/dist/cmp/ReadmeHowto.js.map +1 -1
- package/dist/cmp/ReadmeInstall.js.map +1 -1
- package/dist/cmp/ReadmeIntro.js.map +1 -1
- package/dist/cmp/ReadmeModel.js.map +1 -1
- package/dist/cmp/ReadmeOptions.js.map +1 -1
- package/dist/cmp/ReadmeQuick.js.map +1 -1
- package/dist/cmp/ReadmeRef.js.map +1 -1
- package/dist/cmp/ReadmeTop.js +1 -1
- package/dist/cmp/ReadmeTop.js.map +1 -1
- package/dist/cmp/Security.js.map +1 -1
- package/dist/cmp/Test.js.map +1 -1
- package/dist/helpers/buildIdNames.js.map +1 -1
- package/dist/helpers/canonType.d.ts +3 -2
- package/dist/helpers/canonType.js +112 -24
- package/dist/helpers/canonType.js.map +1 -1
- package/dist/helpers/collectDeps.d.ts +1 -1
- package/dist/helpers/collectDeps.js +36 -13
- package/dist/helpers/collectDeps.js.map +1 -1
- package/dist/helpers/getMatchEntries.js.map +1 -1
- package/dist/helpers/naming.d.ts +7 -1
- package/dist/helpers/naming.js +90 -0
- package/dist/helpers/naming.js.map +1 -1
- package/dist/helpers/opExample.d.ts +1 -1
- package/dist/helpers/opExample.js +37 -20
- package/dist/helpers/opExample.js.map +1 -1
- package/dist/helpers/opShape.d.ts +5 -1
- package/dist/helpers/opShape.js +174 -7
- package/dist/helpers/opShape.js.map +1 -1
- package/dist/helpers/packageMeta.js.map +1 -1
- package/dist/sdkgen.d.ts +3 -3
- package/dist/sdkgen.js +12 -2
- package/dist/sdkgen.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utility.js.map +1 -1
- package/package.json +20 -14
- package/project/.sdk/model/target/cpp.aontu +4 -4
- package/project/.sdk/model/target/go-cli.aontu +17 -17
- package/project/.sdk/model/target/go-mcp.aontu +11 -11
- package/project/.sdk/model/target/go.aontu +1 -1
- package/project/.sdk/model/target/haskell.aontu +6 -3
- package/project/.sdk/model/target/java.aontu +4 -4
- package/project/.sdk/model/target/kotlin.aontu +4 -4
- package/project/.sdk/model/target/lean.aontu +51 -0
- package/project/.sdk/model/target/scala.aontu +4 -4
- package/project/.sdk/model/target/zig.aontu +12 -2
- package/project/.sdk/src/cmp/c/Config_c.ts +16 -4
- package/project/.sdk/src/cmp/c/EntityTypes_c.ts +167 -0
- package/project/.sdk/src/cmp/c/Entity_c.ts +3 -3
- package/project/.sdk/src/cmp/c/Main_c.ts +4 -0
- package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +192 -0
- package/project/.sdk/src/cmp/c/ReadmeExamplesTest_c.ts +169 -0
- package/project/.sdk/src/cmp/c/ReadmeExplanation_c.ts +55 -0
- package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +168 -0
- package/project/.sdk/src/cmp/c/ReadmeInstall_c.ts +52 -0
- package/project/.sdk/src/cmp/c/ReadmeIntro_c.ts +67 -0
- package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +151 -0
- package/project/.sdk/src/cmp/c/ReadmeOptions_c.ts +65 -0
- package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +225 -0
- package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +398 -0
- package/project/.sdk/src/cmp/c/ReadmeTopHowto_c.ts +24 -0
- package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +104 -0
- package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +86 -0
- package/project/.sdk/src/cmp/c/TestDirect_c.ts +3 -3
- package/project/.sdk/src/cmp/c/TestEntity_c.ts +10 -0
- package/project/.sdk/src/cmp/c/Test_c.ts +4 -0
- package/project/.sdk/src/cmp/c/utility_c.ts +8 -2
- package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +1 -1
- package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +182 -0
- package/project/.sdk/src/cmp/clojure/ReadmeExamplesTest_clojure.ts +65 -0
- package/project/.sdk/src/cmp/clojure/ReadmeExplanation_clojure.ts +44 -0
- package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +144 -0
- package/project/.sdk/src/cmp/clojure/ReadmeInstall_clojure.ts +51 -0
- package/project/.sdk/src/cmp/clojure/ReadmeIntro_clojure.ts +66 -0
- package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +156 -0
- package/project/.sdk/src/cmp/clojure/ReadmeOptions_clojure.ts +61 -0
- package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +210 -0
- package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +409 -0
- package/project/.sdk/src/cmp/clojure/ReadmeTopHowto_clojure.ts +24 -0
- package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +98 -0
- package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +78 -0
- package/project/.sdk/src/cmp/clojure/TestDirect_clojure.ts +58 -0
- package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +79 -0
- package/project/.sdk/src/cmp/clojure/Test_clojure.ts +21 -65
- package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +174 -0
- package/project/.sdk/src/cmp/cpp/Entity_cpp.ts +3 -3
- package/project/.sdk/src/cmp/cpp/MainEntity_cpp.ts +2 -2
- package/project/.sdk/src/cmp/cpp/Main_cpp.ts +5 -0
- package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +170 -0
- package/project/.sdk/src/cmp/cpp/ReadmeExamplesTest_cpp.ts +136 -0
- package/project/.sdk/src/cmp/cpp/ReadmeExplanation_cpp.ts +45 -0
- package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +139 -0
- package/project/.sdk/src/cmp/cpp/ReadmeInstall_cpp.ts +42 -0
- package/project/.sdk/src/cmp/cpp/ReadmeIntro_cpp.ts +69 -0
- package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +155 -0
- package/project/.sdk/src/cmp/cpp/ReadmeOptions_cpp.ts +62 -0
- package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +234 -0
- package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +387 -0
- package/project/.sdk/src/cmp/cpp/ReadmeTopHowto_cpp.ts +24 -0
- package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +95 -0
- package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +70 -0
- package/project/.sdk/src/cmp/cpp/TestDirect_cpp.ts +3 -3
- package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +5 -1
- package/project/.sdk/src/cmp/cpp/Test_cpp.ts +4 -0
- package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +195 -0
- package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/MainEntity_csharp.ts +2 -2
- package/project/.sdk/src/cmp/csharp/Main_csharp.ts +6 -0
- package/project/.sdk/src/cmp/csharp/Package_csharp.ts +1 -1
- package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +174 -0
- package/project/.sdk/src/cmp/csharp/ReadmeExamplesTest_csharp.ts +210 -0
- package/project/.sdk/src/cmp/csharp/ReadmeExplanation_csharp.ts +42 -0
- package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +168 -0
- package/project/.sdk/src/cmp/csharp/ReadmeInstall_csharp.ts +41 -0
- package/project/.sdk/src/cmp/csharp/ReadmeIntro_csharp.ts +65 -0
- package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +148 -0
- package/project/.sdk/src/cmp/csharp/ReadmeOptions_csharp.ts +60 -0
- package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +219 -0
- package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +390 -0
- package/project/.sdk/src/cmp/csharp/ReadmeTopHowto_csharp.ts +25 -0
- package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +92 -0
- package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +77 -0
- package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +3 -3
- package/project/.sdk/src/cmp/csharp/Test_csharp.ts +4 -0
- package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +43 -30
- package/project/.sdk/src/cmp/dart/Entity_dart.ts +11 -3
- package/project/.sdk/src/cmp/dart/MainEntity_dart.ts +2 -2
- package/project/.sdk/src/cmp/dart/Main_dart.ts +3 -3
- package/project/.sdk/src/cmp/dart/Package_dart.ts +1 -1
- package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +166 -0
- package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +238 -0
- package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +53 -0
- package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +151 -0
- package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +59 -0
- package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +65 -0
- package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +151 -0
- package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +63 -0
- package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +214 -0
- package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +381 -0
- package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +24 -0
- package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +95 -0
- package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +78 -0
- package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +4 -4
- package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +52 -0
- package/project/.sdk/src/cmp/dart/Test_dart.ts +6 -0
- package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +1 -3
- package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +1 -40
- package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +3 -3
- package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +164 -0
- package/project/.sdk/src/cmp/elixir/Entity_elixir.ts +1 -1
- package/project/.sdk/src/cmp/elixir/Main_elixir.ts +4 -0
- package/project/.sdk/src/cmp/elixir/Package_elixir.ts +3 -1
- package/project/.sdk/src/cmp/elixir/ReadmeEntity_elixir.ts +163 -0
- package/project/.sdk/src/cmp/elixir/ReadmeExamplesTest_elixir.ts +144 -0
- package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +55 -0
- package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +149 -0
- package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +67 -0
- package/project/.sdk/src/cmp/elixir/ReadmeIntro_elixir.ts +66 -0
- package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +150 -0
- package/project/.sdk/src/cmp/elixir/ReadmeOptions_elixir.ts +62 -0
- package/project/.sdk/src/cmp/elixir/ReadmeQuick_elixir.ts +198 -0
- package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +333 -0
- package/project/.sdk/src/cmp/elixir/ReadmeTopHowto_elixir.ts +26 -0
- package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +79 -0
- package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +68 -0
- package/project/.sdk/src/cmp/elixir/Test_elixir.ts +4 -0
- package/project/.sdk/src/cmp/elixir/fragment/EntityCreateOp.fragment.ex +4 -0
- package/project/.sdk/src/cmp/elixir/fragment/EntityListOp.fragment.ex +4 -0
- package/project/.sdk/src/cmp/elixir/fragment/EntityLoadOp.fragment.ex +4 -0
- package/project/.sdk/src/cmp/elixir/fragment/EntityRemoveOp.fragment.ex +4 -0
- package/project/.sdk/src/cmp/elixir/fragment/EntityUpdateOp.fragment.ex +4 -0
- package/project/.sdk/src/cmp/elixir/utility_elixir.ts +32 -0
- package/project/.sdk/src/cmp/go/Config_go.ts +4 -1
- package/project/.sdk/src/cmp/go/EntityTypes_go.ts +121 -20
- package/project/.sdk/src/cmp/go/Entity_go.ts +3 -3
- package/project/.sdk/src/cmp/go/Main_go.ts +7 -6
- package/project/.sdk/src/cmp/go/Package_go.ts +1 -1
- package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +6 -1
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +3 -3
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +11 -4
- package/project/.sdk/src/cmp/go/utility_go.ts +28 -2
- package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +249 -44
- package/project/.sdk/src/cmp/go-cli/fragment/main.fragment.go +27 -5
- package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +200 -31
- package/project/.sdk/src/cmp/haskell/ReadmeEntity_haskell.ts +181 -0
- package/project/.sdk/src/cmp/haskell/ReadmeExamplesTest_haskell.ts +135 -0
- package/project/.sdk/src/cmp/haskell/ReadmeExplanation_haskell.ts +48 -0
- package/project/.sdk/src/cmp/haskell/ReadmeHowto_haskell.ts +168 -0
- package/project/.sdk/src/cmp/haskell/ReadmeInstall_haskell.ts +51 -0
- package/project/.sdk/src/cmp/haskell/ReadmeIntro_haskell.ts +67 -0
- package/project/.sdk/src/cmp/haskell/ReadmeModel_haskell.ts +160 -0
- package/project/.sdk/src/cmp/haskell/ReadmeOptions_haskell.ts +74 -0
- package/project/.sdk/src/cmp/haskell/ReadmeQuick_haskell.ts +237 -0
- package/project/.sdk/src/cmp/haskell/ReadmeRef_haskell.ts +405 -0
- package/project/.sdk/src/cmp/haskell/ReadmeTopHowto_haskell.ts +31 -0
- package/project/.sdk/src/cmp/haskell/ReadmeTopQuick_haskell.ts +104 -0
- package/project/.sdk/src/cmp/haskell/ReadmeTopTest_haskell.ts +80 -0
- package/project/.sdk/src/cmp/haskell/Test_haskell.ts +27 -2
- package/project/.sdk/src/cmp/java/EntityTypes_java.ts +206 -0
- package/project/.sdk/src/cmp/java/Entity_java.ts +3 -3
- package/project/.sdk/src/cmp/java/MainEntity_java.ts +2 -2
- package/project/.sdk/src/cmp/java/Main_java.ts +6 -0
- package/project/.sdk/src/cmp/java/Package_java.ts +1 -1
- package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +175 -0
- package/project/.sdk/src/cmp/java/ReadmeExamplesTest_java.ts +208 -0
- package/project/.sdk/src/cmp/java/ReadmeExplanation_java.ts +46 -0
- package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +156 -0
- package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +52 -0
- package/project/.sdk/src/cmp/java/ReadmeIntro_java.ts +66 -0
- package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +150 -0
- package/project/.sdk/src/cmp/java/ReadmeOptions_java.ts +61 -0
- package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +230 -0
- package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +388 -0
- package/project/.sdk/src/cmp/java/ReadmeTopHowto_java.ts +23 -0
- package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +103 -0
- package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +77 -0
- package/project/.sdk/src/cmp/java/TestDirect_java.ts +3 -3
- package/project/.sdk/src/cmp/java/Test_java.ts +4 -0
- package/project/.sdk/src/cmp/js/EntityTypes_js.ts +25 -9
- package/project/.sdk/src/cmp/js/Entity_js.ts +3 -3
- package/project/.sdk/src/cmp/js/MainEntity_js.ts +6 -4
- package/project/.sdk/src/cmp/js/Main_js.ts +2 -2
- package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +4 -4
- package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +13 -4
- package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +4 -4
- package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +5 -5
- package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +4 -4
- package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +4 -4
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +10 -9
- package/project/.sdk/src/cmp/js/TestEntity_js.ts +7 -2
- package/project/.sdk/src/cmp/js/fragment/Entity.test.fragment.js +0 -31
- package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +200 -0
- package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/MainEntity_kotlin.ts +2 -2
- package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +6 -0
- package/project/.sdk/src/cmp/kotlin/Package_kotlin.ts +1 -1
- package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +175 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeExamplesTest_kotlin.ts +198 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeExplanation_kotlin.ts +47 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +154 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +50 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeIntro_kotlin.ts +66 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +150 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeOptions_kotlin.ts +61 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +230 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +387 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeTopHowto_kotlin.ts +23 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +104 -0
- package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +77 -0
- package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +3 -3
- package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +4 -0
- package/project/.sdk/src/cmp/lean/Config_lean.ts +88 -0
- package/project/.sdk/src/cmp/lean/Entity_lean.ts +9 -0
- package/project/.sdk/src/cmp/lean/Gitignore_lean.ts +18 -0
- package/project/.sdk/src/cmp/lean/Main_lean.ts +120 -0
- package/project/.sdk/src/cmp/lean/Package_lean.ts +68 -0
- package/project/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +29 -0
- package/project/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +19 -0
- package/project/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +25 -0
- package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +38 -0
- package/project/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +25 -0
- package/project/.sdk/src/cmp/lean/ReadmeModel_lean.ts +24 -0
- package/project/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +22 -0
- package/project/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +50 -0
- package/project/.sdk/src/cmp/lean/ReadmeRef_lean.ts +16 -0
- package/project/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +16 -0
- package/project/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +23 -0
- package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +18 -0
- package/project/.sdk/src/cmp/lean/Test_lean.ts +207 -0
- package/project/.sdk/src/cmp/lean/utility_lean.ts +78 -0
- package/project/.sdk/src/cmp/lua/Config_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +19 -6
- package/project/.sdk/src/cmp/lua/Entity_lua.ts +3 -3
- package/project/.sdk/src/cmp/lua/Main_lua.ts +14 -2
- package/project/.sdk/src/cmp/lua/Package_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +2 -2
- package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +6 -1
- package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +3 -3
- package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +2 -2
- package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +2 -2
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +3 -3
- package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +8 -3
- package/project/.sdk/src/cmp/lua/Test_lua.ts +1 -1
- package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +2 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +180 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeExamplesTest_ocaml.ts +126 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeExplanation_ocaml.ts +46 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +147 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeInstall_ocaml.ts +44 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeIntro_ocaml.ts +68 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +155 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeOptions_ocaml.ts +59 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +205 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +402 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeTopHowto_ocaml.ts +25 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeTopQuick_ocaml.ts +86 -0
- package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +79 -0
- package/project/.sdk/src/cmp/ocaml/Test_ocaml.ts +4 -0
- package/project/.sdk/src/cmp/perl/Entity_perl.ts +3 -3
- package/project/.sdk/src/cmp/perl/MainEntity_perl.ts +2 -2
- package/project/.sdk/src/cmp/perl/Package_perl.ts +1 -1
- package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +181 -0
- package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +354 -0
- package/project/.sdk/src/cmp/perl/ReadmeExplanation_perl.ts +43 -0
- package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +149 -0
- package/project/.sdk/src/cmp/perl/ReadmeInstall_perl.ts +47 -0
- package/project/.sdk/src/cmp/perl/ReadmeIntro_perl.ts +66 -0
- package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +150 -0
- package/project/.sdk/src/cmp/perl/ReadmeOptions_perl.ts +59 -0
- package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +216 -0
- package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +399 -0
- package/project/.sdk/src/cmp/perl/ReadmeTopHowto_perl.ts +24 -0
- package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +91 -0
- package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +83 -0
- package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +3 -3
- package/project/.sdk/src/cmp/perl/Test_perl.ts +4 -0
- package/project/.sdk/src/cmp/php/EntityTypes_php.ts +23 -7
- package/project/.sdk/src/cmp/php/Entity_php.ts +3 -3
- package/project/.sdk/src/cmp/php/MainEntity_php.ts +2 -2
- package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
- package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +6 -1
- package/project/.sdk/src/cmp/php/TestDirect_php.ts +3 -3
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +8 -3
- package/project/.sdk/src/cmp/py/EntityTypes_py.ts +32 -8
- package/project/.sdk/src/cmp/py/Entity_py.ts +4 -12
- package/project/.sdk/src/cmp/py/MainEntity_py.ts +2 -2
- package/project/.sdk/src/cmp/py/Main_py.ts +2 -2
- package/project/.sdk/src/cmp/py/Package_py.ts +1 -1
- package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +2 -2
- package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +8 -3
- package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +3 -3
- package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +2 -2
- package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +2 -2
- package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +2 -2
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +3 -3
- package/project/.sdk/src/cmp/py/TestEntity_py.ts +8 -3
- package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +32 -8
- package/project/.sdk/src/cmp/rb/Entity_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/MainEntity_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/Package_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +8 -3
- package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +2 -2
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +3 -3
- package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +8 -3
- package/project/.sdk/src/cmp/rust/EntityBase_rust.ts +6 -2
- package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +151 -0
- package/project/.sdk/src/cmp/rust/Entity_rust.ts +4 -4
- package/project/.sdk/src/cmp/rust/MainEntity_rust.ts +2 -2
- package/project/.sdk/src/cmp/rust/Main_rust.ts +5 -0
- package/project/.sdk/src/cmp/rust/Package_rust.ts +1 -1
- package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +163 -0
- package/project/.sdk/src/cmp/rust/ReadmeExamplesTest_rust.ts +144 -0
- package/project/.sdk/src/cmp/rust/ReadmeExplanation_rust.ts +44 -0
- package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +142 -0
- package/project/.sdk/src/cmp/rust/ReadmeInstall_rust.ts +49 -0
- package/project/.sdk/src/cmp/rust/ReadmeIntro_rust.ts +66 -0
- package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +153 -0
- package/project/.sdk/src/cmp/rust/ReadmeOptions_rust.ts +60 -0
- package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +212 -0
- package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +384 -0
- package/project/.sdk/src/cmp/rust/ReadmeTopHowto_rust.ts +24 -0
- package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +95 -0
- package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +81 -0
- package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +3 -3
- package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +10 -0
- package/project/.sdk/src/cmp/rust/Test_rust.ts +4 -0
- package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +201 -0
- package/project/.sdk/src/cmp/scala/Entity_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/MainEntity_scala.ts +2 -2
- package/project/.sdk/src/cmp/scala/Main_scala.ts +6 -0
- package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +175 -0
- package/project/.sdk/src/cmp/scala/ReadmeExamplesTest_scala.ts +182 -0
- package/project/.sdk/src/cmp/scala/ReadmeExplanation_scala.ts +49 -0
- package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +155 -0
- package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +58 -0
- package/project/.sdk/src/cmp/scala/ReadmeIntro_scala.ts +66 -0
- package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +150 -0
- package/project/.sdk/src/cmp/scala/ReadmeOptions_scala.ts +61 -0
- package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +230 -0
- package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +388 -0
- package/project/.sdk/src/cmp/scala/ReadmeTopHowto_scala.ts +23 -0
- package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +104 -0
- package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +77 -0
- package/project/.sdk/src/cmp/scala/TestDirect_scala.ts +3 -3
- package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +38 -10
- package/project/.sdk/src/cmp/scala/Test_scala.ts +9 -1
- package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +151 -0
- package/project/.sdk/src/cmp/swift/Entity_swift.ts +3 -3
- package/project/.sdk/src/cmp/swift/MainEntity_swift.ts +2 -2
- package/project/.sdk/src/cmp/swift/Main_swift.ts +5 -0
- package/project/.sdk/src/cmp/swift/Package_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +176 -0
- package/project/.sdk/src/cmp/swift/ReadmeExamplesTest_swift.ts +187 -0
- package/project/.sdk/src/cmp/swift/ReadmeExplanation_swift.ts +49 -0
- package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +159 -0
- package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +58 -0
- package/project/.sdk/src/cmp/swift/ReadmeIntro_swift.ts +64 -0
- package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +149 -0
- package/project/.sdk/src/cmp/swift/ReadmeOptions_swift.ts +62 -0
- package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +232 -0
- package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +387 -0
- package/project/.sdk/src/cmp/swift/ReadmeTopHowto_swift.ts +24 -0
- package/project/.sdk/src/cmp/swift/ReadmeTopQuick_swift.ts +105 -0
- package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +77 -0
- package/project/.sdk/src/cmp/swift/TestDirect_swift.ts +1 -1
- package/project/.sdk/src/cmp/swift/Test_swift.ts +4 -0
- package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +19 -6
- package/project/.sdk/src/cmp/ts/Entity_ts.ts +3 -3
- package/project/.sdk/src/cmp/ts/MainEntity_ts.ts +6 -4
- package/project/.sdk/src/cmp/ts/Main_ts.ts +2 -2
- package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +4 -4
- package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +14 -4
- package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +29 -11
- package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +5 -5
- package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +4 -4
- package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +4 -4
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +17 -15
- package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +18 -2
- package/project/.sdk/src/cmp/zig/Config_zig.ts +22 -4
- package/project/.sdk/src/cmp/zig/Entity_zig.ts +4 -4
- package/project/.sdk/src/cmp/zig/MainEntity_zig.ts +2 -2
- package/project/.sdk/src/cmp/zig/Main_zig.ts +10 -4
- package/project/.sdk/src/cmp/zig/Package_zig.ts +61 -0
- package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +188 -0
- package/project/.sdk/src/cmp/zig/ReadmeExamplesTest_zig.ts +58 -0
- package/project/.sdk/src/cmp/zig/ReadmeExplanation_zig.ts +45 -0
- package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +143 -0
- package/project/.sdk/src/cmp/zig/ReadmeInstall_zig.ts +54 -0
- package/project/.sdk/src/cmp/zig/ReadmeIntro_zig.ts +66 -0
- package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +152 -0
- package/project/.sdk/src/cmp/zig/ReadmeOptions_zig.ts +60 -0
- package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +211 -0
- package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +400 -0
- package/project/.sdk/src/cmp/zig/ReadmeTopHowto_zig.ts +24 -0
- package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +96 -0
- package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +82 -0
- package/project/.sdk/src/cmp/zig/TestDirect_zig.ts +66 -0
- package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +79 -0
- package/project/.sdk/src/cmp/zig/Test_zig.ts +17 -61
- package/project/.sdk/tm/clojure/src/voxgig/struct.clj +1 -1
- package/project/.sdk/tm/cpp/test/feature_test.cpp +19 -0
- package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +8 -16
- package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +10 -28
- package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +4 -1
- package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +7 -1
- package/project/.sdk/tm/dart/test/primary_test.dart +7 -0
- package/project/.sdk/tm/elixir/lib/utility/struct/voxgig_struct.ex +1 -1
- package/project/.sdk/tm/elixir/test/primary_utility_test.exs +7 -1
- package/project/.sdk/tm/go/feature/test_feature.go +33 -1
- package/project/.sdk/tm/go/test/primary_utility_test.go +41 -42
- package/project/.sdk/tm/go/test/runner_test.go +30 -1
- package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +3 -1
- package/project/.sdk/tm/haskell/test/Harness.hs +8 -3
- package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +7 -24
- package/project/.sdk/tm/js/Makefile +1 -1
- package/project/.sdk/tm/js/jsconfig.json +12 -0
- package/project/.sdk/tm/js/src/feature/test/TestFeature.js +18 -1
- package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +8 -0
- package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +7 -20
- package/project/.sdk/tm/lean/LICENSE +21 -0
- package/project/.sdk/tm/lean/VERSION +1 -0
- package/project/.sdk/tm/lean/src/SdkFeature.lean +171 -0
- package/project/.sdk/tm/lean/src/SdkFeatures.lean +602 -0
- package/project/.sdk/tm/lean/src/SdkJson.lean +134 -0
- package/project/.sdk/tm/lean/src/SdkRuntime.lean +356 -0
- package/project/.sdk/tm/lean/src/SdkUtility.lean +617 -0
- package/project/.sdk/tm/lean/src/VoxgigStruct.lean +2880 -0
- package/project/.sdk/tm/lean/src/Vregex.lean +412 -0
- package/project/.sdk/tm/lean/src/feature/README.md +5 -0
- package/project/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
- package/project/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
- package/project/.sdk/tm/lean/test/StructCorpus.lean +697 -0
- package/project/.sdk/tm/lean/test/TFeature.lean +268 -0
- package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +349 -0
- package/project/.sdk/tm/lua/test/primary_utility_test.lua +10 -8
- package/project/.sdk/tm/ocaml/Makefile +5 -1
- package/project/.sdk/tm/perl/t/primary_utility.t +8 -17
- package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +9 -7
- package/project/.sdk/tm/php/utility/struct/Struct.php +1 -1
- package/project/.sdk/tm/py/feature/test_feature.py +28 -1
- package/project/.sdk/tm/py/test/test_primary_utility.py +13 -18
- package/project/.sdk/tm/py/utility/voxgig_struct/voxgig_struct.py +1 -1
- package/project/.sdk/tm/rb/feature/test_feature.rb +24 -1
- package/project/.sdk/tm/rb/test/primary_utility_test.rb +7 -8
- package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +1 -1
- package/project/.sdk/tm/rust/tests/common/mod.rs +37 -1
- package/project/.sdk/tm/rust/tests/primary_utility_test.rs +12 -26
- package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +8 -59
- package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +7 -8
- package/project/.sdk/tm/ts/Makefile +1 -1
- package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +18 -1
- package/project/.sdk/tm/ts/test/utility/PrimaryUtility.test.ts +65 -21
- package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +1 -1
- package/src/cmp/Entity.ts +5 -1
- package/src/cmp/Feature.ts +2 -1
- package/src/cmp/ReadmeErrors.ts +2 -2
- package/src/cmp/ReadmeExplanation.ts +3 -3
- package/src/cmp/ReadmeTop.ts +2 -2
- package/src/helpers/canonType.ts +121 -25
- package/src/helpers/collectDeps.ts +39 -12
- package/src/helpers/naming.ts +106 -0
- package/src/helpers/opExample.ts +43 -20
- package/src/helpers/opShape.ts +197 -11
- package/src/sdkgen.ts +13 -3
- package/src/tsconfig.json +2 -0
- package/project/.sdk/tm/zig/build.zig.zon +0 -11
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
|
|
2
|
+
import {
|
|
3
|
+
Content,
|
|
4
|
+
File,
|
|
5
|
+
cmp,
|
|
6
|
+
} from '@voxgig/sdkgen'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
import type {
|
|
10
|
+
Model,
|
|
11
|
+
} from '@voxgig/apidef'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import { zigModuleName } from './utility_zig'
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
// build.zig.zon — the Zig package manifest. Zig has no central package
|
|
18
|
+
// registry, so there are no external registry dependencies to declare: the
|
|
19
|
+
// voxgig struct port is vendored in-tree (utility/voxgigstruct) and wired as a
|
|
20
|
+
// local module by build.zig. This generator only stamps the manifest with the
|
|
21
|
+
// model-derived package name (the go/rust Package generators emit go.mod /
|
|
22
|
+
// Cargo.toml the same way).
|
|
23
|
+
//
|
|
24
|
+
// The `.paths` allow-list mirrors the (registry-less) template: it only
|
|
25
|
+
// matters when packaging for a registry, which zig does not do, so it is kept
|
|
26
|
+
// stable. `.name` is a plain string here rather than the newer enum-literal +
|
|
27
|
+
// fingerprint form.
|
|
28
|
+
//
|
|
29
|
+
// TOOLCHAIN PIN: the string form REQUIRES zig <= 0.13. Zig 0.14 rejects it
|
|
30
|
+
// outright — `build.zig.zon:2:13: error: expected enum literal` — so the
|
|
31
|
+
// generated SDK will not build at all on a newer toolchain. The consumer CI
|
|
32
|
+
// job pins 0.13.0 to match (create-sdkgen
|
|
33
|
+
// project/standard/.github/workflows/ci.yml). Moving to a newer zig means
|
|
34
|
+
// changing BOTH: `.name = .${name}` plus a `.fingerprint` here, and the CI
|
|
35
|
+
// pin there.
|
|
36
|
+
const Package = cmp(async function Package(props: any) {
|
|
37
|
+
const ctx$ = props.ctx$
|
|
38
|
+
const model: Model = ctx$.model
|
|
39
|
+
|
|
40
|
+
const name = zigModuleName(model)
|
|
41
|
+
|
|
42
|
+
File({ name: 'build.zig.zon' }, () => {
|
|
43
|
+
Content(`.{
|
|
44
|
+
.name = "${name}",
|
|
45
|
+
.version = "0.0.1",
|
|
46
|
+
.dependencies = .{},
|
|
47
|
+
.paths = .{
|
|
48
|
+
"src",
|
|
49
|
+
"test",
|
|
50
|
+
"build.zig",
|
|
51
|
+
"build.zig.zon",
|
|
52
|
+
},
|
|
53
|
+
}
|
|
54
|
+
`)
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
Package
|
|
61
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
|
|
2
|
+
import { cmp, each, Content, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
KIT,
|
|
6
|
+
getModelPath,
|
|
7
|
+
} from '@voxgig/apidef'
|
|
8
|
+
|
|
9
|
+
import { zigVarName } from './utility_zig'
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
// Canonical type sentinel -> a zig type name for the field/param tables.
|
|
13
|
+
// (The shared canonToType helper has no zig column, so map locally.) Every
|
|
14
|
+
// value is dynamically a `Value`, so the type column is documentary.
|
|
15
|
+
function zigType(type: any): string {
|
|
16
|
+
const k = canonKey(type)
|
|
17
|
+
if ('STRING' === k) return '[]const u8'
|
|
18
|
+
if ('INTEGER' === k) return 'i64'
|
|
19
|
+
if ('NUMBER' === k) return 'f64'
|
|
20
|
+
if ('BOOLEAN' === k) return 'bool'
|
|
21
|
+
if ('ARRAY' === k) return 'Value (array)'
|
|
22
|
+
if ('OBJECT' === k) return 'Value (object)'
|
|
23
|
+
return 'Value'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
// A type-correct zig expression constructing a voxgig struct Value.
|
|
28
|
+
function zigLit(type: any, placeholder: string = 'example'): string {
|
|
29
|
+
const k = canonKey(type)
|
|
30
|
+
if ('INTEGER' === k || 'NUMBER' === k) return 'h.vnum(1)'
|
|
31
|
+
if ('BOOLEAN' === k) return 'h.vbool(true)'
|
|
32
|
+
if ('ARRAY' === k) return 'h.olist()'
|
|
33
|
+
if ('OBJECT' === k) return 'h.omap()'
|
|
34
|
+
return `h.vstr("${placeholder}")`
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
// Operation method descriptions (language-agnostic wording, zig signatures).
|
|
39
|
+
const OP_DESC: Record<string, { method: string, desc: string }> = {
|
|
40
|
+
load: { method: 'load(reqmatch, ctrl)', desc: 'Load a single entity by match criteria.' },
|
|
41
|
+
list: { method: 'list(reqmatch, ctrl)', desc: 'List entities, optionally matching the given criteria.' },
|
|
42
|
+
create: { method: 'create(reqdata, ctrl)', desc: 'Create a new entity with the given data.' },
|
|
43
|
+
update: { method: 'update(reqdata, ctrl)', desc: 'Update an existing entity.' },
|
|
44
|
+
remove: { method: 'remove(reqmatch, ctrl)', desc: 'Remove the matching entity.' },
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
|
|
49
|
+
const { target } = props
|
|
50
|
+
const { model } = props.ctx$
|
|
51
|
+
|
|
52
|
+
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
53
|
+
|
|
54
|
+
const publishedEntities = each(entity)
|
|
55
|
+
.filter((entity: any) => entity.active !== false)
|
|
56
|
+
|
|
57
|
+
if (0 === publishedEntities.length) {
|
|
58
|
+
return
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
Content(`
|
|
62
|
+
|
|
63
|
+
## Entities
|
|
64
|
+
|
|
65
|
+
`)
|
|
66
|
+
|
|
67
|
+
publishedEntities.map((entity: any) => {
|
|
68
|
+
const opnames = Object.keys(entity.op || {})
|
|
69
|
+
const fields = entity.fields || []
|
|
70
|
+
const idF = entityIdField(entity)
|
|
71
|
+
const eVar = zigVarName(entity.name)
|
|
72
|
+
const method = zigVarName(entity.name)
|
|
73
|
+
|
|
74
|
+
Content(`
|
|
75
|
+
### ${entity.Name}
|
|
76
|
+
|
|
77
|
+
`)
|
|
78
|
+
|
|
79
|
+
if (entity.short) {
|
|
80
|
+
Content(`${entity.short}
|
|
81
|
+
|
|
82
|
+
`)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
Content(`Create an instance: \`const ${eVar} = client.${method}(h.vnull());\`
|
|
86
|
+
|
|
87
|
+
`)
|
|
88
|
+
|
|
89
|
+
if (opnames.length > 0) {
|
|
90
|
+
Content(`#### Operations
|
|
91
|
+
|
|
92
|
+
| Method | Description |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
`)
|
|
95
|
+
opnames.map((opname: string) => {
|
|
96
|
+
const info = OP_DESC[opname]
|
|
97
|
+
if (info) {
|
|
98
|
+
Content(`| \`${info.method}\` | ${info.desc} |
|
|
99
|
+
`)
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
Content(`
|
|
104
|
+
Each operation returns an \`OpResult\` — \`switch\` on it: \`.ok => |data|\`
|
|
105
|
+
carries the result \`Value\`, \`.err => |e|\` carries the branded error.
|
|
106
|
+
|
|
107
|
+
`)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (fields.length > 0) {
|
|
111
|
+
Content(`#### Fields
|
|
112
|
+
|
|
113
|
+
| Field | Type | Description |
|
|
114
|
+
| --- | --- | --- |
|
|
115
|
+
`)
|
|
116
|
+
|
|
117
|
+
each(fields, (field: any) => {
|
|
118
|
+
const desc = field.short || ''
|
|
119
|
+
Content(`| \`${field.name}\` | \`${zigType(field.type)}\` | ${desc} |
|
|
120
|
+
`)
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
Content(`
|
|
124
|
+
`)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (opnames.includes('load')) {
|
|
128
|
+
const loadItems = opRequestShape(entity, 'load').items
|
|
129
|
+
.filter((it: any) => !it.optional || it.name === idF)
|
|
130
|
+
.sort((a: any, b: any) =>
|
|
131
|
+
(a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
|
|
132
|
+
const loadArg = 0 < loadItems.length
|
|
133
|
+
? `h.jo(&.{${loadItems.map((it: any) =>
|
|
134
|
+
`.{ "${it.name}", ${zigLit(it.type,
|
|
135
|
+
it.name === idF ? entity.name + '_id' : it.name)} }`).join(', ')}})`
|
|
136
|
+
: 'h.vnull()'
|
|
137
|
+
Content(`#### Example: Load
|
|
138
|
+
|
|
139
|
+
\`\`\`zig
|
|
140
|
+
switch (client.${method}(h.vnull()).load(${loadArg}, h.vnull())) {
|
|
141
|
+
.ok => |${eVar}| std.debug.print("{s}\\n", .{h.stringify(${eVar})}),
|
|
142
|
+
.err => |e| std.debug.print("load failed: {s}\\n", .{e.msg}),
|
|
143
|
+
}
|
|
144
|
+
\`\`\`
|
|
145
|
+
|
|
146
|
+
`)
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (opnames.includes('list')) {
|
|
150
|
+
Content(`#### Example: List
|
|
151
|
+
|
|
152
|
+
\`\`\`zig
|
|
153
|
+
switch (client.${method}(h.vnull()).list(h.vnull(), h.vnull())) {
|
|
154
|
+
.ok => |${eVar}s| std.debug.print("{s}\\n", .{h.stringify(${eVar}s)}),
|
|
155
|
+
.err => |e| std.debug.print("list failed: {s}\\n", .{e.msg}),
|
|
156
|
+
}
|
|
157
|
+
\`\`\`
|
|
158
|
+
|
|
159
|
+
`)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (opnames.includes('create')) {
|
|
163
|
+
const createItems = opRequestShape(entity, 'create').items
|
|
164
|
+
.filter((it: any) => !it.optional)
|
|
165
|
+
Content(`#### Example: Create
|
|
166
|
+
|
|
167
|
+
\`\`\`zig
|
|
168
|
+
switch (client.${method}(h.vnull()).create(h.jo(&.{
|
|
169
|
+
`)
|
|
170
|
+
createItems.map((it: any) => {
|
|
171
|
+
Content(` .{ "${it.name}", ${zigLit(it.type, 'example_' + it.name)} }, // ${zigType(it.type)}
|
|
172
|
+
`)
|
|
173
|
+
})
|
|
174
|
+
Content(`}), h.vnull())) {
|
|
175
|
+
.ok => |${eVar}| std.debug.print("{s}\\n", .{h.stringify(${eVar})}),
|
|
176
|
+
.err => |e| std.debug.print("create failed: {s}\\n", .{e.msg}),
|
|
177
|
+
}
|
|
178
|
+
\`\`\`
|
|
179
|
+
|
|
180
|
+
`)
|
|
181
|
+
}
|
|
182
|
+
})
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
export {
|
|
187
|
+
ReadmeEntity
|
|
188
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
|
|
2
|
+
import { cmp, Content } from '@voxgig/sdkgen'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// Validates the documented README/REFERENCE quick-start examples for the Zig
|
|
6
|
+
// SDK.
|
|
7
|
+
//
|
|
8
|
+
// DESIGN NOTE vs the go/rust gates (ReadmeExamplesTest_go.ts /
|
|
9
|
+
// ReadmeExamplesTest_rust.ts): the go version shells out to `go build`/`go run`
|
|
10
|
+
// to compile and run every fenced block; the rust version reads the doc files
|
|
11
|
+
// and checks that each block is structurally well-formed. Zig's test harness
|
|
12
|
+
// uses an EXPLICIT test-file list in build.zig (no auto-discovery of test/*.zig
|
|
13
|
+
// and no per-block temp compilation), and the doc files are not on the package
|
|
14
|
+
// path at test time — so neither a filesystem scan nor a per-snippet compile can
|
|
15
|
+
// be authored safely without a build to validate against.
|
|
16
|
+
//
|
|
17
|
+
// Instead this gate emits a real, always-compiling zig `test` block INTO the
|
|
18
|
+
// shared generated_test.zig (the only generated test file build.zig picks up).
|
|
19
|
+
// It exercises the exact top-level entry points the docs advertise — the
|
|
20
|
+
// test-mode constructor and the `direct()` escape hatch — so the documented
|
|
21
|
+
// quick-start surface is guaranteed to exist and run. Upgrading it to a true
|
|
22
|
+
// per-block compile gate is left as a follow-up.
|
|
23
|
+
const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
|
|
24
|
+
const { ctx$: { model } } = props
|
|
25
|
+
|
|
26
|
+
Content(`
|
|
27
|
+
// Documented quick-start surface (README.md / REFERENCE.md). Exercises the
|
|
28
|
+
// test-mode constructor and the direct() escape hatch exactly as documented.
|
|
29
|
+
test "readme_quickstart_surface" {
|
|
30
|
+
// \`sdk.test_sdk(...)\` — the documented mock constructor.
|
|
31
|
+
const client = sdk.test_sdk(vnull(), vnull());
|
|
32
|
+
try std.testing.expect(std.mem.eql(u8, client.mode, "test"));
|
|
33
|
+
|
|
34
|
+
// \`client.direct(...)\` — the documented escape hatch. It always returns a
|
|
35
|
+
// result map carrying an \`ok\` flag (never an error union).
|
|
36
|
+
const result = client.direct(h.jo(&.{
|
|
37
|
+
.{ "path", h.vstr("/api/resource/{id}") },
|
|
38
|
+
.{ "method", h.vstr("GET") },
|
|
39
|
+
.{ "params", h.jo(&.{.{ "id", h.vstr("example") }}) },
|
|
40
|
+
}));
|
|
41
|
+
try std.testing.expect(result == .object);
|
|
42
|
+
try std.testing.expect(h.get_bool(result, "ok") != null);
|
|
43
|
+
|
|
44
|
+
// \`client.prepare(...)\` — build a request without sending it.
|
|
45
|
+
const fetchdef = client.prepare(h.jo(&.{
|
|
46
|
+
.{ "path", h.vstr("/api/resource/{id}") },
|
|
47
|
+
.{ "method", h.vstr("GET") },
|
|
48
|
+
.{ "params", h.jo(&.{.{ "id", h.vstr("example") }}) },
|
|
49
|
+
})) catch h.vnull();
|
|
50
|
+
_ = fetchdef;
|
|
51
|
+
}
|
|
52
|
+
`)
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
export {
|
|
57
|
+
ReadmeExamplesTest
|
|
58
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
|
|
2
|
+
import { cmp, Content } from '@voxgig/sdkgen'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
const ReadmeExplanation = cmp(function ReadmeExplanation(props: any) {
|
|
6
|
+
const { target, ctx$: { model } } = props
|
|
7
|
+
|
|
8
|
+
Content(`### Data as \`Value\`
|
|
9
|
+
|
|
10
|
+
The Zig SDK uses a single dynamic \`Value\` type throughout rather than a
|
|
11
|
+
typed struct per entity. \`Value\` is the vendored voxgig struct port's
|
|
12
|
+
\`JsonValue\` (a JSON-shaped tagged union: \`.string\`, \`.integer\`,
|
|
13
|
+
\`.float\`, \`.bool\`, \`.array\`, \`.object\`, \`.null\`). This mirrors the
|
|
14
|
+
dynamic nature of the API and keeps the SDK flexible — no code generation is
|
|
15
|
+
needed when the API schema changes.
|
|
16
|
+
|
|
17
|
+
Build request maps with the \`h.jo\` / \`h.ja\` helpers and read fields back
|
|
18
|
+
with \`h.getp\` (or the typed \`h.get_str\` / \`h.get_bool\` / \`h.to_int\`
|
|
19
|
+
accessors); use \`h.to_map\` to safely coerce a value to a map.
|
|
20
|
+
|
|
21
|
+
### Module structure
|
|
22
|
+
|
|
23
|
+
\`\`\`
|
|
24
|
+
${target.name}/
|
|
25
|
+
├── root.zig -- Module root (re-exports the public surface)
|
|
26
|
+
├── build.zig -- Build + test wiring
|
|
27
|
+
├── core/ -- Pipeline types, config, client (sdk.zig)
|
|
28
|
+
├── entity/ -- Per-entity clients (one file each)
|
|
29
|
+
├── feature/ -- Built-in features (base, test, log)
|
|
30
|
+
├── utility/ -- Utilities + the vendored voxgig struct port
|
|
31
|
+
└── test/ -- Test suites
|
|
32
|
+
\`\`\`
|
|
33
|
+
|
|
34
|
+
The public API is re-exported from \`root.zig\`, so \`@import("sdk")\` reaches
|
|
35
|
+
the SDK client, \`Value\`, and the \`h\` (helpers) namespace directly. Import
|
|
36
|
+
entity or utility modules only when needed.
|
|
37
|
+
|
|
38
|
+
`)
|
|
39
|
+
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
export {
|
|
44
|
+
ReadmeExplanation
|
|
45
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
|
|
2
|
+
import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
KIT,
|
|
6
|
+
getModelPath,
|
|
7
|
+
nom,
|
|
8
|
+
} from '@voxgig/apidef'
|
|
9
|
+
|
|
10
|
+
import { zigVarName } from './utility_zig'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
// A type-correct zig expression constructing a voxgig struct Value.
|
|
14
|
+
function zigLit(type: any): string {
|
|
15
|
+
const k = canonKey(type)
|
|
16
|
+
if ('INTEGER' === k || 'NUMBER' === k) return 'h.vnum(1)'
|
|
17
|
+
if ('BOOLEAN' === k) return 'h.vbool(true)'
|
|
18
|
+
if ('ARRAY' === k) return 'h.olist()'
|
|
19
|
+
if ('OBJECT' === k) return 'h.omap()'
|
|
20
|
+
return 'h.vstr("example")'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
25
|
+
const { target, ctx$: { model } } = props
|
|
26
|
+
|
|
27
|
+
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
28
|
+
// Pick an entity with a real op (prefer a read op). primaryOp is null only
|
|
29
|
+
// when NO entity exposes any op (a direct()-only SDK).
|
|
30
|
+
const { entity: exampleEntity, primaryOp } = pickExampleEntity(entity)
|
|
31
|
+
const eName = exampleEntity ? nom(exampleEntity, 'Name') : 'Entity'
|
|
32
|
+
const eVar = exampleEntity ? zigVarName(exampleEntity.name) : 'entity'
|
|
33
|
+
const method = exampleEntity ? zigVarName(exampleEntity.name) : 'entity'
|
|
34
|
+
const idF = exampleEntity ? entityIdField(exampleEntity) : null
|
|
35
|
+
const isMatchOp = 'load' === primaryOp || 'remove' === primaryOp
|
|
36
|
+
let testArg = 'h.vnull()'
|
|
37
|
+
if (exampleEntity && isMatchOp) {
|
|
38
|
+
testArg = idF ? `h.jo(&.{.{ "${idF}", h.vstr("test01") }})` : 'h.vnull()'
|
|
39
|
+
} else if (exampleEntity && ('create' === primaryOp || 'update' === primaryOp)) {
|
|
40
|
+
const items = opRequestShape(exampleEntity, primaryOp).items
|
|
41
|
+
.filter((it: any) => it.name !== idF && it.name !== 'id')
|
|
42
|
+
const required = items.filter((it: any) => !it.optional)
|
|
43
|
+
const chosen = required.length ? required : items.slice(0, 3)
|
|
44
|
+
testArg = 0 < chosen.length
|
|
45
|
+
? `h.jo(&.{${chosen.map((it: any) => `.{ "${it.name}", ${zigLit(it.type)} }`).join(', ')}})`
|
|
46
|
+
: 'h.omap()'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// The op-driven test-mode line. A direct()-only SDK shows a direct() call.
|
|
50
|
+
const testModeExample = primaryOp
|
|
51
|
+
? `// Entity ops return an OpResult — .ok carries the record, .err the error.
|
|
52
|
+
switch (client.${method}(h.vnull()).${primaryOp}(${testArg}, h.vnull())) {
|
|
53
|
+
.ok => |${eVar}| std.debug.print("{s}\\n", .{h.stringify(${eVar})}), // the mock record
|
|
54
|
+
.err => |e| std.debug.print("${primaryOp} failed: {s}\\n", .{e.msg}),
|
|
55
|
+
}`
|
|
56
|
+
: `const result = client.direct(h.jo(&.{
|
|
57
|
+
.{ "path", h.vstr("/api/resource") },
|
|
58
|
+
.{ "method", h.vstr("GET") },
|
|
59
|
+
}));
|
|
60
|
+
std.debug.print("{s}\\n", .{h.stringify(result)});`
|
|
61
|
+
|
|
62
|
+
const apikeyEnvLine = isAuthActive(model)
|
|
63
|
+
? `\n${envName(model)}_APIKEY=<your-key>`
|
|
64
|
+
: ''
|
|
65
|
+
|
|
66
|
+
Content(`### Make a direct HTTP request
|
|
67
|
+
|
|
68
|
+
For endpoints not covered by entity methods:
|
|
69
|
+
|
|
70
|
+
\`\`\`zig
|
|
71
|
+
const result = client.direct(h.jo(&.{
|
|
72
|
+
.{ "path", h.vstr("/api/resource/{id}") },
|
|
73
|
+
.{ "method", h.vstr("GET") },
|
|
74
|
+
.{ "params", h.jo(&.{.{ "id", h.vstr("example") }}) },
|
|
75
|
+
}));
|
|
76
|
+
|
|
77
|
+
if (h.get_bool(result, "ok") orelse false) {
|
|
78
|
+
std.debug.print("{d}\\n", .{h.to_int(h.getp(result, "status"))}); // 200
|
|
79
|
+
std.debug.print("{s}\\n", .{h.stringify(h.getp(result, "data"))}); // response body
|
|
80
|
+
} else {
|
|
81
|
+
// A non-2xx response carries status + data (the error body); a
|
|
82
|
+
// transport-level failure carries err instead. Only one is present.
|
|
83
|
+
std.debug.print("{s}\\n", .{h.get_str(result, "err") orelse ""});
|
|
84
|
+
}
|
|
85
|
+
\`\`\`
|
|
86
|
+
|
|
87
|
+
### Prepare a request without sending it
|
|
88
|
+
|
|
89
|
+
\`\`\`zig
|
|
90
|
+
// prepare() returns the fetch definition (an error union — use \`catch\`/\`try\`).
|
|
91
|
+
const fetchdef = client.prepare(h.jo(&.{
|
|
92
|
+
.{ "path", h.vstr("/api/resource/{id}") },
|
|
93
|
+
.{ "method", h.vstr("DELETE") },
|
|
94
|
+
.{ "params", h.jo(&.{.{ "id", h.vstr("example") }}) },
|
|
95
|
+
})) catch unreachable;
|
|
96
|
+
|
|
97
|
+
std.debug.print("{s}\\n", .{h.get_str(fetchdef, "url") orelse ""});
|
|
98
|
+
std.debug.print("{s}\\n", .{h.get_str(fetchdef, "method") orelse ""});
|
|
99
|
+
std.debug.print("{s}\\n", .{h.stringify(h.getp(fetchdef, "headers"))});
|
|
100
|
+
\`\`\`
|
|
101
|
+
|
|
102
|
+
### Use test mode
|
|
103
|
+
|
|
104
|
+
Create a mock client for unit testing — no server required:
|
|
105
|
+
|
|
106
|
+
\`\`\`zig
|
|
107
|
+
const client = sdk.test_sdk(h.vnull(), h.vnull());
|
|
108
|
+
|
|
109
|
+
${testModeExample}
|
|
110
|
+
\`\`\`
|
|
111
|
+
|
|
112
|
+
### Point at a different server
|
|
113
|
+
|
|
114
|
+
Override the base URL to reach a local or staging server:
|
|
115
|
+
|
|
116
|
+
\`\`\`zig
|
|
117
|
+
const client = sdk.${model.const.Name}SDK.new(h.jo(&.{
|
|
118
|
+
.{ "base", h.vstr("http://localhost:8080") },
|
|
119
|
+
}));
|
|
120
|
+
\`\`\`
|
|
121
|
+
|
|
122
|
+
### Run live tests
|
|
123
|
+
|
|
124
|
+
Create a \`.env.local\` file at the project root:
|
|
125
|
+
|
|
126
|
+
\`\`\`
|
|
127
|
+
${envName(model)}_TEST_LIVE=TRUE${apikeyEnvLine}
|
|
128
|
+
\`\`\`
|
|
129
|
+
|
|
130
|
+
Then run:
|
|
131
|
+
|
|
132
|
+
\`\`\`bash
|
|
133
|
+
cd ${target.name} && zig build test
|
|
134
|
+
\`\`\`
|
|
135
|
+
|
|
136
|
+
`)
|
|
137
|
+
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
export {
|
|
142
|
+
ReadmeHowto
|
|
143
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
import { cmp, Content, installCommand, isPublished, repoInfo } from '@voxgig/sdkgen'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
const ReadmeInstall = cmp(function ReadmeInstall(props: any) {
|
|
6
|
+
const { target, ctx$ } = props
|
|
7
|
+
const { model } = ctx$
|
|
8
|
+
|
|
9
|
+
if (isPublished(model, target.name)) {
|
|
10
|
+
Content(`\`\`\`bash
|
|
11
|
+
${installCommand(model, target.name)}
|
|
12
|
+
\`\`\`
|
|
13
|
+
|
|
14
|
+
Or build it from a source checkout:
|
|
15
|
+
|
|
16
|
+
\`\`\`bash
|
|
17
|
+
cd ${target.name} && zig build
|
|
18
|
+
\`\`\`
|
|
19
|
+
|
|
20
|
+
`)
|
|
21
|
+
return
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Zig has no central package registry — the release IS the git tag. Depend
|
|
25
|
+
// on it via the Zig package manager (a git-tagged url in build.zig.zon) or
|
|
26
|
+
// build from a local source checkout.
|
|
27
|
+
const { releasesUrl } = repoInfo(model)
|
|
28
|
+
Content(`Zig has no central package registry, so this package is distributed as a
|
|
29
|
+
git tag (\`${target.name}/vX.Y.Z\`, see [Releases](${releasesUrl})). Add it to
|
|
30
|
+
your \`build.zig.zon\` dependencies, or build from a source checkout:
|
|
31
|
+
|
|
32
|
+
\`\`\`bash
|
|
33
|
+
cd ${target.name} && zig build
|
|
34
|
+
\`\`\`
|
|
35
|
+
|
|
36
|
+
To depend on it from another project, add the tagged archive to
|
|
37
|
+
\`build.zig.zon\`:
|
|
38
|
+
|
|
39
|
+
\`\`\`zig
|
|
40
|
+
.dependencies = .{
|
|
41
|
+
.sdk = .{
|
|
42
|
+
.url = "<repo-url>/archive/refs/tags/${target.name}/vX.Y.Z.tar.gz",
|
|
43
|
+
// .hash = "...", // filled in by \`zig fetch\`
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
\`\`\`
|
|
47
|
+
|
|
48
|
+
`)
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
export {
|
|
53
|
+
ReadmeInstall
|
|
54
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
|
|
2
|
+
import { cmp, Content } from '@voxgig/sdkgen'
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
KIT,
|
|
6
|
+
getModelPath,
|
|
7
|
+
} from '@voxgig/apidef'
|
|
8
|
+
|
|
9
|
+
import { zigVarName } from './utility_zig'
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
const ReadmeIntro = cmp(function ReadmeIntro(props: any) {
|
|
13
|
+
const { target, ctx$: { model } } = props
|
|
14
|
+
const info = (model.main && model.main.kit && model.main.kit.info) || {}
|
|
15
|
+
const tagline = info.tagline || ''
|
|
16
|
+
|
|
17
|
+
Content(`# ${model.Name} ${target.title} SDK
|
|
18
|
+
|
|
19
|
+
${tagline}
|
|
20
|
+
|
|
21
|
+
The ${target.title} SDK for the ${model.Name} API — an entity-oriented client following idiomatic Zig conventions.
|
|
22
|
+
|
|
23
|
+
`)
|
|
24
|
+
|
|
25
|
+
// Emphasise the entity-oriented design: the SDK surfaces the API as
|
|
26
|
+
// capitalised, semantic Entities with a small, uniform verb set rather
|
|
27
|
+
// than raw URL paths and query strings. The example entity name is
|
|
28
|
+
// derived from the model, never hardcoded.
|
|
29
|
+
const entity = getModelPath(model, `main.${KIT}.entity`)
|
|
30
|
+
const exampleEntity = Object.values(entity || {})
|
|
31
|
+
.find((e: any) => e.active !== false) as any
|
|
32
|
+
const example = exampleEntity
|
|
33
|
+
? `for example \`client.${zigVarName(exampleEntity.name)}(h.vnull())\` — each`
|
|
34
|
+
: 'each'
|
|
35
|
+
|
|
36
|
+
// Model-driven op list — only the operations the active entities actually
|
|
37
|
+
// expose (a read-only entity has just list+load); never claim
|
|
38
|
+
// create/update/remove exist when no entity has them.
|
|
39
|
+
const CANON_OPS = ['list', 'load', 'create', 'update', 'remove']
|
|
40
|
+
const opSet = new Set<string>()
|
|
41
|
+
Object.values(entity || {}).forEach((e: any) => {
|
|
42
|
+
if (!e || e.active === false) return
|
|
43
|
+
Object.keys(e.op || {}).forEach((o: string) => {
|
|
44
|
+
if (e.op[o] && e.op[o].active !== false) opSet.add(o)
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
const opNames = CANON_OPS.filter((o) => opSet.has(o))
|
|
48
|
+
.concat([...opSet].filter((o) => !CANON_OPS.includes(o)))
|
|
49
|
+
const opList = (opNames.length ? opNames : ['list', 'load'])
|
|
50
|
+
.map((o) => '`' + o + '`').join(', ')
|
|
51
|
+
|
|
52
|
+
Content(`The SDK exposes the API as capitalised, semantic **Entities** — ${example}
|
|
53
|
+
carrying a small, uniform set of operations (${opList}) instead of raw URL
|
|
54
|
+
paths and query strings. You work with named resources and verbs, which
|
|
55
|
+
keeps the cognitive load low.
|
|
56
|
+
|
|
57
|
+
> Other languages, the CLI, and MCP server live alongside this one — see
|
|
58
|
+
> the [top-level README](../README.md).
|
|
59
|
+
|
|
60
|
+
`)
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
export {
|
|
65
|
+
ReadmeIntro
|
|
66
|
+
}
|