@akanjs/cli 0.0.39 → 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.
- package/index.d.ts +1 -0
- package/index.js +75 -59
- package/package.json +2 -1
- package/src/application/application.command.d.ts +26 -0
- package/src/application/application.prompt.d.ts +2 -0
- package/src/application/application.runner.d.ts +35 -0
- package/src/application/application.script.d.ts +36 -0
- package/src/cloud/cloud.command.d.ts +8 -0
- package/src/cloud/cloud.runner.d.ts +7 -0
- package/src/cloud/cloud.script.d.ts +7 -0
- package/src/library/library.command.d.ts +8 -0
- package/src/library/library.runner.d.ts +4 -0
- package/src/library/library.script.d.ts +8 -0
- package/src/module/module.command.d.ts +13 -0
- package/src/module/module.prompt.d.ts +15 -0
- package/src/module/module.runner.d.ts +17 -0
- package/src/module/module.script.d.ts +11 -0
- package/src/package/package.command.d.ts +9 -0
- package/src/package/package.runner.d.ts +6 -0
- package/src/package/package.script.d.ts +7 -0
- package/src/package/page/page.command.d.ts +6 -0
- package/src/package/page/page.runner.d.ts +4 -0
- package/src/package/page/page.script.d.ts +5 -0
- package/src/workspace/workspace.command.d.ts +8 -0
- package/src/workspace/workspace.runner.d.ts +6 -0
- package/src/workspace/workspace.script.d.ts +7 -0
- package/templates/__scalar/__model__/__model__.constant.js +0 -34
- package/templates/__scalar/__model__/__model__.dictionary.js +0 -45
- package/templates/__scalar/__model__/__model__.document.js +0 -32
- package/templates/app/akan.config.ts.template +0 -5
- package/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +0 -43
- package/templates/app/app/[lang]/(__appName__)/(public)/page.js +0 -44
- package/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +0 -38
- package/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +0 -46
- package/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +0 -37
- package/templates/app/app/[lang]/(__appName__)/(user)/layout.js +0 -39
- package/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +0 -56
- package/templates/app/app/[lang]/(__appName__)/layout.js +0 -48
- package/templates/app/app/[lang]/admin/layout.js +0 -49
- package/templates/app/app/[lang]/admin/page.js +0 -59
- package/templates/app/app/csr.js +0 -30
- package/templates/app/app/index.html.template +0 -13
- package/templates/app/app/layout.js +0 -34
- package/templates/app/app/robots.js +0 -39
- package/templates/app/app/sitemap.js +0 -35
- package/templates/app/base/baseLogic.js +0 -34
- package/templates/app/base/index.js +0 -28
- package/templates/app/capacitor.config.ts.template +0 -8
- package/templates/app/common/commonLogic.js +0 -34
- package/templates/app/common/index.js +0 -28
- package/templates/app/env/env.client.js +0 -37
- package/templates/app/env/env.client.type.js +0 -34
- package/templates/app/env/env.server.js +0 -37
- package/templates/app/jest.config.js +0 -35
- package/templates/app/lib/___appName__/__appName__.dictionary.js +0 -30
- package/templates/app/lib/___appName__/__appName__.service.js +0 -41
- package/templates/app/lib/___appName__/__appName__.store.js +0 -35
- package/templates/app/lib/___appName__/_server.js +0 -33
- package/templates/app/lib/option.js +0 -41
- package/templates/app/lib/setting/Setting.Template.js +0 -53
- package/templates/app/lib/setting/Setting.Unit.js +0 -34
- package/templates/app/lib/setting/Setting.Util.js +0 -30
- package/templates/app/lib/setting/Setting.View.js +0 -47
- package/templates/app/lib/setting/Setting.Zone.js +0 -76
- package/templates/app/lib/setting/_server.js +0 -47
- package/templates/app/lib/setting/index.js +0 -57
- package/templates/app/lib/setting/setting.constant.js +0 -45
- package/templates/app/lib/setting/setting.dictionary.js +0 -45
- package/templates/app/lib/setting/setting.document.js +0 -47
- package/templates/app/lib/setting/setting.service.js +0 -36
- package/templates/app/lib/setting/setting.signal.js +0 -33
- package/templates/app/lib/setting/setting.store.js +0 -40
- package/templates/app/lib/summary/Summary.Template.js +0 -39
- package/templates/app/lib/summary/Summary.Unit.js +0 -34
- package/templates/app/lib/summary/Summary.Util.js +0 -29
- package/templates/app/lib/summary/Summary.View.js +0 -47
- package/templates/app/lib/summary/Summary.Zone.js +0 -58
- package/templates/app/lib/summary/_server.js +0 -47
- package/templates/app/lib/summary/index.js +0 -63
- package/templates/app/lib/summary/summary.constant.js +0 -43
- package/templates/app/lib/summary/summary.dictionary.js +0 -48
- package/templates/app/lib/summary/summary.document.js +0 -47
- package/templates/app/lib/summary/summary.service.js +0 -33
- package/templates/app/lib/summary/summary.signal.js +0 -33
- package/templates/app/lib/summary/summary.store.js +0 -40
- package/templates/app/lib/user/User.Template.js +0 -61
- package/templates/app/lib/user/User.Unit.js +0 -34
- package/templates/app/lib/user/User.Util.js +0 -90
- package/templates/app/lib/user/User.View.js +0 -62
- package/templates/app/lib/user/User.Zone.js +0 -70
- package/templates/app/lib/user/_server.js +0 -47
- package/templates/app/lib/user/index.js +0 -57
- package/templates/app/lib/user/user.constant.js +0 -66
- package/templates/app/lib/user/user.dictionary.js +0 -51
- package/templates/app/lib/user/user.document.js +0 -53
- package/templates/app/lib/user/user.service.js +0 -41
- package/templates/app/lib/user/user.signal.js +0 -33
- package/templates/app/lib/user/user.signal.spec.js +0 -36
- package/templates/app/lib/user/user.signal.test.js +0 -38
- package/templates/app/lib/user/user.store.js +0 -38
- package/templates/app/main.js +0 -39
- package/templates/app/middleware.js +0 -34
- package/templates/app/nest/backendLogic.js +0 -33
- package/templates/app/nest/index.js +0 -28
- package/templates/app/next/frontendLogic.js +0 -33
- package/templates/app/next/index.js +0 -28
- package/templates/app/page.test.ts.template +0 -10
- package/templates/app/playwright.config.ts.template +0 -6
- package/templates/app/postcss.config.js.template +0 -10
- package/templates/app/public/favicon.ico +0 -0
- package/templates/app/public/icons/icon-128x128.png +0 -0
- package/templates/app/public/icons/icon-144x144.png +0 -0
- package/templates/app/public/icons/icon-152x152.png +0 -0
- package/templates/app/public/icons/icon-192x192.png +0 -0
- package/templates/app/public/icons/icon-256x256.png +0 -0
- package/templates/app/public/icons/icon-384x384.png +0 -0
- package/templates/app/public/icons/icon-48x48.png +0 -0
- package/templates/app/public/icons/icon-512x512.png +0 -0
- package/templates/app/public/icons/icon-72x72.png +0 -0
- package/templates/app/public/icons/icon-96x96.png +0 -0
- package/templates/app/public/logo.svg +0 -70
- package/templates/app/public/manifest.json.template +0 -67
- package/templates/app/tsconfig.json.template +0 -22
- package/templates/app/tsconfig.spec.json.template +0 -7
- package/templates/app/ui/Footer.js +0 -63
- package/templates/app/ui/MainHeader.js +0 -127
- package/templates/app/ui/index.js +0 -29
- package/templates/client.js +0 -41
- package/templates/crudPages/[__model__Id]/edit/page.js +0 -69
- package/templates/crudPages/[__model__Id]/page.js +0 -79
- package/templates/crudPages/new/page.js +0 -66
- package/templates/crudPages/page.js +0 -67
- package/templates/index.js +0 -30
- package/templates/lib/__lib/extends/summary.constant.js +0 -42
- package/templates/lib/__lib/lib.constant.js +0 -52
- package/templates/lib/__lib/lib.dictionary.js +0 -41
- package/templates/lib/__lib/lib.document.js +0 -40
- package/templates/lib/__lib/lib.service.js +0 -82
- package/templates/lib/__lib/lib.signal.js +0 -35
- package/templates/lib/__lib/lib.store.js +0 -33
- package/templates/lib/__scalar/_server.js +0 -38
- package/templates/lib/cnst.js +0 -31
- package/templates/lib/cnst_.js +0 -50
- package/templates/lib/db.js +0 -52
- package/templates/lib/dict.js +0 -44
- package/templates/lib/fetch.js +0 -47
- package/templates/lib/sig.js +0 -36
- package/templates/lib/srv.js +0 -51
- package/templates/lib/st.js +0 -35
- package/templates/lib/store.js +0 -51
- package/templates/lib/usePage.js +0 -32
- package/templates/libRoot/.gitignore.template +0 -15
- package/templates/libRoot/jest.config.js +0 -35
- package/templates/libRoot/package.json.template +0 -5
- package/templates/libRoot/tsconfig.json.template +0 -11
- package/templates/libRoot/tsconfig.spec.json.template +0 -7
- package/templates/module/__Model__.Template.js +0 -50
- package/templates/module/__Model__.Unit.js +0 -38
- package/templates/module/__Model__.Util.js +0 -66
- package/templates/module/__Model__.View.js +0 -44
- package/templates/module/__Model__.Zone.js +0 -79
- package/templates/module/__model__.constant.js +0 -68
- package/templates/module/__model__.dictionary.js +0 -97
- package/templates/module/__model__.document.js +0 -52
- package/templates/module/__model__.service.js +0 -40
- package/templates/module/__model__.signal.js +0 -59
- package/templates/module/__model__.signal.spec.js +0 -38
- package/templates/module/__model__.signal.test.js +0 -47
- package/templates/module/__model__.store.js +0 -38
- package/templates/module/_server.js +0 -46
- package/templates/module/index.js +0 -57
- package/templates/pkgRoot/tsconfig.json.template +0 -12
- package/templates/server.js +0 -58
- package/templates/workplaceRoot/.env.template +0 -20
- package/templates/workplaceRoot/.gitignore.template +0 -195
- package/templates/workplaceRoot/.prettierignore.template +0 -10
- package/templates/workplaceRoot/.prettierrc.json.template +0 -5
- package/templates/workplaceRoot/.swcrc.template +0 -9
- package/templates/workplaceRoot/README.md.template +0 -37
- package/templates/workplaceRoot/eslint.config.js.template +0 -141
- package/templates/workplaceRoot/tsconfig.json.template +0 -29
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/index.js
CHANGED
|
@@ -1232,11 +1232,11 @@ CMD ["npm", "start"]`,
|
|
|
1232
1232
|
this.logger.verbose(`File ${writePath} is unchanged`);
|
|
1233
1233
|
else {
|
|
1234
1234
|
import_fs7.default.writeFileSync(writePath, contentStr, "utf8");
|
|
1235
|
-
this.logger.
|
|
1235
|
+
this.logger.debug(`File ${writePath} is changed`);
|
|
1236
1236
|
}
|
|
1237
1237
|
} else {
|
|
1238
1238
|
import_fs7.default.writeFileSync(writePath, contentStr, "utf8");
|
|
1239
|
-
this.logger.
|
|
1239
|
+
this.logger.debug(`File ${writePath} is created`);
|
|
1240
1240
|
}
|
|
1241
1241
|
return this;
|
|
1242
1242
|
}
|
|
@@ -1313,7 +1313,7 @@ CMD ["npm", "start"]`,
|
|
|
1313
1313
|
scanResult,
|
|
1314
1314
|
dict = {}
|
|
1315
1315
|
}) {
|
|
1316
|
-
const templatePath = `${__dirname}/templates${template ? `/${template}` : ""}`.replace(".ts", ".js");
|
|
1316
|
+
const templatePath = `${__dirname}/src/templates${template ? `/${template}` : ""}`.replace(".ts", ".js");
|
|
1317
1317
|
if (import_fs7.default.statSync(templatePath).isFile()) {
|
|
1318
1318
|
const filename = import_path3.default.basename(templatePath);
|
|
1319
1319
|
await this.#applyTemplateFile({ templatePath, targetPath: import_path3.default.join(basePath2, filename), scanResult }, dict);
|
|
@@ -2249,10 +2249,10 @@ CMD ["npm", "start"]`,
|
|
|
2249
2249
|
}
|
|
2250
2250
|
});
|
|
2251
2251
|
|
|
2252
|
-
// pkgs/@akanjs/cli/library/library.runner.ts
|
|
2252
|
+
// pkgs/@akanjs/cli/src/library/library.runner.ts
|
|
2253
2253
|
var LibraryRunner;
|
|
2254
2254
|
var init_library_runner = __esm({
|
|
2255
|
-
"pkgs/@akanjs/cli/library/library.runner.ts"() {
|
|
2255
|
+
"pkgs/@akanjs/cli/src/library/library.runner.ts"() {
|
|
2256
2256
|
LibraryRunner = class {
|
|
2257
2257
|
async scanSync(lib) {
|
|
2258
2258
|
const akanConfig = await lib.getConfig();
|
|
@@ -2263,10 +2263,10 @@ CMD ["npm", "start"]`,
|
|
|
2263
2263
|
}
|
|
2264
2264
|
});
|
|
2265
2265
|
|
|
2266
|
-
// pkgs/@akanjs/cli/library/library.script.ts
|
|
2266
|
+
// pkgs/@akanjs/cli/src/library/library.script.ts
|
|
2267
2267
|
var LibraryScript;
|
|
2268
2268
|
var init_library_script = __esm({
|
|
2269
|
-
"pkgs/@akanjs/cli/library/library.script.ts"() {
|
|
2269
|
+
"pkgs/@akanjs/cli/src/library/library.script.ts"() {
|
|
2270
2270
|
init_devkit();
|
|
2271
2271
|
init_library_runner();
|
|
2272
2272
|
LibraryScript = class {
|
|
@@ -2286,10 +2286,10 @@ CMD ["npm", "start"]`,
|
|
|
2286
2286
|
}
|
|
2287
2287
|
});
|
|
2288
2288
|
|
|
2289
|
-
// pkgs/@akanjs/cli/module/module.prompt.ts
|
|
2289
|
+
// pkgs/@akanjs/cli/src/module/module.prompt.ts
|
|
2290
2290
|
var frameworkDescription, requestModule, frameworkAbstract, scalarConstantDescription, howToSetFieldInModelConstant, requestScalarConstant;
|
|
2291
2291
|
var init_module_prompt = __esm({
|
|
2292
|
-
"pkgs/@akanjs/cli/module/module.prompt.ts"() {
|
|
2292
|
+
"pkgs/@akanjs/cli/src/module/module.prompt.ts"() {
|
|
2293
2293
|
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.
|
|
2294
2294
|
|
|
2295
2295
|
\uAC00\uC7A5 \uC678\uBD80\uC758 \uAD6C\uC870\uB294
|
|
@@ -3355,10 +3355,10 @@ ${boilerplate}
|
|
|
3355
3355
|
}
|
|
3356
3356
|
});
|
|
3357
3357
|
|
|
3358
|
-
// pkgs/@akanjs/cli/application/application.prompt.ts
|
|
3358
|
+
// pkgs/@akanjs/cli/src/application/application.prompt.ts
|
|
3359
3359
|
var requestApplication;
|
|
3360
3360
|
var init_application_prompt = __esm({
|
|
3361
|
-
"pkgs/@akanjs/cli/application/application.prompt.ts"() {
|
|
3361
|
+
"pkgs/@akanjs/cli/src/application/application.prompt.ts"() {
|
|
3362
3362
|
init_module_prompt();
|
|
3363
3363
|
requestApplication = () => `${frameworkDescription}
|
|
3364
3364
|
\uC9C0\uAE08\uBD80\uD130 \uB108\uC758 \uC5ED\uD560\uC740 \uCEEC\uB7EC \uB514\uC790\uC774\uB108\uC57C.
|
|
@@ -3393,10 +3393,10 @@ page.tsx_end
|
|
|
3393
3393
|
}
|
|
3394
3394
|
});
|
|
3395
3395
|
|
|
3396
|
-
// pkgs/@akanjs/cli/application/application.runner.ts
|
|
3396
|
+
// pkgs/@akanjs/cli/src/application/application.runner.ts
|
|
3397
3397
|
var import_prompts4, import_output_parsers, import_prompts5, import_runnables2, import_openai2, import_plugin_react, import_dotenv, esbuild, import_fs10, import_promises2, import_js_yaml2, import_ora2, import_path4, vite, import_vite_plugin_node_polyfills, import_vite_tsconfig_paths, ApplicationRunner;
|
|
3398
3398
|
var init_application_runner = __esm({
|
|
3399
|
-
"pkgs/@akanjs/cli/application/application.runner.ts"() {
|
|
3399
|
+
"pkgs/@akanjs/cli/src/application/application.runner.ts"() {
|
|
3400
3400
|
init_src();
|
|
3401
3401
|
init_config();
|
|
3402
3402
|
init_devkit();
|
|
@@ -3871,10 +3871,10 @@ page.tsx_end
|
|
|
3871
3871
|
}
|
|
3872
3872
|
});
|
|
3873
3873
|
|
|
3874
|
-
// pkgs/@akanjs/cli/application/application.script.ts
|
|
3874
|
+
// pkgs/@akanjs/cli/src/application/application.script.ts
|
|
3875
3875
|
var ApplicationScript;
|
|
3876
3876
|
var init_application_script = __esm({
|
|
3877
|
-
"pkgs/@akanjs/cli/application/application.script.ts"() {
|
|
3877
|
+
"pkgs/@akanjs/cli/src/application/application.script.ts"() {
|
|
3878
3878
|
init_devkit();
|
|
3879
3879
|
init_library_script();
|
|
3880
3880
|
init_application_runner();
|
|
@@ -3968,10 +3968,10 @@ page.tsx_end
|
|
|
3968
3968
|
}
|
|
3969
3969
|
});
|
|
3970
3970
|
|
|
3971
|
-
// pkgs/@akanjs/cli/application/application.command.ts
|
|
3971
|
+
// pkgs/@akanjs/cli/src/application/application.command.ts
|
|
3972
3972
|
var ApplicationCommand;
|
|
3973
3973
|
var init_application_command = __esm({
|
|
3974
|
-
"pkgs/@akanjs/cli/application/application.command.ts"() {
|
|
3974
|
+
"pkgs/@akanjs/cli/src/application/application.command.ts"() {
|
|
3975
3975
|
init_devkit();
|
|
3976
3976
|
init_application_script();
|
|
3977
3977
|
ApplicationCommand = class {
|
|
@@ -4154,12 +4154,14 @@ page.tsx_end
|
|
|
4154
4154
|
}
|
|
4155
4155
|
});
|
|
4156
4156
|
|
|
4157
|
-
// pkgs/@akanjs/cli/package/package.runner.ts
|
|
4158
|
-
var esbuild2, import_lodash, PackageRunner;
|
|
4157
|
+
// pkgs/@akanjs/cli/src/package/package.runner.ts
|
|
4158
|
+
var esbuild2, import_esbuild_plugin_d, import_promises3, import_lodash, PackageRunner;
|
|
4159
4159
|
var init_package_runner = __esm({
|
|
4160
|
-
"pkgs/@akanjs/cli/package/package.runner.ts"() {
|
|
4160
|
+
"pkgs/@akanjs/cli/src/package/package.runner.ts"() {
|
|
4161
4161
|
init_devkit();
|
|
4162
4162
|
esbuild2 = __toESM(__require("esbuild"));
|
|
4163
|
+
import_esbuild_plugin_d = __require("esbuild-plugin-d.ts");
|
|
4164
|
+
import_promises3 = __toESM(__require("fs/promises"));
|
|
4163
4165
|
import_lodash = __require("lodash");
|
|
4164
4166
|
PackageRunner = class {
|
|
4165
4167
|
async createPackage(workspace, pkgName) {
|
|
@@ -4176,15 +4178,29 @@ page.tsx_end
|
|
|
4176
4178
|
async buildPackage(pkg, distPkg) {
|
|
4177
4179
|
const rootPackageJson = pkg.workspace.readJson("package.json");
|
|
4178
4180
|
await pkg.workspace.exec(`rm -rf dist/${pkg.name}`);
|
|
4179
|
-
await
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4181
|
+
await import_promises3.default.rm(`dist/pkgs/${pkg.name}`, { force: true, recursive: true });
|
|
4182
|
+
if (pkg.name === "@akanjs/config") {
|
|
4183
|
+
await esbuild2.build({
|
|
4184
|
+
write: true,
|
|
4185
|
+
entryPoints: [`${pkg.cwdPath}/index.ts`],
|
|
4186
|
+
bundle: true,
|
|
4187
|
+
packages: "external",
|
|
4188
|
+
outdir: distPkg.cwdPath,
|
|
4189
|
+
logLevel: "warning",
|
|
4190
|
+
plugins: [(0, import_esbuild_plugin_d.dtsPlugin)({ tsconfig: `${pkg.cwdPath}/tsconfig.json` })]
|
|
4191
|
+
});
|
|
4192
|
+
await pkg.workspace.exec(`rsync -av ${pkg.cwdPath}/src/ ${distPkg.cwdPath}/src/`);
|
|
4193
|
+
} else {
|
|
4194
|
+
await esbuild2.build({
|
|
4195
|
+
write: true,
|
|
4196
|
+
entryPoints: [`${pkg.cwdPath}/index.ts`],
|
|
4197
|
+
bundle: true,
|
|
4198
|
+
packages: "external",
|
|
4199
|
+
outdir: distPkg.cwdPath,
|
|
4200
|
+
logLevel: "warning",
|
|
4201
|
+
plugins: [(0, import_esbuild_plugin_d.dtsPlugin)({ tsconfig: `${pkg.cwdPath}/tsconfig.json` })]
|
|
4202
|
+
});
|
|
4203
|
+
}
|
|
4188
4204
|
const pkgJson = pkg.readJson("package.json");
|
|
4189
4205
|
const dependencies = extractDependencies(`${distPkg.cwdPath}/index.js`, rootPackageJson);
|
|
4190
4206
|
const pkgPackageJson = { ...pkgJson, main: "./index.js", engines: { node: ">=22" }, dependencies };
|
|
@@ -4194,10 +4210,10 @@ page.tsx_end
|
|
|
4194
4210
|
}
|
|
4195
4211
|
});
|
|
4196
4212
|
|
|
4197
|
-
// pkgs/@akanjs/cli/package/package.script.ts
|
|
4213
|
+
// pkgs/@akanjs/cli/src/package/package.script.ts
|
|
4198
4214
|
var PackageScript;
|
|
4199
4215
|
var init_package_script = __esm({
|
|
4200
|
-
"pkgs/@akanjs/cli/package/package.script.ts"() {
|
|
4216
|
+
"pkgs/@akanjs/cli/src/package/package.script.ts"() {
|
|
4201
4217
|
init_devkit();
|
|
4202
4218
|
init_package_runner();
|
|
4203
4219
|
PackageScript = class {
|
|
@@ -4216,10 +4232,10 @@ page.tsx_end
|
|
|
4216
4232
|
}
|
|
4217
4233
|
});
|
|
4218
4234
|
|
|
4219
|
-
// pkgs/@akanjs/cli/cloud/cloud.runner.ts
|
|
4235
|
+
// pkgs/@akanjs/cli/src/cloud/cloud.runner.ts
|
|
4220
4236
|
var import_prompts6, import_chalk, import_latest_version, import_open, QRcode, import_uuid, CloudRunner;
|
|
4221
4237
|
var init_cloud_runner = __esm({
|
|
4222
|
-
"pkgs/@akanjs/cli/cloud/cloud.runner.ts"() {
|
|
4238
|
+
"pkgs/@akanjs/cli/src/cloud/cloud.runner.ts"() {
|
|
4223
4239
|
init_src();
|
|
4224
4240
|
init_devkit();
|
|
4225
4241
|
import_prompts6 = __require("@inquirer/prompts");
|
|
@@ -4345,10 +4361,10 @@ ${import_chalk.default.green("\u27A4")} Authentication Required`));
|
|
|
4345
4361
|
}
|
|
4346
4362
|
});
|
|
4347
4363
|
|
|
4348
|
-
// pkgs/@akanjs/cli/cloud/cloud.script.ts
|
|
4364
|
+
// pkgs/@akanjs/cli/src/cloud/cloud.script.ts
|
|
4349
4365
|
var CloudScript;
|
|
4350
4366
|
var init_cloud_script = __esm({
|
|
4351
|
-
"pkgs/@akanjs/cli/cloud/cloud.script.ts"() {
|
|
4367
|
+
"pkgs/@akanjs/cli/src/cloud/cloud.script.ts"() {
|
|
4352
4368
|
init_devkit();
|
|
4353
4369
|
init_package_script();
|
|
4354
4370
|
init_cloud_runner();
|
|
@@ -4372,10 +4388,10 @@ ${import_chalk.default.green("\u27A4")} Authentication Required`));
|
|
|
4372
4388
|
}
|
|
4373
4389
|
});
|
|
4374
4390
|
|
|
4375
|
-
// pkgs/@akanjs/cli/cloud/cloud.command.ts
|
|
4391
|
+
// pkgs/@akanjs/cli/src/cloud/cloud.command.ts
|
|
4376
4392
|
var CloudCommand;
|
|
4377
4393
|
var init_cloud_command = __esm({
|
|
4378
|
-
"pkgs/@akanjs/cli/cloud/cloud.command.ts"() {
|
|
4394
|
+
"pkgs/@akanjs/cli/src/cloud/cloud.command.ts"() {
|
|
4379
4395
|
init_devkit();
|
|
4380
4396
|
init_cloud_script();
|
|
4381
4397
|
CloudCommand = class {
|
|
@@ -4406,10 +4422,10 @@ ${import_chalk.default.green("\u27A4")} Authentication Required`));
|
|
|
4406
4422
|
}
|
|
4407
4423
|
});
|
|
4408
4424
|
|
|
4409
|
-
// pkgs/@akanjs/cli/library/library.command.ts
|
|
4425
|
+
// pkgs/@akanjs/cli/src/library/library.command.ts
|
|
4410
4426
|
var LibraryCommand;
|
|
4411
4427
|
var init_library_command = __esm({
|
|
4412
|
-
"pkgs/@akanjs/cli/library/library.command.ts"() {
|
|
4428
|
+
"pkgs/@akanjs/cli/src/library/library.command.ts"() {
|
|
4413
4429
|
init_devkit();
|
|
4414
4430
|
LibraryCommand = class {
|
|
4415
4431
|
async createLibrary(name, workspace) {
|
|
@@ -4451,10 +4467,10 @@ ${import_chalk.default.green("\u27A4")} Authentication Required`));
|
|
|
4451
4467
|
}
|
|
4452
4468
|
});
|
|
4453
4469
|
|
|
4454
|
-
// pkgs/@akanjs/cli/module/module.runner.ts
|
|
4470
|
+
// pkgs/@akanjs/cli/src/module/module.runner.ts
|
|
4455
4471
|
var import_output_parsers2, import_prompts7, import_runnables3, import_openai3, import_fs11, import_lodash2, ModuleRunner;
|
|
4456
4472
|
var init_module_runner = __esm({
|
|
4457
|
-
"pkgs/@akanjs/cli/module/module.runner.ts"() {
|
|
4473
|
+
"pkgs/@akanjs/cli/src/module/module.runner.ts"() {
|
|
4458
4474
|
init_devkit();
|
|
4459
4475
|
import_output_parsers2 = __require("@langchain/core/output_parsers");
|
|
4460
4476
|
import_prompts7 = __require("@langchain/core/prompts");
|
|
@@ -4596,10 +4612,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4596
4612
|
}
|
|
4597
4613
|
});
|
|
4598
4614
|
|
|
4599
|
-
// pkgs/@akanjs/cli/module/module.script.ts
|
|
4615
|
+
// pkgs/@akanjs/cli/src/module/module.script.ts
|
|
4600
4616
|
var import_prompts8, ModuleScript;
|
|
4601
4617
|
var init_module_script = __esm({
|
|
4602
|
-
"pkgs/@akanjs/cli/module/module.script.ts"() {
|
|
4618
|
+
"pkgs/@akanjs/cli/src/module/module.script.ts"() {
|
|
4603
4619
|
init_src();
|
|
4604
4620
|
init_devkit();
|
|
4605
4621
|
import_prompts8 = __require("@inquirer/prompts");
|
|
@@ -4671,10 +4687,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4671
4687
|
}
|
|
4672
4688
|
});
|
|
4673
4689
|
|
|
4674
|
-
// pkgs/@akanjs/cli/module/module.command.ts
|
|
4690
|
+
// pkgs/@akanjs/cli/src/module/module.command.ts
|
|
4675
4691
|
var ModuleCommand;
|
|
4676
4692
|
var init_module_command = __esm({
|
|
4677
|
-
"pkgs/@akanjs/cli/module/module.command.ts"() {
|
|
4693
|
+
"pkgs/@akanjs/cli/src/module/module.command.ts"() {
|
|
4678
4694
|
init_devkit();
|
|
4679
4695
|
init_module_script();
|
|
4680
4696
|
ModuleCommand = class {
|
|
@@ -4744,10 +4760,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4744
4760
|
}
|
|
4745
4761
|
});
|
|
4746
4762
|
|
|
4747
|
-
// pkgs/@akanjs/cli/package/package.command.ts
|
|
4763
|
+
// pkgs/@akanjs/cli/src/package/package.command.ts
|
|
4748
4764
|
var PackageCommand;
|
|
4749
4765
|
var init_package_command = __esm({
|
|
4750
|
-
"pkgs/@akanjs/cli/package/package.command.ts"() {
|
|
4766
|
+
"pkgs/@akanjs/cli/src/package/package.command.ts"() {
|
|
4751
4767
|
init_devkit();
|
|
4752
4768
|
init_package_script();
|
|
4753
4769
|
PackageCommand = class {
|
|
@@ -4788,10 +4804,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4788
4804
|
}
|
|
4789
4805
|
});
|
|
4790
4806
|
|
|
4791
|
-
// pkgs/@akanjs/cli/package/page/page.runner.ts
|
|
4807
|
+
// pkgs/@akanjs/cli/src/package/page/page.runner.ts
|
|
4792
4808
|
var PageRunner;
|
|
4793
4809
|
var init_page_runner = __esm({
|
|
4794
|
-
"pkgs/@akanjs/cli/package/page/page.runner.ts"() {
|
|
4810
|
+
"pkgs/@akanjs/cli/src/package/page/page.runner.ts"() {
|
|
4795
4811
|
PageRunner = class {
|
|
4796
4812
|
async createPage(app, name) {
|
|
4797
4813
|
}
|
|
@@ -4799,10 +4815,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4799
4815
|
}
|
|
4800
4816
|
});
|
|
4801
4817
|
|
|
4802
|
-
// pkgs/@akanjs/cli/package/page/page.script.ts
|
|
4818
|
+
// pkgs/@akanjs/cli/src/package/page/page.script.ts
|
|
4803
4819
|
var PageScript;
|
|
4804
4820
|
var init_page_script = __esm({
|
|
4805
|
-
"pkgs/@akanjs/cli/package/page/page.script.ts"() {
|
|
4821
|
+
"pkgs/@akanjs/cli/src/package/page/page.script.ts"() {
|
|
4806
4822
|
init_page_runner();
|
|
4807
4823
|
PageScript = class {
|
|
4808
4824
|
#runner = new PageRunner();
|
|
@@ -4813,10 +4829,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4813
4829
|
}
|
|
4814
4830
|
});
|
|
4815
4831
|
|
|
4816
|
-
// pkgs/@akanjs/cli/package/page/page.command.ts
|
|
4832
|
+
// pkgs/@akanjs/cli/src/package/page/page.command.ts
|
|
4817
4833
|
var PageCommand;
|
|
4818
4834
|
var init_page_command = __esm({
|
|
4819
|
-
"pkgs/@akanjs/cli/package/page/page.command.ts"() {
|
|
4835
|
+
"pkgs/@akanjs/cli/src/package/page/page.command.ts"() {
|
|
4820
4836
|
init_devkit();
|
|
4821
4837
|
init_page_script();
|
|
4822
4838
|
PageCommand = class {
|
|
@@ -4835,10 +4851,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4835
4851
|
}
|
|
4836
4852
|
});
|
|
4837
4853
|
|
|
4838
|
-
// pkgs/@akanjs/cli/workspace/workspace.runner.ts
|
|
4854
|
+
// pkgs/@akanjs/cli/src/workspace/workspace.runner.ts
|
|
4839
4855
|
var import_uuid2, WorkspaceRunner;
|
|
4840
4856
|
var init_workspace_runner = __esm({
|
|
4841
|
-
"pkgs/@akanjs/cli/workspace/workspace.runner.ts"() {
|
|
4857
|
+
"pkgs/@akanjs/cli/src/workspace/workspace.runner.ts"() {
|
|
4842
4858
|
init_devkit();
|
|
4843
4859
|
import_uuid2 = __require("uuid");
|
|
4844
4860
|
WorkspaceRunner = class {
|
|
@@ -4891,10 +4907,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4891
4907
|
}
|
|
4892
4908
|
});
|
|
4893
4909
|
|
|
4894
|
-
// pkgs/@akanjs/cli/workspace/workspace.script.ts
|
|
4910
|
+
// pkgs/@akanjs/cli/src/workspace/workspace.script.ts
|
|
4895
4911
|
var import_latest_version2, import_path5, WorkspaceScript;
|
|
4896
4912
|
var init_workspace_script = __esm({
|
|
4897
|
-
"pkgs/@akanjs/cli/workspace/workspace.script.ts"() {
|
|
4913
|
+
"pkgs/@akanjs/cli/src/workspace/workspace.script.ts"() {
|
|
4898
4914
|
init_src();
|
|
4899
4915
|
init_devkit();
|
|
4900
4916
|
import_latest_version2 = __toESM(__require("latest-version"));
|
|
@@ -4961,10 +4977,10 @@ ${names.Model}.Unit.Card\uC758 \uB9AC\uC561\uD2B8 \uCEF4\uD3EC\uB10C\uD2B8\uB97C
|
|
|
4961
4977
|
}
|
|
4962
4978
|
});
|
|
4963
4979
|
|
|
4964
|
-
// pkgs/@akanjs/cli/workspace/workspace.command.ts
|
|
4980
|
+
// pkgs/@akanjs/cli/src/workspace/workspace.command.ts
|
|
4965
4981
|
var WorkspaceCommand;
|
|
4966
4982
|
var init_workspace_command = __esm({
|
|
4967
|
-
"pkgs/@akanjs/cli/workspace/workspace.command.ts"() {
|
|
4983
|
+
"pkgs/@akanjs/cli/src/workspace/workspace.command.ts"() {
|
|
4968
4984
|
init_devkit();
|
|
4969
4985
|
init_workspace_script();
|
|
4970
4986
|
WorkspaceCommand = class {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "commonjs",
|
|
3
3
|
"name": "@akanjs/cli",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.41",
|
|
5
5
|
"bin": {
|
|
6
6
|
"akan": "index.js"
|
|
7
7
|
},
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"dayjs": "^1.11.13",
|
|
32
32
|
"dotenv": "^16.4.7",
|
|
33
33
|
"esbuild": "^0.19.2",
|
|
34
|
+
"esbuild-plugin-d.ts": "^1.3.1",
|
|
34
35
|
"form-data": "^4.0.1",
|
|
35
36
|
"js-yaml": "^4.1.0",
|
|
36
37
|
"latest-version": "^9.0.0",
|
|
@@ -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 { 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,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 {};
|