@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
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
// with every field optional (Go's analog of TS `Partial<Name>`).
|
|
28
28
|
|
|
29
29
|
import {
|
|
30
|
-
cmp, each,
|
|
30
|
+
cmp, each,
|
|
31
31
|
File, Content, Folder,
|
|
32
32
|
} from '@voxgig/sdkgen'
|
|
33
33
|
|
|
34
|
-
import { canonToType, opTypeName, opRequestShape } from '@voxgig/sdkgen'
|
|
34
|
+
import { canonToType, opTypeName, opRequestShape, warnEntityTypeCollisions , deriveEntityNames } from '@voxgig/sdkgen'
|
|
35
35
|
|
|
36
36
|
import {
|
|
37
37
|
KIT,
|
|
@@ -62,32 +62,127 @@ function goField(name: string): string {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
|
|
65
|
+
// The json struct tag is the WIRE CONTRACT: it decides the key requests
|
|
66
|
+
// marshal under and the key responses populate from.
|
|
67
|
+
//
|
|
68
|
+
// Can this spec-derived name be carried in a Go json struct tag AT ALL?
|
|
69
|
+
//
|
|
70
|
+
// It cannot always be. `encoding/json`'s isValidTag accepts letters, digits and
|
|
71
|
+
// a fixed punctuation set; a name containing a double quote, a backtick or a
|
|
72
|
+
// backslash is REJECTED, and Go then silently falls back to the Go FIELD name.
|
|
73
|
+
// Verified against go1.24 — for a field named `na"me`:
|
|
74
|
+
//
|
|
75
|
+
// raw literal `json:"na"me"` -> marshals as {"na": ...} (truncated)
|
|
76
|
+
// escaped literal "json:\"na\\\"me\"" -> marshals as {"NaMe": ...} (tag ignored)
|
|
77
|
+
//
|
|
78
|
+
// So there is no encoding that preserves such a name. An earlier version here
|
|
79
|
+
// stripped the offending characters, which is worse than either: it silently
|
|
80
|
+
// changed the wire contract, marshalling under a key the API never uses and
|
|
81
|
+
// never populating from the real response key. Names that cannot be
|
|
82
|
+
// represented are skipped with a warning instead — the same treatment
|
|
83
|
+
// csharp/java give names with no legal identifier form.
|
|
84
|
+
const GO_TAG_PUNCT = '!#$%&()*+-./:;<=>?@[]^_{|}~ '
|
|
85
|
+
|
|
86
|
+
function goTaggable(name: string): boolean {
|
|
87
|
+
const s = String(name)
|
|
88
|
+
if ('' === s) {
|
|
89
|
+
return false
|
|
90
|
+
}
|
|
91
|
+
for (const c of s) {
|
|
92
|
+
if (GO_TAG_PUNCT.includes(c)) continue
|
|
93
|
+
if (/[\p{L}\p{Nd}]/u.test(c)) continue
|
|
94
|
+
return false
|
|
95
|
+
}
|
|
96
|
+
return true
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
function goTag(name: string, omitempty: boolean): string {
|
|
101
|
+
const jsonName = String(name) + (omitempty ? ',omitempty' : '')
|
|
102
|
+
return '`json:"' + jsonName + '"`'
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
|
|
65
106
|
// One Go struct field line. `optional` -> pointer + ,omitempty (Go's closest
|
|
66
|
-
// analog to an optional/absent field).
|
|
67
|
-
|
|
107
|
+
// analog to an optional/absent field). `ident` overrides the derived field
|
|
108
|
+
// identifier when goField() would collide with a sibling (see uniqueGoFields).
|
|
109
|
+
function fieldLine(name: string, sentinel: any, optional: boolean, ident?: string): string {
|
|
68
110
|
const gt = canonToType(sentinel, LANG)
|
|
69
111
|
const typ = optional ? ('*' + gt) : gt
|
|
70
|
-
|
|
71
|
-
return `\t${goField(name)} ${typ} ${tag}\n`
|
|
112
|
+
return `\t${ident || goField(name)} ${typ} ${goTag(name, optional)}\n`
|
|
72
113
|
}
|
|
73
114
|
|
|
74
115
|
|
|
116
|
+
// Collision-free Go field identifiers for one struct's members.
|
|
117
|
+
//
|
|
118
|
+
// goField() is lossy — it strips every non-alphanumeric character — so
|
|
119
|
+
// `some_field`, `some-field` and `someField` all map to `SomeField`. Emitting
|
|
120
|
+
// them into the same struct is a "field redeclared" compile error, and Go is
|
|
121
|
+
// the only target exposed to it (ts/py/… keep the raw key). Later duplicates
|
|
122
|
+
// get a numeric suffix; the FIRST occurrence keeps the natural name, and the
|
|
123
|
+
// json tag always keeps the original wire name, so behaviour is unchanged.
|
|
124
|
+
// Deterministic: members arrive in sorted-key order from opRequestShape/each.
|
|
125
|
+
function uniqueGoFields(members: { name: string }[]): string[] {
|
|
126
|
+
const taken: Record<string, boolean> = {}
|
|
127
|
+
return members.map((m) => {
|
|
128
|
+
const base = goField(m.name)
|
|
129
|
+
let ident = base
|
|
130
|
+
let n = 1
|
|
131
|
+
while (taken[ident]) {
|
|
132
|
+
n++
|
|
133
|
+
ident = base + n
|
|
134
|
+
}
|
|
135
|
+
taken[ident] = true
|
|
136
|
+
return ident
|
|
137
|
+
})
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
// Keep a member only when its name survives into a Go json tag; warn once per
|
|
142
|
+
// dropped member so the omission is visible rather than a silent contract change.
|
|
143
|
+
function skipUntaggable(member: any, typeName: string, log: any): boolean {
|
|
144
|
+
if (null == member || null == member.name) {
|
|
145
|
+
return false
|
|
146
|
+
}
|
|
147
|
+
if (goTaggable(member.name)) {
|
|
148
|
+
return true
|
|
149
|
+
}
|
|
150
|
+
if (log && log.warn) {
|
|
151
|
+
log.warn({
|
|
152
|
+
point: 'entity-types-skip-field', typeName, field: member.name,
|
|
153
|
+
note: `go: field "${member.name}" of ${typeName} cannot be carried in a ` +
|
|
154
|
+
`Go json struct tag (encoding/json rejects the name, and Go would ` +
|
|
155
|
+
`silently marshal under the field name instead); omitted from the ` +
|
|
156
|
+
`typed model (still reachable via the runtime map)`,
|
|
157
|
+
})
|
|
158
|
+
}
|
|
159
|
+
return false
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
75
164
|
const EntityTypes = cmp(function EntityTypes(props: any) {
|
|
76
165
|
const { target } = props
|
|
77
|
-
const { model } = props.ctx$
|
|
166
|
+
const { model, log } = props.ctx$
|
|
78
167
|
|
|
79
|
-
|
|
168
|
+
// only_active:false — getModelPath DROPS active:false entries by default,
|
|
169
|
+
// but the consumer scaffold (create-sdkgen Root.ts) iterates the RAW entity
|
|
170
|
+
// collection, so inactive entities still get generated entity code that
|
|
171
|
+
// references these typed names. The typed model must cover them too.
|
|
172
|
+
const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
|
|
80
173
|
// Emit for every entity that gets an entity file. Main_go.ts / Entity_go.ts
|
|
81
174
|
// iterate entities WITHOUT an `active` filter and reference the typed data
|
|
82
175
|
// type `<Name>` in every *_entity.go, so a struct is required for each or the
|
|
83
|
-
// package won't compile.
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
176
|
+
// package won't compile. deriveEntityNames() selects on `name` (always
|
|
177
|
+
// present) and derives the lazily-set PascalCase `Name` up front, so the
|
|
178
|
+
// struct set is deterministic and matches the *_entity.go set regardless of
|
|
179
|
+
// which component runs first.
|
|
180
|
+
const entityList = deriveEntityNames(entity)
|
|
181
|
+
|
|
182
|
+
// Surface duplicate generated type names (two entities with the same
|
|
183
|
+
// PascalCase Name) — they would redeclare a type in statically-typed
|
|
184
|
+
// targets. Detection only; renaming is a model-level decision.
|
|
185
|
+
warnEntityTypeCollisions(entity, log, LANG)
|
|
91
186
|
|
|
92
187
|
Folder({ name: 'entity' }, () => {
|
|
93
188
|
|
|
@@ -114,8 +209,11 @@ import "encoding/json"
|
|
|
114
209
|
Content(`// ${Name} is the typed data model for the ${ent.name} entity.
|
|
115
210
|
type ${Name} struct {
|
|
116
211
|
`)
|
|
117
|
-
fields.
|
|
118
|
-
|
|
212
|
+
const taggable = fields.filter(
|
|
213
|
+
(f: any) => skipUntaggable(f, Name, log))
|
|
214
|
+
const fieldIdents = uniqueGoFields(taggable)
|
|
215
|
+
taggable.forEach((f: any, i: number) => {
|
|
216
|
+
Content(fieldLine(f.name, f.type, false === f.req, fieldIdents[i]))
|
|
119
217
|
})
|
|
120
218
|
Content(`}
|
|
121
219
|
|
|
@@ -137,8 +235,11 @@ type ${Name} struct {
|
|
|
137
235
|
Content(`// ${typeName} is the typed request payload for ${Name}.${cap(opname)}Typed.
|
|
138
236
|
type ${typeName} struct {
|
|
139
237
|
`)
|
|
140
|
-
items.
|
|
141
|
-
|
|
238
|
+
const taggableItems = items.filter(
|
|
239
|
+
(it: any) => skipUntaggable(it, typeName, log))
|
|
240
|
+
const itemIdents = uniqueGoFields(taggableItems)
|
|
241
|
+
taggableItems.forEach((it: any, i: number) => {
|
|
242
|
+
Content(fieldLine(it.name, it.type, it.optional, itemIdents[i]))
|
|
142
243
|
})
|
|
143
244
|
Content(`}
|
|
144
245
|
|
|
@@ -4,7 +4,7 @@ import * as Path from 'node:path'
|
|
|
4
4
|
import {
|
|
5
5
|
cmp, each, camelify, names,
|
|
6
6
|
File, Content, Folder, Fragment, Line, FeatureHook, Slot,
|
|
7
|
-
entityClassName,
|
|
7
|
+
entityClassName, entityCollection,
|
|
8
8
|
} from '@voxgig/sdkgen'
|
|
9
9
|
|
|
10
10
|
import {
|
|
@@ -26,7 +26,7 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
26
26
|
// Collision-free entity CLASS name (see entityClassName): normally
|
|
27
27
|
// `<Name>Entity`, but disambiguated (e.g. `<Name>EntityClient`) when it would
|
|
28
28
|
// clash with another entity's data-type name. The DATA type stays `<Name>`.
|
|
29
|
-
const entityColl =
|
|
29
|
+
const entityColl = entityCollection(model)
|
|
30
30
|
const cls = entityClassName(entity, entityColl)
|
|
31
31
|
|
|
32
32
|
const entrep = {
|
|
@@ -42,7 +42,7 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
42
42
|
|
|
43
43
|
File({ name: entity.name + '_entity.' + target.ext }, () => {
|
|
44
44
|
|
|
45
|
-
const opnames = Object.keys(entity.op)
|
|
45
|
+
const opnames = Object.keys(entity.op || {})
|
|
46
46
|
|
|
47
47
|
// For each CRUD op: if the spec defines it, splice in the real
|
|
48
48
|
// implementation. Otherwise emit a stub that satisfies the static
|
|
@@ -4,7 +4,7 @@ import * as Path from 'node:path'
|
|
|
4
4
|
import {
|
|
5
5
|
cmp, each, names, cmap,
|
|
6
6
|
List, File, Content, Copy, Folder, Fragment, Line, FeatureHook,
|
|
7
|
-
entityClassName,
|
|
7
|
+
entityClassName, entityCollection,
|
|
8
8
|
} from '@voxgig/sdkgen'
|
|
9
9
|
|
|
10
10
|
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
} from '@voxgig/apidef'
|
|
20
20
|
|
|
21
21
|
|
|
22
|
+
import { goFeatureName } from './utility_go'
|
|
22
23
|
import { Package } from './Package_go'
|
|
23
24
|
import { Config } from './Config_go'
|
|
24
25
|
import { Gitignore } from './Gitignore_go'
|
|
@@ -82,7 +83,7 @@ const Main = cmp(async function Main(props: any) {
|
|
|
82
83
|
|
|
83
84
|
'#BuildFeatures': ({ indent }: any) => {
|
|
84
85
|
each(feature, (feat: any) => {
|
|
85
|
-
const fname =
|
|
86
|
+
const fname = goFeatureName(feat)
|
|
86
87
|
Content({ indent }, `u.FeatureAdd(s.rootctx, New${fname}FeatureFunc())
|
|
87
88
|
`)
|
|
88
89
|
})
|
|
@@ -119,7 +120,7 @@ var NewBaseFeatureFunc func() Feature
|
|
|
119
120
|
// Feature constructor function vars (non-base)
|
|
120
121
|
each(feature, (feat: any) => {
|
|
121
122
|
if (feat.name !== 'base') {
|
|
122
|
-
const fname =
|
|
123
|
+
const fname = goFeatureName(feat)
|
|
123
124
|
Content(`var New${fname}FeatureFunc func() Feature
|
|
124
125
|
|
|
125
126
|
`)
|
|
@@ -177,7 +178,7 @@ func init() {
|
|
|
177
178
|
// Register non-base feature constructors
|
|
178
179
|
each(feature, (feat: any) => {
|
|
179
180
|
if (feat.name !== 'base') {
|
|
180
|
-
const fname =
|
|
181
|
+
const fname = goFeatureName(feat)
|
|
181
182
|
Content(` core.New${fname}FeatureFunc = func() core.Feature {
|
|
182
183
|
return feature.New${fname}Feature()
|
|
183
184
|
}
|
|
@@ -188,7 +189,7 @@ func init() {
|
|
|
188
189
|
// Register entity constructors
|
|
189
190
|
each(entity, (ent: any) => {
|
|
190
191
|
Content(` core.New${ent.Name}EntityFunc = func(client *core.${model.const.Name}SDK, entopts map[string]any) core.${model.const.Name}Entity {
|
|
191
|
-
return entity.New${entityClassName(ent,
|
|
192
|
+
return entity.New${entityClassName(ent, entityCollection(model))}(client, entopts)
|
|
192
193
|
}
|
|
193
194
|
`)
|
|
194
195
|
})
|
|
@@ -219,7 +220,7 @@ func Test() *${model.const.Name}SDK { return TestSDK(nil, nil) }
|
|
|
219
220
|
|
|
220
221
|
each(feature, (feat: any) => {
|
|
221
222
|
if (feat.name !== 'base') {
|
|
222
|
-
const fname =
|
|
223
|
+
const fname = goFeatureName(feat)
|
|
223
224
|
Content(`var New${fname}Feature = feature.New${fname}Feature
|
|
224
225
|
`)
|
|
225
226
|
}
|
|
@@ -31,7 +31,7 @@ go 1.20
|
|
|
31
31
|
|
|
32
32
|
const deps: Record<string, string> = {}
|
|
33
33
|
const replaceDirs: Record<string, string> = {}
|
|
34
|
-
for (const d of collectDeps(model, target.name, target.deps)) {
|
|
34
|
+
for (const d of collectDeps(model, target.name, target.deps, ctx$.log)) {
|
|
35
35
|
// Target-level deps default to 'v0.0.0' when version is absent;
|
|
36
36
|
// feature deps require an explicit version.
|
|
37
37
|
deps[d.name] = d.source === 'target' ? (d.version || 'v0.0.0') : d.version
|
|
@@ -45,7 +45,12 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
|
|
|
45
45
|
const isMatchOp = 'load' === primaryOp || 'remove' === primaryOp
|
|
46
46
|
let testArg = 'nil'
|
|
47
47
|
if (exampleEntity && isMatchOp) {
|
|
48
|
-
|
|
48
|
+
const items = opRequestShape(exampleEntity, primaryOp).items
|
|
49
|
+
.filter((it: any) => !it.optional || it.name === idF)
|
|
50
|
+
.sort((a: any, b: any) => (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
|
|
51
|
+
testArg = 0 < items.length
|
|
52
|
+
? `map[string]any{${items.map((it: any) => `"${it.name}": ${it.name === idF ? '"test01"' : goLit(it.type)}`).join(', ')}}`
|
|
53
|
+
: 'nil'
|
|
49
54
|
} else if (exampleEntity && ('create' === primaryOp || 'update' === primaryOp)) {
|
|
50
55
|
const items = opRequestShape(exampleEntity, primaryOp).items
|
|
51
56
|
.filter((it: any) => it.name !== idF && it.name !== 'id')
|
|
@@ -75,7 +75,7 @@ const TestDirect = cmp(function TestDirect(props: any) {
|
|
|
75
75
|
? `\n\t\t\t"apikey": env["${PROJECTNAME}_APIKEY"],`
|
|
76
76
|
: ''
|
|
77
77
|
|
|
78
|
-
const opnames = Object.keys(entity.op)
|
|
78
|
+
const opnames = Object.keys(entity.op || {})
|
|
79
79
|
const hasLoad = opnames.includes('load')
|
|
80
80
|
const hasList = opnames.includes('list')
|
|
81
81
|
|
|
@@ -83,8 +83,8 @@ const TestDirect = cmp(function TestDirect(props: any) {
|
|
|
83
83
|
return
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
const loadOp = entity.op
|
|
87
|
-
const listOp = entity.op
|
|
86
|
+
const loadOp = entity.op?.load
|
|
87
|
+
const listOp = entity.op?.list
|
|
88
88
|
|
|
89
89
|
// Get load point info
|
|
90
90
|
const loadPoint = loadOp?.points?.[0]
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
buildIdNames,
|
|
25
25
|
getMatchEntries,
|
|
26
26
|
isAuthActive,
|
|
27
|
+
entityDataIdField,
|
|
27
28
|
} from '@voxgig/sdkgen'
|
|
28
29
|
|
|
29
30
|
|
|
@@ -58,7 +59,7 @@ const TestEntity = cmp(function TestEntity(props: any) {
|
|
|
58
59
|
// it only applies to entities that declare a list op. Others (e.g. Batch =
|
|
59
60
|
// create/load) have no list endpoint — make_point errors and the stream
|
|
60
61
|
// yields nothing — so skip the stream test for them.
|
|
61
|
-
const hasList = !!(entity.op && (entity.op as any)
|
|
62
|
+
const hasList = !!(entity.op && (entity.op as any)?.list)
|
|
62
63
|
|
|
63
64
|
const basicflow: ModelEntityFlow | undefined =
|
|
64
65
|
getModelPath(model, `main.${KIT}.flow.Basic${nom(entity, 'Name')}Flow`)
|
|
@@ -396,6 +397,7 @@ const generateCreate: OpGen = (ctx, step, index) => {
|
|
|
396
397
|
|
|
397
398
|
const generateList: OpGen = (ctx, step, index) => {
|
|
398
399
|
const { entity, flow } = ctx
|
|
400
|
+
const hasDataId = null != entityDataIdField(entity)
|
|
399
401
|
const ref = step.input.ref ?? entity.name + '_ref01'
|
|
400
402
|
const entvar = goVar(step.input.entvar ?? ref + '_ent')
|
|
401
403
|
const matchvar = goVar(step.input.matchvar ?? (ref + '_match' + (step.input.suffix ?? '')))
|
|
@@ -431,7 +433,9 @@ const generateList: OpGen = (ctx, step, index) => {
|
|
|
431
433
|
// Only declare ${listvar} as a real var when a downstream validator
|
|
432
434
|
// actually uses it; otherwise `_` to satisfy Go's unused-var check.
|
|
433
435
|
const allSteps = Object.values(flow.step) as any[]
|
|
434
|
-
|
|
436
|
+
// hasDataId: the ItemExists/ItemNotExists asserts (the only listvar users) are
|
|
437
|
+
// now gated on a real DATA id field, so without one the list result is unused.
|
|
438
|
+
const listvarUsed = hasDataId && !!step.valid?.some((v: any) => {
|
|
435
439
|
if ('ItemExists' !== v.apply && 'ItemNotExists' !== v.apply) return false
|
|
436
440
|
const validRef = v.def?.ref
|
|
437
441
|
return validRef && allSteps.some((s: any) => 'create' === s.op &&
|
|
@@ -460,7 +464,7 @@ const generateList: OpGen = (ctx, step, index) => {
|
|
|
460
464
|
const hasRefData = validRef && allSteps.some((s: any) => 'create' === s.op &&
|
|
461
465
|
((s.input.ref ?? entity.name + '_ref01') === validRef))
|
|
462
466
|
|
|
463
|
-
if ('ItemExists' === validator.apply && hasRefData) {
|
|
467
|
+
if ('ItemExists' === validator.apply && hasRefData && hasDataId) {
|
|
464
468
|
const refDataVar = goVar(validRef + '_data')
|
|
465
469
|
Content(`
|
|
466
470
|
foundItem := vs.Select(entityListToData(${listvar}), map[string]any{"id": ${refDataVar}["id"]})
|
|
@@ -468,7 +472,7 @@ const generateList: OpGen = (ctx, step, index) => {
|
|
|
468
472
|
t.Fatal("expected to find created entity in list")
|
|
469
473
|
}
|
|
470
474
|
`)
|
|
471
|
-
} else if ('ItemNotExists' === validator.apply && hasRefData) {
|
|
475
|
+
} else if ('ItemNotExists' === validator.apply && hasRefData && hasDataId) {
|
|
472
476
|
const refDataVar = goVar(validRef + '_data')
|
|
473
477
|
Content(`
|
|
474
478
|
notFoundItem := vs.Select(entityListToData(${listvar}), map[string]any{"id": ${refDataVar}["id"]})
|
|
@@ -642,6 +646,9 @@ const generateLoad: OpGen = (ctx, step, index) => {
|
|
|
642
646
|
|
|
643
647
|
const generateRemove: OpGen = (ctx, step, index) => {
|
|
644
648
|
const { entity, flow } = ctx
|
|
649
|
+
if (null == entityDataIdField(entity)) {
|
|
650
|
+
return
|
|
651
|
+
}
|
|
645
652
|
const ref = step.input.ref ?? entity.name + '_ref01'
|
|
646
653
|
const entvar = goVar(step.input.entvar ?? ref + '_ent')
|
|
647
654
|
const matchvar = goVar(step.input.matchvar ?? (ref + '_match' + (step.input.suffix ?? '')))
|
|
@@ -6,7 +6,8 @@ import {
|
|
|
6
6
|
camelify,
|
|
7
7
|
canonKey,
|
|
8
8
|
each,
|
|
9
|
-
|
|
9
|
+
exampleVarName,
|
|
10
|
+
names,
|
|
10
11
|
} from '@voxgig/sdkgen'
|
|
11
12
|
|
|
12
13
|
import {
|
|
@@ -77,7 +78,8 @@ function exampleValue(entity: any, op: any, paramName: string, placeholder: stri
|
|
|
77
78
|
// `type`/`range` entity must not bind a Go keyword).
|
|
78
79
|
function goVarName(name: string): string {
|
|
79
80
|
const pascal = camelify(name)
|
|
80
|
-
|
|
81
|
+
// exampleVarName also guards `client`, the doc examples' SDK-instance var.
|
|
82
|
+
return exampleVarName(pascal.charAt(0).toLowerCase() + pascal.slice(1), 'go')
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
|
|
@@ -148,7 +150,31 @@ function clean(o: any) {
|
|
|
148
150
|
}
|
|
149
151
|
|
|
150
152
|
|
|
153
|
+
|
|
154
|
+
// The Go identifier fragment for a feature's generated constructor
|
|
155
|
+
// (New<Fname>Feature / New<Fname>FeatureFunc).
|
|
156
|
+
//
|
|
157
|
+
// SHARED because the identifier is DECLARED in Main_go.ts (registry.go and the
|
|
158
|
+
// root init()) and REFERENCED in Config_go.ts (makeFeature). Two copies of the
|
|
159
|
+
// derivation is a latent undefined-identifier bug in the generated SDK: they
|
|
160
|
+
// were both `name.charAt(0).toUpperCase() + name.slice(1)`, consistently wrong
|
|
161
|
+
// for a name needing real normalisation but at least agreeing, until one side
|
|
162
|
+
// was fixed alone and `rate_limit` became NewRateLimitFeatureFunc in the
|
|
163
|
+
// registry and NewRate_limitFeatureFunc in config.
|
|
164
|
+
//
|
|
165
|
+
// Uses the jostraca-derived PascalCase `Name` (deriving it if absent), which is
|
|
166
|
+
// what Main_ts.ts uses, so a hyphenated or underscored feature name yields a
|
|
167
|
+
// legal Go identifier instead of `NewRate-limitFeatureFunc`.
|
|
168
|
+
function goFeatureName(feat: any): string {
|
|
169
|
+
if (null == feat.Name) {
|
|
170
|
+
names(feat, feat.name)
|
|
171
|
+
}
|
|
172
|
+
return feat.Name
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
|
|
151
176
|
export {
|
|
177
|
+
goFeatureName,
|
|
152
178
|
clean,
|
|
153
179
|
exampleValue,
|
|
154
180
|
formatGoMap,
|