@akanjs/cli 0.0.149 → 0.0.150

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 (258) hide show
  1. package/cjs/index.js +17 -11
  2. package/cjs/src/guidelines/componentRule/componentRule.generate.json +131 -0
  3. package/cjs/src/guidelines/cssRule/cssRule.generate.json +93 -0
  4. package/cjs/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
  5. package/cjs/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
  6. package/cjs/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
  7. package/cjs/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
  8. package/cjs/src/guidelines/framework/framework.generate.json +119 -0
  9. package/cjs/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  10. package/cjs/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
  11. package/cjs/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
  12. package/cjs/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
  13. package/cjs/src/guidelines/modelService/modelService.generate.json +179 -0
  14. package/cjs/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
  15. package/cjs/src/guidelines/modelStore/modelStore.generate.json +130 -0
  16. package/cjs/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
  17. package/cjs/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
  18. package/cjs/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
  19. package/cjs/src/guidelines/modelView/modelView.generate.json +80 -0
  20. package/cjs/src/guidelines/modelZone/modelZone.generate.json +126 -0
  21. package/cjs/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
  22. package/cjs/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
  23. package/cjs/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
  24. package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
  25. package/cjs/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
  26. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +47 -0
  27. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +128 -0
  28. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +42 -0
  29. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +50 -0
  30. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +41 -0
  31. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +51 -0
  32. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +43 -0
  33. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +60 -0
  34. package/cjs/src/templates/app/app/[lang]/(__appName__)/layout.js +54 -0
  35. package/cjs/src/templates/app/app/[lang]/admin/layout.js +54 -0
  36. package/cjs/src/templates/app/app/[lang]/admin/page.js +63 -0
  37. package/cjs/src/templates/app/app/csr.js +34 -0
  38. package/cjs/src/templates/app/app/layout.js +38 -0
  39. package/cjs/src/templates/app/lib/setting/Setting.Template.js +57 -0
  40. package/cjs/src/templates/app/lib/setting/Setting.Unit.js +38 -0
  41. package/cjs/src/templates/app/lib/setting/Setting.Util.js +34 -0
  42. package/cjs/src/templates/app/lib/setting/Setting.View.js +51 -0
  43. package/cjs/src/templates/app/lib/setting/Setting.Zone.js +80 -0
  44. package/cjs/src/templates/app/lib/setting/index.js +61 -0
  45. package/cjs/src/templates/app/lib/summary/Summary.Template.js +43 -0
  46. package/cjs/src/templates/app/lib/summary/Summary.Unit.js +38 -0
  47. package/cjs/src/templates/app/lib/summary/Summary.Util.js +33 -0
  48. package/cjs/src/templates/app/lib/summary/Summary.View.js +51 -0
  49. package/cjs/src/templates/app/lib/summary/Summary.Zone.js +62 -0
  50. package/cjs/src/templates/app/lib/summary/index.js +67 -0
  51. package/cjs/src/templates/app/lib/user/User.Template.js +65 -0
  52. package/cjs/src/templates/app/lib/user/User.Unit.js +38 -0
  53. package/cjs/src/templates/app/lib/user/User.Util.js +94 -0
  54. package/cjs/src/templates/app/lib/user/User.View.js +66 -0
  55. package/cjs/src/templates/app/lib/user/User.Zone.js +74 -0
  56. package/cjs/src/templates/app/lib/user/index.js +61 -0
  57. package/cjs/src/templates/app/public/favicon.ico +0 -0
  58. package/cjs/src/templates/app/public/icons/icon-128x128.png +0 -0
  59. package/cjs/src/templates/app/public/icons/icon-144x144.png +0 -0
  60. package/cjs/src/templates/app/public/icons/icon-152x152.png +0 -0
  61. package/cjs/src/templates/app/public/icons/icon-192x192.png +0 -0
  62. package/cjs/src/templates/app/public/icons/icon-256x256.png +0 -0
  63. package/cjs/src/templates/app/public/icons/icon-384x384.png +0 -0
  64. package/cjs/src/templates/app/public/icons/icon-48x48.png +0 -0
  65. package/cjs/src/templates/app/public/icons/icon-512x512.png +0 -0
  66. package/cjs/src/templates/app/public/icons/icon-72x72.png +0 -0
  67. package/cjs/src/templates/app/public/icons/icon-96x96.png +0 -0
  68. package/cjs/src/templates/app/public/logo.svg +70 -0
  69. package/cjs/src/templates/app/ui/Footer.js +67 -0
  70. package/cjs/src/templates/app/ui/MainHeader.js +131 -0
  71. package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +73 -0
  72. package/cjs/src/templates/crudPages/[__model__Id]/page.js +83 -0
  73. package/cjs/src/templates/crudPages/new/page.js +70 -0
  74. package/cjs/src/templates/crudPages/page.js +71 -0
  75. package/cjs/src/templates/libRoot/lib/setting/Setting.Template.js +57 -0
  76. package/cjs/src/templates/libRoot/lib/setting/Setting.Unit.js +38 -0
  77. package/cjs/src/templates/libRoot/lib/setting/Setting.Util.js +34 -0
  78. package/cjs/src/templates/libRoot/lib/setting/Setting.View.js +51 -0
  79. package/cjs/src/templates/libRoot/lib/setting/Setting.Zone.js +80 -0
  80. package/cjs/src/templates/libRoot/lib/setting/index.js +61 -0
  81. package/cjs/src/templates/libRoot/lib/summary/Summary.Template.js +43 -0
  82. package/cjs/src/templates/libRoot/lib/summary/Summary.Unit.js +38 -0
  83. package/cjs/src/templates/libRoot/lib/summary/Summary.Util.js +33 -0
  84. package/cjs/src/templates/libRoot/lib/summary/Summary.View.js +51 -0
  85. package/cjs/src/templates/libRoot/lib/summary/Summary.Zone.js +62 -0
  86. package/cjs/src/templates/libRoot/lib/summary/index.js +67 -0
  87. package/cjs/src/templates/libRoot/lib/user/User.Template.js +65 -0
  88. package/cjs/src/templates/libRoot/lib/user/User.Unit.js +38 -0
  89. package/cjs/src/templates/libRoot/lib/user/User.Util.js +94 -0
  90. package/cjs/src/templates/libRoot/lib/user/User.View.js +66 -0
  91. package/cjs/src/templates/libRoot/lib/user/User.Zone.js +74 -0
  92. package/cjs/src/templates/libRoot/lib/user/index.js +61 -0
  93. package/cjs/src/templates/module/__Model__.Template.js +54 -0
  94. package/cjs/src/templates/module/__Model__.Unit.js +42 -0
  95. package/cjs/src/templates/module/__Model__.Util.js +70 -0
  96. package/cjs/src/templates/module/__Model__.View.js +48 -0
  97. package/cjs/src/templates/module/__Model__.Zone.js +83 -0
  98. package/cjs/src/templates/module/index.js +61 -0
  99. package/esm/index.js +17 -11
  100. package/esm/src/guidelines/componentRule/componentRule.generate.json +131 -0
  101. package/esm/src/guidelines/cssRule/cssRule.generate.json +93 -0
  102. package/esm/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
  103. package/esm/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
  104. package/esm/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
  105. package/esm/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
  106. package/esm/src/guidelines/framework/framework.generate.json +119 -0
  107. package/esm/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  108. package/esm/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
  109. package/esm/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
  110. package/esm/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
  111. package/esm/src/guidelines/modelService/modelService.generate.json +179 -0
  112. package/esm/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
  113. package/esm/src/guidelines/modelStore/modelStore.generate.json +130 -0
  114. package/esm/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
  115. package/esm/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
  116. package/esm/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
  117. package/esm/src/guidelines/modelView/modelView.generate.json +80 -0
  118. package/esm/src/guidelines/modelZone/modelZone.generate.json +126 -0
  119. package/esm/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
  120. package/esm/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
  121. package/esm/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
  122. package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
  123. package/esm/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
  124. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +27 -0
  125. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +108 -0
  126. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +22 -0
  127. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +30 -0
  128. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +21 -0
  129. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +31 -0
  130. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +23 -0
  131. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +40 -0
  132. package/esm/src/templates/app/app/[lang]/(__appName__)/layout.js +34 -0
  133. package/esm/src/templates/app/app/[lang]/admin/layout.js +34 -0
  134. package/esm/src/templates/app/app/[lang]/admin/page.js +43 -0
  135. package/esm/src/templates/app/app/csr.js +14 -0
  136. package/esm/src/templates/app/app/layout.js +18 -0
  137. package/esm/src/templates/app/lib/setting/Setting.Template.js +37 -0
  138. package/esm/src/templates/app/lib/setting/Setting.Unit.js +18 -0
  139. package/esm/src/templates/app/lib/setting/Setting.Util.js +14 -0
  140. package/esm/src/templates/app/lib/setting/Setting.View.js +31 -0
  141. package/esm/src/templates/app/lib/setting/Setting.Zone.js +60 -0
  142. package/esm/src/templates/app/lib/setting/index.js +41 -0
  143. package/esm/src/templates/app/lib/summary/Summary.Template.js +23 -0
  144. package/esm/src/templates/app/lib/summary/Summary.Unit.js +18 -0
  145. package/esm/src/templates/app/lib/summary/Summary.Util.js +13 -0
  146. package/esm/src/templates/app/lib/summary/Summary.View.js +31 -0
  147. package/esm/src/templates/app/lib/summary/Summary.Zone.js +42 -0
  148. package/esm/src/templates/app/lib/summary/index.js +47 -0
  149. package/esm/src/templates/app/lib/user/User.Template.js +45 -0
  150. package/esm/src/templates/app/lib/user/User.Unit.js +18 -0
  151. package/esm/src/templates/app/lib/user/User.Util.js +74 -0
  152. package/esm/src/templates/app/lib/user/User.View.js +46 -0
  153. package/esm/src/templates/app/lib/user/User.Zone.js +54 -0
  154. package/esm/src/templates/app/lib/user/index.js +41 -0
  155. package/esm/src/templates/app/public/favicon.ico +0 -0
  156. package/esm/src/templates/app/public/icons/icon-128x128.png +0 -0
  157. package/esm/src/templates/app/public/icons/icon-144x144.png +0 -0
  158. package/esm/src/templates/app/public/icons/icon-152x152.png +0 -0
  159. package/esm/src/templates/app/public/icons/icon-192x192.png +0 -0
  160. package/esm/src/templates/app/public/icons/icon-256x256.png +0 -0
  161. package/esm/src/templates/app/public/icons/icon-384x384.png +0 -0
  162. package/esm/src/templates/app/public/icons/icon-48x48.png +0 -0
  163. package/esm/src/templates/app/public/icons/icon-512x512.png +0 -0
  164. package/esm/src/templates/app/public/icons/icon-72x72.png +0 -0
  165. package/esm/src/templates/app/public/icons/icon-96x96.png +0 -0
  166. package/esm/src/templates/app/public/logo.svg +70 -0
  167. package/esm/src/templates/app/ui/Footer.js +47 -0
  168. package/esm/src/templates/app/ui/MainHeader.js +111 -0
  169. package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +53 -0
  170. package/esm/src/templates/crudPages/[__model__Id]/page.js +63 -0
  171. package/esm/src/templates/crudPages/new/page.js +50 -0
  172. package/esm/src/templates/crudPages/page.js +51 -0
  173. package/esm/src/templates/libRoot/lib/setting/Setting.Template.js +37 -0
  174. package/esm/src/templates/libRoot/lib/setting/Setting.Unit.js +18 -0
  175. package/esm/src/templates/libRoot/lib/setting/Setting.Util.js +14 -0
  176. package/esm/src/templates/libRoot/lib/setting/Setting.View.js +31 -0
  177. package/esm/src/templates/libRoot/lib/setting/Setting.Zone.js +60 -0
  178. package/esm/src/templates/libRoot/lib/setting/index.js +41 -0
  179. package/esm/src/templates/libRoot/lib/summary/Summary.Template.js +23 -0
  180. package/esm/src/templates/libRoot/lib/summary/Summary.Unit.js +18 -0
  181. package/esm/src/templates/libRoot/lib/summary/Summary.Util.js +13 -0
  182. package/esm/src/templates/libRoot/lib/summary/Summary.View.js +31 -0
  183. package/esm/src/templates/libRoot/lib/summary/Summary.Zone.js +42 -0
  184. package/esm/src/templates/libRoot/lib/summary/index.js +47 -0
  185. package/esm/src/templates/libRoot/lib/user/User.Template.js +45 -0
  186. package/esm/src/templates/libRoot/lib/user/User.Unit.js +18 -0
  187. package/esm/src/templates/libRoot/lib/user/User.Util.js +74 -0
  188. package/esm/src/templates/libRoot/lib/user/User.View.js +46 -0
  189. package/esm/src/templates/libRoot/lib/user/User.Zone.js +54 -0
  190. package/esm/src/templates/libRoot/lib/user/index.js +41 -0
  191. package/esm/src/templates/module/__Model__.Template.js +34 -0
  192. package/esm/src/templates/module/__Model__.Unit.js +22 -0
  193. package/esm/src/templates/module/__Model__.Util.js +50 -0
  194. package/esm/src/templates/module/__Model__.View.js +28 -0
  195. package/esm/src/templates/module/__Model__.Zone.js +63 -0
  196. package/esm/src/templates/module/index.js +41 -0
  197. package/package.json +1 -1
  198. package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.d.ts +9 -0
  199. package/src/templates/app/app/[lang]/(__appName__)/(public)/page.d.ts +9 -0
  200. package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.d.ts +9 -0
  201. package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.d.ts +9 -0
  202. package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.d.ts +10 -0
  203. package/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.d.ts +9 -0
  204. package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.d.ts +9 -0
  205. package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.d.ts +9 -0
  206. package/src/templates/app/app/[lang]/(__appName__)/layout.d.ts +9 -0
  207. package/src/templates/app/app/[lang]/admin/layout.d.ts +9 -0
  208. package/src/templates/app/app/[lang]/admin/page.d.ts +9 -0
  209. package/src/templates/app/app/csr.d.ts +9 -0
  210. package/src/templates/app/app/layout.d.ts +9 -0
  211. package/src/templates/app/lib/setting/Setting.Template.d.ts +9 -0
  212. package/src/templates/app/lib/setting/Setting.Unit.d.ts +9 -0
  213. package/src/templates/app/lib/setting/Setting.Util.d.ts +9 -0
  214. package/src/templates/app/lib/setting/Setting.View.d.ts +9 -0
  215. package/src/templates/app/lib/setting/Setting.Zone.d.ts +9 -0
  216. package/src/templates/app/lib/setting/index.d.ts +9 -0
  217. package/src/templates/app/lib/summary/Summary.Template.d.ts +9 -0
  218. package/src/templates/app/lib/summary/Summary.Unit.d.ts +9 -0
  219. package/src/templates/app/lib/summary/Summary.Util.d.ts +9 -0
  220. package/src/templates/app/lib/summary/Summary.View.d.ts +9 -0
  221. package/src/templates/app/lib/summary/Summary.Zone.d.ts +9 -0
  222. package/src/templates/app/lib/summary/index.d.ts +9 -0
  223. package/src/templates/app/lib/user/User.Template.d.ts +9 -0
  224. package/src/templates/app/lib/user/User.Unit.d.ts +9 -0
  225. package/src/templates/app/lib/user/User.Util.d.ts +9 -0
  226. package/src/templates/app/lib/user/User.View.d.ts +9 -0
  227. package/src/templates/app/lib/user/User.Zone.d.ts +9 -0
  228. package/src/templates/app/lib/user/index.d.ts +9 -0
  229. package/src/templates/app/ui/Footer.d.ts +9 -0
  230. package/src/templates/app/ui/MainHeader.d.ts +10 -0
  231. package/src/templates/crudPages/[__model__Id]/edit/page.d.ts +11 -0
  232. package/src/templates/crudPages/[__model__Id]/page.d.ts +11 -0
  233. package/src/templates/crudPages/new/page.d.ts +11 -0
  234. package/src/templates/crudPages/page.d.ts +11 -0
  235. package/src/templates/libRoot/lib/setting/Setting.Template.d.ts +9 -0
  236. package/src/templates/libRoot/lib/setting/Setting.Unit.d.ts +9 -0
  237. package/src/templates/libRoot/lib/setting/Setting.Util.d.ts +9 -0
  238. package/src/templates/libRoot/lib/setting/Setting.View.d.ts +9 -0
  239. package/src/templates/libRoot/lib/setting/Setting.Zone.d.ts +9 -0
  240. package/src/templates/libRoot/lib/setting/index.d.ts +9 -0
  241. package/src/templates/libRoot/lib/summary/Summary.Template.d.ts +9 -0
  242. package/src/templates/libRoot/lib/summary/Summary.Unit.d.ts +9 -0
  243. package/src/templates/libRoot/lib/summary/Summary.Util.d.ts +9 -0
  244. package/src/templates/libRoot/lib/summary/Summary.View.d.ts +9 -0
  245. package/src/templates/libRoot/lib/summary/Summary.Zone.d.ts +9 -0
  246. package/src/templates/libRoot/lib/summary/index.d.ts +9 -0
  247. package/src/templates/libRoot/lib/user/User.Template.d.ts +9 -0
  248. package/src/templates/libRoot/lib/user/User.Unit.d.ts +9 -0
  249. package/src/templates/libRoot/lib/user/User.Util.d.ts +9 -0
  250. package/src/templates/libRoot/lib/user/User.View.d.ts +9 -0
  251. package/src/templates/libRoot/lib/user/User.Zone.d.ts +9 -0
  252. package/src/templates/libRoot/lib/user/index.d.ts +9 -0
  253. package/src/templates/module/__Model__.Template.d.ts +11 -0
  254. package/src/templates/module/__Model__.Unit.d.ts +11 -0
  255. package/src/templates/module/__Model__.Util.d.ts +11 -0
  256. package/src/templates/module/__Model__.View.d.ts +11 -0
  257. package/src/templates/module/__Model__.Zone.d.ts +11 -0
  258. package/src/templates/module/index.d.ts +11 -0
package/cjs/index.js CHANGED
@@ -602,7 +602,7 @@ var withBase = (appName, config, libs, routes = []) => {
602
602
  eslint: { ...config.eslint, ignoreDuringBuilds: true },
603
603
  env: {
604
604
  ...config.env,
605
- basePaths: routes.map(({ basePath: basePath2 }) => basePath2).join(",")
605
+ basePaths: [...new Set(routes.map(({ basePath: basePath2 }) => basePath2))].join(",")
606
606
  },
607
607
  transpilePackages: ["swiper", "ssr-window", "dom7"],
608
608
  reactStrictMode: commandType === "start" ? false : true,
@@ -768,6 +768,7 @@ CMD ["npm", "start"]`,
768
768
  config.libs ?? [],
769
769
  config.frontend?.routes
770
770
  ),
771
+ routes: config.frontend?.routes,
771
772
  explicitDependencies: config.frontend?.explicitDependencies ?? []
772
773
  },
773
774
  mobile: {
@@ -3177,6 +3178,8 @@ ${fileCheck.lintResult.message}`
3177
3178
  var esbuild = __toESM(require("esbuild"));
3178
3179
  var import_esbuild_plugin_d = require("esbuild-plugin-d.ts");
3179
3180
  var import_fs9 = __toESM(require("fs"));
3181
+ var assetExtensions = [".css", ".md", ".js", ".png", ".ico", ".svg", ".json", ".template"];
3182
+ var assetLoader = Object.fromEntries(assetExtensions.map((ext) => [ext, "copy"]));
3180
3183
  var Builder = class {
3181
3184
  #executor;
3182
3185
  #distExecutor;
@@ -3201,7 +3204,7 @@ var Builder = class {
3201
3204
  format,
3202
3205
  outdir: `${this.#distExecutor.cwdPath}/${format}`,
3203
3206
  logLevel: "error",
3204
- loader: { ".template": "copy", ".md": "copy" }
3207
+ loader: assetLoader
3205
3208
  };
3206
3209
  }
3207
3210
  #getAssetBuildOptions() {
@@ -3215,7 +3218,7 @@ var Builder = class {
3215
3218
  ],
3216
3219
  outdir: this.#distExecutor.cwdPath,
3217
3220
  logLevel: "error",
3218
- loader: { ".css": "copy", ".md": "copy", ".js": "copy" }
3221
+ loader: assetLoader
3219
3222
  };
3220
3223
  }
3221
3224
  async build(options = {}) {
@@ -3614,6 +3617,8 @@ var ApplicationRunner = class {
3614
3617
  async #getViteConfig(app, command) {
3615
3618
  const { env } = await this.#prepareCommand(app, command, "csr");
3616
3619
  const tsconfig = app.workspace.getTsConfig();
3620
+ const akanConfig = await app.getConfig();
3621
+ const basePaths = akanConfig.frontend.routes ? [...new Set(akanConfig.frontend.routes.map(({ basePath: basePath2 }) => basePath2))].join(",") : void 0;
3617
3622
  const processEnv = env;
3618
3623
  const akanjsPrefix = process.env.USE_AKANJS_PKGS === "true" ? `${app.workspace.workspaceRoot}/pkgs/` : "";
3619
3624
  const config = vite.defineConfig({
@@ -3677,7 +3682,8 @@ var ApplicationRunner = class {
3677
3682
  APP_OPERATION_MODE: processEnv.APP_OPERATION_MODE ?? "local",
3678
3683
  AKAN_WORKSPACE_ROOT: app.workspace.workspaceRoot,
3679
3684
  AKAN_APP_ROOT: app.cwdPath,
3680
- RENDER_ENV: "csr"
3685
+ RENDER_ENV: "csr",
3686
+ basePaths
3681
3687
  },
3682
3688
  "process.platform": JSON.stringify("browser"),
3683
3689
  "process.version": JSON.stringify(process.version)
@@ -3992,7 +3998,11 @@ var ApplicationScript = class {
3992
3998
  await this.syncApplication(app);
3993
3999
  if (app.workspace.getBaseDevEnv().env === "local")
3994
4000
  await this.dbup(app.workspace);
3995
- await Promise.all([this.startBackend(app, { open: open2, sync: false }), this.startFrontend(app, { open: open2, sync: false })]);
4001
+ await Promise.all([
4002
+ this.startBackend(app, { open: open2, sync: false }),
4003
+ this.startFrontend(app, { open: open2, sync: false }),
4004
+ this.startCsr(app, { open: open2, sync: false })
4005
+ ]);
3996
4006
  }
3997
4007
  async buildBackend(app, { sync = true } = {}) {
3998
4008
  if (sync)
@@ -4389,11 +4399,7 @@ var PackageRunner = class {
4389
4399
  if (pkg.name === "@akanjs/cli")
4390
4400
  await builder.build({
4391
4401
  bundle: true,
4392
- additionalEntryPoints: [
4393
- `${pkg.cwdPath}/src/templates/**/*.ts`,
4394
- `${pkg.cwdPath}/src/templates/**/*.template`,
4395
- `${pkg.cwdPath}/src/guidelines/**/*.md`
4396
- ]
4402
+ additionalEntryPoints: [`${pkg.cwdPath}/src/templates/**/*`, `${pkg.cwdPath}/src/guidelines/**/*`]
4397
4403
  });
4398
4404
  else
4399
4405
  await builder.build();
@@ -5511,7 +5517,7 @@ var WorkspaceCommand = class {
5511
5517
  __decorateClass([
5512
5518
  Target.Public(),
5513
5519
  __decorateParam(0, Argument("workspaceName", { desc: "what is the name of your organization?" })),
5514
- __decorateParam(1, Option("app", { desc: "describe your first application to create " })),
5520
+ __decorateParam(1, Option("app", { desc: "what is the codename of your first application? (e.g. myapp)" })),
5515
5521
  __decorateParam(2, Option("dir", { desc: "directory of workspace", default: process.env.USE_AKANJS_PKGS === "true" ? "local" : "." }))
5516
5522
  ], WorkspaceCommand.prototype, "createWorkspace", 1);
5517
5523
  __decorateClass([
@@ -0,0 +1,131 @@
1
+ {
2
+ "title": "Component Rule",
3
+ "description": "Comprehensive guidelines for creating React components in the Akan.js framework",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "Cookie management utilities for web and mobile",
8
+ "path": "pkgs/@akanjs/client/src/cookie.ts"
9
+ },
10
+ {
11
+ "type": "source",
12
+ "description": "Storage utilities for persistent data",
13
+ "path": "pkgs/@akanjs/client/src/storage.ts"
14
+ },
15
+ {
16
+ "type": "source",
17
+ "description": "Device capabilities and platform detection",
18
+ "path": "pkgs/@akanjs/client/src/device.ts"
19
+ },
20
+ {
21
+ "type": "source",
22
+ "description": "Navigation and routing utilities",
23
+ "path": "pkgs/@akanjs/client/src/router.ts"
24
+ },
25
+ {
26
+ "type": "source",
27
+ "description": "Type utilities including clsx for class management",
28
+ "path": "pkgs/@akanjs/client/src/types.ts"
29
+ },
30
+ {
31
+ "type": "example",
32
+ "description": "Unit components (list items/cards)",
33
+ "path": "{apps,libs}/*/lib/*/*.Unit.tsx",
34
+ "sample": 3
35
+ },
36
+ {
37
+ "type": "example",
38
+ "description": "View components (detailed displays)",
39
+ "path": "{apps,libs}/*/lib/*/*.View.tsx",
40
+ "sample": 3
41
+ },
42
+ {
43
+ "type": "example",
44
+ "description": "Template components (forms/edit screens)",
45
+ "path": "{apps,libs}/*/lib/*/*.Template.tsx",
46
+ "sample": 3
47
+ },
48
+ {
49
+ "type": "example",
50
+ "description": "Utility components (toolbars/helpers)",
51
+ "path": "{apps,libs}/*/lib/*/*.Util.tsx",
52
+ "sample": 3
53
+ },
54
+ {
55
+ "type": "example",
56
+ "description": "Zone components (data containers)",
57
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
58
+ "sample": 3
59
+ },
60
+ {
61
+ "type": "example",
62
+ "description": "Reusable UI components",
63
+ "path": "{libs,apps}/*/ui/**/*.tsx",
64
+ "sample": 5
65
+ },
66
+ {
67
+ "type": "usage",
68
+ "description": "Component composition patterns",
69
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
70
+ "filterText": "renderItem",
71
+ "sample": 3
72
+ },
73
+ {
74
+ "type": "usage",
75
+ "description": "Form state management with stores",
76
+ "path": "{apps,libs}/*/lib/*/*.Template.tsx",
77
+ "filterText": "st.use",
78
+ "sample": 3
79
+ },
80
+ {
81
+ "type": "usage",
82
+ "description": "Conditional rendering with TailwindCSS",
83
+ "path": "{apps,libs}/*/lib/*/*.tsx",
84
+ "filterText": "clsx",
85
+ "sample": 3
86
+ },
87
+ {
88
+ "type": "usage",
89
+ "description": "Data fetching with Load components",
90
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
91
+ "filterText": "<Load.",
92
+ "sample": 3
93
+ },
94
+ {
95
+ "type": "usage",
96
+ "description": "Responsive design patterns",
97
+ "path": "{apps,libs}/*/lib/*/*.tsx",
98
+ "filterText": "md:",
99
+ "sample": 3
100
+ }
101
+ ],
102
+ "update": {
103
+ "filePath": "./componentRule.instruction.md",
104
+ "contents": [
105
+ "Component Architecture - Core structure and organization",
106
+ "Component Types - Purpose and responsibility of each component type",
107
+ "File Naming Conventions - Standardized naming patterns",
108
+ "Utility Functions - Core framework utilities",
109
+ "Best Practices - Guidelines for components",
110
+ "State Management - Integration with Zustand store and signals",
111
+ "Responsive Design - Mobile-first approach",
112
+ "Accessibility - Core principles",
113
+ "Performance Optimization - Memoization and lazy loading",
114
+ "Data Fetching - Using Load components",
115
+ "Composition Patterns - Component rendering methods",
116
+ "Complete Examples - Full implementation examples"
117
+ ],
118
+ "rules": [
119
+ "Component types (.Unit, .View, .Template, .Util, .Zone) should follow standard patterns and responsibilities",
120
+ "Every component file should maintain a consistent organization pattern with logical sections",
121
+ "Responsive design should use Tailwind's mobile-first approach with sm:, md:, lg: prefixes",
122
+ "Form components should use the framework state management pattern with st.use and st.do",
123
+ "Data containers should follow the Load.Units/Load.View pattern for consistent data fetching",
124
+ "Component files should export named components rather than default exports",
125
+ "Props should use explicit TypeScript interfaces with proper JSDoc comments where helpful",
126
+ "Separate business logic from presentation components",
127
+ "Follow Akan.js project structure and module organization"
128
+ ]
129
+ },
130
+ "page": "/[lang]/akanjs/(docs)/docs/codebase/component/page.tsx"
131
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "title": "CSS Rule with TailwindCSS and DaisyUI",
3
+ "description": "Comprehensive guidelines for creating CSS with TailwindCSS and DaisyUI in the Akan.js framework",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "clsx utility for class name management",
8
+ "path": "pkgs/@akanjs/client/src/types.ts"
9
+ },
10
+ {
11
+ "type": "example",
12
+ "description": "Unit components (list items/cards)",
13
+ "path": "{apps,libs}/*/lib/*/*.Unit.tsx",
14
+ "sample": 3
15
+ },
16
+ {
17
+ "type": "example",
18
+ "description": "View components (detailed displays)",
19
+ "path": "{apps,libs}/*/lib/*/*.View.tsx",
20
+ "sample": 3
21
+ },
22
+ {
23
+ "type": "example",
24
+ "description": "Edit components (forms for data creation/editing)",
25
+ "path": "{apps,libs}/*/lib/*/*.Edit.tsx",
26
+ "sample": 2
27
+ },
28
+ {
29
+ "type": "example",
30
+ "description": "Util components (special function components)",
31
+ "path": "{apps,libs}/*/lib/*/*.Util.tsx",
32
+ "sample": 2
33
+ },
34
+ {
35
+ "type": "example",
36
+ "description": "Zone components (container components)",
37
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
38
+ "sample": 2
39
+ },
40
+ {
41
+ "type": "example",
42
+ "description": "Reusable UI components",
43
+ "path": "{libs,apps}/*/ui/**/*.tsx",
44
+ "sample": 3
45
+ },
46
+ {
47
+ "type": "usage",
48
+ "description": "Conditional rendering with clsx",
49
+ "path": "{apps,libs}/*/lib/*/*.tsx",
50
+ "filterText": "clsx",
51
+ "sample": 3
52
+ },
53
+ {
54
+ "type": "usage",
55
+ "description": "DaisyUI color usage",
56
+ "path": "{apps,libs}/*/lib/*/*.tsx",
57
+ "filterText": "bg-primary|bg-secondary|bg-accent|bg-info|bg-success|bg-warning|bg-error",
58
+ "sample": 3
59
+ },
60
+ {
61
+ "type": "usage",
62
+ "description": "Responsive design patterns",
63
+ "path": "{apps,libs}/*/lib/*/*.tsx",
64
+ "filterText": "sm:|md:|lg:|xl:|2xl:",
65
+ "sample": 3
66
+ }
67
+ ],
68
+ "update": {
69
+ "filePath": "./cssRule.instruction.md",
70
+ "contents": [
71
+ "Core Principles - Fundamental styling concepts",
72
+ "Class Management with clsx - How to handle conditional class names",
73
+ "Component Structure Best Practices - Consistent component styling",
74
+ "Component Types in Akan.js - Styling patterns for different component types",
75
+ "Common UI Patterns - Reusable design patterns",
76
+ "Best Practices - Guidelines for maintainable CSS",
77
+ "Common Mistakes to Avoid - What not to do",
78
+ "Troubleshooting - Fixing common issues"
79
+ ],
80
+ "rules": [
81
+ "clsx should be used for conditional class names and className composition",
82
+ "Every component should accept and properly handle className prop for composition",
83
+ "Color system of DaisyUI should be used for colors (primary, secondary, accent, etc.) - hardcoded colors should be avoided",
84
+ "Components should follow responsive design principles with mobile-first approach",
85
+ "Use Tailwind's spacing scale consistently for margins and padding",
86
+ "Group related classes together for better readability",
87
+ "DaisyUI components should be used for common UI elements when available",
88
+ "Apply proper focus, hover, and active states for interactive elements",
89
+ "Respect the naming conventions for component types (Unit, View, Edit, Util, Zone)"
90
+ ]
91
+ },
92
+ "page": "/[lang]/akanjs/(docs)/docs/codebase/css/page.tsx"
93
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "title": "Database Module",
3
+ "description": "Structure of database module",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "core database module source code",
8
+ "path": "pkgs/@akanjs/server/src/module.ts"
9
+ },
10
+ {
11
+ "type": "source",
12
+ "description": "how to boot modules in Nest.js server",
13
+ "path": "pkgs/@akanjs/server/src/boot.ts"
14
+ },
15
+ {
16
+ "type": "source",
17
+ "description": "constant model decorators, database schema decorators, signal decorators reference",
18
+ "path": "pkgs/@akanjs/constant/src/decorator.ts"
19
+ },
20
+ {
21
+ "type": "example",
22
+ "description": "example database module of admin",
23
+ "path": "libs/shared/lib/admin/*"
24
+ }
25
+ ],
26
+ "update": {
27
+ "filePath": "./databaseModule.instruction.md",
28
+ "contents": [
29
+ "Purpose of database modules in Akan.js",
30
+ "File structure and location conventions",
31
+ "How to create database modules",
32
+ "How to use database modules in Nest.js server",
33
+ "How to use components, stores, and signals in client side",
34
+ "Real-time features with websockets and subscriptions",
35
+ "Best practices for data modeling and schema design",
36
+ "Authentication and authorization patterns",
37
+ "Performance optimization techniques",
38
+ "Error handling strategies"
39
+ ],
40
+ "rules": [
41
+ "Database module is a domain specific module to manage business logic of database",
42
+ "Follow consistent naming conventions with PascalCase for classes and camelCase for files",
43
+ "Keep business logic in service files, not in signals or documents",
44
+ "Use field validation in constant models to ensure data integrity",
45
+ "Create proper indexes in middleware for performance optimization",
46
+ "Apply appropriate authorization guards to protect sensitive operations",
47
+ "Use dictionary files for all UI text to support internationalization"
48
+ ]
49
+ },
50
+ "page": "/[lang]/akanjs/(docs)/docs/module/overview/page.tsx"
51
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "title": "How to create doc page",
3
+ "description": "How to create documentation page of Akan.js framework",
4
+ "scans": [
5
+ {
6
+ "type": "example",
7
+ "description": "Example of a system architecture documentation page",
8
+ "path": "apps/angelo/app/[lang]/akanjs/(docs)/docs/systemArch/frontend/page.tsx"
9
+ },
10
+ {
11
+ "type": "example",
12
+ "description": "Example of a module documentation page with API reference",
13
+ "path": "apps/angelo/app/[lang]/akanjs/(docs)/docs/module/signal/page.tsx"
14
+ },
15
+ {
16
+ "type": "source",
17
+ "description": "Documentation utility components",
18
+ "path": "apps/angelo/ui/Docs/index.ts"
19
+ },
20
+ {
21
+ "type": "source",
22
+ "description": "Code snippet component for syntax highlighting",
23
+ "path": "apps/angelo/ui/Docs/CodeSnippet.tsx"
24
+ },
25
+ {
26
+ "type": "source",
27
+ "description": "Title component for main headings",
28
+ "path": "apps/angelo/ui/Docs/Title.tsx"
29
+ },
30
+ {
31
+ "type": "source",
32
+ "description": "Description component for explanatory text",
33
+ "path": "apps/angelo/ui/Docs/Description.tsx"
34
+ },
35
+ {
36
+ "type": "source",
37
+ "description": "Option table component for displaying parameters",
38
+ "path": "apps/angelo/ui/Docs/OptionTable.tsx"
39
+ },
40
+ {
41
+ "type": "source",
42
+ "description": "Introduction table component for listing features",
43
+ "path": "apps/angelo/ui/Docs/IntroTable.tsx"
44
+ }
45
+ ],
46
+ "update": {
47
+ "filePath": "./docPageRule.instruction.md",
48
+ "contents": [
49
+ "Purpose of doc page in Akan.js",
50
+ "How to create doc page",
51
+ "Page organization and structure",
52
+ "Utility components",
53
+ "Best practices for documentation",
54
+ "Internationalization guidelines",
55
+ "Code example guidelines",
56
+ "Complete example implementation",
57
+ "Troubleshooting common issues"
58
+ ],
59
+ "rules": [
60
+ "Docs.Layout is already set on the top of layout.tsx file in the root of the project, so you don't need to use it in your page",
61
+ "Docs utility should be used with `Docs` prefix, like <Docs.Title>, do not use object destructuring",
62
+ "Always wrap user-facing text in l.trans() with at least English and Korean translations",
63
+ "Use a logical hierarchy of headings (Title → SubTitle → SubSubTitle)",
64
+ "Include a divider (<div className=\"divider\"></div>) between major sections",
65
+ "For long pages, use anchor links with hidden divs for navigation",
66
+ "Code examples should be realistic and include proper comments",
67
+ "Tables should use the appropriate type (OptionTable for parameters, IntroTable for features)",
68
+ "Always specify the correct language for CodeSnippet components"
69
+ ]
70
+ },
71
+ "page": "/[lang]/akanjs/(docs)/docs/[category]/[pageName]/page"
72
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "title": "Enum Constant",
3
+ "description": "how to generate a enumOf usage in constant.ts file",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "base enum library source code",
8
+ "path": "pkgs/@akanjs/base/src/base.ts"
9
+ },
10
+ {
11
+ "type": "example",
12
+ "description": "enumOf usage in constant.ts files",
13
+ "path": "{apps,libs}/*/lib/*/*.constant.ts",
14
+ "filterText": "enumOf",
15
+ "sample": 10
16
+ }
17
+ ],
18
+ "update": {
19
+ "filePath": "./enumConstant.instruction.md",
20
+ "contents": ["Structure of enumOf usage in constant.ts file", "How to add enumOf usage in constant.ts file"],
21
+ "rules": []
22
+ },
23
+ "page": "/[lang]/akanjs/(docs)/docs/codebase/enum/page.tsx"
24
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "title": "Field Decorator",
3
+ "description": "How to use @Field decorators in Akan.js",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "Field decorator implementation",
8
+ "path": "pkgs/@akanjs/constant/src/fieldMeta.ts"
9
+ },
10
+ {
11
+ "type": "source",
12
+ "description": "Field options and metadata interface",
13
+ "path": "pkgs/@akanjs/constant/src/scalar.ts"
14
+ },
15
+ {
16
+ "type": "source",
17
+ "description": "Base enum and type definitions",
18
+ "path": "pkgs/@akanjs/base/src/base.ts"
19
+ },
20
+ {
21
+ "type": "source",
22
+ "description": "Scalar type definitions",
23
+ "path": "pkgs/@akanjs/base/src/scalar.ts"
24
+ },
25
+ {
26
+ "type": "source",
27
+ "description": "Model class metadata implementation",
28
+ "path": "pkgs/@akanjs/constant/src/classMeta.ts"
29
+ },
30
+ {
31
+ "type": "source",
32
+ "description": "GraphQL type generation from field metadata",
33
+ "path": "pkgs/@akanjs/server/src/gql.ts"
34
+ },
35
+ {
36
+ "type": "source",
37
+ "description": "MongoDB schema generation from field metadata",
38
+ "path": "pkgs/@akanjs/server/src/schema.ts"
39
+ },
40
+ {
41
+ "type": "source",
42
+ "description": "Search indexing based on field metadata",
43
+ "path": "pkgs/@akanjs/server/src/searchDaemon.ts"
44
+ },
45
+ {
46
+ "type": "example",
47
+ "description": "Examples of Field.Prop with basic options",
48
+ "path": "{apps,libs}/**/lib/__scalar/*/*.constant.ts",
49
+ "query": "/Field\\.Prop.*default/",
50
+ "sample": 3
51
+ },
52
+ {
53
+ "type": "example",
54
+ "description": "Examples of Field.Hidden and Field.Secret",
55
+ "path": "{apps,libs}/**/lib/*/*.constant.ts",
56
+ "query": "/Field\\.(Hidden|Secret)/",
57
+ "sample": 3
58
+ },
59
+ {
60
+ "type": "example",
61
+ "description": "Examples of Field.Resolve for computed properties",
62
+ "path": "{apps,libs}/**/lib/*/*.constant.ts",
63
+ "query": "/Field\\.Resolve/",
64
+ "sample": 2
65
+ },
66
+ {
67
+ "type": "example",
68
+ "description": "Examples of array field decorators",
69
+ "path": "{apps,libs}/**/lib/*/*.constant.ts",
70
+ "query": "/Field\\.Prop\\(\\(\\)\\s*=>\\s*\\[/",
71
+ "sample": 3
72
+ },
73
+ {
74
+ "type": "example",
75
+ "description": "Examples of enum usage with Field.Prop",
76
+ "path": "{apps,libs}/**/lib/*/*.constant.ts",
77
+ "query": "/Field\\.Prop.*enum:/",
78
+ "sample": 3
79
+ },
80
+ {
81
+ "type": "example",
82
+ "description": "Examples of text search and filter options",
83
+ "path": "{apps,libs}/**/lib/*/*.constant.ts",
84
+ "query": "/Field\\.Prop.*text:/",
85
+ "sample": 2
86
+ },
87
+ {
88
+ "type": "example",
89
+ "description": "Examples of validation options (min, max, minlength, etc.)",
90
+ "path": "{apps,libs}/**/lib/*/*.constant.ts",
91
+ "query": "/Field\\.Prop.*(min:|max:|minlength:|maxlength:|validate:)/",
92
+ "sample": 3
93
+ }
94
+ ],
95
+ "update": {
96
+ "filePath": "./fieldDecorator.instruction.md",
97
+ "contents": [
98
+ "Purpose and types of Field decorators",
99
+ "Basic syntax and structure",
100
+ "Field.Prop for standard properties",
101
+ "Field.Hidden for database-only fields",
102
+ "Field.Secret for sensitive data",
103
+ "Field.Resolve for computed properties",
104
+ "Field options reference",
105
+ "Working with primitive types",
106
+ "Working with enums",
107
+ "Working with arrays and nested structures",
108
+ "Reference fields and relationships",
109
+ "Date and special type handling",
110
+ "Validation and constraints",
111
+ "Search optimization",
112
+ "Default values and immutability",
113
+ "Integration with Model types",
114
+ "Best practices",
115
+ "Troubleshooting common issues"
116
+ ],
117
+ "rules": [
118
+ "Always use arrow function syntax for type specification: () => Type",
119
+ "Field type in the arrow function must match the TypeScript type",
120
+ "Use bracket notation for arrays: () => [Type] (not Array<Type>)",
121
+ "Always provide a default value for required fields",
122
+ "Mark sensitive fields with Field.Secret instead of Field.Prop",
123
+ "For nullable fields, add both { nullable: true } option and Type | null in TypeScript",
124
+ "When using enums, always create them with enumOf() and export both const and type",
125
+ "For date fields, use Date in the arrow function but Dayjs as the TypeScript type",
126
+ "Always specify the 'of' option when using Map type",
127
+ "Use text: 'search' for full-text searchable fields and text: 'filter' for filterable fields",
128
+ "Use immutable: true for fields that shouldn't change after creation",
129
+ "Array fields should have [] as the default value",
130
+ "Prefer Field.Resolve for computed properties instead of getters",
131
+ "Use Field.Hidden for internal fields that shouldn't be exposed in GraphQL"
132
+ ]
133
+ },
134
+ "page": "/[lang]/akanjs/(docs)/docs/codebase/field/page.tsx"
135
+ }