@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.
- package/cjs/index.js +17 -11
- package/cjs/src/guidelines/componentRule/componentRule.generate.json +131 -0
- package/cjs/src/guidelines/cssRule/cssRule.generate.json +93 -0
- package/cjs/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
- package/cjs/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
- package/cjs/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
- package/cjs/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
- package/cjs/src/guidelines/framework/framework.generate.json +119 -0
- package/cjs/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
- package/cjs/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
- package/cjs/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
- package/cjs/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
- package/cjs/src/guidelines/modelService/modelService.generate.json +179 -0
- package/cjs/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
- package/cjs/src/guidelines/modelStore/modelStore.generate.json +130 -0
- package/cjs/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
- package/cjs/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
- package/cjs/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
- package/cjs/src/guidelines/modelView/modelView.generate.json +80 -0
- package/cjs/src/guidelines/modelZone/modelZone.generate.json +126 -0
- package/cjs/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
- package/cjs/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
- package/cjs/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
- package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
- package/cjs/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +47 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +128 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +42 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +50 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +41 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +51 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +43 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +60 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/layout.js +54 -0
- package/cjs/src/templates/app/app/[lang]/admin/layout.js +54 -0
- package/cjs/src/templates/app/app/[lang]/admin/page.js +63 -0
- package/cjs/src/templates/app/app/csr.js +34 -0
- package/cjs/src/templates/app/app/layout.js +38 -0
- package/cjs/src/templates/app/lib/setting/Setting.Template.js +57 -0
- package/cjs/src/templates/app/lib/setting/Setting.Unit.js +38 -0
- package/cjs/src/templates/app/lib/setting/Setting.Util.js +34 -0
- package/cjs/src/templates/app/lib/setting/Setting.View.js +51 -0
- package/cjs/src/templates/app/lib/setting/Setting.Zone.js +80 -0
- package/cjs/src/templates/app/lib/setting/index.js +61 -0
- package/cjs/src/templates/app/lib/summary/Summary.Template.js +43 -0
- package/cjs/src/templates/app/lib/summary/Summary.Unit.js +38 -0
- package/cjs/src/templates/app/lib/summary/Summary.Util.js +33 -0
- package/cjs/src/templates/app/lib/summary/Summary.View.js +51 -0
- package/cjs/src/templates/app/lib/summary/Summary.Zone.js +62 -0
- package/cjs/src/templates/app/lib/summary/index.js +67 -0
- package/cjs/src/templates/app/lib/user/User.Template.js +65 -0
- package/cjs/src/templates/app/lib/user/User.Unit.js +38 -0
- package/cjs/src/templates/app/lib/user/User.Util.js +94 -0
- package/cjs/src/templates/app/lib/user/User.View.js +66 -0
- package/cjs/src/templates/app/lib/user/User.Zone.js +74 -0
- package/cjs/src/templates/app/lib/user/index.js +61 -0
- package/cjs/src/templates/app/public/favicon.ico +0 -0
- package/cjs/src/templates/app/public/icons/icon-128x128.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-144x144.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-152x152.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-192x192.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-256x256.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-384x384.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-48x48.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-512x512.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-72x72.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-96x96.png +0 -0
- package/cjs/src/templates/app/public/logo.svg +70 -0
- package/cjs/src/templates/app/ui/Footer.js +67 -0
- package/cjs/src/templates/app/ui/MainHeader.js +131 -0
- package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +73 -0
- package/cjs/src/templates/crudPages/[__model__Id]/page.js +83 -0
- package/cjs/src/templates/crudPages/new/page.js +70 -0
- package/cjs/src/templates/crudPages/page.js +71 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.Template.js +57 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.Unit.js +38 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.Util.js +34 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.View.js +51 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.Zone.js +80 -0
- package/cjs/src/templates/libRoot/lib/setting/index.js +61 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.Template.js +43 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.Unit.js +38 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.Util.js +33 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.View.js +51 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.Zone.js +62 -0
- package/cjs/src/templates/libRoot/lib/summary/index.js +67 -0
- package/cjs/src/templates/libRoot/lib/user/User.Template.js +65 -0
- package/cjs/src/templates/libRoot/lib/user/User.Unit.js +38 -0
- package/cjs/src/templates/libRoot/lib/user/User.Util.js +94 -0
- package/cjs/src/templates/libRoot/lib/user/User.View.js +66 -0
- package/cjs/src/templates/libRoot/lib/user/User.Zone.js +74 -0
- package/cjs/src/templates/libRoot/lib/user/index.js +61 -0
- package/cjs/src/templates/module/__Model__.Template.js +54 -0
- package/cjs/src/templates/module/__Model__.Unit.js +42 -0
- package/cjs/src/templates/module/__Model__.Util.js +70 -0
- package/cjs/src/templates/module/__Model__.View.js +48 -0
- package/cjs/src/templates/module/__Model__.Zone.js +83 -0
- package/cjs/src/templates/module/index.js +61 -0
- package/esm/index.js +17 -11
- package/esm/src/guidelines/componentRule/componentRule.generate.json +131 -0
- package/esm/src/guidelines/cssRule/cssRule.generate.json +93 -0
- package/esm/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
- package/esm/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
- package/esm/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
- package/esm/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
- package/esm/src/guidelines/framework/framework.generate.json +119 -0
- package/esm/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
- package/esm/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
- package/esm/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
- package/esm/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
- package/esm/src/guidelines/modelService/modelService.generate.json +179 -0
- package/esm/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
- package/esm/src/guidelines/modelStore/modelStore.generate.json +130 -0
- package/esm/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
- package/esm/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
- package/esm/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
- package/esm/src/guidelines/modelView/modelView.generate.json +80 -0
- package/esm/src/guidelines/modelZone/modelZone.generate.json +126 -0
- package/esm/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
- package/esm/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
- package/esm/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
- package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
- package/esm/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +27 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +108 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +22 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +30 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +21 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +31 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +23 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +40 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/layout.js +34 -0
- package/esm/src/templates/app/app/[lang]/admin/layout.js +34 -0
- package/esm/src/templates/app/app/[lang]/admin/page.js +43 -0
- package/esm/src/templates/app/app/csr.js +14 -0
- package/esm/src/templates/app/app/layout.js +18 -0
- package/esm/src/templates/app/lib/setting/Setting.Template.js +37 -0
- package/esm/src/templates/app/lib/setting/Setting.Unit.js +18 -0
- package/esm/src/templates/app/lib/setting/Setting.Util.js +14 -0
- package/esm/src/templates/app/lib/setting/Setting.View.js +31 -0
- package/esm/src/templates/app/lib/setting/Setting.Zone.js +60 -0
- package/esm/src/templates/app/lib/setting/index.js +41 -0
- package/esm/src/templates/app/lib/summary/Summary.Template.js +23 -0
- package/esm/src/templates/app/lib/summary/Summary.Unit.js +18 -0
- package/esm/src/templates/app/lib/summary/Summary.Util.js +13 -0
- package/esm/src/templates/app/lib/summary/Summary.View.js +31 -0
- package/esm/src/templates/app/lib/summary/Summary.Zone.js +42 -0
- package/esm/src/templates/app/lib/summary/index.js +47 -0
- package/esm/src/templates/app/lib/user/User.Template.js +45 -0
- package/esm/src/templates/app/lib/user/User.Unit.js +18 -0
- package/esm/src/templates/app/lib/user/User.Util.js +74 -0
- package/esm/src/templates/app/lib/user/User.View.js +46 -0
- package/esm/src/templates/app/lib/user/User.Zone.js +54 -0
- package/esm/src/templates/app/lib/user/index.js +41 -0
- package/esm/src/templates/app/public/favicon.ico +0 -0
- package/esm/src/templates/app/public/icons/icon-128x128.png +0 -0
- package/esm/src/templates/app/public/icons/icon-144x144.png +0 -0
- package/esm/src/templates/app/public/icons/icon-152x152.png +0 -0
- package/esm/src/templates/app/public/icons/icon-192x192.png +0 -0
- package/esm/src/templates/app/public/icons/icon-256x256.png +0 -0
- package/esm/src/templates/app/public/icons/icon-384x384.png +0 -0
- package/esm/src/templates/app/public/icons/icon-48x48.png +0 -0
- package/esm/src/templates/app/public/icons/icon-512x512.png +0 -0
- package/esm/src/templates/app/public/icons/icon-72x72.png +0 -0
- package/esm/src/templates/app/public/icons/icon-96x96.png +0 -0
- package/esm/src/templates/app/public/logo.svg +70 -0
- package/esm/src/templates/app/ui/Footer.js +47 -0
- package/esm/src/templates/app/ui/MainHeader.js +111 -0
- package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +53 -0
- package/esm/src/templates/crudPages/[__model__Id]/page.js +63 -0
- package/esm/src/templates/crudPages/new/page.js +50 -0
- package/esm/src/templates/crudPages/page.js +51 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.Template.js +37 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.Unit.js +18 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.Util.js +14 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.View.js +31 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.Zone.js +60 -0
- package/esm/src/templates/libRoot/lib/setting/index.js +41 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.Template.js +23 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.Unit.js +18 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.Util.js +13 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.View.js +31 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.Zone.js +42 -0
- package/esm/src/templates/libRoot/lib/summary/index.js +47 -0
- package/esm/src/templates/libRoot/lib/user/User.Template.js +45 -0
- package/esm/src/templates/libRoot/lib/user/User.Unit.js +18 -0
- package/esm/src/templates/libRoot/lib/user/User.Util.js +74 -0
- package/esm/src/templates/libRoot/lib/user/User.View.js +46 -0
- package/esm/src/templates/libRoot/lib/user/User.Zone.js +54 -0
- package/esm/src/templates/libRoot/lib/user/index.js +41 -0
- package/esm/src/templates/module/__Model__.Template.js +34 -0
- package/esm/src/templates/module/__Model__.Unit.js +22 -0
- package/esm/src/templates/module/__Model__.Util.js +50 -0
- package/esm/src/templates/module/__Model__.View.js +28 -0
- package/esm/src/templates/module/__Model__.Zone.js +63 -0
- package/esm/src/templates/module/index.js +41 -0
- package/package.json +1 -1
- package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.d.ts +10 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/layout.d.ts +9 -0
- package/src/templates/app/app/[lang]/admin/layout.d.ts +9 -0
- package/src/templates/app/app/[lang]/admin/page.d.ts +9 -0
- package/src/templates/app/app/csr.d.ts +9 -0
- package/src/templates/app/app/layout.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.Template.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.Unit.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.Util.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.View.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.Zone.d.ts +9 -0
- package/src/templates/app/lib/setting/index.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.Template.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.Unit.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.Util.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.View.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.Zone.d.ts +9 -0
- package/src/templates/app/lib/summary/index.d.ts +9 -0
- package/src/templates/app/lib/user/User.Template.d.ts +9 -0
- package/src/templates/app/lib/user/User.Unit.d.ts +9 -0
- package/src/templates/app/lib/user/User.Util.d.ts +9 -0
- package/src/templates/app/lib/user/User.View.d.ts +9 -0
- package/src/templates/app/lib/user/User.Zone.d.ts +9 -0
- package/src/templates/app/lib/user/index.d.ts +9 -0
- package/src/templates/app/ui/Footer.d.ts +9 -0
- package/src/templates/app/ui/MainHeader.d.ts +10 -0
- package/src/templates/crudPages/[__model__Id]/edit/page.d.ts +11 -0
- package/src/templates/crudPages/[__model__Id]/page.d.ts +11 -0
- package/src/templates/crudPages/new/page.d.ts +11 -0
- package/src/templates/crudPages/page.d.ts +11 -0
- package/src/templates/libRoot/lib/setting/Setting.Template.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/Setting.Unit.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/Setting.Util.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/Setting.View.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/Setting.Zone.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/index.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.Template.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.Unit.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.Util.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.View.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.Zone.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/index.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.Template.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.Unit.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.Util.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.View.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.Zone.d.ts +9 -0
- package/src/templates/libRoot/lib/user/index.d.ts +9 -0
- package/src/templates/module/__Model__.Template.d.ts +11 -0
- package/src/templates/module/__Model__.Unit.d.ts +11 -0
- package/src/templates/module/__Model__.Util.d.ts +11 -0
- package/src/templates/module/__Model__.View.d.ts +11 -0
- package/src/templates/module/__Model__.Zone.d.ts +11 -0
- package/src/templates/module/index.d.ts +11 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Akan.js Framework",
|
|
3
|
+
"description": "Comprehensive guide to the Akan.js framework architecture, concepts, and development patterns",
|
|
4
|
+
"scans": [
|
|
5
|
+
{
|
|
6
|
+
"type": "source",
|
|
7
|
+
"description": "Core framework packages",
|
|
8
|
+
"path": "pkgs/@akanjs/**/src/index.ts"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type": "source",
|
|
12
|
+
"description": "Library implementations",
|
|
13
|
+
"path": "libs/*/index.ts"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "example",
|
|
17
|
+
"description": "Application configurations",
|
|
18
|
+
"path": "apps/*/akan.config.ts",
|
|
19
|
+
"sample": 3
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "example",
|
|
23
|
+
"description": "Main application entry points",
|
|
24
|
+
"path": "apps/*/main.ts",
|
|
25
|
+
"sample": 3
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "example",
|
|
29
|
+
"description": "Client-side entry points",
|
|
30
|
+
"path": "apps/*/client.ts",
|
|
31
|
+
"sample": 3
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "example",
|
|
35
|
+
"description": "Server-side entry points",
|
|
36
|
+
"path": "apps/*/server.ts",
|
|
37
|
+
"sample": 3
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"type": "example",
|
|
41
|
+
"description": "Model implementation patterns",
|
|
42
|
+
"path": "apps/*/lib/[!_]*/*.{constant,service,signal,store}.ts",
|
|
43
|
+
"sample": 4
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "example",
|
|
47
|
+
"description": "Component implementation patterns",
|
|
48
|
+
"path": "apps/*/lib/[!_]*/*.{View,Unit,Template,Zone}.tsx",
|
|
49
|
+
"sample": 4
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "usage",
|
|
53
|
+
"description": "Multi-environment configuration",
|
|
54
|
+
"path": "apps/*/env/*.ts",
|
|
55
|
+
"sample": 3
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "usage",
|
|
59
|
+
"description": "Routing implementation",
|
|
60
|
+
"path": "apps/*/app/**/*.tsx",
|
|
61
|
+
"sample": 3
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"type": "usage",
|
|
65
|
+
"description": "State management with signals",
|
|
66
|
+
"path": "{apps,libs}/*/lib/[!_]*/*.signal.ts",
|
|
67
|
+
"sample": 3
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"type": "usage",
|
|
71
|
+
"description": "Nestjs server integrations",
|
|
72
|
+
"path": "{apps,libs}/*/nest/*.ts",
|
|
73
|
+
"sample": 3
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"update": {
|
|
77
|
+
"filePath": "./framework.instruction.md",
|
|
78
|
+
"contents": [
|
|
79
|
+
"Introduction to Akan.js Framework",
|
|
80
|
+
"Key Features and Benefits",
|
|
81
|
+
"Architecture Overview",
|
|
82
|
+
"Environment and Configuration",
|
|
83
|
+
"Domain-Driven Development Pattern",
|
|
84
|
+
"Full-Stack Development Workflow",
|
|
85
|
+
"Model Architecture (constants, services, signals, stores)",
|
|
86
|
+
"Component Architecture (View, Unit, Template, Zone)",
|
|
87
|
+
"API Integration Pattern",
|
|
88
|
+
"State Management Pattern",
|
|
89
|
+
"Multi-Platform Support (Web, Mobile, SSR, CSR)",
|
|
90
|
+
"Type Safety and Code Generation",
|
|
91
|
+
"Internationalization (i18n) System",
|
|
92
|
+
"Security Best Practices",
|
|
93
|
+
"Deployment and CI/CD Integration",
|
|
94
|
+
"Performance Optimization Techniques",
|
|
95
|
+
"Development Tools and Commands",
|
|
96
|
+
"Database Integration Pattern",
|
|
97
|
+
"Authentication and Authorization System",
|
|
98
|
+
"File Management System",
|
|
99
|
+
"Real-time Communication Features",
|
|
100
|
+
"AI Integration and Code Generation",
|
|
101
|
+
"Testing and Quality Assurance",
|
|
102
|
+
"Best Practices and Common Patterns",
|
|
103
|
+
"Troubleshooting and Common Issues"
|
|
104
|
+
],
|
|
105
|
+
"rules": [
|
|
106
|
+
"Emphasize the full-stack nature of the framework across all sections",
|
|
107
|
+
"Provide clear examples for each architectural pattern",
|
|
108
|
+
"Include code snippets demonstrating type safety across layers",
|
|
109
|
+
"Explain how components interact across client, server, and database",
|
|
110
|
+
"Highlight the automatic integration between layers",
|
|
111
|
+
"Provide both basic and advanced usage patterns",
|
|
112
|
+
"Include command-line examples for common development tasks",
|
|
113
|
+
"Organize content to flow from basic concepts to advanced usage",
|
|
114
|
+
"Use consistent terminology throughout the documentation",
|
|
115
|
+
"Include diagrams or visual aids to explain architectural concepts"
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
"page": "/[lang]/akanjs/(docs)/docs/overview/page.tsx"
|
|
119
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Model Constant",
|
|
3
|
+
"description": "How to create and implement model.constant.ts files in Akan.js",
|
|
4
|
+
"scans": [
|
|
5
|
+
{
|
|
6
|
+
"type": "source",
|
|
7
|
+
"description": "Model decorator implementation",
|
|
8
|
+
"path": "pkgs/@akanjs/constant/src/classMeta.ts"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type": "source",
|
|
12
|
+
"description": "Field decorator implementation",
|
|
13
|
+
"path": "pkgs/@akanjs/constant/src/fieldMeta.ts"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "source",
|
|
17
|
+
"description": "Filter implementation",
|
|
18
|
+
"path": "pkgs/@akanjs/constant/src/filterMeta.ts"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "source",
|
|
22
|
+
"description": "via and sortOf implementations",
|
|
23
|
+
"path": "pkgs/@akanjs/constant/src/constantDecorator.ts"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "source",
|
|
27
|
+
"description": "GraphQL schema generation",
|
|
28
|
+
"path": "pkgs/@akanjs/server/src/gql.ts"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"type": "source",
|
|
32
|
+
"description": "MongoDB schema generation",
|
|
33
|
+
"path": "pkgs/@akanjs/server/src/schema.ts"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"type": "source",
|
|
37
|
+
"description": "Query resolver implementation",
|
|
38
|
+
"path": "pkgs/@akanjs/server/src/resolver.ts"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "source",
|
|
42
|
+
"description": "Search indexing implementation",
|
|
43
|
+
"path": "pkgs/@akanjs/server/src/searchDaemon.ts"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "example",
|
|
47
|
+
"description": "Simple model examples",
|
|
48
|
+
"path": "{apps,libs}/*/lib/*/*.constant.ts",
|
|
49
|
+
"query": "lines < 100",
|
|
50
|
+
"sample": 3
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "example",
|
|
54
|
+
"description": "Complex models with all types",
|
|
55
|
+
"path": "{apps,libs}/*/lib/*/*.constant.ts",
|
|
56
|
+
"filterText": "@Model\\.(Input|Object|Light|Full|Filter|Summary|Insight)",
|
|
57
|
+
"sample": 3
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "example",
|
|
61
|
+
"description": "Models with enum definitions",
|
|
62
|
+
"path": "{apps,libs}/*/lib/*/*.constant.ts",
|
|
63
|
+
"filterText": "enumOf",
|
|
64
|
+
"sample": 3
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"type": "example",
|
|
68
|
+
"description": "Models with custom Filter methods",
|
|
69
|
+
"path": "{apps,libs}/*/lib/*/*.constant.ts",
|
|
70
|
+
"filterText": "@Filter.Mongo",
|
|
71
|
+
"sample": 2
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"type": "example",
|
|
75
|
+
"description": "Models with reference fields",
|
|
76
|
+
"path": "{apps,libs}/*/lib/*/*.constant.ts",
|
|
77
|
+
"filterText": "ref: \"",
|
|
78
|
+
"sample": 2
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"type": "usage",
|
|
82
|
+
"description": "Usage of models in UI components",
|
|
83
|
+
"path": "{apps,libs}/*/lib/*/[A-Z]*.{Template,Unit,View}.tsx",
|
|
84
|
+
"sample": 3
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"update": {
|
|
88
|
+
"filePath": "./modelConstant.instruction.md",
|
|
89
|
+
"contents": [
|
|
90
|
+
"Purpose and role of model.constant.ts files",
|
|
91
|
+
"Model class hierarchy and relationships",
|
|
92
|
+
"File structure and organization conventions",
|
|
93
|
+
"Required imports and dependencies",
|
|
94
|
+
"Enum definition patterns",
|
|
95
|
+
"ModelInput implementation",
|
|
96
|
+
"ModelObject implementation",
|
|
97
|
+
"LightModel implementation",
|
|
98
|
+
"Full Model implementation",
|
|
99
|
+
"Insight Model implementation",
|
|
100
|
+
"Summary Model implementation",
|
|
101
|
+
"Filter Model implementation",
|
|
102
|
+
"Field decorators and options",
|
|
103
|
+
"Filter decorators and arguments",
|
|
104
|
+
"Inheritance with via() and sortOf()",
|
|
105
|
+
"Working with references to other models",
|
|
106
|
+
"Validation rules and constraints",
|
|
107
|
+
"Type safety considerations",
|
|
108
|
+
"Common mistakes and solutions",
|
|
109
|
+
"Best practices for maintainable models",
|
|
110
|
+
"Complete example with all model types"
|
|
111
|
+
],
|
|
112
|
+
"rules": [
|
|
113
|
+
"Follow the model hierarchy: Input → Object → Light/Full → Filter/Summary/Insight",
|
|
114
|
+
"Always create an Input model with user-editable fields",
|
|
115
|
+
"Always create an Object model extending Input with system fields",
|
|
116
|
+
"Always create a Light model with essential fields for listings",
|
|
117
|
+
"Always create a Full model combining Object and Light models",
|
|
118
|
+
"Create Filter models with sortOf() and custom filter methods",
|
|
119
|
+
"Create Insight models for aggregation/analytics",
|
|
120
|
+
"Create Summary models for dashboards",
|
|
121
|
+
"Use consistent naming: ModelInput, ModelObject, LightModel, Model (full)",
|
|
122
|
+
"Use via() for inheritance and field selection",
|
|
123
|
+
"Mark field arrays as const with 'as const' assertion",
|
|
124
|
+
"Avoid getters, setters, and instance methods - use static methods if needed",
|
|
125
|
+
"Always use Field.Prop/Hidden/Secret/Resolve decorators",
|
|
126
|
+
"Define enums with enumOf() and export both const and type",
|
|
127
|
+
"Set appropriate field defaults, especially for arrays (empty array)",
|
|
128
|
+
"Add validation constraints (min, max, minlength, maxlength) where appropriate",
|
|
129
|
+
"Use proper reference format with { ref: 'ModelName' }",
|
|
130
|
+
"Group related models in the same file",
|
|
131
|
+
"Export all models and enums"
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"page": "/[lang]/akanjs/(docs)/docs/module/constant/page.tsx"
|
|
135
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Model Dictionary",
|
|
3
|
+
"description": "Guidelines for creating and managing model.dictionary.ts files for multilingual support",
|
|
4
|
+
"scans": [
|
|
5
|
+
{
|
|
6
|
+
"type": "source",
|
|
7
|
+
"description": "Core dictionary library implementation",
|
|
8
|
+
"path": "pkgs/@akanjs/dictionary/src/*.ts"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type": "example",
|
|
12
|
+
"description": "Dictionary type definitions and interfaces",
|
|
13
|
+
"path": "pkgs/@akanjs/dictionary/src/trans.ts",
|
|
14
|
+
"sample": 1
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "example",
|
|
18
|
+
"description": "Well-structured model dictionaries from shared libraries",
|
|
19
|
+
"path": "libs/shared/lib/*/**.dictionary.ts",
|
|
20
|
+
"sample": 3
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"type": "example",
|
|
24
|
+
"description": "Standard model dictionaries with comprehensive field coverage",
|
|
25
|
+
"path": "{apps,libs}/*/lib/[!_]*/*.dictionary.ts",
|
|
26
|
+
"sample": 5
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "example",
|
|
30
|
+
"description": "Extended model dictionaries (user, setting, etc.)",
|
|
31
|
+
"path": "{apps,libs}/*/lib/{user,setting}/*.dictionary.ts",
|
|
32
|
+
"sample": 2
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"type": "example",
|
|
36
|
+
"description": "Examples of summary dictionaries",
|
|
37
|
+
"path": "{apps,libs}/*/lib/[!_]*/*.dictionary.ts",
|
|
38
|
+
"filterText": "SummaryDictionary",
|
|
39
|
+
"sample": 2
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "example",
|
|
43
|
+
"description": "Examples of enum translations",
|
|
44
|
+
"path": "{apps,libs}/*/lib/[!_]*/*.dictionary.ts",
|
|
45
|
+
"filterText": "enum-",
|
|
46
|
+
"sample": 3
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "usage",
|
|
50
|
+
"description": "Frontend usage with usePage hook",
|
|
51
|
+
"path": "{apps,libs}/*/lib/[!_]*/*.tsx",
|
|
52
|
+
"filterText": "usePage();",
|
|
53
|
+
"sample": 2
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"type": "usage",
|
|
57
|
+
"description": "Frontend usage accessing translations",
|
|
58
|
+
"path": "{apps,libs}/*/lib/[!_]*/*.tsx",
|
|
59
|
+
"filterText": "l(",
|
|
60
|
+
"sample": 2
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"type": "usage",
|
|
64
|
+
"description": "Backend error handling with translation keys",
|
|
65
|
+
"path": "{apps,libs}/*/lib/[!_]*/*.{document,service}.ts",
|
|
66
|
+
"filterText": "throw new Revert",
|
|
67
|
+
"sample": 2
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"type": "usage",
|
|
71
|
+
"description": "Dictionary validation in development",
|
|
72
|
+
"path": "pkgs/@akanjs/dictionary/src/trans.ts",
|
|
73
|
+
"filterText": "checkDictCoverage",
|
|
74
|
+
"sample": 1
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"update": {
|
|
78
|
+
"filePath": "./modelDictionary.instruction.md",
|
|
79
|
+
"contents": [
|
|
80
|
+
"Purpose and benefits of model.dictionary.ts files",
|
|
81
|
+
"Complete file structure with all sections",
|
|
82
|
+
"Translation key conventions and naming patterns",
|
|
83
|
+
"How to add Model field translations (standard fields)",
|
|
84
|
+
"How to add field descriptions (desc- entries)",
|
|
85
|
+
"How to add Summary translations (aggregated metrics)",
|
|
86
|
+
"How to add Signal/API endpoint translations",
|
|
87
|
+
"How to add Filter query translations",
|
|
88
|
+
"How to add Enum value translations and descriptions",
|
|
89
|
+
"How to add custom UI text translations",
|
|
90
|
+
"Working with Extended models (user, setting, summary)",
|
|
91
|
+
"Validation rules and automated dictionary checks",
|
|
92
|
+
"Manual validation checklist before commits",
|
|
93
|
+
"Common mistakes and best practices",
|
|
94
|
+
"Required imports and type safety",
|
|
95
|
+
"Full example of standard model.dictionary.ts file",
|
|
96
|
+
"Full example of extended model dictionary",
|
|
97
|
+
"Section comment format and organization best practices",
|
|
98
|
+
"Language order consistency requirements",
|
|
99
|
+
"Using the dictionary in frontend components",
|
|
100
|
+
"Using the dictionary for backend error messages"
|
|
101
|
+
],
|
|
102
|
+
"rules": [
|
|
103
|
+
"Do not remove or change comment splitting lines. The standard format is '// * ==================== Section ==================== * //'",
|
|
104
|
+
"Field descriptions (desc-) must immediately follow their field declarations",
|
|
105
|
+
"Enum descriptions (enumdesc-) must immediately follow their enum declarations",
|
|
106
|
+
"Filter argument descriptions (qargdesc-) must immediately follow their qarg- declarations",
|
|
107
|
+
"API argument descriptions (argdesc-) must immediately follow their arg- declarations",
|
|
108
|
+
"Always maintain section organization (Model, Insight, Filter, Etc, Endpoint)",
|
|
109
|
+
"Translation arrays must follow consistent order: [English, Korean]",
|
|
110
|
+
"All examples should include proper type safety with the 'satisfies' keyword",
|
|
111
|
+
"Include recommendations for running 'akan dict:check' before commits"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"page": "/[lang]/akanjs/(docs)/docs/module/dictionary/page.tsx"
|
|
115
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Model Document",
|
|
3
|
+
"description": "How to create and implement model.document.ts files in Akan.js",
|
|
4
|
+
"scans": [
|
|
5
|
+
{
|
|
6
|
+
"type": "source",
|
|
7
|
+
"description": "Database decorator implementation",
|
|
8
|
+
"path": "pkgs/@akanjs/document/src/dbDecorators.ts"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type": "source",
|
|
12
|
+
"description": "Model loader implementation",
|
|
13
|
+
"path": "pkgs/@akanjs/document/src/dataLoader.ts"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "source",
|
|
17
|
+
"description": "Database model implementation",
|
|
18
|
+
"path": "pkgs/@akanjs/document/src/database.ts"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "example",
|
|
22
|
+
"description": "Simple document implementation",
|
|
23
|
+
"path": "libs/shared/lib/admin/admin.document.ts",
|
|
24
|
+
"sample": 1
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "example",
|
|
28
|
+
"description": "Complex document implementation",
|
|
29
|
+
"path": "libs/shared/lib/user/user.document.ts",
|
|
30
|
+
"sample": 1
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "example",
|
|
34
|
+
"description": "Document with DataLoader example",
|
|
35
|
+
"path": "libs/mint/lib/token/token.document.ts",
|
|
36
|
+
"sample": 1
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "example",
|
|
40
|
+
"description": "Document middleware examples",
|
|
41
|
+
"path": "{apps,libs}/*/lib/*/*.document.ts",
|
|
42
|
+
"filterText": "schema.pre",
|
|
43
|
+
"sample": 2
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "example",
|
|
47
|
+
"description": "Document index examples",
|
|
48
|
+
"path": "{apps,libs}/*/lib/*/*.document.ts",
|
|
49
|
+
"filterText": "schema.index",
|
|
50
|
+
"sample": 2
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "example",
|
|
54
|
+
"description": "Document dataloader examples",
|
|
55
|
+
"path": "{apps,libs}/*/lib/*/*.document.ts",
|
|
56
|
+
"filterText": "@Loader",
|
|
57
|
+
"sample": 2
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "example",
|
|
61
|
+
"description": "Document model statics examples",
|
|
62
|
+
"path": "{apps,libs}/*/lib/*/*.document.ts",
|
|
63
|
+
"filterText": "async",
|
|
64
|
+
"sample": 3
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"type": "example",
|
|
68
|
+
"description": "Document model methods examples",
|
|
69
|
+
"path": "{apps,libs}/*/lib/*/*.document.ts",
|
|
70
|
+
"filterText": "return this",
|
|
71
|
+
"sample": 3
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"type": "example",
|
|
75
|
+
"description": "Cache implementation examples",
|
|
76
|
+
"path": "{apps,libs}/*/lib/*/*.document.ts",
|
|
77
|
+
"filterText": "Cache.set",
|
|
78
|
+
"sample": 2
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"type": "example",
|
|
82
|
+
"description": "Transaction examples",
|
|
83
|
+
"path": "{apps,libs}/*/lib/*/*.document.ts",
|
|
84
|
+
"filterText": "@Transaction",
|
|
85
|
+
"sample": 1
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"type": "example",
|
|
89
|
+
"description": "Search implementation",
|
|
90
|
+
"path": "{apps,libs}/*/lib/*/*.document.ts",
|
|
91
|
+
"filterText": "search",
|
|
92
|
+
"sample": 1
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"update": {
|
|
96
|
+
"filePath": "./modelDocument.instruction.md",
|
|
97
|
+
"contents": [
|
|
98
|
+
"Purpose and role of model.document.ts files",
|
|
99
|
+
"File structure and class organization",
|
|
100
|
+
"Relationship with model.constant.ts files",
|
|
101
|
+
"How to use document methods (instance methods)",
|
|
102
|
+
"How to use model statics (static methods)",
|
|
103
|
+
"How to apply middleware (lifecycle hooks)",
|
|
104
|
+
"How to define and apply indexes",
|
|
105
|
+
"How to use MongoDB model (direct access)",
|
|
106
|
+
"How to use dataloader (batching and caching)",
|
|
107
|
+
"How to use cache with Redis",
|
|
108
|
+
"How to use search with Meilisearch",
|
|
109
|
+
"Built-in model functions",
|
|
110
|
+
"Transactions and atomic operations",
|
|
111
|
+
"Integration with NestJS",
|
|
112
|
+
"Client-side usage patterns",
|
|
113
|
+
"Soft delete functionality",
|
|
114
|
+
"Error handling patterns",
|
|
115
|
+
"Optimization techniques"
|
|
116
|
+
],
|
|
117
|
+
"rules": [
|
|
118
|
+
"Document methods are typically synchronous and return 'this' for method chaining",
|
|
119
|
+
"Model statics are typically asynchronous and return Promises",
|
|
120
|
+
"Use DataLoader for efficient relationship loading",
|
|
121
|
+
"Apply proper indexes for query patterns used in your application",
|
|
122
|
+
"Use Redis cache for frequently accessed data",
|
|
123
|
+
"Use transactions for operations that need to be atomic",
|
|
124
|
+
"Follow naming conventions for consistency",
|
|
125
|
+
"Handle errors with appropriate domain-specific error classes"
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
"page": "/[lang]/akanjs/(docs)/docs/module/document/page.tsx"
|
|
129
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Model Service",
|
|
3
|
+
"description": "How to create and implement model.service.ts files in Akan.js",
|
|
4
|
+
"scans": [
|
|
5
|
+
{
|
|
6
|
+
"type": "source",
|
|
7
|
+
"description": "Service decorator implementation",
|
|
8
|
+
"path": "pkgs/@akanjs/service/src/serviceDecorators.ts"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type": "source",
|
|
12
|
+
"description": "Database module implementation",
|
|
13
|
+
"path": "pkgs/@akanjs/server/src/module.ts"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "example",
|
|
17
|
+
"description": "Simple service implementation",
|
|
18
|
+
"path": "libs/shared/lib/admin/admin.service.ts",
|
|
19
|
+
"sample": 1
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "example",
|
|
23
|
+
"description": "Complex service implementation",
|
|
24
|
+
"path": "libs/shared/lib/user/user.service.ts",
|
|
25
|
+
"sample": 1
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "example",
|
|
29
|
+
"description": "@Service decorator examples",
|
|
30
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
31
|
+
"filterText": "@Service",
|
|
32
|
+
"sample": 2
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"type": "example",
|
|
36
|
+
"description": "@Use decorator examples",
|
|
37
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
38
|
+
"filterText": "@Use",
|
|
39
|
+
"sample": 2
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "example",
|
|
43
|
+
"description": "@Srv decorator examples",
|
|
44
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
45
|
+
"filterText": "@Srv",
|
|
46
|
+
"sample": 2
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "example",
|
|
50
|
+
"description": "@Queue decorator examples",
|
|
51
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
52
|
+
"filterText": "@Queue",
|
|
53
|
+
"sample": 1
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"type": "example",
|
|
57
|
+
"description": "@Websocket decorator examples",
|
|
58
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
59
|
+
"filterText": "@Websocket",
|
|
60
|
+
"sample": 1
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"type": "example",
|
|
64
|
+
"description": "onModuleInit method examples",
|
|
65
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
66
|
+
"filterText": "onModuleInit",
|
|
67
|
+
"sample": 2
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"type": "example",
|
|
71
|
+
"description": "onModuleDestroy method examples",
|
|
72
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
73
|
+
"filterText": "onModuleDestroy",
|
|
74
|
+
"sample": 1
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "example",
|
|
78
|
+
"description": "@Cron decorator examples",
|
|
79
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
80
|
+
"filterText": "@Cron",
|
|
81
|
+
"sample": 2
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"type": "example",
|
|
85
|
+
"description": "@Interval decorator examples",
|
|
86
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
87
|
+
"filterText": "@Interval",
|
|
88
|
+
"sample": 1
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"type": "example",
|
|
92
|
+
"description": "DbService _preCreate examples",
|
|
93
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
94
|
+
"filterText": "_preCreate",
|
|
95
|
+
"sample": 1
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"type": "example",
|
|
99
|
+
"description": "DbService _postCreate examples",
|
|
100
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
101
|
+
"filterText": "_postCreate",
|
|
102
|
+
"sample": 1
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"type": "example",
|
|
106
|
+
"description": "DbService _preUpdate examples",
|
|
107
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
108
|
+
"filterText": "_preUpdate",
|
|
109
|
+
"sample": 1
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"type": "example",
|
|
113
|
+
"description": "DbService _postUpdate examples",
|
|
114
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
115
|
+
"filterText": "_postUpdate",
|
|
116
|
+
"sample": 1
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"type": "example",
|
|
120
|
+
"description": "Database integration examples",
|
|
121
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
122
|
+
"filterText": "DbService",
|
|
123
|
+
"sample": 2
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"type": "example",
|
|
127
|
+
"description": "LogService examples",
|
|
128
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
129
|
+
"filterText": "LogService",
|
|
130
|
+
"sample": 1
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"type": "example",
|
|
134
|
+
"description": "Error handling examples",
|
|
135
|
+
"path": "{apps,libs}/*/lib/*/*.service.ts",
|
|
136
|
+
"filterText": "try {",
|
|
137
|
+
"sample": 1
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"type": "example",
|
|
141
|
+
"description": "MixSrvs examples",
|
|
142
|
+
"path": "{apps,libs}/*/lib/_*/*.service.ts",
|
|
143
|
+
"filterText": "MixSrvs",
|
|
144
|
+
"sample": 1
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"update": {
|
|
148
|
+
"filePath": "./modelService.instruction.md",
|
|
149
|
+
"contents": [
|
|
150
|
+
"Purpose and role of model.service.ts files",
|
|
151
|
+
"Service structure and inheritance (DbService, LogService, MixSrvs)",
|
|
152
|
+
"Core decorators (@Service, @Srv, @Use, @Db, @Queue, @Websocket)",
|
|
153
|
+
"Lifecycle methods (onModuleInit, onModuleDestroy)",
|
|
154
|
+
"Scheduled tasks (@Cron, @Interval)",
|
|
155
|
+
"Database operations (CRUD, queries, search)",
|
|
156
|
+
"Customizing database operations (_preCreate, _postCreate, _preUpdate, _postUpdate, _preRemove, _postRemove)",
|
|
157
|
+
"Working with other services (dependency injection patterns)",
|
|
158
|
+
"Websocket integration (real-time features)",
|
|
159
|
+
"Queue integration (background processing)",
|
|
160
|
+
"Error handling (try/catch, domain errors)",
|
|
161
|
+
"Best practices (stateless design, single responsibility, resource management)",
|
|
162
|
+
"Integration with NestJS (module system)",
|
|
163
|
+
"Troubleshooting common issues"
|
|
164
|
+
],
|
|
165
|
+
"rules": [
|
|
166
|
+
"Services should be stateless - use database and Redis for persistent state",
|
|
167
|
+
"Each service should follow the single responsibility principle",
|
|
168
|
+
"Use lifecycle hooks for proper resource management",
|
|
169
|
+
"Prefer dependency injection (@Srv, @Use) over direct imports",
|
|
170
|
+
"Implement proper error handling with domain-specific error classes",
|
|
171
|
+
"Use the built-in logger for consistent logging across services",
|
|
172
|
+
"Follow naming conventions for service methods",
|
|
173
|
+
"Document complex business logic with clear comments",
|
|
174
|
+
"Use hooks (_preCreate, etc.) for operation validation and transformation",
|
|
175
|
+
"Services should expose a clean API that hides implementation details"
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
"page": "/[lang]/akanjs/(docs)/docs/module/service/page.tsx"
|
|
179
|
+
}
|