@akanjs/cli 0.0.42 → 0.0.44

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 (157) hide show
  1. package/index.js +126 -95
  2. package/package.json +1 -1
  3. package/src/templates/__scalar/__model__/__model__.constant.js +36 -0
  4. package/src/templates/__scalar/__model__/__model__.dictionary.js +47 -0
  5. package/src/templates/__scalar/__model__/__model__.document.js +34 -0
  6. package/src/templates/app/akan.config.ts.template +5 -0
  7. package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +45 -0
  8. package/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +46 -0
  9. package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +40 -0
  10. package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +48 -0
  11. package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +39 -0
  12. package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +41 -0
  13. package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +58 -0
  14. package/src/templates/app/app/[lang]/(__appName__)/layout.js +50 -0
  15. package/src/templates/app/app/[lang]/admin/layout.js +51 -0
  16. package/src/templates/app/app/[lang]/admin/page.js +61 -0
  17. package/src/templates/app/app/csr.js +32 -0
  18. package/src/templates/app/app/index.html.template +13 -0
  19. package/src/templates/app/app/layout.js +36 -0
  20. package/src/templates/app/app/robots.js +41 -0
  21. package/src/templates/app/app/sitemap.js +37 -0
  22. package/src/templates/app/base/baseLogic.js +36 -0
  23. package/src/templates/app/base/index.js +30 -0
  24. package/src/templates/app/capacitor.config.ts.template +8 -0
  25. package/src/templates/app/common/commonLogic.js +36 -0
  26. package/src/templates/app/common/index.js +30 -0
  27. package/src/templates/app/env/env.client.js +39 -0
  28. package/src/templates/app/env/env.client.type.js +36 -0
  29. package/src/templates/app/env/env.server.js +39 -0
  30. package/src/templates/app/jest.config.js +37 -0
  31. package/src/templates/app/lib/___appName__/__appName__.dictionary.js +32 -0
  32. package/src/templates/app/lib/___appName__/__appName__.service.js +43 -0
  33. package/src/templates/app/lib/___appName__/__appName__.store.js +37 -0
  34. package/src/templates/app/lib/___appName__/_server.js +35 -0
  35. package/src/templates/app/lib/option.js +43 -0
  36. package/src/templates/app/lib/setting/Setting.Template.js +55 -0
  37. package/src/templates/app/lib/setting/Setting.Unit.js +36 -0
  38. package/src/templates/app/lib/setting/Setting.Util.js +32 -0
  39. package/src/templates/app/lib/setting/Setting.View.js +49 -0
  40. package/src/templates/app/lib/setting/Setting.Zone.js +78 -0
  41. package/src/templates/app/lib/setting/_server.js +49 -0
  42. package/src/templates/app/lib/setting/index.js +59 -0
  43. package/src/templates/app/lib/setting/setting.constant.js +47 -0
  44. package/src/templates/app/lib/setting/setting.dictionary.js +47 -0
  45. package/src/templates/app/lib/setting/setting.document.js +49 -0
  46. package/src/templates/app/lib/setting/setting.service.js +38 -0
  47. package/src/templates/app/lib/setting/setting.signal.js +35 -0
  48. package/src/templates/app/lib/setting/setting.store.js +42 -0
  49. package/src/templates/app/lib/summary/Summary.Template.js +41 -0
  50. package/src/templates/app/lib/summary/Summary.Unit.js +36 -0
  51. package/src/templates/app/lib/summary/Summary.Util.js +31 -0
  52. package/src/templates/app/lib/summary/Summary.View.js +49 -0
  53. package/src/templates/app/lib/summary/Summary.Zone.js +60 -0
  54. package/src/templates/app/lib/summary/_server.js +49 -0
  55. package/src/templates/app/lib/summary/index.js +65 -0
  56. package/src/templates/app/lib/summary/summary.constant.js +45 -0
  57. package/src/templates/app/lib/summary/summary.dictionary.js +50 -0
  58. package/src/templates/app/lib/summary/summary.document.js +49 -0
  59. package/src/templates/app/lib/summary/summary.service.js +35 -0
  60. package/src/templates/app/lib/summary/summary.signal.js +35 -0
  61. package/src/templates/app/lib/summary/summary.store.js +42 -0
  62. package/src/templates/app/lib/user/User.Template.js +63 -0
  63. package/src/templates/app/lib/user/User.Unit.js +36 -0
  64. package/src/templates/app/lib/user/User.Util.js +92 -0
  65. package/src/templates/app/lib/user/User.View.js +64 -0
  66. package/src/templates/app/lib/user/User.Zone.js +72 -0
  67. package/src/templates/app/lib/user/_server.js +49 -0
  68. package/src/templates/app/lib/user/index.js +59 -0
  69. package/src/templates/app/lib/user/user.constant.js +68 -0
  70. package/src/templates/app/lib/user/user.dictionary.js +53 -0
  71. package/src/templates/app/lib/user/user.document.js +55 -0
  72. package/src/templates/app/lib/user/user.service.js +43 -0
  73. package/src/templates/app/lib/user/user.signal.js +35 -0
  74. package/src/templates/app/lib/user/user.signal.spec.js +38 -0
  75. package/src/templates/app/lib/user/user.signal.test.js +40 -0
  76. package/src/templates/app/lib/user/user.store.js +40 -0
  77. package/src/templates/app/main.js +41 -0
  78. package/src/templates/app/middleware.js +36 -0
  79. package/src/templates/app/nest/backendLogic.js +35 -0
  80. package/src/templates/app/nest/index.js +30 -0
  81. package/src/templates/app/next/frontendLogic.js +35 -0
  82. package/src/templates/app/next/index.js +30 -0
  83. package/src/templates/app/page.test.ts.template +10 -0
  84. package/src/templates/app/playwright.config.ts.template +6 -0
  85. package/src/templates/app/postcss.config.js.template +10 -0
  86. package/src/templates/app/public/favicon.ico +0 -0
  87. package/src/templates/app/public/icons/icon-128x128.png +0 -0
  88. package/src/templates/app/public/icons/icon-144x144.png +0 -0
  89. package/src/templates/app/public/icons/icon-152x152.png +0 -0
  90. package/src/templates/app/public/icons/icon-192x192.png +0 -0
  91. package/src/templates/app/public/icons/icon-256x256.png +0 -0
  92. package/src/templates/app/public/icons/icon-384x384.png +0 -0
  93. package/src/templates/app/public/icons/icon-48x48.png +0 -0
  94. package/src/templates/app/public/icons/icon-512x512.png +0 -0
  95. package/src/templates/app/public/icons/icon-72x72.png +0 -0
  96. package/src/templates/app/public/icons/icon-96x96.png +0 -0
  97. package/src/templates/app/public/logo.svg +70 -0
  98. package/src/templates/app/public/manifest.json.template +67 -0
  99. package/src/templates/app/tsconfig.json.template +22 -0
  100. package/src/templates/app/tsconfig.spec.json.template +7 -0
  101. package/src/templates/app/ui/Footer.js +65 -0
  102. package/src/templates/app/ui/MainHeader.js +129 -0
  103. package/src/templates/app/ui/index.js +31 -0
  104. package/src/templates/client.js +43 -0
  105. package/src/templates/crudPages/[__model__Id]/edit/page.js +71 -0
  106. package/src/templates/crudPages/[__model__Id]/page.js +81 -0
  107. package/src/templates/crudPages/new/page.js +68 -0
  108. package/src/templates/crudPages/page.js +69 -0
  109. package/src/templates/index.js +32 -0
  110. package/src/templates/lib/__lib/extends/summary.constant.js +44 -0
  111. package/src/templates/lib/__lib/lib.constant.js +54 -0
  112. package/src/templates/lib/__lib/lib.dictionary.js +43 -0
  113. package/src/templates/lib/__lib/lib.document.js +42 -0
  114. package/src/templates/lib/__lib/lib.service.js +84 -0
  115. package/src/templates/lib/__lib/lib.signal.js +37 -0
  116. package/src/templates/lib/__lib/lib.store.js +35 -0
  117. package/src/templates/lib/__scalar/_server.js +40 -0
  118. package/src/templates/lib/cnst.js +33 -0
  119. package/src/templates/lib/cnst_.js +52 -0
  120. package/src/templates/lib/db.js +54 -0
  121. package/src/templates/lib/dict.js +46 -0
  122. package/src/templates/lib/fetch.js +49 -0
  123. package/src/templates/lib/sig.js +38 -0
  124. package/src/templates/lib/srv.js +53 -0
  125. package/src/templates/lib/st.js +37 -0
  126. package/src/templates/lib/store.js +53 -0
  127. package/src/templates/lib/usePage.js +34 -0
  128. package/src/templates/libRoot/.gitignore.template +15 -0
  129. package/src/templates/libRoot/jest.config.js +37 -0
  130. package/src/templates/libRoot/package.json.template +5 -0
  131. package/src/templates/libRoot/tsconfig.json.template +11 -0
  132. package/src/templates/libRoot/tsconfig.spec.json.template +7 -0
  133. package/src/templates/module/__Model__.Template.js +52 -0
  134. package/src/templates/module/__Model__.Unit.js +40 -0
  135. package/src/templates/module/__Model__.Util.js +68 -0
  136. package/src/templates/module/__Model__.View.js +46 -0
  137. package/src/templates/module/__Model__.Zone.js +81 -0
  138. package/src/templates/module/__model__.constant.js +70 -0
  139. package/src/templates/module/__model__.dictionary.js +99 -0
  140. package/src/templates/module/__model__.document.js +54 -0
  141. package/src/templates/module/__model__.service.js +42 -0
  142. package/src/templates/module/__model__.signal.js +61 -0
  143. package/src/templates/module/__model__.signal.spec.js +40 -0
  144. package/src/templates/module/__model__.signal.test.js +49 -0
  145. package/src/templates/module/__model__.store.js +40 -0
  146. package/src/templates/module/_server.js +48 -0
  147. package/src/templates/module/index.js +59 -0
  148. package/src/templates/pkgRoot/tsconfig.json.template +12 -0
  149. package/src/templates/server.js +60 -0
  150. package/src/templates/workplaceRoot/.env.template +20 -0
  151. package/src/templates/workplaceRoot/.gitignore.template +195 -0
  152. package/src/templates/workplaceRoot/.prettierignore.template +10 -0
  153. package/src/templates/workplaceRoot/.prettierrc.json.template +5 -0
  154. package/src/templates/workplaceRoot/.swcrc.template +9 -0
  155. package/src/templates/workplaceRoot/README.md.template +37 -0
  156. package/src/templates/workplaceRoot/eslint.config.js.template +141 -0
  157. package/src/templates/workplaceRoot/tsconfig.json.template +29 -0
@@ -0,0 +1,40 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__Model__.Unit.tsx
20
+ var Model_Unit_exports = {};
21
+ __export(Model_Unit_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(Model_Unit_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ import { ModelProps } from "@akanjs/client";
28
+ import { cnst, ${dict.Model} } from "@${dict.appName}/client";
29
+ import { Link } from "@util/ui";
30
+
31
+ export const Card = ({ ${dict.model}, href }: ModelProps<"${dict.model}", cnst.Light${dict.Model}>>) => {
32
+ return (
33
+ <Link href={href} className="animate-fadeIn w-full h-36 flex rounded-lg shadow-sm hover:shadow-lg duration-300">
34
+ <div>{${dict.model}.id}</div>
35
+ </Link>
36
+ );
37
+ };
38
+ `;
39
+ }
40
+ module.exports = module.exports.default;
@@ -0,0 +1,68 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__Model__.Util.tsx
20
+ var Model_Util_exports = {};
21
+ __export(Model_Util_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(Model_Util_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ "use client";
28
+ import { ModelDashboardProps, ModelInsightProps } from "@akanjs/client";
29
+ import { getQueryMap } from "@akanjs/constant";
30
+ import { cnst } from "@${dict.appName}/client";
31
+ import { Data } from "@shared/ui";
32
+
33
+ export const Stat = ({
34
+ className,
35
+ summary,
36
+ sliceName = "${dict.model}",
37
+ queryMap = getQueryMap(cnst.${dict.Model}Summary),
38
+ hidePresents,
39
+ }: ModelDashboardProps<cnst.Summary>) => {
40
+ return (
41
+ <Data.Dashboard
42
+ className={className}
43
+ summary={summary}
44
+ sliceName={sliceName}
45
+ queryMap={queryMap}
46
+ columns={["total${dict.Model}"]}
47
+ hidePresents={hidePresents}
48
+ />
49
+ );
50
+ };
51
+
52
+ export const Insight = ({
53
+ className,
54
+ insight,
55
+ sliceName = "${dict.model}",
56
+ }: ModelInsightProps<cnst.${dict.Model}Insight>) => {
57
+ return (
58
+ <Data.Insight
59
+ className={className}
60
+ insight={insight}
61
+ sliceName={sliceName}
62
+ columns={["count"]}
63
+ />
64
+ );
65
+ };
66
+ `;
67
+ }
68
+ module.exports = module.exports.default;
@@ -0,0 +1,46 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__Model__.View.tsx
20
+ var Model_View_exports = {};
21
+ __export(Model_View_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(Model_View_exports);
25
+ function getContent(scanResult, dict = {}) {
26
+ return `
27
+ import { clsx } from "@akanjs/client";
28
+ import { cnst } from "@${dict.appName}/client";
29
+ import { Image } from "@util/ui";
30
+
31
+ interface ${dict.Model}ViewProps {
32
+ className?: string;
33
+ ${dict.model}: cnst.${dict.Model};
34
+ self?: { id?: string } | null;
35
+ }
36
+
37
+ export const General = ({ className, ${dict.model}, self }: ${dict.Model}ViewProps) => {
38
+ return (
39
+ <div className={clsx(className, "animate-fadeIn w-full")}>
40
+ <div>{${dict.model}.id}</div>
41
+ </div>
42
+ );
43
+ };
44
+ `;
45
+ }
46
+ module.exports = module.exports.default;
@@ -0,0 +1,81 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__Model__.Zone.tsx
20
+ var Model_Zone_exports = {};
21
+ __export(Model_Zone_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(Model_Zone_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ "use client";
28
+ import { Data, Load } from "@shared/ui";
29
+ import { ModelsProps } from "@akanjs/client";
30
+ import { cnst, ${dict.Model} } from "@${dict.appName}/client";
31
+ import { ClientInit, ClientView, DefaultOf } from "@akanjs/signal";
32
+
33
+ export const Admin = ({ sliceName = "${dict.model}", init, query }: ModelsProps<cnst.${dict.Model}>>) => {
34
+ return (
35
+ <Data.ListContainer
36
+ init={init}
37
+ query={query}
38
+ sliceName={sliceName}
39
+ renderItem={${dict.Model}.Unit.Card}
40
+ renderDashboard={${dict.Model}.Util.Stat}
41
+ renderInsight={${dict.Model}.Util.Insight}
42
+ renderTemplate={${dict.Model}.Template.General}
43
+ renderTitle={(${dict.model}: DefaultOf<cnst.${dict.Model}>>) => \`${dict.Model} - \${${dict.model}.id ? ${dict.model}.id : "New"}\`}
44
+ renderView={(${dict.model}: cnst.${dict.Model}>) => <${dict.Model}.View.General ${dict.model}={${dict.model}} />}
45
+ columns={[
46
+ "id",
47
+ "status",
48
+ "createdAt",
49
+ "updatedAt",
50
+ ]}
51
+ actions={(${dict.model}: cnst.Light${dict.Model}, idx) => ["remove", "edit", "view"]}
52
+ />
53
+ );
54
+ };
55
+
56
+ interface CardProps {
57
+ className?: string;
58
+ init: ClientInit<"${dict.model}", cnst.Light${dict.Model}>;
59
+ }
60
+ export const Card = ({ className, init }: CardProps) => {
61
+ return (
62
+ <Load.Units
63
+ className={className}
64
+ init={init}
65
+ renderItem={(${dict.model}: cnst.Light${dict.Model}) => (
66
+ <${dict.Model}.Unit.Card key={${dict.model}.id} href={\`/${dict.model}/\${${dict.model}.id}\`} ${dict.model}={${dict.model}} />
67
+ )}
68
+ />
69
+ );
70
+ };
71
+
72
+ interface ViewProps {
73
+ className?: string;
74
+ view: ClientView<"${dict.model}", cnst.${dict.Model}>;
75
+ }
76
+ export const View = ({ view }: ViewProps) => {
77
+ return <Load.View view={view} renderView={(${dict.model}) => <${dict.Model}.View.General ${dict.model}={${dict.model}} />} />;
78
+ };
79
+ `;
80
+ }
81
+ module.exports = module.exports.default;
@@ -0,0 +1,70 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__model__.constant.ts
20
+ var model_constant_exports = {};
21
+ __export(model_constant_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(model_constant_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ import { enumOf, Int } from "@akanjs/base";
28
+ import { Field, Filter, Model, sortOf, via } from "@akanjs/constant";
29
+
30
+ export const ${dict.Model}Status = enumOf(["active"] as const);
31
+ export type ${dict.Model}Status = enumOf<typeof ${dict.Model}Status>;
32
+
33
+ @Model.Input("${dict.Model}Input")
34
+ export class ${dict.Model}Input {
35
+ @Field.Prop(() => String, { nullable: true })
36
+ field: string | null;
37
+ }
38
+
39
+ @Model.Object("${dict.Model}Object")
40
+ export class ${dict.Model}Object extends via(${dict.Model}Input) {
41
+ @Field.Prop(() => String, { enum: ${dict.Model}Status, default: "active" })
42
+ status: ${dict.Model}Status;
43
+ }
44
+
45
+ @Model.Light("Light${dict.Model}")
46
+ export class Light${dict.Model} extends via(${dict.Model}Object, [
47
+ "field",
48
+ "status",
49
+ ] as const) {}
50
+
51
+ @Model.Full("${dict.Model}")
52
+ export class ${dict.Model} extends via(${dict.Model}Object, Light${dict.Model}) {}
53
+
54
+ @Model.Insight("${dict.Model}Insight")
55
+ export class ${dict.Model}Insight {
56
+ @Field.Prop(() => Int, { default: 0, accumulate: { $sum: 1 } })
57
+ count: number;
58
+ }
59
+
60
+ @Model.Summary("${dict.Model}Summary")
61
+ export class ${dict.Model}Summary {
62
+ @Field.Prop(() => Int, { min: 0, default: 0, query: {} })
63
+ total${dict.Model}: number;
64
+ }
65
+
66
+ @Model.Filter("${dict.Model}Filter")
67
+ export class ${dict.Model}Filter extends sortOf(${dict.Model}, {}) {}
68
+ `;
69
+ }
70
+ module.exports = module.exports.default;
@@ -0,0 +1,99 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__model__.dictionary.ts
20
+ var model_dictionary_exports = {};
21
+ __export(model_dictionary_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(model_dictionary_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ import {
28
+ baseTrans,
29
+ getBaseSignalTrans,
30
+ ModelDictionary,
31
+ SignalDictionary,
32
+ SummaryDictionary,
33
+ } from "@akanjs/dictionary";
34
+
35
+ import type { ${dict.Model}, ${dict.Model}Filter, ${dict.Model}Insight, ${dict.Model}Summary } from "./${dict.model}.constant";
36
+ import type { ${dict.Model}Signal } from "./${dict.model}.signal";
37
+
38
+ const modelDictionary = {
39
+ ...baseTrans,
40
+ modelName: ["${dict.Model}", "${dict.Model}"],
41
+ modelDesc: [
42
+ "${dict.Model} description",
43
+ "${dict.Model} \uC124\uBA85",
44
+ ],
45
+
46
+ // * ==================== Model ==================== * //
47
+ field: ["Field", "\uD544\uB4DC"],
48
+ "desc-field": ["Field", "\uD544\uB4DC"],
49
+ // * ==================== Model ==================== * //
50
+
51
+ // * ==================== Insight ==================== * //
52
+ count: ["Count", "\uAC1C\uC218"],
53
+ "desc-count": ["${dict.Model} count in current query settting", "\uD604\uC7AC \uCFFC\uB9AC \uC124\uC815\uC5D0 \uB9DE\uB294 \uBC30\uB108 \uC218"],
54
+ // * ==================== Insight ==================== * //
55
+
56
+ // * ==================== Filter ==================== * //
57
+ // * ==================== Filter ==================== * //
58
+
59
+ // * ==================== Etc ==================== * //
60
+ "enum-status-active": ["Active", "\uD65C\uC131"],
61
+ "enumdesc-status-active": ["Active status", "\uD65C\uC131 \uC0C1\uD0DC"],
62
+ // * ==================== Etc ==================== * //
63
+ } satisfies ModelDictionary<${dict.Model}, ${dict.Model}Insight, ${dict.Model}Filter>;
64
+
65
+ export const ${dict.model}SummaryDictionary = {
66
+ // * ==================== Summary ==================== * //
67
+ total${dict.Model}: ["Total${dict.Model}", "\uCD1D \uBC30\uB108 \uC218"],
68
+ "desc-total${dict.Model}": ["Total ${dict.model} count in the database", "\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC800\uC7A5\uB41C \uCD1D \uBC30\uB108 \uC218"],
69
+ // * ==================== Summary ==================== * //
70
+ } satisfies SummaryDictionary<${dict.Model}Summary>;
71
+
72
+ const signalDictionary = {
73
+ ...getBaseSignalTrans("${dict.model}" as const),
74
+ // * ==================== Endpoint ==================== * //
75
+ "api-${dict.model}ListInPublic": ["${dict.Model} List In Public", "\uACF5\uAC1C\uB41C ${dict.Model} \uB9AC\uC2A4\uD2B8"],
76
+ "apidesc-${dict.model}ListInPublic": ["Get a list of public ${dict.model}", "\uACF5\uAC1C\uB41C ${dict.Model}\uC758 \uB9AC\uC2A4\uD2B8\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4"],
77
+ "arg-${dict.model}ListInPublic-statuses": ["Statuses", "\uC0C1\uD0DC"],
78
+ "argdesc-${dict.model}ListInPublic-statuses": ["Statuses to filter", "\uD544\uD130\uB9C1\uD560 \uC0C1\uD0DC"],
79
+ "arg-${dict.model}ListInPublic-skip": ["Skip", "\uAC74\uB108\uB6F0\uAE30"],
80
+ "argdesc-${dict.model}ListInPublic-skip": ["Number of items to skip", "\uAC74\uB108\uB6F8 \uC544\uC774\uD15C \uC218"],
81
+ "arg-${dict.model}ListInPublic-limit": ["Limit", "\uC81C\uD55C"],
82
+ "argdesc-${dict.model}ListInPublic-limit": ["Maximum number of items to return", "\uBC18\uD658\uD560 \uCD5C\uB300 \uC544\uC774\uD15C \uC218"],
83
+ "arg-${dict.model}ListInPublic-sort": ["Sort", "\uC815\uB82C"],
84
+ "argdesc-${dict.model}ListInPublic-sort": ["Sort order of the items", "\uC544\uC774\uD15C\uC758 \uC815\uB82C \uC21C\uC11C"],
85
+
86
+ "api-${dict.model}InsightInPublic": ["${dict.Model} Insight In Public", "\uACF5\uAC1C\uB41C ${dict.Model} \uC778\uC0AC\uC774\uD2B8"],
87
+ "apidesc-${dict.model}InsightInPublic": [
88
+ "Get insight data for public ${dict.model}",
89
+ "\uACF5\uAC1C\uB41C ${dict.Model}\uC5D0 \uB300\uD55C \uC778\uC0AC\uC774\uD2B8 \uB370\uC774\uD130\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4",
90
+ ],
91
+ "arg-${dict.model}InsightInPublic-statuses": ["Statuses", "\uC0C1\uD0DC"],
92
+ "argdesc-${dict.model}InsightInPublic-statuses": ["Statuses to filter", "\uD544\uD130\uB9C1\uD560 \uC0C1\uD0DC"],
93
+ // * ==================== Endpoint ==================== * //
94
+ } satisfies SignalDictionary<${dict.Model}Signal, ${dict.Model}>;
95
+
96
+ export const ${dict.model}Dictionary = { ...modelDictionary, ...signalDictionary };
97
+ `;
98
+ }
99
+ module.exports = module.exports.default;
@@ -0,0 +1,54 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__model__.document.ts
20
+ var model_document_exports = {};
21
+ __export(model_document_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(model_document_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ import { beyond, by, Database, into, type SchemaOf } from "@akanjs/document";
28
+
29
+ import { cnst } from "../cnst";
30
+
31
+ @Database.Input(() => cnst.${dict.Model}Input)
32
+ export class ${dict.Model}Input extends by(cnst.${dict.Model}Input) {}
33
+
34
+ @Database.Document(() => cnst.${dict.Model})
35
+ export class ${dict.Model} extends by(cnst.${dict.Model}) {}
36
+
37
+ @Database.Model(() => cnst.${dict.Model})
38
+ export class ${dict.Model}Model extends into(${dict.Model}, cnst.${dict.Model}Cnst) {
39
+ async getSummary(): Promise<cnst.${dict.Model}Summary> {
40
+ return {
41
+ ...(await this.getDefaultSummary()),
42
+ };
43
+ }
44
+ }
45
+
46
+ @Database.Middleware(() => cnst.${dict.Model})
47
+ export class ${dict.Model}Middleware extends beyond(${dict.Model}Model, ${dict.Model}) {
48
+ onSchema(schema: SchemaOf<${dict.Model}Model, ${dict.Model}>) {
49
+ // schema.index({ status: 1 })
50
+ }
51
+ }
52
+ `;
53
+ }
54
+ module.exports = module.exports.default;
@@ -0,0 +1,42 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__model__.service.ts
20
+ var model_service_exports = {};
21
+ __export(model_service_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(model_service_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ import { DbService, Service } from "@akanjs/service";
28
+
29
+ import { cnst } from "../cnst";
30
+ import * as db from "../db";
31
+
32
+ @Service("${dict.Model}Service")
33
+ export class ${dict.Model}Service extends DbService(db.${dict.Model}Db) {
34
+ async summarize(): Promise<cnst.${dict.Model}Summary> {
35
+ return {
36
+ ...(await this.${dict.Model}Model.getSummary()),
37
+ };
38
+ }
39
+ }
40
+ `;
41
+ }
42
+ module.exports = module.exports.default;
@@ -0,0 +1,61 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__model__.signal.ts
20
+ var model_signal_exports = {};
21
+ __export(model_signal_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(model_signal_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ import { Int } from "@akanjs/base";
28
+ import { SortOf } from "@akanjs/constant";
29
+ import { Arg, DbSignal, Mutation, Query, resolve, Signal } from "@akanjs/signal";
30
+
31
+ import { cnst, Srvs } from "../cnst";
32
+
33
+ @Signal(() => cnst.${dict.Model})
34
+ export class ${dict.Model}Signal extends DbSignal(cnst.${dict.model}Cnst, Srvs, {
35
+ guards: { get: Query.Public, cru: Mutation.Public },
36
+ }) {
37
+ // * /////////////////////////////////////
38
+ // * Public Slice
39
+ @Query.Public(() => [cnst.${dict.Model}])
40
+ async ${dict.model}ListInPublic(
41
+ @Arg.Query("statuses", () => [String], { nullable: true }) statuses: cnst.${dict.Model}Status[] | null,
42
+ @Arg.Query("skip", () => Int, { nullable: true }) skip: number | null,
43
+ @Arg.Query("limit", () => Int, { nullable: true }) limit: number | null,
44
+ @Arg.Query("sort", () => String, { nullable: true }) sort: SortOf<cnst.${dict.Model}Filter> | null
45
+ ) {
46
+ const ${dict.models} = await this.${dict.model}Service.listByStatuses(statuses, { skip, limit, sort });
47
+ return resolve<cnst.${dict.Model}[]>(${dict.models});
48
+ }
49
+ @Query.Public(() => cnst.${dict.Model}Insight)
50
+ async ${dict.model}InsightInPublic(
51
+ @Arg.Query("statuses", () => [String], { nullable: true }) statuses: cnst.${dict.Model}Status[] | null
52
+ ) {
53
+ const ${dict.model}Insight = await this.${dict.model}Service.insightByStatuses(statuses);
54
+ return resolve<cnst.${dict.Model}Insight>(${dict.model}Insight);
55
+ }
56
+ // * Public Slice
57
+ // * /////////////////////////////////////
58
+ }
59
+ `;
60
+ }
61
+ module.exports = module.exports.default;
@@ -0,0 +1,40 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__model__.signal.spec.ts
20
+ var model_signal_spec_exports = {};
21
+ __export(model_signal_spec_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(model_signal_spec_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ import * as adminSpec from "@shared/lib/admin/admin.signal.spec";
28
+ import * as userSpec from "@${dict.appName}/lib/user/user.signal.spec";
29
+ import { cnst } from "../cnst";
30
+ import { fetch } from "../fetch";
31
+ import { sampleOf } from "@akanjs/test";
32
+
33
+ export const create${dict.Model} = async (adminAgent: userSpec.AdminAgent, userAgent: userSpec.UserAgent) => {
34
+ const ${dict.model}Input = sampleOf(cnst.${dict.Model}Input);
35
+ const ${dict.model} = await adminAgent.fetch.create${dict.Model}(${dict.model}Input);
36
+ return ${dict.model};
37
+ };
38
+ `;
39
+ }
40
+ module.exports = module.exports.default;
@@ -0,0 +1,49 @@
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
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__model__.signal.test.ts
20
+ var model_signal_test_exports = {};
21
+ __export(model_signal_test_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(model_signal_test_exports);
25
+ function getContent(scanResult, dict) {
26
+ return `
27
+ import * as adminSpec from "@shared/lib/admin/admin.signal.spec";
28
+ import * as userSpec from "@${dict.appName}/lib/user/user.signal.spec";
29
+ import * as ${dict.model}Spec from "@${dict.appName}/lib/${dict.model}/${dict.model}.signal.spec";
30
+ import { cnst } from "../cnst";
31
+ import { fetch } from "../fetch";
32
+
33
+ describe("${dict.Model} Signal", () => {
34
+ describe("${dict.Model} Service", () => {
35
+ let adminAgent: userSpec.AdminAgent;
36
+ let userAgent: userSpec.UserAgent;
37
+ let ${dict.model}: cnst.${dict.Model};
38
+ beforeAll(async () => {
39
+ // adminAgent = await adminSpec.getAdminAgentWithInitialize();
40
+ // userAgent = await userSpec.getUserAgentWithPhone();
41
+ });
42
+ it("can create ${dict.model}", async () => {
43
+ // ${dict.model} = await ${dict.model}Spec.create${dict.Model}(adminAgent, userAgent);
44
+ });
45
+ });
46
+ });
47
+ `;
48
+ }
49
+ module.exports = module.exports.default;