@akanjs/cli 0.0.142 → 0.0.144

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 (349) hide show
  1. package/README.md +8 -0
  2. package/cjs/index.js +2437 -3204
  3. package/cjs/src/guidelines/___library/sharedUiStructureDescription.en.md +786 -0
  4. package/cjs/src/guidelines/___library/utilUiStructureDescription.en.md +395 -0
  5. package/cjs/src/guidelines/___lint/lintRuleDescription.en.md +64 -0
  6. package/cjs/src/guidelines/___module/moduleStructureDescription.en.md +80 -0
  7. package/cjs/src/guidelines/componentRule/componentRule.instruction.md +732 -0
  8. package/cjs/src/guidelines/databaseModule/databaseModule.instruction.md +691 -0
  9. package/cjs/src/guidelines/enumConstant/enumConstant.instruction.md +232 -0
  10. package/cjs/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +611 -0
  11. package/cjs/src/guidelines/framework/framework.instruction.md +1112 -0
  12. package/cjs/src/guidelines/modelConstant/modelConstant.instruction.md +958 -0
  13. package/cjs/src/guidelines/modelDictionary/modelDictionary.instruction.md +583 -0
  14. package/cjs/src/guidelines/modelDocument/modelDocument.instruction.md +683 -0
  15. package/cjs/src/guidelines/modelService/modelService.instruction.md +935 -0
  16. package/cjs/src/guidelines/modelSignal/modelSignal.instruction.md +588 -0
  17. package/cjs/src/guidelines/modelStore/modelStore.instruction.md +591 -0
  18. package/cjs/src/guidelines/modelTemplate/modelTemplate.instruction.md +577 -0
  19. package/cjs/src/guidelines/modelUnit/modelUnit.instruction.md +833 -0
  20. package/cjs/src/guidelines/modelUtil/modelUtil.instruction.md +752 -0
  21. package/cjs/src/guidelines/modelView/modelView.instruction.md +1005 -0
  22. package/cjs/src/guidelines/modelZone/modelZone.instruction.md +528 -0
  23. package/cjs/src/guidelines/scalarConstant/scalarConstant.instruction.md +489 -0
  24. package/cjs/src/guidelines/scalarDictionary/scalarDictionary.instruction.md +347 -0
  25. package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +318 -0
  26. package/cjs/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +339 -0
  27. package/cjs/src/templates/module/__model__.dictionary.js +4 -5
  28. package/esm/index.js +2524 -3286
  29. package/esm/src/guidelines/___library/sharedUiStructureDescription.en.md +786 -0
  30. package/esm/src/guidelines/___library/utilUiStructureDescription.en.md +395 -0
  31. package/esm/src/guidelines/___lint/lintRuleDescription.en.md +64 -0
  32. package/esm/src/guidelines/___module/moduleStructureDescription.en.md +80 -0
  33. package/esm/src/guidelines/componentRule/componentRule.instruction.md +732 -0
  34. package/esm/src/guidelines/databaseModule/databaseModule.instruction.md +691 -0
  35. package/esm/src/guidelines/enumConstant/enumConstant.instruction.md +232 -0
  36. package/esm/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +611 -0
  37. package/esm/src/guidelines/framework/framework.instruction.md +1112 -0
  38. package/esm/src/guidelines/modelConstant/modelConstant.instruction.md +958 -0
  39. package/esm/src/guidelines/modelDictionary/modelDictionary.instruction.md +583 -0
  40. package/esm/src/guidelines/modelDocument/modelDocument.instruction.md +683 -0
  41. package/esm/src/guidelines/modelService/modelService.instruction.md +935 -0
  42. package/esm/src/guidelines/modelSignal/modelSignal.instruction.md +588 -0
  43. package/esm/src/guidelines/modelStore/modelStore.instruction.md +591 -0
  44. package/esm/src/guidelines/modelTemplate/modelTemplate.instruction.md +577 -0
  45. package/esm/src/guidelines/modelUnit/modelUnit.instruction.md +833 -0
  46. package/esm/src/guidelines/modelUtil/modelUtil.instruction.md +752 -0
  47. package/esm/src/guidelines/modelView/modelView.instruction.md +1005 -0
  48. package/esm/src/guidelines/modelZone/modelZone.instruction.md +528 -0
  49. package/esm/src/guidelines/scalarConstant/scalarConstant.instruction.md +489 -0
  50. package/esm/src/guidelines/scalarDictionary/scalarDictionary.instruction.md +347 -0
  51. package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +318 -0
  52. package/esm/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +339 -0
  53. package/esm/src/templates/module/__model__.dictionary.js +4 -5
  54. package/package.json +3 -1
  55. package/src/guideline/guideline.command.d.ts +7 -0
  56. package/src/guideline/guideline.prompt.d.ts +15 -0
  57. package/src/guideline/guideline.runner.d.ts +5 -0
  58. package/src/guideline/guideline.script.d.ts +6 -0
  59. package/src/guidelines/___library/sharedUiStructureDescription.en.md +786 -0
  60. package/src/guidelines/___library/utilUiStructureDescription.en.md +395 -0
  61. package/src/guidelines/___lint/lintRuleDescription.en.md +64 -0
  62. package/src/guidelines/___module/moduleStructureDescription.en.md +80 -0
  63. package/src/guidelines/componentRule/componentRule.instruction.md +732 -0
  64. package/src/guidelines/databaseModule/databaseModule.instruction.md +691 -0
  65. package/src/guidelines/enumConstant/enumConstant.instruction.md +232 -0
  66. package/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +611 -0
  67. package/src/guidelines/framework/framework.instruction.md +1112 -0
  68. package/src/guidelines/modelConstant/modelConstant.instruction.md +958 -0
  69. package/src/guidelines/modelDictionary/modelDictionary.instruction.md +583 -0
  70. package/src/guidelines/modelDocument/modelDocument.instruction.md +683 -0
  71. package/src/guidelines/modelService/modelService.instruction.md +935 -0
  72. package/src/guidelines/modelSignal/modelSignal.instruction.md +588 -0
  73. package/src/guidelines/modelStore/modelStore.instruction.md +591 -0
  74. package/src/guidelines/modelTemplate/modelTemplate.instruction.md +577 -0
  75. package/src/guidelines/modelUnit/modelUnit.instruction.md +833 -0
  76. package/src/guidelines/modelUtil/modelUtil.instruction.md +752 -0
  77. package/src/guidelines/modelView/modelView.instruction.md +1005 -0
  78. package/src/guidelines/modelZone/modelZone.instruction.md +528 -0
  79. package/src/guidelines/scalarConstant/scalarConstant.instruction.md +489 -0
  80. package/src/guidelines/scalarDictionary/scalarDictionary.instruction.md +347 -0
  81. package/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +318 -0
  82. package/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +339 -0
  83. package/src/module/module.command.d.ts +6 -8
  84. package/src/module/module.prompt.d.ts +2 -15
  85. package/src/module/module.request.d.ts +22 -18
  86. package/src/module/module.runner.d.ts +4 -20
  87. package/src/module/module.script.d.ts +6 -7
  88. package/src/scalar/scalar.command.d.ts +7 -0
  89. package/src/scalar/scalar.prompt.d.ts +23 -0
  90. package/src/scalar/scalar.runner.d.ts +13 -0
  91. package/src/scalar/scalar.script.d.ts +6 -0
  92. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +0 -47
  93. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +0 -128
  94. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +0 -42
  95. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +0 -50
  96. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +0 -41
  97. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +0 -51
  98. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +0 -43
  99. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +0 -60
  100. package/cjs/src/templates/app/app/[lang]/(__appName__)/layout.js +0 -54
  101. package/cjs/src/templates/app/app/[lang]/(__appName__)/styles.css.template +0 -19
  102. package/cjs/src/templates/app/app/[lang]/admin/layout.js +0 -54
  103. package/cjs/src/templates/app/app/[lang]/admin/page.js +0 -63
  104. package/cjs/src/templates/app/app/csr.js +0 -34
  105. package/cjs/src/templates/app/app/index.html.template +0 -13
  106. package/cjs/src/templates/app/app/layout.js +0 -38
  107. package/cjs/src/templates/app/capacitor.config.ts.template +0 -8
  108. package/cjs/src/templates/app/env/env.client.debug.ts.template +0 -7
  109. package/cjs/src/templates/app/env/env.client.develop.ts.template +0 -7
  110. package/cjs/src/templates/app/env/env.client.local.ts.template +0 -7
  111. package/cjs/src/templates/app/env/env.client.main.ts.template +0 -7
  112. package/cjs/src/templates/app/env/env.client.testing.ts.template +0 -7
  113. package/cjs/src/templates/app/env/env.server.debug.ts.template +0 -15
  114. package/cjs/src/templates/app/env/env.server.develop.ts.template +0 -15
  115. package/cjs/src/templates/app/env/env.server.local.ts.template +0 -15
  116. package/cjs/src/templates/app/env/env.server.main.ts.template +0 -15
  117. package/cjs/src/templates/app/env/env.server.testing.ts.template +0 -7
  118. package/cjs/src/templates/app/lib/setting/Setting.Template.js +0 -57
  119. package/cjs/src/templates/app/lib/setting/Setting.Unit.js +0 -38
  120. package/cjs/src/templates/app/lib/setting/Setting.Util.js +0 -34
  121. package/cjs/src/templates/app/lib/setting/Setting.View.js +0 -51
  122. package/cjs/src/templates/app/lib/setting/Setting.Zone.js +0 -80
  123. package/cjs/src/templates/app/lib/setting/index.js +0 -61
  124. package/cjs/src/templates/app/lib/summary/Summary.Template.js +0 -43
  125. package/cjs/src/templates/app/lib/summary/Summary.Unit.js +0 -38
  126. package/cjs/src/templates/app/lib/summary/Summary.Util.js +0 -33
  127. package/cjs/src/templates/app/lib/summary/Summary.View.js +0 -51
  128. package/cjs/src/templates/app/lib/summary/Summary.Zone.js +0 -62
  129. package/cjs/src/templates/app/lib/summary/index.js +0 -67
  130. package/cjs/src/templates/app/lib/user/User.Template.js +0 -65
  131. package/cjs/src/templates/app/lib/user/User.Unit.js +0 -38
  132. package/cjs/src/templates/app/lib/user/User.Util.js +0 -94
  133. package/cjs/src/templates/app/lib/user/User.View.js +0 -66
  134. package/cjs/src/templates/app/lib/user/User.Zone.js +0 -74
  135. package/cjs/src/templates/app/lib/user/index.js +0 -61
  136. package/cjs/src/templates/app/page.test.ts.template +0 -10
  137. package/cjs/src/templates/app/playwright.config.ts.template +0 -6
  138. package/cjs/src/templates/app/postcss.config.js.template +0 -10
  139. package/cjs/src/templates/app/public/manifest.json.template +0 -67
  140. package/cjs/src/templates/app/tsconfig.json.template +0 -22
  141. package/cjs/src/templates/app/tsconfig.spec.json.template +0 -7
  142. package/cjs/src/templates/app/ui/Footer.js +0 -67
  143. package/cjs/src/templates/app/ui/MainHeader.js +0 -131
  144. package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +0 -73
  145. package/cjs/src/templates/crudPages/[__model__Id]/page.js +0 -83
  146. package/cjs/src/templates/crudPages/new/page.js +0 -70
  147. package/cjs/src/templates/crudPages/page.js +0 -71
  148. package/cjs/src/templates/libRoot/.gitignore.template +0 -15
  149. package/cjs/src/templates/libRoot/env/env.server.example.ts.template +0 -7
  150. package/cjs/src/templates/libRoot/env/env.server.testing.ts.template +0 -7
  151. package/cjs/src/templates/libRoot/lib/setting/Setting.Template.js +0 -57
  152. package/cjs/src/templates/libRoot/lib/setting/Setting.Unit.js +0 -38
  153. package/cjs/src/templates/libRoot/lib/setting/Setting.Util.js +0 -34
  154. package/cjs/src/templates/libRoot/lib/setting/Setting.View.js +0 -51
  155. package/cjs/src/templates/libRoot/lib/setting/Setting.Zone.js +0 -80
  156. package/cjs/src/templates/libRoot/lib/setting/index.js +0 -61
  157. package/cjs/src/templates/libRoot/lib/summary/Summary.Template.js +0 -43
  158. package/cjs/src/templates/libRoot/lib/summary/Summary.Unit.js +0 -38
  159. package/cjs/src/templates/libRoot/lib/summary/Summary.Util.js +0 -33
  160. package/cjs/src/templates/libRoot/lib/summary/Summary.View.js +0 -51
  161. package/cjs/src/templates/libRoot/lib/summary/Summary.Zone.js +0 -62
  162. package/cjs/src/templates/libRoot/lib/summary/index.js +0 -67
  163. package/cjs/src/templates/libRoot/lib/user/User.Template.js +0 -65
  164. package/cjs/src/templates/libRoot/lib/user/User.Unit.js +0 -38
  165. package/cjs/src/templates/libRoot/lib/user/User.Util.js +0 -94
  166. package/cjs/src/templates/libRoot/lib/user/User.View.js +0 -66
  167. package/cjs/src/templates/libRoot/lib/user/User.Zone.js +0 -74
  168. package/cjs/src/templates/libRoot/lib/user/index.js +0 -61
  169. package/cjs/src/templates/libRoot/package.json.template +0 -4
  170. package/cjs/src/templates/libRoot/tsconfig.json.template +0 -13
  171. package/cjs/src/templates/libRoot/tsconfig.spec.json.template +0 -7
  172. package/cjs/src/templates/localDev/docker-compose.yaml.template +0 -36
  173. package/cjs/src/templates/module/__Model__.Template.js +0 -54
  174. package/cjs/src/templates/module/__Model__.Unit.js +0 -42
  175. package/cjs/src/templates/module/__Model__.Util.js +0 -70
  176. package/cjs/src/templates/module/__Model__.View.js +0 -48
  177. package/cjs/src/templates/module/__Model__.Zone.js +0 -83
  178. package/cjs/src/templates/module/index.js +0 -61
  179. package/cjs/src/templates/pkgRoot/tsconfig.json.template +0 -15
  180. package/cjs/src/templates/workspaceRoot/.env.template +0 -20
  181. package/cjs/src/templates/workspaceRoot/.gitignore.template +0 -118
  182. package/cjs/src/templates/workspaceRoot/.prettierignore.template +0 -10
  183. package/cjs/src/templates/workspaceRoot/.prettierrc.json.template +0 -6
  184. package/cjs/src/templates/workspaceRoot/.swcrc.template +0 -9
  185. package/cjs/src/templates/workspaceRoot/.vscode/settings.json.template +0 -13
  186. package/cjs/src/templates/workspaceRoot/README.md.template +0 -37
  187. package/cjs/src/templates/workspaceRoot/eslint.config.ts.template +0 -3
  188. package/cjs/src/templates/workspaceRoot/package.json.template +0 -43
  189. package/cjs/src/templates/workspaceRoot/tsconfig.json.template +0 -29
  190. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +0 -27
  191. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +0 -108
  192. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +0 -22
  193. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +0 -30
  194. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +0 -21
  195. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +0 -31
  196. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +0 -23
  197. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +0 -40
  198. package/esm/src/templates/app/app/[lang]/(__appName__)/layout.js +0 -34
  199. package/esm/src/templates/app/app/[lang]/(__appName__)/styles.css.template +0 -19
  200. package/esm/src/templates/app/app/[lang]/admin/layout.js +0 -34
  201. package/esm/src/templates/app/app/[lang]/admin/page.js +0 -43
  202. package/esm/src/templates/app/app/csr.js +0 -14
  203. package/esm/src/templates/app/app/index.html.template +0 -13
  204. package/esm/src/templates/app/app/layout.js +0 -18
  205. package/esm/src/templates/app/capacitor.config.ts.template +0 -8
  206. package/esm/src/templates/app/env/env.client.debug.ts.template +0 -7
  207. package/esm/src/templates/app/env/env.client.develop.ts.template +0 -7
  208. package/esm/src/templates/app/env/env.client.local.ts.template +0 -7
  209. package/esm/src/templates/app/env/env.client.main.ts.template +0 -7
  210. package/esm/src/templates/app/env/env.client.testing.ts.template +0 -7
  211. package/esm/src/templates/app/env/env.server.debug.ts.template +0 -15
  212. package/esm/src/templates/app/env/env.server.develop.ts.template +0 -15
  213. package/esm/src/templates/app/env/env.server.local.ts.template +0 -15
  214. package/esm/src/templates/app/env/env.server.main.ts.template +0 -15
  215. package/esm/src/templates/app/env/env.server.testing.ts.template +0 -7
  216. package/esm/src/templates/app/lib/setting/Setting.Template.js +0 -37
  217. package/esm/src/templates/app/lib/setting/Setting.Unit.js +0 -18
  218. package/esm/src/templates/app/lib/setting/Setting.Util.js +0 -14
  219. package/esm/src/templates/app/lib/setting/Setting.View.js +0 -31
  220. package/esm/src/templates/app/lib/setting/Setting.Zone.js +0 -60
  221. package/esm/src/templates/app/lib/setting/index.js +0 -41
  222. package/esm/src/templates/app/lib/summary/Summary.Template.js +0 -23
  223. package/esm/src/templates/app/lib/summary/Summary.Unit.js +0 -18
  224. package/esm/src/templates/app/lib/summary/Summary.Util.js +0 -13
  225. package/esm/src/templates/app/lib/summary/Summary.View.js +0 -31
  226. package/esm/src/templates/app/lib/summary/Summary.Zone.js +0 -42
  227. package/esm/src/templates/app/lib/summary/index.js +0 -47
  228. package/esm/src/templates/app/lib/user/User.Template.js +0 -45
  229. package/esm/src/templates/app/lib/user/User.Unit.js +0 -18
  230. package/esm/src/templates/app/lib/user/User.Util.js +0 -74
  231. package/esm/src/templates/app/lib/user/User.View.js +0 -46
  232. package/esm/src/templates/app/lib/user/User.Zone.js +0 -54
  233. package/esm/src/templates/app/lib/user/index.js +0 -41
  234. package/esm/src/templates/app/page.test.ts.template +0 -10
  235. package/esm/src/templates/app/playwright.config.ts.template +0 -6
  236. package/esm/src/templates/app/postcss.config.js.template +0 -10
  237. package/esm/src/templates/app/public/manifest.json.template +0 -67
  238. package/esm/src/templates/app/tsconfig.json.template +0 -22
  239. package/esm/src/templates/app/tsconfig.spec.json.template +0 -7
  240. package/esm/src/templates/app/ui/Footer.js +0 -47
  241. package/esm/src/templates/app/ui/MainHeader.js +0 -111
  242. package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +0 -53
  243. package/esm/src/templates/crudPages/[__model__Id]/page.js +0 -63
  244. package/esm/src/templates/crudPages/new/page.js +0 -50
  245. package/esm/src/templates/crudPages/page.js +0 -51
  246. package/esm/src/templates/libRoot/.gitignore.template +0 -15
  247. package/esm/src/templates/libRoot/env/env.server.example.ts.template +0 -7
  248. package/esm/src/templates/libRoot/env/env.server.testing.ts.template +0 -7
  249. package/esm/src/templates/libRoot/lib/setting/Setting.Template.js +0 -37
  250. package/esm/src/templates/libRoot/lib/setting/Setting.Unit.js +0 -18
  251. package/esm/src/templates/libRoot/lib/setting/Setting.Util.js +0 -14
  252. package/esm/src/templates/libRoot/lib/setting/Setting.View.js +0 -31
  253. package/esm/src/templates/libRoot/lib/setting/Setting.Zone.js +0 -60
  254. package/esm/src/templates/libRoot/lib/setting/index.js +0 -41
  255. package/esm/src/templates/libRoot/lib/summary/Summary.Template.js +0 -23
  256. package/esm/src/templates/libRoot/lib/summary/Summary.Unit.js +0 -18
  257. package/esm/src/templates/libRoot/lib/summary/Summary.Util.js +0 -13
  258. package/esm/src/templates/libRoot/lib/summary/Summary.View.js +0 -31
  259. package/esm/src/templates/libRoot/lib/summary/Summary.Zone.js +0 -42
  260. package/esm/src/templates/libRoot/lib/summary/index.js +0 -47
  261. package/esm/src/templates/libRoot/lib/user/User.Template.js +0 -45
  262. package/esm/src/templates/libRoot/lib/user/User.Unit.js +0 -18
  263. package/esm/src/templates/libRoot/lib/user/User.Util.js +0 -74
  264. package/esm/src/templates/libRoot/lib/user/User.View.js +0 -46
  265. package/esm/src/templates/libRoot/lib/user/User.Zone.js +0 -54
  266. package/esm/src/templates/libRoot/lib/user/index.js +0 -41
  267. package/esm/src/templates/libRoot/package.json.template +0 -4
  268. package/esm/src/templates/libRoot/tsconfig.json.template +0 -13
  269. package/esm/src/templates/libRoot/tsconfig.spec.json.template +0 -7
  270. package/esm/src/templates/localDev/docker-compose.yaml.template +0 -36
  271. package/esm/src/templates/module/__Model__.Template.js +0 -34
  272. package/esm/src/templates/module/__Model__.Unit.js +0 -22
  273. package/esm/src/templates/module/__Model__.Util.js +0 -50
  274. package/esm/src/templates/module/__Model__.View.js +0 -28
  275. package/esm/src/templates/module/__Model__.Zone.js +0 -63
  276. package/esm/src/templates/module/index.js +0 -41
  277. package/esm/src/templates/pkgRoot/tsconfig.json.template +0 -15
  278. package/esm/src/templates/workspaceRoot/.env.template +0 -20
  279. package/esm/src/templates/workspaceRoot/.gitignore.template +0 -118
  280. package/esm/src/templates/workspaceRoot/.prettierignore.template +0 -10
  281. package/esm/src/templates/workspaceRoot/.prettierrc.json.template +0 -6
  282. package/esm/src/templates/workspaceRoot/.swcrc.template +0 -9
  283. package/esm/src/templates/workspaceRoot/.vscode/settings.json.template +0 -13
  284. package/esm/src/templates/workspaceRoot/README.md.template +0 -37
  285. package/esm/src/templates/workspaceRoot/eslint.config.ts.template +0 -3
  286. package/esm/src/templates/workspaceRoot/package.json.template +0 -43
  287. package/esm/src/templates/workspaceRoot/tsconfig.json.template +0 -29
  288. package/src/application/application.prompt.d.ts +0 -2
  289. package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.d.ts +0 -9
  290. package/src/templates/app/app/[lang]/(__appName__)/(public)/page.d.ts +0 -9
  291. package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.d.ts +0 -9
  292. package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.d.ts +0 -9
  293. package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.d.ts +0 -10
  294. package/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.d.ts +0 -9
  295. package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.d.ts +0 -9
  296. package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.d.ts +0 -9
  297. package/src/templates/app/app/[lang]/(__appName__)/layout.d.ts +0 -9
  298. package/src/templates/app/app/[lang]/admin/layout.d.ts +0 -9
  299. package/src/templates/app/app/[lang]/admin/page.d.ts +0 -9
  300. package/src/templates/app/app/csr.d.ts +0 -9
  301. package/src/templates/app/app/layout.d.ts +0 -9
  302. package/src/templates/app/lib/setting/Setting.Template.d.ts +0 -9
  303. package/src/templates/app/lib/setting/Setting.Unit.d.ts +0 -9
  304. package/src/templates/app/lib/setting/Setting.Util.d.ts +0 -9
  305. package/src/templates/app/lib/setting/Setting.View.d.ts +0 -9
  306. package/src/templates/app/lib/setting/Setting.Zone.d.ts +0 -9
  307. package/src/templates/app/lib/setting/index.d.ts +0 -9
  308. package/src/templates/app/lib/summary/Summary.Template.d.ts +0 -9
  309. package/src/templates/app/lib/summary/Summary.Unit.d.ts +0 -9
  310. package/src/templates/app/lib/summary/Summary.Util.d.ts +0 -9
  311. package/src/templates/app/lib/summary/Summary.View.d.ts +0 -9
  312. package/src/templates/app/lib/summary/Summary.Zone.d.ts +0 -9
  313. package/src/templates/app/lib/summary/index.d.ts +0 -9
  314. package/src/templates/app/lib/user/User.Template.d.ts +0 -9
  315. package/src/templates/app/lib/user/User.Unit.d.ts +0 -9
  316. package/src/templates/app/lib/user/User.Util.d.ts +0 -9
  317. package/src/templates/app/lib/user/User.View.d.ts +0 -9
  318. package/src/templates/app/lib/user/User.Zone.d.ts +0 -9
  319. package/src/templates/app/lib/user/index.d.ts +0 -9
  320. package/src/templates/app/ui/Footer.d.ts +0 -9
  321. package/src/templates/app/ui/MainHeader.d.ts +0 -10
  322. package/src/templates/crudPages/[__model__Id]/edit/page.d.ts +0 -11
  323. package/src/templates/crudPages/[__model__Id]/page.d.ts +0 -11
  324. package/src/templates/crudPages/new/page.d.ts +0 -11
  325. package/src/templates/crudPages/page.d.ts +0 -11
  326. package/src/templates/libRoot/lib/setting/Setting.Template.d.ts +0 -9
  327. package/src/templates/libRoot/lib/setting/Setting.Unit.d.ts +0 -9
  328. package/src/templates/libRoot/lib/setting/Setting.Util.d.ts +0 -9
  329. package/src/templates/libRoot/lib/setting/Setting.View.d.ts +0 -9
  330. package/src/templates/libRoot/lib/setting/Setting.Zone.d.ts +0 -9
  331. package/src/templates/libRoot/lib/setting/index.d.ts +0 -9
  332. package/src/templates/libRoot/lib/summary/Summary.Template.d.ts +0 -9
  333. package/src/templates/libRoot/lib/summary/Summary.Unit.d.ts +0 -9
  334. package/src/templates/libRoot/lib/summary/Summary.Util.d.ts +0 -9
  335. package/src/templates/libRoot/lib/summary/Summary.View.d.ts +0 -9
  336. package/src/templates/libRoot/lib/summary/Summary.Zone.d.ts +0 -9
  337. package/src/templates/libRoot/lib/summary/index.d.ts +0 -9
  338. package/src/templates/libRoot/lib/user/User.Template.d.ts +0 -9
  339. package/src/templates/libRoot/lib/user/User.Unit.d.ts +0 -9
  340. package/src/templates/libRoot/lib/user/User.Util.d.ts +0 -9
  341. package/src/templates/libRoot/lib/user/User.View.d.ts +0 -9
  342. package/src/templates/libRoot/lib/user/User.Zone.d.ts +0 -9
  343. package/src/templates/libRoot/lib/user/index.d.ts +0 -9
  344. package/src/templates/module/__Model__.Template.d.ts +0 -11
  345. package/src/templates/module/__Model__.Unit.d.ts +0 -11
  346. package/src/templates/module/__Model__.Util.d.ts +0 -11
  347. package/src/templates/module/__Model__.View.d.ts +0 -11
  348. package/src/templates/module/__Model__.Zone.d.ts +0 -11
  349. package/src/templates/module/index.d.ts +0 -11
@@ -0,0 +1,489 @@
1
+ # Scalar Constant Implementation Guide for Akan.js
2
+
3
+ ## Purpose of Scalar Constants
4
+
5
+ Scalar constants in Akan.js serve as the foundation for complex data modeling by:
6
+
7
+ - Defining reusable value objects that can be embedded in other models
8
+ - Representing complex data types without creating database collections
9
+ - Providing standardized field definitions across the application
10
+ - Enabling type-safe data modeling and validation
11
+ - Serving as building blocks for larger domain models
12
+
13
+ ## File Structure and Location
14
+
15
+ ### Location Convention
16
+
17
+ ```
18
+ {app,lib}/
19
+ └── */lib/__scalar/
20
+ └── <scalarName>/ // camelCase directory
21
+ └── <scalarName>.constant.ts // scalar definition file
22
+ ```
23
+
24
+ ### Naming Standards
25
+
26
+ - **Directory**: `camelCase` (e.g., `geoLocation`)
27
+ - **File**: `<scalarName>.constant.ts` (matches directory name)
28
+ - **Class**: `PascalCase` matching directory name (e.g., `GeoLocation`)
29
+ - **Model Reference**: Matches class name in `@Model.Scalar()` decorator
30
+ - **Enum Values**: `camelCase` (e.g., `active`, `pendingApproval`)
31
+
32
+ ### File Structure
33
+
34
+ ```typescript
35
+ // 1. Core imports
36
+ import { Float, Int, String, Boolean, Date, type Dayjs, dayjs, enumOf } from "@akanjs/base";
37
+ import { Field, Model } from "@akanjs/constant";
38
+
39
+ // 2. Optional enum definitions (camelCase values)
40
+ export const Status = enumOf(["active", "inactive"] as const);
41
+ export type Status = enumOf<typeof Status>;
42
+
43
+ // 3. Scalar model class (SINGLE CLASS PER FILE)
44
+ @Model.Scalar("ScalarName") // Must match class name
45
+ export class ScalarName {
46
+ // Field definitions
47
+ @Field.Prop(() => FieldType, { ...options })
48
+ fieldName: FieldType;
49
+ }
50
+ ```
51
+
52
+ ## Required Imports
53
+
54
+ ### Essential Framework Imports
55
+
56
+ ```typescript
57
+ import { Field, Model } from "@akanjs/constant";
58
+ ```
59
+
60
+ ### Common Base Types
61
+
62
+ ```typescript
63
+ import { ID, Int, Float, String, Boolean, Date, type Dayjs, dayjs, enumOf, JSON, Map } from "@akanjs/base";
64
+ ```
65
+
66
+ ### Cross-Scalar References
67
+
68
+ ```typescript
69
+ import { OtherScalar } from "../other-scalar/other-scalar.constant";
70
+ ```
71
+
72
+ ## Model Definition
73
+
74
+ ### Basic Structure
75
+
76
+ ```typescript
77
+ @Model.Scalar("ScalarName") // String must match class name
78
+ export class ScalarName {
79
+ // Field definitions go here
80
+ }
81
+ ```
82
+
83
+ ### Key Rules
84
+
85
+ - **One scalar model per file** - Create separate files for different scalars
86
+ - **Class name matches directory name** in PascalCase (e.g., `PaymentInfo` for `payment-info`)
87
+ - **Model names should be domain-specific** and descriptive
88
+ - **No ID/timestamp fields** - Scalars are value objects, not entities
89
+ - **`@Model.Scalar` decorator parameter must match class name** - This is critical for proper metadata registration
90
+
91
+ ## Field Definitions
92
+
93
+ ### Basic Field Types
94
+
95
+ ```typescript
96
+ @Field.Prop(() => String)
97
+ name: string;
98
+
99
+ @Field.Prop(() => Int)
100
+ quantity: number;
101
+
102
+ @Field.Prop(() => Float)
103
+ percentage: number;
104
+
105
+ @Field.Prop(() => Boolean)
106
+ isActive: boolean;
107
+
108
+ @Field.Prop(() => Date)
109
+ timestamp: Dayjs; // Always use Dayjs for dates
110
+ ```
111
+
112
+ ### Field Options Reference
113
+
114
+ | Option | Type | Description | Example |
115
+ | ----------- | -------- | ------------------------------------ | ---------------------------- |
116
+ | `default` | Any | Default field value | `{ default: 0 }` |
117
+ | `nullable` | Boolean | Allows null values | `{ nullable: true }` |
118
+ | `enum` | Enum | Restricts to enum values | `{ enum: Status }` |
119
+ | `min` | Number | Minimum numeric value | `{ min: 0 }` |
120
+ | `max` | Number | Maximum numeric value | `{ max: 100 }` |
121
+ | `minlength` | Number | Minimum string length | `{ minlength: 3 }` |
122
+ | `maxlength` | Number | Maximum string length | `{ maxlength: 255 }` |
123
+ | `example` | Any | Example value for documentation | `{ example: [0,0] }` |
124
+ | `validate` | Function | Custom validation function | `{ validate: (v) => v > 0 }` |
125
+ | `immutable` | Boolean | Prevents modification after creation | `{ immutable: true }` |
126
+ | `select` | Boolean | Includes in query results by default | `{ select: false }` |
127
+ | `text` | String | Enables text search capabilities | `{ text: "search" }` |
128
+
129
+ ### Special Field Types
130
+
131
+ ```typescript
132
+ // Hidden field (not exposed in GraphQL)
133
+ @Field.Hidden(() => String)
134
+ internalCode: string;
135
+
136
+ // Secret field (not selected by default)
137
+ @Field.Secret(() => String)
138
+ apiKey: string;
139
+
140
+ // Resolve field (computed at runtime)
141
+ @Field.Resolve(() => Int)
142
+ get total(): number {
143
+ return this.items.length;
144
+ }
145
+ ```
146
+
147
+ ## Array Fields
148
+
149
+ ### Simple Arrays
150
+
151
+ ```typescript
152
+ // String array
153
+ @Field.Prop(() => [String])
154
+ tags: string[];
155
+
156
+ // Number array with default
157
+ @Field.Prop(() => [Int], { default: [1, 2, 3] })
158
+ values: number[];
159
+ ```
160
+
161
+ ### Nested Arrays
162
+
163
+ ```typescript
164
+ // 2D number array
165
+ @Field.Prop(() => [[Int]])
166
+ matrix: number[][];
167
+
168
+ // 3D coordinate array
169
+ @Field.Prop(() => [[[Float]]])
170
+ coordinates: number[][][];
171
+ ```
172
+
173
+ ### Array of Scalars
174
+
175
+ ```typescript
176
+ @Field.Prop(() => [OtherScalar])
177
+ items: OtherScalar[];
178
+ ```
179
+
180
+ ## Map Fields
181
+
182
+ ```typescript
183
+ @Field.Prop(() => Map, {
184
+ of: String, // Must specify value type
185
+ default: new Map()
186
+ })
187
+ metadata: Map<string, string>;
188
+ ```
189
+
190
+ ## Enum Implementation (camelCase Values)
191
+
192
+ ```typescript
193
+ // Define enum with camelCase values (export REQUIRED)
194
+ export const Status = enumOf(["active", "inactive", "pendingApproval"] as const);
195
+ export type Status = enumOf<typeof Status>; // Type export
196
+
197
+ // Use in field
198
+ @Field.Prop(() => String, {
199
+ enum: Status,
200
+ default: "active"
201
+ })
202
+ status: Status;
203
+ ```
204
+
205
+ ## Static Methods
206
+
207
+ Scalar classes can include static methods for common operations on the scalar type:
208
+
209
+ ```typescript
210
+ @Model.Scalar("Coordinate")
211
+ export class Coordinate {
212
+ @Field.Prop(() => [Float], { default: [0, 0] })
213
+ coordinates: number[];
214
+
215
+ // Static utility methods
216
+ static getDistanceKm(loc1: Coordinate, loc2: Coordinate) {
217
+ const [lon1, lat1] = loc1.coordinates;
218
+ const [lon2, lat2] = loc2.coordinates;
219
+ // Distance calculation logic
220
+ return distance;
221
+ }
222
+ }
223
+ ```
224
+
225
+ ## Validation Rules and Checklist
226
+
227
+ ### File-Level Validation
228
+
229
+ - [ ] Location: `__scalar/<camelCase>/<camelCase>.constant.ts`
230
+ - [ ] Single `@Model.Scalar` class per file
231
+ - [ ] Class name matches directory name (PascalCase)
232
+ - [ ] All required imports present
233
+ - [ ] The string passed to `@Model.Scalar()` must match the class name exactly
234
+
235
+ ### Field-Level Validation
236
+
237
+ - [ ] All fields have `@Field.Prop` decorator (or `@Field.Hidden`, `@Field.Secret`, `@Field.Resolve`)
238
+ - [ ] Type references use arrow functions: `() => Type`
239
+ - [ ] Array types use bracket notation: `[Type]`
240
+ - [ ] Nullable fields use TypeScript union: `Type | null`
241
+ - [ ] Default values match field types
242
+ - [ ] Enums are properly defined with camelCase values and exported
243
+ - [ ] Custom validation functions are pure and side-effect free
244
+ - [ ] Dayjs type is used for date fields
245
+
246
+ ### Best Practices
247
+
248
+ - **Focused models**: Each scalar should represent a single concept
249
+ - **Descriptive names**: Use clear, domain-relevant terminology
250
+ - **Enum Values**: Always use camelCase (`active`, not `ACTIVE`)
251
+ - **Reusability**: Create separate scalars for commonly used structures
252
+ - **Documentation**: Add comments for complex fields
253
+ - **Validation**: Use min/max for numbers, minlength/maxlength for text
254
+ - **Immutability**: Mark fields as `immutable` where appropriate
255
+ - **Default values**: Provide sensible defaults for most fields
256
+
257
+ ## Common Mistakes and Fixes
258
+
259
+ ### Incorrect Enum Case
260
+
261
+ ```typescript
262
+ // ❌ Wrong (uppercase values)
263
+ export const Status = enumOf(["ACTIVE", "INACTIVE"] as const);
264
+
265
+ // ✅ Correct (camelCase values)
266
+ export const Status = enumOf(["active", "inactive"] as const);
267
+ ```
268
+
269
+ ### Incorrect Array Syntax
270
+
271
+ ```typescript
272
+ // ❌ Wrong
273
+ @Field.Prop(() => Array<Int>)
274
+ values: number[];
275
+
276
+ // ✅ Correct
277
+ @Field.Prop(() => [Int])
278
+ values: number[];
279
+ ```
280
+
281
+ ### Missing Nullable Type Declaration
282
+
283
+ ```typescript
284
+ // ❌ Wrong (type mismatch)
285
+ @Field.Prop(() => String, { nullable: true })
286
+ description: string;
287
+
288
+ // ✅ Correct
289
+ @Field.Prop(() => String, { nullable: true })
290
+ description: string | null;
291
+ ```
292
+
293
+ ### Improper Enum Implementation
294
+
295
+ ```typescript
296
+ // ❌ Wrong (missing export/type)
297
+ const Status = enumOf(["active"] as const);
298
+
299
+ // ✅ Correct
300
+ export const Status = enumOf(["active"] as const);
301
+ export type Status = enumOf<typeof Status>;
302
+ ```
303
+
304
+ ### Multiple Models in One File
305
+
306
+ ```typescript
307
+ // ❌ Wrong (violates single-responsibility)
308
+ @Model.Scalar("Address") class Address { ... }
309
+ @Model.Scalar("User") class User { ... }
310
+
311
+ // ✅ Correct (separate files)
312
+ // address.constant.ts
313
+ export class Address { ... }
314
+
315
+ // user.constant.ts
316
+ import { Address } from "../address/address.constant";
317
+ export class User { ... }
318
+ ```
319
+
320
+ ### Incorrect Date Handling
321
+
322
+ ```typescript
323
+ // ❌ Wrong (uses native Date)
324
+ @Field.Prop(() => Date)
325
+ createdAt: Date;
326
+
327
+ // ✅ Correct (uses Dayjs)
328
+ import { type Dayjs } from "@akanjs/base";
329
+
330
+ @Field.Prop(() => Date)
331
+ createdAt: Dayjs;
332
+ ```
333
+
334
+ ### Missing Model.Scalar Parameter
335
+
336
+ ```typescript
337
+ // ❌ Wrong (missing or mismatched parameter)
338
+ @Model.Scalar()
339
+ export class GeoLocation { ... }
340
+
341
+ // ✅ Correct
342
+ @Model.Scalar("GeoLocation")
343
+ export class GeoLocation { ... }
344
+ ```
345
+
346
+ ## Full Examples
347
+
348
+ ### Basic Scalar Example
349
+
350
+ ```typescript
351
+ // libs/payment/lib/__scalar/amount/amount.constant.ts
352
+ import { Float } from "@akanjs/base";
353
+ import { Field, Model } from "@akanjs/constant";
354
+
355
+ @Model.Scalar("Amount")
356
+ export class Amount {
357
+ @Field.Prop(() => Float, { min: 0, default: 0 })
358
+ value: number;
359
+
360
+ @Field.Prop(() => String, { default: "USD" })
361
+ currency: string;
362
+ }
363
+ ```
364
+
365
+ ### Complex Scalar Example (with camelCase enums)
366
+
367
+ ```typescript
368
+ // apps/maps/lib/__scalar/geoLocation/geoLocation.constant.ts
369
+ import { Float, type Dayjs, dayjs, enumOf } from "@akanjs/base";
370
+ import { Field, Model } from "@akanjs/constant";
371
+
372
+ // CORRECT: camelCase enum values
373
+ export const AccuracyLevel = enumOf(["low", "medium", "high"] as const);
374
+ export type AccuracyLevel = enumOf<typeof AccuracyLevel>;
375
+
376
+ @Model.Scalar("GeoLocation")
377
+ export class GeoLocation {
378
+ @Field.Prop(() => Float, {
379
+ min: -90,
380
+ max: 90,
381
+ example: 37.7749,
382
+ })
383
+ latitude: number;
384
+
385
+ @Field.Prop(() => Float, {
386
+ min: -180,
387
+ max: 180,
388
+ example: -122.4194,
389
+ })
390
+ longitude: number;
391
+
392
+ @Field.Prop(() => Float, {
393
+ nullable: true,
394
+ min: 0,
395
+ example: 12.5,
396
+ })
397
+ elevation: number | null;
398
+
399
+ @Field.Prop(() => String, {
400
+ enum: AccuracyLevel,
401
+ default: "medium",
402
+ })
403
+ accuracy: AccuracyLevel;
404
+
405
+ @Field.Prop(() => Date, {
406
+ default: () => dayjs(),
407
+ immutable: true,
408
+ })
409
+ measuredAt: Dayjs;
410
+ }
411
+ ```
412
+
413
+ ### Scalar with Nested Objects
414
+
415
+ ```typescript
416
+ // apps/ecommerce/lib/__scalar/product-spec/product-spec.constant.ts
417
+ import { Int, Float } from "@akanjs/base";
418
+ import { Field, Model } from "@akanjs/constant";
419
+ import { Dimension } from "../dimension/dimension.constant";
420
+
421
+ @Model.Scalar("ProductSpec")
422
+ export class ProductSpec {
423
+ @Field.Prop(() => String)
424
+ sku: string;
425
+
426
+ @Field.Prop(() => [String], {
427
+ default: [],
428
+ example: ["red", "blue"],
429
+ })
430
+ colors: string[];
431
+
432
+ @Field.Prop(() => Dimension)
433
+ size: Dimension;
434
+
435
+ @Field.Prop(() => Float, { min: 0 })
436
+ weight: number;
437
+
438
+ @Field.Prop(() => Int, {
439
+ min: 0,
440
+ default: 0,
441
+ })
442
+ stock: number;
443
+ }
444
+ ```
445
+
446
+ ### Scalar with Static Methods
447
+
448
+ ```typescript
449
+ // libs/util/lib/__scalar/coordinate/coordinate.constant.ts
450
+ import { Float } from "@akanjs/base";
451
+ import { Field, Model } from "@akanjs/constant";
452
+
453
+ @Model.Scalar("Coordinate")
454
+ export class Coordinate {
455
+ @Field.Prop(() => [Float], { default: [0, 0], example: [127.114367, 37.497114] })
456
+ coordinates: number[];
457
+
458
+ @Field.Prop(() => Float, { default: 0 })
459
+ altitude: number;
460
+
461
+ static getDistanceKm(loc1: Coordinate, loc2: Coordinate) {
462
+ const [lon1, lat1] = loc1.coordinates;
463
+ const [lon2, lat2] = loc2.coordinates;
464
+ // Distance calculation logic...
465
+ return distance;
466
+ }
467
+
468
+ static moveMeters(loc: Coordinate, x: number, y: number): Coordinate {
469
+ // Calculate new position...
470
+ return { ...loc, coordinates: [newLon, newLat] };
471
+ }
472
+ }
473
+ ```
474
+
475
+ ## Summary Checklist
476
+
477
+ 1. **Location**: `__scalar/<camelCase>/<camelCase>.constant.ts`
478
+ 2. **Structure**: Single `@Model.Scalar` class per file
479
+ 3. **Naming**: Class name = PascalCase directory name
480
+ 4. **Decorator**: `@Model.Scalar("ClassName")` with exact class name match
481
+ 5. **Enum Values**: Always camelCase (`active`, not `ACTIVE`)
482
+ 6. **Fields**: Use `@Field.Prop` with arrow function types
483
+ 7. **Arrays**: Wrap in `[]` (e.g., `[Int]`)
484
+ 8. **Enums**: Export with `enumOf` and derived type
485
+ 9. **Dates**: Always use `Dayjs` type with `Date` decorator
486
+ 10. **Nullability**: Use `| null` with `{ nullable: true }`
487
+ 11. **Validation**: Implement field-level constraints
488
+
489
+ Following these patterns ensures type-safe, maintainable scalar definitions that integrate seamlessly with the Akan.js framework's data modeling layer.