@akanjs/cli 0.0.149 → 0.0.151

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 (290) hide show
  1. package/cjs/index.js +28 -20
  2. package/cjs/src/guidelines/componentRule/componentRule.generate.json +131 -0
  3. package/cjs/src/guidelines/componentRule/componentRule.instruction.md +7 -6
  4. package/cjs/src/guidelines/cssRule/cssRule.generate.json +93 -0
  5. package/cjs/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
  6. package/cjs/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
  7. package/cjs/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
  8. package/cjs/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
  9. package/cjs/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
  10. package/cjs/src/guidelines/framework/framework.generate.json +119 -0
  11. package/cjs/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  12. package/cjs/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
  13. package/cjs/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
  14. package/cjs/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
  15. package/cjs/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
  16. package/cjs/src/guidelines/modelService/modelService.generate.json +179 -0
  17. package/cjs/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
  18. package/cjs/src/guidelines/modelStore/modelStore.generate.json +130 -0
  19. package/cjs/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
  20. package/cjs/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
  21. package/cjs/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
  22. package/cjs/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
  23. package/cjs/src/guidelines/modelView/modelView.generate.json +80 -0
  24. package/cjs/src/guidelines/modelView/modelView.instruction.md +1 -1
  25. package/cjs/src/guidelines/modelZone/modelZone.generate.json +126 -0
  26. package/cjs/src/guidelines/modelZone/modelZone.instruction.md +3 -3
  27. package/cjs/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
  28. package/cjs/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
  29. package/cjs/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
  30. package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
  31. package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
  32. package/cjs/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
  33. package/cjs/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
  34. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +47 -0
  35. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +128 -0
  36. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +42 -0
  37. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +50 -0
  38. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +41 -0
  39. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +51 -0
  40. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +43 -0
  41. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +60 -0
  42. package/cjs/src/templates/app/app/[lang]/(__appName__)/layout.js +54 -0
  43. package/cjs/src/templates/app/app/[lang]/admin/layout.js +54 -0
  44. package/cjs/src/templates/app/app/[lang]/admin/page.js +63 -0
  45. package/cjs/src/templates/app/app/csr.js +34 -0
  46. package/cjs/src/templates/app/app/layout.js +38 -0
  47. package/cjs/src/templates/app/lib/setting/Setting.Template.js +57 -0
  48. package/cjs/src/templates/app/lib/setting/Setting.Unit.js +38 -0
  49. package/cjs/src/templates/app/lib/setting/Setting.Util.js +34 -0
  50. package/cjs/src/templates/app/lib/setting/Setting.View.js +51 -0
  51. package/cjs/src/templates/app/lib/setting/Setting.Zone.js +80 -0
  52. package/cjs/src/templates/app/lib/setting/index.js +61 -0
  53. package/cjs/src/templates/app/lib/summary/Summary.Template.js +43 -0
  54. package/cjs/src/templates/app/lib/summary/Summary.Unit.js +38 -0
  55. package/cjs/src/templates/app/lib/summary/Summary.Util.js +33 -0
  56. package/cjs/src/templates/app/lib/summary/Summary.View.js +51 -0
  57. package/cjs/src/templates/app/lib/summary/Summary.Zone.js +62 -0
  58. package/cjs/src/templates/app/lib/summary/index.js +67 -0
  59. package/cjs/src/templates/app/lib/user/User.Template.js +65 -0
  60. package/cjs/src/templates/app/lib/user/User.Unit.js +38 -0
  61. package/cjs/src/templates/app/lib/user/User.Util.js +94 -0
  62. package/cjs/src/templates/app/lib/user/User.View.js +66 -0
  63. package/cjs/src/templates/app/lib/user/User.Zone.js +74 -0
  64. package/cjs/src/templates/app/lib/user/index.js +61 -0
  65. package/cjs/src/templates/app/main.js +1 -2
  66. package/cjs/src/templates/app/public/favicon.ico +0 -0
  67. package/cjs/src/templates/app/public/icons/icon-128x128.png +0 -0
  68. package/cjs/src/templates/app/public/icons/icon-144x144.png +0 -0
  69. package/cjs/src/templates/app/public/icons/icon-152x152.png +0 -0
  70. package/cjs/src/templates/app/public/icons/icon-192x192.png +0 -0
  71. package/cjs/src/templates/app/public/icons/icon-256x256.png +0 -0
  72. package/cjs/src/templates/app/public/icons/icon-384x384.png +0 -0
  73. package/cjs/src/templates/app/public/icons/icon-48x48.png +0 -0
  74. package/cjs/src/templates/app/public/icons/icon-512x512.png +0 -0
  75. package/cjs/src/templates/app/public/icons/icon-72x72.png +0 -0
  76. package/cjs/src/templates/app/public/icons/icon-96x96.png +0 -0
  77. package/cjs/src/templates/app/public/logo.svg +70 -0
  78. package/cjs/src/templates/app/ui/Footer.js +67 -0
  79. package/cjs/src/templates/app/ui/MainHeader.js +131 -0
  80. package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +73 -0
  81. package/cjs/src/templates/crudPages/[__model__Id]/page.js +83 -0
  82. package/cjs/src/templates/crudPages/new/page.js +70 -0
  83. package/cjs/src/templates/crudPages/page.js +71 -0
  84. package/cjs/src/templates/lib/__lib/lib.dictionary.js +2 -2
  85. package/cjs/src/templates/lib/__lib/lib.signal.js +3 -3
  86. package/cjs/src/templates/lib/__lib/lib.store.js +2 -1
  87. package/cjs/src/templates/libRoot/lib/setting/Setting.Template.js +57 -0
  88. package/cjs/src/templates/libRoot/lib/setting/Setting.Unit.js +38 -0
  89. package/cjs/src/templates/libRoot/lib/setting/Setting.Util.js +34 -0
  90. package/cjs/src/templates/libRoot/lib/setting/Setting.View.js +51 -0
  91. package/cjs/src/templates/libRoot/lib/setting/Setting.Zone.js +80 -0
  92. package/cjs/src/templates/libRoot/lib/setting/index.js +61 -0
  93. package/cjs/src/templates/libRoot/lib/summary/Summary.Template.js +43 -0
  94. package/cjs/src/templates/libRoot/lib/summary/Summary.Unit.js +38 -0
  95. package/cjs/src/templates/libRoot/lib/summary/Summary.Util.js +33 -0
  96. package/cjs/src/templates/libRoot/lib/summary/Summary.View.js +51 -0
  97. package/cjs/src/templates/libRoot/lib/summary/Summary.Zone.js +62 -0
  98. package/cjs/src/templates/libRoot/lib/summary/index.js +67 -0
  99. package/cjs/src/templates/libRoot/lib/user/User.Template.js +65 -0
  100. package/cjs/src/templates/libRoot/lib/user/User.Unit.js +38 -0
  101. package/cjs/src/templates/libRoot/lib/user/User.Util.js +94 -0
  102. package/cjs/src/templates/libRoot/lib/user/User.View.js +66 -0
  103. package/cjs/src/templates/libRoot/lib/user/User.Zone.js +74 -0
  104. package/cjs/src/templates/libRoot/lib/user/index.js +61 -0
  105. package/cjs/src/templates/module/__Model__.Template.js +54 -0
  106. package/cjs/src/templates/module/__Model__.Unit.js +42 -0
  107. package/cjs/src/templates/module/__Model__.Util.js +70 -0
  108. package/cjs/src/templates/module/__Model__.View.js +48 -0
  109. package/cjs/src/templates/module/__Model__.Zone.js +83 -0
  110. package/cjs/src/templates/module/index.js +61 -0
  111. package/esm/index.js +28 -20
  112. package/esm/src/guidelines/componentRule/componentRule.generate.json +131 -0
  113. package/esm/src/guidelines/componentRule/componentRule.instruction.md +7 -6
  114. package/esm/src/guidelines/cssRule/cssRule.generate.json +93 -0
  115. package/esm/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
  116. package/esm/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
  117. package/esm/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
  118. package/esm/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
  119. package/esm/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
  120. package/esm/src/guidelines/framework/framework.generate.json +119 -0
  121. package/esm/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  122. package/esm/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
  123. package/esm/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
  124. package/esm/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
  125. package/esm/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
  126. package/esm/src/guidelines/modelService/modelService.generate.json +179 -0
  127. package/esm/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
  128. package/esm/src/guidelines/modelStore/modelStore.generate.json +130 -0
  129. package/esm/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
  130. package/esm/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
  131. package/esm/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
  132. package/esm/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
  133. package/esm/src/guidelines/modelView/modelView.generate.json +80 -0
  134. package/esm/src/guidelines/modelView/modelView.instruction.md +1 -1
  135. package/esm/src/guidelines/modelZone/modelZone.generate.json +126 -0
  136. package/esm/src/guidelines/modelZone/modelZone.instruction.md +3 -3
  137. package/esm/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
  138. package/esm/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
  139. package/esm/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
  140. package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
  141. package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
  142. package/esm/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
  143. package/esm/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
  144. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +27 -0
  145. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +108 -0
  146. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +22 -0
  147. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +30 -0
  148. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +21 -0
  149. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +31 -0
  150. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +23 -0
  151. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +40 -0
  152. package/esm/src/templates/app/app/[lang]/(__appName__)/layout.js +34 -0
  153. package/esm/src/templates/app/app/[lang]/admin/layout.js +34 -0
  154. package/esm/src/templates/app/app/[lang]/admin/page.js +43 -0
  155. package/esm/src/templates/app/app/csr.js +14 -0
  156. package/esm/src/templates/app/app/layout.js +18 -0
  157. package/esm/src/templates/app/lib/setting/Setting.Template.js +37 -0
  158. package/esm/src/templates/app/lib/setting/Setting.Unit.js +18 -0
  159. package/esm/src/templates/app/lib/setting/Setting.Util.js +14 -0
  160. package/esm/src/templates/app/lib/setting/Setting.View.js +31 -0
  161. package/esm/src/templates/app/lib/setting/Setting.Zone.js +60 -0
  162. package/esm/src/templates/app/lib/setting/index.js +41 -0
  163. package/esm/src/templates/app/lib/summary/Summary.Template.js +23 -0
  164. package/esm/src/templates/app/lib/summary/Summary.Unit.js +18 -0
  165. package/esm/src/templates/app/lib/summary/Summary.Util.js +13 -0
  166. package/esm/src/templates/app/lib/summary/Summary.View.js +31 -0
  167. package/esm/src/templates/app/lib/summary/Summary.Zone.js +42 -0
  168. package/esm/src/templates/app/lib/summary/index.js +47 -0
  169. package/esm/src/templates/app/lib/user/User.Template.js +45 -0
  170. package/esm/src/templates/app/lib/user/User.Unit.js +18 -0
  171. package/esm/src/templates/app/lib/user/User.Util.js +74 -0
  172. package/esm/src/templates/app/lib/user/User.View.js +46 -0
  173. package/esm/src/templates/app/lib/user/User.Zone.js +54 -0
  174. package/esm/src/templates/app/lib/user/index.js +41 -0
  175. package/esm/src/templates/app/main.js +1 -2
  176. package/esm/src/templates/app/public/favicon.ico +0 -0
  177. package/esm/src/templates/app/public/icons/icon-128x128.png +0 -0
  178. package/esm/src/templates/app/public/icons/icon-144x144.png +0 -0
  179. package/esm/src/templates/app/public/icons/icon-152x152.png +0 -0
  180. package/esm/src/templates/app/public/icons/icon-192x192.png +0 -0
  181. package/esm/src/templates/app/public/icons/icon-256x256.png +0 -0
  182. package/esm/src/templates/app/public/icons/icon-384x384.png +0 -0
  183. package/esm/src/templates/app/public/icons/icon-48x48.png +0 -0
  184. package/esm/src/templates/app/public/icons/icon-512x512.png +0 -0
  185. package/esm/src/templates/app/public/icons/icon-72x72.png +0 -0
  186. package/esm/src/templates/app/public/icons/icon-96x96.png +0 -0
  187. package/esm/src/templates/app/public/logo.svg +70 -0
  188. package/esm/src/templates/app/ui/Footer.js +47 -0
  189. package/esm/src/templates/app/ui/MainHeader.js +111 -0
  190. package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +53 -0
  191. package/esm/src/templates/crudPages/[__model__Id]/page.js +63 -0
  192. package/esm/src/templates/crudPages/new/page.js +50 -0
  193. package/esm/src/templates/crudPages/page.js +51 -0
  194. package/esm/src/templates/lib/__lib/lib.dictionary.js +2 -2
  195. package/esm/src/templates/lib/__lib/lib.signal.js +3 -3
  196. package/esm/src/templates/lib/__lib/lib.store.js +2 -1
  197. package/esm/src/templates/libRoot/lib/setting/Setting.Template.js +37 -0
  198. package/esm/src/templates/libRoot/lib/setting/Setting.Unit.js +18 -0
  199. package/esm/src/templates/libRoot/lib/setting/Setting.Util.js +14 -0
  200. package/esm/src/templates/libRoot/lib/setting/Setting.View.js +31 -0
  201. package/esm/src/templates/libRoot/lib/setting/Setting.Zone.js +60 -0
  202. package/esm/src/templates/libRoot/lib/setting/index.js +41 -0
  203. package/esm/src/templates/libRoot/lib/summary/Summary.Template.js +23 -0
  204. package/esm/src/templates/libRoot/lib/summary/Summary.Unit.js +18 -0
  205. package/esm/src/templates/libRoot/lib/summary/Summary.Util.js +13 -0
  206. package/esm/src/templates/libRoot/lib/summary/Summary.View.js +31 -0
  207. package/esm/src/templates/libRoot/lib/summary/Summary.Zone.js +42 -0
  208. package/esm/src/templates/libRoot/lib/summary/index.js +47 -0
  209. package/esm/src/templates/libRoot/lib/user/User.Template.js +45 -0
  210. package/esm/src/templates/libRoot/lib/user/User.Unit.js +18 -0
  211. package/esm/src/templates/libRoot/lib/user/User.Util.js +74 -0
  212. package/esm/src/templates/libRoot/lib/user/User.View.js +46 -0
  213. package/esm/src/templates/libRoot/lib/user/User.Zone.js +54 -0
  214. package/esm/src/templates/libRoot/lib/user/index.js +41 -0
  215. package/esm/src/templates/module/__Model__.Template.js +34 -0
  216. package/esm/src/templates/module/__Model__.Unit.js +22 -0
  217. package/esm/src/templates/module/__Model__.Util.js +50 -0
  218. package/esm/src/templates/module/__Model__.View.js +28 -0
  219. package/esm/src/templates/module/__Model__.Zone.js +63 -0
  220. package/esm/src/templates/module/index.js +41 -0
  221. package/package.json +1 -1
  222. package/src/guidelines/componentRule/componentRule.instruction.md +7 -6
  223. package/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
  224. package/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
  225. package/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
  226. package/src/guidelines/modelView/modelView.instruction.md +1 -1
  227. package/src/guidelines/modelZone/modelZone.instruction.md +3 -3
  228. package/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
  229. package/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
  230. package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.d.ts +9 -0
  231. package/src/templates/app/app/[lang]/(__appName__)/(public)/page.d.ts +9 -0
  232. package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.d.ts +9 -0
  233. package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.d.ts +9 -0
  234. package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.d.ts +10 -0
  235. package/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.d.ts +9 -0
  236. package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.d.ts +9 -0
  237. package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.d.ts +9 -0
  238. package/src/templates/app/app/[lang]/(__appName__)/layout.d.ts +9 -0
  239. package/src/templates/app/app/[lang]/admin/layout.d.ts +9 -0
  240. package/src/templates/app/app/[lang]/admin/page.d.ts +9 -0
  241. package/src/templates/app/app/csr.d.ts +9 -0
  242. package/src/templates/app/app/layout.d.ts +9 -0
  243. package/src/templates/app/lib/setting/Setting.Template.d.ts +9 -0
  244. package/src/templates/app/lib/setting/Setting.Unit.d.ts +9 -0
  245. package/src/templates/app/lib/setting/Setting.Util.d.ts +9 -0
  246. package/src/templates/app/lib/setting/Setting.View.d.ts +9 -0
  247. package/src/templates/app/lib/setting/Setting.Zone.d.ts +9 -0
  248. package/src/templates/app/lib/setting/index.d.ts +9 -0
  249. package/src/templates/app/lib/summary/Summary.Template.d.ts +9 -0
  250. package/src/templates/app/lib/summary/Summary.Unit.d.ts +9 -0
  251. package/src/templates/app/lib/summary/Summary.Util.d.ts +9 -0
  252. package/src/templates/app/lib/summary/Summary.View.d.ts +9 -0
  253. package/src/templates/app/lib/summary/Summary.Zone.d.ts +9 -0
  254. package/src/templates/app/lib/summary/index.d.ts +9 -0
  255. package/src/templates/app/lib/user/User.Template.d.ts +9 -0
  256. package/src/templates/app/lib/user/User.Unit.d.ts +9 -0
  257. package/src/templates/app/lib/user/User.Util.d.ts +9 -0
  258. package/src/templates/app/lib/user/User.View.d.ts +9 -0
  259. package/src/templates/app/lib/user/User.Zone.d.ts +9 -0
  260. package/src/templates/app/lib/user/index.d.ts +9 -0
  261. package/src/templates/app/ui/Footer.d.ts +9 -0
  262. package/src/templates/app/ui/MainHeader.d.ts +10 -0
  263. package/src/templates/crudPages/[__model__Id]/edit/page.d.ts +11 -0
  264. package/src/templates/crudPages/[__model__Id]/page.d.ts +11 -0
  265. package/src/templates/crudPages/new/page.d.ts +11 -0
  266. package/src/templates/crudPages/page.d.ts +11 -0
  267. package/src/templates/libRoot/lib/setting/Setting.Template.d.ts +9 -0
  268. package/src/templates/libRoot/lib/setting/Setting.Unit.d.ts +9 -0
  269. package/src/templates/libRoot/lib/setting/Setting.Util.d.ts +9 -0
  270. package/src/templates/libRoot/lib/setting/Setting.View.d.ts +9 -0
  271. package/src/templates/libRoot/lib/setting/Setting.Zone.d.ts +9 -0
  272. package/src/templates/libRoot/lib/setting/index.d.ts +9 -0
  273. package/src/templates/libRoot/lib/summary/Summary.Template.d.ts +9 -0
  274. package/src/templates/libRoot/lib/summary/Summary.Unit.d.ts +9 -0
  275. package/src/templates/libRoot/lib/summary/Summary.Util.d.ts +9 -0
  276. package/src/templates/libRoot/lib/summary/Summary.View.d.ts +9 -0
  277. package/src/templates/libRoot/lib/summary/Summary.Zone.d.ts +9 -0
  278. package/src/templates/libRoot/lib/summary/index.d.ts +9 -0
  279. package/src/templates/libRoot/lib/user/User.Template.d.ts +9 -0
  280. package/src/templates/libRoot/lib/user/User.Unit.d.ts +9 -0
  281. package/src/templates/libRoot/lib/user/User.Util.d.ts +9 -0
  282. package/src/templates/libRoot/lib/user/User.View.d.ts +9 -0
  283. package/src/templates/libRoot/lib/user/User.Zone.d.ts +9 -0
  284. package/src/templates/libRoot/lib/user/index.d.ts +9 -0
  285. package/src/templates/module/__Model__.Template.d.ts +11 -0
  286. package/src/templates/module/__Model__.Unit.d.ts +11 -0
  287. package/src/templates/module/__Model__.Util.d.ts +11 -0
  288. package/src/templates/module/__Model__.View.d.ts +11 -0
  289. package/src/templates/module/__Model__.Zone.d.ts +11 -0
  290. package/src/templates/module/index.d.ts +11 -0
@@ -0,0 +1,104 @@
1
+ {
2
+ "title": "Model Template",
3
+ "description": "How to create and implement Model.Template.ts files in Akan.js",
4
+ "scans": [
5
+ {
6
+ "type": "example",
7
+ "description": "Model Template examples",
8
+ "path": "{apps,libs}/*/lib/*/*.Template.ts{,x}",
9
+ "sample": 5
10
+ },
11
+ {
12
+ "type": "usage",
13
+ "description": "Model Template usage in pages",
14
+ "path": "apps/*/app/**/page.tsx",
15
+ "filterText": ".Template.",
16
+ "sample": 3
17
+ },
18
+ {
19
+ "type": "usage",
20
+ "description": "Model Template usage in Utils",
21
+ "path": "{apps,libs}/*/lib/*/*.Util.tsx",
22
+ "filterText": ".Template.",
23
+ "sample": 3
24
+ },
25
+ {
26
+ "type": "usage",
27
+ "description": "Model Template usage in Zones",
28
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
29
+ "filterText": ".Template.",
30
+ "sample": 3
31
+ },
32
+ {
33
+ "type": "reference",
34
+ "description": "Form Field components",
35
+ "path": "libs/shared/ui/Field.tsx",
36
+ "sample": 5
37
+ },
38
+ {
39
+ "type": "reference",
40
+ "description": "Form validation examples",
41
+ "path": "{apps,libs}/*/lib/**/*.Template.tsx",
42
+ "filterText": "validate",
43
+ "sample": 3
44
+ },
45
+ {
46
+ "type": "reference",
47
+ "description": "Store integration examples",
48
+ "path": "{apps,libs}/*/lib/**/*.store.ts",
49
+ "filterText": "Form",
50
+ "sample": 3
51
+ },
52
+ {
53
+ "type": "reference",
54
+ "description": "Internationalization with usePage",
55
+ "path": "{apps,libs}/*/lib/**/usePage.{ts,tsx}",
56
+ "sample": 1
57
+ },
58
+ {
59
+ "type": "reference",
60
+ "description": "Integration with Model.constant.ts",
61
+ "path": "{apps,libs}/*/lib/**/*.constant.ts",
62
+ "filterText": "@Model.Input",
63
+ "sample": 3
64
+ }
65
+ ],
66
+ "update": {
67
+ "filePath": "./modelTemplate.instruction.md",
68
+ "contents": [
69
+ "Purpose and role of Model.Template.tsx files",
70
+ "File location and naming conventions",
71
+ "Basic structure and component patterns",
72
+ "Integration with store state management",
73
+ "Field types and form components",
74
+ "Form validation approaches",
75
+ "Internationalization with usePage",
76
+ "Form layout patterns and best practices",
77
+ "Using templates in pages, utilities, and zones",
78
+ "State management and lifecycle methods",
79
+ "Performance optimization techniques",
80
+ "Accessibility considerations",
81
+ "Common patterns and reusable components",
82
+ "Form state integration with database models",
83
+ "Troubleshooting common issues",
84
+ "Integration with API calls and form submission"
85
+ ],
86
+ "rules": [
87
+ "Model.Template.tsx is a client component, so it should include 'use client' directive",
88
+ "Model.Template.tsx components should accept an optional id parameter to support both creation and editing",
89
+ "Use Form components from the Field namespace for consistent UI and validation",
90
+ "Always connect form state to Zustand store via st.use.[model]Form()",
91
+ "Update form state using st.do.set[Field]On[Model]() actions",
92
+ "Use usePage() hook for internationalization of labels and messages",
93
+ "Implement form validation at field level when possible",
94
+ "Reset form state on component unmount to prevent stale data",
95
+ "Split complex forms into smaller, focused components",
96
+ "Follow accessibility best practices for all form fields",
97
+ "Use consistent layout patterns across the application",
98
+ "Provide clear validation feedback and error messages",
99
+ "Initialize form data from API when editing existing models",
100
+ "Implement proper error handling for form submissions"
101
+ ]
102
+ },
103
+ "page": "/[lang]/akanjs/(docs)/docs/module/template/page.tsx"
104
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "title": "Model Unit",
3
+ "description": "How to create and implement Model.Unit.tsx files in Akan.js",
4
+ "scans": [
5
+ {
6
+ "type": "example",
7
+ "description": "Model Unit examples",
8
+ "path": "{apps,libs}/*/lib/*/*.Unit.tsx",
9
+ "sample": 5
10
+ },
11
+ {
12
+ "type": "implementation",
13
+ "description": "Model Unit typical implementations",
14
+ "path": "{apps,libs}/*/lib/**/*.Unit.tsx",
15
+ "filterText": "export const Abstract",
16
+ "sample": 3
17
+ },
18
+ {
19
+ "type": "implementation",
20
+ "description": "Model Unit Card implementations",
21
+ "path": "{apps,libs}/*/lib/**/*.Unit.tsx",
22
+ "filterText": "export const Card",
23
+ "sample": 2
24
+ },
25
+ {
26
+ "type": "usage",
27
+ "description": "Model Unit usage in pages",
28
+ "path": "apps/*/app/**/page.tsx",
29
+ "filterText": ".Unit.",
30
+ "sample": 1
31
+ },
32
+ {
33
+ "type": "usage",
34
+ "description": "Model Unit usage in Utils",
35
+ "path": "{apps,libs}/*/lib/*/*.Util.tsx",
36
+ "filterText": ".Unit.",
37
+ "sample": 1
38
+ },
39
+ {
40
+ "type": "usage",
41
+ "description": "Model Unit usage in Templates",
42
+ "path": "{apps,libs}/*/lib/*/*.Template.tsx",
43
+ "filterText": ".Unit.",
44
+ "sample": 1
45
+ },
46
+ {
47
+ "type": "usage",
48
+ "description": "Model Unit usage in Zones",
49
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
50
+ "filterText": ".Unit.",
51
+ "sample": 3
52
+ },
53
+ {
54
+ "type": "reference",
55
+ "description": "Integration with database models",
56
+ "path": "{apps,libs}/*/lib/*/*.document.ts",
57
+ "sample": 1
58
+ },
59
+ {
60
+ "type": "reference",
61
+ "description": "Integration with model constants",
62
+ "path": "{apps,libs}/*/lib/*/*.constant.ts",
63
+ "sample": 1
64
+ }
65
+ ],
66
+ "update": {
67
+ "filePath": "./modelUnit.instruction.md",
68
+ "contents": [
69
+ "Purpose and role of Model.Unit.tsx files",
70
+ "How to create Model.Unit.tsx files",
71
+ "Common export patterns (Abstract, Card, Full, etc.)",
72
+ "Integration with LightModel types from constants",
73
+ "How to use Model.Unit.tsx files in pages",
74
+ "How to use Model.Unit.tsx files in Utils",
75
+ "How to use Model.Unit.tsx files in Zones",
76
+ "How to use Model.Unit.tsx files in Templates",
77
+ "Best practices for performance optimization",
78
+ "Common component patterns and variations"
79
+ ],
80
+ "rules": [
81
+ "Model.Unit.tsx is a server component, so it should not use client-side hooks like useEffect, useState, etc.",
82
+ "Model.Unit.tsx is a presentation component of cnst.LightModel to reuse in pages, Utils, Zones, and Templates, etc.",
83
+ "Always accept className prop for styling customization",
84
+ "Create multiple export variations (Abstract, Card, Full) for different use cases",
85
+ "Use semantic HTML and ensure accessibility",
86
+ "Focus on presentation only - do not include business logic",
87
+ "Include href prop for navigation when appropriate",
88
+ "Ensure proper image handling with the Image component from @util/ui"
89
+ ]
90
+ },
91
+ "page": "/[lang]/akanjs/(docs)/docs/module/unit/page.tsx"
92
+ }
@@ -39,7 +39,7 @@ A typical Model.Unit.tsx file exports multiple component variations:
39
39
  ```tsx
40
40
  import { clsx } from "clsx";
41
41
  import { cnst } from "@your-lib/client";
42
- import { Image, Link } from "@util/ui";
42
+ import { Image, Link } from "@akanjs/ui";
43
43
 
44
44
  // Compact representation (minimal details)
45
45
  export const Abstract = ({
@@ -253,7 +253,7 @@ export const Card = ({ user, className }: { user: cnst.LightUser; className?: st
253
253
  Always use the optimized `Image` component from `@util/ui` with proper attributes:
254
254
 
255
255
  ```tsx
256
- import { Image } from "@util/ui";
256
+ import { Image } from "@akanjs/ui";
257
257
 
258
258
  export const Card = ({ product }: { product: cnst.LightProduct }) => (
259
259
  <div className="card">
@@ -0,0 +1,93 @@
1
+ {
2
+ "title": "Model Util",
3
+ "description": "How to create and implement Model.Util.ts files in Akan.js",
4
+ "scans": [
5
+ {
6
+ "type": "example",
7
+ "description": "Model Util examples",
8
+ "path": "{apps,libs}/*/lib/*/*.Util.ts{,x}",
9
+ "sample": 5
10
+ },
11
+ {
12
+ "type": "source",
13
+ "description": "Example of high-quality Model.Util implementation",
14
+ "path": "libs/shared/lib/admin/Admin.Util.tsx"
15
+ },
16
+ {
17
+ "type": "source",
18
+ "description": "Example of complex Model.Util implementation",
19
+ "path": "libs/shared/lib/user/User.Util.tsx"
20
+ },
21
+ {
22
+ "type": "usage",
23
+ "description": "Model Util usage in pages",
24
+ "path": "apps/*/app/**/page.tsx",
25
+ "filterText": ".Util.",
26
+ "sample": 3
27
+ },
28
+ {
29
+ "type": "usage",
30
+ "description": "Model Util usage in Units",
31
+ "path": "{apps,libs}/*/lib/*/*.Unit.tsx",
32
+ "filterText": ".Util.",
33
+ "sample": 3
34
+ },
35
+ {
36
+ "type": "usage",
37
+ "description": "Model Util usage in Templates",
38
+ "path": "{apps,libs}/*/lib/*/*.Template.tsx",
39
+ "filterText": ".Util.",
40
+ "sample": 2
41
+ },
42
+ {
43
+ "type": "usage",
44
+ "description": "Model Util usage in Views",
45
+ "path": "{apps,libs}/*/lib/*/*.View.tsx",
46
+ "filterText": ".Util.",
47
+ "sample": 3
48
+ },
49
+ {
50
+ "type": "usage",
51
+ "description": "Model Util usage in Zones",
52
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
53
+ "filterText": ".Util.",
54
+ "sample": 3
55
+ },
56
+ {
57
+ "type": "related",
58
+ "description": "Relationship with model.store.ts",
59
+ "path": "{apps,libs}/*/lib/*/*.{store,signal}.ts",
60
+ "sample": 2
61
+ }
62
+ ],
63
+ "update": {
64
+ "filePath": "./modelUtil.instruction.md",
65
+ "contents": [
66
+ "Purpose and role of Model.Util.ts files",
67
+ "How to create Model.Util.ts files",
68
+ "Common patterns and implementations",
69
+ "Using with store actions and state",
70
+ "Using with signal API calls",
71
+ "Performance optimization techniques",
72
+ "How to use Model.Util.ts files in pages",
73
+ "How to use Model.Util.ts files in Units",
74
+ "How to use Model.Util.ts files in Templates",
75
+ "How to use Model.Util.ts files in Views",
76
+ "How to use Model.Util.ts files in Zones",
77
+ "Best practices and error handling"
78
+ ],
79
+ "rules": [
80
+ "Model.Util.tsx is a client component, so it can use client-side hooks like useEffect, useState, etc.",
81
+ "Model.Util.tsx is a utility component to reuse in pages, Units, Templates, Views, and Zones, etc.",
82
+ "Util components should be focused on a single responsibility",
83
+ "Util can be a wrapper component for using in server components",
84
+ "Util can be a wrapper component for store actions or signal api calls",
85
+ "Util components should handle their own loading and error states",
86
+ "Always use TypeScript for type safety in props and returned values",
87
+ "Consider memoization for performance-critical components",
88
+ "Follow consistent naming conventions (e.g., ActionButton, FilterPanel)",
89
+ "Document props with JSDoc comments for better IDE support"
90
+ ]
91
+ },
92
+ "page": "/[lang]/akanjs/(docs)/docs/module/util/page.tsx"
93
+ }
@@ -0,0 +1,80 @@
1
+ {
2
+ "title": "Model View",
3
+ "description": "How to create and implement Model.View.tsx files in Akan.js",
4
+ "scans": [
5
+ {
6
+ "type": "example",
7
+ "description": "Model View examples",
8
+ "path": "{apps,libs}/*/lib/*/*.View.tsx",
9
+ "sample": 5
10
+ },
11
+ {
12
+ "type": "example",
13
+ "description": "Model View interfaces",
14
+ "path": "{apps,libs}/*/lib/*/*.View.tsx",
15
+ "filterText": "ViewProps",
16
+ "sample": 3
17
+ },
18
+ {
19
+ "type": "usage",
20
+ "description": "Model View usage in pages",
21
+ "path": "apps/*/app/**/page.tsx",
22
+ "filterText": ".View.",
23
+ "sample": 2
24
+ },
25
+ {
26
+ "type": "usage",
27
+ "description": "Model View usage in Utils",
28
+ "path": "{apps,libs}/*/lib/*/*.Util.tsx",
29
+ "filterText": ".View.",
30
+ "sample": 3
31
+ },
32
+ {
33
+ "type": "usage",
34
+ "description": "Model View usage in Zones",
35
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
36
+ "filterText": ".View.",
37
+ "sample": 3
38
+ },
39
+ {
40
+ "type": "compare",
41
+ "description": "Compare with Unit components",
42
+ "path": "{apps,libs}/*/lib/*/*.Unit.tsx",
43
+ "sample": 2
44
+ },
45
+ {
46
+ "type": "compare",
47
+ "description": "Compare with Template components",
48
+ "path": "{apps,libs}/*/lib/*/*.Template.tsx",
49
+ "sample": 2
50
+ }
51
+ ],
52
+ "update": {
53
+ "filePath": "./modelView.instruction.md",
54
+ "contents": [
55
+ "Purpose and role of Model.View.tsx files in the Akan.js architecture",
56
+ "Core principles of Model.View.tsx components",
57
+ "File structure and component organization",
58
+ "Props design and interfaces",
59
+ "Component variations and specialized views",
60
+ "Integration with other Akan.js components",
61
+ "Server component considerations",
62
+ "Best practices for effective View components",
63
+ "How to use Model.View.tsx in pages, Utils and Zones",
64
+ "Common patterns and advanced techniques",
65
+ "Performance optimization strategies",
66
+ "Troubleshooting and common issues"
67
+ ],
68
+ "rules": [
69
+ "Model.View.tsx is a server component, so it should not use client-side hooks like useEffect, useState, etc.",
70
+ "Model.View.tsx focuses on presentation of model data, not interaction or state management",
71
+ "Model.View.tsx files export named functional components, not default exports",
72
+ "Components should be designed for reuse across pages, Utils, and Zones",
73
+ "Props interfaces should follow consistent naming patterns",
74
+ "View components should be responsive and accessible",
75
+ "Complex views should be broken into logical, reusable sections",
76
+ "Components should handle edge cases like missing data gracefully"
77
+ ]
78
+ },
79
+ "page": "/[lang]/akanjs/(docs)/docs/module/view/page.tsx"
80
+ }
@@ -748,7 +748,7 @@ export const Product = ({ product }: ProductViewProps) => (
748
748
  ### 1. Optimize Images and Media
749
749
 
750
750
  ```tsx
751
- import { Image } from "@util/ui"; // Optimized image component
751
+ import { Image } from "@akanjs/ui"; // Optimized image component
752
752
 
753
753
  export const General = ({ product }: ProductViewProps) => (
754
754
  <div className="product-view">
@@ -0,0 +1,126 @@
1
+ {
2
+ "title": "Model Zone",
3
+ "description": "How to create and implement Model.Zone.tsx files in Akan.js",
4
+ "scans": [
5
+ {
6
+ "type": "example",
7
+ "description": "Model Zone examples",
8
+ "path": "{apps,libs}/*/lib/*/*.Zone.{ts,tsx}",
9
+ "sample": 5
10
+ },
11
+ {
12
+ "type": "usage",
13
+ "description": "Model Zone usage in pages",
14
+ "path": "apps/*/app/**/page.tsx",
15
+ "filterText": ".Zone.",
16
+ "sample": 5
17
+ },
18
+ {
19
+ "type": "pattern",
20
+ "description": "Admin Zone patterns",
21
+ "path": "{apps,libs}/*/lib/*/*.Zone.{ts,tsx}",
22
+ "filterText": "export const Admin",
23
+ "sample": 3
24
+ },
25
+ {
26
+ "type": "pattern",
27
+ "description": "Card Zone patterns",
28
+ "path": "{apps,libs}/*/lib/*/*.Zone.{ts,tsx}",
29
+ "filterText": "export const Card",
30
+ "sample": 3
31
+ },
32
+ {
33
+ "type": "pattern",
34
+ "description": "View Zone patterns",
35
+ "path": "{apps,libs}/*/lib/*/*.Zone.{ts,tsx}",
36
+ "filterText": "export const View",
37
+ "sample": 3
38
+ },
39
+ {
40
+ "type": "pattern",
41
+ "description": "Specialized Zone patterns",
42
+ "path": "{apps,libs}/*/lib/*/*.Zone.{ts,tsx}",
43
+ "filterText": "Load.Units|Load.View|Data.ListContainer",
44
+ "sample": 3
45
+ },
46
+ {
47
+ "type": "integration",
48
+ "description": "Zone integration with Load components",
49
+ "path": "{apps,libs}/*/lib/*/*.Zone.{ts,tsx}",
50
+ "filterText": "Load.Page|Load.Units|Load.View",
51
+ "sample": 3
52
+ }
53
+ ],
54
+ "interfaces": [
55
+ {
56
+ "name": "Common Zone Props",
57
+ "description": "Typical props used by Zone components",
58
+ "properties": [
59
+ {
60
+ "name": "className",
61
+ "type": "string",
62
+ "optional": true,
63
+ "description": "CSS class name for styling flexibility"
64
+ },
65
+ {
66
+ "name": "init",
67
+ "type": "ClientInit<model, LightModel>",
68
+ "optional": false,
69
+ "description": "Initialization data for model list"
70
+ },
71
+ {
72
+ "name": "view",
73
+ "type": "ClientView<model, Model>",
74
+ "optional": false,
75
+ "description": "View data for a single model instance"
76
+ },
77
+ {
78
+ "name": "query",
79
+ "type": "QueryProps",
80
+ "optional": true,
81
+ "description": "Query parameters for filtering data"
82
+ },
83
+ {
84
+ "name": "sliceName",
85
+ "type": "string",
86
+ "optional": true,
87
+ "description": "Name of the state slice for data management"
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ "name": "Architectural Position",
93
+ "description": "How Zone components fit in the component hierarchy",
94
+ "notes": [
95
+ "Page Components → Zone Components → View/Unit/Template Components",
96
+ "Client Components (use client) → Can use hooks and client-side state",
97
+ "Typically used within Load.Page in page.tsx files",
98
+ "Act as connectors between data fetching and UI presentation"
99
+ ]
100
+ }
101
+ ],
102
+ "update": {
103
+ "filePath": "./modelZone.instruction.md",
104
+ "contents": [
105
+ "Purpose and role of Model.Zone.tsx files",
106
+ "Component structure and naming patterns",
107
+ "Common Zone component types (Admin, View, Card, specialized)",
108
+ "Props patterns and data handling",
109
+ "Client component patterns and hooks usage",
110
+ "Integration with page components and data fetching",
111
+ "Composition with other Model components (Unit, View, Template, Util)",
112
+ "Best practices and implementation guidelines"
113
+ ],
114
+ "rules": [
115
+ "Model.Zone.tsx is a client component, so it can use client-side hooks like useEffect, useState, etc.",
116
+ "Model.Zone.tsx is a container component that connects data with UI presentation",
117
+ "Zone components typically import and use other model components (Unit, View, Template, Util)",
118
+ "Zone components should handle presentation logic, not business logic or data fetching",
119
+ "Common Zone types include Admin, View, Card, and specialized components",
120
+ "Zone components should accept flexible props like className for styling customization",
121
+ "Zone components often use Load.Units, Load.View, or Data.ListContainer for data handling",
122
+ "Zone components serve as the bridge between page components and UI presentation"
123
+ ]
124
+ },
125
+ "page": "/[lang]/akanjs/(docs)/docs/module/zone/page.tsx"
126
+ }
@@ -33,7 +33,7 @@ Example: `apps/angelo/lib/bizAccount/bizAccount.Zone.tsx`
33
33
  ```tsx
34
34
  "use client";
35
35
 
36
- import { Load, Data } from "@shared/ui";
36
+ import { Load, Data } from "@akanjs/ui";
37
37
  import { ModelsProps } from "@akanjs/client";
38
38
  import { ClientInit, ClientView } from "@akanjs/signal";
39
39
  import { Model } from "./index";
@@ -275,7 +275,7 @@ Zone components are typically used within page.tsx files using the Load.Page pat
275
275
 
276
276
  ```tsx
277
277
  // app/[lang]/(app)/model/page.tsx
278
- import { Load } from "@shared/ui";
278
+ import { Load } from "@akanjs/ui";
279
279
  import { fetch } from "@akanjs/signal";
280
280
  import { Model } from "@app/lib";
281
281
 
@@ -465,7 +465,7 @@ export const Dashboard = ({ className }: { className?: string }) => {
465
465
  "use client";
466
466
 
467
467
  import { useEffect } from "react";
468
- import { Load } from "@shared/ui";
468
+ import { Load } from "@akanjs/ui";
469
469
  import { fetch, subscriptions } from "@akanjs/signal";
470
470
 
471
471
  export const LiveFeed = ({ className, init }: { className?: string; init: ClientInit<"model", cnst.LightModel> }) => {
@@ -0,0 +1,102 @@
1
+ {
2
+ "title": "Scalar Constant",
3
+ "description": "how to generate a scalar.constant.ts file",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "core constant library source code for scalar definitions",
8
+ "path": "pkgs/@akanjs/constant/src/classMeta.ts"
9
+ },
10
+ {
11
+ "type": "source",
12
+ "description": "field metadata implementation",
13
+ "path": "pkgs/@akanjs/constant/src/fieldMeta.ts"
14
+ },
15
+ {
16
+ "type": "source",
17
+ "description": "scalar metadata implementation",
18
+ "path": "pkgs/@akanjs/constant/src/scalar.ts"
19
+ },
20
+ {
21
+ "type": "source",
22
+ "description": "base scalar types and enumOf implementation",
23
+ "path": "pkgs/@akanjs/base/src/base.ts"
24
+ },
25
+ {
26
+ "type": "source",
27
+ "description": "GqlScalar type definition",
28
+ "path": "pkgs/@akanjs/base/src/scalar.ts"
29
+ },
30
+ {
31
+ "type": "source",
32
+ "description": "constant metadata usage in graphql schema generation",
33
+ "path": "pkgs/@akanjs/server/src/gql.ts"
34
+ },
35
+ {
36
+ "type": "source",
37
+ "description": "constant metadata usage in mongoDB schema generation",
38
+ "path": "pkgs/@akanjs/server/src/schema.ts"
39
+ },
40
+ {
41
+ "type": "example",
42
+ "description": "simple scalar.constant.ts file examples",
43
+ "path": "{apps,libs}/*/lib/__scalar/*/*.constant.ts",
44
+ "query": "lines < 30",
45
+ "sample": 5
46
+ },
47
+ {
48
+ "type": "example",
49
+ "description": "complex scalar.constant.ts file examples with enum definitions",
50
+ "path": "{apps,libs}/*/lib/__scalar/*/*.constant.ts",
51
+ "query": "lines > 30 && /enumOf/",
52
+ "sample": 3
53
+ },
54
+ {
55
+ "type": "example",
56
+ "description": "scalar.constant.ts file examples with static methods",
57
+ "path": "{apps,libs}/*/lib/__scalar/*/*.constant.ts",
58
+ "query": "/static\\s+\\w+/",
59
+ "sample": 3
60
+ },
61
+ {
62
+ "type": "example",
63
+ "description": "scalar.constant.ts file examples with nested scalar references",
64
+ "path": "{apps,libs}/*/lib/__scalar/*/*.constant.ts",
65
+ "query": "/import.*\\.constant/",
66
+ "sample": 3
67
+ }
68
+ ],
69
+ "update": {
70
+ "filePath": "./scalarConstant.instruction.md",
71
+ "contents": [
72
+ "Purpose of scalar constants in Akan.js",
73
+ "File structure and location conventions",
74
+ "Naming standards for directories, files, classes and enums",
75
+ "Required imports and framework types",
76
+ "Model definition with @Model.Scalar decorator",
77
+ "Field definitions with @Field.Prop and other decorators",
78
+ "Field options reference table",
79
+ "Array fields implementation",
80
+ "Map fields implementation",
81
+ "Enum implementation with enumOf",
82
+ "Static methods in scalar classes",
83
+ "Validation rules and checklists",
84
+ "Common mistakes and fixes",
85
+ "Full examples of scalar.constant.ts files"
86
+ ],
87
+ "rules": [
88
+ "One scalar.constant.ts should contain only one @Model.Scalar class. If you need more than one scalar model, make another scalar.constant.ts file.",
89
+ "The directory and filename convention is camelCase, such as `geoLocation/geoLocation.constant.ts`",
90
+ "The class name should be PascalCase, matching the camelCase directory name (e.g., GeoLocation for geoLocation)",
91
+ "The @Model.Scalar parameter MUST match the class name exactly",
92
+ "The values of enum strings must be camelCase (not uppercase)",
93
+ "Do not forget to import required imports like enumOf, Float, type Dayjs, etc.",
94
+ "Do not add options that don't exist in Field.Prop decorator. Carefully check that each option exists.",
95
+ "Always use Dayjs type for Date fields, not JavaScript's native Date",
96
+ "For nullable fields, add both the { nullable: true } option and the TypeScript union type (Type | null)",
97
+ "Use bracket notation for arrays ([Type]) rather than generics (Array<Type>)",
98
+ "Always export both const and type for enums created with enumOf"
99
+ ]
100
+ },
101
+ "page": "/[lang]/akanjs/(docs)/docs/scalar/constant/page.tsx"
102
+ }