@voxgig/sdkgen 1.3.14 → 1.3.17

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.
Files changed (398) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/action.js.map +1 -1
  3. package/dist/action/feature.js.map +1 -1
  4. package/dist/action/target.js.map +1 -1
  5. package/dist/cmp/AgentGuide.js.map +1 -1
  6. package/dist/cmp/AgentGuideContent.js.map +1 -1
  7. package/dist/cmp/AgentGuideFeature.js.map +1 -1
  8. package/dist/cmp/AgentGuideTop.js.map +1 -1
  9. package/dist/cmp/Changelog.js.map +1 -1
  10. package/dist/cmp/Deploy.js.map +1 -1
  11. package/dist/cmp/Entity.js.map +1 -1
  12. package/dist/cmp/Feature.js.map +1 -1
  13. package/dist/cmp/FeatureHook.js.map +1 -1
  14. package/dist/cmp/License.js.map +1 -1
  15. package/dist/cmp/Main.js.map +1 -1
  16. package/dist/cmp/Readme.js.map +1 -1
  17. package/dist/cmp/ReadmeEntity.js.map +1 -1
  18. package/dist/cmp/ReadmeErrors.js +1 -1
  19. package/dist/cmp/ReadmeErrors.js.map +1 -1
  20. package/dist/cmp/ReadmeExplanation.js +2 -2
  21. package/dist/cmp/ReadmeExplanation.js.map +1 -1
  22. package/dist/cmp/ReadmeHowto.js.map +1 -1
  23. package/dist/cmp/ReadmeInstall.js.map +1 -1
  24. package/dist/cmp/ReadmeIntro.js.map +1 -1
  25. package/dist/cmp/ReadmeModel.js.map +1 -1
  26. package/dist/cmp/ReadmeOptions.js.map +1 -1
  27. package/dist/cmp/ReadmeQuick.js.map +1 -1
  28. package/dist/cmp/ReadmeRef.js.map +1 -1
  29. package/dist/cmp/ReadmeTop.js +1 -1
  30. package/dist/cmp/ReadmeTop.js.map +1 -1
  31. package/dist/cmp/Security.js.map +1 -1
  32. package/dist/cmp/Test.js.map +1 -1
  33. package/dist/helpers/buildIdNames.js.map +1 -1
  34. package/dist/helpers/canonType.d.ts +3 -2
  35. package/dist/helpers/canonType.js +107 -24
  36. package/dist/helpers/canonType.js.map +1 -1
  37. package/dist/helpers/collectDeps.js.map +1 -1
  38. package/dist/helpers/getMatchEntries.js.map +1 -1
  39. package/dist/helpers/naming.d.ts +5 -1
  40. package/dist/helpers/naming.js +37 -0
  41. package/dist/helpers/naming.js.map +1 -1
  42. package/dist/helpers/opExample.d.ts +1 -1
  43. package/dist/helpers/opExample.js +37 -20
  44. package/dist/helpers/opExample.js.map +1 -1
  45. package/dist/helpers/opShape.d.ts +3 -1
  46. package/dist/helpers/opShape.js +91 -3
  47. package/dist/helpers/opShape.js.map +1 -1
  48. package/dist/helpers/packageMeta.js.map +1 -1
  49. package/dist/sdkgen.d.ts +3 -3
  50. package/dist/sdkgen.js +7 -1
  51. package/dist/sdkgen.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/dist/utility.js.map +1 -1
  55. package/package.json +7 -6
  56. package/project/.sdk/model/target/haskell.aontu +6 -3
  57. package/project/.sdk/model/target/zig.aontu +12 -2
  58. package/project/.sdk/src/cmp/c/Config_c.ts +16 -4
  59. package/project/.sdk/src/cmp/c/EntityTypes_c.ts +168 -0
  60. package/project/.sdk/src/cmp/c/Main_c.ts +4 -0
  61. package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +192 -0
  62. package/project/.sdk/src/cmp/c/ReadmeExamplesTest_c.ts +152 -0
  63. package/project/.sdk/src/cmp/c/ReadmeExplanation_c.ts +55 -0
  64. package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +168 -0
  65. package/project/.sdk/src/cmp/c/ReadmeInstall_c.ts +52 -0
  66. package/project/.sdk/src/cmp/c/ReadmeIntro_c.ts +67 -0
  67. package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +151 -0
  68. package/project/.sdk/src/cmp/c/ReadmeOptions_c.ts +65 -0
  69. package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +225 -0
  70. package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +398 -0
  71. package/project/.sdk/src/cmp/c/ReadmeTopHowto_c.ts +24 -0
  72. package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +104 -0
  73. package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +86 -0
  74. package/project/.sdk/src/cmp/c/TestEntity_c.ts +10 -0
  75. package/project/.sdk/src/cmp/c/Test_c.ts +4 -0
  76. package/project/.sdk/src/cmp/c/utility_c.ts +8 -2
  77. package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +182 -0
  78. package/project/.sdk/src/cmp/clojure/ReadmeExamplesTest_clojure.ts +54 -0
  79. package/project/.sdk/src/cmp/clojure/ReadmeExplanation_clojure.ts +44 -0
  80. package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +144 -0
  81. package/project/.sdk/src/cmp/clojure/ReadmeInstall_clojure.ts +51 -0
  82. package/project/.sdk/src/cmp/clojure/ReadmeIntro_clojure.ts +66 -0
  83. package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +156 -0
  84. package/project/.sdk/src/cmp/clojure/ReadmeOptions_clojure.ts +61 -0
  85. package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +210 -0
  86. package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +409 -0
  87. package/project/.sdk/src/cmp/clojure/ReadmeTopHowto_clojure.ts +24 -0
  88. package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +98 -0
  89. package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +78 -0
  90. package/project/.sdk/src/cmp/clojure/TestDirect_clojure.ts +58 -0
  91. package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +79 -0
  92. package/project/.sdk/src/cmp/clojure/Test_clojure.ts +21 -65
  93. package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +174 -0
  94. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +5 -0
  95. package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +170 -0
  96. package/project/.sdk/src/cmp/cpp/ReadmeExplanation_cpp.ts +45 -0
  97. package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +139 -0
  98. package/project/.sdk/src/cmp/cpp/ReadmeInstall_cpp.ts +42 -0
  99. package/project/.sdk/src/cmp/cpp/ReadmeIntro_cpp.ts +69 -0
  100. package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +155 -0
  101. package/project/.sdk/src/cmp/cpp/ReadmeOptions_cpp.ts +62 -0
  102. package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +234 -0
  103. package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +387 -0
  104. package/project/.sdk/src/cmp/cpp/ReadmeTopHowto_cpp.ts +24 -0
  105. package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +95 -0
  106. package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +70 -0
  107. package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +5 -1
  108. package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +196 -0
  109. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +6 -0
  110. package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +174 -0
  111. package/project/.sdk/src/cmp/csharp/ReadmeExamplesTest_csharp.ts +198 -0
  112. package/project/.sdk/src/cmp/csharp/ReadmeExplanation_csharp.ts +42 -0
  113. package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +168 -0
  114. package/project/.sdk/src/cmp/csharp/ReadmeInstall_csharp.ts +41 -0
  115. package/project/.sdk/src/cmp/csharp/ReadmeIntro_csharp.ts +65 -0
  116. package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +148 -0
  117. package/project/.sdk/src/cmp/csharp/ReadmeOptions_csharp.ts +60 -0
  118. package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +219 -0
  119. package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +390 -0
  120. package/project/.sdk/src/cmp/csharp/ReadmeTopHowto_csharp.ts +25 -0
  121. package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +92 -0
  122. package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +77 -0
  123. package/project/.sdk/src/cmp/csharp/Test_csharp.ts +4 -0
  124. package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +43 -29
  125. package/project/.sdk/src/cmp/dart/Entity_dart.ts +8 -0
  126. package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +166 -0
  127. package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +238 -0
  128. package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +53 -0
  129. package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +151 -0
  130. package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +59 -0
  131. package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +65 -0
  132. package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +151 -0
  133. package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +63 -0
  134. package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +214 -0
  135. package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +381 -0
  136. package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +24 -0
  137. package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +95 -0
  138. package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +78 -0
  139. package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +52 -0
  140. package/project/.sdk/src/cmp/dart/Test_dart.ts +6 -0
  141. package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +1 -3
  142. package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +1 -40
  143. package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +3 -3
  144. package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +165 -0
  145. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +4 -0
  146. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +3 -1
  147. package/project/.sdk/src/cmp/elixir/ReadmeEntity_elixir.ts +163 -0
  148. package/project/.sdk/src/cmp/elixir/ReadmeExamplesTest_elixir.ts +126 -0
  149. package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +55 -0
  150. package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +149 -0
  151. package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +67 -0
  152. package/project/.sdk/src/cmp/elixir/ReadmeIntro_elixir.ts +66 -0
  153. package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +150 -0
  154. package/project/.sdk/src/cmp/elixir/ReadmeOptions_elixir.ts +62 -0
  155. package/project/.sdk/src/cmp/elixir/ReadmeQuick_elixir.ts +198 -0
  156. package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +333 -0
  157. package/project/.sdk/src/cmp/elixir/ReadmeTopHowto_elixir.ts +26 -0
  158. package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +79 -0
  159. package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +68 -0
  160. package/project/.sdk/src/cmp/elixir/Test_elixir.ts +4 -0
  161. package/project/.sdk/src/cmp/elixir/fragment/EntityCreateOp.fragment.ex +4 -0
  162. package/project/.sdk/src/cmp/elixir/fragment/EntityListOp.fragment.ex +4 -0
  163. package/project/.sdk/src/cmp/elixir/fragment/EntityLoadOp.fragment.ex +4 -0
  164. package/project/.sdk/src/cmp/elixir/fragment/EntityRemoveOp.fragment.ex +4 -0
  165. package/project/.sdk/src/cmp/elixir/fragment/EntityUpdateOp.fragment.ex +4 -0
  166. package/project/.sdk/src/cmp/elixir/utility_elixir.ts +32 -0
  167. package/project/.sdk/src/cmp/go/EntityTypes_go.ts +12 -3
  168. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +6 -1
  169. package/project/.sdk/src/cmp/go/TestEntity_go.ts +10 -3
  170. package/project/.sdk/src/cmp/go/utility_go.ts +3 -2
  171. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +240 -43
  172. package/project/.sdk/src/cmp/go-cli/fragment/main.fragment.go +27 -5
  173. package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +191 -30
  174. package/project/.sdk/src/cmp/haskell/ReadmeEntity_haskell.ts +181 -0
  175. package/project/.sdk/src/cmp/haskell/ReadmeExamplesTest_haskell.ts +125 -0
  176. package/project/.sdk/src/cmp/haskell/ReadmeExplanation_haskell.ts +48 -0
  177. package/project/.sdk/src/cmp/haskell/ReadmeHowto_haskell.ts +168 -0
  178. package/project/.sdk/src/cmp/haskell/ReadmeInstall_haskell.ts +51 -0
  179. package/project/.sdk/src/cmp/haskell/ReadmeIntro_haskell.ts +67 -0
  180. package/project/.sdk/src/cmp/haskell/ReadmeModel_haskell.ts +160 -0
  181. package/project/.sdk/src/cmp/haskell/ReadmeOptions_haskell.ts +74 -0
  182. package/project/.sdk/src/cmp/haskell/ReadmeQuick_haskell.ts +237 -0
  183. package/project/.sdk/src/cmp/haskell/ReadmeRef_haskell.ts +405 -0
  184. package/project/.sdk/src/cmp/haskell/ReadmeTopHowto_haskell.ts +31 -0
  185. package/project/.sdk/src/cmp/haskell/ReadmeTopQuick_haskell.ts +104 -0
  186. package/project/.sdk/src/cmp/haskell/ReadmeTopTest_haskell.ts +80 -0
  187. package/project/.sdk/src/cmp/haskell/Test_haskell.ts +27 -2
  188. package/project/.sdk/src/cmp/java/EntityTypes_java.ts +207 -0
  189. package/project/.sdk/src/cmp/java/Main_java.ts +6 -0
  190. package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +175 -0
  191. package/project/.sdk/src/cmp/java/ReadmeExamplesTest_java.ts +186 -0
  192. package/project/.sdk/src/cmp/java/ReadmeExplanation_java.ts +46 -0
  193. package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +156 -0
  194. package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +52 -0
  195. package/project/.sdk/src/cmp/java/ReadmeIntro_java.ts +66 -0
  196. package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +150 -0
  197. package/project/.sdk/src/cmp/java/ReadmeOptions_java.ts +61 -0
  198. package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +230 -0
  199. package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +388 -0
  200. package/project/.sdk/src/cmp/java/ReadmeTopHowto_java.ts +23 -0
  201. package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +103 -0
  202. package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +77 -0
  203. package/project/.sdk/src/cmp/java/Test_java.ts +4 -0
  204. package/project/.sdk/src/cmp/js/EntityTypes_js.ts +25 -8
  205. package/project/.sdk/src/cmp/js/MainEntity_js.ts +4 -2
  206. package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +4 -4
  207. package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +13 -4
  208. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +4 -4
  209. package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +5 -5
  210. package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +4 -4
  211. package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +4 -4
  212. package/project/.sdk/src/cmp/js/TestDirect_js.ts +6 -5
  213. package/project/.sdk/src/cmp/js/TestEntity_js.ts +7 -2
  214. package/project/.sdk/src/cmp/js/fragment/Entity.test.fragment.js +0 -31
  215. package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +201 -0
  216. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +6 -0
  217. package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +175 -0
  218. package/project/.sdk/src/cmp/kotlin/ReadmeExamplesTest_kotlin.ts +173 -0
  219. package/project/.sdk/src/cmp/kotlin/ReadmeExplanation_kotlin.ts +47 -0
  220. package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +154 -0
  221. package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +50 -0
  222. package/project/.sdk/src/cmp/kotlin/ReadmeIntro_kotlin.ts +66 -0
  223. package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +150 -0
  224. package/project/.sdk/src/cmp/kotlin/ReadmeOptions_kotlin.ts +61 -0
  225. package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +230 -0
  226. package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +387 -0
  227. package/project/.sdk/src/cmp/kotlin/ReadmeTopHowto_kotlin.ts +23 -0
  228. package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +104 -0
  229. package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +77 -0
  230. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +4 -0
  231. package/project/.sdk/src/cmp/lua/Config_lua.ts +1 -1
  232. package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +19 -5
  233. package/project/.sdk/src/cmp/lua/Main_lua.ts +14 -2
  234. package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +2 -2
  235. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +6 -1
  236. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +3 -3
  237. package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +2 -2
  238. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +2 -2
  239. package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +7 -2
  240. package/project/.sdk/src/cmp/lua/Test_lua.ts +1 -1
  241. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +2 -0
  242. package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +180 -0
  243. package/project/.sdk/src/cmp/ocaml/ReadmeExamplesTest_ocaml.ts +111 -0
  244. package/project/.sdk/src/cmp/ocaml/ReadmeExplanation_ocaml.ts +46 -0
  245. package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +147 -0
  246. package/project/.sdk/src/cmp/ocaml/ReadmeInstall_ocaml.ts +44 -0
  247. package/project/.sdk/src/cmp/ocaml/ReadmeIntro_ocaml.ts +68 -0
  248. package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +155 -0
  249. package/project/.sdk/src/cmp/ocaml/ReadmeOptions_ocaml.ts +59 -0
  250. package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +205 -0
  251. package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +402 -0
  252. package/project/.sdk/src/cmp/ocaml/ReadmeTopHowto_ocaml.ts +25 -0
  253. package/project/.sdk/src/cmp/ocaml/ReadmeTopQuick_ocaml.ts +86 -0
  254. package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +79 -0
  255. package/project/.sdk/src/cmp/ocaml/Test_ocaml.ts +4 -0
  256. package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +181 -0
  257. package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +354 -0
  258. package/project/.sdk/src/cmp/perl/ReadmeExplanation_perl.ts +43 -0
  259. package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +149 -0
  260. package/project/.sdk/src/cmp/perl/ReadmeInstall_perl.ts +47 -0
  261. package/project/.sdk/src/cmp/perl/ReadmeIntro_perl.ts +66 -0
  262. package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +150 -0
  263. package/project/.sdk/src/cmp/perl/ReadmeOptions_perl.ts +59 -0
  264. package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +216 -0
  265. package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +399 -0
  266. package/project/.sdk/src/cmp/perl/ReadmeTopHowto_perl.ts +24 -0
  267. package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +91 -0
  268. package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +83 -0
  269. package/project/.sdk/src/cmp/perl/Test_perl.ts +4 -0
  270. package/project/.sdk/src/cmp/php/EntityTypes_php.ts +23 -6
  271. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +6 -1
  272. package/project/.sdk/src/cmp/php/TestEntity_php.ts +7 -2
  273. package/project/.sdk/src/cmp/py/EntityTypes_py.ts +32 -7
  274. package/project/.sdk/src/cmp/py/Entity_py.ts +2 -10
  275. package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +2 -2
  276. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +8 -3
  277. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +3 -3
  278. package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +2 -2
  279. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +2 -2
  280. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +2 -2
  281. package/project/.sdk/src/cmp/py/TestEntity_py.ts +7 -2
  282. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +19 -5
  283. package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +2 -2
  284. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +8 -3
  285. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +3 -3
  286. package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +2 -2
  287. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +2 -2
  288. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +2 -2
  289. package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +7 -2
  290. package/project/.sdk/src/cmp/rust/EntityBase_rust.ts +4 -0
  291. package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +152 -0
  292. package/project/.sdk/src/cmp/rust/Entity_rust.ts +1 -1
  293. package/project/.sdk/src/cmp/rust/Main_rust.ts +5 -0
  294. package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +163 -0
  295. package/project/.sdk/src/cmp/rust/ReadmeExamplesTest_rust.ts +132 -0
  296. package/project/.sdk/src/cmp/rust/ReadmeExplanation_rust.ts +44 -0
  297. package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +142 -0
  298. package/project/.sdk/src/cmp/rust/ReadmeInstall_rust.ts +49 -0
  299. package/project/.sdk/src/cmp/rust/ReadmeIntro_rust.ts +66 -0
  300. package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +153 -0
  301. package/project/.sdk/src/cmp/rust/ReadmeOptions_rust.ts +60 -0
  302. package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +212 -0
  303. package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +384 -0
  304. package/project/.sdk/src/cmp/rust/ReadmeTopHowto_rust.ts +24 -0
  305. package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +95 -0
  306. package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +81 -0
  307. package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +10 -0
  308. package/project/.sdk/src/cmp/rust/Test_rust.ts +4 -0
  309. package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +202 -0
  310. package/project/.sdk/src/cmp/scala/Main_scala.ts +6 -0
  311. package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +175 -0
  312. package/project/.sdk/src/cmp/scala/ReadmeExamplesTest_scala.ts +163 -0
  313. package/project/.sdk/src/cmp/scala/ReadmeExplanation_scala.ts +49 -0
  314. package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +155 -0
  315. package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +58 -0
  316. package/project/.sdk/src/cmp/scala/ReadmeIntro_scala.ts +66 -0
  317. package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +150 -0
  318. package/project/.sdk/src/cmp/scala/ReadmeOptions_scala.ts +61 -0
  319. package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +230 -0
  320. package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +388 -0
  321. package/project/.sdk/src/cmp/scala/ReadmeTopHowto_scala.ts +23 -0
  322. package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +104 -0
  323. package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +77 -0
  324. package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +38 -10
  325. package/project/.sdk/src/cmp/scala/Test_scala.ts +8 -0
  326. package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +152 -0
  327. package/project/.sdk/src/cmp/swift/Main_swift.ts +5 -0
  328. package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +176 -0
  329. package/project/.sdk/src/cmp/swift/ReadmeExamplesTest_swift.ts +170 -0
  330. package/project/.sdk/src/cmp/swift/ReadmeExplanation_swift.ts +49 -0
  331. package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +159 -0
  332. package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +58 -0
  333. package/project/.sdk/src/cmp/swift/ReadmeIntro_swift.ts +64 -0
  334. package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +149 -0
  335. package/project/.sdk/src/cmp/swift/ReadmeOptions_swift.ts +62 -0
  336. package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +232 -0
  337. package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +387 -0
  338. package/project/.sdk/src/cmp/swift/ReadmeTopHowto_swift.ts +24 -0
  339. package/project/.sdk/src/cmp/swift/ReadmeTopQuick_swift.ts +105 -0
  340. package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +77 -0
  341. package/project/.sdk/src/cmp/swift/Test_swift.ts +4 -0
  342. package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +19 -5
  343. package/project/.sdk/src/cmp/ts/MainEntity_ts.ts +4 -2
  344. package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +4 -4
  345. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +14 -4
  346. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +29 -11
  347. package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +5 -5
  348. package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +4 -4
  349. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +4 -4
  350. package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +13 -11
  351. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +18 -2
  352. package/project/.sdk/src/cmp/zig/Config_zig.ts +22 -4
  353. package/project/.sdk/src/cmp/zig/Entity_zig.ts +1 -1
  354. package/project/.sdk/src/cmp/zig/Main_zig.ts +10 -4
  355. package/project/.sdk/src/cmp/zig/Package_zig.ts +53 -0
  356. package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +188 -0
  357. package/project/.sdk/src/cmp/zig/ReadmeExamplesTest_zig.ts +58 -0
  358. package/project/.sdk/src/cmp/zig/ReadmeExplanation_zig.ts +45 -0
  359. package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +143 -0
  360. package/project/.sdk/src/cmp/zig/ReadmeInstall_zig.ts +54 -0
  361. package/project/.sdk/src/cmp/zig/ReadmeIntro_zig.ts +66 -0
  362. package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +152 -0
  363. package/project/.sdk/src/cmp/zig/ReadmeOptions_zig.ts +60 -0
  364. package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +211 -0
  365. package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +400 -0
  366. package/project/.sdk/src/cmp/zig/ReadmeTopHowto_zig.ts +24 -0
  367. package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +96 -0
  368. package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +82 -0
  369. package/project/.sdk/src/cmp/zig/TestDirect_zig.ts +66 -0
  370. package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +79 -0
  371. package/project/.sdk/src/cmp/zig/Test_zig.ts +17 -61
  372. package/project/.sdk/tm/clojure/src/voxgig/struct.clj +1 -1
  373. package/project/.sdk/tm/cpp/test/feature_test.cpp +19 -0
  374. package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +4 -1
  375. package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +7 -1
  376. package/project/.sdk/tm/elixir/lib/utility/struct/voxgig_struct.ex +1 -1
  377. package/project/.sdk/tm/elixir/test/primary_utility_test.exs +7 -1
  378. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +3 -1
  379. package/project/.sdk/tm/haskell/test/Harness.hs +8 -3
  380. package/project/.sdk/tm/js/Makefile +1 -1
  381. package/project/.sdk/tm/js/jsconfig.json +12 -0
  382. package/project/.sdk/tm/ocaml/Makefile +5 -1
  383. package/project/.sdk/tm/php/utility/struct/Struct.php +1 -1
  384. package/project/.sdk/tm/py/utility/voxgig_struct/voxgig_struct.py +1 -1
  385. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +1 -1
  386. package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +8 -59
  387. package/project/.sdk/tm/ts/Makefile +1 -1
  388. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +1 -1
  389. package/src/cmp/ReadmeErrors.ts +2 -2
  390. package/src/cmp/ReadmeExplanation.ts +3 -3
  391. package/src/cmp/ReadmeTop.ts +2 -2
  392. package/src/helpers/canonType.ts +116 -25
  393. package/src/helpers/naming.ts +47 -0
  394. package/src/helpers/opExample.ts +43 -20
  395. package/src/helpers/opShape.ts +102 -3
  396. package/src/sdkgen.ts +8 -2
  397. package/src/tsconfig.json +2 -0
  398. package/project/.sdk/tm/zig/build.zig.zon +0 -11
@@ -0,0 +1,400 @@
1
+
2
+ import { cmp, each, Content, canonKey, File, isAuthActive, 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
+ function zigType(type: any): string {
14
+ const k = canonKey(type)
15
+ if ('STRING' === k) return '[]const u8'
16
+ if ('INTEGER' === k) return 'i64'
17
+ if ('NUMBER' === k) return 'f64'
18
+ if ('BOOLEAN' === k) return 'bool'
19
+ if ('ARRAY' === k) return 'Value (array)'
20
+ if ('OBJECT' === k) return 'Value (object)'
21
+ return 'Value'
22
+ }
23
+
24
+
25
+ // A type-correct zig expression constructing a voxgig struct Value.
26
+ function zigLit(type: any, placeholder: string = 'example'): string {
27
+ const k = canonKey(type)
28
+ if ('INTEGER' === k || 'NUMBER' === k) return 'h.vnum(1)'
29
+ if ('BOOLEAN' === k) return 'h.vbool(true)'
30
+ if ('ARRAY' === k) return 'h.olist()'
31
+ if ('OBJECT' === k) return 'h.omap()'
32
+ return `h.vstr("${placeholder}")`
33
+ }
34
+
35
+
36
+ const ReadmeRef = cmp(function ReadmeRef(props: any) {
37
+ const { target } = props
38
+ const { model } = props.ctx$
39
+
40
+ const entity = getModelPath(model, `main.${KIT}.entity`)
41
+ const feature = getModelPath(model, `main.${KIT}.feature`)
42
+
43
+ const publishedEntities = each(entity).filter((e: any) => e.active !== false)
44
+
45
+ const OP_SIGNATURES: Record<string, { sig: string, desc: string }> = {
46
+ load: {
47
+ sig: 'load(reqmatch: Value, ctrl: Value) OpResult',
48
+ desc: 'Load a single entity matching the given criteria. `.ok` carries the entity data, `.err` the branded error.',
49
+ },
50
+ list: {
51
+ sig: 'list(reqmatch: Value, ctrl: Value) OpResult',
52
+ desc: 'List entities matching the given criteria. The match is optional — pass `h.vnull()` to list all records. `.ok` is a `Value` array.',
53
+ },
54
+ create: {
55
+ sig: 'create(reqdata: Value, ctrl: Value) OpResult',
56
+ desc: 'Create a new entity with the given data. `.ok` carries the created entity data.',
57
+ },
58
+ update: {
59
+ sig: 'update(reqdata: Value, ctrl: Value) OpResult',
60
+ desc: 'Update an existing entity. The data must include the entity id. `.ok` carries the updated entity data.',
61
+ },
62
+ remove: {
63
+ sig: 'remove(reqmatch: Value, ctrl: Value) OpResult',
64
+ desc: 'Remove the entity matching the given criteria. `.err` on failure.',
65
+ },
66
+ }
67
+
68
+
69
+ File({ name: 'REFERENCE.md' }, () => {
70
+
71
+ Content(`# ${model.Name} ${target.title} SDK Reference
72
+
73
+ Complete API reference for the ${model.Name} ${target.title} SDK.
74
+
75
+
76
+ ## ${model.Name}SDK
77
+
78
+ ### Constructor
79
+
80
+ `)
81
+
82
+ Content(`\`\`\`zig
83
+ const sdk = @import("sdk");
84
+ const h = sdk.h;
85
+
86
+ const client = sdk.${model.const.Name}SDK.new(options);
87
+ \`\`\`
88
+
89
+ Create a new SDK client instance. \`options\` is a \`Value\` map
90
+ (\`h.vnull()\` for none).
91
+
92
+ **Parameters:**
93
+
94
+ | Key | Value type | Description |
95
+ | --- | --- | --- |
96
+ ${isAuthActive(model) ? '| `apikey` | `string` | API key for authentication. |\n' : ''}| \`base\` | \`string\` | Base URL for API requests. |
97
+ | \`prefix\` | \`string\` | URL prefix appended after base. |
98
+ | \`suffix\` | \`string\` | URL suffix appended after path. |
99
+ | \`headers\` | \`map\` | Custom headers for all requests. |
100
+ | \`feature\` | \`map\` | Feature configuration. |
101
+ | \`system\` | \`map\` | System overrides. |
102
+
103
+ `)
104
+
105
+
106
+ Content(`
107
+ ### Static Functions
108
+
109
+ `)
110
+
111
+ Content(`#### \`test_sdk(testopts: Value, sdkopts: Value) *${model.const.Name}SDK\`
112
+
113
+ Create a test client with mock features active. Both arguments may be
114
+ \`h.vnull()\`.
115
+
116
+ \`\`\`zig
117
+ const client = sdk.test_sdk(h.vnull(), h.vnull());
118
+ \`\`\`
119
+
120
+ `)
121
+
122
+
123
+ Content(`
124
+ ### Instance Methods
125
+
126
+ `)
127
+
128
+
129
+ // Entity factory methods
130
+ publishedEntities.map((ent: any) => {
131
+ Content(`#### \`${zigVarName(ent.name)}(entopts: Value) *${ent.Name}Entity\`
132
+
133
+ Create a new \`${ent.Name}Entity\` instance. Pass \`h.vnull()\` for no
134
+ initial options.
135
+
136
+ `)
137
+ })
138
+
139
+
140
+ Content(`#### \`options_map() Value\`
141
+
142
+ Return a deep copy of the current SDK options.
143
+
144
+ #### \`get_utility() *Utility\`
145
+
146
+ Return a copy of the SDK utility object.
147
+
148
+ #### \`direct(fetchargs: Value) Value\`
149
+
150
+ Make a direct HTTP request to any API endpoint. Returns a result \`Value\`
151
+ map with \`ok\`, \`status\`, \`headers\`, and \`data\` (or \`err\` on failure).
152
+ This escape hatch returns a map even on a non-2xx response — branch on
153
+ \`h.get_bool(result, "ok")\`.
154
+
155
+ **Parameters (\`fetchargs\` map keys):**
156
+
157
+ | Key | Value type | Description |
158
+ | --- | --- | --- |
159
+ | \`path\` | \`string\` | URL path with optional \`{param}\` placeholders. |
160
+ | \`method\` | \`string\` | HTTP method (default: \`"GET"\`). |
161
+ | \`params\` | \`map\` | Path parameter values. |
162
+ | \`query\` | \`map\` | Query string parameters. |
163
+ | \`headers\` | \`map\` | Request headers (merged with defaults). |
164
+ | \`body\` | \`any\` | Request body (maps are JSON-serialized). |
165
+
166
+ #### \`prepare(fetchargs: Value) E!Value\`
167
+
168
+ Prepare a fetch definition without sending. Returns the fetchdef (use
169
+ \`catch\`/\`try\` to handle the error union).
170
+
171
+ `)
172
+
173
+
174
+ // Entity reference sections
175
+ publishedEntities.map((ent: any) => {
176
+ const opnames = Object.keys(ent.op || {})
177
+ const fields = ent.fields || []
178
+ const idF = entityIdField(ent)
179
+ const eVar = zigVarName(ent.name)
180
+ const method = zigVarName(ent.name)
181
+
182
+ Content(`
183
+ ---
184
+
185
+ ## ${ent.Name}Entity
186
+
187
+ `)
188
+
189
+ if (ent.short) {
190
+ Content(`${ent.short}
191
+
192
+ `)
193
+ }
194
+
195
+ Content(`\`\`\`zig
196
+ const ${eVar} = client.${method}(h.vnull());
197
+ \`\`\`
198
+
199
+ `)
200
+
201
+
202
+ // Field schema
203
+ if (fields.length > 0) {
204
+ Content(`### Fields
205
+
206
+ | Field | Type | Required | Description |
207
+ | --- | --- | --- | --- |
208
+ `)
209
+ each(fields, (field: any) => {
210
+ const req = field.req ? 'Yes' : 'No'
211
+ const desc = field.short || ''
212
+ Content(`| \`${field.name}\` | \`${zigType(field.type)}\` | ${req} | ${desc} |
213
+ `)
214
+ })
215
+
216
+ Content(`
217
+ `)
218
+
219
+ // Field operations breakdown
220
+ const hasFieldOps = fields.some((f: any) => f.op && Object.keys(f.op).length > 0)
221
+ if (hasFieldOps) {
222
+ const opcols = ['load', 'list', 'create', 'update', 'remove']
223
+ .filter((op: string) => opnames.includes(op) && ent.op[op]?.active !== false)
224
+ Content(`### Field Usage by Operation
225
+
226
+ | Field | ${opcols.join(' | ')} |
227
+ | --- | ${opcols.map(() => '---').join(' | ')} |
228
+ `)
229
+ each(fields, (field: any) => {
230
+ const fops = field.op || {}
231
+ const cols = opcols.map((op: string) => {
232
+ const fop = fops[op]
233
+ if (null == fop) return '-'
234
+ if (fop.active === false) return '-'
235
+ return 'Yes'
236
+ })
237
+ Content(`| \`${field.name}\` | ${cols.join(' | ')} |
238
+ `)
239
+ })
240
+
241
+ Content(`
242
+ `)
243
+ }
244
+ }
245
+
246
+
247
+ // Operation details
248
+ if (opnames.length > 0) {
249
+ Content(`### Operations
250
+
251
+ `)
252
+
253
+ opnames.map((opname: string) => {
254
+ const info = OP_SIGNATURES[opname]
255
+ if (!info) return
256
+
257
+ Content(`#### \`${info.sig}\`
258
+
259
+ ${info.desc}
260
+
261
+ `)
262
+
263
+ if ('load' === opname || 'remove' === opname) {
264
+ const matchItems = opRequestShape(ent, opname).items
265
+ .filter((it: any) => !it.optional || it.name === idF)
266
+ .sort((a: any, b: any) =>
267
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
268
+ const arg = 0 < matchItems.length
269
+ ? `h.jo(&.{${matchItems.map((it: any) =>
270
+ `.{ "${it.name}", ${zigLit(it.type,
271
+ it.name === idF ? ent.name + '_id' : it.name)} }`).join(', ')}})`
272
+ : 'h.vnull()'
273
+ Content(`\`\`\`zig
274
+ switch (client.${method}(h.vnull()).${opname}(${arg}, h.vnull())) {
275
+ .ok => |result| std.debug.print("{s}\\n", .{h.stringify(result)}),
276
+ .err => |e| std.debug.print("${opname} failed: {s}\\n", .{e.msg}),
277
+ }
278
+ \`\`\`
279
+
280
+ `)
281
+ }
282
+ else if ('list' === opname) {
283
+ Content(`\`\`\`zig
284
+ switch (client.${method}(h.vnull()).list(h.vnull(), h.vnull())) {
285
+ .ok => |results| std.debug.print("{s}\\n", .{h.stringify(results)}),
286
+ .err => |e| std.debug.print("list failed: {s}\\n", .{e.msg}),
287
+ }
288
+ \`\`\`
289
+
290
+ `)
291
+ }
292
+ else if ('create' === opname) {
293
+ const createItems = opRequestShape(ent, 'create').items
294
+ .filter((it: any) => !it.optional)
295
+ Content(`\`\`\`zig
296
+ switch (client.${method}(h.vnull()).create(h.jo(&.{
297
+ `)
298
+ createItems.map((it: any) => {
299
+ Content(` .{ "${it.name}", ${zigLit(it.type, 'example_' + it.name)} }, // ${zigType(it.type)}
300
+ `)
301
+ })
302
+ Content(`}), h.vnull())) {
303
+ .ok => |result| std.debug.print("{s}\\n", .{h.stringify(result)}),
304
+ .err => |e| std.debug.print("create failed: {s}\\n", .{e.msg}),
305
+ }
306
+ \`\`\`
307
+
308
+ `)
309
+ }
310
+ else if ('update' === opname) {
311
+ const updateItems = opRequestShape(ent, 'update').items
312
+ .filter((it: any) => !it.optional || it.name === idF)
313
+ .sort((a: any, b: any) =>
314
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
315
+ const updateLines = updateItems.map((it: any) =>
316
+ ` .{ "${it.name}", ${zigLit(it.type,
317
+ it.name === idF ? ent.name + '_id' : it.name)} },\n`).join('')
318
+ Content(`\`\`\`zig
319
+ switch (client.${method}(h.vnull()).update(h.jo(&.{
320
+ ${updateLines} // Fields to update
321
+ }), h.vnull())) {
322
+ .ok => |result| std.debug.print("{s}\\n", .{h.stringify(result)}),
323
+ .err => |e| std.debug.print("update failed: {s}\\n", .{e.msg}),
324
+ }
325
+ \`\`\`
326
+
327
+ `)
328
+ }
329
+ })
330
+ }
331
+
332
+
333
+ // Common methods
334
+ Content(`### Common Methods
335
+
336
+ #### \`data(args: ?Value) Value\`
337
+
338
+ Get the entity data. Pass a map to set it.
339
+
340
+ #### \`matchv(args: ?Value) Value\`
341
+
342
+ Get the entity match criteria. Pass a map to set it.
343
+
344
+ #### \`stream(action: []const u8, args: Value, callopts: Value) []Value\`
345
+
346
+ Run an operation through the pipeline and materialise its result items.
347
+
348
+ #### \`get_name() []const u8\`
349
+
350
+ Return the entity name.
351
+
352
+ `)
353
+ })
354
+
355
+
356
+ // Features section
357
+ const activeFeatures = each(feature).filter((f: any) => f.active)
358
+ if (activeFeatures.length > 0) {
359
+ Content(`
360
+ ---
361
+
362
+ ## Features
363
+
364
+ | Feature | Version | Description |
365
+ | --- | --- | --- |
366
+ `)
367
+
368
+ activeFeatures.map((f: any) => {
369
+ Content(`| \`${f.name}\` | ${f.version || '0.0.1'} | ${f.title || ''} |
370
+ `)
371
+ })
372
+
373
+ Content(`
374
+
375
+ Features are activated via the \`feature\` option:
376
+
377
+ `)
378
+
379
+ Content(`\`\`\`zig
380
+ const client = sdk.${model.const.Name}SDK.new(h.jo(&.{
381
+ .{ "feature", h.jo(&.{
382
+ `)
383
+ activeFeatures.map((f: any) => {
384
+ Content(` .{ "${f.name}", h.jo(&.{.{ "active", h.vbool(true) }}) },
385
+ `)
386
+ })
387
+ Content(` }) },
388
+ }));
389
+ \`\`\`
390
+
391
+ `)
392
+ }
393
+
394
+ })
395
+ })
396
+
397
+
398
+ export {
399
+ ReadmeRef
400
+ }
@@ -0,0 +1,24 @@
1
+
2
+ import { cmp, Content } from '@voxgig/sdkgen'
3
+
4
+
5
+ const ReadmeTopHowto = cmp(function ReadmeTopHowto(props: any) {
6
+ const { target } = props
7
+
8
+ Content(`**Zig:**
9
+ \`\`\`zig
10
+ const result = client.direct(h.jo(&.{
11
+ .{ "path", h.vstr("/api/resource/{id}") },
12
+ .{ "method", h.vstr("GET") },
13
+ .{ "params", h.jo(&.{.{ "id", h.vstr("example") }}) },
14
+ }));
15
+ \`\`\`
16
+
17
+ `)
18
+
19
+ })
20
+
21
+
22
+ export {
23
+ ReadmeTopHowto
24
+ }
@@ -0,0 +1,96 @@
1
+
2
+ import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, 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 for a
14
+ // param. Strings render the quoted placeholder; numeric/boolean/array/object
15
+ // render a typed literal.
16
+ function zigLit(type: any, placeholder: string = 'example'): string {
17
+ const k = canonKey(type)
18
+ if ('INTEGER' === k || 'NUMBER' === k) return 'h.vnum(1)'
19
+ if ('BOOLEAN' === k) return 'h.vbool(true)'
20
+ if ('ARRAY' === k) return 'h.olist()'
21
+ if ('OBJECT' === k) return 'h.omap()'
22
+ return `h.vstr("${placeholder}")`
23
+ }
24
+
25
+
26
+ const ReadmeTopQuick = cmp(function ReadmeTopQuick(props: any) {
27
+ const { target, ctx$: { model } } = props
28
+
29
+ const entity = getModelPath(model, `main.${KIT}.entity`)
30
+
31
+ const exampleEntity = Object.values(entity).find((e: any) => e.active !== false) as any
32
+
33
+ const authActive = isAuthActive(model)
34
+ const ctor = authActive
35
+ ? `sdk.${model.const.Name}SDK.new(h.jo(&.{\n .{ "apikey", h.vstr(std.posix.getenv("${envName(model)}_APIKEY") orelse "") },\n}))`
36
+ : `sdk.${model.const.Name}SDK.new(h.vnull())`
37
+
38
+ Content(`\`\`\`zig
39
+ const std = @import("std");
40
+ const sdk = @import("sdk");
41
+ const h = sdk.h;
42
+
43
+ const client = ${ctor};
44
+
45
+ `)
46
+
47
+ if (exampleEntity) {
48
+ const eName = nom(exampleEntity, 'Name')
49
+ const eVar = zigVarName(exampleEntity.name)
50
+ const method = zigVarName(exampleEntity.name)
51
+ const opnames = Object.keys(exampleEntity.op || {})
52
+ // Model-driven id key: null when the entity has no id-like field, in which
53
+ // case the load example takes no match argument.
54
+ const idF = entityIdField(exampleEntity)
55
+
56
+ if (opnames.includes('list')) {
57
+ Content(`// List all ${eName.toLowerCase()}s (Ok is a Value array, .err on failure)
58
+ switch (client.${method}(h.vnull()).list(h.vnull(), h.vnull())) {
59
+ .ok => |${eVar}s| std.debug.print("{s}\\n", .{h.stringify(${eVar}s)}),
60
+ .err => |e| std.debug.print("list failed: {s}\\n", .{e.msg}),
61
+ }
62
+ `)
63
+ }
64
+
65
+ if (opnames.includes('load')) {
66
+ // Every REQUIRED load-match key (id first, then parent path params like
67
+ // page_id) — the same shape the runtime resolves path params from, so
68
+ // the example always works.
69
+ const loadItems = opRequestShape(exampleEntity, 'load').items
70
+ .filter((it: any) => !it.optional || it.name === idF)
71
+ .sort((a: any, b: any) =>
72
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
73
+ const loadArg = 0 < loadItems.length
74
+ ? `h.jo(&.{${loadItems.map((it: any) =>
75
+ `.{ "${it.name}", ${zigLit(it.type,
76
+ it.name === idF ? 'example_id' : 'example_' + it.name)} }`).join(', ')}})`
77
+ : 'h.vnull()'
78
+ Content(`
79
+ // Load a specific ${eName.toLowerCase()} (Ok is the record, .err on failure)
80
+ switch (client.${method}(h.vnull()).load(${loadArg}, h.vnull())) {
81
+ .ok => |${eVar}| std.debug.print("{s}\\n", .{h.stringify(${eVar})}),
82
+ .err => |e| std.debug.print("load failed: {s}\\n", .{e.msg}),
83
+ }
84
+ `)
85
+ }
86
+ }
87
+
88
+ Content(`\`\`\`
89
+ `)
90
+
91
+ })
92
+
93
+
94
+ export {
95
+ ReadmeTopQuick
96
+ }
@@ -0,0 +1,82 @@
1
+
2
+ import { cmp, Content, 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 ReadmeTopTest = cmp(function ReadmeTopTest(props: any) {
25
+ const { target, ctx$: { model } } = props
26
+
27
+ const entity = getModelPath(model, `main.${KIT}.entity`)
28
+
29
+ // Pick an entity with a real op (prefer a read op) — never fabricate a
30
+ // `load` on an op-less entity.
31
+ const { entity: exampleEntity, primaryOp } = pickExampleEntity(entity)
32
+
33
+ Content(`\`\`\`zig
34
+ const std = @import("std");
35
+ const sdk = @import("sdk");
36
+ const h = sdk.h;
37
+
38
+ const client = sdk.test_sdk(h.vnull(), h.vnull());
39
+ `)
40
+
41
+ if (exampleEntity && primaryOp) {
42
+ const method = zigVarName(exampleEntity.name)
43
+ const idF = entityIdField(exampleEntity)
44
+ const isMatchOp = 'load' === primaryOp || 'remove' === primaryOp
45
+ let arg = 'h.vnull()'
46
+ if (isMatchOp) {
47
+ // Every REQUIRED match key (id first) — the same shape that generates
48
+ // the op's request match.
49
+ const items = opRequestShape(exampleEntity, primaryOp).items
50
+ .filter((it: any) => !it.optional || it.name === idF)
51
+ .sort((a: any, b: any) =>
52
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
53
+ arg = 0 < items.length
54
+ ? `h.jo(&.{${items.map((it: any) =>
55
+ `.{ "${it.name}", ${it.name === idF ? 'h.vstr("test01")' : zigLit(it.type)} }`).join(', ')}})`
56
+ : 'h.vnull()'
57
+ } else if ('create' === primaryOp || 'update' === primaryOp) {
58
+ const items = opRequestShape(exampleEntity, primaryOp).items
59
+ .filter((it: any) => it.name !== idF && it.name !== 'id')
60
+ const required = items.filter((it: any) => !it.optional)
61
+ const chosen = required.length ? required : items.slice(0, 3)
62
+ arg = 0 < chosen.length
63
+ ? `h.jo(&.{${chosen.map((it: any) => `.{ "${it.name}", ${zigLit(it.type)} }`).join(', ')}})`
64
+ : 'h.omap()'
65
+ }
66
+ const eVar = zigVarName(exampleEntity.name) + ('list' === primaryOp ? 's' : '')
67
+ Content(`switch (client.${method}(h.vnull()).${primaryOp}(${arg}, h.vnull())) {
68
+ .ok => |${eVar}| std.debug.print("{s}\\n", .{h.stringify(${eVar})}),
69
+ .err => |e| std.debug.print("${primaryOp} failed: {s}\\n", .{e.msg}),
70
+ }
71
+ `)
72
+ }
73
+
74
+ Content(`\`\`\`
75
+ `)
76
+
77
+ })
78
+
79
+
80
+ export {
81
+ ReadmeTopTest
82
+ }
@@ -0,0 +1,66 @@
1
+
2
+ import { cmp, Content } from '@voxgig/sdkgen'
3
+
4
+ import { zigVarName } from './utility_zig'
5
+
6
+
7
+ // Per-entity direct-call smoke tests. Emits `test "..."` blocks INTO the
8
+ // shared generated_test.zig file (opened by Test_zig) — see TestEntity_zig for
9
+ // why zig keeps every generated test in one file.
10
+ //
11
+ // The go/rust TestDirect generators build a per-entity mock-fetch harness and
12
+ // assert the exact URL/params the entity's op point resolves. Reproducing that
13
+ // path-extraction + mock-transport harness in zig safely requires a build to
14
+ // validate against, so this generator instead exercises the documented
15
+ // `direct()` / `prepare()` escape hatches through the offline test transport
16
+ // and asserts the result shape. `std`, `sdk`, `h`, `Value` and `vnull()` are
17
+ // in scope from the Test_zig header.
18
+ const TestDirect = cmp(function TestDirect(props: any) {
19
+ const { entity } = props
20
+
21
+ const method = zigVarName(entity.name)
22
+ const ops = entity.op || {}
23
+
24
+ // Only entities with a read op participate (mirrors the go/rust gate, which
25
+ // skips op-less entities).
26
+ if (!ops.load && !ops.list) {
27
+ return
28
+ }
29
+
30
+ Content(`
31
+ test "${method}_direct_smoke" {
32
+ // direct() drives prepare -> transport and always returns a result map
33
+ // carrying an \`ok\` flag (never an error union), even on a non-2xx or a
34
+ // prepare failure.
35
+ const testsdk = sdk.test_sdk(vnull(), vnull());
36
+ const result = testsdk.direct(h.jo(&.{
37
+ .{ "path", h.vstr("/${entity.name}/{id}") },
38
+ .{ "method", h.vstr("GET") },
39
+ .{ "params", h.jo(&.{.{ "id", h.vstr("direct01") }}) },
40
+ }));
41
+ try std.testing.expect(result == .object);
42
+ try std.testing.expect(h.get_bool(result, "ok") != null);
43
+ }
44
+
45
+ test "${method}_prepare_smoke" {
46
+ // prepare() returns the fetch definition (an error union). The generated
47
+ // fetchdef always carries a url + method.
48
+ const testsdk = sdk.test_sdk(vnull(), vnull());
49
+ const fetchdef = testsdk.prepare(h.jo(&.{
50
+ .{ "path", h.vstr("/${entity.name}/{id}") },
51
+ .{ "method", h.vstr("GET") },
52
+ .{ "params", h.jo(&.{.{ "id", h.vstr("direct01") }}) },
53
+ })) catch {
54
+ // A prepare error is acceptable here (base may be unset); the surface
55
+ // exists and is exercised.
56
+ return;
57
+ };
58
+ try std.testing.expect(std.mem.eql(u8, h.get_str(fetchdef, "method") orelse "", "GET"));
59
+ }
60
+ `)
61
+ })
62
+
63
+
64
+ export {
65
+ TestDirect
66
+ }