@akanjs/cli 0.9.47 → 0.9.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +63 -52
- package/cjs/src/guidelines/___library/sharedUiStructureDescription.en.md +1 -1
- package/cjs/src/guidelines/databaseModule/databaseModule.instruction.md +9 -21
- package/cjs/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +0 -5
- package/cjs/src/guidelines/framework/framework.instruction.md +10 -12
- package/cjs/src/guidelines/modelConstant/modelConstant.generate.json +0 -7
- package/cjs/src/guidelines/modelConstant/modelConstant.instruction.md +14 -19
- package/cjs/src/guidelines/modelDocument/modelDocument.instruction.md +0 -24
- package/cjs/src/guidelines/modelService/modelService.generate.json +4 -11
- package/cjs/src/guidelines/modelService/modelService.instruction.md +12 -75
- package/cjs/src/guidelines/modelSignal/modelSignal.generate.json +0 -1
- package/cjs/src/guidelines/modelSignal/modelSignal.instruction.md +2 -38
- package/cjs/src/guidelines/modelStore/modelStore.instruction.md +1 -3
- package/cjs/src/guidelines/modelTemplate/modelTemplate.instruction.md +2 -2
- package/cjs/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
- package/cjs/src/guidelines/scalarConstant/scalarConstant.instruction.md +6 -11
- package/cjs/src/templates/__scalar/__model__/__model__.constant.js +5 -6
- package/cjs/src/templates/__scalar/__model__/__model__.dictionary.js +1 -1
- package/cjs/src/templates/app/app/[lang]/layout.js +0 -1
- package/cjs/src/templates/app/app/csr.js +3 -1
- package/cjs/src/templates/app/lib/___appName__/__appName__.dictionary.js +1 -1
- package/cjs/src/templates/app/lib/___appName__/__appName__.service.js +2 -3
- package/cjs/src/templates/app/lib/___appName__/__appName__.signal.js +2 -3
- package/cjs/src/templates/app/lib/___appName__/__appName__.store.js +2 -3
- package/cjs/src/templates/client.js +4 -4
- package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +1 -1
- package/cjs/src/templates/crudPages/[__model__Id]/page.js +1 -1
- package/cjs/src/templates/crudPages/new/page.js +1 -1
- package/cjs/src/templates/crudPages/page.js +1 -1
- package/cjs/src/templates/index.js +0 -1
- package/cjs/src/templates/lib/__lib/lib.constant.js +0 -1
- package/cjs/src/templates/lib/__lib/lib.dictionary.js +7 -4
- package/cjs/src/templates/lib/__lib/lib.document.js +4 -3
- package/cjs/src/templates/lib/__lib/lib.service.js +1 -1
- package/cjs/src/templates/lib/__lib/lib.signal.js +23 -4
- package/cjs/src/templates/lib/__lib/lib.store.js +19 -2
- package/cjs/src/templates/lib/cnst.js +12 -6
- package/cjs/src/templates/lib/db.js +10 -3
- package/cjs/src/templates/lib/dict.js +12 -4
- package/cjs/src/templates/lib/sig.js +20 -9
- package/cjs/src/templates/lib/srv.js +7 -6
- package/cjs/src/templates/lib/st.js +10 -8
- package/cjs/src/templates/lib/useClient.js +39 -0
- package/cjs/src/templates/lib/{usePage.js → useServer.js} +6 -8
- package/cjs/src/templates/libRoot/lib/___libName__/__libName__.service.js +2 -3
- package/cjs/src/templates/libRoot/lib/___libName__/__libName__.store.js +2 -3
- package/cjs/src/templates/module/__model__.constant.js +10 -30
- package/cjs/src/templates/module/__model__.dictionary.js +2 -2
- package/cjs/src/templates/module/__model__.document.js +2 -8
- package/cjs/src/templates/module/__model__.service.js +2 -3
- package/cjs/src/templates/module/__model__.signal.js +4 -5
- package/cjs/src/templates/module/__model__.store.js +3 -4
- package/cjs/src/templates/server.js +4 -4
- package/cjs/src/templates/workspaceRoot/.gitignore.template +5 -3
- package/esm/index.js +63 -52
- package/esm/src/guidelines/___library/sharedUiStructureDescription.en.md +1 -1
- package/esm/src/guidelines/databaseModule/databaseModule.instruction.md +9 -21
- package/esm/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +0 -5
- package/esm/src/guidelines/framework/framework.instruction.md +10 -12
- package/esm/src/guidelines/modelConstant/modelConstant.generate.json +0 -7
- package/esm/src/guidelines/modelConstant/modelConstant.instruction.md +14 -19
- package/esm/src/guidelines/modelDocument/modelDocument.instruction.md +0 -24
- package/esm/src/guidelines/modelService/modelService.generate.json +4 -11
- package/esm/src/guidelines/modelService/modelService.instruction.md +12 -75
- package/esm/src/guidelines/modelSignal/modelSignal.generate.json +0 -1
- package/esm/src/guidelines/modelSignal/modelSignal.instruction.md +2 -38
- package/esm/src/guidelines/modelStore/modelStore.instruction.md +1 -3
- package/esm/src/guidelines/modelTemplate/modelTemplate.instruction.md +2 -2
- package/esm/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
- package/esm/src/guidelines/scalarConstant/scalarConstant.instruction.md +6 -11
- package/esm/src/templates/__scalar/__model__/__model__.constant.js +5 -6
- package/esm/src/templates/__scalar/__model__/__model__.dictionary.js +1 -1
- package/esm/src/templates/app/app/[lang]/layout.js +0 -1
- package/esm/src/templates/app/app/csr.js +3 -1
- package/esm/src/templates/app/lib/___appName__/__appName__.dictionary.js +1 -1
- package/esm/src/templates/app/lib/___appName__/__appName__.service.js +2 -3
- package/esm/src/templates/app/lib/___appName__/__appName__.signal.js +2 -3
- package/esm/src/templates/app/lib/___appName__/__appName__.store.js +2 -3
- package/esm/src/templates/client.js +4 -4
- package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +1 -1
- package/esm/src/templates/crudPages/[__model__Id]/page.js +1 -1
- package/esm/src/templates/crudPages/new/page.js +1 -1
- package/esm/src/templates/crudPages/page.js +1 -1
- package/esm/src/templates/index.js +0 -1
- package/esm/src/templates/lib/__lib/lib.constant.js +0 -1
- package/esm/src/templates/lib/__lib/lib.dictionary.js +7 -4
- package/esm/src/templates/lib/__lib/lib.document.js +4 -3
- package/esm/src/templates/lib/__lib/lib.service.js +1 -1
- package/esm/src/templates/lib/__lib/lib.signal.js +23 -4
- package/esm/src/templates/lib/__lib/lib.store.js +19 -2
- package/esm/src/templates/lib/cnst.js +12 -6
- package/esm/src/templates/lib/db.js +10 -3
- package/esm/src/templates/lib/dict.js +12 -4
- package/esm/src/templates/lib/sig.js +20 -9
- package/esm/src/templates/lib/srv.js +7 -6
- package/esm/src/templates/lib/st.js +10 -8
- package/esm/src/templates/lib/useClient.js +19 -0
- package/esm/src/templates/lib/useServer.js +11 -0
- package/esm/src/templates/libRoot/lib/___libName__/__libName__.service.js +2 -3
- package/esm/src/templates/libRoot/lib/___libName__/__libName__.store.js +2 -3
- package/esm/src/templates/module/__model__.constant.js +10 -30
- package/esm/src/templates/module/__model__.dictionary.js +2 -2
- package/esm/src/templates/module/__model__.document.js +2 -8
- package/esm/src/templates/module/__model__.service.js +2 -3
- package/esm/src/templates/module/__model__.signal.js +4 -5
- package/esm/src/templates/module/__model__.store.js +3 -4
- package/esm/src/templates/server.js +4 -4
- package/esm/src/templates/workspaceRoot/.gitignore.template +5 -3
- package/package.json +1 -1
- package/src/application/application.command.d.ts +7 -7
- package/src/application/application.script.d.ts +3 -1
- package/src/guidelines/___library/sharedUiStructureDescription.en.md +1 -1
- package/src/guidelines/databaseModule/databaseModule.instruction.md +9 -21
- package/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +0 -5
- package/src/guidelines/framework/framework.instruction.md +10 -12
- package/src/guidelines/modelConstant/modelConstant.instruction.md +14 -19
- package/src/guidelines/modelDocument/modelDocument.instruction.md +0 -24
- package/src/guidelines/modelService/modelService.instruction.md +12 -75
- package/src/guidelines/modelSignal/modelSignal.instruction.md +2 -38
- package/src/guidelines/modelStore/modelStore.instruction.md +1 -3
- package/src/guidelines/modelTemplate/modelTemplate.instruction.md +2 -2
- package/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
- package/src/guidelines/scalarConstant/scalarConstant.instruction.md +6 -11
- package/src/templates/lib/useServer.d.ts +4 -0
- package/src/workspace/workspace.command.d.ts +1 -0
- package/src/workspace/workspace.script.d.ts +1 -0
- package/esm/src/templates/lib/usePage.js +0 -13
- /package/src/templates/lib/{usePage.d.ts → useClient.d.ts} +0 -0
|
@@ -14,14 +14,17 @@ function getContent(scanInfo, dict = {}) {
|
|
|
14
14
|
).filter(([_, libNames]) => libNames.length > 0)
|
|
15
15
|
);
|
|
16
16
|
return `
|
|
17
|
-
${libs.length === 0 ? `import
|
|
18
|
-
${libs.map((lib) => `import {
|
|
17
|
+
${libs.length === 0 ? `import * as base from "@akanjs/dictionary";` : ""}
|
|
18
|
+
${libs.map((lib) => `import { dict as ${lib} } from "@${lib}/server";`).join("\n")}
|
|
19
19
|
|
|
20
20
|
${Object.entries(extendedModels).map(([modelName, extendedModels2]) => {
|
|
21
|
-
return `export const ${modelName} =
|
|
21
|
+
return `export const ${modelName} = {
|
|
22
|
+
models: Object.assign({}, ${extendedModels2.map((libName) => `${libName}.${modelName}.modelDictionary`).join(", ")}),
|
|
23
|
+
signals: Object.assign({}, ${extendedModels2.map((libName) => `${libName}.${modelName}.signalDictionary`).join(", ")}),
|
|
24
|
+
};`;
|
|
22
25
|
}).join("\n")}
|
|
23
26
|
|
|
24
|
-
export const allLibs = [${libs.length === 0 ? "base" : libs.join(", ")}] as const;
|
|
27
|
+
export const allLibs = [${libs.length === 0 ? "base.dictionary" : libs.map((lib) => `${lib}.dictionary`).join(", ")}] as const;
|
|
25
28
|
`;
|
|
26
29
|
}
|
|
27
30
|
export {
|
|
@@ -18,9 +18,10 @@ ${libs.map((lib) => `export { db as ${lib} } from "@${lib}/server";`).join("\n")
|
|
|
18
18
|
|
|
19
19
|
${Object.entries(extendedModels).map(
|
|
20
20
|
([modelName, extendedModels2]) => `export const ${modelName} = {
|
|
21
|
-
inputs: [${extendedModels2.map((libName) => `${libName}.${modelName}
|
|
22
|
-
docs: [${extendedModels2.map((libName) => `${libName}.${modelName}
|
|
23
|
-
models: [${extendedModels2.map((libName) => `${libName}.${modelName}
|
|
21
|
+
inputs: [${extendedModels2.map((libName) => `${libName}.${modelName}.Input`).join(", ")}] as const,
|
|
22
|
+
docs: [${extendedModels2.map((libName) => `${libName}.${modelName}.Doc`).join(", ")}] as const,
|
|
23
|
+
models: [${extendedModels2.map((libName) => `${libName}.${modelName}.Model`).join(", ")}] as const,
|
|
24
|
+
filters: [${extendedModels2.map((libName) => `${libName}.${modelName}.Filter`).join(", ")}] as const,
|
|
24
25
|
}`
|
|
25
26
|
).join("\n")}
|
|
26
27
|
export const allLibs = [${libs.join(", ")}] as const;
|
|
@@ -14,7 +14,7 @@ function getContent(scanInfo, dict = {}) {
|
|
|
14
14
|
).filter(([_, libNames]) => libNames.length > 0)
|
|
15
15
|
);
|
|
16
16
|
return `
|
|
17
|
-
${libs.length ? `import {
|
|
17
|
+
${libs.length ? `import { serve, Srv } from "@akanjs/service";` : `import type { BackendEnv } from "@akanjs/base";`}
|
|
18
18
|
${libs.map((lib) => `import { option as ${lib}Option, srv as ${lib} } from "@${lib}/server";`).join("\n")}
|
|
19
19
|
|
|
20
20
|
import * as db from "../db";
|
|
@@ -1,15 +1,34 @@
|
|
|
1
1
|
// pkgs/@akanjs/cli/src/templates/lib/__lib/lib.signal.ts
|
|
2
|
+
var capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
2
3
|
function getContent(scanInfo, dict = {}) {
|
|
3
4
|
if (!scanInfo)
|
|
4
5
|
return null;
|
|
5
6
|
const libs = scanInfo.getLibs();
|
|
6
7
|
const rootLib = scanInfo.akanConfig.rootLib;
|
|
8
|
+
const libInfos = [...scanInfo.getLibInfos().values()];
|
|
9
|
+
const extendedModels = Object.fromEntries(
|
|
10
|
+
[...scanInfo.file.signal.databases].map(
|
|
11
|
+
(modelName) => [
|
|
12
|
+
modelName,
|
|
13
|
+
libInfos.filter((libInfo) => libInfo.file.signal.databases.has(modelName)).map((libInfo) => libInfo.name)
|
|
14
|
+
]
|
|
15
|
+
).filter(([_, libNames]) => libNames.length > 0)
|
|
16
|
+
);
|
|
7
17
|
return `
|
|
8
|
-
${libs.length > 0 ? "" : `import { fetch as
|
|
9
|
-
${libs.map((lib) => `import {
|
|
18
|
+
${libs.length > 0 ? "" : `import { fetch as baseFetch } from "@akanjs/signal";`}
|
|
19
|
+
${libs.map((lib) => `import { sig as ${lib} } from "@${lib}/server";`).join("\n")}
|
|
10
20
|
|
|
11
|
-
|
|
12
|
-
|
|
21
|
+
${Object.entries(extendedModels).map(([modelName, extendedModels2]) => {
|
|
22
|
+
const ModelName = capitalize(modelName);
|
|
23
|
+
return `export const ${modelName} = {
|
|
24
|
+
internals: [${extendedModels2.map((libName) => `${libName}.${ModelName}Internal`).join(", ")}] as const,
|
|
25
|
+
slices: [${extendedModels2.map((libName) => `${libName}.${ModelName}Slice`).join(", ")}] as const,
|
|
26
|
+
endpoints: [${extendedModels2.map((libName) => `${libName}.${ModelName}Endpoint`).join(", ")}] as const,
|
|
27
|
+
}`;
|
|
28
|
+
}).join("\n")}
|
|
29
|
+
|
|
30
|
+
export const root = ${libs.length ? rootLib ?? libs[0] : "baseFetch"};
|
|
31
|
+
export const libFetches = [${libs.length ? libs.map((lib) => `${lib}.fetch`).join(", ") : "baseFetch"}] as const;
|
|
13
32
|
`;
|
|
14
33
|
}
|
|
15
34
|
export {
|
|
@@ -1,13 +1,30 @@
|
|
|
1
1
|
// pkgs/@akanjs/cli/src/templates/lib/__lib/lib.store.ts
|
|
2
|
+
var capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
2
3
|
function getContent(scanInfo, dict = {}) {
|
|
3
4
|
if (!scanInfo)
|
|
4
5
|
return null;
|
|
5
6
|
const libs = scanInfo.getLibs();
|
|
7
|
+
const libInfos = [...scanInfo.getLibInfos().values()];
|
|
8
|
+
const extendedModels = Object.fromEntries(
|
|
9
|
+
[...scanInfo.file.store.databases].map(
|
|
10
|
+
(modelName) => [
|
|
11
|
+
modelName,
|
|
12
|
+
libInfos.filter((libInfo) => libInfo.file.store.databases.has(modelName)).map((libInfo) => libInfo.name)
|
|
13
|
+
]
|
|
14
|
+
).filter(([_, libNames]) => libNames.length > 0)
|
|
15
|
+
);
|
|
6
16
|
return `
|
|
7
|
-
import
|
|
17
|
+
import * as base from "@akanjs/store";
|
|
8
18
|
${libs.map((lib) => `import { store as ${lib} } from "@${lib}/client";`).join("\n")}
|
|
9
19
|
|
|
10
|
-
|
|
20
|
+
${Object.entries(extendedModels).map(([modelName, extendedModels2]) => {
|
|
21
|
+
const ModelName = capitalize(modelName);
|
|
22
|
+
return `export const ${modelName} = {
|
|
23
|
+
stores: [${extendedModels2.map((libName) => `${libName}.${ModelName}Store`).join(", ")}] as const,
|
|
24
|
+
}`;
|
|
25
|
+
}).join("\n")}
|
|
26
|
+
|
|
27
|
+
export const libStores = [${[...libs, "base"].map((lib) => `${lib}.RootStore`).join(", ")}] as const;
|
|
11
28
|
`;
|
|
12
29
|
}
|
|
13
30
|
export {
|
|
@@ -5,11 +5,19 @@ function getContent(scanInfo, dict = {}) {
|
|
|
5
5
|
return null;
|
|
6
6
|
const databaseModules = scanInfo.getDatabaseModules();
|
|
7
7
|
const scalarModules = scanInfo.getScalarModules();
|
|
8
|
+
const libInfos = scanInfo.getLibInfos();
|
|
9
|
+
const extendedModelMap = new Map(
|
|
10
|
+
[...scanInfo.file.constant.databases].map(
|
|
11
|
+
(modelName) => [
|
|
12
|
+
modelName,
|
|
13
|
+
[...libInfos.values()].filter((libInfo) => libInfo.file.constant.databases.has(modelName)).map((libInfo) => libInfo.name)
|
|
14
|
+
]
|
|
15
|
+
).filter(([_, libNames]) => libNames.length > 0)
|
|
16
|
+
);
|
|
8
17
|
return `
|
|
9
|
-
import type { AllSrvs } from "./srv";
|
|
10
18
|
import { cnstOf, scalarCnstOf } from "@akanjs/constant";
|
|
11
19
|
|
|
12
|
-
${databaseModules.map((module) => `import * as ${module} from "./${module}/${module}.constant";`).join("\n")}
|
|
20
|
+
${databaseModules.map((module) => `import * as ${module}Cnst from "./${module}/${module}.constant";`).join("\n")}
|
|
13
21
|
${scalarModules.map((module) => `import { ${capitalize(module)} } from "./__scalar/${module}/${module}.constant";`).join("\n")}
|
|
14
22
|
|
|
15
23
|
export * from "./__lib/lib.constant";
|
|
@@ -18,11 +26,9 @@ ${scalarModules.map((module) => `export * from "./__scalar/${module}/${module}.c
|
|
|
18
26
|
|
|
19
27
|
${databaseModules.map((module) => {
|
|
20
28
|
const names = { Module: capitalize(module) };
|
|
21
|
-
return `export const ${module}
|
|
29
|
+
return `export const ${module} = cnstOf("${module}" as const, ${module}Cnst.${names.Module}Input, ${module}Cnst.${names.Module}, ${module}Cnst.Light${names.Module}, ${module}Cnst.${names.Module}Insight${extendedModelMap.has(module) ? ", { overwrite: true }" : ""});`;
|
|
22
30
|
}).join("\n")}
|
|
23
|
-
${scalarModules.map((module) => `export const ${module}
|
|
24
|
-
|
|
25
|
-
export const Srvs = {} as AllSrvs;
|
|
31
|
+
${scalarModules.map((module) => `export const ${module} = scalarCnstOf("${module}" as const, ${capitalize(module)});`).join("\n")}
|
|
26
32
|
`;
|
|
27
33
|
}
|
|
28
34
|
export {
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
// pkgs/@akanjs/cli/src/templates/lib/db.ts
|
|
2
|
+
var capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
2
3
|
function getContent(scanInfo, dict = {}) {
|
|
3
4
|
if (!scanInfo)
|
|
4
5
|
return null;
|
|
5
6
|
const databaseModules = scanInfo.getDatabaseModules();
|
|
6
7
|
const scalarModules = scanInfo.getScalarModules();
|
|
7
8
|
return `
|
|
8
|
-
import { dbOf } from "@akanjs/document";
|
|
9
|
+
import { by, dbOf, scalarDbOf } from "@akanjs/document";
|
|
9
10
|
|
|
10
11
|
import * as cnst from "./cnst";
|
|
11
12
|
|
|
12
|
-
${databaseModules.map((module) => `import * as ${module} from "./${module}/${module}.document";`).join("\n")}
|
|
13
|
+
${databaseModules.map((module) => `import * as ${module}Db from "./${module}/${module}.document";`).join("\n")}
|
|
14
|
+
${scalarModules.map((module) => `import { ${capitalize(module)} } from "./__scalar/${module}/${module}.document";`).join("\n")}
|
|
15
|
+
|
|
16
|
+
${databaseModules.map((module) => `class ${capitalize(module)}Input extends by(cnst.${capitalize(module)}Input) {}`).join("\n")}
|
|
17
|
+
export type { ${databaseModules.map((module) => `${capitalize(module)}Input`).join(", ")} };
|
|
13
18
|
|
|
14
19
|
export type * from "./__lib/lib.document";
|
|
20
|
+
|
|
15
21
|
${databaseModules.map((module) => `export type * from "./${module}/${module}.document";`).join("\n")}
|
|
16
22
|
${scalarModules.map((module) => `export type * from "./__scalar/${module}/${module}.document";`).join("\n")}
|
|
17
23
|
|
|
18
24
|
${databaseModules.map((module) => {
|
|
19
25
|
const names = { Module: module.charAt(0).toUpperCase() + module.slice(1) };
|
|
20
|
-
return `export const ${module}
|
|
26
|
+
return `export const ${module} = dbOf("${module}" as const, ${names.Module}Input, ${module}Db.${names.Module}, ${module}Db.${names.Module}Model, ${module}Db.${names.Module}Middleware, cnst.${names.Module}, cnst.${names.Module}Insight, ${module}Db.${names.Module}Filter);`;
|
|
21
27
|
}).join("\n")}
|
|
28
|
+
${scalarModules.map((module) => `export const ${module} = scalarDbOf("${module}" as const, ${capitalize(module)});`).join("\n")}
|
|
22
29
|
`;
|
|
23
30
|
}
|
|
24
31
|
export {
|
|
@@ -9,12 +9,20 @@ function getContent(scanInfo, dict = {}) {
|
|
|
9
9
|
import { makeDictionary, makeTrans } from "@akanjs/dictionary";
|
|
10
10
|
|
|
11
11
|
import { allLibs } from "./__lib/lib.dictionary";
|
|
12
|
-
${databaseModules.map((module) => `import
|
|
13
|
-
${serviceModules.map((module) => `import
|
|
14
|
-
${scalarModules.map((module) => `import
|
|
12
|
+
${databaseModules.map((module) => `import * as ${module} from "./${module}/${module}.dictionary";`).join("\n")}
|
|
13
|
+
${serviceModules.map((module) => `import * as ${module} from "./_${module}/${module}.dictionary";`).join("\n")}
|
|
14
|
+
${scalarModules.map((module) => `import * as ${module} from "./__scalar/${module}/${module}.dictionary";`).join("\n")}
|
|
15
|
+
|
|
16
|
+
${databaseModules.map((module) => `export * as ${module} from "./${module}/${module}.dictionary";`).join("\n")}
|
|
17
|
+
${serviceModules.map((module) => `export * as ${module} from "./_${module}/${module}.dictionary";`).join("\n")}
|
|
18
|
+
${scalarModules.map((module) => `export * as ${module} from "./__scalar/${module}/${module}.dictionary";`).join("\n")}
|
|
15
19
|
|
|
16
20
|
export const dictionary = makeDictionary(...allLibs, {
|
|
17
|
-
${[
|
|
21
|
+
${[
|
|
22
|
+
...databaseModules.map((module) => `${module}: { ...${module}.modelDictionary, ...${module}.signalDictionary }`),
|
|
23
|
+
...scalarModules.map((module) => `${module}: ${module}.dictionary`),
|
|
24
|
+
...serviceModules.map((module) => `${module}: ${module}.dictionary`)
|
|
25
|
+
].join(",\n ")}
|
|
18
26
|
} as const);
|
|
19
27
|
|
|
20
28
|
export const { Revert, translate, msg } = makeTrans(dictionary);
|
|
@@ -7,24 +7,35 @@ function getContent(scanInfo, dict = {}) {
|
|
|
7
7
|
const scalarConstantModules = [...scanInfo.scalar.entries()].filter(([_, files]) => files.has("constant")).map(([module]) => module);
|
|
8
8
|
const serviceModules = [...scanInfo.service.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => module);
|
|
9
9
|
return `
|
|
10
|
-
import { fetchOf, gqlOf, makeFetch,
|
|
10
|
+
import { fetchOf, gqlOf, makeFetch, mergeSignals, signalInfo } from "@akanjs/signal";
|
|
11
11
|
|
|
12
12
|
import { root, libFetches } from "./__lib/lib.signal";
|
|
13
13
|
import * as cnst from "./cnst";
|
|
14
|
+
import * as db from "./db";
|
|
14
15
|
|
|
15
|
-
${[...scanInfo.database.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => `import
|
|
16
|
-
${[...scanInfo.service.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => `import
|
|
16
|
+
${[...scanInfo.database.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => `import * as ${module}Sig from "./${module}/${module}.signal";`).join("\n")}
|
|
17
|
+
${[...scanInfo.service.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => `import * as ${module}Sig from "./_${module}/${module}.signal";`).join("\n")}
|
|
17
18
|
|
|
18
|
-
${[...scanInfo.database.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => `export
|
|
19
|
-
${[...scanInfo.service.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => `export
|
|
19
|
+
${[...scanInfo.database.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => `export * from "./${module}/${module}.signal";`).join("\n")}
|
|
20
|
+
${[...scanInfo.service.entries()].filter(([_, files]) => files.has("signal")).map(([module]) => `export * from "./_${module}/${module}.signal";`).join("\n")}
|
|
20
21
|
|
|
21
|
-
${
|
|
22
|
+
${[...scanInfo.database.entries()].filter(([_, files]) => files.has("signal")).map(
|
|
23
|
+
([module]) => `export class ${capitalize(module)}Signal extends mergeSignals(${module}Sig.${capitalize(module)}Endpoint, ${module}Sig.${capitalize(module)}Internal, ${module}Sig.${capitalize(module)}Slice) {}`
|
|
24
|
+
).join("\n")}
|
|
25
|
+
${[...scanInfo.service.entries()].filter(([_, files]) => files.has("signal")).map(
|
|
26
|
+
([module]) => `export const ${capitalize(module)}Signal = mergeSignals(${module}Sig.${capitalize(module)}Endpoint, ${module}Sig.${capitalize(module)}Internal);`
|
|
27
|
+
).join("\n")}
|
|
28
|
+
|
|
29
|
+
const signals = signalInfo.registerSignals(
|
|
30
|
+
${[...databaseModules, ...serviceModules].map((module) => ` ${capitalize(module)}Signal,`).join("\n")}
|
|
31
|
+
);
|
|
32
|
+
export const serializedSignals = signals.map((signal) => signalInfo.serialize(signal));
|
|
33
|
+
|
|
34
|
+
${databaseModules.map((module) => `export const ${module} = gqlOf(cnst.${module}, db.${module}.Filter, ${capitalize(module)}Signal${scanInfo.name !== "shared" && ["user", "setting", "summary"].includes(module) ? `, { overwrite: root.${module} }` : ""});`).join("\n")}
|
|
22
35
|
|
|
23
36
|
export const fetch = makeFetch(...libFetches, {
|
|
24
|
-
${databaseModules.map((module) => `...${module}
|
|
25
|
-
${scalarConstantModules.map((module) => `...scalarUtilOf(cnst.${module}Cnst),`).join("\n")}
|
|
37
|
+
${databaseModules.map((module) => `...${module},`).join("\n")}
|
|
26
38
|
${serviceModules.map((module) => `...fetchOf(${capitalize(module)}Signal),`).join("\n")}
|
|
27
|
-
${databaseModules.map((module) => `${module}Gql,`).join("\n")}
|
|
28
39
|
});
|
|
29
40
|
`;
|
|
30
41
|
}
|
|
@@ -6,8 +6,9 @@ function getContent(scanInfo, dict = {}) {
|
|
|
6
6
|
const databaseModules = [...scanInfo.database.entries()].filter(([_, files]) => files.has("service")).map(([module]) => module);
|
|
7
7
|
const serviceModules = [...scanInfo.service.entries()].filter(([_, files]) => files.has("service")).map(([module]) => module);
|
|
8
8
|
return `
|
|
9
|
-
import { GetServices } from "@akanjs/service";
|
|
9
|
+
import { GetServices, ServiceModule, serviceInfo } from "@akanjs/service";
|
|
10
10
|
|
|
11
|
+
import * as cnst from "./cnst";
|
|
11
12
|
import { libAllSrvs } from "./__lib/lib.service";
|
|
12
13
|
${databaseModules.map((module) => `import { ${capitalize(module)}Service } from "./${module}/${module}.service";`).join("\n")}
|
|
13
14
|
${serviceModules.map((module) => `import { ${capitalize(module)}Service } from "./_${module}/${module}.service";`).join("\n")}
|
|
@@ -16,12 +17,12 @@ export * from "./__lib/lib.service";
|
|
|
16
17
|
${databaseModules.map((module) => `export { ${capitalize(module)}Service } from "./${module}/${module}.service";`).join("\n")}
|
|
17
18
|
${serviceModules.map((module) => `export { ${capitalize(module)}Service } from "./_${module}/${module}.service";`).join("\n")}
|
|
18
19
|
|
|
19
|
-
export const
|
|
20
|
-
...libAllSrvs,
|
|
20
|
+
export const srvs = serviceInfo.registerServices({
|
|
21
21
|
${[...databaseModules, ...serviceModules].map((module) => `${capitalize(module)}Service`).join(",\n ")}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export
|
|
22
|
+
});
|
|
23
|
+
export const allSrvs = { ...libAllSrvs, ...srvs } as const;
|
|
24
|
+
${databaseModules.map((module) => `export const ${module} = new ServiceModule("${module}" as const, { ${capitalize(module)}Service }, cnst.${module});`).join("\n")}
|
|
25
|
+
${serviceModules.map((module) => `export const ${module} = new ServiceModule("${module}" as const, { ${capitalize(module)}Service });`).join("\n")}
|
|
25
26
|
`;
|
|
26
27
|
}
|
|
27
28
|
export {
|
|
@@ -7,20 +7,22 @@ function getContent(scanInfo, dict = {}) {
|
|
|
7
7
|
const serviceModules = [...scanInfo.service.entries()].filter(([_, fileTypes]) => fileTypes.has("store")).map(([key]) => key);
|
|
8
8
|
return `
|
|
9
9
|
"use client";
|
|
10
|
-
import {
|
|
11
|
-
import { MixStore,
|
|
10
|
+
import { st as baseSt, StoreOf } from "@akanjs/store";
|
|
11
|
+
import { MixStore, storeInfo } from "@akanjs/store";
|
|
12
12
|
|
|
13
13
|
import { libStores } from "./__lib/lib.store";
|
|
14
14
|
${databaseModules.map((module) => `import { ${capitalize(module)}Store } from "./${module}/${module}.store";`).join("\n")}
|
|
15
15
|
${serviceModules.map((module) => `import { ${capitalize(module)}Store } from "./_${module}/${module}.store";`).join("\n")}
|
|
16
16
|
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
) {}
|
|
17
|
+
${databaseModules.map((module) => `export { ${capitalize(module)}Store } from "./${module}/${module}.store";`).join("\n")}
|
|
18
|
+
${serviceModules.map((module) => `export { ${capitalize(module)}Store } from "./_${module}/${module}.store";`).join("\n")}
|
|
19
|
+
|
|
20
|
+
${databaseModules.map((module) => `export const ${module} = storeInfo.register("${module}" as const, ${capitalize(module)}Store);`).join("\n")}
|
|
21
|
+
${serviceModules.map((module) => `export const ${module} = storeInfo.register("${module}" as const, ${capitalize(module)}Store);`).join("\n")}
|
|
22
|
+
|
|
23
|
+
export class RootStore extends MixStore(...libStores, ${[...databaseModules, ...serviceModules].join(",\n ")}) {}
|
|
21
24
|
|
|
22
|
-
export const
|
|
23
|
-
export const st = makeStore(baseSt, store${scanInfo.type === "lib" ? `, { library: true }` : ""});
|
|
25
|
+
export const st = baseSt as StoreOf<RootStore>;
|
|
24
26
|
`;
|
|
25
27
|
}
|
|
26
28
|
export {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// pkgs/@akanjs/cli/src/templates/lib/useClient.ts
|
|
2
|
+
function getContent(scanInfo, dict = {}) {
|
|
3
|
+
return `
|
|
4
|
+
import { makePageProto } from "@akanjs/client";
|
|
5
|
+
import type * as signal from "./sig";
|
|
6
|
+
import * as cnst from "./cnst";
|
|
7
|
+
|
|
8
|
+
import type { dictionary } from "./dict";
|
|
9
|
+
|
|
10
|
+
export const { msg, Revert, usePage, sig, fetch, registerClient } = makePageProto<
|
|
11
|
+
typeof dictionary,
|
|
12
|
+
typeof signal.fetch,
|
|
13
|
+
typeof signal
|
|
14
|
+
>(cnst);
|
|
15
|
+
`;
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
getContent as default
|
|
19
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// pkgs/@akanjs/cli/src/templates/lib/useServer.ts
|
|
2
|
+
function getContent(scanInfo, dict = {}) {
|
|
3
|
+
return `
|
|
4
|
+
import type { fetch as sigFetch } from "./sig";
|
|
5
|
+
|
|
6
|
+
export const fetch = global.fetch as unknown as typeof sigFetch;
|
|
7
|
+
`;
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
getContent as default
|
|
11
|
+
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// pkgs/@akanjs/cli/src/templates/libRoot/lib/___libName__/__libName__.service.ts
|
|
2
2
|
function getContent(scanInfo, dict) {
|
|
3
3
|
return `
|
|
4
|
-
import {
|
|
4
|
+
import { serve } from "@akanjs/service";
|
|
5
5
|
|
|
6
6
|
// import type * as srv from "../srv";
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
export class ${dict.LibName}Service extends LogService("${dict.libName}Service") {}
|
|
8
|
+
export class ${dict.LibName}Service extends serve("${dict.libName}" as const, { serverMode: "batch" }) {}
|
|
10
9
|
`;
|
|
11
10
|
}
|
|
12
11
|
export {
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
// pkgs/@akanjs/cli/src/templates/libRoot/lib/___libName__/__libName__.store.ts
|
|
2
2
|
function getContent(scanInfo, dict) {
|
|
3
3
|
return `
|
|
4
|
-
import {
|
|
4
|
+
import { store } from "@akanjs/store";
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
export class ${dict.LibName}Store extends scalarStateOf("${dict.libName}" as const, {
|
|
6
|
+
export class ${dict.LibName}Store extends store("${dict.libName}" as const, {
|
|
8
7
|
// state
|
|
9
8
|
}) {
|
|
10
9
|
// action
|
|
@@ -2,44 +2,24 @@
|
|
|
2
2
|
function getContent(scanInfo, dict) {
|
|
3
3
|
return `
|
|
4
4
|
import { enumOf, Int } from "@akanjs/base";
|
|
5
|
-
import {
|
|
5
|
+
import { via } from "@akanjs/constant";
|
|
6
6
|
|
|
7
7
|
export const ${dict.Model}Status = enumOf(["active"] as const);
|
|
8
8
|
export type ${dict.Model}Status = enumOf<typeof ${dict.Model}Status>;
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
field: string | null;
|
|
14
|
-
}
|
|
10
|
+
export class ${dict.Model}Input extends via((field) => ({
|
|
11
|
+
field: field(String).optional(),
|
|
12
|
+
})) {}
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
status: ${dict.Model}Status;
|
|
20
|
-
}
|
|
14
|
+
export class ${dict.Model}Object extends via(${dict.Model}Input, (field) => ({
|
|
15
|
+
status: field(${dict.Model}Status, { default: "active" }),
|
|
16
|
+
})) {}
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
export class Light${dict.Model} extends via(${dict.Model}Object, ["status"] as const) {}
|
|
18
|
+
export class Light${dict.Model} extends via(${dict.Model}Object, ["status"] as const, (resolve) => ({})) {}
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
export class ${dict.Model} extends via(${dict.Model}Object, Light${dict.Model}) {}
|
|
20
|
+
export class ${dict.Model} extends via(${dict.Model}Object, Light${dict.Model}, (resolve) => ({})) {}
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
export class ${dict.Model}Insight {
|
|
30
|
-
@Field.Prop(() => Int, { default: 0, accumulate: { $sum: 1 } })
|
|
31
|
-
count: number;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@Model.Filter("${dict.Model}Filter")
|
|
35
|
-
export class ${dict.Model}Filter extends sortOf(${dict.Model}, {}) {
|
|
36
|
-
@Filter.Mongo()
|
|
37
|
-
inStatus(
|
|
38
|
-
@Filter.Arg("status", () => String) status: ${dict.Model}Status,
|
|
39
|
-
) {
|
|
40
|
-
return { status };
|
|
41
|
-
}
|
|
42
|
-
}
|
|
22
|
+
export class ${dict.Model}Insight extends via(${dict.Model}, (field) => ({})) {}
|
|
43
23
|
`;
|
|
44
24
|
}
|
|
45
25
|
export {
|
|
@@ -6,7 +6,7 @@ import { baseTrans, getBaseSignalTrans, ModelDictionary, SignalDictionary } from
|
|
|
6
6
|
import type { ${dict.Model}, ${dict.Model}Filter, ${dict.Model}Insight, ${dict.Model}Summary } from "./${dict.model}.constant";
|
|
7
7
|
import type { ${dict.Model}Signal } from "./${dict.model}.signal";
|
|
8
8
|
|
|
9
|
-
const modelDictionary = {
|
|
9
|
+
export const modelDictionary = {
|
|
10
10
|
...baseTrans,
|
|
11
11
|
modelName: ["${dict.Model}", "${dict.Model}"],
|
|
12
12
|
modelDesc: [
|
|
@@ -37,7 +37,7 @@ const modelDictionary = {
|
|
|
37
37
|
// * ==================== Etc ==================== * //
|
|
38
38
|
} satisfies ModelDictionary<${dict.Model}, ${dict.Model}Insight, ${dict.Model}Filter>;
|
|
39
39
|
|
|
40
|
-
const signalDictionary = {
|
|
40
|
+
export const signalDictionary = {
|
|
41
41
|
...getBaseSignalTrans("${dict.model}" as const),
|
|
42
42
|
// * ==================== Endpoint ==================== * //
|
|
43
43
|
"api-${dict.model}ListInPublic": ["${dict.Model} List In Public", "\uACF5\uAC1C\uB41C ${dict.Model} \uB9AC\uC2A4\uD2B8"],
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
// pkgs/@akanjs/cli/src/templates/module/__model__.document.ts
|
|
2
2
|
function getContent(scanInfo, dict) {
|
|
3
3
|
return `
|
|
4
|
-
import { beyond, by,
|
|
4
|
+
import { beyond, by, into, type SchemaOf } from "@akanjs/document";
|
|
5
5
|
|
|
6
6
|
import * as cnst from "../cnst";
|
|
7
7
|
|
|
8
|
-
@Database.Input(() => cnst.${dict.Model}Input)
|
|
9
|
-
export class ${dict.Model}Input extends by(cnst.${dict.Model}Input) {}
|
|
10
|
-
|
|
11
|
-
@Database.Document(() => cnst.${dict.Model})
|
|
12
8
|
export class ${dict.Model} extends by(cnst.${dict.Model}) {}
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
export class ${dict.Model}Model extends into(${dict.Model}, cnst.${dict.model}Cnst) {}
|
|
10
|
+
export class ${dict.Model}Model extends into(${dict.Model}, cnst.${dict.model}) {}
|
|
16
11
|
|
|
17
|
-
@Database.Middleware(() => cnst.${dict.Model})
|
|
18
12
|
export class ${dict.Model}Middleware extends beyond(${dict.Model}Model, ${dict.Model}) {
|
|
19
13
|
onSchema(schema: SchemaOf<${dict.Model}Model, ${dict.Model}>) {
|
|
20
14
|
// schema.index({ status: 1 })
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
// pkgs/@akanjs/cli/src/templates/module/__model__.service.ts
|
|
2
2
|
function getContent(scanInfo, dict) {
|
|
3
3
|
return `
|
|
4
|
-
import {
|
|
4
|
+
import { serve } from "@akanjs/service";
|
|
5
5
|
|
|
6
6
|
import * as cnst from "../cnst";
|
|
7
7
|
import * as db from "../db";
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
export class ${dict.Model}Service extends DbService(db.${dict.model}Db) {}
|
|
9
|
+
export class ${dict.Model}Service extends serve(db.${dict.model}) {}
|
|
11
10
|
`;
|
|
12
11
|
}
|
|
13
12
|
export {
|
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
function getContent(scanInfo, dict) {
|
|
3
3
|
return `
|
|
4
4
|
import { Int } from "@akanjs/base";
|
|
5
|
-
import { SortOf } from "@akanjs/
|
|
6
|
-
import { Arg,
|
|
5
|
+
import type { SortOf } from "@akanjs/document";
|
|
6
|
+
import { Arg, signal, Mutation, Query, resolve } from "@akanjs/signal";
|
|
7
7
|
|
|
8
8
|
import * as cnst from "../cnst";
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
guards: { get: Query.Public, cru: Mutation.Public },
|
|
10
|
+
export class ${dict.Model}Signal extends signal(cnst.${dict.model}, cnst.Srvs, {
|
|
11
|
+
guards: { get: "Public", cru: "Public },
|
|
13
12
|
}) {
|
|
14
13
|
// * /////////////////////////////////////
|
|
15
14
|
// * Public Slice
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
// pkgs/@akanjs/cli/src/templates/module/__model__.store.ts
|
|
2
2
|
function getContent(scanInfo, dict) {
|
|
3
3
|
return `
|
|
4
|
-
import {
|
|
4
|
+
import { store } from "@akanjs/store";
|
|
5
5
|
|
|
6
6
|
import * as cnst from "../cnst";
|
|
7
|
-
import { fetch } from "../
|
|
7
|
+
import { fetch, sig } from "../useClient";
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
export class ${dict.Model}Store extends stateOf(fetch.${dict.model}Gql, {
|
|
9
|
+
export class ${dict.Model}Store extends store(sig.${dict.model}, {
|
|
11
10
|
// state
|
|
12
11
|
}) {
|
|
13
12
|
// action
|
|
@@ -11,17 +11,17 @@ function getContent(scanInfo, dict = {}) {
|
|
|
11
11
|
import { databaseModuleOf, scalarModulesOf, serviceModuleOf, type Module } from "@akanjs/server";
|
|
12
12
|
${libs.map((lib) => `import { registerModules as register${capitalize(lib)}Modules } from "@${lib}/server";`).join("\n")}
|
|
13
13
|
|
|
14
|
-
import * as db from "./lib/db";
|
|
15
|
-
import { allSrvs } from "./lib/srv";
|
|
16
14
|
import * as cnst from "./lib/cnst";
|
|
15
|
+
import * as db from "./lib/db";
|
|
17
16
|
import * as srv from "./lib/srv";
|
|
17
|
+
import { allSrvs } from "./lib/srv";
|
|
18
18
|
import * as sig from "./lib/sig";
|
|
19
19
|
import { type ModulesOptions, registerGlobalModule } from "./lib/option";
|
|
20
20
|
|
|
21
21
|
// database modules
|
|
22
22
|
${databaseModules.map(([model]) => {
|
|
23
23
|
const Model = capitalize(model);
|
|
24
|
-
return `const register${Model}Module = () => databaseModuleOf({ constant: cnst.${model}
|
|
24
|
+
return `const register${Model}Module = () => databaseModuleOf({ constant: cnst.${model}, database: db.${model}, signal: sig.${Model}Signal, service: srv.${Model}Service }, allSrvs);`;
|
|
25
25
|
}).join("\n")}
|
|
26
26
|
|
|
27
27
|
// service modules
|
|
@@ -51,7 +51,7 @@ export * as sig from "./lib/sig";
|
|
|
51
51
|
export * as option from "./lib/option";
|
|
52
52
|
export * as cnst from "./lib/cnst";
|
|
53
53
|
export { fetch } from "./lib/sig";
|
|
54
|
-
export * from "./lib/dict";
|
|
54
|
+
export * as dict from "./lib/dict";
|
|
55
55
|
`;
|
|
56
56
|
}
|
|
57
57
|
export {
|
|
@@ -90,7 +90,8 @@ apps/*/lib/db.ts
|
|
|
90
90
|
apps/*/lib/srv.ts
|
|
91
91
|
apps/*/lib/st.ts
|
|
92
92
|
apps/*/lib/sig.ts
|
|
93
|
-
apps/*/lib/
|
|
93
|
+
apps/*/lib/useClient.ts
|
|
94
|
+
apps/*/lib/useServer.ts
|
|
94
95
|
apps/*/lib/*/index.tsx
|
|
95
96
|
apps/*/client.ts
|
|
96
97
|
apps/*/server.ts
|
|
@@ -100,8 +101,9 @@ libs/*/lib/db.ts
|
|
|
100
101
|
libs/*/lib/srv.ts
|
|
101
102
|
libs/*/lib/st.ts
|
|
102
103
|
libs/*/lib/sig.ts
|
|
103
|
-
libs/*/lib/
|
|
104
|
-
|
|
104
|
+
libs/*/lib/useClient.ts
|
|
105
|
+
libs/*/lib/useServer.ts
|
|
106
|
+
libs/*/lib/*/index.tsx
|
|
105
107
|
libs/*/client.ts
|
|
106
108
|
libs/*/server.ts
|
|
107
109
|
libs/*/index.ts
|