@akanjs/cli 0.0.40 → 0.0.41

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 (181) hide show
  1. package/index.d.ts +1 -2
  2. package/index.js +3786 -3286
  3. package/package.json +33 -2
  4. package/src/application/application.command.d.ts +26 -0
  5. package/src/application/application.prompt.d.ts +2 -0
  6. package/src/application/application.runner.d.ts +35 -0
  7. package/src/application/application.script.d.ts +36 -0
  8. package/src/cloud/cloud.command.d.ts +8 -0
  9. package/src/cloud/cloud.runner.d.ts +7 -0
  10. package/src/cloud/cloud.script.d.ts +7 -0
  11. package/src/library/library.command.d.ts +8 -0
  12. package/src/library/library.runner.d.ts +4 -0
  13. package/src/library/library.script.d.ts +8 -0
  14. package/src/module/module.command.d.ts +13 -0
  15. package/src/module/module.prompt.d.ts +15 -0
  16. package/src/module/module.runner.d.ts +17 -0
  17. package/src/module/module.script.d.ts +11 -0
  18. package/src/package/package.command.d.ts +9 -0
  19. package/src/package/package.runner.d.ts +6 -0
  20. package/src/package/package.script.d.ts +7 -0
  21. package/src/package/page/page.command.d.ts +6 -0
  22. package/src/package/page/page.runner.d.ts +4 -0
  23. package/src/package/page/page.script.d.ts +5 -0
  24. package/src/workspace/workspace.command.d.ts +8 -0
  25. package/src/workspace/workspace.runner.d.ts +6 -0
  26. package/src/workspace/workspace.script.d.ts +7 -0
  27. package/src/templates/__scalar/__model__/__model__.constant.js +0 -34
  28. package/src/templates/__scalar/__model__/__model__.dictionary.js +0 -45
  29. package/src/templates/__scalar/__model__/__model__.document.js +0 -32
  30. package/src/templates/app/akan.config.ts.template +0 -5
  31. package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +0 -43
  32. package/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +0 -44
  33. package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +0 -38
  34. package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +0 -46
  35. package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +0 -37
  36. package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +0 -39
  37. package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +0 -56
  38. package/src/templates/app/app/[lang]/(__appName__)/layout.js +0 -48
  39. package/src/templates/app/app/[lang]/admin/layout.js +0 -49
  40. package/src/templates/app/app/[lang]/admin/page.js +0 -59
  41. package/src/templates/app/app/csr.js +0 -30
  42. package/src/templates/app/app/index.html.template +0 -13
  43. package/src/templates/app/app/layout.js +0 -34
  44. package/src/templates/app/app/robots.js +0 -39
  45. package/src/templates/app/app/sitemap.js +0 -35
  46. package/src/templates/app/base/baseLogic.js +0 -34
  47. package/src/templates/app/base/index.js +0 -28
  48. package/src/templates/app/capacitor.config.ts.template +0 -8
  49. package/src/templates/app/common/commonLogic.js +0 -34
  50. package/src/templates/app/common/index.js +0 -28
  51. package/src/templates/app/env/env.client.js +0 -37
  52. package/src/templates/app/env/env.client.type.js +0 -34
  53. package/src/templates/app/env/env.server.js +0 -37
  54. package/src/templates/app/jest.config.js +0 -35
  55. package/src/templates/app/lib/___appName__/__appName__.dictionary.js +0 -30
  56. package/src/templates/app/lib/___appName__/__appName__.service.js +0 -41
  57. package/src/templates/app/lib/___appName__/__appName__.store.js +0 -35
  58. package/src/templates/app/lib/___appName__/_server.js +0 -33
  59. package/src/templates/app/lib/option.js +0 -41
  60. package/src/templates/app/lib/setting/Setting.Template.js +0 -53
  61. package/src/templates/app/lib/setting/Setting.Unit.js +0 -34
  62. package/src/templates/app/lib/setting/Setting.Util.js +0 -30
  63. package/src/templates/app/lib/setting/Setting.View.js +0 -47
  64. package/src/templates/app/lib/setting/Setting.Zone.js +0 -76
  65. package/src/templates/app/lib/setting/_server.js +0 -47
  66. package/src/templates/app/lib/setting/index.js +0 -57
  67. package/src/templates/app/lib/setting/setting.constant.js +0 -45
  68. package/src/templates/app/lib/setting/setting.dictionary.js +0 -45
  69. package/src/templates/app/lib/setting/setting.document.js +0 -47
  70. package/src/templates/app/lib/setting/setting.service.js +0 -36
  71. package/src/templates/app/lib/setting/setting.signal.js +0 -33
  72. package/src/templates/app/lib/setting/setting.store.js +0 -40
  73. package/src/templates/app/lib/summary/Summary.Template.js +0 -39
  74. package/src/templates/app/lib/summary/Summary.Unit.js +0 -34
  75. package/src/templates/app/lib/summary/Summary.Util.js +0 -29
  76. package/src/templates/app/lib/summary/Summary.View.js +0 -47
  77. package/src/templates/app/lib/summary/Summary.Zone.js +0 -58
  78. package/src/templates/app/lib/summary/_server.js +0 -47
  79. package/src/templates/app/lib/summary/index.js +0 -63
  80. package/src/templates/app/lib/summary/summary.constant.js +0 -43
  81. package/src/templates/app/lib/summary/summary.dictionary.js +0 -48
  82. package/src/templates/app/lib/summary/summary.document.js +0 -47
  83. package/src/templates/app/lib/summary/summary.service.js +0 -33
  84. package/src/templates/app/lib/summary/summary.signal.js +0 -33
  85. package/src/templates/app/lib/summary/summary.store.js +0 -40
  86. package/src/templates/app/lib/user/User.Template.js +0 -61
  87. package/src/templates/app/lib/user/User.Unit.js +0 -34
  88. package/src/templates/app/lib/user/User.Util.js +0 -90
  89. package/src/templates/app/lib/user/User.View.js +0 -62
  90. package/src/templates/app/lib/user/User.Zone.js +0 -70
  91. package/src/templates/app/lib/user/_server.js +0 -47
  92. package/src/templates/app/lib/user/index.js +0 -57
  93. package/src/templates/app/lib/user/user.constant.js +0 -66
  94. package/src/templates/app/lib/user/user.dictionary.js +0 -51
  95. package/src/templates/app/lib/user/user.document.js +0 -53
  96. package/src/templates/app/lib/user/user.service.js +0 -41
  97. package/src/templates/app/lib/user/user.signal.js +0 -33
  98. package/src/templates/app/lib/user/user.signal.spec.js +0 -36
  99. package/src/templates/app/lib/user/user.signal.test.js +0 -38
  100. package/src/templates/app/lib/user/user.store.js +0 -38
  101. package/src/templates/app/main.js +0 -39
  102. package/src/templates/app/middleware.js +0 -34
  103. package/src/templates/app/nest/backendLogic.js +0 -33
  104. package/src/templates/app/nest/index.js +0 -28
  105. package/src/templates/app/next/frontendLogic.js +0 -33
  106. package/src/templates/app/next/index.js +0 -28
  107. package/src/templates/app/page.test.ts.template +0 -10
  108. package/src/templates/app/playwright.config.ts.template +0 -6
  109. package/src/templates/app/postcss.config.js.template +0 -10
  110. package/src/templates/app/public/favicon.ico +0 -0
  111. package/src/templates/app/public/icons/icon-128x128.png +0 -0
  112. package/src/templates/app/public/icons/icon-144x144.png +0 -0
  113. package/src/templates/app/public/icons/icon-152x152.png +0 -0
  114. package/src/templates/app/public/icons/icon-192x192.png +0 -0
  115. package/src/templates/app/public/icons/icon-256x256.png +0 -0
  116. package/src/templates/app/public/icons/icon-384x384.png +0 -0
  117. package/src/templates/app/public/icons/icon-48x48.png +0 -0
  118. package/src/templates/app/public/icons/icon-512x512.png +0 -0
  119. package/src/templates/app/public/icons/icon-72x72.png +0 -0
  120. package/src/templates/app/public/icons/icon-96x96.png +0 -0
  121. package/src/templates/app/public/logo.svg +0 -70
  122. package/src/templates/app/public/manifest.json.template +0 -67
  123. package/src/templates/app/tsconfig.json.template +0 -22
  124. package/src/templates/app/tsconfig.spec.json.template +0 -7
  125. package/src/templates/app/ui/Footer.js +0 -63
  126. package/src/templates/app/ui/MainHeader.js +0 -127
  127. package/src/templates/app/ui/index.js +0 -29
  128. package/src/templates/client.js +0 -41
  129. package/src/templates/crudPages/[__model__Id]/edit/page.js +0 -69
  130. package/src/templates/crudPages/[__model__Id]/page.js +0 -79
  131. package/src/templates/crudPages/new/page.js +0 -66
  132. package/src/templates/crudPages/page.js +0 -67
  133. package/src/templates/index.js +0 -30
  134. package/src/templates/lib/__lib/extends/summary.constant.js +0 -42
  135. package/src/templates/lib/__lib/lib.constant.js +0 -52
  136. package/src/templates/lib/__lib/lib.dictionary.js +0 -41
  137. package/src/templates/lib/__lib/lib.document.js +0 -40
  138. package/src/templates/lib/__lib/lib.service.js +0 -82
  139. package/src/templates/lib/__lib/lib.signal.js +0 -35
  140. package/src/templates/lib/__lib/lib.store.js +0 -33
  141. package/src/templates/lib/__scalar/_server.js +0 -38
  142. package/src/templates/lib/cnst.js +0 -31
  143. package/src/templates/lib/cnst_.js +0 -50
  144. package/src/templates/lib/db.js +0 -52
  145. package/src/templates/lib/dict.js +0 -44
  146. package/src/templates/lib/fetch.js +0 -47
  147. package/src/templates/lib/sig.js +0 -36
  148. package/src/templates/lib/srv.js +0 -51
  149. package/src/templates/lib/st.js +0 -35
  150. package/src/templates/lib/store.js +0 -51
  151. package/src/templates/lib/usePage.js +0 -32
  152. package/src/templates/libRoot/.gitignore.template +0 -15
  153. package/src/templates/libRoot/jest.config.js +0 -35
  154. package/src/templates/libRoot/package.json.template +0 -5
  155. package/src/templates/libRoot/tsconfig.json.template +0 -11
  156. package/src/templates/libRoot/tsconfig.spec.json.template +0 -7
  157. package/src/templates/module/__Model__.Template.js +0 -50
  158. package/src/templates/module/__Model__.Unit.js +0 -38
  159. package/src/templates/module/__Model__.Util.js +0 -66
  160. package/src/templates/module/__Model__.View.js +0 -44
  161. package/src/templates/module/__Model__.Zone.js +0 -79
  162. package/src/templates/module/__model__.constant.js +0 -68
  163. package/src/templates/module/__model__.dictionary.js +0 -97
  164. package/src/templates/module/__model__.document.js +0 -52
  165. package/src/templates/module/__model__.service.js +0 -40
  166. package/src/templates/module/__model__.signal.js +0 -59
  167. package/src/templates/module/__model__.signal.spec.js +0 -38
  168. package/src/templates/module/__model__.signal.test.js +0 -47
  169. package/src/templates/module/__model__.store.js +0 -38
  170. package/src/templates/module/_server.js +0 -46
  171. package/src/templates/module/index.js +0 -57
  172. package/src/templates/pkgRoot/tsconfig.json.template +0 -12
  173. package/src/templates/server.js +0 -58
  174. package/src/templates/workplaceRoot/.env.template +0 -20
  175. package/src/templates/workplaceRoot/.gitignore.template +0 -195
  176. package/src/templates/workplaceRoot/.prettierignore.template +0 -10
  177. package/src/templates/workplaceRoot/.prettierrc.json.template +0 -5
  178. package/src/templates/workplaceRoot/.swcrc.template +0 -9
  179. package/src/templates/workplaceRoot/README.md.template +0 -37
  180. package/src/templates/workplaceRoot/eslint.config.js.template +0 -141
  181. package/src/templates/workplaceRoot/tsconfig.json.template +0 -29
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "@akanjs/cli",
4
- "version": "0.0.40",
4
+ "version": "0.0.41",
5
5
  "bin": {
6
6
  "akan": "index.js"
7
7
  },
@@ -17,5 +17,36 @@
17
17
  "engines": {
18
18
  "node": ">=22"
19
19
  },
20
- "dependencies": {}
20
+ "dependencies": {
21
+ "@inquirer/prompts": "^7.2.1",
22
+ "@langchain/core": "^0.3.27",
23
+ "@langchain/openai": "^0.3.16",
24
+ "@next/bundle-analyzer": "^15.1.3",
25
+ "@nx/devkit": "^20.7.2",
26
+ "@trapezedev/project": "^7.1.3",
27
+ "@vitejs/plugin-react": "^4.4.1",
28
+ "axios": "^1.7.9",
29
+ "chalk": "^5.4.1",
30
+ "commander": "^13.1.0",
31
+ "dayjs": "^1.11.13",
32
+ "dotenv": "^16.4.7",
33
+ "esbuild": "^0.19.2",
34
+ "esbuild-plugin-d.ts": "^1.3.1",
35
+ "form-data": "^4.0.1",
36
+ "js-yaml": "^4.1.0",
37
+ "latest-version": "^9.0.0",
38
+ "lodash": "^4.17.21",
39
+ "next-pwa": "^5.6.0",
40
+ "open": "^10.1.1",
41
+ "ora": "^3.4.0",
42
+ "pluralize": "^8.0.0",
43
+ "qrcode": "^1.5.4",
44
+ "reflect-metadata": "^0.2.2",
45
+ "tunnel-ssh": "^5.2.0",
46
+ "typescript": "^5.8.3",
47
+ "uuid": "^11.0.3",
48
+ "vite": "^6.3.4",
49
+ "vite-plugin-node-polyfills": "^0.23.0",
50
+ "vite-tsconfig-paths": "^5.1.4"
51
+ }
21
52
  }
@@ -0,0 +1,26 @@
1
+ import { App, Workspace } from "@akanjs/devkit";
2
+ import { ApplicationScript } from "./application.script";
3
+ export declare class ApplicationCommand {
4
+ applicationScript: ApplicationScript;
5
+ createApplication(name: string, workspace: Workspace): Promise<void>;
6
+ removeApplication(app: App, workspace: Workspace): Promise<void>;
7
+ scanApplication(app: App): Promise<void>;
8
+ build(app: App): Promise<void>;
9
+ buildBackend(app: App): Promise<void>;
10
+ buildFrontend(app: App): Promise<void>;
11
+ buildCsr(app: App): Promise<void>;
12
+ buildIos(app: App): Promise<void>;
13
+ buildAndroid(app: App): Promise<void>;
14
+ serve(app: App): Promise<void>;
15
+ serveBackend(app: App): Promise<void>;
16
+ serveFrontend(app: App): Promise<void>;
17
+ serveCsr(app: App): Promise<void>;
18
+ serveIos(app: App, open: boolean, release: boolean): Promise<void>;
19
+ serveAndroid(app: App, open: boolean, release: boolean): Promise<void>;
20
+ releaseIos(app: App): Promise<void>;
21
+ releaseAndroid(app: App): Promise<void>;
22
+ releaseSource(app: App, rebuild: boolean, buildNum: number, environment: string, local: boolean): Promise<void>;
23
+ dumpDatabase(app: App, environment: string): Promise<void>;
24
+ restoreDatabase(app: App, source: string, target: string): Promise<void>;
25
+ configureApp(app: App): Promise<void>;
26
+ }
@@ -0,0 +1,2 @@
1
+ export declare const requestApplication: () => string;
2
+ export declare const indexPagePrompt = "\uB0B4\uAC00 \uC0AC\uC804\uC5D0 \uC124\uBA85\uD55C index \uD398\uC774\uC9C0 \uD15C\uD50C\uB9BF\uC744 \uC55E\uC11C \uC124\uBA85\uD55C \uD504\uB85C\uC81D\uD2B8\uBA85\uACFC \uD504\uB85C\uC81D\uD2B8 \uC124\uBA85\uC5D0 \uB9DE\uAC8C\uB054 \uB9CC\uB4E4\uC5B4\uC918.";
@@ -0,0 +1,35 @@
1
+ import { App, DistAppExecutor, type Workspace } from "@akanjs/devkit";
2
+ export interface ReleaseSourceOptions {
3
+ rebuild?: boolean;
4
+ buildNum?: number;
5
+ environment?: string;
6
+ local?: boolean;
7
+ }
8
+ export declare class ApplicationRunner {
9
+ #private;
10
+ scanSync(app: App): Promise<import("@akanjs/config").AppScanResult | import("@akanjs/config").LibScanResult>;
11
+ buildBackend(app: App, distApp: DistAppExecutor): Promise<void>;
12
+ serveBackend(app: App, distApp: DistAppExecutor): Promise<void>;
13
+ buildFrontend(app: App, distApp: DistAppExecutor): Promise<void>;
14
+ serveFrontend(app: App, distApp: DistAppExecutor): Promise<void>;
15
+ buildCsr(app: App, distApp: DistAppExecutor): Promise<void>;
16
+ serveCsr(app: App, distApp: DistAppExecutor): Promise<void>;
17
+ buildIos(app: App): Promise<void>;
18
+ serveIos(app: App, { open, operation }?: {
19
+ open?: boolean;
20
+ operation?: "local" | "release";
21
+ }): Promise<void>;
22
+ releaseIos(app: App): Promise<void>;
23
+ buildAndroid(app: App): Promise<void>;
24
+ serveAndroid(app: App, { open, operation }?: {
25
+ open?: boolean;
26
+ operation?: "local" | "release";
27
+ }): Promise<void>;
28
+ releaseAndroid(app: App): Promise<void>;
29
+ dumpDatabase(app: App, environment: string): Promise<void>;
30
+ restoreDatabase(app: App, source: string, target: string): Promise<void>;
31
+ configureApp(app: App): Promise<void>;
32
+ releaseSource(app: App, { rebuild, buildNum, environment, local }?: ReleaseSourceOptions): Promise<void>;
33
+ createApplicationTemplate(workspace: Workspace, appName: string): Promise<void>;
34
+ generateApplicationTemplate(app: App): Promise<void>;
35
+ }
@@ -0,0 +1,36 @@
1
+ import type { App } from "@akanjs/devkit";
2
+ import { DistAppExecutor } from "@akanjs/devkit";
3
+ import { LibraryScript } from "../library/library.script";
4
+ import { type ReleaseSourceOptions } from "./application.runner";
5
+ export declare class ApplicationScript {
6
+ #private;
7
+ libraryScript: LibraryScript;
8
+ scanApplication(app: App): Promise<void>;
9
+ syncApplication(app: App, { recursive }?: {
10
+ recursive?: boolean;
11
+ }): Promise<void>;
12
+ build(app: App, distApp?: DistAppExecutor): Promise<void>;
13
+ serve(app: App, distApp?: DistAppExecutor): Promise<void>;
14
+ buildBackend(app: App, distApp?: DistAppExecutor): Promise<void>;
15
+ serveBackend(app: App, distApp?: DistAppExecutor): Promise<void>;
16
+ buildFrontend(app: App, distApp?: DistAppExecutor): Promise<void>;
17
+ serveFrontend(app: App, distApp?: DistAppExecutor): Promise<void>;
18
+ buildCsr(app: App, distApp?: DistAppExecutor): Promise<void>;
19
+ serveCsr(app: App, distApp?: DistAppExecutor): Promise<void>;
20
+ buildIos(app: App): Promise<void>;
21
+ serveIos(app: App, { open, operation }?: {
22
+ open?: boolean;
23
+ operation?: "local" | "release";
24
+ }): Promise<void>;
25
+ releaseIos(app: App): Promise<void>;
26
+ buildAndroid(app: App): Promise<void>;
27
+ serveAndroid(app: App, { open, operation }?: {
28
+ open?: boolean;
29
+ operation?: "local" | "release";
30
+ }): Promise<void>;
31
+ releaseAndroid(app: App): Promise<void>;
32
+ dumpDatabase(app: App, environment: string): Promise<void>;
33
+ restoreDatabase(app: App, source: string, target: string): Promise<void>;
34
+ configureApp(app: App): Promise<void>;
35
+ releaseSource(app: App, options: ReleaseSourceOptions): Promise<void>;
36
+ }
@@ -0,0 +1,8 @@
1
+ import { Workspace } from "@akanjs/devkit";
2
+ import { CloudScript } from "./cloud.script";
3
+ export declare class CloudCommand {
4
+ cloudScript: CloudScript;
5
+ login(): Promise<void>;
6
+ logout(): void;
7
+ deployAkan(workspace: Workspace): Promise<void>;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { type Workspace } from "@akanjs/devkit";
2
+ export declare class CloudRunner {
3
+ login(): Promise<boolean>;
4
+ logout(): void;
5
+ getAkanPkgs(workspace: Workspace): Promise<string[]>;
6
+ deployAkan(workspace: Workspace, akanPkgs: string[]): Promise<void>;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { type Workspace } from "@akanjs/devkit";
2
+ export declare class CloudScript {
3
+ #private;
4
+ login(): Promise<void>;
5
+ logout(): void;
6
+ deployAkan(workspace: Workspace): Promise<void>;
7
+ }
@@ -0,0 +1,8 @@
1
+ import { Lib, Workspace } from "@akanjs/devkit";
2
+ export declare class LibraryCommand {
3
+ createLibrary(name: string, workspace: Workspace): Promise<void>;
4
+ removeLibrary(lib: Lib, workspace: Workspace): Promise<void>;
5
+ scanLibrary(lib: Lib): Promise<void>;
6
+ buildLibrary(lib: Lib): Promise<void>;
7
+ pushLibrary(lib: Lib): Promise<void>;
8
+ }
@@ -0,0 +1,4 @@
1
+ import { Lib } from "@akanjs/devkit";
2
+ export declare class LibraryRunner {
3
+ scanSync(lib: Lib): Promise<import("@akanjs/config").AppScanResult | import("@akanjs/config").LibScanResult>;
4
+ }
@@ -0,0 +1,8 @@
1
+ import type { Lib } from "@akanjs/devkit";
2
+ export declare class LibraryScript {
3
+ #private;
4
+ scanLibrary(lib: Lib): Promise<void>;
5
+ syncLibrary(lib: Lib, { recursive }?: {
6
+ recursive?: boolean;
7
+ }): Promise<void>;
8
+ }
@@ -0,0 +1,13 @@
1
+ import { Sys, Workspace } from "@akanjs/devkit";
2
+ import { ModuleScript } from "./module.script";
3
+ export declare class ModuleCommand {
4
+ moduleScript: ModuleScript;
5
+ createModule(name: string, workspace: Workspace): Promise<void>;
6
+ removeModule(name: string, workspace: Workspace): Promise<void>;
7
+ scanModule(name: string, workspace: Workspace): Promise<void>;
8
+ createScalar(sys: Sys, name: string, workspace: Workspace): Promise<void>;
9
+ createService(name: string, workspace: Workspace): Promise<void>;
10
+ createTest(name: string, workspace: Workspace): Promise<void>;
11
+ createView(name: string, workspace: Workspace): Promise<void>;
12
+ createUnit(name: string, workspace: Workspace): Promise<void>;
13
+ }
@@ -0,0 +1,15 @@
1
+ export declare const frameworkDescription = "\uB098\uB294 \uC880 \uB354 \uD6A8\uC728\uC801\uC73C\uB85C \uCF54\uB529\uC744 \uD558\uAE30 \uC704\uD574\uC11C \uC790\uCCB4 \uD504\uB808\uC784\uC6CC\uD06C\uB97C \uC81C\uC791\uD588\uC5B4. \uADF8\uB798\uC11C \uC6B0\uB9AC \uD504\uB808\uC784\uC6CC\uD06C\uC5D0 \uB300\uD55C \uC124\uBA85\uC744 \uD574\uC904\uD14C\uB2C8\uAE4C \uC798 \uC774\uD574\uD558\uB3C4\uB85D \uD574. \uC6B0\uB9AC \uD504\uB808\uC784\uC6CC\uD06C\uB294 next.js 13\uACFC nest.js, capacitor.js, nx, mongoDB \uAE30\uBC18\uC758 \uD504\uB860\uD2B8\uC5D4\uB4DC, \uC571, \uBC31\uC5D4\uB4DC \uD1B5\uD569 \uD504\uB808\uC784\uC6CC\uD06C\uC57C. \uADF8\uB798\uC11C \uBC31\uC5D4\uB4DC, \uD504\uB860\uD2B8\uC5D4\uB4DC, DB Schema\uC5D0 \uB300\uD55C \uCF54\uB4DC\uAC00 \uBAA8\uB450 \uD55C \uD3F4\uB354 \uC548\uC5D0 \uC788\uC5B4. \uADF8\uB798\uC11C \uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8, \uD0C0\uC785\uC2A4\uD06C\uB9BD\uD2B8, \uADF8\uB9AC\uACE0 \uD504\uB808\uC784\uC6CC\uD06C\uC5D0 \uB300\uD55C \uC774\uD574\uB9CC \uC788\uB2E4\uBA74 \uAD6C\uBD84\uC9D3\uC9C0 \uC54A\uACE0 \uC0AC\uC6A9\uD560 \uC218 \uC788\uB2E4\uB294 \uC7A5\uC810\uC774 \uC788\uC5B4. \n\n\uAC00\uC7A5 \uC678\uBD80\uC758 \uAD6C\uC870\uB294\n- app\n\t- project1\n\t- project2\n\t- project3\n\t- project4\n- lib\n\t- core\n\t- external\n\t- game\n\t- mint\n\t- platform\n\t- shared\n\t- social\n\t- util\napp\uC740 \uAC01 \uD504\uB85C\uC81D\uD2B8\uB97C \uB9CC\uB4DC\uB294 \uACF3\uC774\uC57C\nlib \uD558\uC704 \uD3F4\uB354\uB4E4\uC740 \uC5EC\uB7EC \uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C \uACF5\uC6A9\uC73C\uB85C \uC0AC\uC6A9\uD560 \uC218 \uC788\uACA0\uB2E4 \uB77C\uACE0 \uD310\uB2E8\uD574\uC11C \uBD84\uB9AC\uD574\uB193\uC740 \uACF3\uC774\uC57C.\n\uB2E4\uC74C\uC740 app/project \uB0B4\uBD80\uC758 \uAD6C\uC870\uB97C \uC54C\uB824\uC904\uAC8C.\n\nproject\n- app\n\t- [lang]\n\t\t- (projectName)\n\t\t\t- (user)\n\t\t\t\t- page.tsx\n\t\t\t\t- layout.tsx\n\t\t\t- (public)\n\t\t\t\t- page.tsx\n\t\t\t\t- layout.tsx\n\t\t\t- (admin)\n\t\t\t\t- page.tsx\n\t\t\t\t- layout.tsx\n\n- lib \n\t- dataName1\n\t- dataName2\n\t- dataName3\n\t- dataName4\n\t- dataName5\n\t- dataName6\n\t- dataName7\n\napp\uC740 \uC9C1\uC811\uC801\uC73C\uB85C \uC720\uC800\uAC00 \uBCF4\uB294 \uD398\uC774\uC9C0\uB97C \uC9DC\uB294 \uACF3\uC774\uC57C. \uD3F4\uB354 \uAD6C\uC870\uB294 next 13\uC758 app directory\uB97C \uB530\uB974\uACE0 \uC788\uC5B4.\npublic/page.tsx\uAC00 \uAC00\uC7A5 \uCD5C\uCD08\uB85C \uC811\uADFC\uB418\uB294 Index \uD398\uC774\uC9C0\uAC00 \uB420 \uAC70\uC57C.\n\uC544\uB798\uB294 public/page.tsx\uC758 \uAE30\uBCF8 \uD15C\uD50C\uB9BF \uC18C\uC2A4\uCF54\uB4DC\uC57C.\n```\nimport {{ Image, Link }} from \"@util/ui\";\nimport {{ getSelf }} from \"@akanjs/client\";\n\nexport default function Page() {{\n const self = getSelf();\n return (\n <div className=\"relative w-full h-screen overflow-hidden flex items-center justify-center\">\n <Image\n className=\"absolute left-0 right-0 top-0 bottom-0 w-full h-screen -z-50\"\n width={{1920}}\n height={{1080}}\n src=\"/back.jpg\"\n />\n <div className=\"max-w-md bg-base-100/50 shadow-lg rounded-xl backdrop-blur-xs w-full py-8 px-16 flex flex-col items-center justify-center gap-3\">\n <h1 className=\"text-4xl mt-2\"><%= project %></h1>\n <h2 className=\"text-lg\"><%= project %> description</h2>\n <Link className=\"w-full\" href={{self ? \"/home\" : \"/signin\"}}>\n <button className=\"btn w-full btn-primary\">Go to dashboard</button>\n </Link>\n </div>\n </div>\n );\n}}\n```\n\nlib\uC740 \uC11C\uBE44\uC2A4\uB97C \uB9CC\uB4E4\uB2E4\uBCF4\uBA74 \uD544\uC694\uD55C \uB370\uC774\uD130\uB97C \uC815\uC758\uD558\uB294 \uACF3\uC774\uC57C.\n\uB530\uB77C\uC11C dataName\uC740 DB\uC774\uB984. \uC989 \uB370\uC774\uD130\uBA85\uC744 \uB530\uB77C. \uB2E4\uB9CC \uD3F4\uB354 \uB0B4\uBD80\uC5D0\uB294 backend, Frontend\uC5D0\uC11C \uD1B5\uD569\uC73C\uB85C \uC4F0\uB294 \uC18C\uC2A4\uCF54\uB4DC\uB4E4\uC774 \uC788\uC5B4.\n\n\uC6B0\uB9AC \uD504\uB808\uC784\uC6CC\uD06C\uC758 \uD575\uC2EC\uC740 \uC815\uC758\uD55C \uBA54\uD0C0\uB370\uC774\uD130\uB4E4\uC744 \uC774\uC6A9\uD574\uC11C \uAC01 \uB370\uC774\uD130\uAC04\uC758 \uC5F0\uAD00\uC810\uC774\uB098, \uB370\uC774\uD130 \uD0C0\uC785\uC744 \uBCF4\uACE0 \uBBF8\uB9AC \uC815\uB9AC\uB41C \uACB0\uACFC\uB97C \uB9CC\uB4E4\uC5B4\uC8FC\uACE0 \uD504\uB85C\uC81D\uD2B8\uB97C \uB9CC\uB4E0\uB2E4\uBA74 \uAC70\uC758 \uBAA8\uB450 \uD544\uC694\uD55C \uC791\uC5C5\uB4E4\uC744 \uBBF8\uB9AC \uC815\uB9AC\uD574\uB1A8\uC5B4. \uC608\uB97C \uB4E4\uC5B4 \uB370\uC774\uD130 \uD0C0\uC785\uC5D0 \uC774\uBBF8\uC9C0 \uD30C\uC77C\uC774 \uC788\uB2E4\uACE0 \uD55C\uB2E4\uBA74 \uBC31\uC5D4\uB4DC\uB97C \uD1B5\uD574 \uADF8 \uC774\uBBF8\uC9C0\uB97C \uC11C\uBC84\uC758 \uC2A4\uD1A0\uB9AC\uC9C0\uC5D0 \uC800\uC7A5\uD558\uACE0 \uADF8 \uC800\uC7A5\uB41C \uD30C\uC77C\uC744 \uD2B9\uC815 db\uC5D0 id\uB97C \uCD94\uAC00\uD574\uC8FC\uB294 \uD568\uC218\uB4E4 \uAC19\uC740 \uAC83\uB4E4\uC740 \uC5B4\uB290 \uD504\uB85C\uC81D\uD2B8\uB358 \uAC04\uC5D0 \uBAA8\uB450 \uC0AC\uC6A9\uB418\uB294 \uBC29\uC2DD\uC774\uB77C\uACE0 \uD310\uB2E8\uD588\uC5B4. \uD558\uC9C0\uB9CC \uC6B0\uB9AC\uB294 \uD504\uB85C\uC81D\uD2B8\uB97C \uC791\uC5C5\uD560 \uB54C\uB9C8\uB2E4 \uC774 \uBD88\uD544\uC694\uD55C \uC791\uC5C5\uB4E4\uC744 \uD56D\uC0C1 \uB9CC\uB4E4\uACE0 \uD14C\uC2A4\uD2B8\uB97C\uD558\uB294 \uBD88\uD544\uC694\uD55C \uC77C\uB4E4\uC744 \uD558\uACE0\uC788\uC9C0. \uADF8\uB798\uC11C \uC6B0\uB9AC\uB294 \uAC01 \uD504\uB85C\uC81D\uD2B8\uAC00 \uB9CC\uB4E4 \uB54C\uB9C8\uB2E4 \uD544\uC218\uB85C \uC788\uC5B4\uC57C\uD560 \uC774\uBBF8\uC9C0 \uC5C5\uB85C\uB4DC \uD504\uB85C\uC138\uC2A4\uB97C \uD504\uB808\uC784\uC6CC\uD06C\uB97C \uD1B5\uD574 \uBBF8\uB9AC \uC815\uC758\uB41C \uC0C1\uD0DC\uB85C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC5B4.\n\uACB0\uACFC\uC801\uC73C\uB85C \uC6B0\uB9B0 \uD544\uC694\uD558\uC9C0\uB9CC \uB9E4\uBC88 \uC791\uC5C5\uD558\uAE30\uC5D4 \uC190\uC774 \uB9CE\uC774\uAC00\uB294 \uC791\uC5C5\uB4E4\uC744 \uBBF8\uB9AC \uC815\uC758\uD574\uB1A8\uC5B4.\n\n\uB610\uD55C \uC6B0\uB9B0 Nx\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uD15C\uD50C\uB9BF \uC81C\uC791 \uBB38\uBC95\uC744 \uC0AC\uC6A9\uD574\uC11C \uCEE4\uB9E8\uB4DC \uD55C \uC904\uB85C \uD2B9\uC815 \uD504\uB85C\uC81D\uD2B8 \uD3F4\uB354 \uD15C\uD50C\uB9BF\uC744 \uB9CC\uB4E4\uC5B4\uC8FC\uAC70\uB098, \uD2B9\uC815 \uBAA8\uB378\uC758 \uD544\uB4DC\uB4E4\uC744 \uB9CC\uB4E4 \uC218 \uC788\uB3C4\uB85D \uD574\uB1A8\uC5B4. Model\uC774\uB77C\uB294 \uBCC0\uC218\uC758 \uACB0\uACFC\uAC12\uC744 \uBC1B\uACE0 \uC800 \uD15C\uD50C\uB9BF\uC5D0 \uB9DE\uAC8C\uB054 \uC774\uB984\uC744 \uB123\uC5B4\uC8FC\uB294 \uAC70\uC9C0. \uB9CC\uC57D \uB0B4\uAC00 phone\uC774\uB77C\uB294 \uBCC0\uC218\uB97C \uB123\uC5C8\uB2E4\uBA74 \uC800 \uBAA8\uB378\uC5D0 Phone\uACFC \uAC19\uC740 \uACB0\uACFC\uAC12\uC73C\uB85C \uAC12\uC774 \uB4E4\uC5B4\uAC00\uAC8C \uB428\uC73C\uB85C\uC11C \uD15C\uD50C\uB9BF\uC774 \uC0DD\uC131\uB3FC. \uC774\uB294 \uC6B0\uB9AC\uAC00 \uC774\uBBF8 \uB9CC\uB4E4\uC5B4\uB193\uC740 \uCEE4\uB9E8\uB4DC\uAC00 \uC788\uC5B4.\n\n\uC608\uB97C \uB4E4\uC5B4 \uC5F0\uD544\uC774\uB77C\uB294 \uBAA8\uB378\uC744 \uCEE4\uB9E8\uB4DC\uB97C \uD1B5\uD574 \uC0DD\uC131\uD558\uBA74 \uC544\uB798\uC640 \uAC19\uC740 \uD30C\uC77C\uB4E4\uC774 \uC0DD\uC131\uB3FC.\n\npencil\n- pencil.constant.ts ( pencil\uC5D0 \uB300\uD55C db schema, query, sort \uAD6C\uBB38\uC744 \uC815\uC758 )\n- pencil.document.ts ( model\uC5D0\uC11C \uC790\uC8FC \uC0AC\uC6A9\uD558\uB294 method, static function, middleware\uB85C \uAC04\uB2E8\uD55C db \uAD00\uB9AC \uD568\uC218\uB4F1\uC744 \uAD00\uB9AC\uD568.)\n- pencil.dictionary.ts (\uB2E4\uAD6D\uC5B4\uB97C \uC704\uD574\uC11C schema field, enum, service name\uC758 \uB2E4\uAD6D\uC5B4 \uC815\uBCF4 \uB4F1\uC744 \uBAA8\uB450 \uAD00\uB9AC. )\n- pencil.signal.ts (frontend\uC758 fetch\uB97C \uC5F4\uC5B4\uC8FC\uB294 \uC77C\uC885\uC758 \uCC3D\uAD6C, \uAD8C\uD55C\uAD00\uB9AC\uB4F1\uC744 \uD568 nestjs\uC758 resolver\uC640 \uC720\uC0AC )\n- pencil.service.ts (\uC2E4\uC9C8\uC801\uC778 \uC11C\uBE44\uC2A4 \uCF54\uB4DC\uB97C \uC791\uC131\uD558\uB294 \uACF3. \uAC01\uC885 \uBE44\uC988\uB2C8\uC2A4 \uB85C\uC9C1\uC744 \uCC98\uB9AC\uD568.)\n- pencil.store.ts (pencil field\uC5D0 \uB300\uD55C \uC0C1\uD0DC\uAD00\uB9AC \uC800\uC7A5\uC18C.)\n- pencil.Zone.tsx (\uC544\uB798 Templete, Unit, Util, View, Util\uB4F1\uC744 \uC870\uD569\uD574\uC11C \uB2E4\uC74C \uB808\uBCA8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C \uC791\uC131\uD558\uB294 \uACF3 )\n- pencil.Templete.tsx (\uC8FC\uB85C edit\uC5D0 \uC5F0\uAD00\uB41C \uCEF4\uD3EC\uB10C\uD2B8 \uC815\uC758\uD558\uB294 \uACF3 )\n- pencil.Unit.tsx (list \uCC98\uB7FC \uBCF5\uC218\uAC1C\uC758 \uCEF4\uD3EC\uB10C\uD2B8\uB97C \uC815\uC758\uD558\uB294 \uACF3 )\n- pencil.Util.tsx (Action \uBC84\uD2BC\uC744 \uC815\uC758\uD558\uB294 \uACF3 )\n- pencil.View.tsx (\uB2E8\uC77C view \uCEF4\uD3EC\uB10C\uD2B8\uB97C \uC815\uC758\uD558\uB294 \uACF3 )\n\n\n\uC5EC\uAE30\uC11C constant\uC5D0 \uC815\uC758 \uB418\uC5B4\uC788\uB294 schema\uB97C \uAE30\uBCF8\uC73C\uB85C \uD574\uC11C \uAC01 document, dictionary, signal, service, store\uB97C \uC0DD\uC131\uD574.\n\ndocument, signal, service\uB294 \uBC31\uC5D4\uB4DC\uC640 \uC5F0\uAD00\uB418\uC5B4\uC788\uB294 \uC18C\uC2A4\uCF54\uB4DC\uC57C.\n\uC11C\uB85C\uAC04\uC758 \uAD00\uACC4\uB294 \uC8FC\uB85C signal\uC5D0\uC11C \uAC00\uC7A5 \uBA3C\uC800 \uC694\uCCAD\uC744 \uBC1B\uACE0 \uC774\uD6C4 \uB85C\uC9C1\uC758 \uBCF5\uC7A1\uB3C4\uC5D0 \uB530\uB77C\uC11C service\uB85C \uCC98\uB9AC\uD560 \uC9C0, docuemnt\uB85C \uCC98\uB9AC\uD560 \uC9C0\uB97C \uACB0\uC815\uD574.\nsignal - document\nsignal - service - document\n\nstore\uB294 \uD504\uB860\uD2B8\uC5D4\uB4DC\uC5D0\uC11C \uC0C1\uD0DC\uAD00\uB9AC\uB97C \uD560 \uB54C \uC0AC\uC6A9\uB3FC.\n\uC6B0\uB9AC\uB294 signal\uC758 \uCF54\uB4DC\uB85C \uB098\uC628 \uBA54\uD0C0\uB370\uC774\uD130\uB97C \uC774\uC6A9\uD574\uC11C store\uC5D0\uC11C \uD754\uD788 \uC0AC\uC6A9\uB420\uB9CC\uD55C \uD568\uC218\uB4E4\uC744 \uBBF8\uB9AC \uC815\uC758\uD558\uAC8C\uB054 \uB9CC\uB4E4\uC5C8\uC5B4.\n\n\uC774\uB807\uAC8C 11\uAC1C\uC758 \uD30C\uC77C\uB85C \uAD6C\uBD84\uD574\uC11C \uC815\uC758\uAC00 \uB3FC. \uC544\uB798\uB294 \uAC01 \uD15C\uD50C\uB9BF \uBCC4\uB85C \uD30C\uC77C\uB9C8\uB2E4 \uC815\uC758\uB418\uC788\uB294 \uC18C\uC2A4\uCF54\uB4DC\uC57C.\n<%=model %> \uC774 \uBD80\uBD84\uC5D0 \uC6B0\uB9AC\uAC00 \uC785\uB825\uD55C \uBAA8\uB378\uC744 \uAE30\uBC18\uC73C\uB85C \uC0DD\uC131\uB418\uB294 \uAC70\uC9C0.\n\nconstant\uB294 \uAE30\uBCF8 \uC2A4\uD0A4\uB9C8\uAC00 \uAD6C\uC131\uB418\uB294 \uACF3\uC774\uC57C. \uADF8\uB798\uC11C \uC774 \uACF3\uC5D0\uC11C DB \uC2A4\uD0A4\uB9C8, \uCFFC\uB9AC, \uC815\uB82C \uAD6C\uBB38\uC744 \uC815\uC758\uD574.\n\uC8FC\uC758\uD574\uC57C\uD560 \uAC74 decorator\uC5D0\uC11C \uC815\uC758\uD558\uB294 \uD0C0\uC785\uACFC \uC544\uB798\uC5D0 \uC815\uC758\uD558\uB294 \uD0C0\uC785\uC774 \uC57D\uAC04 \uB2E4\uB97C \uC218 \uC788\uC5B4\n\uC608\uB97C \uB4E4\uC5B4 decorator\uC5D0\uC11C\uB294 Int\uB85C \uC815\uC758\uD558\uACE0 constant\uC5D0\uC11C\uB294 number\uB85C \uC815\uC758\uD574\uC57C\uD574.\n\uCD94\uAC00\uB85C createdAt\uACFC updatedAt, status\uB294 \uAE30\uBCF8\uC801\uC73C\uB85C \uC0DD\uC131\uB418\uB294 \uD544\uB4DC\uC774\uB2C8\uAE4C \uB530\uB85C \uC815\uC758\uD558\uC9C0 \uC54A\uC544\uB3C4 \uB3FC.\n\uC774\uB294 decorator\uC5D0\uC11C\uB294 GraphQL\uC5D0\uC11C \uC0AC\uC6A9\uD560 \uD0C0\uC785\uC744 \uC815\uC758\uD558\uACE0 constant\uC5D0\uC11C\uB294 \uC2E4\uC81C \uD0C0\uC785\uC744 \uC815\uC758\uD558\uB294 \uAC70\uC9C0.\nmodel.constant.ts\n```\nimport {{ BaseModel, Field, Full, Light, Model, baseQueries, baseSorts }} from \"@akanjs/constant\";\nimport {{ Int, Dayjs, dayjs }} from \"@akanjs/base\";\n\nexport const <%= model %>Statuses = [\"active\"] as const;\nexport type <%= Model %>Status = (typeof <%= model %>Statuses)[number];\n\n//\uB370\uC774\uD130\uB97C \uB9CC\uB4E4 \uB54C \uD544\uC694\uD55C \uB370\uC774\uD130 \uD0C0\uC785\uC744 \uC815\uC758\uD558\uB294 \uACF3\n@Model.Input(\"<%= Model %>Input\")\nexport class <%= Model %>Input {{\n @Field.Prop(() => String)\n field: string;\n\n @Field.Prop(() => Int, {{ nullable: true }})\n fieldInt: number | null;\n\n @Field.Prop(() => Date, {{default: dayjs()}})\n fieldInt: Dayjs;\n}}\n\n//\uB370\uC774\uD130\uAC00 \uB9CC\uB4E4\uC5B4\uC9C4 \uC774\uD6C4 \uC0DD\uC131\uB418\uAC70\uB098 \uC800\uC7A5\uC73C\uB85C \uCD94\uAC00\uD560 \uC218 \uC788\uB294 \uACF3\n@Model.Object(\"<%= Model %>Object\")\nexport class <%= Model %>Object extends BaseModel(<%= Model %>Input) {{\n @Field.Prop(() => String, {{ enum: <%= model %>Statuses, default: \"active\" }})\n status: <%= Model %>Status;\n}}\n\n//\uB370\uC774\uD130\uB97C \uB9AC\uC2A4\uD2B8\uB85C \uBCF4\uC5EC\uC904 \uB54C \uD544\uC694\uD55C \uB370\uC774\uD130\uB9CC \uC81C\uACF5\uD558\uB294 \uACF3\n@Model.Light(\"Light<%= Model %>\")\nexport class Light<%= Model %> extends Light(<%= Model %>Object, [\"field\", \"status\"] as const) {{}}\n\n//\uCD5C\uC885 \uB370\uC774\uD130\uC758 \uD0C0\uC785\uC774 \uC815\uC758\uB418\uB294 \uACF3\n@Model.Full(\"<%= Model %>\")\nexport class <%= Model %> extends Full(<%= Model %>Object, Light<%= Model %>) {{}}\n\n//\uB370\uC774\uD130\uC758 \uC778\uC0AC\uC774\uD2B8\uB97C \uCE21\uC815\uD558\uAE30 \uC704\uD574\uC11C \uD544\uC694\uD55C \uB370\uC774\uD130\uB97C \uC815\uC758\uD558\uB294 \uACF3\n@Model.Insight(\"<%= Model %>Insight\")\nexport class <%= Model %>Insight {{\n @Field.Prop(() => Int, {{ default: 0, accumulate: {{ $sum: 1 }} }})\n count: number;\n}}\n\n//\uB370\uC774\uD130\uC758 \uD1B5\uACC4\uB97C \uACC4\uC0B0\uD558\uB294 \uACF3\n@Model.Summary(\"<%= Model %>Summary\")\nexport class <%= Model %>Summary {{\n @Field.Prop(() => Int, {{ min: 0, default: 0, query: {{ status: {{}} }} }})\n total<%= Model %>: number;\n}}\n\n//\uB370\uC774\uD130\uB97C \uC870\uD68C\uD560 \uB54C \uD544\uC694\uD55C \uCFFC\uB9AC\uB97C \uC815\uC758\uD558\uB294 \uACF3\nexport const <%= model %>Query = {{\n ...baseQueries,\n}};\n//\uB370\uC774\uD130\uB97C \uC815\uB82C\uD560 \uB54C \uD544\uC694\uD55C \uC815\uB82C\uC744 \uC815\uC758\uD558\uB294 \uACF3\nexport const <%= model %>Sort = {{\n ...baseSorts,\n}};\n```\n\n\nmodel.dictonary.ts\n```\nimport {{ ModelDictionary, SignalDictionary, SummaryDictionary, baseTrans, getBaseSignalTrans }} from \"@akanjs/dictionary\";\nimport type {{ <%= Model %>, <%= Model %>Insight, <%= Model %>Summary, <%= model %>Sort }} from \"./<%= model %>.constant\";\nimport type {{ <%= Model %>Signal }} from \"./<%= model %>.signal\";\n\nconst modelDictionary = {{\n ...baseTrans,\n modelName: [\"<%= Model %>\", \"<%= Model %>\"],\n modelDesc: [\n \"<%= Model %> description\",\n \"<%= Model %> \uC124\uBA85\",\n ],\n\n // * ==================== Model ==================== * //\n field: [\"Field\", \"\uD544\uB4DC\"],\n \"desc-field\": [\"Field\", \"\uD544\uB4DC\"],\n // * ==================== Model ==================== * //\n\n // * ==================== Insight ==================== * //\n count: [\"Count\", \"\uAC1C\uC218\"],\n \"desc-count\": [\"<%= Model %> count in current query settting\", \"\uD604\uC7AC \uCFFC\uB9AC \uC124\uC815\uC5D0 \uB9DE\uB294 <%= Model %> \uC218\"],\n // * ==================== Insight ==================== * //\n\n // * ==================== Filter ==================== * //\n // * ==================== Filter ==================== * //\n\n // * ==================== Etc ==================== * //\n \"enum-status-active\": [\"Active\", \"\uD65C\uC131\"],\n \"enumdesc-status-active\": [\"Active status\", \"\uD65C\uC131 \uC0C1\uD0DC\"],\n // * ==================== Etc ==================== * //\n}} satisfies ModelDictionary<<%= Model %>, <%= Model %>Insight, typeof <%= model %>Sort>;\n\nexport const <%= model %>SummaryDictionary = {{\n // * ==================== Summary ==================== * //\n total<%= Model %>: [\"Total <%= Model %>\", \"\uCD1D <%= Model %> \uC218\"],\n \"desc-total<%= Model %>\": [\"Total <%= model %> count in the database\", \"\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC800\uC7A5\uB41C \uCD1D <%= Model %> \uC218\"],\n // * ==================== Summary ==================== * //\n}} satisfies SummaryDictionary<<%= Model %>Summary>;\n\nconst signalDictionary = {{\n ...getBaseSignalTrans(\"<%= model %>\" as const),\n // * ==================== Endpoint ==================== * //\n \"api-<%= model %>ListInPublic\": [\"<%= Model %> List In Public\", \"\uACF5\uAC1C\uB41C <%= Model %> \uB9AC\uC2A4\uD2B8\"],\n \"apidesc-<%= model %>ListInPublic\": [\"Get a list of public <%= model %>\", \"\uACF5\uAC1C\uB41C <%= Model %>\uC758 \uB9AC\uC2A4\uD2B8\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4\"],\n \"arg-<%= model %>ListInPublic-statuses\": [\"Statuses\", \"\uC0C1\uD0DC\"],\n \"argdesc-<%= model %>ListInPublic-statuses\": [\"Statuses to filter\", \"\uD544\uD130\uB9C1\uD560 \uC0C1\uD0DC\"],\n \"arg-<%= model %>ListInPublic-skip\": [\"Skip\", \"\uAC74\uB108\uB6F0\uAE30\"],\n \"argdesc-<%= model %>ListInPublic-skip\": [\"Number of items to skip\", \"\uAC74\uB108\uB6F8 \uC544\uC774\uD15C \uC218\"],\n \"arg-<%= model %>ListInPublic-limit\": [\"Limit\", \"\uC81C\uD55C\"],\n \"argdesc-<%= model %>ListInPublic-limit\": [\"Maximum number of items to return\", \"\uBC18\uD658\uD560 \uCD5C\uB300 \uC544\uC774\uD15C \uC218\"],\n \"arg-<%= model %>ListInPublic-sort\": [\"Sort\", \"\uC815\uB82C\"],\n \"argdesc-<%= model %>ListInPublic-sort\": [\"Sort order of the items\", \"\uC544\uC774\uD15C\uC758 \uC815\uB82C \uC21C\uC11C\"],\n\n \"api-<%= model %>InsightInPublic\": [\"<%= Model %> Insight In Public\", \"\uACF5\uAC1C\uB41C <%= Model %> \uC778\uC0AC\uC774\uD2B8\"],\n \"apidesc-<%= model %>InsightInPublic\": [\n \"Get insight data for public <%= model %>\",\n \"\uACF5\uAC1C\uB41C <%= Model %>\uC5D0 \uB300\uD55C \uC778\uC0AC\uC774\uD2B8 \uB370\uC774\uD130\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4\",\n ],\n \"arg-<%= model %>InsightInPublic-statuses\": [\"Statuses\", \"\uC0C1\uD0DC\"],\n \"argdesc-<%= model %>InsightInPublic-statuses\": [\"Statuses to filter\", \"\uD544\uD130\uB9C1\uD560 \uC0C1\uD0DC\"],\n // * ==================== Endpoint ==================== * //\n}} satisfies SignalDictionary<<%= Model %>Signal, <%= Model %>>;\n```\nexport const <%= model %>Dictionary = {{ ...modelDictionary, ...signalDictionary }};\n\n\n\nmodel.document.ts\n```\nimport {{ Database, Document, Input, Middleware, Model, type SchemaOf }} from \"@akanjs/server\";\nimport {{ cnst }} from \"../cnst\";\n\n@Database.Input(() => cnst.<%= Model %>Input)\nexport class <%= Model %>Input extends Input(cnst.<%= Model %>Input) {{}}\n\n@Database.Document(() => cnst.<%= Model %>)\nexport class <%= Model %> extends Document(cnst.<%= Model %>) {{}}\n\n@Database.Model(() => cnst.<%= Model %>)\nexport class <%= Model %>Model extends Model(<%= Model %>, cnst.<%= model %>Cnst) {{\n async getSummary(): Promise<cnst.<%= Model %>Summary> {{\n return {{\n ...(await this.getDefaultSummary()),\n }};\n }}\n}}\n\n@Database.Middleware(() => cnst.<%= Model %>)\nexport class <%= Model %>Middleware extends Middleware(<%= Model %>Model, <%= Model %>) {{\n onSchema(schema: SchemaOf<<%= Model %>Model, <%= Model %>>) {{\n // schema.index({{ status: 1 }})\n }}\n}}\n\n\nmodel.signal.ts\n\nimport {{ Arg, DbSignal, Mutation, Query, Signal, resolve }} from \"@akanjs/signal\";\nimport {{ Int }} from \"@akanjs/base\";\nimport {{ Srvs, cnst }} from \"../cnst\";\n\n@Signal(() => cnst.<%= Model %>)\nexport class <%= Model %>Signal extends DbSignal(cnst.<%= model %>Cnst, Srvs, {{\n guards: {{ get: Query.Public, cru: Mutation.Every }},\n}}) {{\n // * /////////////////////////////////////\n // * Public Slice\n @Query.Public(() => [cnst.<%= Model %>])\n async <%= model %>ListInPublic(\n @Arg.Query(\"statuses\", () => [String], {{ nullable: true }}) statuses: cnst.<%= Model %>Status[] | null,\n @Arg.Query(\"skip\", () => Int, {{ nullable: true }}) skip: number | null,\n @Arg.Query(\"limit\", () => Int, {{ nullable: true }}) limit: number | null,\n @Arg.Query(\"sort\", () => String, {{ nullable: true }}) sort: keyof typeof cnst.<%= model %>Sort | null\n ) {{\n const <%= models %> = await this.<%= model %>Service.listByStatuses(statuses, {{ skip, limit, sort }});\n return resolve<cnst.<%= Model %>[]>(<%= models %>);\n }}\n @Query.Public(() => cnst.<%= Model %>Insight)\n async <%= model %>InsightInPublic(@Arg.Query(\"statuses\", () => [String], {{ nullable: true }}) statuses: cnst.<%= Model %>Status[] | null) {{\n const <%= model %>Insight = await this.<%= model %>Service.insightByStatuses(statuses);\n return resolve<cnst.<%= Model %>Insight>(<%= model %>Insight);\n }}\n // * Public Slice\n // * /////////////////////////////////////\n}}\n```\n\n\nmodel.service.ts\n```\nimport * as db from \"../db\";\nimport {{ DbService, Service }} from \"@akanjs/server\";\nimport {{ cnst }} from \"../cnst\";\n// import type * as srv from \"../srv\";\n\n@Service(\"<%= Model %>Service\")\nexport class <%= Model %>Service extends DbService(db.<%= model %>Db) {{\n // @Use() protected readonly injectedVar: string;\n // @Srv() protected readonly otherService: srv.OtherService;\n \n async summarize(): Promise<cnst.<%= Model %>Summary> {{\n return {{\n ...(await this.<%= model %>Model.getSummary()),\n }};\n }}\n}}\n```\n\n\nmodel.store.ts\n```\nimport {{ Store, stateOf }} from \"@akanjs/client\";\nimport {{ cnst }} from \"../cnst\";\nimport {{ fetch }} from \"../fetch\";\n\n@Store(() => cnst.<%= Model %>)\nexport class <%= Model %>Store extends stateOf(fetch.<%= model %>Gql, {{\n // state\n}}) {{\n // action\n}}\n```\n\n\nmodel.Zone.tsx\n```\n\"use client\";\nimport {{ Data, Load }} from \"@shared/ui\";\nimport {{ ModelsProps }} from \"@akanjs/client\";\nimport {{ cnst, fetch, <%= Model %> }} from \"<%= clientPath %>\";\nimport {{ ClientInit, ClientView, DefaultOf }} from \"@akanjs/signal\";\nimport {{ getQueryMap }} from \"@akanjs/constant\";\n\nexport const Admin = ({{ sliceName = \"<%= model %>\", init, query }}: ModelsProps<cnst.<%= Model %>>) => {{\n return (\n <Data.ListContainer\n init={{init}}\n query={{query}}\n sliceName={{sliceName}}\n renderItem={{<%= Model %>.Unit.Card}}\n renderDashboard={{<%= Model %>.Util.Stat}}\n renderInsight={{<%= Model %>.Util.Insight}}\n renderTemplate={{<%= Model %>.Template.General}}\n renderTitle={{(<%= model %>: DefaultOf<cnst.<%= Model %>>) => `<%= Model %> - ${{<%= model %>.id ? <%= model %>.id : \"New\"}}`}}\n renderView={{(<%= model %>: cnst.<%= Model %>) => <<%= Model %>.View.General <%= model %>={{<%= model %>}} />}}\n queryMap={{getQueryMap(cnst.<%= Model %>Summary)}}\n columns={{[\n \"id\",\n \"status\",\n \"createdAt\",\n \"updatedAt\",\n ]}}\n actions={{(<%= model %>: cnst.Light<%= Model %>, idx) => [\"remove\", \"edit\", \"view\"]}}\n />\n );\n}};\n\ninterface CardProps {{\n className?: string;\n init: ClientInit<\"<%= model %>\", cnst.Light<%= Model %>>;\n}}\nexport const Card = ({{ className, init }}: CardProps) => {{\n return (\n <Load.Units\n className={{className}}\n init={{init}}\n renderItem={{(<%= model %>: cnst.Light<%= Model %>) => (\n <<%= Model %>.Unit.Card key={{<%= model %>.id}} href={{`/<%= model %>${{<%= model %>.id}}`}} <%= model %>={{<%= model %>}} />\n )}}\n />\n );\n}};\n\ninterface ViewProps {{\n className?: string;\n view: ClientView<\"<%= model %>\", cnst.<%= Model %>>;\n}}\nexport const View = ({{ view }}: ViewProps) => {{\n return <Load.View view={{view}} renderView={{(<%= model %>) => <<%= Model %>.View.General <%= model %>={{<%= model %>}} />}} />;\n}};\n```\n\nmodel.Templete.tsx\n```\n\"use client\";\nimport {{ Field }} from \"@shared.ui\";\nimport {{ Layout }} from \"@util.ui\";\nimport {{ cnst, st, usePage }} from \"<%= clientPath %>\";\n\ninterface <%= Model %>EditProps {{\n <%= model %>Id?: string | null;\n}}\n\nexport const General = ({{ <%= model %>Id = undefined }}: <%= Model %>EditProps) => {{\n const <%= model %>Form = st.use.<%= model %>Form();\n const {{ l }} = usePage();\n return (\n <Layout.Template>\n <Field.Text\n label={{l.field(\"<%= model %>\", \"id\")}}\n desc={{l.desc(\"<%= model %>\", \"id\")}}\n value={{<%= model %>Form.id}}\n onChange={{st.do.setIdOn<%= Model %>}}\n />\n </Layout.Template>\n );\n}};\n```\n\n\nmodel.Unit.tsx\n```\nimport {{ Link }} from \"@util.ui\";\nimport {{ cnst, <%= Model %> }} from \"<%= clientPath %>\";\nimport {{ ModelProps }} from \"@akanjs/client\";\n\nexport const Card = ({{ <%= model %>, href }}: ModelProps<\"<%= model %>\", cnst.Light<%= Model %>>) => {{\n return (\n <Link href={{href}} className=\"animate-fadeIn w-full h-36 flex rounded-lg shadow-sm hover:shadow-lg duration-300\">\n <div>{{<%= model %>.id}}</div>\n </Link>\n );\n}};\n```\n\n\nmodel.Util.tsx\n```\n\"use client\";\nimport {{ Data }} from \"@shared.ui\";\nimport {{ ModelDashboardProps, ModelInsightProps }} from \"@akanjs/client\";\nimport {{ cnst, fetch, st, usePage, <%= Model %> }} from \"<%= clientPath %>\";\nimport {{ getQueryMap }} from \"@akanjs/constant\";\n\nexport const Stat = ({{\n className,\n summary,\n sliceName = \"<%= model %>\",\n queryMap = getQueryMap(cnst.<%= Model %>Summary),\n hidePresents,\n}}: ModelDashboardProps<cnst.Summary>) => {{\n return (\n <Data.Dashboard\n className={{className}}\n summary={{summary}}\n sliceName={{sliceName}}\n queryMap={{queryMap}}\n columns={{[\"total<%= Model %>\"]}}\n hidePresents={{hidePresents}}\n />\n );\n}};\n\nexport const Insight = ({{\n className,\n insight,\n sliceName = \"<%= model %>\",\n}}: ModelInsightProps<cnst.<%= Model %>Insight>) => {{\n return (\n <Data.Insight\n className={{className}}\n insight={{insight}}\n sliceName={{sliceName}}\n columns={{[\"count\"]}}\n />\n );\n}};\n```\n\n\nmodel.View.tsx\n```\nimport {{ Image }} from \"@util.ui\";\nimport {{ cnst, <%= Model %> }} from \"<%= clientPath %>\";\nimport {{ clsx }} from \"@akanjs/client\";\n\ninterface <%= Model %>ViewProps {{\n className?: string;\n <%= model %>: cnst.<%= Model %>;\n self?: {{ id?: string }} | null;\n}}\n\nexport const General = ({{ className, <%= model %>, self }}: <%= Model %>ViewProps) => {{\n return (\n <div className={{clsx(className, `animate-fadeIn w-full`)}}>\n <div>{{<%= model %>.id}}</div>\n </div>\n );\n}};\n```\n\uC774\uB7F0\uC2DD\uC73C\uB85C \uC6B0\uB9AC\uAC00 \uC9C1\uC811 \uB9CC\uB4E0 \uD504\uB808\uC784\uC6CC\uD06C\uC5D0 \uAE30\uBC18\uD574\uC11C db\uC640 \uC11C\uBE44\uC2A4 \uC2A4\uD1A0\uC5B4\uAE4C\uC9C0 \uBAA8\uB450 \uC5F0\uB3D9\uD574\uC11C \uD558\uB098\uC758 \uBAA8\uB378\uC5D0 \uB9DE\uAC8C\uB054 \uBAA8\uB4C8\uC744 \uD55C \uD3F4\uB354\uC5D0\uC11C \uC791\uC5C5\uD560 \uC218 \uC788\uAC8C\uB054 \uAD6C\uC870\uB97C \uB9CC\uB4E4\uC5C8\uC5B4.\n\n\uC77C\uB2E8 \uD504\uB808\uC784\uC6CC\uD06C\uC5D0 \uB300\uD55C \uC124\uBA85\uC740 \uC774 \uC815\uB3C4\uB85C \uD558\uACE0 \uC774 \uC815\uBCF4\uB4E4\uC744 \uAE30\uBC18\uC73C\uB85C \uB0B4\uAC00 \uC6D0\uD558\uB294 \uC694\uAD6C\uB97C \uB4E4\uC5B4\uC918.\n";
2
+ export declare const requestModule: () => string;
3
+ interface RequestConstantProps {
4
+ sysName: string;
5
+ modelName: string;
6
+ modelDesc: string;
7
+ modelSchemaDesign: string;
8
+ boilerplate: string;
9
+ otherConstants: {
10
+ path: string;
11
+ content: string;
12
+ }[];
13
+ }
14
+ export declare const requestScalarConstant: ({ sysName, modelName, modelDesc, modelSchemaDesign, boilerplate, otherConstants, }: RequestConstantProps) => string;
15
+ export {};
@@ -0,0 +1,17 @@
1
+ import { type App, type Lib, type Sys, Workspace } from "@akanjs/devkit";
2
+ export declare class ModuleRunner {
3
+ createModule(workspace: Workspace, moduleName: string): Promise<void>;
4
+ removeModule(workspace: Workspace, name: string): Promise<void>;
5
+ createScalarTemplate(sys: Sys, name: string): Promise<{
6
+ constant: {
7
+ filename: string;
8
+ content: string;
9
+ };
10
+ dictionary: {
11
+ filename: string;
12
+ content: string;
13
+ };
14
+ }>;
15
+ createUnit(sys: App | Lib, modelName: string): Promise<void>;
16
+ createView(sys: App | Lib, modelName: string): Promise<void>;
17
+ }
@@ -0,0 +1,11 @@
1
+ import { type Sys, Workspace } from "@akanjs/devkit";
2
+ export declare class ModuleScript {
3
+ #private;
4
+ createModule(workspace: Workspace, name: string): Promise<void>;
5
+ removeModule(workspace: Workspace, name: string): Promise<void>;
6
+ createScalar(sys: Sys, name: string): Promise<void>;
7
+ createService(workspace: Workspace, name: string): Promise<void>;
8
+ createTest(workspace: Workspace, name: string): Promise<void>;
9
+ createUnit(workspace: Workspace, type: "app" | "lib", appOrLibName: string, modelName: string): Promise<void>;
10
+ createView(workspace: Workspace, type: "app" | "lib", appOrLibName: string, modelName: string): Promise<void>;
11
+ }
@@ -0,0 +1,9 @@
1
+ import { Pkg, Workspace } from "@akanjs/devkit";
2
+ import { PackageScript } from "./package.script";
3
+ export declare class PackageCommand {
4
+ packageScript: PackageScript;
5
+ createPackage(name: string, workspace: Workspace): Promise<void>;
6
+ removePackage(name: string, workspace: Workspace): Promise<void>;
7
+ scanPackage(pkg: Pkg): Promise<void>;
8
+ buildPackage(pkg: Pkg): Promise<void>;
9
+ }
@@ -0,0 +1,6 @@
1
+ import { type DistPkgExecutor, type Pkg, type Workspace } from "@akanjs/devkit";
2
+ export declare class PackageRunner {
3
+ createPackage(workspace: Workspace, pkgName: string): Promise<void>;
4
+ scanSync(pkg: Pkg): Promise<import("@akanjs/config").PkgScanResult>;
5
+ buildPackage(pkg: Pkg, distPkg: DistPkgExecutor): Promise<void>;
6
+ }
@@ -0,0 +1,7 @@
1
+ import { DistPkgExecutor, type Pkg, type Workspace } from "@akanjs/devkit";
2
+ export declare class PackageScript {
3
+ #private;
4
+ createPackage(workspace: Workspace, pkgName: string): Promise<void>;
5
+ scanPackage(pkg: Pkg): Promise<void>;
6
+ buildPackage(pkg: Pkg, distPkg?: DistPkgExecutor): Promise<void>;
7
+ }
@@ -0,0 +1,6 @@
1
+ import { App } from "@akanjs/devkit";
2
+ import { PageScript } from "./page.script";
3
+ export declare class PageCommand {
4
+ pageScript: PageScript;
5
+ createPage(app: App, name: string): Promise<void>;
6
+ }
@@ -0,0 +1,4 @@
1
+ import { App } from "@akanjs/devkit";
2
+ export declare class PageRunner {
3
+ createPage(app: App, name: string): Promise<void>;
4
+ }
@@ -0,0 +1,5 @@
1
+ import { App } from "@akanjs/devkit";
2
+ export declare class PageScript {
3
+ #private;
4
+ createPage(app: App, name: string): Promise<void>;
5
+ }
@@ -0,0 +1,8 @@
1
+ import { Workspace } from "@akanjs/devkit";
2
+ import { WorkspaceScript } from "./workspace.script";
3
+ export declare class WorkspaceCommand {
4
+ workspaceScript: WorkspaceScript;
5
+ createWorkspace(name: string, dir: string, app: string): Promise<void>;
6
+ installLibrary(name: string, workspace: Workspace): Promise<void>;
7
+ generateMongo(workspace: Workspace): Promise<void>;
8
+ }
@@ -0,0 +1,6 @@
1
+ import { type Workspace } from "@akanjs/devkit";
2
+ export declare class WorkspaceRunner {
3
+ createWorkspace(repoName: string, appName: string, dirname?: string): Promise<void>;
4
+ generateMongo(workspace: Workspace): Promise<void>;
5
+ installLibrary(workspace: Workspace, libName: string): Promise<void>;
6
+ }
@@ -0,0 +1,7 @@
1
+ import { WorkspaceExecutor } from "@akanjs/devkit";
2
+ export declare class WorkspaceScript {
3
+ #private;
4
+ createWorkspace(repoName: string, appName: string, dirname?: string): Promise<void>;
5
+ generateMongo(workspace: WorkspaceExecutor): Promise<void>;
6
+ installLibrary(workspace: WorkspaceExecutor, libName: string): Promise<void>;
7
+ }
@@ -1,34 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var model_constant_exports = {};
19
- __export(model_constant_exports, {
20
- default: () => getContent
21
- });
22
- module.exports = __toCommonJS(model_constant_exports);
23
- function getContent(scanResult, dict) {
24
- return `
25
- import { Field, Model } from "@akanjs/constant";
26
-
27
- @Model.Scalar("${dict.Model}")
28
- export class ${dict.Model} {
29
- @Field.Prop(() => String)
30
- field: string;
31
- }
32
- `;
33
- }
34
- module.exports = module.exports.default;
@@ -1,45 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var model_dictionary_exports = {};
19
- __export(model_dictionary_exports, {
20
- default: () => getContent
21
- });
22
- module.exports = __toCommonJS(model_dictionary_exports);
23
- function getContent(scanResult, dict) {
24
- return `
25
- import { ModelDictionary } from "@akanjs/dictionary";
26
-
27
- import type { ${dict.Model} } from "./${dict.model}.constant";
28
-
29
- const modelDictionary = {
30
- modelName: ["${dict.Model}", "${dict.Model}"],
31
- modelDesc: ["${dict.Model}", "${dict.Model}"],
32
-
33
- // * ==================== Model ==================== * //
34
- field: ["Field", "\uD544\uB4DC"],
35
- "desc-field": ["Field", "\uD544\uB4DC"],
36
- // * ==================== Model ==================== * //
37
-
38
- // * ==================== Etc ==================== * //
39
- // * ==================== Etc ==================== * //
40
- } satisfies ModelDictionary<${dict.Model}>;
41
-
42
- export const ${dict.model}Dictionary = modelDictionary;
43
- `;
44
- }
45
- module.exports = module.exports.default;
@@ -1,32 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var model_document_exports = {};
19
- __export(model_document_exports, {
20
- default: () => getContent
21
- });
22
- module.exports = __toCommonJS(model_document_exports);
23
- function getContent(scanResult, dict) {
24
- return `
25
- import { by } from "@akanjs/document";
26
-
27
- import * as cnst from "./${dict.model}.constant";
28
-
29
- export class ${dict.Model} extends by(cnst.${dict.Model}) {}
30
- `;
31
- }
32
- module.exports = module.exports.default;
@@ -1,5 +0,0 @@
1
- import type { AppConfig } from "@akanjs/config";
2
-
3
- const config: AppConfig = {};
4
-
5
- export default config;
@@ -1,43 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var page_exports = {};
19
- __export(page_exports, {
20
- default: () => getContent
21
- });
22
- module.exports = __toCommonJS(page_exports);
23
- function getContent(scanResult, dict = {}) {
24
- return `
25
- import { Image, Link } from "@util/ui";
26
- import { User } from "@shared/client";
27
-
28
- export default function Page() {
29
- return (
30
- <div className="relative w-full h-screen overflow-hidden flex items-center justify-center">
31
- <div className="z-10 md:w-[400px] px-12 pt-12 pb-4 shadow-lg rounded-xl bg-base-100/50 backdrop-blur-xs">
32
- <User.Util.ForgotPassword />
33
- <Link.Back className="text-center">
34
- <button className="mt-2 underline btn btn-ghost">Back</button>
35
- </Link.Back>
36
- </div>
37
- <Image className="absolute left-0 right-0 top-0 bottom-0 -z-50" width={1920} height={1080} src="/back.jpg" />
38
- </div>
39
- );
40
- }
41
- `;
42
- }
43
- module.exports = module.exports.default;
@@ -1,44 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var page_exports = {};
19
- __export(page_exports, {
20
- default: () => getContent
21
- });
22
- module.exports = __toCommonJS(page_exports);
23
- function getContent(scanResult, dict) {
24
- return `
25
- import { Image, Link } from "@util/ui";
26
- import { getSelf } from "@akanjs/client";
27
-
28
- export default function Page() {
29
- const self = getSelf();
30
- return (
31
- <div className="relative w-full h-screen overflow-hidden flex items-center justify-center">
32
- <div className="max-w-md bg-base-100/50 shadow-lg rounded-xl backdrop-blur-xs w-full py-8 px-16 flex flex-col items-center justify-center gap-3">
33
- <h1 className="text-4xl mt-2">${dict.appName}</h1>
34
- <h2 className="text-lg">${dict.appName} description</h2>
35
- <Link className="w-full" href={self ? "/self" : "/signin"}>
36
- <button className="btn w-full btn-primary">Go to dashboard</button>
37
- </Link>
38
- </div>
39
- </div>
40
- );
41
- }
42
- `;
43
- }
44
- module.exports = module.exports.default;