@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,207 @@
1
+ import {
2
+ Content,
3
+ File,
4
+ Folder,
5
+ cmp,
6
+ each,
7
+ } from '@voxgig/sdkgen'
8
+
9
+ import {
10
+ KIT,
11
+ Model,
12
+ getModelPath,
13
+ } from '@voxgig/apidef'
14
+
15
+
16
+ // True when an op has at least one endpoint point that needs no path params
17
+ // (a top-level operation the live smoke test can call without an id).
18
+ function hasParamFreePoint(op: any): boolean {
19
+ if (null == op) return false
20
+ const points = op.points || []
21
+ for (const pt of points) {
22
+ const params = ((pt.args || {}).params) || []
23
+ if (params.length === 0) return true
24
+ }
25
+ return false
26
+ }
27
+
28
+
29
+ // Synthesize a create payload from the entity's required non-id fields.
30
+ function synthData(fields: any): any {
31
+ const o: any = {}
32
+ each(fields, (f: any) => {
33
+ if (f.req && f.name !== 'id') {
34
+ const t = String(f.type || '').toLowerCase()
35
+ o[f.name] =
36
+ (t.includes('number') || t.includes('integer') || t.includes('decimal')) ? 42
37
+ : t.includes('bool') ? true
38
+ : 'leantest'
39
+ }
40
+ })
41
+ return o
42
+ }
43
+
44
+
45
+ // The generated `test/Runner.lean` exe runs TWO lanes:
46
+ //
47
+ // - OFFLINE (always): a test-mode client seeded from the entity's generated
48
+ // `<Entity>TestData.json` answers operations from an in-memory store, so
49
+ // entity behaviour (list/load/create/load-back/remove) is verified with no
50
+ // server — the same guarantee the `test` feature gives the other targets.
51
+ // - LIVE (only when SDK_TEST_BASE is set): the same flow against a real
52
+ // server, exercising the curl transport end to end.
53
+ const Test = cmp(async function Test(props: any) {
54
+ const ctx$ = props.ctx$
55
+ const target = props.target
56
+ const model: Model = ctx$.model
57
+
58
+ const entity = getModelPath(model, `main.${KIT}.entity`)
59
+
60
+ // Per-entity OFFLINE (test-mode) blocks: seeded store, no server.
61
+ let offline = ''
62
+ each(entity, (e: any) => {
63
+ const ns = e.name.charAt(0).toUpperCase() + e.name.slice(1)
64
+ const Name = e.Name || (e.name.charAt(0).toUpperCase() + e.name.slice(1))
65
+ const ops = e.op || {}
66
+ if (!ops.list && !ops.load) return
67
+ offline += ` -- ${e.name}: offline (test-mode) entity behaviour
68
+ (do
69
+ let seedPath := "../.sdk/test/entity/${e.name}/${Name}TestData.json"
70
+ if !(← System.FilePath.pathExists seedPath) then
71
+ IO.println s!"skip - ${e.name}: no seed at {seedPath}"
72
+ else do
73
+ let seed ← SdkJson.jsonRead (← IO.FS.readFile seedPath)
74
+ let tclient ← Sdk.testSdk0 seed
75
+ let existing ← SdkRuntime.gp (← SdkRuntime.gp seed "existing") "${e.name}"
76
+ let ids ← keysof existing
77
+ -- list returns every seeded entity
78
+ let items ← ${ns}.list tclient (← emptyMap) (← emptyMap)
79
+ let n ← (match items with | .list lid => do pure (← listItems lid).size | _ => pure 0)
80
+ if n == ids.size then pass s!"${e.name}.list offline -> {n} seeded"
81
+ else fail s!"${e.name}.list offline: got {n}, want {ids.size}"
82
+ -- load the first seeded entity by id
83
+ if ids.size > 0 then do
84
+ let wid := ids[0]!
85
+ let m ← newMap #[("id", .str wid)]
86
+ let got ← ${ns}.load tclient m (← emptyMap)
87
+ let gid ← SdkRuntime.gpS got "id"
88
+ if gid == wid then pass s!"${e.name}.load offline (id={wid})"
89
+ else fail s!"${e.name}.load offline: got {gid}, want {wid}"
90
+ -- create -> load back -> remove, all in the store
91
+ let newmap ← SdkRuntime.gp (← SdkRuntime.gp seed "new") "${e.name}"
92
+ let nks ← keysof newmap
93
+ if nks.size > 0 then do
94
+ let payload ← SdkRuntime.gp newmap nks[0]!
95
+ let created ← ${ns}.create tclient payload (← emptyMap)
96
+ let cid ← SdkRuntime.gpS created "id"
97
+ if cid == "" then fail "${e.name}.create offline returned no id" else do
98
+ let m2 ← newMap #[("id", .str cid)]
99
+ let back ← ${ns}.load tclient m2 (← emptyMap)
100
+ if (← SdkRuntime.gpS back "id") == cid then
101
+ pass s!"${e.name}.create/load offline (id={cid})"
102
+ else fail s!"${e.name}.create/load offline mismatch"
103
+ let _ ← ${ns}.remove tclient m2 (← emptyMap)
104
+ let gone ← ${ns}.load tclient m2 (← emptyMap)
105
+ match gone with
106
+ | .map _ => fail s!"${e.name}.remove offline: still present"
107
+ | _ => pass s!"${e.name}.remove offline (id={cid})")
108
+ `
109
+ })
110
+
111
+ // Per-entity LIVE test blocks.
112
+ let blocks = ''
113
+ each(entity, (e: any) => {
114
+ const ns = e.name.charAt(0).toUpperCase() + e.name.slice(1)
115
+ const listOp = (e.op || {}).list
116
+ const createOp = (e.op || {}).create
117
+ const removeOp = (e.op || {}).remove
118
+
119
+ if (hasParamFreePoint(listOp)) {
120
+ blocks += ` -- ${e.name}: list smoke
121
+ (do
122
+ let items ← ${ns}.list client (← emptyMap) (← emptyMap)
123
+ match items with
124
+ | .list lid => pass s!"${e.name}.list -> {(← listItems lid).size} items"
125
+ | _ => fail "${e.name}.list did not return a list")
126
+ `
127
+ }
128
+
129
+ // Round-trip when create is param-free (creatable without an id); load and
130
+ // remove then use the id returned by create.
131
+ const loadOp = (e.op || {}).load
132
+ if (hasParamFreePoint(createOp) && loadOp && removeOp) {
133
+ const data = JSON.stringify(synthData(e.fields))
134
+ blocks += ` -- ${e.name}: create / load / remove round-trip
135
+ (do
136
+ let d ← SdkJson.jsonRead ${JSON.stringify(data)}
137
+ let created ← ${ns}.create client d (← emptyMap)
138
+ let nid ← SdkRuntime.gpS created "id"
139
+ if nid == "" then fail "${e.name}.create returned no id" else do
140
+ let m ← newMap #[("id", .str nid)]
141
+ let back ← ${ns}.load client m (← emptyMap)
142
+ let bid ← SdkRuntime.gpS back "id"
143
+ if bid == nid then pass s!"${e.name}.create/load round-trip (id={nid})"
144
+ else fail s!"${e.name}.load mismatch: {bid} != {nid}"
145
+ let _ ← ${ns}.remove client m (← emptyMap)
146
+ pass s!"${e.name}.remove (id={nid})")
147
+ `
148
+ }
149
+ })
150
+
151
+ // The live lane nests two levels deeper than the offline lane.
152
+ const liveBlocks = blocks.split('\n').map((l) => l ? ' ' + l : l).join('\n')
153
+
154
+ Folder({ name: 'test' }, () => {
155
+ File({ name: 'Runner.' + target.ext }, () => {
156
+ Content(`-- ${model.const.Name} SDK test runner (generated by @voxgig/sdkgen).
157
+ --
158
+ -- OFFLINE lane (always): a test-mode client seeded from the generated entity
159
+ -- test data answers operations from an in-memory store — no server needed.
160
+ -- LIVE lane (only when SDK_TEST_BASE is set): the same flow over real HTTP.
161
+
162
+ import VoxgigStruct
163
+ import SdkJson
164
+ import SdkRuntime
165
+ import SdkClient
166
+
167
+ open VoxgigStruct
168
+
169
+ initialize npass : IO.Ref Nat ← IO.mkRef 0
170
+ initialize nfail : IO.Ref Nat ← IO.mkRef 0
171
+
172
+ def pass (msg : String) : SIO Unit := do
173
+ npass.modify (· + 1)
174
+ IO.println s!"ok - {msg}"
175
+
176
+ def fail (msg : String) : SIO Unit := do
177
+ nfail.modify (· + 1)
178
+ IO.println s!"FAIL - {msg}"
179
+
180
+ def defaultBase : String := "http://localhost:8901"
181
+
182
+ def main : IO UInt32 := do
183
+ let liveBase ← IO.getEnv "SDK_TEST_BASE"
184
+ let ctx ← mkCtx
185
+ let offline : SIO Unit := do
186
+ ${offline} offline.run ctx
187
+ match liveBase with
188
+ | none => IO.println "skip - live lane (set SDK_TEST_BASE to enable)"
189
+ | some base => do
190
+ let live : SIO Unit := do
191
+ let opts ← newMap #[("base", .str base)]
192
+ let client ← Sdk.newSdk opts
193
+ ${liveBlocks} live.run ctx
194
+ let p ← npass.get
195
+ let f ← nfail.get
196
+ IO.println ""
197
+ IO.println s!"PASS {p} FAIL {f}"
198
+ if f > 0 then return 1 else return 0
199
+ `)
200
+ })
201
+ })
202
+ })
203
+
204
+
205
+ export {
206
+ Test
207
+ }
@@ -0,0 +1,78 @@
1
+ import * as Path from 'node:path'
2
+
3
+ import {
4
+ clone,
5
+ walk,
6
+ } from '@voxgig/struct'
7
+
8
+
9
+ function projectPath(suffix?: string): string {
10
+ return Path.normalize(Path.join(__dirname, '../../..', suffix ?? ''))
11
+ }
12
+
13
+
14
+ // A Lean 4 string literal. Lean strings are UTF-8, so non-ASCII passes through;
15
+ // only the structural characters need escaping. (Backticks are ordinary in Lean
16
+ // strings, so the config's `body`-style transform exprs embed verbatim.)
17
+ function leanString(s: string): string {
18
+ let out = '"'
19
+ for (const ch of String(s)) {
20
+ if (ch === '"') out += '\\"'
21
+ else if (ch === '\\') out += '\\\\'
22
+ else if (ch === '\n') out += '\\n'
23
+ else if (ch === '\t') out += '\\t'
24
+ else if (ch === '\r') out += '\\r'
25
+ else out += ch
26
+ }
27
+ return out + '"'
28
+ }
29
+
30
+
31
+ // Lean reserved words that cannot be bare identifiers.
32
+ const LEAN_RESERVED = new Set<string>([
33
+ 'do', 'let', 'fun', 'match', 'with', 'if', 'then', 'else', 'by', 'end',
34
+ 'namespace', 'section', 'open', 'import', 'def', 'partial', 'mutual',
35
+ 'structure', 'inductive', 'class', 'instance', 'where', 'deriving', 'return',
36
+ 'try', 'catch', 'for', 'in', 'while', 'have', 'show', 'from', 'set_option',
37
+ ])
38
+
39
+
40
+ // A collision-free lower-camel Lean identifier for a model name.
41
+ function leanVarName(name: string): string {
42
+ let s = String(name).replace(/[^a-zA-Z0-9_]/g, '_')
43
+ if (s.length === 0) {
44
+ s = 'x'
45
+ }
46
+ s = s.charAt(0).toLowerCase() + s.slice(1)
47
+ if (!/^[a-z_]/.test(s)) {
48
+ s = 'e_' + s
49
+ }
50
+ return LEAN_RESERVED.has(s) ? s + '_' : s
51
+ }
52
+
53
+
54
+ // The lowercase-hyphenated package name (used for the lake package + repo).
55
+ function pkgName(model: any): string {
56
+ const org = (model.origin || 'voxgig-sdk').replace(/-sdk$/, '')
57
+ return `${org}-${model.name}-sdk`.toLowerCase().replace(/[^a-z0-9-]/g, '-')
58
+ }
59
+
60
+
61
+ // Remove `$`-suffixed model annotation keys (so the embedded config is clean).
62
+ function clean(o: any) {
63
+ return walk(clone(o), (k: any, v: any, p: any) => {
64
+ if (null != k && k.endsWith('$')) {
65
+ delete p[k]
66
+ }
67
+ return v
68
+ })
69
+ }
70
+
71
+
72
+ export {
73
+ clean,
74
+ leanString,
75
+ leanVarName,
76
+ pkgName,
77
+ projectPath,
78
+ }
@@ -54,7 +54,7 @@ const Config = cmp(async function Config(props: any) {
54
54
 
55
55
  File({ name: 'config.' + target.ext }, () => {
56
56
 
57
- Content(`-- ProjectName SDK configuration
57
+ Content(`-- ${model.const.Name} SDK configuration
58
58
 
59
59
  local function make_config()
60
60
  return {
@@ -21,7 +21,7 @@ import {
21
21
  File, Content,
22
22
  } from '@voxgig/sdkgen'
23
23
 
24
- import { canonToType, opTypeName, opRequestShape } from '@voxgig/sdkgen'
24
+ import { canonToType, opTypeName, opRequestShape, warnEntityTypeCollisions , deriveEntityNames } from '@voxgig/sdkgen'
25
25
 
26
26
  import {
27
27
  KIT,
@@ -41,14 +41,27 @@ function propKey(name: string): string {
41
41
 
42
42
  const EntityTypes = cmp(function EntityTypes(props: any) {
43
43
  const { target } = props
44
- const { model } = props.ctx$
45
-
46
- const entity = getModelPath(model, `main.${KIT}.entity`)
47
- const entityList = each(entity).filter((e: any) => e.active !== false)
44
+ const { model, log } = props.ctx$
45
+
46
+ // only_active:false getModelPath DROPS active:false entries by default,
47
+ // but the consumer scaffold (create-sdkgen Root.ts) iterates the RAW entity
48
+ // collection, so inactive entities still get generated entity code that
49
+ // references these typed names. The typed model must cover them too.
50
+ const entity = getModelPath(model, `main.${KIT}.entity`, { only_active: false, required: false })
51
+ // Emit for EVERY entity that gets generated entity code: the consumer
52
+ // scaffold (create-sdkgen Root.ts) iterates entities WITHOUT an active
53
+ // filter, so inactive entities still get class files referencing these
54
+ // typed names. Filter on `name` (always present), NOT `active` — parity
55
+ // with the go emitter's fix.
56
+ const entityList = deriveEntityNames(entity)
48
57
  // Derive the PascalCase Name up-front — it is set LAZILY by names(), so an
49
58
  // entity not yet named (e.g. a fieldless placeholder) would otherwise read
50
59
  // `Name = undefined` below. Parity with the go emitter's fix.
51
- entityList.forEach((e: any) => { if (null == e.Name) names(e, e.name) })
60
+
61
+ // Surface duplicate generated type names (two entities with the same
62
+ // PascalCase Name) — they would redeclare a type in statically-typed
63
+ // targets. Detection only; renaming is a model-level decision.
64
+ warnEntityTypeCollisions(entity, log, LANG)
52
65
 
53
66
  File({ name: model.name + '_types.' + (target.ext || LANG) }, () => {
54
67
 
@@ -4,7 +4,7 @@ import * as Path from 'node:path'
4
4
  import {
5
5
  cmp, each, camelify, names,
6
6
  File, Content, Folder, Fragment, Line, FeatureHook, Slot,
7
- entityClassName,
7
+ entityClassName, entityCollection,
8
8
  } from '@voxgig/sdkgen'
9
9
 
10
10
  import {
@@ -24,7 +24,7 @@ const Entity = cmp(function Entity(props: any) {
24
24
  // data-type name. The class is a module-local table (snake-cased file name),
25
25
  // so this is used only for the local identifier — kept uniform with the other
26
26
  // languages.
27
- const entityColl = getModelPath(model, `main.${KIT}.entity`)
27
+ const entityColl = entityCollection(model)
28
28
  const cls = entityClassName(entity, entityColl)
29
29
 
30
30
  const entrep = {
@@ -40,7 +40,7 @@ const Entity = cmp(function Entity(props: any) {
40
40
 
41
41
  File({ name: entity.name + '_entity.' + target.ext }, () => {
42
42
 
43
- const opnames = Object.keys(entity.op)
43
+ const opnames = Object.keys(entity.op || {})
44
44
 
45
45
  const opfrags =
46
46
  (['load', 'list', 'create', 'update', 'remove']
@@ -55,7 +55,19 @@ const Main = cmp(async function Main(props: any) {
55
55
  replace: {
56
56
  ...props.ctx$.stdrep,
57
57
 
58
- '#BuildFeatures': ({ indent }: any) => {
58
+ // Load the LuaLS typed-model annotations module so it is part of
59
+ // the loaded program (module body is empty — no runtime effect) and
60
+ // does not depend on workspace-wide language-server scanning.
61
+ // NOTE: plain marker keys must EMBED the lua comment prefix
62
+ // (`-- #X`) — jostraca's bare `#X` form only matches `//`-style
63
+ // comment lines (cf. the `'-- #LoadOp'` keys in Entity_lua.ts).
64
+ '-- #TypesRequire': ({ indent }: any) => Content({ indent },
65
+ `-- Typed-model annotations (LuaLS ---@class); empty at runtime.\n` +
66
+ `require("${model.name}_types")`),
67
+
68
+ // Same embedded `-- ` prefix requirement as above (the bare
69
+ // '#BuildFeatures' key never matched the lua comment line).
70
+ '-- #BuildFeatures': ({ indent }: any) => {
59
71
  each(feature, (feat: any) => {
60
72
  const fname = feat.name.charAt(0).toUpperCase() + feat.name.slice(1)
61
73
  Content({ indent }, ` -- feature: ${feat.name}
@@ -90,7 +102,7 @@ self._utility.feature_hook(self._rootctx, "${name}")
90
102
 
91
103
  // Generate feature factory module
92
104
  File({ name: 'features.' + target.ext }, () => {
93
- Content(`-- ProjectName SDK feature factory
105
+ Content(`-- ${model.const.Name} SDK feature factory
94
106
 
95
107
  local BaseFeature = require("feature.base_feature")
96
108
  `)
@@ -57,7 +57,7 @@ dependencies = {
57
57
  `)
58
58
 
59
59
  const seen = new Set<string>(['lua', 'dkjson'])
60
- for (const d of collectDeps(model, target.name, target.deps)) {
60
+ for (const d of collectDeps(model, target.name, target.deps, ctx$.log)) {
61
61
  if (seen.has(d.name)) continue
62
62
  seen.add(d.name)
63
63
  const v = d.source === 'target' ? (d.version || '0.0') : d.version
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape, safeVarName } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, entityIdField, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -63,7 +63,7 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
63
63
  const idF = entityIdField(entity)
64
64
  // Sanitise the local variable name — an entity whose lowercased name is a
65
65
  // Lua keyword (e.g. `end`) would otherwise emit uncompilable code.
66
- const eVar = safeVarName(entity.name, 'lua')
66
+ const eVar = exampleVarName(entity.name, 'lua')
67
67
 
68
68
  Content(`
69
69
  ### ${entity.Name}
@@ -36,7 +36,12 @@ const ReadmeHowto = cmp(function ReadmeHowto(props: any) {
36
36
  const isMatchOp = 'load' === primaryOp || 'remove' === primaryOp
37
37
  let testCallArg = ''
38
38
  if (exampleEntity && isMatchOp) {
39
- testCallArg = idF ? `{ ${idF} = "test01" }` : ''
39
+ const items = opRequestShape(exampleEntity, primaryOp).items
40
+ .filter((it: any) => !it.optional || it.name === idF)
41
+ .sort((a: any, b: any) => (a.name === idF ? 0 : 1) - (b.name === idF ? 0 : 1))
42
+ testCallArg = 0 < items.length
43
+ ? `{ ${items.map((it: any) => `${luaKey(it.name)} = ${it.name === idF ? '"test01"' : luaLit(it.type)}`).join(', ')} }`
44
+ : ''
40
45
  } else if (exampleEntity && ('create' === primaryOp || 'update' === primaryOp)) {
41
46
  const items = opRequestShape(exampleEntity, primaryOp).items
42
47
  .filter((it: any) => it.name !== idF && it.name !== 'id')
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, isAuthActive, envName, canonKey, opRequestShape, entityIdField, entityDataIdField, entityOps, safeVarName } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, isAuthActive, envName, canonKey, opRequestShape, entityIdField, entityDataIdField, entityOps, safeVarName, exampleVarName } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -45,7 +45,7 @@ local client = ${ctor}
45
45
  const article = /^[aeiou]/i.test(eName) ? "an" : "a"
46
46
  // Sanitise the local variable name — an entity whose lowercased name is a
47
47
  // Lua keyword (e.g. `end`) would otherwise emit uncompilable code.
48
- const eVar = safeVarName(eName.toLowerCase(), 'lua')
48
+ const eVar = exampleVarName(eName.toLowerCase(), 'lua')
49
49
  const opnames = entityOps(exampleEntity)
50
50
  // Model-driven id key: `idF` is the MATCH key (null when none). `dataIdF`
51
51
  // is the id on the RETURNED record's data type — an entity can key its match
@@ -108,7 +108,7 @@ end
108
108
  if (nestedEntity) {
109
109
  const neName = nom(nestedEntity, 'Name')
110
110
  const neArticle = /^[aeiou]/i.test(neName) ? "an" : "a"
111
- const neVar = safeVarName(neName.toLowerCase(), 'lua')
111
+ const neVar = exampleVarName(neName.toLowerCase(), 'lua')
112
112
 
113
113
  // Model-driven match: every REQUIRED load-match key — the same shape
114
114
  // the runtime resolves path params from, so the example always works.
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content, canonToType, canonKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, canonKey, File, isAuthActive, entityIdField, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -176,7 +176,7 @@ same parameters as \`direct()\`.
176
176
  const idF = entityIdField(ent)
177
177
  // Sanitise the local variable name — an entity whose lowercased name is
178
178
  // a Lua keyword (e.g. `end`) would otherwise emit uncompilable code.
179
- const eVar = safeVarName(ent.name, 'lua')
179
+ const eVar = exampleVarName(ent.name, 'lua')
180
180
 
181
181
  Content(`
182
182
  ---
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, opRequestShape, safeVarName } from '@voxgig/sdkgen'
2
+ import { cmp, Content, isAuthActive, envName, canonKey, entityIdField, opRequestShape, safeVarName, exampleVarName } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -48,7 +48,7 @@ local client = ${ctor}
48
48
  const eName = nom(exampleEntity, 'Name')
49
49
  // Sanitise the local variable name — an entity whose lowercased name is a
50
50
  // Lua keyword (e.g. `end`) would otherwise emit uncompilable code.
51
- const eVar = safeVarName(eName.toLowerCase(), 'lua')
51
+ const eVar = exampleVarName(eName.toLowerCase(), 'lua')
52
52
  const opnames = Object.keys(exampleEntity.op || {})
53
53
  // Model-driven id key: null when the entity has no id-like field, in which
54
54
  // case the load example takes no match argument.
@@ -70,7 +70,7 @@ const TestDirect = cmp(function TestDirect(props: any) {
70
70
  ? `\n apikey = env["${PROJECTNAME}_APIKEY"],`
71
71
  : ''
72
72
 
73
- const opnames = Object.keys(entity.op)
73
+ const opnames = Object.keys(entity.op || {})
74
74
  const hasLoad = opnames.includes('load')
75
75
  const hasList = opnames.includes('list')
76
76
 
@@ -78,8 +78,8 @@ const TestDirect = cmp(function TestDirect(props: any) {
78
78
  return
79
79
  }
80
80
 
81
- const loadOp = entity.op.load
82
- const listOp = entity.op.list
81
+ const loadOp = entity.op?.load
82
+ const listOp = entity.op?.list
83
83
 
84
84
  const loadPoint = loadOp?.points?.[0]
85
85
  const loadPath = loadPoint ? normalizePathParams(loadPoint.parts || [], loadPoint?.args?.params || [], loadPoint?.rename?.param) : ''
@@ -24,6 +24,7 @@ import {
24
24
  buildIdNames,
25
25
  getMatchEntries,
26
26
  isAuthActive,
27
+ entityDataIdField,
27
28
  } from '@voxgig/sdkgen'
28
29
 
29
30
 
@@ -49,7 +50,7 @@ const TestEntity = cmp(function TestEntity(props: any) {
49
50
  // it only applies to entities that declare a list op. Others (e.g. Batch =
50
51
  // create/load) have no list endpoint — make_point errors and the stream
51
52
  // yields nothing — so skip the stream test for them.
52
- const hasList = !!(entity.op && (entity.op as any).list)
53
+ const hasList = !!(entity.op && (entity.op as any)?.list)
53
54
 
54
55
  const basicflow: ModelEntityFlow | undefined =
55
56
  getModelPath(model, `main.${KIT}.flow.Basic${nom(entity, 'Name')}Flow`)
@@ -342,6 +343,7 @@ const generateCreate: OpGen = (ctx, step, index) => {
342
343
 
343
344
  const generateList: OpGen = (ctx, step, index) => {
344
345
  const { entity, flow } = ctx
346
+ const hasDataId = null != entityDataIdField(entity)
345
347
  const ref = step.input.ref ?? entity.name + '_ref01'
346
348
  const entvar = step.input.entvar ?? ref + '_ent'
347
349
  const matchvar = step.input.matchvar ?? (ref + '_match' + (step.input.suffix ?? ''))
@@ -387,7 +389,7 @@ const generateList: OpGen = (ctx, step, index) => {
387
389
  const hasRefData = validRef && allSteps.some((s: any) => 'create' === s.op &&
388
390
  ((s.input.ref ?? entity.name + '_ref01') === validRef))
389
391
 
390
- if ('ItemExists' === validator.apply && hasRefData) {
392
+ if ('ItemExists' === validator.apply && hasRefData && hasDataId) {
391
393
  const refDataVar = validRef + '_data'
392
394
  Content(`
393
395
  local found_item = vs.select(
@@ -395,7 +397,7 @@ const generateList: OpGen = (ctx, step, index) => {
395
397
  { id = ${refDataVar}["id"] })
396
398
  assert.is_false(vs.isempty(found_item))
397
399
  `)
398
- } else if ('ItemNotExists' === validator.apply && hasRefData) {
400
+ } else if ('ItemNotExists' === validator.apply && hasRefData && hasDataId) {
399
401
  const refDataVar = validRef + '_data'
400
402
  Content(`
401
403
  local not_found_item = vs.select(
@@ -548,6 +550,9 @@ const generateLoad: OpGen = (ctx, step, index) => {
548
550
 
549
551
  const generateRemove: OpGen = (ctx, step, index) => {
550
552
  const { entity, flow } = ctx
553
+ if (null == entityDataIdField(entity)) {
554
+ return
555
+ }
551
556
  const ref = step.input.ref ?? entity.name + '_ref01'
552
557
  const entvar = step.input.entvar ?? ref + '_ent'
553
558
  const matchvar = step.input.matchvar ?? (ref + '_match' + (step.input.suffix ?? ''))
@@ -24,7 +24,7 @@ const Test = cmp(function Test(props: any) {
24
24
 
25
25
  // Generate exists test
26
26
  File({ name: 'exists_test.' + target.ext }, () => {
27
- Content(`-- ProjectName SDK exists test
27
+ Content(`-- ${model.const.Name} SDK exists test
28
28
 
29
29
  local sdk = require("${model.name}_sdk")
30
30
 
@@ -8,6 +8,8 @@ local helpers = require("core.helpers")
8
8
  -- Load utility registration (populates Utility._registrar)
9
9
  require("utility.register")
10
10
 
11
+ -- #TypesRequire
12
+
11
13
  -- Load features
12
14
  local BaseFeature = require("feature.base_feature")
13
15
  local features_factory = require("features")