@akanjs/cli 0.9.41 → 0.9.43

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 (547) hide show
  1. package/cjs/index.js +941 -538
  2. package/cjs/src/guidelines/___library/sharedUiStructureDescription.en.md +0 -1
  3. package/cjs/src/guidelines/databaseModule/databaseModule.instruction.md +3 -50
  4. package/cjs/src/guidelines/modelService/modelService.generate.json +3 -40
  5. package/cjs/src/guidelines/modelService/modelService.instruction.md +0 -164
  6. package/cjs/src/guidelines/scalarModule/scalarModule.instruction.md +0 -3
  7. package/cjs/src/templates/__scalar/__model__/__model__.constant.js +1 -1
  8. package/cjs/src/templates/__scalar/__model__/__model__.dictionary.js +1 -1
  9. package/cjs/src/templates/__scalar/__model__/__model__.document.js +1 -1
  10. package/cjs/src/templates/app/akan.config.js +1 -1
  11. package/cjs/src/templates/app/app/[lang]/layout.js +1 -1
  12. package/cjs/src/templates/app/app/[lang]/page.js +1 -1
  13. package/cjs/src/templates/app/app/csr.js +1 -1
  14. package/cjs/src/templates/app/app/layout.js +1 -1
  15. package/cjs/src/templates/app/app/robots.js +1 -1
  16. package/cjs/src/templates/app/app/sitemap.js +1 -1
  17. package/cjs/src/templates/app/base/baseLogic.js +1 -1
  18. package/cjs/src/templates/app/base/index.js +1 -1
  19. package/cjs/src/templates/app/common/commonLogic.js +1 -1
  20. package/cjs/src/templates/app/common/index.js +1 -1
  21. package/cjs/src/templates/app/env/env.client.js +1 -1
  22. package/cjs/src/templates/app/env/env.client.type.js +1 -1
  23. package/cjs/src/templates/app/env/env.server.js +1 -1
  24. package/cjs/src/templates/app/jest.config.js +1 -1
  25. package/cjs/src/templates/app/lib/___appName__/__appName__.dictionary.js +7 -2
  26. package/cjs/src/templates/app/lib/___appName__/__appName__.service.js +2 -9
  27. package/cjs/src/templates/app/lib/___appName__/{_server.js → __appName__.signal.js} +9 -9
  28. package/cjs/src/templates/app/lib/___appName__/__appName__.store.js +1 -1
  29. package/cjs/src/templates/app/lib/option.js +1 -1
  30. package/cjs/src/templates/app/lib/setting/Setting.Template.js +6 -19
  31. package/cjs/src/templates/app/lib/setting/Setting.Unit.js +3 -3
  32. package/cjs/src/templates/app/lib/setting/Setting.Util.js +8 -2
  33. package/cjs/src/templates/app/lib/setting/Setting.View.js +4 -7
  34. package/cjs/src/templates/app/lib/setting/Setting.Zone.js +2 -8
  35. package/cjs/src/templates/app/lib/setting/setting.constant.js +1 -1
  36. package/cjs/src/templates/app/lib/setting/setting.dictionary.js +1 -1
  37. package/cjs/src/templates/app/lib/setting/setting.document.js +1 -1
  38. package/cjs/src/templates/app/lib/setting/setting.service.js +1 -1
  39. package/cjs/src/templates/app/lib/setting/setting.signal.js +1 -1
  40. package/cjs/src/templates/app/lib/setting/setting.store.js +1 -1
  41. package/cjs/src/templates/app/lib/summary/Summary.Template.js +5 -4
  42. package/cjs/src/templates/app/lib/summary/Summary.Unit.js +4 -5
  43. package/cjs/src/templates/app/lib/summary/Summary.Util.js +10 -3
  44. package/cjs/src/templates/app/lib/summary/Summary.View.js +5 -9
  45. package/cjs/src/templates/app/lib/summary/Summary.Zone.js +1 -23
  46. package/cjs/src/templates/app/lib/summary/summary.constant.js +1 -1
  47. package/cjs/src/templates/app/lib/summary/summary.dictionary.js +1 -1
  48. package/cjs/src/templates/app/lib/summary/summary.document.js +1 -1
  49. package/cjs/src/templates/app/lib/summary/summary.service.js +1 -1
  50. package/cjs/src/templates/app/lib/summary/summary.signal.js +1 -1
  51. package/cjs/src/templates/app/lib/summary/summary.store.js +1 -1
  52. package/cjs/src/templates/app/lib/user/User.Template.js +2 -3
  53. package/cjs/src/templates/app/lib/user/User.Unit.js +4 -5
  54. package/cjs/src/templates/app/lib/user/User.Util.js +6 -52
  55. package/cjs/src/templates/app/lib/user/User.View.js +2 -4
  56. package/cjs/src/templates/app/lib/user/User.Zone.js +8 -33
  57. package/cjs/src/templates/app/lib/user/user.constant.js +1 -1
  58. package/cjs/src/templates/app/lib/user/user.dictionary.js +1 -1
  59. package/cjs/src/templates/app/lib/user/user.document.js +2 -8
  60. package/cjs/src/templates/app/lib/user/user.service.js +3 -9
  61. package/cjs/src/templates/app/lib/user/user.signal.js +1 -1
  62. package/cjs/src/templates/app/lib/user/user.signal.spec.js +1 -1
  63. package/cjs/src/templates/app/lib/user/user.signal.test.js +1 -1
  64. package/cjs/src/templates/app/lib/user/user.store.js +1 -1
  65. package/cjs/src/templates/app/main.js +1 -1
  66. package/cjs/src/templates/app/middleware.js +1 -1
  67. package/cjs/src/templates/app/nest/backendLogic.js +1 -1
  68. package/cjs/src/templates/app/nest/index.js +1 -1
  69. package/cjs/src/templates/app/next/frontendLogic.js +1 -1
  70. package/cjs/src/templates/app/next/index.js +1 -1
  71. package/cjs/src/templates/app/ui/UiComponent.js +1 -1
  72. package/cjs/src/templates/app/ui/index.js +1 -1
  73. package/cjs/src/templates/client.js +11 -5
  74. package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +1 -1
  75. package/cjs/src/templates/crudPages/[__model__Id]/page.js +1 -1
  76. package/cjs/src/templates/crudPages/new/page.js +1 -1
  77. package/cjs/src/templates/crudPages/page.js +1 -1
  78. package/cjs/src/templates/crudSinglePage/page.js +1 -1
  79. package/cjs/src/templates/index.js +1 -1
  80. package/cjs/src/templates/lib/__lib/extends/summary.constant.js +7 -5
  81. package/cjs/src/templates/lib/__lib/lib.constant.js +7 -11
  82. package/cjs/src/templates/lib/__lib/lib.dictionary.js +4 -4
  83. package/cjs/src/templates/lib/__lib/lib.document.js +4 -4
  84. package/cjs/src/templates/lib/__lib/lib.service.js +19 -24
  85. package/cjs/src/templates/lib/__lib/lib.signal.js +5 -4
  86. package/cjs/src/templates/lib/__lib/lib.store.js +3 -3
  87. package/cjs/src/templates/lib/cnst.js +1 -1
  88. package/cjs/src/templates/lib/cnst_.js +10 -7
  89. package/cjs/src/templates/lib/db.js +5 -5
  90. package/cjs/src/templates/lib/dict.js +5 -5
  91. package/cjs/src/templates/lib/fetch.js +7 -7
  92. package/cjs/src/templates/lib/sig.js +4 -8
  93. package/cjs/src/templates/lib/srv.js +5 -8
  94. package/cjs/src/templates/lib/st.js +3 -3
  95. package/cjs/src/templates/lib/store.js +7 -10
  96. package/cjs/src/templates/lib/usePage.js +1 -1
  97. package/cjs/src/templates/libRoot/akan.config.js +1 -1
  98. package/cjs/src/templates/libRoot/base/baseLogic.js +1 -1
  99. package/cjs/src/templates/libRoot/base/index.js +1 -1
  100. package/cjs/src/templates/libRoot/common/commonLogic.js +1 -1
  101. package/cjs/src/templates/libRoot/common/index.js +1 -1
  102. package/cjs/src/templates/libRoot/jest.config.js +1 -1
  103. package/cjs/src/templates/libRoot/lib/___libName__/__libName__.dictionary.js +1 -1
  104. package/cjs/src/templates/libRoot/lib/___libName__/__libName__.service.js +1 -1
  105. package/cjs/src/templates/libRoot/lib/___libName__/__libName__.store.js +1 -1
  106. package/cjs/src/templates/libRoot/lib/option.js +1 -1
  107. package/cjs/src/templates/libRoot/lib/setting/Setting.Template.js +6 -19
  108. package/cjs/src/templates/libRoot/lib/setting/Setting.Unit.js +3 -3
  109. package/cjs/src/templates/libRoot/lib/setting/Setting.Util.js +8 -2
  110. package/cjs/src/templates/libRoot/lib/setting/Setting.View.js +4 -7
  111. package/cjs/src/templates/libRoot/lib/setting/Setting.Zone.js +2 -8
  112. package/cjs/src/templates/libRoot/lib/setting/setting.constant.js +1 -1
  113. package/cjs/src/templates/libRoot/lib/setting/setting.dictionary.js +1 -1
  114. package/cjs/src/templates/libRoot/lib/setting/setting.document.js +1 -1
  115. package/cjs/src/templates/libRoot/lib/setting/setting.service.js +1 -1
  116. package/cjs/src/templates/libRoot/lib/setting/setting.signal.js +1 -1
  117. package/cjs/src/templates/libRoot/lib/setting/setting.store.js +1 -1
  118. package/cjs/src/templates/libRoot/lib/summary/Summary.Template.js +5 -4
  119. package/cjs/src/templates/libRoot/lib/summary/Summary.Unit.js +4 -5
  120. package/cjs/src/templates/libRoot/lib/summary/Summary.Util.js +10 -3
  121. package/cjs/src/templates/libRoot/lib/summary/Summary.View.js +5 -9
  122. package/cjs/src/templates/libRoot/lib/summary/Summary.Zone.js +1 -23
  123. package/cjs/src/templates/libRoot/lib/summary/summary.constant.js +1 -1
  124. package/cjs/src/templates/libRoot/lib/summary/summary.dictionary.js +1 -1
  125. package/cjs/src/templates/libRoot/lib/summary/summary.document.js +1 -1
  126. package/cjs/src/templates/libRoot/lib/summary/summary.service.js +1 -1
  127. package/cjs/src/templates/libRoot/lib/summary/summary.signal.js +1 -1
  128. package/cjs/src/templates/libRoot/lib/summary/summary.store.js +1 -1
  129. package/cjs/src/templates/libRoot/lib/user/User.Template.js +2 -3
  130. package/cjs/src/templates/libRoot/lib/user/User.Unit.js +4 -5
  131. package/cjs/src/templates/libRoot/lib/user/User.Util.js +6 -52
  132. package/cjs/src/templates/libRoot/lib/user/User.View.js +2 -4
  133. package/cjs/src/templates/libRoot/lib/user/User.Zone.js +8 -32
  134. package/cjs/src/templates/libRoot/lib/user/user.constant.js +1 -1
  135. package/cjs/src/templates/libRoot/lib/user/user.dictionary.js +1 -1
  136. package/cjs/src/templates/libRoot/lib/user/user.document.js +2 -8
  137. package/cjs/src/templates/libRoot/lib/user/user.service.js +3 -9
  138. package/cjs/src/templates/libRoot/lib/user/user.signal.js +1 -1
  139. package/cjs/src/templates/libRoot/lib/user/user.signal.spec.js +1 -1
  140. package/cjs/src/templates/libRoot/lib/user/user.signal.test.js +1 -1
  141. package/cjs/src/templates/libRoot/lib/user/user.store.js +1 -1
  142. package/cjs/src/templates/libRoot/nest/backendLogic.js +1 -1
  143. package/cjs/src/templates/libRoot/nest/index.js +1 -1
  144. package/cjs/src/templates/libRoot/next/frontendLogic.js +1 -1
  145. package/cjs/src/templates/libRoot/next/index.js +1 -1
  146. package/cjs/src/templates/libRoot/ui/index.js +1 -1
  147. package/cjs/src/templates/module/__Model__.Template.js +1 -1
  148. package/cjs/src/templates/module/__Model__.Unit.js +1 -1
  149. package/cjs/src/templates/module/__Model__.Util.js +7 -37
  150. package/cjs/src/templates/module/__Model__.View.js +1 -1
  151. package/cjs/src/templates/module/__Model__.Zone.js +3 -27
  152. package/cjs/src/templates/module/__model__.constant.js +1 -1
  153. package/cjs/src/templates/module/__model__.dictionary.js +1 -1
  154. package/cjs/src/templates/module/__model__.document.js +2 -8
  155. package/cjs/src/templates/module/__model__.service.js +2 -8
  156. package/cjs/src/templates/module/__model__.signal.js +1 -1
  157. package/cjs/src/templates/module/__model__.signal.spec.js +1 -1
  158. package/cjs/src/templates/module/__model__.signal.test.js +1 -1
  159. package/cjs/src/templates/module/__model__.store.js +1 -1
  160. package/cjs/src/templates/module/index.js +1 -1
  161. package/cjs/src/templates/{libRoot/lib/user → moduleRoot}/index.js +23 -35
  162. package/cjs/src/templates/server.js +31 -13
  163. package/cjs/src/templates/workspaceRoot/.gitignore.template +2 -2
  164. package/cjs/src/templates/workspaceRoot/.vscode/settings.json.template +0 -1
  165. package/esm/index.js +942 -539
  166. package/esm/src/guidelines/___library/sharedUiStructureDescription.en.md +0 -1
  167. package/esm/src/guidelines/databaseModule/databaseModule.instruction.md +3 -50
  168. package/esm/src/guidelines/modelService/modelService.generate.json +3 -40
  169. package/esm/src/guidelines/modelService/modelService.instruction.md +0 -164
  170. package/esm/src/guidelines/scalarModule/scalarModule.instruction.md +0 -3
  171. package/esm/src/templates/__scalar/__model__/__model__.constant.js +1 -1
  172. package/esm/src/templates/__scalar/__model__/__model__.dictionary.js +1 -1
  173. package/esm/src/templates/__scalar/__model__/__model__.document.js +1 -1
  174. package/esm/src/templates/app/akan.config.js +1 -1
  175. package/esm/src/templates/app/app/[lang]/layout.js +1 -1
  176. package/esm/src/templates/app/app/[lang]/page.js +1 -1
  177. package/esm/src/templates/app/app/csr.js +1 -1
  178. package/esm/src/templates/app/app/layout.js +1 -1
  179. package/esm/src/templates/app/app/robots.js +1 -1
  180. package/esm/src/templates/app/app/sitemap.js +1 -1
  181. package/esm/src/templates/app/base/baseLogic.js +1 -1
  182. package/esm/src/templates/app/base/index.js +1 -1
  183. package/esm/src/templates/app/common/commonLogic.js +1 -1
  184. package/esm/src/templates/app/common/index.js +1 -1
  185. package/esm/src/templates/app/env/env.client.js +1 -1
  186. package/esm/src/templates/app/env/env.client.type.js +1 -1
  187. package/esm/src/templates/app/env/env.server.js +1 -1
  188. package/esm/src/templates/app/jest.config.js +1 -1
  189. package/esm/src/templates/app/lib/___appName__/__appName__.dictionary.js +7 -2
  190. package/esm/src/templates/app/lib/___appName__/__appName__.service.js +2 -9
  191. package/esm/src/templates/app/lib/___appName__/__appName__.signal.js +14 -0
  192. package/esm/src/templates/app/lib/___appName__/__appName__.store.js +1 -1
  193. package/esm/src/templates/app/lib/option.js +1 -1
  194. package/esm/src/templates/app/lib/setting/Setting.Template.js +6 -19
  195. package/esm/src/templates/app/lib/setting/Setting.Unit.js +3 -3
  196. package/esm/src/templates/app/lib/setting/Setting.Util.js +8 -2
  197. package/esm/src/templates/app/lib/setting/Setting.View.js +4 -7
  198. package/esm/src/templates/app/lib/setting/Setting.Zone.js +2 -8
  199. package/esm/src/templates/app/lib/setting/setting.constant.js +1 -1
  200. package/esm/src/templates/app/lib/setting/setting.dictionary.js +1 -1
  201. package/esm/src/templates/app/lib/setting/setting.document.js +1 -1
  202. package/esm/src/templates/app/lib/setting/setting.service.js +1 -1
  203. package/esm/src/templates/app/lib/setting/setting.signal.js +1 -1
  204. package/esm/src/templates/app/lib/setting/setting.store.js +1 -1
  205. package/esm/src/templates/app/lib/summary/Summary.Template.js +5 -4
  206. package/esm/src/templates/app/lib/summary/Summary.Unit.js +4 -5
  207. package/esm/src/templates/app/lib/summary/Summary.Util.js +10 -3
  208. package/esm/src/templates/app/lib/summary/Summary.View.js +5 -9
  209. package/esm/src/templates/app/lib/summary/Summary.Zone.js +1 -23
  210. package/esm/src/templates/app/lib/summary/summary.constant.js +1 -1
  211. package/esm/src/templates/app/lib/summary/summary.dictionary.js +1 -1
  212. package/esm/src/templates/app/lib/summary/summary.document.js +1 -1
  213. package/esm/src/templates/app/lib/summary/summary.service.js +1 -1
  214. package/esm/src/templates/app/lib/summary/summary.signal.js +1 -1
  215. package/esm/src/templates/app/lib/summary/summary.store.js +1 -1
  216. package/esm/src/templates/app/lib/user/User.Template.js +2 -3
  217. package/esm/src/templates/app/lib/user/User.Unit.js +4 -5
  218. package/esm/src/templates/app/lib/user/User.Util.js +6 -52
  219. package/esm/src/templates/app/lib/user/User.View.js +2 -4
  220. package/esm/src/templates/app/lib/user/User.Zone.js +8 -33
  221. package/esm/src/templates/app/lib/user/user.constant.js +1 -1
  222. package/esm/src/templates/app/lib/user/user.dictionary.js +1 -1
  223. package/esm/src/templates/app/lib/user/user.document.js +2 -8
  224. package/esm/src/templates/app/lib/user/user.service.js +3 -9
  225. package/esm/src/templates/app/lib/user/user.signal.js +1 -1
  226. package/esm/src/templates/app/lib/user/user.signal.spec.js +1 -1
  227. package/esm/src/templates/app/lib/user/user.signal.test.js +1 -1
  228. package/esm/src/templates/app/lib/user/user.store.js +1 -1
  229. package/esm/src/templates/app/main.js +1 -1
  230. package/esm/src/templates/app/middleware.js +1 -1
  231. package/esm/src/templates/app/nest/backendLogic.js +1 -1
  232. package/esm/src/templates/app/nest/index.js +1 -1
  233. package/esm/src/templates/app/next/frontendLogic.js +1 -1
  234. package/esm/src/templates/app/next/index.js +1 -1
  235. package/esm/src/templates/app/ui/UiComponent.js +1 -1
  236. package/esm/src/templates/app/ui/index.js +1 -1
  237. package/esm/src/templates/client.js +11 -5
  238. package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +1 -1
  239. package/esm/src/templates/crudPages/[__model__Id]/page.js +1 -1
  240. package/esm/src/templates/crudPages/new/page.js +1 -1
  241. package/esm/src/templates/crudPages/page.js +1 -1
  242. package/esm/src/templates/crudSinglePage/page.js +1 -1
  243. package/esm/src/templates/index.js +1 -1
  244. package/esm/src/templates/lib/__lib/extends/summary.constant.js +7 -5
  245. package/esm/src/templates/lib/__lib/lib.constant.js +7 -11
  246. package/esm/src/templates/lib/__lib/lib.dictionary.js +4 -4
  247. package/esm/src/templates/lib/__lib/lib.document.js +4 -4
  248. package/esm/src/templates/lib/__lib/lib.service.js +19 -24
  249. package/esm/src/templates/lib/__lib/lib.signal.js +5 -4
  250. package/esm/src/templates/lib/__lib/lib.store.js +3 -3
  251. package/esm/src/templates/lib/cnst.js +1 -1
  252. package/esm/src/templates/lib/cnst_.js +10 -7
  253. package/esm/src/templates/lib/db.js +5 -5
  254. package/esm/src/templates/lib/dict.js +5 -5
  255. package/esm/src/templates/lib/fetch.js +7 -7
  256. package/esm/src/templates/lib/sig.js +4 -8
  257. package/esm/src/templates/lib/srv.js +5 -8
  258. package/esm/src/templates/lib/st.js +3 -3
  259. package/esm/src/templates/lib/store.js +7 -10
  260. package/esm/src/templates/lib/usePage.js +1 -1
  261. package/esm/src/templates/libRoot/akan.config.js +1 -1
  262. package/esm/src/templates/libRoot/base/baseLogic.js +1 -1
  263. package/esm/src/templates/libRoot/base/index.js +1 -1
  264. package/esm/src/templates/libRoot/common/commonLogic.js +1 -1
  265. package/esm/src/templates/libRoot/common/index.js +1 -1
  266. package/esm/src/templates/libRoot/jest.config.js +1 -1
  267. package/esm/src/templates/libRoot/lib/___libName__/__libName__.dictionary.js +1 -1
  268. package/esm/src/templates/libRoot/lib/___libName__/__libName__.service.js +1 -1
  269. package/esm/src/templates/libRoot/lib/___libName__/__libName__.store.js +1 -1
  270. package/esm/src/templates/libRoot/lib/option.js +1 -1
  271. package/esm/src/templates/libRoot/lib/setting/Setting.Template.js +6 -19
  272. package/esm/src/templates/libRoot/lib/setting/Setting.Unit.js +3 -3
  273. package/esm/src/templates/libRoot/lib/setting/Setting.Util.js +8 -2
  274. package/esm/src/templates/libRoot/lib/setting/Setting.View.js +4 -7
  275. package/esm/src/templates/libRoot/lib/setting/Setting.Zone.js +2 -8
  276. package/esm/src/templates/libRoot/lib/setting/setting.constant.js +1 -1
  277. package/esm/src/templates/libRoot/lib/setting/setting.dictionary.js +1 -1
  278. package/esm/src/templates/libRoot/lib/setting/setting.document.js +1 -1
  279. package/esm/src/templates/libRoot/lib/setting/setting.service.js +1 -1
  280. package/esm/src/templates/libRoot/lib/setting/setting.signal.js +1 -1
  281. package/esm/src/templates/libRoot/lib/setting/setting.store.js +1 -1
  282. package/esm/src/templates/libRoot/lib/summary/Summary.Template.js +5 -4
  283. package/esm/src/templates/libRoot/lib/summary/Summary.Unit.js +4 -5
  284. package/esm/src/templates/libRoot/lib/summary/Summary.Util.js +10 -3
  285. package/esm/src/templates/libRoot/lib/summary/Summary.View.js +5 -9
  286. package/esm/src/templates/libRoot/lib/summary/Summary.Zone.js +1 -23
  287. package/esm/src/templates/libRoot/lib/summary/summary.constant.js +1 -1
  288. package/esm/src/templates/libRoot/lib/summary/summary.dictionary.js +1 -1
  289. package/esm/src/templates/libRoot/lib/summary/summary.document.js +1 -1
  290. package/esm/src/templates/libRoot/lib/summary/summary.service.js +1 -1
  291. package/esm/src/templates/libRoot/lib/summary/summary.signal.js +1 -1
  292. package/esm/src/templates/libRoot/lib/summary/summary.store.js +1 -1
  293. package/esm/src/templates/libRoot/lib/user/User.Template.js +2 -3
  294. package/esm/src/templates/libRoot/lib/user/User.Unit.js +4 -5
  295. package/esm/src/templates/libRoot/lib/user/User.Util.js +6 -52
  296. package/esm/src/templates/libRoot/lib/user/User.View.js +2 -4
  297. package/esm/src/templates/libRoot/lib/user/User.Zone.js +8 -32
  298. package/esm/src/templates/libRoot/lib/user/user.constant.js +1 -1
  299. package/esm/src/templates/libRoot/lib/user/user.dictionary.js +1 -1
  300. package/esm/src/templates/libRoot/lib/user/user.document.js +2 -8
  301. package/esm/src/templates/libRoot/lib/user/user.service.js +3 -9
  302. package/esm/src/templates/libRoot/lib/user/user.signal.js +1 -1
  303. package/esm/src/templates/libRoot/lib/user/user.signal.spec.js +1 -1
  304. package/esm/src/templates/libRoot/lib/user/user.signal.test.js +1 -1
  305. package/esm/src/templates/libRoot/lib/user/user.store.js +1 -1
  306. package/esm/src/templates/libRoot/nest/backendLogic.js +1 -1
  307. package/esm/src/templates/libRoot/nest/index.js +1 -1
  308. package/esm/src/templates/libRoot/next/frontendLogic.js +1 -1
  309. package/esm/src/templates/libRoot/next/index.js +1 -1
  310. package/esm/src/templates/libRoot/ui/index.js +1 -1
  311. package/esm/src/templates/module/__Model__.Template.js +1 -1
  312. package/esm/src/templates/module/__Model__.Unit.js +1 -1
  313. package/esm/src/templates/module/__Model__.Util.js +7 -37
  314. package/esm/src/templates/module/__Model__.View.js +1 -1
  315. package/esm/src/templates/module/__Model__.Zone.js +3 -27
  316. package/esm/src/templates/module/__model__.constant.js +1 -1
  317. package/esm/src/templates/module/__model__.dictionary.js +1 -1
  318. package/esm/src/templates/module/__model__.document.js +2 -8
  319. package/esm/src/templates/module/__model__.service.js +2 -8
  320. package/esm/src/templates/module/__model__.signal.js +1 -1
  321. package/esm/src/templates/module/__model__.signal.spec.js +1 -1
  322. package/esm/src/templates/module/__model__.signal.test.js +1 -1
  323. package/esm/src/templates/module/__model__.store.js +1 -1
  324. package/esm/src/templates/module/index.js +1 -1
  325. package/esm/src/templates/moduleRoot/index.js +29 -0
  326. package/esm/src/templates/server.js +31 -13
  327. package/esm/src/templates/workspaceRoot/.gitignore.template +2 -2
  328. package/esm/src/templates/workspaceRoot/.vscode/settings.json.template +0 -1
  329. package/package.json +1 -1
  330. package/src/application/application.runner.d.ts +2 -3
  331. package/src/application/application.script.d.ts +1 -1
  332. package/src/guidelines/___library/sharedUiStructureDescription.en.md +0 -1
  333. package/src/guidelines/databaseModule/databaseModule.instruction.md +3 -50
  334. package/src/guidelines/modelService/modelService.instruction.md +0 -164
  335. package/src/guidelines/scalarModule/scalarModule.instruction.md +0 -3
  336. package/src/library/library.script.d.ts +1 -1
  337. package/src/package/package.runner.d.ts +1 -1
  338. package/src/package/package.script.d.ts +1 -1
  339. package/src/templates/__scalar/__model__/__model__.constant.d.ts +2 -2
  340. package/src/templates/__scalar/__model__/__model__.dictionary.d.ts +2 -2
  341. package/src/templates/__scalar/__model__/__model__.document.d.ts +2 -2
  342. package/src/templates/app/akan.config.d.ts +2 -2
  343. package/src/templates/app/app/[lang]/layout.d.ts +2 -2
  344. package/src/templates/app/app/[lang]/page.d.ts +2 -2
  345. package/src/templates/app/app/csr.d.ts +2 -2
  346. package/src/templates/app/app/layout.d.ts +2 -2
  347. package/src/templates/app/app/robots.d.ts +2 -2
  348. package/src/templates/app/app/sitemap.d.ts +2 -2
  349. package/src/templates/app/base/baseLogic.d.ts +2 -2
  350. package/src/templates/app/base/index.d.ts +2 -2
  351. package/src/templates/app/common/commonLogic.d.ts +2 -2
  352. package/src/templates/app/common/index.d.ts +2 -2
  353. package/src/templates/app/env/env.client.d.ts +2 -2
  354. package/src/templates/app/env/env.client.type.d.ts +2 -2
  355. package/src/templates/app/env/env.server.d.ts +2 -2
  356. package/src/templates/app/jest.config.d.ts +2 -2
  357. package/src/templates/app/lib/___appName__/__appName__.dictionary.d.ts +2 -2
  358. package/src/templates/app/lib/___appName__/__appName__.service.d.ts +2 -2
  359. package/src/templates/app/lib/___appName__/__appName__.signal.d.ts +7 -0
  360. package/src/templates/app/lib/___appName__/__appName__.store.d.ts +2 -2
  361. package/src/templates/app/lib/option.d.ts +2 -2
  362. package/src/templates/app/lib/setting/Setting.Template.d.ts +2 -2
  363. package/src/templates/app/lib/setting/Setting.Unit.d.ts +2 -2
  364. package/src/templates/app/lib/setting/Setting.Util.d.ts +2 -2
  365. package/src/templates/app/lib/setting/Setting.View.d.ts +2 -2
  366. package/src/templates/app/lib/setting/Setting.Zone.d.ts +2 -2
  367. package/src/templates/app/lib/setting/setting.constant.d.ts +2 -2
  368. package/src/templates/app/lib/setting/setting.dictionary.d.ts +2 -2
  369. package/src/templates/app/lib/setting/setting.document.d.ts +2 -2
  370. package/src/templates/app/lib/setting/setting.service.d.ts +2 -2
  371. package/src/templates/app/lib/setting/setting.signal.d.ts +2 -2
  372. package/src/templates/app/lib/setting/setting.store.d.ts +2 -2
  373. package/src/templates/app/lib/summary/Summary.Template.d.ts +2 -2
  374. package/src/templates/app/lib/summary/Summary.Unit.d.ts +2 -2
  375. package/src/templates/app/lib/summary/Summary.Util.d.ts +2 -2
  376. package/src/templates/app/lib/summary/Summary.View.d.ts +2 -2
  377. package/src/templates/app/lib/summary/Summary.Zone.d.ts +2 -2
  378. package/src/templates/app/lib/summary/summary.constant.d.ts +2 -2
  379. package/src/templates/app/lib/summary/summary.dictionary.d.ts +2 -2
  380. package/src/templates/app/lib/summary/summary.document.d.ts +2 -2
  381. package/src/templates/app/lib/summary/summary.service.d.ts +2 -2
  382. package/src/templates/app/lib/summary/summary.signal.d.ts +2 -2
  383. package/src/templates/app/lib/summary/summary.store.d.ts +2 -2
  384. package/src/templates/app/lib/user/User.Template.d.ts +2 -2
  385. package/src/templates/app/lib/user/User.Unit.d.ts +2 -2
  386. package/src/templates/app/lib/user/User.Util.d.ts +2 -2
  387. package/src/templates/app/lib/user/User.View.d.ts +2 -2
  388. package/src/templates/app/lib/user/User.Zone.d.ts +2 -2
  389. package/src/templates/app/lib/user/user.constant.d.ts +2 -2
  390. package/src/templates/app/lib/user/user.dictionary.d.ts +2 -2
  391. package/src/templates/app/lib/user/user.document.d.ts +2 -2
  392. package/src/templates/app/lib/user/user.service.d.ts +2 -2
  393. package/src/templates/app/lib/user/user.signal.d.ts +2 -2
  394. package/src/templates/app/lib/user/user.signal.spec.d.ts +2 -2
  395. package/src/templates/app/lib/user/user.signal.test.d.ts +2 -2
  396. package/src/templates/app/lib/user/user.store.d.ts +2 -2
  397. package/src/templates/app/main.d.ts +2 -2
  398. package/src/templates/app/middleware.d.ts +2 -2
  399. package/src/templates/app/nest/backendLogic.d.ts +2 -2
  400. package/src/templates/app/nest/index.d.ts +2 -2
  401. package/src/templates/app/next/frontendLogic.d.ts +2 -2
  402. package/src/templates/app/next/index.d.ts +2 -2
  403. package/src/templates/app/ui/UiComponent.d.ts +2 -2
  404. package/src/templates/app/ui/index.d.ts +2 -2
  405. package/src/templates/client.d.ts +2 -2
  406. package/src/templates/crudPages/[__model__Id]/edit/page.d.ts +2 -2
  407. package/src/templates/crudPages/[__model__Id]/page.d.ts +2 -2
  408. package/src/templates/crudPages/new/page.d.ts +2 -2
  409. package/src/templates/crudPages/page.d.ts +2 -2
  410. package/src/templates/crudSinglePage/page.d.ts +2 -2
  411. package/src/templates/index.d.ts +2 -2
  412. package/src/templates/lib/__lib/extends/summary.constant.d.ts +2 -2
  413. package/src/templates/lib/__lib/lib.constant.d.ts +2 -2
  414. package/src/templates/lib/__lib/lib.dictionary.d.ts +2 -2
  415. package/src/templates/lib/__lib/lib.document.d.ts +2 -2
  416. package/src/templates/lib/__lib/lib.service.d.ts +2 -2
  417. package/src/templates/lib/__lib/lib.signal.d.ts +2 -2
  418. package/src/templates/lib/__lib/lib.store.d.ts +2 -2
  419. package/src/templates/lib/cnst.d.ts +2 -2
  420. package/src/templates/lib/cnst_.d.ts +2 -2
  421. package/src/templates/lib/db.d.ts +2 -2
  422. package/src/templates/lib/dict.d.ts +2 -2
  423. package/src/templates/lib/fetch.d.ts +2 -2
  424. package/src/templates/lib/sig.d.ts +2 -2
  425. package/src/templates/lib/srv.d.ts +2 -2
  426. package/src/templates/lib/st.d.ts +2 -2
  427. package/src/templates/lib/store.d.ts +2 -2
  428. package/src/templates/lib/usePage.d.ts +2 -2
  429. package/src/templates/libRoot/akan.config.d.ts +1 -1
  430. package/src/templates/libRoot/base/baseLogic.d.ts +1 -1
  431. package/src/templates/libRoot/base/index.d.ts +1 -1
  432. package/src/templates/libRoot/common/commonLogic.d.ts +1 -1
  433. package/src/templates/libRoot/common/index.d.ts +1 -1
  434. package/src/templates/libRoot/jest.config.d.ts +2 -2
  435. package/src/templates/libRoot/lib/___libName__/__libName__.dictionary.d.ts +1 -1
  436. package/src/templates/libRoot/lib/___libName__/__libName__.service.d.ts +1 -1
  437. package/src/templates/libRoot/lib/___libName__/__libName__.store.d.ts +1 -1
  438. package/src/templates/libRoot/lib/option.d.ts +2 -2
  439. package/src/templates/libRoot/lib/setting/Setting.Template.d.ts +2 -2
  440. package/src/templates/libRoot/lib/setting/Setting.Unit.d.ts +2 -2
  441. package/src/templates/libRoot/lib/setting/Setting.Util.d.ts +2 -2
  442. package/src/templates/libRoot/lib/setting/Setting.View.d.ts +2 -2
  443. package/src/templates/libRoot/lib/setting/Setting.Zone.d.ts +2 -2
  444. package/src/templates/libRoot/lib/setting/setting.constant.d.ts +2 -2
  445. package/src/templates/libRoot/lib/setting/setting.dictionary.d.ts +2 -2
  446. package/src/templates/libRoot/lib/setting/setting.document.d.ts +2 -2
  447. package/src/templates/libRoot/lib/setting/setting.service.d.ts +2 -2
  448. package/src/templates/libRoot/lib/setting/setting.signal.d.ts +2 -2
  449. package/src/templates/libRoot/lib/setting/setting.store.d.ts +2 -2
  450. package/src/templates/libRoot/lib/summary/Summary.Template.d.ts +2 -2
  451. package/src/templates/libRoot/lib/summary/Summary.Unit.d.ts +2 -2
  452. package/src/templates/libRoot/lib/summary/Summary.Util.d.ts +2 -2
  453. package/src/templates/libRoot/lib/summary/Summary.View.d.ts +2 -2
  454. package/src/templates/libRoot/lib/summary/Summary.Zone.d.ts +2 -2
  455. package/src/templates/libRoot/lib/summary/summary.constant.d.ts +2 -2
  456. package/src/templates/libRoot/lib/summary/summary.dictionary.d.ts +2 -2
  457. package/src/templates/libRoot/lib/summary/summary.document.d.ts +2 -2
  458. package/src/templates/libRoot/lib/summary/summary.service.d.ts +2 -2
  459. package/src/templates/libRoot/lib/summary/summary.signal.d.ts +2 -2
  460. package/src/templates/libRoot/lib/summary/summary.store.d.ts +2 -2
  461. package/src/templates/libRoot/lib/user/User.Template.d.ts +2 -2
  462. package/src/templates/libRoot/lib/user/User.Unit.d.ts +2 -2
  463. package/src/templates/libRoot/lib/user/User.Util.d.ts +2 -2
  464. package/src/templates/libRoot/lib/user/User.View.d.ts +2 -2
  465. package/src/templates/libRoot/lib/user/User.Zone.d.ts +2 -2
  466. package/src/templates/libRoot/lib/user/user.constant.d.ts +2 -2
  467. package/src/templates/libRoot/lib/user/user.dictionary.d.ts +2 -2
  468. package/src/templates/libRoot/lib/user/user.document.d.ts +2 -2
  469. package/src/templates/libRoot/lib/user/user.service.d.ts +2 -2
  470. package/src/templates/libRoot/lib/user/user.signal.d.ts +2 -2
  471. package/src/templates/libRoot/lib/user/user.signal.spec.d.ts +2 -2
  472. package/src/templates/libRoot/lib/user/user.signal.test.d.ts +2 -2
  473. package/src/templates/libRoot/lib/user/user.store.d.ts +2 -2
  474. package/src/templates/libRoot/nest/backendLogic.d.ts +1 -1
  475. package/src/templates/libRoot/nest/index.d.ts +1 -1
  476. package/src/templates/libRoot/next/frontendLogic.d.ts +1 -1
  477. package/src/templates/libRoot/next/index.d.ts +1 -1
  478. package/src/templates/libRoot/ui/index.d.ts +1 -1
  479. package/src/templates/module/__Model__.Template.d.ts +2 -2
  480. package/src/templates/module/__Model__.Unit.d.ts +2 -2
  481. package/src/templates/module/__Model__.Util.d.ts +2 -2
  482. package/src/templates/module/__Model__.View.d.ts +2 -2
  483. package/src/templates/module/__Model__.Zone.d.ts +2 -2
  484. package/src/templates/module/__model__.constant.d.ts +2 -2
  485. package/src/templates/module/__model__.dictionary.d.ts +2 -2
  486. package/src/templates/module/__model__.document.d.ts +2 -2
  487. package/src/templates/module/__model__.service.d.ts +2 -2
  488. package/src/templates/module/__model__.signal.d.ts +2 -2
  489. package/src/templates/module/__model__.signal.spec.d.ts +2 -2
  490. package/src/templates/module/__model__.signal.test.d.ts +2 -2
  491. package/src/templates/module/__model__.store.d.ts +2 -2
  492. package/src/templates/module/index.d.ts +2 -2
  493. package/src/templates/moduleRoot/index.d.ts +11 -0
  494. package/src/templates/server.d.ts +2 -2
  495. package/ui/MultiScrollList.d.ts +4 -1
  496. package/cjs/src/templates/app/app/[lang]/admin/page.js +0 -63
  497. package/cjs/src/templates/app/app/[lang]/unknown/page.js +0 -51
  498. package/cjs/src/templates/app/lib/setting/_server.js +0 -48
  499. package/cjs/src/templates/app/lib/setting/index.js +0 -61
  500. package/cjs/src/templates/app/lib/summary/_server.js +0 -48
  501. package/cjs/src/templates/app/lib/summary/index.js +0 -67
  502. package/cjs/src/templates/app/lib/user/_server.js +0 -48
  503. package/cjs/src/templates/app/lib/user/index.js +0 -61
  504. package/cjs/src/templates/lib/__scalar/_server.js +0 -39
  505. package/cjs/src/templates/libRoot/lib/___libName__/_server.js +0 -34
  506. package/cjs/src/templates/libRoot/lib/setting/_server.js +0 -48
  507. package/cjs/src/templates/libRoot/lib/setting/index.js +0 -61
  508. package/cjs/src/templates/libRoot/lib/summary/_server.js +0 -48
  509. package/cjs/src/templates/libRoot/lib/summary/index.js +0 -67
  510. package/cjs/src/templates/libRoot/lib/user/_server.js +0 -48
  511. package/cjs/src/templates/module/_server.js +0 -47
  512. package/esm/src/templates/app/app/[lang]/admin/page.js +0 -43
  513. package/esm/src/templates/app/app/[lang]/unknown/page.js +0 -31
  514. package/esm/src/templates/app/lib/___appName__/_server.js +0 -14
  515. package/esm/src/templates/app/lib/setting/_server.js +0 -28
  516. package/esm/src/templates/app/lib/setting/index.js +0 -41
  517. package/esm/src/templates/app/lib/summary/_server.js +0 -28
  518. package/esm/src/templates/app/lib/summary/index.js +0 -47
  519. package/esm/src/templates/app/lib/user/_server.js +0 -28
  520. package/esm/src/templates/app/lib/user/index.js +0 -41
  521. package/esm/src/templates/lib/__scalar/_server.js +0 -19
  522. package/esm/src/templates/libRoot/lib/___libName__/_server.js +0 -14
  523. package/esm/src/templates/libRoot/lib/setting/_server.js +0 -28
  524. package/esm/src/templates/libRoot/lib/setting/index.js +0 -41
  525. package/esm/src/templates/libRoot/lib/summary/_server.js +0 -28
  526. package/esm/src/templates/libRoot/lib/summary/index.js +0 -47
  527. package/esm/src/templates/libRoot/lib/user/_server.js +0 -28
  528. package/esm/src/templates/libRoot/lib/user/index.js +0 -41
  529. package/esm/src/templates/module/_server.js +0 -27
  530. package/src/templates/app/app/[lang]/admin/page.d.ts +0 -9
  531. package/src/templates/app/app/[lang]/unknown/page.d.ts +0 -9
  532. package/src/templates/app/lib/___appName__/_server.d.ts +0 -7
  533. package/src/templates/app/lib/setting/_server.d.ts +0 -6
  534. package/src/templates/app/lib/setting/index.d.ts +0 -9
  535. package/src/templates/app/lib/summary/_server.d.ts +0 -6
  536. package/src/templates/app/lib/summary/index.d.ts +0 -9
  537. package/src/templates/app/lib/user/_server.d.ts +0 -6
  538. package/src/templates/app/lib/user/index.d.ts +0 -9
  539. package/src/templates/lib/__scalar/_server.d.ts +0 -4
  540. package/src/templates/libRoot/lib/___libName__/_server.d.ts +0 -7
  541. package/src/templates/libRoot/lib/setting/_server.d.ts +0 -6
  542. package/src/templates/libRoot/lib/setting/index.d.ts +0 -9
  543. package/src/templates/libRoot/lib/summary/_server.d.ts +0 -6
  544. package/src/templates/libRoot/lib/summary/index.d.ts +0 -9
  545. package/src/templates/libRoot/lib/user/_server.d.ts +0 -6
  546. package/src/templates/libRoot/lib/user/index.d.ts +0 -9
  547. package/src/templates/module/_server.d.ts +0 -8
@@ -733,7 +733,6 @@ SlateContent
733
733
  Purpose: Metadata-driven property editing
734
734
 
735
735
  - prop: string - Property name
736
- - slice: StoreOf<any, any> - Store slice
737
736
  - renderTemplate?: (form: any) => ReactNode - Custom edit renderer
738
737
  - renderView?: (model: any) => ReactNode - Custom view renderer
739
738
  - modelPath?: string - Model path in store
@@ -22,7 +22,6 @@ libs/shared/lib/[module-name]/
22
22
  ├── [ModuleName].Util.tsx // Utility components (dashboard, insights)
23
23
  ├── [ModuleName].View.tsx // Single item view components
24
24
  ├── [ModuleName].Zone.tsx // Main zone layout and routing
25
- ├── _server.ts // Module registration
26
25
  ├── [module-name].constant.ts // Model definitions
27
26
  ├── [module-name].dictionary.ts // Translations
28
27
  ├── [module-name].document.ts // Database schema
@@ -347,34 +346,7 @@ export const userDict = {
347
346
  };
348
347
  ```
349
348
 
350
- ### 7. Register Module (`_server.ts`)
351
-
352
- Create module registration for the server:
353
-
354
- ```typescript
355
- import { databaseModuleOf } from "@akanjs/server";
356
-
357
- import { cnst } from "../cnst";
358
- import * as db from "../db";
359
- import type { ModulesOptions } from "../option";
360
- import { allSrvs } from "../srv";
361
- import { UserService } from "./user.service";
362
- import { UserSignal } from "./user.signal";
363
-
364
- export const registerUserModule = (option: ModulesOptions) =>
365
- databaseModuleOf(
366
- {
367
- constant: cnst.userCnst,
368
- database: db.userDb,
369
- signal: UserSignal,
370
- service: UserService,
371
- uses: { securityConfig: option.securityConfig },
372
- },
373
- allSrvs
374
- );
375
- ```
376
-
377
- ### 8. Create UI Components
349
+ ### 7. Create UI Components
378
350
 
379
351
  #### Template Component (`[ModuleName].Template.tsx`)
380
352
 
@@ -494,21 +466,8 @@ In your server bootstrap file:
494
466
 
495
467
  ```typescript
496
468
  import { createNestApp } from "@akanjs/server";
497
- import { registerUserModule } from "./user/_server";
498
- import { registerAdminModule } from "./admin/_server";
499
-
500
- const startServer = async () => {
501
- const app = await createNestApp({
502
- env: serverEnv,
503
- registerModules: (options) => [
504
- registerUserModule(options),
505
- registerAdminModule(options),
506
- // Register other modules...
507
- ],
508
- });
509
-
510
- return app;
511
- };
469
+
470
+ ====== outdated, ned to be rewrited ======
512
471
  ```
513
472
 
514
473
  ### 2. Using Services in Controllers or Other Services
@@ -625,36 +584,30 @@ export const Layout = () => (
625
584
  ## Best Practices
626
585
 
627
586
  1. **Naming Conventions**
628
-
629
587
  - Use PascalCase for classes and components (e.g., `UserService`, `User.Unit.tsx`)
630
588
  - Use camelCase for files (e.g., `user.service.ts`, `user.document.ts`)
631
589
 
632
590
  2. **Security**
633
-
634
591
  - Use `@Field.Secret` for sensitive data like passwords
635
592
  - Apply proper permission guards to queries and mutations (`@Query.Admin`, `@Mutation.Public`)
636
593
  - Validate input data using the `validate` option in `@Field.Prop`
637
594
 
638
595
  3. **Code Organization**
639
-
640
596
  - Keep business logic in service files
641
597
  - Use signals for API calls only, not for business logic
642
598
  - Define reusable utility methods in document models
643
599
 
644
600
  4. **Performance**
645
-
646
601
  - Use dataloader pattern (`@Loader.ByField`) for efficient database access
647
602
  - Create proper indexes in the middleware
648
603
  - Use projections to limit returned fields when appropriate
649
604
 
650
605
  5. **Testing**
651
-
652
606
  - Create signal tests for each API endpoint
653
607
  - Mock services for unit testing signals
654
608
  - Use integration tests for testing complex workflows
655
609
 
656
610
  6. **UI Components**
657
-
658
611
  - Follow the separation between Template, Unit, View, and Zone components
659
612
  - Make components reusable across different parts of the application
660
613
  - Use dictionary files for all UI text to support internationalization
@@ -47,44 +47,9 @@
47
47
  },
48
48
  {
49
49
  "type": "example",
50
- "description": "@Queue decorator examples",
50
+ "description": "@Sig decorator examples",
51
51
  "path": "{apps,libs}/*/lib/*/*.service.ts",
52
- "filterText": "@Queue",
53
- "sample": 1
54
- },
55
- {
56
- "type": "example",
57
- "description": "@Websocket decorator examples",
58
- "path": "{apps,libs}/*/lib/*/*.service.ts",
59
- "filterText": "@Websocket",
60
- "sample": 1
61
- },
62
- {
63
- "type": "example",
64
- "description": "onModuleInit method examples",
65
- "path": "{apps,libs}/*/lib/*/*.service.ts",
66
- "filterText": "onModuleInit",
67
- "sample": 2
68
- },
69
- {
70
- "type": "example",
71
- "description": "onModuleDestroy method examples",
72
- "path": "{apps,libs}/*/lib/*/*.service.ts",
73
- "filterText": "onModuleDestroy",
74
- "sample": 1
75
- },
76
- {
77
- "type": "example",
78
- "description": "@Cron decorator examples",
79
- "path": "{apps,libs}/*/lib/*/*.service.ts",
80
- "filterText": "@Cron",
81
- "sample": 2
82
- },
83
- {
84
- "type": "example",
85
- "description": "@Interval decorator examples",
86
- "path": "{apps,libs}/*/lib/*/*.service.ts",
87
- "filterText": "@Interval",
52
+ "filterText": "@Sig",
88
53
  "sample": 1
89
54
  },
90
55
  {
@@ -149,9 +114,7 @@
149
114
  "contents": [
150
115
  "Purpose and role of model.service.ts files",
151
116
  "Service structure and inheritance (DbService, LogService, MixSrvs)",
152
- "Core decorators (@Service, @Srv, @Use, @Db, @Queue, @Websocket)",
153
- "Lifecycle methods (onModuleInit, onModuleDestroy)",
154
- "Scheduled tasks (@Cron, @Interval)",
117
+ "Core decorators (@Service, @Srv, @Use, @Db, @Sig)",
155
118
  "Database operations (CRUD, queries, search)",
156
119
  "Customizing database operations (_preCreate, _postCreate, _preUpdate, _postUpdate, _preRemove, _postRemove)",
157
120
  "Working with other services (dependency injection patterns)",
@@ -136,97 +136,6 @@ Injects a websocket server instance for real-time communication:
136
136
  protected readonly websocket: Websocket<ChatSignal>;
137
137
  ```
138
138
 
139
- ## Lifecycle Methods
140
-
141
- Akan.js services can implement lifecycle hooks that are called by the NestJS framework.
142
-
143
- ### onModuleInit()
144
-
145
- Called once the module has been initialized by NestJS. Use this for setup operations:
146
-
147
- ```typescript
148
- async onModuleInit() {
149
- // Initialize service resources
150
- await this.loadInitialData();
151
- this.setupEventListeners();
152
- this.logger.log('Service initialized successfully');
153
- }
154
- ```
155
-
156
- Common use cases:
157
-
158
- - Initializing in-memory cache
159
- - Setting up event listeners
160
- - Loading configuration data
161
- - Establishing connections to external services
162
-
163
- ### onModuleDestroy()
164
-
165
- Called just before the application shuts down. Use this for cleanup operations:
166
-
167
- ```typescript
168
- async onModuleDestroy() {
169
- // Clean up resources
170
- await Promise.all(this.connections.map(conn => conn.close()));
171
- this.clearTimers();
172
- this.logger.log('Service resources released');
173
- }
174
- ```
175
-
176
- Common use cases:
177
-
178
- - Closing database connections
179
- - Releasing external resources
180
- - Clearing timers and intervals
181
- - Unregistering event listeners
182
-
183
- ## Scheduled Tasks
184
-
185
- Akan.js provides decorators for scheduling recurring tasks.
186
-
187
- ### @Cron Decorator
188
-
189
- Executes methods on a cron schedule:
190
-
191
- ```typescript
192
- @Cron("0 0 * * *") // Run at midnight every day
193
- async dailyCleanup() {
194
- await this.cleanupExpiredRecords();
195
- this.logger.log('Daily cleanup completed');
196
- }
197
-
198
- @Cron("*/5 * * * *", { serverMode: "batch" }) // Run every 5 minutes, only in batch mode
199
- async periodicSync() {
200
- await this.syncExternalData();
201
- }
202
- ```
203
-
204
- The first parameter uses standard cron syntax:
205
-
206
- - `* * * * *` = minute hour day-of-month month day-of-week
207
- - Special patterns like `@daily`, `@hourly` are also supported
208
-
209
- Options include:
210
-
211
- - `serverMode`: Restrict to a specific server mode (e.g., "batch")
212
- - `name`: Assign a name to the scheduled job
213
- - `timeZone`: Specify the timezone for the schedule
214
-
215
- ### @Interval Decorator
216
-
217
- Executes methods at fixed time intervals in milliseconds:
218
-
219
- ```typescript
220
- @Interval(60000) // Run every minute (60,000 ms)
221
- async checkStatus() {
222
- await this.monitorSystemHealth();
223
- }
224
- ```
225
-
226
- Options:
227
-
228
- - `name`: Assign a name to the interval
229
-
230
139
  ## Database Operations
231
140
 
232
141
  When extending `DbService`, your service automatically inherits numerous methods for working with the database model.
@@ -606,34 +515,6 @@ class PaymentService extends DbService(db.paymentDb) {
606
515
  }
607
516
  ```
608
517
 
609
- ### 3. Proper Resource Management
610
-
611
- Clean up resources in lifecycle hooks:
612
-
613
- ```typescript
614
- @Service("ExternalApiService")
615
- class ExternalApiService extends LogService("ExternalApiService") {
616
- private client: ApiClient;
617
- private timers: NodeJS.Timeout[] = [];
618
-
619
- async onModuleInit() {
620
- this.client = new ApiClient();
621
- await this.client.connect();
622
-
623
- this.timers.push(setInterval(() => this.refreshToken(), 3600000));
624
- }
625
-
626
- async onModuleDestroy() {
627
- // Clean up resources
628
- await this.client.disconnect();
629
-
630
- for (const timer of this.timers) {
631
- clearInterval(timer);
632
- }
633
- }
634
- }
635
- ```
636
-
637
518
  ### 4. Transaction Safety
638
519
 
639
520
  Use hooks for validating operations:
@@ -818,25 +699,6 @@ export class OrderService extends DbService(db.orderDb) {
818
699
 
819
700
  return data;
820
701
  }
821
-
822
- // Scheduled task
823
- @Cron("0 0 * * *", { serverMode: "batch" })
824
- async cleanupAbandonedOrders() {
825
- const cutoffDate = dayjs().subtract(7, "days");
826
- const orders = await this.listPendingOrders(cutoffDate);
827
-
828
- for (const order of orders) {
829
- await this.cancelOrder(order.id);
830
- this.logger.log(`Cancelled abandoned order: ${order.id}`);
831
- }
832
- }
833
-
834
- // Summary method
835
- async summarize(): Promise<cnst.OrderSummary> {
836
- return {
837
- ...(await this.orderModel.getSummary()),
838
- };
839
- }
840
702
  }
841
703
  ```
842
704
 
@@ -894,32 +756,6 @@ If a service isn't being injected correctly:
894
756
  }
895
757
  ```
896
758
 
897
- ### Scheduled Tasks Not Running
898
-
899
- 1. Verify cron syntax:
900
-
901
- ```typescript
902
- // Correct syntax
903
- @Cron("0 * * * *") // Every hour at minute 0
904
-
905
- // Incorrect syntax
906
- @Cron("0 * * *") // Missing day-of-week field
907
- ```
908
-
909
- 2. Check server mode restrictions:
910
-
911
- ```typescript
912
- // Only runs in batch mode
913
- @Cron("0 * * * *", { serverMode: "batch" })
914
- ```
915
-
916
- 3. Ensure the service is properly initialized:
917
- ```typescript
918
- onModuleInit() {
919
- this.logger.log('Service initialized'); // Is this being logged?
920
- }
921
- ```
922
-
923
759
  ## Summary
924
760
 
925
761
  Model services in Akan.js are powerful components that encapsulate business logic and data operations. By following the patterns and best practices outlined in this guide, you can create maintainable, scalable services that effectively implement your application's domain logic while maintaining clean separation of concerns.
@@ -22,7 +22,6 @@ Scalar modules provide reusable value objects for:
22
22
  ```
23
23
  {domain}/lib/
24
24
  └── __scalar/ // Special scalar directory
25
- ├── _server.ts // Module registration
26
25
  └── [scalarName]/ // camelCase scalar name
27
26
  ├── [name].constant.ts // Schema definition
28
27
  ├── [name].dictionary.ts // I18n translations
@@ -54,7 +53,6 @@ Scalar modules provide reusable value objects for:
54
53
  1. **Constant File**: Schema definition with typed fields and validation
55
54
  2. **Dictionary File**: I18n translations for model metadata, fields and enums
56
55
  3. **Document File**: Optional method extensions for data transformations
57
- 4. **Server Registration**: Aggregate and expose scalars through `_server.ts`
58
56
 
59
57
  ## Key Rules
60
58
 
@@ -62,7 +60,6 @@ Scalar modules provide reusable value objects for:
62
60
  2. All fields require decorators (`@Field.Prop`, `@Field.Hidden`, etc.)
63
61
  3. Dictionary must include all fields/enums with `modelName`/`modelDesc`
64
62
  4. Use `satisfies ModelDictionary<Type>` for dictionary type safety
65
- 5. Register all scalars in `_server.ts` with `scalarModulesOf()`
66
63
 
67
64
  ## Best Practices
68
65
 
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/__scalar/__model__/__model__.constant.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  import { Field, Model } from "@akanjs/constant";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/__scalar/__model__/__model__.dictionary.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  import { ModelDictionary } from "@akanjs/dictionary";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/__scalar/__model__/__model__.document.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  import { by } from "@akanjs/document";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/akan.config.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  import type { AppConfig } from "@akanjs/config";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/app/[lang]/layout.tsx
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return {
4
4
  filename: "layout.tsx",
5
5
  content: `
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/app/[lang]/page.tsx
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return {
4
4
  filename: "page.tsx",
5
5
  content: `
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/app/csr.tsx
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return {
4
4
  filename: "csr.tsx",
5
5
  content: `
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/app/layout.tsx
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return {
4
4
  filename: "layout.tsx",
5
5
  content: `
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/app/robots.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  import { MetadataRoute } from "next";
5
5
  import { env } from "@${dict.appName}/env/env.client";
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/app/sitemap.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  import { MetadataRoute } from "next";
5
5
  import { env } from "@${dict.appName}/env/env.client";
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/base/baseLogic.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  // \uD604 \uB514\uB809\uD1A0\uB9AC\uC5D0\uC11C\uB294 \uD504\uB85C\uC81D\uD2B8 \uB0B4 \uC804\uCCB4\uC801\uC73C\uB85C \uC0AC\uC6A9\uB418\uB294 \uB85C\uC9C1\uC744 \uAD6C\uD604\uD558\uBA70, \uB530\uB77C\uC11C \uBC31/\uD504\uB860\uD2B8 \uBE44\uC758\uC874\uC801\uC778 pure js \uCF54\uB4DC\uB9CC \uAD6C\uD604 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
5
5
  // common\uD3F4\uB354\uC640 \uB2E4\uB978\uC810\uC740, base \uCF54\uB4DC\uB294 \uC2DC\uC2A4\uD15C \uC804\uCCB4\uC5D0\uC11C import\uB418\uC5B4 \uC0AC\uC6A9\uB418\uBBC0\uB85C, \uAC00\uC7A5 \uD575\uC2EC\uC801\uC778 \uB85C\uC9C1\uACFC \uCD94\uC0C1\uD654\uB41C \uAE30\uB2A5\uB9CC \uAD6C\uD604\uD574\uC57C\uD569\uB2C8\uB2E4.
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/base/index.ts
2
- function getContent(scanResult, dict = {}) {
2
+ function getContent(scanInfo, dict = {}) {
3
3
  return `
4
4
  export * from "./baseLogic";
5
5
  `;
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/common/commonLogic.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  // \uD604 \uB514\uB809\uD1A0\uB9AC\uC5D0\uC11C\uB294 \uD504\uB85C\uC81D\uD2B8 \uB0B4 \uC804\uCCB4\uC801\uC73C\uB85C \uC0AC\uC6A9\uB418\uB294 \uC138\uBD80\uC801\uC778 \uB85C\uC9C1\uC744 \uAD6C\uD604\uD558\uBA70, \uB530\uB77C\uC11C \uBC31/\uD504\uB860\uD2B8 \uBE44\uC758\uC874\uC801\uC778 pure js \uCF54\uB4DC\uB9CC \uAD6C\uD604 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
5
5
  // base\uD3F4\uB354\uC640 \uB2E4\uB978\uC810\uC740, common \uCF54\uB4DC\uB294 \uC0AC\uC6A9\uD558\uB294 \uD30C\uC77C\uC5D0\uC11C\uB9CC import\uB418\uAE30 \uB54C\uBB38\uC5D0, \uC678\uBD80\uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C import\uD574\uC11C \uC0AC\uC6A9\uD558\uAC70\uB098 \uC0C1\uC138\uD55C \uB85C\uC9C1\uC744 \uAD6C\uD604\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/common/index.ts
2
- function getContent(scanResult, dict = {}) {
2
+ function getContent(scanInfo, dict = {}) {
3
3
  return `
4
4
  export * from "./commonLogic";
5
5
  `;
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/env/env.client.ts
2
- function getContent(scanResult, dict = {}) {
2
+ function getContent(scanInfo, dict = {}) {
3
3
  return `
4
4
  import { env as debug } from "./env.client.debug";
5
5
  import { env as develop } from "./env.client.develop";
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/env/env.client.type.ts
2
- function getContent(scanResult, dict = {}) {
2
+ function getContent(scanInfo, dict = {}) {
3
3
  return `
4
4
  import type { BaseClientEnv } from "@akanjs/base";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/env/env.server.ts
2
- function getContent(scanResult, dict = {}) {
2
+ function getContent(scanInfo, dict = {}) {
3
3
  return `
4
4
  import { env as debug } from "./env.server.debug";
5
5
  import { env as develop } from "./env.server.develop";
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/jest.config.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  //! will be replaced with akan.config.ts
5
5
  import "tsconfig-paths/register";
@@ -1,9 +1,14 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/lib/___appName__/__appName__.dictionary.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
+ import type { SignalDictionary } from "@akanjs/dictionary";
5
+ import type { ${dict.AppName}Signal } from "./${dict.appName}.signal";
6
+
4
7
  const dictionary = {} as const;
5
8
 
6
- export const ${dict.appName}Dictionary = dictionary;
9
+ const signalDictionary = {} satisfies SignalDictionary<${dict.AppName}Signal>;
10
+
11
+ export const ${dict.appName}Dictionary = { ...dictionary, ...signalDictionary };
7
12
  `;
8
13
  }
9
14
  export {
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/lib/___appName__/__appName__.service.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  import { Cron } from "@akanjs/nest";
5
5
  import { LogService, Service, Srv } from "@akanjs/service";
@@ -7,14 +7,7 @@ import { LogService, Service, Srv } from "@akanjs/service";
7
7
  import type * as srv from "../srv";
8
8
 
9
9
  @Service("${dict.appName}Service", { serverMode: "batch" })
10
- export class ${dict.AppName}Service extends LogService("${dict.appName}Service") {
11
- @Srv() protected readonly summaryService: srv.SummaryService;
12
-
13
- @Cron("0 * * * *")
14
- async takePeriodicSnapshot() {
15
- await this.summaryService.makeSummary();
16
- }
17
- }
10
+ export class ${dict.AppName}Service extends LogService("${dict.appName}Service") {}
18
11
  `;
19
12
  }
20
13
  export {
@@ -0,0 +1,14 @@
1
+ // pkgs/@akanjs/cli/src/templates/app/lib/___appName__/__appName__.signal.ts
2
+ function getContent(scanInfo, dict) {
3
+ return `
4
+ import { LogSignal, Signal } from "@akanjs/signal";
5
+
6
+ import { Srvs } from "../cnst";
7
+
8
+ @Signal({ name: "${dict.AppName}" })
9
+ export class ${dict.AppName}Signal extends LogSignal(Srvs) {}
10
+ `;
11
+ }
12
+ export {
13
+ getContent as default
14
+ };
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/lib/___appName__/__appName__.store.ts
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return `
4
4
  import { scalarStateOf, Store } from "@akanjs/store";
5
5
 
@@ -1,5 +1,5 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/lib/option.ts
2
- function getContent(scanResult, dict = {}) {
2
+ function getContent(scanInfo, dict = {}) {
3
3
  return `
4
4
  import { useGlobals } from "@akanjs/server";
5
5
 
@@ -1,35 +1,22 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/lib/setting/Setting.Template.tsx
2
- function getContent(scanResult, dict) {
2
+ function getContent(scanInfo, dict) {
3
3
  return {
4
4
  filename: "Setting.Template.tsx",
5
5
  content: `
6
6
  "use client";
7
+ import { clsx } from "@akanjs/client";
7
8
  import { st, usePage } from "@${dict.appName}/client";
8
9
 
9
10
  interface GeneralProps {
10
- settingId?: string | null;
11
+ className?: string;
11
12
  }
12
13
 
13
- export const General = ({ settingId = undefined }: GeneralProps) => {
14
+ export const General = ({ className }: GeneralProps) => {
14
15
  const settingForm = st.use.settingForm();
15
16
  const { l } = usePage();
16
- return (
17
- <div className="mb-4 flex items-center">
18
- <div className="flex items-center gap-2">
19
- <div className="w-32">{l("setting.resignupDays")}</div>
20
- <input
21
- type="number"
22
- className="input"
23
- value={settingForm.resignupDays}
24
- onChange={(e) => {
25
- st.do.setResignupDaysOnSetting(e.target.valueAsNumber);
26
- }}
27
- />
28
- </div>
29
- </div>
30
- );
17
+ return <div className={clsx("", className)}></div>; // update your UI here
31
18
  };
32
- `
19
+ `
33
20
  };
34
21
  }
35
22
  export {
@@ -1,14 +1,14 @@
1
1
  // pkgs/@akanjs/cli/src/templates/app/lib/setting/Setting.Unit.tsx
2
- function getContent(scanResult, dict = {}) {
2
+ function getContent(scanInfo, dict = {}) {
3
3
  return {
4
4
  filename: "Setting.Unit.tsx",
5
5
  content: `
6
- import { ModelProps } from "@akanjs/client";
6
+ import { clsx, ModelProps } from "@akanjs/client";
7
7
 
8
8
  import { cnst } from "../cnst";
9
9
 
10
10
  export const Card = ({ className, setting }: ModelProps<"setting", cnst.LightSetting>) => {
11
- return <div>{setting.id}</div>;
11
+ return <div className={clsx("", className)}>{setting.id}</div>; // update your UI here
12
12
  };
13
13
  `
14
14
  };