@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,230 @@
1
+
2
+ import { cmp, Content, isAuthActive, envName, canonKey, opRequestShape, entityIdField, entityOps } from '@voxgig/sdkgen'
3
+
4
+ import {
5
+ KIT,
6
+ getModelPath,
7
+ nom,
8
+ } from '@voxgig/apidef'
9
+
10
+ import { kotlinVarName, kotlinPackage } from './utility_kotlin'
11
+
12
+
13
+ const ReadmeQuick = cmp(function ReadmeQuick(props: any) {
14
+ const { target, ctx$: { model } } = props
15
+
16
+ const SDK = model.const.Name + 'SDK'
17
+
18
+ const entity = getModelPath(model, `main.${KIT}.entity`)
19
+
20
+ const exampleEntity = Object.values(entity).find((e: any) => e.active !== false) as any
21
+
22
+ // Find a nested entity if available: one with a parent chain
23
+ // (relations.ancestors), an active load op, and a required non-id load
24
+ // param to demonstrate (the parent key, e.g. page_id).
25
+ const nestedEntity = Object.values(entity).find((e: any) =>
26
+ e.active !== false &&
27
+ e.relations && e.relations.ancestors && 0 < e.relations.ancestors.length &&
28
+ entityOps(e).includes('load') &&
29
+ opRequestShape(e, 'load').items.some((it: any) =>
30
+ !it.optional && it.name !== entityIdField(e))
31
+ ) as any
32
+
33
+ const authActive = isAuthActive(model)
34
+
35
+ // A type-correct Kotlin literal for a param — the loose object model means
36
+ // all values live in a MutableMap<String, Any?>.
37
+ const kotlinLit = (type: any, placeholder: string = 'example'): string => {
38
+ const k = canonKey(type)
39
+ if ('INTEGER' === k) return '1L'
40
+ if ('NUMBER' === k) return '1.0'
41
+ if ('BOOLEAN' === k) return 'true'
42
+ if ('ARRAY' === k) return 'listOf<Any?>()'
43
+ if ('OBJECT' === k) return 'mapOf<String, Any?>()'
44
+ return `"${placeholder}"`
45
+ }
46
+
47
+ if (authActive) {
48
+ Content(`### 1. Create a client
49
+
50
+ \`\`\`kotlin
51
+ import ${kotlinPackage(model)}.core.${SDK}
52
+
53
+ val client = ${SDK}(mutableMapOf<String, Any?>(
54
+ "apikey" to System.getenv("${envName(model)}_APIKEY"),
55
+ ))
56
+ \`\`\`
57
+
58
+ `)
59
+ }
60
+ else {
61
+ Content(`### 1. Create a client
62
+
63
+ \`\`\`kotlin
64
+ import ${kotlinPackage(model)}.core.${SDK}
65
+
66
+ val client = ${SDK}()
67
+ \`\`\`
68
+
69
+ `)
70
+ }
71
+
72
+ if (exampleEntity) {
73
+ const eName = nom(exampleEntity, 'Name')
74
+ const article = /^[aeiou]/i.test(eName) ? 'an' : 'a'
75
+ // Sanitise the local variable name — a camelCased Kotlin keyword gets a
76
+ // trailing underscore (kotlinVarName) so the snippet compiles.
77
+ const eVar = kotlinVarName(exampleEntity.name)
78
+ const accessor = kotlinVarName(exampleEntity.name)
79
+ const opnames = entityOps(exampleEntity)
80
+ // Model-driven id key: `idF` is the entity's id-like MATCH field name, or
81
+ // null when it has none.
82
+ const idF = entityIdField(exampleEntity)
83
+
84
+ if (opnames.includes('list')) {
85
+ Content(`### 2. List ${eName.toLowerCase()} records
86
+
87
+ \`list(null, null)\` returns an aggregate list of records (as \`Any?\`, an
88
+ aggregate list) and raises on error.
89
+
90
+ \`\`\`kotlin
91
+ try {
92
+ val ${eVar}List = client.${accessor}(null).list(null, null)
93
+ println(${eVar}List)
94
+ }
95
+ catch (err: RuntimeException) {
96
+ println("list failed: " + err.message)
97
+ }
98
+ \`\`\`
99
+
100
+ `)
101
+ }
102
+
103
+ if (nestedEntity) {
104
+ const neName = nom(nestedEntity, 'Name')
105
+ const neArticle = /^[aeiou]/i.test(neName) ? 'an' : 'a'
106
+ const neVar = kotlinVarName(nestedEntity.name)
107
+ const neAccessor = kotlinVarName(nestedEntity.name)
108
+
109
+ // Model-driven match: every REQUIRED load-match key. Parent keys (e.g.
110
+ // page_id) first, the entity's own id last.
111
+ const neIdF = entityIdField(nestedEntity)
112
+ const neRequired = opRequestShape(nestedEntity, 'load').items
113
+ .filter((it: any) => !it.optional)
114
+ .sort((a: any, b: any) =>
115
+ (a.name === neIdF ? 1 : 0) - (b.name === neIdF ? 1 : 0))
116
+ const parentItem = neRequired.find((it: any) => it.name !== neIdF) as any
117
+ const parentParam = parentItem && parentItem.name
118
+ const parentName = parentParam ? parentParam.replace(/_id$/, '') : 'its parent'
119
+ const neMatch = neRequired.map((it: any) =>
120
+ `"${it.name}" to ${kotlinLit(it.type,
121
+ it.name === neIdF ? 'example_id' : 'example_' + it.name)}`)
122
+
123
+ Content(`### 3. Load ${neArticle} ${neName.toLowerCase()}
124
+
125
+ ${neName} is nested under ${parentName}, so provide the \`${parentParam}\`.
126
+ \`load()\` returns the bare record (as \`Any?\`) and raises on error.
127
+
128
+ \`\`\`kotlin
129
+ try {
130
+ val ${neVar} = client.${neAccessor}(null).load(mutableMapOf<String, Any?>(${neMatch.join(', ')}), null)
131
+ println(${neVar})
132
+ }
133
+ catch (err: RuntimeException) {
134
+ println("load failed: " + err.message)
135
+ }
136
+ \`\`\`
137
+
138
+ `)
139
+ }
140
+ else if (opnames.includes('load')) {
141
+ // Every REQUIRED load-match key (id first, then parent path params).
142
+ const loadRequired = opRequestShape(exampleEntity, 'load').items
143
+ .filter((it: any) => !it.optional || it.name === idF)
144
+ .sort((a: any, b: any) =>
145
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
146
+ const loadArg = 0 < loadRequired.length
147
+ ? `mutableMapOf<String, Any?>(${loadRequired.map((it: any) =>
148
+ `"${it.name}" to ${kotlinLit(it.type,
149
+ it.name === idF ? 'example_id' : 'example_' + it.name)}`).join(', ')})`
150
+ : 'null'
151
+
152
+ Content(`### 3. Load ${article} ${eName.toLowerCase()}
153
+
154
+ \`load()\` returns the bare record (as \`Any?\`) and raises on error.
155
+
156
+ \`\`\`kotlin
157
+ try {
158
+ val ${eVar} = client.${accessor}(null).load(${loadArg}, null)
159
+ println(${eVar})
160
+ }
161
+ catch (err: RuntimeException) {
162
+ println("load failed: " + err.message)
163
+ }
164
+ \`\`\`
165
+
166
+ `)
167
+ }
168
+
169
+ // Model-driven example fields: derive the create/update body from the op
170
+ // shape (opRequestShape) so the docs reference REAL writable fields.
171
+ const examplePairs = (opname: string): string[] => {
172
+ const items = opRequestShape(exampleEntity, opname).items
173
+ .filter((it: any) => (it.name !== idF && it.name !== 'id') ||
174
+ ('create' === opname && !it.optional))
175
+ const required = items.filter((it: any) => !it.optional)
176
+ const optional = items.filter((it: any) => it.optional)
177
+ const chosen = 'create' === opname
178
+ ? (required.length ? required : items.slice(0, 2))
179
+ : required.concat(optional).slice(0, Math.max(2, required.length))
180
+ return chosen.map((it: any) => `"${it.name}" to ${kotlinLit(it.type, 'example_' + it.name)}`)
181
+ }
182
+
183
+ const idParamType = (opname: string): any => {
184
+ const it = opRequestShape(exampleEntity, opname).items.find((x: any) => x.name === idF)
185
+ return it && it.type
186
+ }
187
+
188
+ if (opnames.includes('create') || opnames.includes('update') || opnames.includes('remove')) {
189
+ Content(`### 4. Create, update, and remove
190
+
191
+ \`\`\`kotlin
192
+ `)
193
+ if (opnames.includes('create')) {
194
+ Content(`// Create — returns the bare created record (as Any?)
195
+ val created = client.${accessor}(null).create(mutableMapOf<String, Any?>(${examplePairs('create').join(', ')}), null)
196
+
197
+ `)
198
+ }
199
+ if (opnames.includes('update')) {
200
+ const updatePairs = (idF ? [`"${idF}" to ${kotlinLit(idParamType('update'), 'example_id')}`] : [])
201
+ .concat(examplePairs('update'))
202
+ Content(`// Update — supply the id in the match/data
203
+ client.${accessor}(null).update(mutableMapOf<String, Any?>(${updatePairs.join(', ')}), null)
204
+
205
+ `)
206
+ }
207
+ if (opnames.includes('remove')) {
208
+ // Every REQUIRED remove-match key: the id plus parent keys like page_id.
209
+ const removePairs = opRequestShape(exampleEntity, 'remove').items
210
+ .filter((it: any) => !it.optional || it.name === idF)
211
+ .sort((a: any, b: any) =>
212
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
213
+ .map((it: any) => it.name === idF
214
+ ? `"${it.name}" to ${kotlinLit(idParamType('remove'), 'example_id')}`
215
+ : `"${it.name}" to ${kotlinLit(it.type, 'example_' + it.name)}`)
216
+ Content(`// Remove
217
+ client.${accessor}(null).remove(${removePairs.length ? `mutableMapOf<String, Any?>(${removePairs.join(', ')})` : 'null'}, null)
218
+ `)
219
+ }
220
+ Content(`\`\`\`
221
+
222
+ `)
223
+ }
224
+ }
225
+ })
226
+
227
+
228
+ export {
229
+ ReadmeQuick
230
+ }
@@ -0,0 +1,387 @@
1
+
2
+ import { cmp, each, Content, canonToType, canonKey, File, isAuthActive, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
+
4
+ import {
5
+ KIT,
6
+ getModelPath,
7
+ } from '@voxgig/apidef'
8
+
9
+ import { kotlinVarName } from './utility_kotlin'
10
+
11
+
12
+ // Type names come from the shared canonToType 'kotlin' column (single source of truth).
13
+
14
+ // A type-correct Kotlin literal for a field's canonical type.
15
+ function kotlinLit(type: any, placeholder: string = 'example'): string {
16
+ const k = canonKey(type)
17
+ if ('INTEGER' === k) return '1L'
18
+ if ('NUMBER' === k) return '1.0'
19
+ if ('BOOLEAN' === k) return 'true'
20
+ if ('ARRAY' === k) return 'listOf<Any?>()'
21
+ if ('OBJECT' === k) return 'mapOf<String, Any?>()'
22
+ return `"${placeholder}"`
23
+ }
24
+
25
+
26
+ const OP_SIGNATURES: Record<string, { sig: string, returns: string, desc: string }> = {
27
+ load: {
28
+ sig: 'load(reqmatch, ctrl) -> Any?',
29
+ returns: 'the entity data',
30
+ desc: 'Load a single entity matching the given criteria. Returns the entity data and raises on error.',
31
+ },
32
+ list: {
33
+ sig: 'list(reqmatch, ctrl) -> Any?',
34
+ returns: 'an aggregate list of entities',
35
+ desc: 'List entities matching the given criteria. The match is optional — call `list(null, null)` to list all records. Returns an aggregate list and raises on error.',
36
+ },
37
+ create: {
38
+ sig: 'create(reqdata, ctrl) -> Any?',
39
+ returns: 'the created entity data',
40
+ desc: 'Create a new entity with the given data. Returns the created entity data and raises on error.',
41
+ },
42
+ update: {
43
+ sig: 'update(reqdata, ctrl) -> Any?',
44
+ returns: 'the updated entity data',
45
+ desc: 'Update an existing entity. The data must include the entity `id`. Returns the updated entity data and raises on error.',
46
+ },
47
+ remove: {
48
+ sig: 'remove(reqmatch, ctrl) -> Any?',
49
+ returns: 'the removed entity data',
50
+ desc: 'Remove the entity matching the given criteria. Raises on error.',
51
+ },
52
+ }
53
+
54
+
55
+ const ReadmeRef = cmp(function ReadmeRef(props: any) {
56
+ const { target } = props
57
+ const { model } = props.ctx$
58
+
59
+ const SDK = model.const.Name + 'SDK'
60
+
61
+ const entity = getModelPath(model, `main.${KIT}.entity`)
62
+ const feature = getModelPath(model, `main.${KIT}.feature`)
63
+
64
+ const publishedEntities = each(entity).filter((e: any) => e.active !== false)
65
+
66
+
67
+ File({ name: 'REFERENCE.md' }, () => {
68
+
69
+ Content(`# ${model.Name} ${target.title} SDK Reference
70
+
71
+ Complete API reference for the ${model.Name} ${target.title} SDK.
72
+
73
+
74
+ ## ${SDK}
75
+
76
+ ### Constructor
77
+
78
+ `)
79
+
80
+ Content(`\`\`\`kotlin
81
+ val client = ${SDK}(options)
82
+ \`\`\`
83
+
84
+ Create a new SDK client instance. \`options\` is a \`MutableMap<String, Any?>\`.
85
+
86
+ **Parameters:**
87
+
88
+ | Name | Type | Description |
89
+ | --- | --- | --- |
90
+ | \`options\` | \`Map\` | SDK configuration options. |
91
+ ${isAuthActive(model) ? '| \`options["apikey"]\` | \`String\` | API key for authentication. |\n' : ''}| \`options["base"]\` | \`String\` | Base URL for API requests. |
92
+ | \`options["prefix"]\` | \`String\` | URL prefix appended after base. |
93
+ | \`options["suffix"]\` | \`String\` | URL suffix appended after path. |
94
+ | \`options["headers"]\` | \`Map\` | Custom headers for all requests. |
95
+ | \`options["feature"]\` | \`Map\` | Feature configuration. |
96
+ | \`options["system"]\` | \`Map\` | System overrides (e.g. custom fetch). |
97
+
98
+ `)
99
+
100
+
101
+ Content(`
102
+ ### Static Methods
103
+
104
+ `)
105
+
106
+ Content(`#### \`${SDK}.testSDK(testopts, sdkopts)\`
107
+
108
+ Create a test client with mock features active. Both arguments may be \`null\`.
109
+
110
+ \`\`\`kotlin
111
+ val client = ${SDK}.testSDK(null, null)
112
+ \`\`\`
113
+
114
+ `)
115
+
116
+
117
+ Content(`
118
+ ### Instance Methods
119
+
120
+ `)
121
+
122
+
123
+ // Entity factory methods
124
+ publishedEntities.map((ent: any) => {
125
+ Content(`#### \`${kotlinVarName(ent.name)}(entopts)\`
126
+
127
+ Create a new \`${ent.Name}\` entity instance (returns \`SdkEntity\`). Pass
128
+ \`null\` for no initial options.
129
+
130
+ `)
131
+ })
132
+
133
+
134
+ Content(`#### \`optionsMap() -> MutableMap\`
135
+
136
+ Return a deep copy of the current SDK options.
137
+
138
+ #### \`getUtility() -> Utility\`
139
+
140
+ Return a copy of the SDK utility object.
141
+
142
+ #### \`direct(fetchargs) -> MutableMap\`
143
+
144
+ Make a direct HTTP request to any API endpoint. Returns a result
145
+ \`MutableMap<String, Any?>\` with \`ok\`, \`status\`, \`headers\`, and \`data\`
146
+ (or \`err\` on failure). This escape hatch never raises — branch on
147
+ \`result["ok"]\`.
148
+
149
+ **Parameters:**
150
+
151
+ | Name | Type | Description |
152
+ | --- | --- | --- |
153
+ | \`fetchargs["path"]\` | \`String\` | URL path with optional \`{param}\` placeholders. |
154
+ | \`fetchargs["method"]\` | \`String\` | HTTP method (default: \`"GET"\`). |
155
+ | \`fetchargs["params"]\` | \`Map\` | Path parameter values. |
156
+ | \`fetchargs["query"]\` | \`Map\` | Query string parameters. |
157
+ | \`fetchargs["headers"]\` | \`Map\` | Request headers (merged with defaults). |
158
+ | \`fetchargs["body"]\` | \`Any?\` | Request body (maps are JSON-serialized). |
159
+
160
+ **Returns:** \`MutableMap<String, Any?>\`
161
+
162
+ #### \`prepare(fetchargs) -> MutableMap\`
163
+
164
+ Prepare a fetch definition without sending. Returns the \`fetchdef\` and raises on error.
165
+
166
+ `)
167
+
168
+
169
+ // Entity reference sections
170
+ publishedEntities.map((ent: any) => {
171
+ const opnames = Object.keys(ent.op || {})
172
+ const fields = ent.fields || []
173
+ // Model-driven id key: null when this entity has no id-like field.
174
+ const idF = entityIdField(ent)
175
+ // Sanitise the local variable name — kotlinVarName guards Kotlin keywords.
176
+ const eVar = kotlinVarName(ent.name)
177
+ const accessor = kotlinVarName(ent.name)
178
+
179
+ Content(`
180
+ ---
181
+
182
+ ## ${ent.Name}
183
+
184
+ `)
185
+
186
+ if (ent.short) {
187
+ Content(`${ent.short}
188
+
189
+ `)
190
+ }
191
+
192
+ Content(`\`\`\`kotlin
193
+ val ${eVar} = client.${accessor}(null)
194
+ \`\`\`
195
+
196
+ `)
197
+
198
+
199
+ // Field schema
200
+ if (fields.length > 0) {
201
+ Content(`### Fields
202
+
203
+ | Field | Type | Required | Description |
204
+ | --- | --- | --- | --- |
205
+ `)
206
+ each(fields, (field: any) => {
207
+ const req = field.req ? 'Yes' : 'No'
208
+ const desc = field.short || ''
209
+ Content(`| \`${field.name}\` | \`${canonToType(field.type, target.name)}\` | ${req} | ${desc} |
210
+ `)
211
+ })
212
+
213
+ Content(`
214
+ `)
215
+
216
+ // Field operations breakdown
217
+ const hasFieldOps = fields.some((f: any) => f.op && Object.keys(f.op).length > 0)
218
+ if (hasFieldOps) {
219
+ const opcols = ['load', 'list', 'create', 'update', 'remove']
220
+ .filter((op: string) => opnames.includes(op) && ent.op[op]?.active !== false)
221
+ Content(`### Field Usage by Operation
222
+
223
+ | Field | ${opcols.join(' | ')} |
224
+ | --- | ${opcols.map(() => '---').join(' | ')} |
225
+ `)
226
+ each(fields, (field: any) => {
227
+ const fops = field.op || {}
228
+ const cols = opcols.map((op: string) => {
229
+ const fop = fops[op]
230
+ if (null == fop) return '-'
231
+ if (fop.active === false) return '-'
232
+ return 'Yes'
233
+ })
234
+ Content(`| \`${field.name}\` | ${cols.join(' | ')} |
235
+ `)
236
+ })
237
+
238
+ Content(`
239
+ `)
240
+ }
241
+ }
242
+
243
+
244
+ // Operation details
245
+ if (opnames.length > 0) {
246
+ Content(`### Operations
247
+
248
+ `)
249
+
250
+ opnames.map((opname: string) => {
251
+ const info = OP_SIGNATURES[opname]
252
+ if (!info) return
253
+
254
+ Content(`#### \`${info.sig}\`
255
+
256
+ ${info.desc}
257
+
258
+ `)
259
+
260
+ if ('load' === opname || 'remove' === opname) {
261
+ const matchItems = opRequestShape(ent, opname).items
262
+ .filter((it: any) => !it.optional || it.name === idF)
263
+ .sort((a: any, b: any) =>
264
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
265
+ const arg = 0 < matchItems.length
266
+ ? `mutableMapOf<String, Any?>(${matchItems.map((it: any) =>
267
+ `"${it.name}" to ${kotlinLit(it.type,
268
+ it.name === idF ? ent.name + '_id' : it.name)}`).join(', ')})`
269
+ : 'null'
270
+ Content(`\`\`\`kotlin
271
+ val result = client.${accessor}(null).${opname}(${arg}, null)
272
+ \`\`\`
273
+
274
+ `)
275
+ }
276
+ else if ('list' === opname) {
277
+ Content(`\`\`\`kotlin
278
+ val results = client.${accessor}(null).list(null, null)
279
+ println(results)
280
+ \`\`\`
281
+
282
+ `)
283
+ }
284
+ else if ('create' === opname) {
285
+ const createItems = opRequestShape(ent, 'create').items
286
+ .filter((it: any) => !it.optional)
287
+ Content(`\`\`\`kotlin
288
+ val result = client.${accessor}(null).create(mutableMapOf<String, Any?>(
289
+ `)
290
+ createItems.map((it: any, i: number) => {
291
+ const comma = i < createItems.length - 1 ? ',' : ''
292
+ Content(` "${it.name}" to ${kotlinLit(it.type, 'example_' + it.name)}${comma} // ${canonToType(it.type, target.name)}
293
+ `)
294
+ })
295
+ Content(`), null)
296
+ \`\`\`
297
+
298
+ `)
299
+ }
300
+ else if ('update' === opname) {
301
+ const updateItems = opRequestShape(ent, 'update').items
302
+ .filter((it: any) => !it.optional || it.name === idF)
303
+ .sort((a: any, b: any) =>
304
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
305
+ const updateLines = updateItems.map((it: any, i: number) => {
306
+ const comma = i < updateItems.length - 1 ? ',' : ''
307
+ return ` "${it.name}" to ${kotlinLit(it.type,
308
+ it.name === idF ? ent.name + '_id' : it.name)}${comma}\n`
309
+ }).join('')
310
+ Content(`\`\`\`kotlin
311
+ val result = client.${accessor}(null).update(mutableMapOf<String, Any?>(
312
+ ${updateLines}), null)
313
+ \`\`\`
314
+
315
+ `)
316
+ }
317
+ })
318
+ }
319
+
320
+
321
+ // Common methods
322
+ Content(`### Common Methods
323
+
324
+ #### \`data(vararg newdata) -> Any?\`
325
+
326
+ Get or set the entity data.
327
+
328
+ #### \`match(vararg newmatch) -> Any?\`
329
+
330
+ Get or set the entity match criteria.
331
+
332
+ #### \`make() -> Entity\`
333
+
334
+ Create a new \`${ent.Name}\` entity instance with the same options.
335
+
336
+ #### \`name -> String\`
337
+
338
+ The entity name (read-only property).
339
+
340
+ `)
341
+ })
342
+
343
+
344
+ // Features section
345
+ const activeFeatures = each(feature).filter((f: any) => f.active)
346
+ if (activeFeatures.length > 0) {
347
+ Content(`
348
+ ---
349
+
350
+ ## Features
351
+
352
+ | Feature | Version | Description |
353
+ | --- | --- | --- |
354
+ `)
355
+
356
+ activeFeatures.map((f: any) => {
357
+ Content(`| \`${f.name}\` | ${f.version || '0.0.1'} | ${f.title || ''} |
358
+ `)
359
+ })
360
+
361
+ Content(`
362
+
363
+ Features are activated via the \`feature\` option:
364
+
365
+ `)
366
+
367
+ Content(`\`\`\`kotlin
368
+ val feature = mutableMapOf<String, Any?>(
369
+ `)
370
+ activeFeatures.map((f: any) => {
371
+ Content(` "${f.name}" to mapOf("active" to true),
372
+ `)
373
+ })
374
+ Content(`)
375
+ val client = ${SDK}(mutableMapOf<String, Any?>("feature" to feature))
376
+ \`\`\`
377
+
378
+ `)
379
+ }
380
+
381
+ })
382
+ })
383
+
384
+
385
+ export {
386
+ ReadmeRef
387
+ }
@@ -0,0 +1,23 @@
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(`**Kotlin:**
9
+ \`\`\`kotlin
10
+ val result = client.direct(mutableMapOf<String, Any?>(
11
+ "path" to "/api/resource/{id}",
12
+ "method" to "GET",
13
+ "params" to mapOf("id" to "example")))
14
+ \`\`\`
15
+
16
+ `)
17
+
18
+ })
19
+
20
+
21
+ export {
22
+ ReadmeTopHowto
23
+ }