@voxgig/sdkgen 1.2.0 → 1.3.1

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 (329) hide show
  1. package/bin/voxgig-sdkgen +2 -2
  2. package/dist/action/action.d.ts +2 -1
  3. package/dist/action/action.js +15 -9
  4. package/dist/action/action.js.map +1 -1
  5. package/dist/action/feature.js +6 -3
  6. package/dist/action/feature.js.map +1 -1
  7. package/dist/action/target.d.ts +7 -1
  8. package/dist/action/target.js +13 -6
  9. package/dist/action/target.js.map +1 -1
  10. package/dist/cmp/Changelog.d.ts +2 -0
  11. package/dist/cmp/Changelog.js +30 -0
  12. package/dist/cmp/Changelog.js.map +1 -0
  13. package/dist/cmp/Deploy.d.ts +2 -0
  14. package/dist/cmp/Deploy.js +227 -0
  15. package/dist/cmp/Deploy.js.map +1 -0
  16. package/dist/cmp/FeatureHook.js +5 -6
  17. package/dist/cmp/FeatureHook.js.map +1 -1
  18. package/dist/cmp/License.d.ts +2 -0
  19. package/dist/cmp/License.js +44 -0
  20. package/dist/cmp/License.js.map +1 -0
  21. package/dist/cmp/Readme.js +2 -0
  22. package/dist/cmp/Readme.js.map +1 -1
  23. package/dist/cmp/ReadmeErrors.d.ts +2 -0
  24. package/dist/cmp/ReadmeErrors.js +210 -0
  25. package/dist/cmp/ReadmeErrors.js.map +1 -0
  26. package/dist/cmp/ReadmeExplanation.js +213 -223
  27. package/dist/cmp/ReadmeExplanation.js.map +1 -1
  28. package/dist/cmp/ReadmeModel.js +6 -1
  29. package/dist/cmp/ReadmeModel.js.map +1 -1
  30. package/dist/cmp/ReadmeTop.js +389 -82
  31. package/dist/cmp/ReadmeTop.js.map +1 -1
  32. package/dist/cmp/Security.d.ts +2 -0
  33. package/dist/cmp/Security.js +36 -0
  34. package/dist/cmp/Security.js.map +1 -0
  35. package/dist/helpers/canonType.d.ts +7 -0
  36. package/dist/helpers/canonType.js +74 -0
  37. package/dist/helpers/canonType.js.map +1 -0
  38. package/dist/helpers/collectDeps.d.ts +3 -2
  39. package/dist/helpers/collectDeps.js.map +1 -1
  40. package/dist/helpers/naming.d.ts +3 -0
  41. package/dist/helpers/naming.js +51 -0
  42. package/dist/helpers/naming.js.map +1 -0
  43. package/dist/helpers/opExample.d.ts +13 -0
  44. package/dist/helpers/opExample.js +149 -0
  45. package/dist/helpers/opExample.js.map +1 -0
  46. package/dist/helpers/opShape.d.ts +18 -0
  47. package/dist/helpers/opShape.js +193 -0
  48. package/dist/helpers/opShape.js.map +1 -0
  49. package/dist/helpers/packageMeta.d.ts +27 -0
  50. package/dist/helpers/packageMeta.js +224 -0
  51. package/dist/helpers/packageMeta.js.map +1 -0
  52. package/dist/sdkgen.d.ts +11 -1
  53. package/dist/sdkgen.js +57 -18
  54. package/dist/sdkgen.js.map +1 -1
  55. package/dist/tsconfig.tsbuildinfo +1 -1
  56. package/dist/types.d.ts +65 -2
  57. package/dist/types.js.map +1 -1
  58. package/dist/utility.js +20 -11
  59. package/dist/utility.js.map +1 -1
  60. package/model/sdkgen.aontu +137 -0
  61. package/package.json +13 -6
  62. package/project/.sdk/model/target/go-cli.jsonic +47 -0
  63. package/project/.sdk/model/target/go-mcp.jsonic +41 -0
  64. package/project/.sdk/model/target/go.jsonic +9 -3
  65. package/project/.sdk/model/target/js.jsonic +13 -0
  66. package/project/.sdk/model/target/lua.jsonic +13 -0
  67. package/project/.sdk/model/target/php.jsonic +13 -0
  68. package/project/.sdk/model/target/py.jsonic +13 -0
  69. package/project/.sdk/model/target/rb.jsonic +13 -0
  70. package/project/.sdk/model/target/ts.jsonic +13 -0
  71. package/project/.sdk/src/cmp/go/EntityOperation_go.ts +1 -0
  72. package/project/.sdk/src/cmp/go/EntityTypes_go.ts +197 -0
  73. package/project/.sdk/src/cmp/go/Entity_go.ts +2 -1
  74. package/project/.sdk/src/cmp/go/MainEntity_go.ts +6 -0
  75. package/project/.sdk/src/cmp/go/Main_go.ts +23 -3
  76. package/project/.sdk/src/cmp/go/Package_go.ts +1 -1
  77. package/project/.sdk/src/cmp/go/ReadmeEntity_go.ts +18 -6
  78. package/project/.sdk/src/cmp/go/ReadmeExamplesTest_go.ts +684 -0
  79. package/project/.sdk/src/cmp/go/ReadmeExplanation_go.ts +1 -1
  80. package/project/.sdk/src/cmp/go/ReadmeHowto_go.ts +48 -8
  81. package/project/.sdk/src/cmp/go/ReadmeInstall_go.ts +11 -6
  82. package/project/.sdk/src/cmp/go/ReadmeIntro_go.ts +40 -1
  83. package/project/.sdk/src/cmp/go/ReadmeModel_go.ts +63 -17
  84. package/project/.sdk/src/cmp/go/ReadmeOptions_go.ts +4 -3
  85. package/project/.sdk/src/cmp/go/ReadmeQuick_go.ts +124 -115
  86. package/project/.sdk/src/cmp/go/ReadmeRef_go.ts +28 -15
  87. package/project/.sdk/src/cmp/go/ReadmeTopQuick_go.ts +33 -9
  88. package/project/.sdk/src/cmp/go/ReadmeTopTest_go.ts +35 -5
  89. package/project/.sdk/src/cmp/go/TestEntity_go.ts +1 -1
  90. package/project/.sdk/src/cmp/go/Test_go.ts +5 -1
  91. package/project/.sdk/src/cmp/go/fragment/Entity.fragment.go +21 -0
  92. package/project/.sdk/src/cmp/go/fragment/EntityCreateOp.fragment.go +11 -0
  93. package/project/.sdk/src/cmp/go/fragment/EntityListOp.fragment.go +11 -0
  94. package/project/.sdk/src/cmp/go/fragment/EntityLoadOp.fragment.go +11 -0
  95. package/project/.sdk/src/cmp/go/fragment/EntityRemoveOp.fragment.go +11 -0
  96. package/project/.sdk/src/cmp/go/fragment/EntityUpdateOp.fragment.go +11 -0
  97. package/project/.sdk/src/cmp/go-cli/Main_go-cli.ts +195 -0
  98. package/project/.sdk/src/cmp/go-cli/fragment/main.fragment.go +106 -0
  99. package/project/.sdk/src/cmp/go-cli/fragment/words.fragment.go +132 -0
  100. package/project/.sdk/src/cmp/go-mcp/Main_go-mcp.ts +184 -0
  101. package/project/.sdk/src/cmp/go-mcp/fragment/main.fragment.go +68 -0
  102. package/project/.sdk/src/cmp/go-mcp/fragment/tools.fragment.go +114 -0
  103. package/project/.sdk/src/cmp/js/EntityTypes_js.ts +111 -0
  104. package/project/.sdk/src/cmp/js/MainEntity_js.ts +1 -0
  105. package/project/.sdk/src/cmp/js/Main_js.ts +3 -0
  106. package/project/.sdk/src/cmp/js/Package_js.ts +16 -7
  107. package/project/.sdk/src/cmp/js/ReadmeEntity_js.ts +13 -7
  108. package/project/.sdk/src/cmp/js/ReadmeExplanation_js.ts +2 -2
  109. package/project/.sdk/src/cmp/js/ReadmeHowto_js.ts +52 -11
  110. package/project/.sdk/src/cmp/js/ReadmeIntro_js.ts +39 -1
  111. package/project/.sdk/src/cmp/js/ReadmeModel_js.ts +50 -18
  112. package/project/.sdk/src/cmp/js/ReadmeOptions_js.ts +4 -3
  113. package/project/.sdk/src/cmp/js/ReadmeQuick_js.ts +45 -19
  114. package/project/.sdk/src/cmp/js/ReadmeRef_js.ts +24 -13
  115. package/project/.sdk/src/cmp/js/ReadmeTopHowto_js.ts +3 -0
  116. package/project/.sdk/src/cmp/js/ReadmeTopQuick_js.ts +28 -12
  117. package/project/.sdk/src/cmp/js/ReadmeTopTest_js.ts +23 -3
  118. package/project/.sdk/src/cmp/js/fragment/EntityCreateOp.fragment.js +5 -0
  119. package/project/.sdk/src/cmp/js/fragment/EntityListOp.fragment.js +5 -0
  120. package/project/.sdk/src/cmp/js/fragment/EntityLoadOp.fragment.js +5 -0
  121. package/project/.sdk/src/cmp/js/fragment/EntityRemoveOp.fragment.js +5 -0
  122. package/project/.sdk/src/cmp/js/fragment/EntityUpdateOp.fragment.js +5 -0
  123. package/project/.sdk/src/cmp/js/utility_js.ts +57 -0
  124. package/project/.sdk/src/cmp/lua/EntityTypes_lua.ts +113 -0
  125. package/project/.sdk/src/cmp/lua/MainEntity_lua.ts +8 -0
  126. package/project/.sdk/src/cmp/lua/Main_lua.ts +4 -0
  127. package/project/.sdk/src/cmp/lua/Package_lua.ts +23 -4
  128. package/project/.sdk/src/cmp/lua/ReadmeEntity_lua.ts +12 -10
  129. package/project/.sdk/src/cmp/lua/ReadmeExamplesTest_lua.ts +293 -0
  130. package/project/.sdk/src/cmp/lua/ReadmeHowto_lua.ts +46 -8
  131. package/project/.sdk/src/cmp/lua/ReadmeInstall_lua.ts +19 -3
  132. package/project/.sdk/src/cmp/lua/ReadmeIntro_lua.ts +38 -1
  133. package/project/.sdk/src/cmp/lua/ReadmeModel_lua.ts +51 -16
  134. package/project/.sdk/src/cmp/lua/ReadmeOptions_lua.ts +4 -3
  135. package/project/.sdk/src/cmp/lua/ReadmeQuick_lua.ts +79 -18
  136. package/project/.sdk/src/cmp/lua/ReadmeRef_lua.ts +25 -20
  137. package/project/.sdk/src/cmp/lua/ReadmeTopQuick_lua.ts +17 -9
  138. package/project/.sdk/src/cmp/lua/ReadmeTopTest_lua.ts +32 -5
  139. package/project/.sdk/src/cmp/lua/Test_lua.ts +4 -0
  140. package/project/.sdk/src/cmp/lua/fragment/EntityCreateOp.fragment.lua +4 -0
  141. package/project/.sdk/src/cmp/lua/fragment/EntityListOp.fragment.lua +4 -0
  142. package/project/.sdk/src/cmp/lua/fragment/EntityLoadOp.fragment.lua +4 -0
  143. package/project/.sdk/src/cmp/lua/fragment/EntityRemoveOp.fragment.lua +4 -0
  144. package/project/.sdk/src/cmp/lua/fragment/EntityUpdateOp.fragment.lua +4 -0
  145. package/project/.sdk/src/cmp/php/EntityTypes_php.ts +142 -0
  146. package/project/.sdk/src/cmp/php/MainEntity_php.ts +18 -1
  147. package/project/.sdk/src/cmp/php/Main_php.ts +4 -0
  148. package/project/.sdk/src/cmp/php/Package_php.ts +18 -7
  149. package/project/.sdk/src/cmp/php/ReadmeEntity_php.ts +15 -11
  150. package/project/.sdk/src/cmp/php/ReadmeExamplesTest_php.ts +401 -0
  151. package/project/.sdk/src/cmp/php/ReadmeHowto_php.ts +56 -13
  152. package/project/.sdk/src/cmp/php/ReadmeInstall_php.ts +15 -3
  153. package/project/.sdk/src/cmp/php/ReadmeIntro_php.ts +40 -1
  154. package/project/.sdk/src/cmp/php/ReadmeModel_php.ts +26 -8
  155. package/project/.sdk/src/cmp/php/ReadmeOptions_php.ts +4 -3
  156. package/project/.sdk/src/cmp/php/ReadmeQuick_php.ts +80 -22
  157. package/project/.sdk/src/cmp/php/ReadmeRef_php.ts +51 -42
  158. package/project/.sdk/src/cmp/php/ReadmeTopHowto_php.ts +1 -1
  159. package/project/.sdk/src/cmp/php/ReadmeTopQuick_php.ts +19 -11
  160. package/project/.sdk/src/cmp/php/ReadmeTopTest_php.ts +41 -11
  161. package/project/.sdk/src/cmp/php/TestDirect_php.ts +9 -9
  162. package/project/.sdk/src/cmp/php/TestEntity_php.ts +6 -12
  163. package/project/.sdk/src/cmp/php/Test_php.ts +4 -0
  164. package/project/.sdk/src/cmp/php/fragment/Entity.fragment.php +13 -1
  165. package/project/.sdk/src/cmp/php/fragment/EntityCreateOp.fragment.php +10 -1
  166. package/project/.sdk/src/cmp/php/fragment/EntityListOp.fragment.php +10 -1
  167. package/project/.sdk/src/cmp/php/fragment/EntityLoadOp.fragment.php +10 -1
  168. package/project/.sdk/src/cmp/php/fragment/EntityRemoveOp.fragment.php +10 -1
  169. package/project/.sdk/src/cmp/php/fragment/EntityUpdateOp.fragment.php +10 -1
  170. package/project/.sdk/src/cmp/php/fragment/Main.fragment.php +22 -14
  171. package/project/.sdk/src/cmp/py/EntityTypes_py.ts +184 -0
  172. package/project/.sdk/src/cmp/py/Entity_py.ts +27 -0
  173. package/project/.sdk/src/cmp/py/MainEntity_py.ts +2 -1
  174. package/project/.sdk/src/cmp/py/Main_py.ts +35 -0
  175. package/project/.sdk/src/cmp/py/Package_py.ts +24 -3
  176. package/project/.sdk/src/cmp/py/ReadmeEntity_py.ts +27 -11
  177. package/project/.sdk/src/cmp/py/ReadmeExamplesTest_py.ts +626 -0
  178. package/project/.sdk/src/cmp/py/ReadmeHowto_py.ts +53 -14
  179. package/project/.sdk/src/cmp/py/ReadmeInstall_py.ts +19 -3
  180. package/project/.sdk/src/cmp/py/ReadmeIntro_py.ts +48 -1
  181. package/project/.sdk/src/cmp/py/ReadmeModel_py.ts +28 -10
  182. package/project/.sdk/src/cmp/py/ReadmeOptions_py.ts +4 -3
  183. package/project/.sdk/src/cmp/py/ReadmeQuick_py.ts +73 -24
  184. package/project/.sdk/src/cmp/py/ReadmeRef_py.ts +57 -37
  185. package/project/.sdk/src/cmp/py/ReadmeTopHowto_py.ts +1 -1
  186. package/project/.sdk/src/cmp/py/ReadmeTopQuick_py.ts +19 -11
  187. package/project/.sdk/src/cmp/py/ReadmeTopTest_py.ts +30 -5
  188. package/project/.sdk/src/cmp/py/TestDirect_py.ts +7 -9
  189. package/project/.sdk/src/cmp/py/TestEntity_py.ts +6 -14
  190. package/project/.sdk/src/cmp/py/Test_py.ts +4 -0
  191. package/project/.sdk/src/cmp/py/fragment/Entity.fragment.py +5 -2
  192. package/project/.sdk/src/cmp/py/fragment/EntityCreateOp.fragment.py +1 -1
  193. package/project/.sdk/src/cmp/py/fragment/EntityListOp.fragment.py +5 -1
  194. package/project/.sdk/src/cmp/py/fragment/EntityLoadOp.fragment.py +6 -1
  195. package/project/.sdk/src/cmp/py/fragment/EntityRemoveOp.fragment.py +6 -1
  196. package/project/.sdk/src/cmp/py/fragment/EntityUpdateOp.fragment.py +1 -1
  197. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +17 -10
  198. package/project/.sdk/src/cmp/rb/EntityTypes_rb.ts +136 -0
  199. package/project/.sdk/src/cmp/rb/MainEntity_rb.ts +1 -0
  200. package/project/.sdk/src/cmp/rb/Main_rb.ts +4 -0
  201. package/project/.sdk/src/cmp/rb/Package_rb.ts +34 -7
  202. package/project/.sdk/src/cmp/rb/ReadmeEntity_rb.ts +26 -10
  203. package/project/.sdk/src/cmp/rb/ReadmeExamplesTest_rb.ts +289 -0
  204. package/project/.sdk/src/cmp/rb/ReadmeHowto_rb.ts +72 -21
  205. package/project/.sdk/src/cmp/rb/ReadmeInstall_rb.ts +16 -4
  206. package/project/.sdk/src/cmp/rb/ReadmeIntro_rb.ts +40 -1
  207. package/project/.sdk/src/cmp/rb/ReadmeModel_rb.ts +29 -12
  208. package/project/.sdk/src/cmp/rb/ReadmeOptions_rb.ts +4 -3
  209. package/project/.sdk/src/cmp/rb/ReadmeQuick_rb.ts +85 -22
  210. package/project/.sdk/src/cmp/rb/ReadmeRef_rb.ts +56 -37
  211. package/project/.sdk/src/cmp/rb/ReadmeTopHowto_rb.ts +1 -1
  212. package/project/.sdk/src/cmp/rb/ReadmeTopQuick_rb.ts +19 -11
  213. package/project/.sdk/src/cmp/rb/ReadmeTopTest_rb.ts +43 -11
  214. package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +9 -9
  215. package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +6 -12
  216. package/project/.sdk/src/cmp/rb/Test_rb.ts +4 -0
  217. package/project/.sdk/src/cmp/rb/fragment/Entity.fragment.rb +2 -0
  218. package/project/.sdk/src/cmp/rb/fragment/EntityCreateOp.fragment.rb +5 -0
  219. package/project/.sdk/src/cmp/rb/fragment/EntityListOp.fragment.rb +20 -2
  220. package/project/.sdk/src/cmp/rb/fragment/EntityLoadOp.fragment.rb +8 -1
  221. package/project/.sdk/src/cmp/rb/fragment/EntityRemoveOp.fragment.rb +6 -1
  222. package/project/.sdk/src/cmp/rb/fragment/EntityUpdateOp.fragment.rb +5 -0
  223. package/project/.sdk/src/cmp/rb/fragment/Main.fragment.rb +24 -8
  224. package/project/.sdk/src/cmp/ts/EntityTypes_ts.ts +105 -0
  225. package/project/.sdk/src/cmp/ts/Entity_ts.ts +17 -1
  226. package/project/.sdk/src/cmp/ts/MainEntity_ts.ts +1 -0
  227. package/project/.sdk/src/cmp/ts/Main_ts.ts +6 -0
  228. package/project/.sdk/src/cmp/ts/Package_ts.ts +14 -7
  229. package/project/.sdk/src/cmp/ts/ReadmeEntity_ts.ts +13 -7
  230. package/project/.sdk/src/cmp/ts/ReadmeExampleTest_ts.ts +81 -0
  231. package/project/.sdk/src/cmp/ts/ReadmeExamplesTest_ts.ts +446 -0
  232. package/project/.sdk/src/cmp/ts/ReadmeExplanation_ts.ts +2 -2
  233. package/project/.sdk/src/cmp/ts/ReadmeHowto_ts.ts +57 -11
  234. package/project/.sdk/src/cmp/ts/ReadmeInstall_ts.ts +19 -6
  235. package/project/.sdk/src/cmp/ts/ReadmeIntro_ts.ts +39 -1
  236. package/project/.sdk/src/cmp/ts/ReadmeModel_ts.ts +50 -18
  237. package/project/.sdk/src/cmp/ts/ReadmeOptions_ts.ts +4 -3
  238. package/project/.sdk/src/cmp/ts/ReadmeQuick_ts.ts +95 -40
  239. package/project/.sdk/src/cmp/ts/ReadmeRef_ts.ts +24 -13
  240. package/project/.sdk/src/cmp/ts/ReadmeTopHowto_ts.ts +3 -0
  241. package/project/.sdk/src/cmp/ts/ReadmeTopQuick_ts.ts +44 -12
  242. package/project/.sdk/src/cmp/ts/ReadmeTopTest_ts.ts +23 -3
  243. package/project/.sdk/src/cmp/ts/TestEntity_ts.ts +2 -2
  244. package/project/.sdk/src/cmp/ts/Test_ts.ts +5 -0
  245. package/project/.sdk/src/cmp/ts/fragment/Entity.fragment.ts +3 -1
  246. package/project/.sdk/src/cmp/ts/fragment/EntityBase.fragment.ts +10 -5
  247. package/project/.sdk/src/cmp/ts/fragment/EntityCreateOp.fragment.ts +4 -2
  248. package/project/.sdk/src/cmp/ts/fragment/EntityListOp.fragment.ts +4 -2
  249. package/project/.sdk/src/cmp/ts/fragment/EntityLoadOp.fragment.ts +4 -2
  250. package/project/.sdk/src/cmp/ts/fragment/EntityRemoveOp.fragment.ts +4 -2
  251. package/project/.sdk/src/cmp/ts/fragment/EntityUpdateOp.fragment.ts +4 -2
  252. package/project/.sdk/src/cmp/ts/utility_ts.ts +59 -0
  253. package/project/.sdk/tm/go/LICENSE +1 -1
  254. package/project/.sdk/tm/go/Makefile +36 -1
  255. package/project/.sdk/tm/go/VERSION +1 -0
  256. package/project/.sdk/tm/go/core/context.go +12 -7
  257. package/project/.sdk/tm/go-cli/src/feature/README.md +6 -0
  258. package/project/.sdk/tm/go-cli/src/feature/base/.gitkeep +0 -0
  259. package/project/.sdk/tm/go-cli/src/feature/log/.gitkeep +0 -0
  260. package/project/.sdk/tm/go-cli/src/feature/test/.gitkeep +0 -0
  261. package/project/.sdk/tm/go-mcp/src/feature/README.md +6 -0
  262. package/project/.sdk/tm/go-mcp/src/feature/base/.gitkeep +0 -0
  263. package/project/.sdk/tm/go-mcp/src/feature/log/.gitkeep +0 -0
  264. package/project/.sdk/tm/go-mcp/src/feature/test/.gitkeep +0 -0
  265. package/project/.sdk/tm/js/LICENSE +1 -1
  266. package/project/.sdk/tm/js/Makefile +41 -0
  267. package/project/.sdk/tm/lua/LICENSE +1 -1
  268. package/project/.sdk/tm/lua/Makefile +40 -1
  269. package/project/.sdk/tm/lua/core/context.lua +13 -8
  270. package/project/.sdk/tm/php/LICENSE +1 -1
  271. package/project/.sdk/tm/php/Makefile +31 -1
  272. package/project/.sdk/tm/php/VERSION +1 -0
  273. package/project/.sdk/tm/php/core/Context.php +12 -6
  274. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +13 -4
  275. package/project/.sdk/tm/php/utility/Done.php +2 -2
  276. package/project/.sdk/tm/php/utility/MakeError.php +3 -3
  277. package/project/.sdk/tm/py/LICENSE +1 -1
  278. package/project/.sdk/tm/py/Makefile +34 -1
  279. package/project/.sdk/tm/py/core/context.py +12 -7
  280. package/project/.sdk/tm/py/test/test_primary_utility.py +15 -4
  281. package/project/.sdk/tm/py/utility/done.py +3 -1
  282. package/project/.sdk/tm/py/utility/make_error.py +2 -2
  283. package/project/.sdk/tm/rb/LICENSE +1 -1
  284. package/project/.sdk/tm/rb/Makefile +33 -1
  285. package/project/.sdk/tm/rb/core/context.rb +8 -3
  286. package/project/.sdk/tm/rb/test/primary_utility_test.rb +2 -2
  287. package/project/.sdk/tm/rb/utility/done.rb +3 -1
  288. package/project/.sdk/tm/rb/utility/make_error.rb +5 -2
  289. package/project/.sdk/tm/ts/LICENSE +1 -1
  290. package/project/.sdk/tm/ts/Makefile +42 -0
  291. package/project/.sdk/tm/ts/src/Context.ts +8 -3
  292. package/src/action/action.ts +17 -10
  293. package/src/action/feature.ts +8 -6
  294. package/src/action/target.ts +17 -8
  295. package/src/cmp/Changelog.ts +34 -0
  296. package/src/cmp/Deploy.ts +258 -0
  297. package/src/cmp/FeatureHook.ts +6 -8
  298. package/src/cmp/License.ts +49 -0
  299. package/src/cmp/Readme.ts +2 -0
  300. package/src/cmp/ReadmeErrors.ts +257 -0
  301. package/src/cmp/ReadmeExplanation.ts +250 -230
  302. package/src/cmp/ReadmeModel.ts +7 -2
  303. package/src/cmp/ReadmeTop.ts +411 -95
  304. package/src/cmp/Security.ts +41 -0
  305. package/src/helpers/canonType.ts +89 -0
  306. package/src/helpers/collectDeps.ts +5 -3
  307. package/src/helpers/naming.ts +59 -0
  308. package/src/helpers/opExample.ts +170 -0
  309. package/src/helpers/opShape.ts +236 -0
  310. package/src/helpers/packageMeta.ts +236 -0
  311. package/src/sdkgen.ts +87 -20
  312. package/src/tsconfig.json +1 -0
  313. package/src/types.ts +85 -2
  314. package/src/utility.ts +22 -11
  315. package/README.md +0 -2
  316. package/dist/action/lang.d.ts +0 -2
  317. package/dist/action/lang.js +0 -68
  318. package/dist/action/lang.js.map +0 -1
  319. package/dist/cmp/Hook.d.ts +0 -2
  320. package/dist/cmp/Hook.js +0 -10
  321. package/dist/cmp/Hook.js.map +0 -1
  322. package/dist/cmp/Top.d.ts +0 -2
  323. package/dist/cmp/Top.js +0 -23
  324. package/dist/cmp/Top.js.map +0 -1
  325. package/dist/prepare-openapi.d.ts +0 -2
  326. package/dist/prepare-openapi.js +0 -37
  327. package/dist/prepare-openapi.js.map +0 -1
  328. package/model/sdkgen.jsonic +0 -74
  329. package/project/.sdk/tm/go/utility/struct/go.mod +0 -3
@@ -0,0 +1,142 @@
1
+
2
+
3
+ // Typed-model generator (PHP target).
4
+ //
5
+ // Ported from the TypeScript reference EntityTypes_ts.ts. Reads
6
+ // main.<KIT>.entity.<e>.fields[] and per-op params (op.<name>.points[].args.params[])
7
+ // and emits one file, types/<Sdk>Types.php, containing a PHP 8 class with typed
8
+ // properties per active entity plus a request/match class per active op. Field/param
9
+ // sentinels ($STRING, $INTEGER, ...) are turned into real PHP types by the shared
10
+ // sdkgen helper `canonToType` (source of truth: @voxgig/apidef VALID_CANON):
11
+ // $STRING -> string, $INTEGER -> int, $NUMBER -> float, $BOOLEAN -> bool,
12
+ // $OBJECT/$ARRAY -> array, unknown -> mixed.
13
+ //
14
+ // Type-name scheme (IDENTICAL to TS): data type = <Name>; per-op request
15
+ // <Name>LoadMatch / <Name>ListMatch / <Name>RemoveMatch (query/id ops),
16
+ // <Name>CreateData / <Name>UpdateData (body ops). An op WITH params -> a typed
17
+ // class of those params (reqd:false -> nullable, defaulted null). An op WITHOUT
18
+ // params -> a match class over the entity fields, all nullable/optional (the
19
+ // PHP stand-in for TS `Partial<Name>`; callers may also pass a plain assoc-array).
20
+ //
21
+ // PHP has no generics and no structural typing, so these classes are documentation-
22
+ // grade value objects: op signatures keep a permissive native type (assoc-array in,
23
+ // mixed out at the item-5 boundary) and surface the class names via PHPDoc. The file
24
+ // lands under types/ and is registered on composer's classmap autoload (see
25
+ // Package_php.ts) so `new <Name>()` / type references resolve globally.
26
+
27
+ import {
28
+ cmp, each,
29
+ File, Content, Folder,
30
+ } from '@voxgig/sdkgen'
31
+
32
+ import { canonToType, opTypeName, opRequestShape } from '@voxgig/sdkgen'
33
+
34
+ import {
35
+ KIT,
36
+ getModelPath,
37
+ } from '@voxgig/apidef'
38
+
39
+
40
+ const LANG = 'php'
41
+
42
+
43
+ // A valid PHP property/label name (identifiers only; the corpus never carries
44
+ // exotic field names, but guard so a bad name can never emit invalid PHP).
45
+ function validName(name: string): boolean {
46
+ return /^[A-Za-z_\x80-\xff][A-Za-z0-9_\x80-\xff]*$/.test(name)
47
+ }
48
+
49
+
50
+ // Emit one typed PHP property line. `mixed` is already nullable in PHP and
51
+ // rejects the `?` prefix, so it is special-cased; every other optional field
52
+ // becomes `?type` with a `= null` default so the property is safely optional.
53
+ function propLine(name: string, sentinel: unknown, optional: boolean): string {
54
+ const type = canonToType(sentinel, LANG)
55
+ if ('mixed' === type) {
56
+ return optional
57
+ ? ` public mixed $${name} = null;\n`
58
+ : ` public mixed $${name};\n`
59
+ }
60
+ return optional
61
+ ? ` public ?${type} $${name} = null;\n`
62
+ : ` public ${type} $${name};\n`
63
+ }
64
+
65
+
66
+ const EntityTypes = cmp(function EntityTypes(props: any) {
67
+ const { model } = props.ctx$
68
+
69
+ const entity = getModelPath(model, `main.${KIT}.entity`)
70
+ const entityList = each(entity).filter((e: any) => e.active !== false)
71
+
72
+ Folder({ name: 'types' }, () => {
73
+
74
+ File({ name: model.const.Name + 'Types.' + LANG }, () => {
75
+
76
+ Content(`<?php
77
+ declare(strict_types=1);
78
+
79
+ // Typed models for the ${model.const.Name} SDK.
80
+ //
81
+ // GENERATED from the API model: main.${KIT}.entity.<e>.fields[] and per-op
82
+ // params (op.<name>.points[].args.params[]). Field/param types come from the
83
+ // canonical type sentinels via @voxgig/sdkgen canonToType (source of truth:
84
+ // @voxgig/apidef VALID_CANON). Do not edit by hand.
85
+ //
86
+ // These are documentation-grade value objects (PHP 8 typed properties),
87
+ // registered on the composer classmap autoload. The SDK boundary exchanges
88
+ // assoc-arrays; these classes name the shapes for tooling and typed callers.
89
+
90
+ `)
91
+
92
+ entityList.forEach((ent: any) => {
93
+ const Name = ent.Name
94
+ const fields = (ent.fields ? each(ent.fields) : [])
95
+ .filter((f: any) => f.active !== false && validName(f.name))
96
+
97
+ // Entity data model: one typed property per field (`req:false` -> nullable).
98
+ Content(`/** ${Name} entity data model. */
99
+ class ${Name}
100
+ {
101
+ `)
102
+ fields.forEach((f: any) => {
103
+ Content(propLine(f.name, f.type, false === f.req))
104
+ })
105
+ Content(`}
106
+
107
+ `)
108
+
109
+ // Per active op: a request/match class. Members and their optionality
110
+ // come from the shared partiality policy (opRequestShape); this file
111
+ // only renders them as a PHP value-object class.
112
+ const ops = ent.op || {}
113
+ ;['load', 'list', 'create', 'update', 'remove'].forEach((opname: string) => {
114
+ if (null == ops[opname]) {
115
+ return
116
+ }
117
+
118
+ const typeName = opTypeName(Name, opname)
119
+ const { items } = opRequestShape(ent, opname)
120
+
121
+ Content(`/** Request payload for ${Name}#${opname}. */
122
+ class ${typeName}
123
+ {
124
+ `)
125
+ items.forEach((it: any) => {
126
+ if (validName(it.name)) {
127
+ Content(propLine(it.name, it.type, it.optional))
128
+ }
129
+ })
130
+ Content(`}
131
+
132
+ `)
133
+ })
134
+ })
135
+ })
136
+ })
137
+ })
138
+
139
+
140
+ export {
141
+ EntityTypes,
142
+ }
@@ -13,14 +13,31 @@ const MainEntity = cmp(async function MainEntity(props: any) {
13
13
  const { entity } = props
14
14
  const { model } = props.ctx$
15
15
 
16
- const accessor = PHP_RESERVED_LOWER.has(entity.Name.toLowerCase())
16
+ // Canonical facade method name is the PascalCase entity Name
17
+ // (`$client->${entity.Name}()`). PHP method names are case-insensitive, so
18
+ // the lowercase spelling `$client->${entity.name}()` still resolves here as
19
+ // a convenience — we declare it ONCE under the PascalCase name. An entity
20
+ // literally named 'test' would collide (case-insensitively) with the static
21
+ // `test()` test-mode constructor, so mangle to `<Name>_` in that case.
22
+ const accessor = PHP_RESERVED_LOWER.has(entity.name.toLowerCase())
17
23
  ? entity.Name + '_'
18
24
  : entity.Name
19
25
 
20
26
  Content(`
27
+ private $_${entity.name} = null;
28
+
29
+ // Canonical facade: $client->${accessor}()->list() / ->load(["id" => ...]).
30
+ // PHP method names are case-insensitive, so lowercase $client->${entity.name}()
31
+ // resolves here too.
21
32
  public function ${accessor}($data = null)
22
33
  {
23
34
  require_once __DIR__ . '/entity/${entity.name}_entity.php';
35
+ if ($data === null) {
36
+ if ($this->_${entity.name} === null) {
37
+ $this->_${entity.name} = new ${entity.Name}Entity($this, null);
38
+ }
39
+ return $this->_${entity.name};
40
+ }
24
41
  return new ${entity.Name}Entity($this, $data);
25
42
  }
26
43
 
@@ -22,6 +22,7 @@ import { Package } from './Package_php'
22
22
  import { Config } from './Config_php'
23
23
  import { Gitignore } from './Gitignore_php'
24
24
  import { MainEntity } from './MainEntity_php'
25
+ import { EntityTypes } from './EntityTypes_php'
25
26
 
26
27
 
27
28
  const Main = cmp(async function Main(props: any) {
@@ -84,6 +85,9 @@ const Main = cmp(async function Main(props: any) {
84
85
  Config({ target })
85
86
  })
86
87
 
88
+ // Generate typed models (types/<Sdk>Types.php) — classmap-autoloaded.
89
+ EntityTypes({ target })
90
+
87
91
  // Generate feature factory module
88
92
  File({ name: 'features.' + target.ext }, () => {
89
93
  Content(`<?php
@@ -4,6 +4,9 @@ import {
4
4
  File,
5
5
  cmp,
6
6
  collectDeps,
7
+ pkgDescription,
8
+ keywords,
9
+ repoInfo,
7
10
  } from '@voxgig/sdkgen'
8
11
 
9
12
 
@@ -23,14 +26,25 @@ const Package = cmp(async function Package(props: any) {
23
26
  // "-sdk" (matches the TS Package generator).
24
27
  const ns = model.origin || 'voxgig-sdk'
25
28
  const pkgBase = ns.endsWith('-sdk') ? model.name : `${model.name}-sdk`
29
+ const { repoUrl, issuesUrl } = repoInfo(model)
30
+ const kw = keywords(model).map((k) => `"${k}"`).join(', ')
26
31
 
27
32
  // Generate composer.json
28
33
  File({ name: 'composer.json' }, () => {
29
34
  Content(`{
30
35
  "name": "${ns}/${pkgBase}",
31
- "description": "${model.const.Name} SDK for PHP",
36
+ "description": "${pkgDescription(model, 'php')}",
32
37
  "type": "library",
38
+ "keywords": [${kw}],
39
+ "homepage": "${repoUrl}",
33
40
  "license": "MIT",
41
+ "authors": [
42
+ { "name": "Voxgig", "homepage": "https://voxgig.com" }
43
+ ],
44
+ "support": {
45
+ "issues": "${issuesUrl}",
46
+ "source": "${repoUrl}"
47
+ },
34
48
  "minimum-stability": "stable",
35
49
  "require": {
36
50
  "php": ">=8.2"`)
@@ -47,14 +61,11 @@ const Package = cmp(async function Package(props: any) {
47
61
  "phpunit/phpunit": "^11.0"
48
62
  },
49
63
  "autoload": {
50
- "psr-4": {
51
- "${model.const.Name}\\\\": "src/"
52
- }
64
+ "files": ["${model.const.Name.toLowerCase()}_sdk.php"],
65
+ "classmap": ["core/", "entity/", "feature/", "types/", "utility/", "config.php", "features.php"]
53
66
  },
54
67
  "autoload-dev": {
55
- "psr-4": {
56
- "${model.const.Name}\\\\Tests\\\\": "test/"
57
- }
68
+ "classmap": ["test/"]
58
69
  }
59
70
  }
60
71
  `)
@@ -1,5 +1,5 @@
1
1
 
2
- import { cmp, each, Content } from '@voxgig/sdkgen'
2
+ import { cmp, each, Content, canonToType, entityIdField } from '@voxgig/sdkgen'
3
3
 
4
4
  import {
5
5
  KIT,
@@ -41,6 +41,8 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
41
41
  publishedEntities.map((entity: any) => {
42
42
  const opnames = Object.keys(entity.op || {})
43
43
  const fields = entity.fields || []
44
+ // Model-driven id key: null when this entity has no id-like field.
45
+ const idF = entityIdField(entity)
44
46
 
45
47
  Content(`
46
48
  ### ${entity.Name}
@@ -53,7 +55,7 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
53
55
  `)
54
56
  }
55
57
 
56
- Content(`Create an instance: \`const ${entity.name} = client.${entity.Name}()\`
58
+ Content(`Create an instance: \`$${entity.name} = $client->${entity.Name}();\`
57
59
 
58
60
  `)
59
61
 
@@ -84,7 +86,7 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
84
86
 
85
87
  each(fields, (field: any) => {
86
88
  const desc = field.short || ''
87
- Content(`| \`${field.name}\` | \`${field.type || 'any'}\` | ${desc} |
89
+ Content(`| \`${field.name}\` | \`${canonToType(field.type, target.name)}\` | ${desc} |
88
90
  `)
89
91
  })
90
92
 
@@ -95,8 +97,9 @@ const ReadmeEntity = cmp(function ReadmeEntity(props: any) {
95
97
  if (opnames.includes('load')) {
96
98
  Content(`#### Example: Load
97
99
 
98
- \`\`\`ts
99
- const ${entity.name} = await client.${entity.Name}().load({ id: '${entity.name}_id' })
100
+ \`\`\`php
101
+ // load() returns the bare ${entity.Name} record (throws on error).
102
+ $${entity.name} = $client->${entity.Name}()->load(${idF ? `["${idF}" => "${entity.name}_id"]` : ''});
100
103
  \`\`\`
101
104
 
102
105
  `)
@@ -105,8 +108,9 @@ const ${entity.name} = await client.${entity.Name}().load({ id: '${entity.name}_
105
108
  if (opnames.includes('list')) {
106
109
  Content(`#### Example: List
107
110
 
108
- \`\`\`ts
109
- const ${entity.name}s = await client.${entity.Name}().list()
111
+ \`\`\`php
112
+ // list() returns an array of ${entity.Name} records (throws on error).
113
+ $${entity.name}s = $client->${entity.Name}()->list();
110
114
  \`\`\`
111
115
 
112
116
  `)
@@ -115,16 +119,16 @@ const ${entity.name}s = await client.${entity.Name}().list()
115
119
  if (opnames.includes('create')) {
116
120
  Content(`#### Example: Create
117
121
 
118
- \`\`\`ts
119
- const ${entity.name} = await client.${entity.Name}().create({
122
+ \`\`\`php
123
+ $${entity.name} = $client->${entity.Name}()->create([
120
124
  `)
121
125
  each(fields, (field: any) => {
122
126
  if ('id' !== field.name && field.req) {
123
- Content(` ${field.name}: /* ${field.type || 'value'} */,
127
+ Content(` "${field.name}" => null, // ${canonToType(field.type, target.name)}
124
128
  `)
125
129
  }
126
130
  })
127
- Content(`})
131
+ Content(`]);
128
132
  \`\`\`
129
133
 
130
134
  `)