@voxgig/sdkgen 1.3.14 → 1.3.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) 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 +5 -1
  12. package/dist/cmp/Entity.js.map +1 -1
  13. package/dist/cmp/Feature.js +2 -1
  14. package/dist/cmp/Feature.js.map +1 -1
  15. package/dist/cmp/FeatureHook.js.map +1 -1
  16. package/dist/cmp/License.js.map +1 -1
  17. package/dist/cmp/Main.js.map +1 -1
  18. package/dist/cmp/Readme.js.map +1 -1
  19. package/dist/cmp/ReadmeEntity.js.map +1 -1
  20. package/dist/cmp/ReadmeErrors.js +1 -1
  21. package/dist/cmp/ReadmeErrors.js.map +1 -1
  22. package/dist/cmp/ReadmeExplanation.js +2 -2
  23. package/dist/cmp/ReadmeExplanation.js.map +1 -1
  24. package/dist/cmp/ReadmeHowto.js.map +1 -1
  25. package/dist/cmp/ReadmeInstall.js.map +1 -1
  26. package/dist/cmp/ReadmeIntro.js.map +1 -1
  27. package/dist/cmp/ReadmeModel.js.map +1 -1
  28. package/dist/cmp/ReadmeOptions.js.map +1 -1
  29. package/dist/cmp/ReadmeQuick.js.map +1 -1
  30. package/dist/cmp/ReadmeRef.js.map +1 -1
  31. package/dist/cmp/ReadmeTop.js +1 -1
  32. package/dist/cmp/ReadmeTop.js.map +1 -1
  33. package/dist/cmp/Security.js.map +1 -1
  34. package/dist/cmp/Test.js.map +1 -1
  35. package/dist/helpers/buildIdNames.js.map +1 -1
  36. package/dist/helpers/canonType.d.ts +3 -2
  37. package/dist/helpers/canonType.js +112 -24
  38. package/dist/helpers/canonType.js.map +1 -1
  39. package/dist/helpers/collectDeps.d.ts +1 -1
  40. package/dist/helpers/collectDeps.js +36 -13
  41. package/dist/helpers/collectDeps.js.map +1 -1
  42. package/dist/helpers/getMatchEntries.js.map +1 -1
  43. package/dist/helpers/naming.d.ts +7 -1
  44. package/dist/helpers/naming.js +90 -0
  45. package/dist/helpers/naming.js.map +1 -1
  46. package/dist/helpers/opExample.d.ts +1 -1
  47. package/dist/helpers/opExample.js +37 -20
  48. package/dist/helpers/opExample.js.map +1 -1
  49. package/dist/helpers/opShape.d.ts +5 -1
  50. package/dist/helpers/opShape.js +174 -7
  51. package/dist/helpers/opShape.js.map +1 -1
  52. package/dist/helpers/packageMeta.js.map +1 -1
  53. package/dist/sdkgen.d.ts +3 -3
  54. package/dist/sdkgen.js +12 -2
  55. package/dist/sdkgen.js.map +1 -1
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/dist/types.js.map +1 -1
  58. package/dist/utility.js.map +1 -1
  59. package/package.json +20 -14
  60. package/project/.sdk/model/target/cpp.aontu +4 -4
  61. package/project/.sdk/model/target/go-cli.aontu +17 -17
  62. package/project/.sdk/model/target/go-mcp.aontu +11 -11
  63. package/project/.sdk/model/target/go.aontu +1 -1
  64. package/project/.sdk/model/target/haskell.aontu +6 -3
  65. package/project/.sdk/model/target/java.aontu +4 -4
  66. package/project/.sdk/model/target/kotlin.aontu +4 -4
  67. package/project/.sdk/model/target/lean.aontu +51 -0
  68. package/project/.sdk/model/target/scala.aontu +4 -4
  69. package/project/.sdk/model/target/zig.aontu +12 -2
  70. package/project/.sdk/src/cmp/c/Config_c.ts +16 -4
  71. package/project/.sdk/src/cmp/c/EntityTypes_c.ts +167 -0
  72. package/project/.sdk/src/cmp/c/Entity_c.ts +3 -3
  73. package/project/.sdk/src/cmp/c/Main_c.ts +4 -0
  74. package/project/.sdk/src/cmp/c/ReadmeEntity_c.ts +192 -0
  75. package/project/.sdk/src/cmp/c/ReadmeExamplesTest_c.ts +169 -0
  76. package/project/.sdk/src/cmp/c/ReadmeExplanation_c.ts +55 -0
  77. package/project/.sdk/src/cmp/c/ReadmeHowto_c.ts +168 -0
  78. package/project/.sdk/src/cmp/c/ReadmeInstall_c.ts +52 -0
  79. package/project/.sdk/src/cmp/c/ReadmeIntro_c.ts +67 -0
  80. package/project/.sdk/src/cmp/c/ReadmeModel_c.ts +151 -0
  81. package/project/.sdk/src/cmp/c/ReadmeOptions_c.ts +65 -0
  82. package/project/.sdk/src/cmp/c/ReadmeQuick_c.ts +225 -0
  83. package/project/.sdk/src/cmp/c/ReadmeRef_c.ts +398 -0
  84. package/project/.sdk/src/cmp/c/ReadmeTopHowto_c.ts +24 -0
  85. package/project/.sdk/src/cmp/c/ReadmeTopQuick_c.ts +104 -0
  86. package/project/.sdk/src/cmp/c/ReadmeTopTest_c.ts +86 -0
  87. package/project/.sdk/src/cmp/c/TestDirect_c.ts +3 -3
  88. package/project/.sdk/src/cmp/c/TestEntity_c.ts +10 -0
  89. package/project/.sdk/src/cmp/c/Test_c.ts +4 -0
  90. package/project/.sdk/src/cmp/c/utility_c.ts +8 -2
  91. package/project/.sdk/src/cmp/clojure/Entity_clojure.ts +1 -1
  92. package/project/.sdk/src/cmp/clojure/ReadmeEntity_clojure.ts +182 -0
  93. package/project/.sdk/src/cmp/clojure/ReadmeExamplesTest_clojure.ts +65 -0
  94. package/project/.sdk/src/cmp/clojure/ReadmeExplanation_clojure.ts +44 -0
  95. package/project/.sdk/src/cmp/clojure/ReadmeHowto_clojure.ts +144 -0
  96. package/project/.sdk/src/cmp/clojure/ReadmeInstall_clojure.ts +51 -0
  97. package/project/.sdk/src/cmp/clojure/ReadmeIntro_clojure.ts +66 -0
  98. package/project/.sdk/src/cmp/clojure/ReadmeModel_clojure.ts +156 -0
  99. package/project/.sdk/src/cmp/clojure/ReadmeOptions_clojure.ts +61 -0
  100. package/project/.sdk/src/cmp/clojure/ReadmeQuick_clojure.ts +210 -0
  101. package/project/.sdk/src/cmp/clojure/ReadmeRef_clojure.ts +409 -0
  102. package/project/.sdk/src/cmp/clojure/ReadmeTopHowto_clojure.ts +24 -0
  103. package/project/.sdk/src/cmp/clojure/ReadmeTopQuick_clojure.ts +98 -0
  104. package/project/.sdk/src/cmp/clojure/ReadmeTopTest_clojure.ts +78 -0
  105. package/project/.sdk/src/cmp/clojure/TestDirect_clojure.ts +58 -0
  106. package/project/.sdk/src/cmp/clojure/TestEntity_clojure.ts +79 -0
  107. package/project/.sdk/src/cmp/clojure/Test_clojure.ts +21 -65
  108. package/project/.sdk/src/cmp/cpp/EntityTypes_cpp.ts +174 -0
  109. package/project/.sdk/src/cmp/cpp/Entity_cpp.ts +3 -3
  110. package/project/.sdk/src/cmp/cpp/MainEntity_cpp.ts +2 -2
  111. package/project/.sdk/src/cmp/cpp/Main_cpp.ts +5 -0
  112. package/project/.sdk/src/cmp/cpp/ReadmeEntity_cpp.ts +170 -0
  113. package/project/.sdk/src/cmp/cpp/ReadmeExamplesTest_cpp.ts +136 -0
  114. package/project/.sdk/src/cmp/cpp/ReadmeExplanation_cpp.ts +45 -0
  115. package/project/.sdk/src/cmp/cpp/ReadmeHowto_cpp.ts +139 -0
  116. package/project/.sdk/src/cmp/cpp/ReadmeInstall_cpp.ts +42 -0
  117. package/project/.sdk/src/cmp/cpp/ReadmeIntro_cpp.ts +69 -0
  118. package/project/.sdk/src/cmp/cpp/ReadmeModel_cpp.ts +155 -0
  119. package/project/.sdk/src/cmp/cpp/ReadmeOptions_cpp.ts +62 -0
  120. package/project/.sdk/src/cmp/cpp/ReadmeQuick_cpp.ts +234 -0
  121. package/project/.sdk/src/cmp/cpp/ReadmeRef_cpp.ts +387 -0
  122. package/project/.sdk/src/cmp/cpp/ReadmeTopHowto_cpp.ts +24 -0
  123. package/project/.sdk/src/cmp/cpp/ReadmeTopQuick_cpp.ts +95 -0
  124. package/project/.sdk/src/cmp/cpp/ReadmeTopTest_cpp.ts +70 -0
  125. package/project/.sdk/src/cmp/cpp/TestDirect_cpp.ts +3 -3
  126. package/project/.sdk/src/cmp/cpp/TestEntity_cpp.ts +5 -1
  127. package/project/.sdk/src/cmp/cpp/Test_cpp.ts +4 -0
  128. package/project/.sdk/src/cmp/csharp/EntityTypes_csharp.ts +195 -0
  129. package/project/.sdk/src/cmp/csharp/Entity_csharp.ts +3 -3
  130. package/project/.sdk/src/cmp/csharp/MainEntity_csharp.ts +2 -2
  131. package/project/.sdk/src/cmp/csharp/Main_csharp.ts +6 -0
  132. package/project/.sdk/src/cmp/csharp/Package_csharp.ts +1 -1
  133. package/project/.sdk/src/cmp/csharp/ReadmeEntity_csharp.ts +174 -0
  134. package/project/.sdk/src/cmp/csharp/ReadmeExamplesTest_csharp.ts +210 -0
  135. package/project/.sdk/src/cmp/csharp/ReadmeExplanation_csharp.ts +42 -0
  136. package/project/.sdk/src/cmp/csharp/ReadmeHowto_csharp.ts +168 -0
  137. package/project/.sdk/src/cmp/csharp/ReadmeInstall_csharp.ts +41 -0
  138. package/project/.sdk/src/cmp/csharp/ReadmeIntro_csharp.ts +65 -0
  139. package/project/.sdk/src/cmp/csharp/ReadmeModel_csharp.ts +148 -0
  140. package/project/.sdk/src/cmp/csharp/ReadmeOptions_csharp.ts +60 -0
  141. package/project/.sdk/src/cmp/csharp/ReadmeQuick_csharp.ts +219 -0
  142. package/project/.sdk/src/cmp/csharp/ReadmeRef_csharp.ts +390 -0
  143. package/project/.sdk/src/cmp/csharp/ReadmeTopHowto_csharp.ts +25 -0
  144. package/project/.sdk/src/cmp/csharp/ReadmeTopQuick_csharp.ts +92 -0
  145. package/project/.sdk/src/cmp/csharp/ReadmeTopTest_csharp.ts +77 -0
  146. package/project/.sdk/src/cmp/csharp/TestDirect_csharp.ts +3 -3
  147. package/project/.sdk/src/cmp/csharp/Test_csharp.ts +4 -0
  148. package/project/.sdk/src/cmp/dart/EntityTypes_dart.ts +43 -30
  149. package/project/.sdk/src/cmp/dart/Entity_dart.ts +11 -3
  150. package/project/.sdk/src/cmp/dart/MainEntity_dart.ts +2 -2
  151. package/project/.sdk/src/cmp/dart/Main_dart.ts +3 -3
  152. package/project/.sdk/src/cmp/dart/Package_dart.ts +1 -1
  153. package/project/.sdk/src/cmp/dart/ReadmeEntity_dart.ts +166 -0
  154. package/project/.sdk/src/cmp/dart/ReadmeExamplesTest_dart.ts +238 -0
  155. package/project/.sdk/src/cmp/dart/ReadmeExplanation_dart.ts +53 -0
  156. package/project/.sdk/src/cmp/dart/ReadmeHowto_dart.ts +151 -0
  157. package/project/.sdk/src/cmp/dart/ReadmeInstall_dart.ts +59 -0
  158. package/project/.sdk/src/cmp/dart/ReadmeIntro_dart.ts +65 -0
  159. package/project/.sdk/src/cmp/dart/ReadmeModel_dart.ts +151 -0
  160. package/project/.sdk/src/cmp/dart/ReadmeOptions_dart.ts +63 -0
  161. package/project/.sdk/src/cmp/dart/ReadmeQuick_dart.ts +214 -0
  162. package/project/.sdk/src/cmp/dart/ReadmeRef_dart.ts +381 -0
  163. package/project/.sdk/src/cmp/dart/ReadmeTopHowto_dart.ts +24 -0
  164. package/project/.sdk/src/cmp/dart/ReadmeTopQuick_dart.ts +95 -0
  165. package/project/.sdk/src/cmp/dart/ReadmeTopTest_dart.ts +78 -0
  166. package/project/.sdk/src/cmp/dart/TestDirect_dart.ts +4 -4
  167. package/project/.sdk/src/cmp/dart/TestEntity_dart.ts +52 -0
  168. package/project/.sdk/src/cmp/dart/Test_dart.ts +6 -0
  169. package/project/.sdk/src/cmp/dart/fragment/Entity.fragment.dart +1 -3
  170. package/project/.sdk/src/cmp/dart/fragment/Entity.test.fragment.dart +1 -40
  171. package/project/.sdk/src/cmp/dart/fragment/Main.fragment.dart +3 -3
  172. package/project/.sdk/src/cmp/elixir/EntityTypes_elixir.ts +164 -0
  173. package/project/.sdk/src/cmp/elixir/Entity_elixir.ts +1 -1
  174. package/project/.sdk/src/cmp/elixir/Main_elixir.ts +4 -0
  175. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +3 -1
  176. package/project/.sdk/src/cmp/elixir/ReadmeEntity_elixir.ts +163 -0
  177. package/project/.sdk/src/cmp/elixir/ReadmeExamplesTest_elixir.ts +144 -0
  178. package/project/.sdk/src/cmp/elixir/ReadmeExplanation_elixir.ts +55 -0
  179. package/project/.sdk/src/cmp/elixir/ReadmeHowto_elixir.ts +149 -0
  180. package/project/.sdk/src/cmp/elixir/ReadmeInstall_elixir.ts +67 -0
  181. package/project/.sdk/src/cmp/elixir/ReadmeIntro_elixir.ts +66 -0
  182. package/project/.sdk/src/cmp/elixir/ReadmeModel_elixir.ts +150 -0
  183. package/project/.sdk/src/cmp/elixir/ReadmeOptions_elixir.ts +62 -0
  184. package/project/.sdk/src/cmp/elixir/ReadmeQuick_elixir.ts +198 -0
  185. package/project/.sdk/src/cmp/elixir/ReadmeRef_elixir.ts +333 -0
  186. package/project/.sdk/src/cmp/elixir/ReadmeTopHowto_elixir.ts +26 -0
  187. package/project/.sdk/src/cmp/elixir/ReadmeTopQuick_elixir.ts +79 -0
  188. package/project/.sdk/src/cmp/elixir/ReadmeTopTest_elixir.ts +68 -0
  189. package/project/.sdk/src/cmp/elixir/Test_elixir.ts +4 -0
  190. package/project/.sdk/src/cmp/elixir/fragment/EntityCreateOp.fragment.ex +4 -0
  191. package/project/.sdk/src/cmp/elixir/fragment/EntityListOp.fragment.ex +4 -0
  192. package/project/.sdk/src/cmp/elixir/fragment/EntityLoadOp.fragment.ex +4 -0
  193. package/project/.sdk/src/cmp/elixir/fragment/EntityRemoveOp.fragment.ex +4 -0
  194. package/project/.sdk/src/cmp/elixir/fragment/EntityUpdateOp.fragment.ex +4 -0
  195. package/project/.sdk/src/cmp/elixir/utility_elixir.ts +32 -0
  196. package/project/.sdk/src/cmp/go/Config_go.ts +4 -1
  197. package/project/.sdk/src/cmp/go/EntityTypes_go.ts +121 -20
  198. package/project/.sdk/src/cmp/go/Entity_go.ts +3 -3
  199. package/project/.sdk/src/cmp/go/Main_go.ts +7 -6
  200. package/project/.sdk/src/cmp/go/Package_go.ts +1 -1
  201. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +6 -1
  202. package/project/.sdk/src/cmp/go/TestDirect_go.ts +3 -3
  203. package/project/.sdk/src/cmp/go/TestEntity_go.ts +11 -4
  204. package/project/.sdk/src/cmp/go/utility_go.ts +28 -2
  205. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +249 -44
  206. package/project/.sdk/src/cmp/go-cli/fragment/main.fragment.go +27 -5
  207. package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +200 -31
  208. package/project/.sdk/src/cmp/haskell/ReadmeEntity_haskell.ts +181 -0
  209. package/project/.sdk/src/cmp/haskell/ReadmeExamplesTest_haskell.ts +135 -0
  210. package/project/.sdk/src/cmp/haskell/ReadmeExplanation_haskell.ts +48 -0
  211. package/project/.sdk/src/cmp/haskell/ReadmeHowto_haskell.ts +168 -0
  212. package/project/.sdk/src/cmp/haskell/ReadmeInstall_haskell.ts +51 -0
  213. package/project/.sdk/src/cmp/haskell/ReadmeIntro_haskell.ts +67 -0
  214. package/project/.sdk/src/cmp/haskell/ReadmeModel_haskell.ts +160 -0
  215. package/project/.sdk/src/cmp/haskell/ReadmeOptions_haskell.ts +74 -0
  216. package/project/.sdk/src/cmp/haskell/ReadmeQuick_haskell.ts +237 -0
  217. package/project/.sdk/src/cmp/haskell/ReadmeRef_haskell.ts +405 -0
  218. package/project/.sdk/src/cmp/haskell/ReadmeTopHowto_haskell.ts +31 -0
  219. package/project/.sdk/src/cmp/haskell/ReadmeTopQuick_haskell.ts +104 -0
  220. package/project/.sdk/src/cmp/haskell/ReadmeTopTest_haskell.ts +80 -0
  221. package/project/.sdk/src/cmp/haskell/Test_haskell.ts +27 -2
  222. package/project/.sdk/src/cmp/java/EntityTypes_java.ts +206 -0
  223. package/project/.sdk/src/cmp/java/Entity_java.ts +3 -3
  224. package/project/.sdk/src/cmp/java/MainEntity_java.ts +2 -2
  225. package/project/.sdk/src/cmp/java/Main_java.ts +6 -0
  226. package/project/.sdk/src/cmp/java/Package_java.ts +1 -1
  227. package/project/.sdk/src/cmp/java/ReadmeEntity_java.ts +175 -0
  228. package/project/.sdk/src/cmp/java/ReadmeExamplesTest_java.ts +208 -0
  229. package/project/.sdk/src/cmp/java/ReadmeExplanation_java.ts +46 -0
  230. package/project/.sdk/src/cmp/java/ReadmeHowto_java.ts +156 -0
  231. package/project/.sdk/src/cmp/java/ReadmeInstall_java.ts +52 -0
  232. package/project/.sdk/src/cmp/java/ReadmeIntro_java.ts +66 -0
  233. package/project/.sdk/src/cmp/java/ReadmeModel_java.ts +150 -0
  234. package/project/.sdk/src/cmp/java/ReadmeOptions_java.ts +61 -0
  235. package/project/.sdk/src/cmp/java/ReadmeQuick_java.ts +230 -0
  236. package/project/.sdk/src/cmp/java/ReadmeRef_java.ts +388 -0
  237. package/project/.sdk/src/cmp/java/ReadmeTopHowto_java.ts +23 -0
  238. package/project/.sdk/src/cmp/java/ReadmeTopQuick_java.ts +103 -0
  239. package/project/.sdk/src/cmp/java/ReadmeTopTest_java.ts +77 -0
  240. package/project/.sdk/src/cmp/java/TestDirect_java.ts +3 -3
  241. package/project/.sdk/src/cmp/java/Test_java.ts +4 -0
  242. package/project/.sdk/src/cmp/js/EntityTypes_js.ts +25 -9
  243. package/project/.sdk/src/cmp/js/Entity_js.ts +3 -3
  244. package/project/.sdk/src/cmp/js/MainEntity_js.ts +6 -4
  245. package/project/.sdk/src/cmp/js/Main_js.ts +2 -2
  246. package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +4 -4
  247. package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +13 -4
  248. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +4 -4
  249. package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +5 -5
  250. package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +4 -4
  251. package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +4 -4
  252. package/project/.sdk/src/cmp/js/TestDirect_js.ts +10 -9
  253. package/project/.sdk/src/cmp/js/TestEntity_js.ts +7 -2
  254. package/project/.sdk/src/cmp/js/fragment/Entity.test.fragment.js +0 -31
  255. package/project/.sdk/src/cmp/kotlin/EntityTypes_kotlin.ts +200 -0
  256. package/project/.sdk/src/cmp/kotlin/Entity_kotlin.ts +3 -3
  257. package/project/.sdk/src/cmp/kotlin/MainEntity_kotlin.ts +2 -2
  258. package/project/.sdk/src/cmp/kotlin/Main_kotlin.ts +6 -0
  259. package/project/.sdk/src/cmp/kotlin/Package_kotlin.ts +1 -1
  260. package/project/.sdk/src/cmp/kotlin/ReadmeEntity_kotlin.ts +175 -0
  261. package/project/.sdk/src/cmp/kotlin/ReadmeExamplesTest_kotlin.ts +198 -0
  262. package/project/.sdk/src/cmp/kotlin/ReadmeExplanation_kotlin.ts +47 -0
  263. package/project/.sdk/src/cmp/kotlin/ReadmeHowto_kotlin.ts +154 -0
  264. package/project/.sdk/src/cmp/kotlin/ReadmeInstall_kotlin.ts +50 -0
  265. package/project/.sdk/src/cmp/kotlin/ReadmeIntro_kotlin.ts +66 -0
  266. package/project/.sdk/src/cmp/kotlin/ReadmeModel_kotlin.ts +150 -0
  267. package/project/.sdk/src/cmp/kotlin/ReadmeOptions_kotlin.ts +61 -0
  268. package/project/.sdk/src/cmp/kotlin/ReadmeQuick_kotlin.ts +230 -0
  269. package/project/.sdk/src/cmp/kotlin/ReadmeRef_kotlin.ts +387 -0
  270. package/project/.sdk/src/cmp/kotlin/ReadmeTopHowto_kotlin.ts +23 -0
  271. package/project/.sdk/src/cmp/kotlin/ReadmeTopQuick_kotlin.ts +104 -0
  272. package/project/.sdk/src/cmp/kotlin/ReadmeTopTest_kotlin.ts +77 -0
  273. package/project/.sdk/src/cmp/kotlin/TestDirect_kotlin.ts +3 -3
  274. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +4 -0
  275. package/project/.sdk/src/cmp/lean/Config_lean.ts +88 -0
  276. package/project/.sdk/src/cmp/lean/Entity_lean.ts +9 -0
  277. package/project/.sdk/src/cmp/lean/Gitignore_lean.ts +18 -0
  278. package/project/.sdk/src/cmp/lean/Main_lean.ts +120 -0
  279. package/project/.sdk/src/cmp/lean/Package_lean.ts +68 -0
  280. package/project/.sdk/src/cmp/lean/ReadmeEntity_lean.ts +29 -0
  281. package/project/.sdk/src/cmp/lean/ReadmeExplanation_lean.ts +19 -0
  282. package/project/.sdk/src/cmp/lean/ReadmeHowto_lean.ts +25 -0
  283. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +38 -0
  284. package/project/.sdk/src/cmp/lean/ReadmeIntro_lean.ts +25 -0
  285. package/project/.sdk/src/cmp/lean/ReadmeModel_lean.ts +24 -0
  286. package/project/.sdk/src/cmp/lean/ReadmeOptions_lean.ts +22 -0
  287. package/project/.sdk/src/cmp/lean/ReadmeQuick_lean.ts +50 -0
  288. package/project/.sdk/src/cmp/lean/ReadmeRef_lean.ts +16 -0
  289. package/project/.sdk/src/cmp/lean/ReadmeTopHowto_lean.ts +16 -0
  290. package/project/.sdk/src/cmp/lean/ReadmeTopQuick_lean.ts +23 -0
  291. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +18 -0
  292. package/project/.sdk/src/cmp/lean/Test_lean.ts +207 -0
  293. package/project/.sdk/src/cmp/lean/utility_lean.ts +78 -0
  294. package/project/.sdk/src/cmp/lua/Config_lua.ts +1 -1
  295. package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +19 -6
  296. package/project/.sdk/src/cmp/lua/Entity_lua.ts +3 -3
  297. package/project/.sdk/src/cmp/lua/Main_lua.ts +14 -2
  298. package/project/.sdk/src/cmp/lua/Package_lua.ts +1 -1
  299. package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +2 -2
  300. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +6 -1
  301. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +3 -3
  302. package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +2 -2
  303. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +2 -2
  304. package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +3 -3
  305. package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +8 -3
  306. package/project/.sdk/src/cmp/lua/Test_lua.ts +1 -1
  307. package/project/.sdk/src/cmp/lua/fragment/Main.fragment.lua +2 -0
  308. package/project/.sdk/src/cmp/ocaml/ReadmeEntity_ocaml.ts +180 -0
  309. package/project/.sdk/src/cmp/ocaml/ReadmeExamplesTest_ocaml.ts +126 -0
  310. package/project/.sdk/src/cmp/ocaml/ReadmeExplanation_ocaml.ts +46 -0
  311. package/project/.sdk/src/cmp/ocaml/ReadmeHowto_ocaml.ts +147 -0
  312. package/project/.sdk/src/cmp/ocaml/ReadmeInstall_ocaml.ts +44 -0
  313. package/project/.sdk/src/cmp/ocaml/ReadmeIntro_ocaml.ts +68 -0
  314. package/project/.sdk/src/cmp/ocaml/ReadmeModel_ocaml.ts +155 -0
  315. package/project/.sdk/src/cmp/ocaml/ReadmeOptions_ocaml.ts +59 -0
  316. package/project/.sdk/src/cmp/ocaml/ReadmeQuick_ocaml.ts +205 -0
  317. package/project/.sdk/src/cmp/ocaml/ReadmeRef_ocaml.ts +402 -0
  318. package/project/.sdk/src/cmp/ocaml/ReadmeTopHowto_ocaml.ts +25 -0
  319. package/project/.sdk/src/cmp/ocaml/ReadmeTopQuick_ocaml.ts +86 -0
  320. package/project/.sdk/src/cmp/ocaml/ReadmeTopTest_ocaml.ts +79 -0
  321. package/project/.sdk/src/cmp/ocaml/Test_ocaml.ts +4 -0
  322. package/project/.sdk/src/cmp/perl/Entity_perl.ts +3 -3
  323. package/project/.sdk/src/cmp/perl/MainEntity_perl.ts +2 -2
  324. package/project/.sdk/src/cmp/perl/Package_perl.ts +1 -1
  325. package/project/.sdk/src/cmp/perl/ReadmeEntity_perl.ts +181 -0
  326. package/project/.sdk/src/cmp/perl/ReadmeExamplesTest_perl.ts +354 -0
  327. package/project/.sdk/src/cmp/perl/ReadmeExplanation_perl.ts +43 -0
  328. package/project/.sdk/src/cmp/perl/ReadmeHowto_perl.ts +149 -0
  329. package/project/.sdk/src/cmp/perl/ReadmeInstall_perl.ts +47 -0
  330. package/project/.sdk/src/cmp/perl/ReadmeIntro_perl.ts +66 -0
  331. package/project/.sdk/src/cmp/perl/ReadmeModel_perl.ts +150 -0
  332. package/project/.sdk/src/cmp/perl/ReadmeOptions_perl.ts +59 -0
  333. package/project/.sdk/src/cmp/perl/ReadmeQuick_perl.ts +216 -0
  334. package/project/.sdk/src/cmp/perl/ReadmeRef_perl.ts +399 -0
  335. package/project/.sdk/src/cmp/perl/ReadmeTopHowto_perl.ts +24 -0
  336. package/project/.sdk/src/cmp/perl/ReadmeTopQuick_perl.ts +91 -0
  337. package/project/.sdk/src/cmp/perl/ReadmeTopTest_perl.ts +83 -0
  338. package/project/.sdk/src/cmp/perl/TestDirect_perl.ts +3 -3
  339. package/project/.sdk/src/cmp/perl/Test_perl.ts +4 -0
  340. package/project/.sdk/src/cmp/php/EntityTypes_php.ts +23 -7
  341. package/project/.sdk/src/cmp/php/Entity_php.ts +3 -3
  342. package/project/.sdk/src/cmp/php/MainEntity_php.ts +2 -2
  343. package/project/.sdk/src/cmp/php/Package_php.ts +1 -1
  344. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +6 -1
  345. package/project/.sdk/src/cmp/php/TestDirect_php.ts +3 -3
  346. package/project/.sdk/src/cmp/php/TestEntity_php.ts +8 -3
  347. package/project/.sdk/src/cmp/py/EntityTypes_py.ts +32 -8
  348. package/project/.sdk/src/cmp/py/Entity_py.ts +4 -12
  349. package/project/.sdk/src/cmp/py/MainEntity_py.ts +2 -2
  350. package/project/.sdk/src/cmp/py/Main_py.ts +2 -2
  351. package/project/.sdk/src/cmp/py/Package_py.ts +1 -1
  352. package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +2 -2
  353. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +8 -3
  354. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +3 -3
  355. package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +2 -2
  356. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +2 -2
  357. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +2 -2
  358. package/project/.sdk/src/cmp/py/TestDirect_py.ts +3 -3
  359. package/project/.sdk/src/cmp/py/TestEntity_py.ts +8 -3
  360. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +32 -8
  361. package/project/.sdk/src/cmp/rb/Entity_rb.ts +3 -3
  362. package/project/.sdk/src/cmp/rb/MainEntity_rb.ts +2 -2
  363. package/project/.sdk/src/cmp/rb/Package_rb.ts +2 -2
  364. package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +2 -2
  365. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +8 -3
  366. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +3 -3
  367. package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +2 -2
  368. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +2 -2
  369. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +2 -2
  370. package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +3 -3
  371. package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +8 -3
  372. package/project/.sdk/src/cmp/rust/EntityBase_rust.ts +6 -2
  373. package/project/.sdk/src/cmp/rust/EntityTypes_rust.ts +151 -0
  374. package/project/.sdk/src/cmp/rust/Entity_rust.ts +4 -4
  375. package/project/.sdk/src/cmp/rust/MainEntity_rust.ts +2 -2
  376. package/project/.sdk/src/cmp/rust/Main_rust.ts +5 -0
  377. package/project/.sdk/src/cmp/rust/Package_rust.ts +1 -1
  378. package/project/.sdk/src/cmp/rust/ReadmeEntity_rust.ts +163 -0
  379. package/project/.sdk/src/cmp/rust/ReadmeExamplesTest_rust.ts +144 -0
  380. package/project/.sdk/src/cmp/rust/ReadmeExplanation_rust.ts +44 -0
  381. package/project/.sdk/src/cmp/rust/ReadmeHowto_rust.ts +142 -0
  382. package/project/.sdk/src/cmp/rust/ReadmeInstall_rust.ts +49 -0
  383. package/project/.sdk/src/cmp/rust/ReadmeIntro_rust.ts +66 -0
  384. package/project/.sdk/src/cmp/rust/ReadmeModel_rust.ts +153 -0
  385. package/project/.sdk/src/cmp/rust/ReadmeOptions_rust.ts +60 -0
  386. package/project/.sdk/src/cmp/rust/ReadmeQuick_rust.ts +212 -0
  387. package/project/.sdk/src/cmp/rust/ReadmeRef_rust.ts +384 -0
  388. package/project/.sdk/src/cmp/rust/ReadmeTopHowto_rust.ts +24 -0
  389. package/project/.sdk/src/cmp/rust/ReadmeTopQuick_rust.ts +95 -0
  390. package/project/.sdk/src/cmp/rust/ReadmeTopTest_rust.ts +81 -0
  391. package/project/.sdk/src/cmp/rust/TestDirect_rust.ts +3 -3
  392. package/project/.sdk/src/cmp/rust/TestEntity_rust.ts +10 -0
  393. package/project/.sdk/src/cmp/rust/Test_rust.ts +4 -0
  394. package/project/.sdk/src/cmp/scala/EntityTypes_scala.ts +201 -0
  395. package/project/.sdk/src/cmp/scala/Entity_scala.ts +3 -3
  396. package/project/.sdk/src/cmp/scala/MainEntity_scala.ts +2 -2
  397. package/project/.sdk/src/cmp/scala/Main_scala.ts +6 -0
  398. package/project/.sdk/src/cmp/scala/ReadmeEntity_scala.ts +175 -0
  399. package/project/.sdk/src/cmp/scala/ReadmeExamplesTest_scala.ts +182 -0
  400. package/project/.sdk/src/cmp/scala/ReadmeExplanation_scala.ts +49 -0
  401. package/project/.sdk/src/cmp/scala/ReadmeHowto_scala.ts +155 -0
  402. package/project/.sdk/src/cmp/scala/ReadmeInstall_scala.ts +58 -0
  403. package/project/.sdk/src/cmp/scala/ReadmeIntro_scala.ts +66 -0
  404. package/project/.sdk/src/cmp/scala/ReadmeModel_scala.ts +150 -0
  405. package/project/.sdk/src/cmp/scala/ReadmeOptions_scala.ts +61 -0
  406. package/project/.sdk/src/cmp/scala/ReadmeQuick_scala.ts +230 -0
  407. package/project/.sdk/src/cmp/scala/ReadmeRef_scala.ts +388 -0
  408. package/project/.sdk/src/cmp/scala/ReadmeTopHowto_scala.ts +23 -0
  409. package/project/.sdk/src/cmp/scala/ReadmeTopQuick_scala.ts +104 -0
  410. package/project/.sdk/src/cmp/scala/ReadmeTopTest_scala.ts +77 -0
  411. package/project/.sdk/src/cmp/scala/TestDirect_scala.ts +3 -3
  412. package/project/.sdk/src/cmp/scala/TestEntity_scala.ts +38 -10
  413. package/project/.sdk/src/cmp/scala/Test_scala.ts +9 -1
  414. package/project/.sdk/src/cmp/swift/EntityTypes_swift.ts +151 -0
  415. package/project/.sdk/src/cmp/swift/Entity_swift.ts +3 -3
  416. package/project/.sdk/src/cmp/swift/MainEntity_swift.ts +2 -2
  417. package/project/.sdk/src/cmp/swift/Main_swift.ts +5 -0
  418. package/project/.sdk/src/cmp/swift/Package_swift.ts +1 -1
  419. package/project/.sdk/src/cmp/swift/ReadmeEntity_swift.ts +176 -0
  420. package/project/.sdk/src/cmp/swift/ReadmeExamplesTest_swift.ts +187 -0
  421. package/project/.sdk/src/cmp/swift/ReadmeExplanation_swift.ts +49 -0
  422. package/project/.sdk/src/cmp/swift/ReadmeHowto_swift.ts +159 -0
  423. package/project/.sdk/src/cmp/swift/ReadmeInstall_swift.ts +58 -0
  424. package/project/.sdk/src/cmp/swift/ReadmeIntro_swift.ts +64 -0
  425. package/project/.sdk/src/cmp/swift/ReadmeModel_swift.ts +149 -0
  426. package/project/.sdk/src/cmp/swift/ReadmeOptions_swift.ts +62 -0
  427. package/project/.sdk/src/cmp/swift/ReadmeQuick_swift.ts +232 -0
  428. package/project/.sdk/src/cmp/swift/ReadmeRef_swift.ts +387 -0
  429. package/project/.sdk/src/cmp/swift/ReadmeTopHowto_swift.ts +24 -0
  430. package/project/.sdk/src/cmp/swift/ReadmeTopQuick_swift.ts +105 -0
  431. package/project/.sdk/src/cmp/swift/ReadmeTopTest_swift.ts +77 -0
  432. package/project/.sdk/src/cmp/swift/TestDirect_swift.ts +1 -1
  433. package/project/.sdk/src/cmp/swift/Test_swift.ts +4 -0
  434. package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +19 -6
  435. package/project/.sdk/src/cmp/ts/Entity_ts.ts +3 -3
  436. package/project/.sdk/src/cmp/ts/MainEntity_ts.ts +6 -4
  437. package/project/.sdk/src/cmp/ts/Main_ts.ts +2 -2
  438. package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +4 -4
  439. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +14 -4
  440. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +29 -11
  441. package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +5 -5
  442. package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +4 -4
  443. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +4 -4
  444. package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +17 -15
  445. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +18 -2
  446. package/project/.sdk/src/cmp/zig/Config_zig.ts +22 -4
  447. package/project/.sdk/src/cmp/zig/Entity_zig.ts +4 -4
  448. package/project/.sdk/src/cmp/zig/MainEntity_zig.ts +2 -2
  449. package/project/.sdk/src/cmp/zig/Main_zig.ts +10 -4
  450. package/project/.sdk/src/cmp/zig/Package_zig.ts +61 -0
  451. package/project/.sdk/src/cmp/zig/ReadmeEntity_zig.ts +188 -0
  452. package/project/.sdk/src/cmp/zig/ReadmeExamplesTest_zig.ts +58 -0
  453. package/project/.sdk/src/cmp/zig/ReadmeExplanation_zig.ts +45 -0
  454. package/project/.sdk/src/cmp/zig/ReadmeHowto_zig.ts +143 -0
  455. package/project/.sdk/src/cmp/zig/ReadmeInstall_zig.ts +54 -0
  456. package/project/.sdk/src/cmp/zig/ReadmeIntro_zig.ts +66 -0
  457. package/project/.sdk/src/cmp/zig/ReadmeModel_zig.ts +152 -0
  458. package/project/.sdk/src/cmp/zig/ReadmeOptions_zig.ts +60 -0
  459. package/project/.sdk/src/cmp/zig/ReadmeQuick_zig.ts +211 -0
  460. package/project/.sdk/src/cmp/zig/ReadmeRef_zig.ts +400 -0
  461. package/project/.sdk/src/cmp/zig/ReadmeTopHowto_zig.ts +24 -0
  462. package/project/.sdk/src/cmp/zig/ReadmeTopQuick_zig.ts +96 -0
  463. package/project/.sdk/src/cmp/zig/ReadmeTopTest_zig.ts +82 -0
  464. package/project/.sdk/src/cmp/zig/TestDirect_zig.ts +66 -0
  465. package/project/.sdk/src/cmp/zig/TestEntity_zig.ts +79 -0
  466. package/project/.sdk/src/cmp/zig/Test_zig.ts +17 -61
  467. package/project/.sdk/tm/clojure/src/voxgig/struct.clj +1 -1
  468. package/project/.sdk/tm/cpp/test/feature_test.cpp +19 -0
  469. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +8 -16
  470. package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +10 -28
  471. package/project/.sdk/tm/dart/lib/utility/MakeRequestUtility.dart +4 -1
  472. package/project/.sdk/tm/dart/lib/utility/voxgig_struct.dart +7 -1
  473. package/project/.sdk/tm/dart/test/primary_test.dart +7 -0
  474. package/project/.sdk/tm/elixir/lib/utility/struct/voxgig_struct.ex +1 -1
  475. package/project/.sdk/tm/elixir/test/primary_utility_test.exs +7 -1
  476. package/project/.sdk/tm/go/feature/test_feature.go +33 -1
  477. package/project/.sdk/tm/go/test/primary_utility_test.go +41 -42
  478. package/project/.sdk/tm/go/test/runner_test.go +30 -1
  479. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +3 -1
  480. package/project/.sdk/tm/haskell/test/Harness.hs +8 -3
  481. package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +7 -24
  482. package/project/.sdk/tm/js/Makefile +1 -1
  483. package/project/.sdk/tm/js/jsconfig.json +12 -0
  484. package/project/.sdk/tm/js/src/feature/test/TestFeature.js +18 -1
  485. package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +8 -0
  486. package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +7 -20
  487. package/project/.sdk/tm/lean/LICENSE +21 -0
  488. package/project/.sdk/tm/lean/VERSION +1 -0
  489. package/project/.sdk/tm/lean/src/SdkFeature.lean +171 -0
  490. package/project/.sdk/tm/lean/src/SdkFeatures.lean +602 -0
  491. package/project/.sdk/tm/lean/src/SdkJson.lean +134 -0
  492. package/project/.sdk/tm/lean/src/SdkRuntime.lean +356 -0
  493. package/project/.sdk/tm/lean/src/SdkUtility.lean +617 -0
  494. package/project/.sdk/tm/lean/src/VoxgigStruct.lean +2880 -0
  495. package/project/.sdk/tm/lean/src/Vregex.lean +412 -0
  496. package/project/.sdk/tm/lean/src/feature/README.md +5 -0
  497. package/project/.sdk/tm/lean/src/feature/audit/.gitkeep +0 -0
  498. package/project/.sdk/tm/lean/src/feature/base/.gitkeep +0 -0
  499. package/project/.sdk/tm/lean/src/feature/cache/.gitkeep +0 -0
  500. package/project/.sdk/tm/lean/src/feature/clienttrack/.gitkeep +0 -0
  501. package/project/.sdk/tm/lean/src/feature/debug/.gitkeep +0 -0
  502. package/project/.sdk/tm/lean/src/feature/idempotency/.gitkeep +0 -0
  503. package/project/.sdk/tm/lean/src/feature/log/.gitkeep +0 -0
  504. package/project/.sdk/tm/lean/src/feature/metrics/.gitkeep +0 -0
  505. package/project/.sdk/tm/lean/src/feature/netsim/.gitkeep +0 -0
  506. package/project/.sdk/tm/lean/src/feature/paging/.gitkeep +0 -0
  507. package/project/.sdk/tm/lean/src/feature/proxy/.gitkeep +0 -0
  508. package/project/.sdk/tm/lean/src/feature/ratelimit/.gitkeep +0 -0
  509. package/project/.sdk/tm/lean/src/feature/rbac/.gitkeep +0 -0
  510. package/project/.sdk/tm/lean/src/feature/retry/.gitkeep +0 -0
  511. package/project/.sdk/tm/lean/src/feature/streaming/.gitkeep +0 -0
  512. package/project/.sdk/tm/lean/src/feature/telemetry/.gitkeep +0 -0
  513. package/project/.sdk/tm/lean/src/feature/test/.gitkeep +0 -0
  514. package/project/.sdk/tm/lean/src/feature/timeout/.gitkeep +0 -0
  515. package/project/.sdk/tm/lean/test/StructCorpus.lean +697 -0
  516. package/project/.sdk/tm/lean/test/TFeature.lean +268 -0
  517. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +349 -0
  518. package/project/.sdk/tm/lua/test/primary_utility_test.lua +10 -8
  519. package/project/.sdk/tm/ocaml/Makefile +5 -1
  520. package/project/.sdk/tm/perl/t/primary_utility.t +8 -17
  521. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +9 -7
  522. package/project/.sdk/tm/php/utility/struct/Struct.php +1 -1
  523. package/project/.sdk/tm/py/feature/test_feature.py +28 -1
  524. package/project/.sdk/tm/py/test/test_primary_utility.py +13 -18
  525. package/project/.sdk/tm/py/utility/voxgig_struct/voxgig_struct.py +1 -1
  526. package/project/.sdk/tm/rb/feature/test_feature.rb +24 -1
  527. package/project/.sdk/tm/rb/test/primary_utility_test.rb +7 -8
  528. package/project/.sdk/tm/rb/utility/struct/voxgig_struct.rb +1 -1
  529. package/project/.sdk/tm/rust/tests/common/mod.rs +37 -1
  530. package/project/.sdk/tm/rust/tests/primary_utility_test.rs +12 -26
  531. package/project/.sdk/tm/scala/sdktest/SdkTestMain.scala +8 -59
  532. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +7 -8
  533. package/project/.sdk/tm/ts/Makefile +1 -1
  534. package/project/.sdk/tm/ts/src/feature/test/TestFeature.ts +18 -1
  535. package/project/.sdk/tm/ts/test/utility/PrimaryUtility.test.ts +65 -21
  536. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +1 -1
  537. package/src/cmp/Entity.ts +5 -1
  538. package/src/cmp/Feature.ts +2 -1
  539. package/src/cmp/ReadmeErrors.ts +2 -2
  540. package/src/cmp/ReadmeExplanation.ts +3 -3
  541. package/src/cmp/ReadmeTop.ts +2 -2
  542. package/src/helpers/canonType.ts +121 -25
  543. package/src/helpers/collectDeps.ts +39 -12
  544. package/src/helpers/naming.ts +106 -0
  545. package/src/helpers/opExample.ts +43 -20
  546. package/src/helpers/opShape.ts +197 -11
  547. package/src/sdkgen.ts +13 -3
  548. package/src/tsconfig.json +2 -0
  549. package/project/.sdk/tm/zig/build.zig.zon +0 -11
@@ -0,0 +1,176 @@
1
+
2
+ import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape } from '@voxgig/sdkgen'
3
+
4
+ import {
5
+ KIT,
6
+ getModelPath,
7
+ } from '@voxgig/apidef'
8
+
9
+ import { swiftVarName } from './utility_swift'
10
+
11
+
12
+ // Type names come from the shared canonToType 'swift' column (single source of truth).
13
+
14
+ // A type-correct Swift `Value` literal for a field's canonical type.
15
+ function swiftLit(type: any, placeholder: string = 'example'): string {
16
+ const k = canonKey(type)
17
+ if ('INTEGER' === k) return '.int(1)'
18
+ if ('NUMBER' === k) return '.double(1.0)'
19
+ if ('BOOLEAN' === k) return '.bool(true)'
20
+ if ('ARRAY' === k) return '.list([])'
21
+ if ('OBJECT' === k) return '.map(VMap())'
22
+ return `.string("${placeholder}")`
23
+ }
24
+
25
+
26
+ // Operation method spelling for Swift: methods over the loose object model,
27
+ // taking optional (reqmatch/reqdata, ctrl) and throwing on error. The op
28
+ // descriptions are language-agnostic.
29
+ const OP_DESC: Record<string, { method: string, desc: string }> = {
30
+ load: { method: 'load(match, nil)', desc: 'Load a single entity by match criteria.' },
31
+ list: { method: 'list(nil, nil)', desc: 'List entities, optionally matching the given criteria.' },
32
+ create: { method: 'create(data, nil)', desc: 'Create a new entity with the given data.' },
33
+ update: { method: 'update(data, nil)', desc: 'Update an existing entity.' },
34
+ remove: { method: 'remove(match, nil)', desc: 'Remove the matching entity.' },
35
+ }
36
+
37
+
38
+ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
39
+ const { target } = props
40
+ const { model } = props.ctx$
41
+
42
+ const entity = getModelPath(model, `main.${KIT}.entity`)
43
+
44
+ const publishedEntities = each(entity)
45
+ .filter((entity: any) => entity.active !== false)
46
+
47
+ if (0 === publishedEntities.length) {
48
+ return
49
+ }
50
+
51
+ Content(`
52
+
53
+ ## Entities
54
+
55
+ `)
56
+
57
+ publishedEntities.map((entity: any) => {
58
+ const opnames = Object.keys(entity.op || {})
59
+ const fields = entity.fields || []
60
+ // Model-driven id key: null when this entity has no id-like field.
61
+ const idF = entityIdField(entity)
62
+ // Sanitise the local variable name — a camelCased Swift keyword gets a
63
+ // trailing underscore (swiftVarName) so the snippet compiles.
64
+ const eVar = swiftVarName(entity.name)
65
+ const accessor = entity.Name
66
+
67
+ Content(`
68
+ ### ${entity.Name}
69
+
70
+ `)
71
+
72
+ if (entity.short) {
73
+ Content(`${entity.short}
74
+
75
+ `)
76
+ }
77
+
78
+ Content(`Create an instance: \`let ${eVar} = client.${accessor}()\`
79
+
80
+ `)
81
+
82
+ if (opnames.length > 0) {
83
+ Content(`#### Operations
84
+
85
+ | Method | Description |
86
+ | --- | --- |
87
+ `)
88
+ opnames.map((opname: string) => {
89
+ const info = OP_DESC[opname]
90
+ if (info) {
91
+ Content(`| \`${info.method}\` | ${info.desc} |
92
+ `)
93
+ }
94
+ })
95
+
96
+ Content(`
97
+ `)
98
+ }
99
+
100
+ if (fields.length > 0) {
101
+ Content(`#### Fields
102
+
103
+ | Field | Type | Description |
104
+ | --- | --- | --- |
105
+ `)
106
+
107
+ each(fields, (field: any) => {
108
+ const desc = field.short || ''
109
+ Content(`| \`${field.name}\` | \`${canonToType(field.type, target.name)}\` | ${desc} |
110
+ `)
111
+ })
112
+
113
+ Content(`
114
+ `)
115
+ }
116
+
117
+ if (opnames.includes('load')) {
118
+ // The id key plus every REQUIRED match key (parent path params like
119
+ // page_id) — the same shape the runtime resolves path params from, so
120
+ // the example always works.
121
+ const loadItems = opRequestShape(entity, 'load').items
122
+ .filter((it: any) => !it.optional || it.name === idF)
123
+ .sort((a: any, b: any) =>
124
+ (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
125
+ const loadArg = 0 < loadItems.length
126
+ ? `VMap([${loadItems.map((it: any) =>
127
+ `("${it.name}", ${swiftLit(it.type,
128
+ it.name === idF ? entity.name + '_id' : it.name)})`).join(', ')}])`
129
+ : 'nil'
130
+ Content(`#### Example: Load
131
+
132
+ \`\`\`swift
133
+ let ${eVar} = try client.${accessor}().load(${loadArg}, nil)
134
+ \`\`\`
135
+
136
+ `)
137
+ }
138
+
139
+ if (opnames.includes('list')) {
140
+ Content(`#### Example: List
141
+
142
+ \`\`\`swift
143
+ let ${eVar}List = try client.${accessor}().list(nil, nil)
144
+ \`\`\`
145
+
146
+ `)
147
+ }
148
+
149
+ if (opnames.includes('create')) {
150
+ // Members come from the SAME shape the runtime validates
151
+ // (opRequestShape): every required member must appear — including a
152
+ // required id and parent keys like page_id — with a real literal.
153
+ const createItems = opRequestShape(entity, 'create').items
154
+ .filter((it: any) => !it.optional)
155
+ Content(`#### Example: Create
156
+
157
+ \`\`\`swift
158
+ let ${eVar} = try client.${accessor}().create(VMap([
159
+ `)
160
+ createItems.map((it: any, i: number) => {
161
+ const comma = i < createItems.length - 1 ? ',' : ''
162
+ Content(` ("${it.name}", ${swiftLit(it.type, 'example_' + it.name)})${comma} // ${canonToType(it.type, target.name)}
163
+ `)
164
+ })
165
+ Content(`]), nil)
166
+ \`\`\`
167
+
168
+ `)
169
+ }
170
+ })
171
+ })
172
+
173
+
174
+ export {
175
+ ReadmeEntity
176
+ }
@@ -0,0 +1,187 @@
1
+
2
+ import { cmp, File, Content } from '@voxgig/sdkgen'
3
+
4
+
5
+ // Emits Tests/ProjectNameSDKTests/ReadmeExamplesTest.swift — a PRESENCE +
6
+ // STRUCTURE gate over every swift fenced block in the repository ROOT
7
+ // README.md, the per-language swift/README.md, AND swift/REFERENCE.md. It is a
8
+ // plain XCTestCase (no @testable import — it only reads the doc files off
9
+ // disk), resolved relative to the test file via #filePath.
10
+ //
11
+ // SCOPE NOTE (deliberate, documented): the Python/TS/Go equivalents EXECUTE and
12
+ // type-check every documented block. That is infeasible here — the generated
13
+ // Swift SDK compiles with SwiftPM only (no in-process Swift compiler wired into
14
+ // the test runtime), so a test cannot compile-and-run arbitrary doc snippets at
15
+ // test time. This gate therefore guarantees the weaker-but-real invariant that
16
+ // keeps the docs honest as the generator evolves:
17
+ // 1. PRESENCE: every scanned doc that exists holds at least one swift block
18
+ // (nothing was dropped);
19
+ // 2. STRUCTURE: every swift block's braces / parens / brackets balance
20
+ // (ignoring string literals and line comments), catching a truncated or
21
+ // malformed generated snippet.
22
+ //
23
+ // The emitted Swift is written WITHOUT literal backticks (the fence marker is
24
+ // built at runtime as String(repeating: "\u{60}", count: 3)) so this TS
25
+ // template literal stays clean, and uses string concatenation instead of Swift
26
+ // interpolation to keep backslash-escaping in this template minimal.
27
+ const ReadmeExamplesTest = cmp(function ReadmeExamplesTest(props: any) {
28
+ const { ctx$: { model } } = props
29
+
30
+ const Name = model.const.Name
31
+
32
+ File({ name: 'ReadmeExamplesTest.swift' }, () => {
33
+ Content(`// ${Name} SDK — documentation swift-examples PRESENCE + STRUCTURE gate.
34
+ //
35
+ // GUARANTEE (see ReadmeExamplesTest_swift.ts for why this is a structure gate
36
+ // and not an execute gate): every swift example in the docs is accounted for.
37
+ // A dependency-free XCTestCase over every swift fenced code block in three
38
+ // documents:
39
+ // - the repository ROOT README.md (one directory above the swift module),
40
+ // - the per-language swift/README.md,
41
+ // - the per-language swift/REFERENCE.md.
42
+ //
43
+ // Checks, PER DOCUMENT that exists:
44
+ // 1. PRESENCE: the doc holds at least one swift block.
45
+ // 2. STRUCTURE: every swift block's braces / parens / brackets balance, so a
46
+ // truncated or malformed generated snippet fails loudly. An unclosed fence
47
+ // (odd number of fence markers) also fails, rather than silently absorbing
48
+ // the trailing text as a block.
49
+ //
50
+ // GENERATED by @voxgig/sdkgen — do not edit by hand.
51
+
52
+ import XCTest
53
+ import Foundation
54
+
55
+ final class ReadmeExamplesTest: XCTestCase {
56
+ private struct Doc { let label: String; let path: String }
57
+
58
+ private let NL: Character = "\\n"
59
+
60
+ // The triple-backtick fence, built at runtime so this source carries no
61
+ // literal backticks.
62
+ private var fence: String { String(repeating: "\\u{60}", count: 3) }
63
+
64
+ // The three documents to scan, resolved relative to this test file.
65
+ private func docs() -> [Doc] {
66
+ let here = URL(fileURLWithPath: #filePath)
67
+ .deletingLastPathComponent() // ProjectNameSDKTests
68
+ .deletingLastPathComponent() // Tests
69
+ .deletingLastPathComponent() // swift (module dir)
70
+ let project = here.deletingLastPathComponent() // project (holds root README)
71
+ return [
72
+ Doc(label: "root README", path: project.appendingPathComponent("README.md").path),
73
+ Doc(label: "swift README.md", path: here.appendingPathComponent("README.md").path),
74
+ Doc(label: "swift REFERENCE.md", path: here.appendingPathComponent("REFERENCE.md").path),
75
+ ]
76
+ }
77
+
78
+ // Extract every swift fenced block. Split on the triple-backtick fence:
79
+ // odd-indexed segments are the inside of a fenced block (info string on the
80
+ // first line, then the code). Only blocks whose info string is exactly
81
+ // "swift" are returned.
82
+ private func swiftBlocks(_ text: String) -> [String] {
83
+ let parts = text.components(separatedBy: fence)
84
+ var blocks: [String] = []
85
+ var i = 1
86
+ while i < parts.count {
87
+ let seg = parts[i]
88
+ let split = seg.split(separator: NL, maxSplits: 1, omittingEmptySubsequences: false)
89
+ let first = split.first.map { String($0) } ?? ""
90
+ let info = first.trimmingCharacters(in: .whitespaces)
91
+ if info == "swift" {
92
+ blocks.append(split.count > 1 ? String(split[1]) : "")
93
+ }
94
+ i += 2
95
+ }
96
+ return blocks
97
+ }
98
+
99
+ // True when the doc has a fence that was opened but never closed. A
100
+ // well-formed doc holds fence markers in open/close pairs, so an ODD number
101
+ // of markers means the final fence dangles — the split-based scan above would
102
+ // otherwise silently treat the truncated tail as a block. This is the
103
+ // structural analogue of an at-EOF "still inside a block" check.
104
+ private func hasUnclosedFence(_ text: String) -> Bool {
105
+ let fenceCount = text.components(separatedBy: fence).count - 1
106
+ return fenceCount % 2 != 0
107
+ }
108
+
109
+ // True when every open/close delimiter balances, ignoring characters inside
110
+ // string literals and line comments (a generated snippet never nests an
111
+ // unbalanced delimiter outside those, and this catches truncation).
112
+ private func balanced(_ block: String) -> Bool {
113
+ var stack: [Character] = []
114
+ var inString = false
115
+ var escaped = false
116
+ let chars = Array(block)
117
+ var i = 0
118
+ while i < chars.count {
119
+ let ch = chars[i]
120
+ if inString {
121
+ if escaped { escaped = false }
122
+ else if ch == "\\\\" { escaped = true }
123
+ else if ch == "\\"" { inString = false }
124
+ i += 1
125
+ continue
126
+ }
127
+ if ch == "\\"" { inString = true; i += 1; continue }
128
+ if ch == "/" && i + 1 < chars.count && chars[i + 1] == "/" {
129
+ while i < chars.count && chars[i] != NL { i += 1 }
130
+ continue
131
+ }
132
+ switch ch {
133
+ case "(": stack.append(")")
134
+ case "[": stack.append("]")
135
+ case "{": stack.append("}")
136
+ case ")", "]", "}":
137
+ if stack.isEmpty || stack.removeLast() != ch { return false }
138
+ default: break
139
+ }
140
+ i += 1
141
+ }
142
+ return stack.isEmpty && !inString
143
+ }
144
+
145
+ private func read(_ path: String) -> String? {
146
+ return try? String(contentsOfFile: path, encoding: .utf8)
147
+ }
148
+
149
+ // PRESENCE: each doc that exists holds at least one swift block.
150
+ func testDocExamplesPresent() {
151
+ for doc in docs() {
152
+ guard let text = read(doc.path) else { continue }
153
+ let blocks = swiftBlocks(text)
154
+ XCTAssertGreaterThan(blocks.count, 0,
155
+ "expected at least one swift block in " + doc.label)
156
+ }
157
+ }
158
+
159
+ // STRUCTURE: every swift block's delimiters balance.
160
+ func testDocExamplesWellFormed() {
161
+ var failures: [String] = []
162
+ for doc in docs() {
163
+ guard let text = read(doc.path) else { continue }
164
+ // A fence opened but never closed is a malformed doc — fail loudly rather
165
+ // than silently absorbing the unterminated tail as a block.
166
+ if hasUnclosedFence(text) {
167
+ failures.append(doc.label + " has an unclosed swift code fence")
168
+ }
169
+ let blocks = swiftBlocks(text)
170
+ var balancedCount = 0
171
+ for (i, b) in blocks.enumerated() {
172
+ if balanced(b) { balancedCount += 1 }
173
+ else { failures.append(doc.label + " swift block #" + String(i) + " has unbalanced delimiters") }
174
+ }
175
+ print("[readme-examples] " + doc.label + " swift blocks: total=" + String(blocks.count) + " balanced=" + String(balancedCount))
176
+ }
177
+ XCTAssertTrue(failures.isEmpty, failures.joined(separator: "; "))
178
+ }
179
+ }
180
+ `)
181
+ })
182
+ })
183
+
184
+
185
+ export {
186
+ ReadmeExamplesTest
187
+ }
@@ -0,0 +1,49 @@
1
+
2
+ import { cmp, Content } from '@voxgig/sdkgen'
3
+
4
+
5
+ const ReadmeExplanation = cmp(function ReadmeExplanation(props: any) {
6
+ const { target, ctx$: { model } } = props
7
+
8
+ const SDK = model.const.Name + 'SDK'
9
+
10
+ Content(`### Data as loose values
11
+
12
+ The Swift SDK uses a loose object model — the vendored \`Value\` enum
13
+ (with \`VMap\` / \`VList\` wrappers) throughout — rather than a bespoke typed
14
+ struct per endpoint. This mirrors the dynamic nature of the API and keeps the
15
+ SDK flexible: no regeneration is needed when the API schema changes.
16
+
17
+ Use the \`.asMap\` / \`.asList\` / \`.asString\` accessors to safely coerce a
18
+ \`Value\` to a concrete Swift type (each returns \`nil\` on a type mismatch).
19
+ A \`${model.const.Name}Types.swift\` file of reference \`struct\` types is also
20
+ generated for editor documentation.
21
+
22
+ ### Project structure
23
+
24
+ \`\`\`
25
+ swift/
26
+ ├── Package.swift -- SwiftPM manifest (zero runtime deps)
27
+ ├── Sources/ProjectNameSDK/
28
+ │ ├── core/ -- Main client, config, entity base, error type
29
+ │ ├── entity/ -- Generated entity clients
30
+ │ ├── feature/ -- Built-in features (Base, Test, Log, ...)
31
+ │ ├── utility/ -- Utility functions
32
+ │ └── Struct/ -- Vendored Voxgig Struct port
33
+ └── Tests/ProjectNameSDKTests/ -- Test suites (XCTest)
34
+ \`\`\`
35
+
36
+ The main client class (\`${SDK}\`, under \`Sources/ProjectNameSDK/core\`)
37
+ exposes the entity accessors. Reference entity or utility types directly only
38
+ when needed. The SDK is dependency-free: JSON parsing is the vendored
39
+ \`Struct/JSON.swift\`, HTTP transport is Foundation's \`URLSession\`, and the
40
+ struct library is inlined under \`Struct/\`.
41
+
42
+ `)
43
+
44
+ })
45
+
46
+
47
+ export {
48
+ ReadmeExplanation
49
+ }
@@ -0,0 +1,159 @@
1
+
2
+ import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, pickExampleEntity, opRequestShape } from '@voxgig/sdkgen'
3
+
4
+ import {
5
+ KIT,
6
+ getModelPath,
7
+ } from '@voxgig/apidef'
8
+
9
+ import { swiftVarName } from './utility_swift'
10
+
11
+
12
+ // A type-correct Swift `Value` literal for a field's canonical type.
13
+ function swiftLit(type: any): string {
14
+ const k = canonKey(type)
15
+ if ('INTEGER' === k) return '.int(1)'
16
+ if ('NUMBER' === k) return '.double(1.0)'
17
+ if ('BOOLEAN' === k) return '.bool(true)'
18
+ if ('ARRAY' === k) return '.list([])'
19
+ if ('OBJECT' === k) return '.map(VMap())'
20
+ return '.string("example")'
21
+ }
22
+
23
+
24
+ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
25
+ const { target, ctx$: { model } } = props
26
+
27
+ const SDK = model.const.Name + 'SDK'
28
+
29
+ const entity = getModelPath(model, `main.${KIT}.entity`)
30
+ // Pick an entity with a real op (prefer a read op). primaryOp is null only
31
+ // when NO entity exposes any op (a direct()-only SDK).
32
+ const { entity: exampleEntity, primaryOp } = pickExampleEntity(entity)
33
+ const eName = exampleEntity ? exampleEntity.Name : 'Entity'
34
+ const eVar = exampleEntity ? swiftVarName(exampleEntity.name) : 'entity'
35
+ // Model-driven id key: null when the entity has no id-like field, so a
36
+ // match op takes an empty match.
37
+ const idF = exampleEntity ? entityIdField(exampleEntity) : null
38
+ const isMatchOp = 'load' === primaryOp || 'remove' === primaryOp
39
+ let testArg = 'nil'
40
+ if (exampleEntity && isMatchOp) {
41
+ testArg = idF ? `VMap([("${idF}", .string("test01"))])` : 'nil'
42
+ } else if (exampleEntity && ('create' === primaryOp || 'update' === primaryOp)) {
43
+ const items = opRequestShape(exampleEntity, primaryOp).items
44
+ .filter((it: any) => it.name !== idF && it.name !== 'id')
45
+ const required = items.filter((it: any) => !it.optional)
46
+ const chosen = required.length ? required : items.slice(0, 3)
47
+ testArg = `VMap([${chosen.map((it: any) =>
48
+ `("${it.name}", ${swiftLit(it.type)})`).join(', ')}])`
49
+ }
50
+
51
+ // The op-driven test-mode line, shown only when the SDK has an entity op.
52
+ // A direct()-only SDK (no ops anywhere) shows a direct() call instead.
53
+ const testModeExample = primaryOp
54
+ ? `// Entity ops return the bare record and throw on error.
55
+ let ${eVar} = try client.${eName}().${primaryOp}(${testArg}, nil)
56
+ // ${eVar} holds the mock response record
57
+ print(${eVar})`
58
+ : `let result = client.direct(VMap([
59
+ ("path", .string("/api/resource")),
60
+ ("method", .string("GET")),
61
+ ]))
62
+ print(result)`
63
+
64
+ const apikeyEnvLine = isAuthActive(model)
65
+ ? `\n${envName(model)}_APIKEY=<your-key>`
66
+ : ''
67
+
68
+ Content(`### Make a direct HTTP request
69
+
70
+ For endpoints not covered by entity methods:
71
+
72
+ \`\`\`swift
73
+ let result = client.direct(VMap([
74
+ ("path", .string("/api/resource/{id}")),
75
+ ("method", .string("GET")),
76
+ ("params", .map([("id", .string("example"))])),
77
+ ]))
78
+
79
+ if result.entries["ok"] == .bool(true) {
80
+ print(result.entries["status"] ?? .noval) // 200
81
+ print(result.entries["data"] ?? .noval) // response body
82
+ }
83
+ else {
84
+ // A non-2xx response carries status + data (the error body); a
85
+ // transport-level failure carries err instead. Only one is present, so
86
+ // an absent key simply reads as .noval.
87
+ print(result.entries["status"] ?? .noval, result.entries["err"] ?? .noval)
88
+ }
89
+ \`\`\`
90
+
91
+ ### Prepare a request without sending it
92
+
93
+ \`\`\`swift
94
+ // prepare() returns the fetch definition and throws on error.
95
+ let fetchdef = try client.prepare(VMap([
96
+ ("path", .string("/api/resource/{id}")),
97
+ ("method", .string("DELETE")),
98
+ ("params", .map([("id", .string("example"))])),
99
+ ]))
100
+
101
+ print(fetchdef.entries["url"] ?? .noval)
102
+ print(fetchdef.entries["method"] ?? .noval)
103
+ print(fetchdef.entries["headers"] ?? .noval)
104
+ \`\`\`
105
+
106
+ ### Use test mode
107
+
108
+ Create a mock client for unit testing — no server required:
109
+
110
+ \`\`\`swift
111
+ let client = ${SDK}.testSDK(nil, nil)
112
+
113
+ ${testModeExample}
114
+ \`\`\`
115
+
116
+ ### Use a custom fetch function
117
+
118
+ Replace the HTTP transport with your own \`SystemFetch\` closure:
119
+
120
+ \`\`\`swift
121
+ let fetch: SystemFetch = { url, _ in
122
+ let m = VMap()
123
+ m.entries["status"] = .int(200)
124
+ m.entries["statusText"] = .string("OK")
125
+ m.entries["headers"] = .map(VMap())
126
+ m.entries["json"] = .nat({ () -> Value in .map(VMap([("id", .string("mock01"))])) } as NativeCall0)
127
+ return .map(m)
128
+ }
129
+
130
+ let system = VMap()
131
+ system.entries["fetch"] = .nat(fetch)
132
+ let options = VMap()
133
+ options.entries["base"] = .string("http://localhost:8080")
134
+ options.entries["system"] = .map(system)
135
+ let client = ${SDK}(options)
136
+ \`\`\`
137
+
138
+ ### Run live tests
139
+
140
+ Create a \`.env.local\` file at the project root:
141
+
142
+ \`\`\`
143
+ ${envName(model)}_TEST_LIVE=TRUE${apikeyEnvLine}
144
+ \`\`\`
145
+
146
+ Then run:
147
+
148
+ \`\`\`bash
149
+ cd swift && make test
150
+ \`\`\`
151
+
152
+ `)
153
+
154
+ })
155
+
156
+
157
+ export {
158
+ ReadmeHowto
159
+ }
@@ -0,0 +1,58 @@
1
+
2
+ import { cmp, Content, isPublished, repoInfo } from '@voxgig/sdkgen'
3
+
4
+
5
+ const ReadmeInstall = cmp(function ReadmeInstall(props: any) {
6
+ const { target, ctx$ } = props
7
+ const { model } = ctx$
8
+
9
+ if (isPublished(model, target.name)) {
10
+ Content(`Add the package as a dependency in your \`Package.swift\`:
11
+
12
+ \`\`\`swift
13
+ dependencies: [
14
+ .package(url: "<repo-url>", from: "0.0.1"),
15
+ ],
16
+ \`\`\`
17
+
18
+ Or build from a source checkout — the SDK is a plain SwiftPM package:
19
+
20
+ \`\`\`bash
21
+ cd swift && swift build
22
+ \`\`\`
23
+
24
+ `)
25
+ return
26
+ }
27
+
28
+ // Publish pending: not yet on the SwiftPM registry (git-tag only). The
29
+ // generated SDK is a dependency-free SwiftPM package (Foundation + the
30
+ // vendored Voxgig Struct port), so install it from the git release tag or a
31
+ // local source checkout and build with SwiftPM.
32
+ const { releasesUrl } = repoInfo(model)
33
+ Content(`This package is not yet published to a SwiftPM registry. The generated SDK
34
+ is a dependency-free SwiftPM package (Foundation only, plus the vendored
35
+ Voxgig Struct port). Depend on it from the GitHub release tag
36
+ (\`${target.name}/vX.Y.Z\`, see [Releases](${releasesUrl})) by adding it to
37
+ your \`Package.swift\`:
38
+
39
+ \`\`\`swift
40
+ dependencies: [
41
+ // From the git release tag:
42
+ .package(url: "<repo-url>", exact: "0.0.1"),
43
+ ],
44
+ \`\`\`
45
+
46
+ Or build from a source checkout with SwiftPM:
47
+
48
+ \`\`\`bash
49
+ cd swift && swift build
50
+ \`\`\`
51
+
52
+ `)
53
+ })
54
+
55
+
56
+ export {
57
+ ReadmeInstall
58
+ }
@@ -0,0 +1,64 @@
1
+
2
+ import { cmp, Content } from '@voxgig/sdkgen'
3
+
4
+ import {
5
+ KIT,
6
+ getModelPath,
7
+ } from '@voxgig/apidef'
8
+
9
+
10
+ const ReadmeIntro = cmp(function ReadmeIntro(props: any) {
11
+ const { target, ctx$: { model } } = props
12
+ const info = (model.main && model.main.kit && model.main.kit.info) || {}
13
+ const tagline = info.tagline || ''
14
+
15
+ Content(`# ${model.Name} ${target.title} SDK
16
+
17
+ ${tagline}
18
+
19
+ The ${target.title} SDK for the ${model.Name} API — an entity-oriented client following idiomatic Swift conventions.
20
+
21
+ `)
22
+
23
+ // Emphasise the entity-oriented design: the SDK surfaces the API as
24
+ // capitalised, semantic Entities with a small, uniform verb set rather
25
+ // than raw URL paths and query strings. The example entity name is
26
+ // derived from the model, never hardcoded.
27
+ const entity = getModelPath(model, `main.${KIT}.entity`)
28
+ const exampleEntity = Object.values(entity || {})
29
+ .find((e: any) => e.active !== false) as any
30
+ const example = exampleEntity
31
+ ? `for example \`client.${exampleEntity.Name}()\` — each`
32
+ : 'each'
33
+
34
+ // Model-driven op list — only the operations the active entities actually
35
+ // expose (a read-only entity has just list+load); never claim
36
+ // create/update/remove exist when no entity has them.
37
+ const CANON_OPS = ['list', 'load', 'create', 'update', 'remove']
38
+ const opSet = new Set<string>()
39
+ Object.values(entity || {}).forEach((e: any) => {
40
+ if (!e || e.active === false) return
41
+ Object.keys(e.op || {}).forEach((o: string) => {
42
+ if (e.op[o] && e.op[o].active !== false) opSet.add(o)
43
+ })
44
+ })
45
+ const opNames = CANON_OPS.filter((o) => opSet.has(o))
46
+ .concat([...opSet].filter((o) => !CANON_OPS.includes(o)))
47
+ const opList = (opNames.length ? opNames : ['list', 'load'])
48
+ .map((o) => '`' + o + '`').join(', ')
49
+
50
+ Content(`The SDK exposes the API as capitalised, semantic **Entities** — ${example}
51
+ carrying a small, uniform set of operations (${opList}) instead of raw URL
52
+ paths and query strings. You work with named resources and verbs, which
53
+ keeps the cognitive load low.
54
+
55
+ > Other languages, the CLI, and MCP server live alongside this one — see
56
+ > the [top-level README](../README.md).
57
+
58
+ `)
59
+ })
60
+
61
+
62
+ export {
63
+ ReadmeIntro
64
+ }