@akanjs/cli 0.0.148 → 0.0.149
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 +60 -19
- package/cjs/src/guidelines/___library/sharedUiStructureDescription.en.md +0 -18
- package/cjs/src/templates/app/app/[lang]/(__appName__)/styles.css.template +19 -0
- package/cjs/src/templates/app/app/index.html.template +13 -0
- package/cjs/src/templates/app/capacitor.config.ts.template +8 -0
- package/cjs/src/templates/app/env/env.client.debug.ts.template +7 -0
- package/cjs/src/templates/app/env/env.client.develop.ts.template +7 -0
- package/cjs/src/templates/app/env/env.client.local.ts.template +7 -0
- package/cjs/src/templates/app/env/env.client.main.ts.template +7 -0
- package/cjs/src/templates/app/env/env.client.testing.ts.template +7 -0
- package/cjs/src/templates/app/env/env.server.debug.ts.template +15 -0
- package/cjs/src/templates/app/env/env.server.develop.ts.template +15 -0
- package/cjs/src/templates/app/env/env.server.local.ts.template +15 -0
- package/cjs/src/templates/app/env/env.server.main.ts.template +15 -0
- package/cjs/src/templates/app/env/env.server.testing.ts.template +7 -0
- package/cjs/src/templates/app/main.js +2 -1
- package/cjs/src/templates/app/page.test.ts.template +10 -0
- package/cjs/src/templates/app/playwright.config.ts.template +6 -0
- package/cjs/src/templates/app/postcss.config.js.template +10 -0
- package/cjs/src/templates/app/public/manifest.json.template +67 -0
- package/cjs/src/templates/app/tsconfig.json.template +22 -0
- package/cjs/src/templates/app/tsconfig.spec.json.template +7 -0
- package/cjs/src/templates/libRoot/.gitignore.template +15 -0
- package/cjs/src/templates/libRoot/env/env.server.example.ts.template +7 -0
- package/cjs/src/templates/libRoot/env/env.server.testing.ts.template +7 -0
- package/cjs/src/templates/libRoot/package.json.template +4 -0
- package/cjs/src/templates/libRoot/tsconfig.json.template +13 -0
- package/cjs/src/templates/libRoot/tsconfig.spec.json.template +7 -0
- package/cjs/src/templates/localDev/docker-compose.yaml.template +36 -0
- package/cjs/src/templates/pkgRoot/tsconfig.json.template +15 -0
- package/cjs/src/templates/workspaceRoot/.env.template +20 -0
- package/cjs/src/templates/workspaceRoot/.gitignore.template +118 -0
- package/cjs/src/templates/workspaceRoot/.prettierignore.template +10 -0
- package/cjs/src/templates/workspaceRoot/.prettierrc.json.template +6 -0
- package/cjs/src/templates/workspaceRoot/.swcrc.template +9 -0
- package/cjs/src/templates/workspaceRoot/.vscode/settings.json.template +13 -0
- package/cjs/src/templates/workspaceRoot/README.md.template +37 -0
- package/cjs/src/templates/workspaceRoot/eslint.config.ts.template +3 -0
- package/cjs/src/templates/workspaceRoot/package.json.template +43 -0
- package/cjs/src/templates/workspaceRoot/tsconfig.json.template +29 -0
- package/esm/index.js +61 -20
- package/esm/src/guidelines/___library/sharedUiStructureDescription.en.md +0 -18
- package/esm/src/templates/app/app/[lang]/(__appName__)/styles.css.template +19 -0
- package/esm/src/templates/app/app/index.html.template +13 -0
- package/esm/src/templates/app/capacitor.config.ts.template +8 -0
- package/esm/src/templates/app/env/env.client.debug.ts.template +7 -0
- package/esm/src/templates/app/env/env.client.develop.ts.template +7 -0
- package/esm/src/templates/app/env/env.client.local.ts.template +7 -0
- package/esm/src/templates/app/env/env.client.main.ts.template +7 -0
- package/esm/src/templates/app/env/env.client.testing.ts.template +7 -0
- package/esm/src/templates/app/env/env.server.debug.ts.template +15 -0
- package/esm/src/templates/app/env/env.server.develop.ts.template +15 -0
- package/esm/src/templates/app/env/env.server.local.ts.template +15 -0
- package/esm/src/templates/app/env/env.server.main.ts.template +15 -0
- package/esm/src/templates/app/env/env.server.testing.ts.template +7 -0
- package/esm/src/templates/app/main.js +2 -1
- package/esm/src/templates/app/page.test.ts.template +10 -0
- package/esm/src/templates/app/playwright.config.ts.template +6 -0
- package/esm/src/templates/app/postcss.config.js.template +10 -0
- package/esm/src/templates/app/public/manifest.json.template +67 -0
- package/esm/src/templates/app/tsconfig.json.template +22 -0
- package/esm/src/templates/app/tsconfig.spec.json.template +7 -0
- package/esm/src/templates/libRoot/.gitignore.template +15 -0
- package/esm/src/templates/libRoot/env/env.server.example.ts.template +7 -0
- package/esm/src/templates/libRoot/env/env.server.testing.ts.template +7 -0
- package/esm/src/templates/libRoot/package.json.template +4 -0
- package/esm/src/templates/libRoot/tsconfig.json.template +13 -0
- package/esm/src/templates/libRoot/tsconfig.spec.json.template +7 -0
- package/esm/src/templates/localDev/docker-compose.yaml.template +36 -0
- package/esm/src/templates/pkgRoot/tsconfig.json.template +15 -0
- package/esm/src/templates/workspaceRoot/.env.template +20 -0
- package/esm/src/templates/workspaceRoot/.gitignore.template +118 -0
- package/esm/src/templates/workspaceRoot/.prettierignore.template +10 -0
- package/esm/src/templates/workspaceRoot/.prettierrc.json.template +6 -0
- package/esm/src/templates/workspaceRoot/.swcrc.template +9 -0
- package/esm/src/templates/workspaceRoot/.vscode/settings.json.template +13 -0
- package/esm/src/templates/workspaceRoot/README.md.template +37 -0
- package/esm/src/templates/workspaceRoot/eslint.config.ts.template +3 -0
- package/esm/src/templates/workspaceRoot/package.json.template +43 -0
- package/esm/src/templates/workspaceRoot/tsconfig.json.template +29 -0
- package/package.json +1 -1
- package/src/application/application.command.d.ts +1 -0
- package/src/application/application.runner.d.ts +6 -1
- package/src/application/application.script.d.ts +3 -1
- package/src/guidelines/___library/sharedUiStructureDescription.en.md +0 -18
package/cjs/index.js
CHANGED
|
@@ -602,7 +602,7 @@ var withBase = (appName, config, libs, routes = []) => {
|
|
|
602
602
|
eslint: { ...config.eslint, ignoreDuringBuilds: true },
|
|
603
603
|
env: {
|
|
604
604
|
...config.env,
|
|
605
|
-
basePaths:
|
|
605
|
+
basePaths: routes.map(({ basePath: basePath2 }) => basePath2).join(",")
|
|
606
606
|
},
|
|
607
607
|
transpilePackages: ["swiper", "ssr-window", "dom7"],
|
|
608
608
|
reactStrictMode: commandType === "start" ? false : true,
|
|
@@ -768,7 +768,6 @@ CMD ["npm", "start"]`,
|
|
|
768
768
|
config.libs ?? [],
|
|
769
769
|
config.frontend?.routes
|
|
770
770
|
),
|
|
771
|
-
routes: config.frontend?.routes,
|
|
772
771
|
explicitDependencies: config.frontend?.explicitDependencies ?? []
|
|
773
772
|
},
|
|
774
773
|
mobile: {
|
|
@@ -3477,6 +3476,34 @@ var ApplicationRunner = class {
|
|
|
3477
3476
|
await app.syncAssets(scanResult.akanConfig.libs);
|
|
3478
3477
|
return scanResult;
|
|
3479
3478
|
}
|
|
3479
|
+
async getScriptFilename(app) {
|
|
3480
|
+
if (!app.exists("scripts")) {
|
|
3481
|
+
app.mkdir("scripts");
|
|
3482
|
+
throw new Error(`No script files found. make a script file in apps/${app.name}/scripts folder`);
|
|
3483
|
+
}
|
|
3484
|
+
const scriptFiles = (await app.readdir("scripts")).filter((file) => file.endsWith(".ts"));
|
|
3485
|
+
const scriptFile = await (0, import_prompts6.select)({
|
|
3486
|
+
message: "Select script to run",
|
|
3487
|
+
choices: scriptFiles.map((file) => ({ name: file, value: file.replace(".ts", "") }))
|
|
3488
|
+
});
|
|
3489
|
+
return scriptFile;
|
|
3490
|
+
}
|
|
3491
|
+
async runScript(app, filename) {
|
|
3492
|
+
const buildResult = await esbuild2.build({
|
|
3493
|
+
write: true,
|
|
3494
|
+
entryPoints: [`${app.cwdPath}/scripts/${filename}.ts`],
|
|
3495
|
+
bundle: true,
|
|
3496
|
+
format: "cjs",
|
|
3497
|
+
packages: "external",
|
|
3498
|
+
platform: "node",
|
|
3499
|
+
outdir: `${app.cwdPath}/scripts`,
|
|
3500
|
+
logLevel: "warning"
|
|
3501
|
+
});
|
|
3502
|
+
await app.spawn("node", [`scripts/${filename}.js`], {
|
|
3503
|
+
stdio: "inherit",
|
|
3504
|
+
env: this.#getEnv(app)
|
|
3505
|
+
});
|
|
3506
|
+
}
|
|
3480
3507
|
#getEnv(app, env = {}) {
|
|
3481
3508
|
const rootEnv = import_dotenv3.default.parse(app.workspace.readFile(".env"));
|
|
3482
3509
|
return {
|
|
@@ -3544,10 +3571,10 @@ var ApplicationRunner = class {
|
|
|
3544
3571
|
setTimeout(() => (0, import_open.default)("http://localhost:8080/backend/graphql"), 3e3);
|
|
3545
3572
|
await app.dist.spawn("node", ["--watch", "backend/main.js"], { env, stdio: "inherit" });
|
|
3546
3573
|
}
|
|
3547
|
-
async buildFrontend(app) {
|
|
3574
|
+
async buildFrontend(app, { spawnOptions } = {}) {
|
|
3548
3575
|
const { env } = await this.#prepareCommand(app, "build", "frontend");
|
|
3549
3576
|
const akanConfig = await app.getConfig("build");
|
|
3550
|
-
await app.spawn("npx", ["next", "build", "--no-lint"], { env });
|
|
3577
|
+
await app.spawn("npx", ["next", "build", "--no-lint"], { env, ...spawnOptions });
|
|
3551
3578
|
const buildResult = await esbuild2.build({
|
|
3552
3579
|
entryPoints: [`${app.cwdPath}/next.config.ts`],
|
|
3553
3580
|
outdir: `${app.dist.cwdPath}/frontend`,
|
|
@@ -3587,8 +3614,6 @@ var ApplicationRunner = class {
|
|
|
3587
3614
|
async #getViteConfig(app, command) {
|
|
3588
3615
|
const { env } = await this.#prepareCommand(app, command, "csr");
|
|
3589
3616
|
const tsconfig = app.workspace.getTsConfig();
|
|
3590
|
-
const akanConfig = await app.getConfig();
|
|
3591
|
-
const basePaths = akanConfig.frontend.routes ? [...new Set(akanConfig.frontend.routes.map(({ basePath: basePath2 }) => basePath2))].join(",") : void 0;
|
|
3592
3617
|
const processEnv = env;
|
|
3593
3618
|
const akanjsPrefix = process.env.USE_AKANJS_PKGS === "true" ? `${app.workspace.workspaceRoot}/pkgs/` : "";
|
|
3594
3619
|
const config = vite.defineConfig({
|
|
@@ -3652,8 +3677,7 @@ var ApplicationRunner = class {
|
|
|
3652
3677
|
APP_OPERATION_MODE: processEnv.APP_OPERATION_MODE ?? "local",
|
|
3653
3678
|
AKAN_WORKSPACE_ROOT: app.workspace.workspaceRoot,
|
|
3654
3679
|
AKAN_APP_ROOT: app.cwdPath,
|
|
3655
|
-
RENDER_ENV: "csr"
|
|
3656
|
-
basePaths
|
|
3680
|
+
RENDER_ENV: "csr"
|
|
3657
3681
|
},
|
|
3658
3682
|
"process.platform": JSON.stringify("browser"),
|
|
3659
3683
|
"process.version": JSON.stringify(process.version)
|
|
@@ -3955,6 +3979,11 @@ var ApplicationScript = class {
|
|
|
3955
3979
|
spinner.succeed("Application scanned");
|
|
3956
3980
|
return scanResult;
|
|
3957
3981
|
}
|
|
3982
|
+
async script(app, filename) {
|
|
3983
|
+
const scriptFilename = filename ?? await this.#runner.getScriptFilename(app);
|
|
3984
|
+
await this.syncApplication(app);
|
|
3985
|
+
await this.#runner.runScript(app, scriptFilename);
|
|
3986
|
+
}
|
|
3958
3987
|
async build(app) {
|
|
3959
3988
|
await this.syncApplication(app);
|
|
3960
3989
|
await Promise.all([this.buildBackend(app, { sync: false }), this.buildFrontend(app, { sync: false })]);
|
|
@@ -3963,11 +3992,7 @@ var ApplicationScript = class {
|
|
|
3963
3992
|
await this.syncApplication(app);
|
|
3964
3993
|
if (app.workspace.getBaseDevEnv().env === "local")
|
|
3965
3994
|
await this.dbup(app.workspace);
|
|
3966
|
-
await Promise.all([
|
|
3967
|
-
this.startBackend(app, { open: open2, sync: false }),
|
|
3968
|
-
this.startFrontend(app, { open: open2, sync: false }),
|
|
3969
|
-
this.startCsr(app, { open: open2, sync: false })
|
|
3970
|
-
]);
|
|
3995
|
+
await Promise.all([this.startBackend(app, { open: open2, sync: false }), this.startFrontend(app, { open: open2, sync: false })]);
|
|
3971
3996
|
}
|
|
3972
3997
|
async buildBackend(app, { sync = true } = {}) {
|
|
3973
3998
|
if (sync)
|
|
@@ -3989,12 +4014,16 @@ var ApplicationScript = class {
|
|
|
3989
4014
|
}
|
|
3990
4015
|
});
|
|
3991
4016
|
}
|
|
3992
|
-
async buildFrontend(app, { sync = true } = {}) {
|
|
4017
|
+
async buildFrontend(app, { sync = true, standalone = false } = {}) {
|
|
3993
4018
|
if (sync)
|
|
3994
4019
|
await this.syncApplication(app);
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
4020
|
+
if (standalone)
|
|
4021
|
+
await this.#runner.buildFrontend(app, { spawnOptions: { stdio: "inherit" } });
|
|
4022
|
+
else {
|
|
4023
|
+
const spinner = app.spinning("Building frontend...");
|
|
4024
|
+
await this.#runner.buildFrontend(app);
|
|
4025
|
+
spinner.succeed(`Frontend built in dist/apps/${app.name}/frontend`);
|
|
4026
|
+
}
|
|
3998
4027
|
}
|
|
3999
4028
|
async startFrontend(app, { open: open2 = false, turbo = false, sync = true } = {}) {
|
|
4000
4029
|
if (sync)
|
|
@@ -4121,6 +4150,9 @@ var ApplicationCommand = class {
|
|
|
4121
4150
|
async syncApplication(app) {
|
|
4122
4151
|
await this.applicationScript.syncApplication(app);
|
|
4123
4152
|
}
|
|
4153
|
+
async script(app, filename) {
|
|
4154
|
+
await this.applicationScript.script(app, filename);
|
|
4155
|
+
}
|
|
4124
4156
|
async build(app) {
|
|
4125
4157
|
await this.applicationScript.build(app);
|
|
4126
4158
|
}
|
|
@@ -4128,7 +4160,7 @@ var ApplicationCommand = class {
|
|
|
4128
4160
|
await this.applicationScript.buildBackend(app);
|
|
4129
4161
|
}
|
|
4130
4162
|
async buildFrontend(app) {
|
|
4131
|
-
await this.applicationScript.buildFrontend(app);
|
|
4163
|
+
await this.applicationScript.buildFrontend(app, { standalone: true });
|
|
4132
4164
|
}
|
|
4133
4165
|
async buildCsr(app) {
|
|
4134
4166
|
await this.applicationScript.buildCsr(app);
|
|
@@ -4202,6 +4234,11 @@ __decorateClass([
|
|
|
4202
4234
|
Target.Public(),
|
|
4203
4235
|
__decorateParam(0, App())
|
|
4204
4236
|
], ApplicationCommand.prototype, "syncApplication", 1);
|
|
4237
|
+
__decorateClass([
|
|
4238
|
+
Target.Public(),
|
|
4239
|
+
__decorateParam(0, App()),
|
|
4240
|
+
__decorateParam(1, Argument("filename", { desc: "name of script", nullable: true }))
|
|
4241
|
+
], ApplicationCommand.prototype, "script", 1);
|
|
4205
4242
|
__decorateClass([
|
|
4206
4243
|
Target.Public({ short: true }),
|
|
4207
4244
|
__decorateParam(0, App())
|
|
@@ -4352,7 +4389,11 @@ var PackageRunner = class {
|
|
|
4352
4389
|
if (pkg.name === "@akanjs/cli")
|
|
4353
4390
|
await builder.build({
|
|
4354
4391
|
bundle: true,
|
|
4355
|
-
additionalEntryPoints: [
|
|
4392
|
+
additionalEntryPoints: [
|
|
4393
|
+
`${pkg.cwdPath}/src/templates/**/*.ts`,
|
|
4394
|
+
`${pkg.cwdPath}/src/templates/**/*.template`,
|
|
4395
|
+
`${pkg.cwdPath}/src/guidelines/**/*.md`
|
|
4396
|
+
]
|
|
4356
4397
|
});
|
|
4357
4398
|
else
|
|
4358
4399
|
await builder.build();
|
|
@@ -559,24 +559,6 @@ Key features:
|
|
|
559
559
|
- Simultaneous Korean/English address provision
|
|
560
560
|
- Modal address search
|
|
561
561
|
|
|
562
|
-
### 26. Field.KoreanCityDistrict
|
|
563
|
-
|
|
564
|
-
\`\`\`typescript
|
|
565
|
-
interface KoreanCityDistrictProps {
|
|
566
|
-
city: string | null;
|
|
567
|
-
onChangeCity: (city: string | null) => void;
|
|
568
|
-
district: string | null;
|
|
569
|
-
onChangeDistrict: (district: string | null) => void;
|
|
570
|
-
disabled?: boolean;
|
|
571
|
-
}
|
|
572
|
-
\`\`\`
|
|
573
|
-
Key features:
|
|
574
|
-
|
|
575
|
-
- Hardcoded Korean region data
|
|
576
|
-
- Two-level selection (city/province → district/county)
|
|
577
|
-
- Includes detailed regions: 25 districts in Seoul, 16 in Busan, etc.
|
|
578
|
-
- Linked selection (district activates after city selection)
|
|
579
|
-
|
|
580
562
|
## Common Patterns and Features
|
|
581
563
|
|
|
582
564
|
### 1. Caching System
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
@import "@akanjs/config/styles.css";
|
|
3
|
+
|
|
4
|
+
@plugin "daisyui" {
|
|
5
|
+
logs: false;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@plugin "daisyui/theme" {
|
|
9
|
+
name: "light";
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@plugin "daisyui/theme" {
|
|
13
|
+
name: "dark";
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@theme {
|
|
17
|
+
--font-lemonmilk: var(--font-lemonmilk);
|
|
18
|
+
--font-pretendard: var(--font-pretendard);
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title><%= appName %></title>
|
|
6
|
+
<base href="/" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="root"></div>
|
|
11
|
+
<script type="module" src="/csr.tsx"></script>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { baseEnv } from "@akanjs/base";
|
|
2
|
+
|
|
3
|
+
import type { ModulesOptions } from "../lib/option";
|
|
4
|
+
|
|
5
|
+
export const env: ModulesOptions = {
|
|
6
|
+
...baseEnv,
|
|
7
|
+
hostname: null,
|
|
8
|
+
redis: {},
|
|
9
|
+
mongo: { password: "S20n-D2bUg" },
|
|
10
|
+
security: {
|
|
11
|
+
verifies: [["password", "phone", "naver", "kakao"]],
|
|
12
|
+
sso: {},
|
|
13
|
+
},
|
|
14
|
+
rootAdminInfo: { accountId: "akamirofficial@gmail.com", password: "akamir190319" },
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { baseEnv } from "@akanjs/base";
|
|
2
|
+
|
|
3
|
+
import type { ModulesOptions } from "../lib/option";
|
|
4
|
+
|
|
5
|
+
export const env: ModulesOptions = {
|
|
6
|
+
...baseEnv,
|
|
7
|
+
hostname: null,
|
|
8
|
+
redis: {},
|
|
9
|
+
mongo: { password: "S20n-D2VeL0p-0905*" },
|
|
10
|
+
security: {
|
|
11
|
+
verifies: [["password", "phone", "naver", "kakao"]],
|
|
12
|
+
sso: {},
|
|
13
|
+
},
|
|
14
|
+
rootAdminInfo: { accountId: "akamirofficial@gmail.com", password: "akamir190319" },
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { baseEnv } from "@akanjs/base";
|
|
2
|
+
|
|
3
|
+
import type { ModulesOptions } from "../lib/option";
|
|
4
|
+
|
|
5
|
+
export const env: ModulesOptions = {
|
|
6
|
+
...baseEnv,
|
|
7
|
+
hostname: null,
|
|
8
|
+
redis: {},
|
|
9
|
+
mongo: {},
|
|
10
|
+
security: {
|
|
11
|
+
verifies: [["password", "phone", "naver", "kakao"]],
|
|
12
|
+
sso: {},
|
|
13
|
+
},
|
|
14
|
+
rootAdminInfo: { accountId: "akamirofficial@gmail.com", password: "akamir190319" },
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { baseEnv } from "@akanjs/base";
|
|
2
|
+
|
|
3
|
+
import type { ModulesOptions } from "../lib/option";
|
|
4
|
+
|
|
5
|
+
export const env: ModulesOptions = {
|
|
6
|
+
...baseEnv,
|
|
7
|
+
hostname: null,
|
|
8
|
+
redis: {},
|
|
9
|
+
mongo: { password: "S20n-m@In-0905*-SEON" },
|
|
10
|
+
security: {
|
|
11
|
+
verifies: [["password", "phone", "naver", "kakao"]],
|
|
12
|
+
sso: {},
|
|
13
|
+
},
|
|
14
|
+
rootAdminInfo: { accountId: "akamirofficial@gmail.com", password: "akamir190319" },
|
|
15
|
+
};
|
|
@@ -32,7 +32,8 @@ import { registerModules } from "./server";
|
|
|
32
32
|
const bootstrap = async () => {
|
|
33
33
|
const serverMode = process.env.SERVER_MODE as "federation" | "batch" | "all" | null;
|
|
34
34
|
if (!serverMode) throw new Error("SERVER_MODE environment variable is not defined");
|
|
35
|
-
await createNestApp({ registerModules, serverMode, env });
|
|
35
|
+
const app = await createNestApp({ registerModules, serverMode, env });
|
|
36
|
+
return () => app.close();
|
|
36
37
|
};
|
|
37
38
|
void bootstrap();
|
|
38
39
|
`;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// import { PageAgent } from "@akanjs/next";
|
|
2
|
+
// import { expect, test } from "@playwright/test";
|
|
3
|
+
|
|
4
|
+
// test.describe("index page", () => {
|
|
5
|
+
// test("has title", async ({ page }) => {
|
|
6
|
+
// const agent = new PageAgent(page);
|
|
7
|
+
// await agent.goto("/");
|
|
8
|
+
// expect(agent.page).toBeTruthy();
|
|
9
|
+
// });
|
|
10
|
+
// });
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//! will be replaced with akan.config.ts
|
|
2
|
+
const akanjsPrefix = process.env.USE_AKANJS_PKGS === "true" ? "../../pkgs/" : "";
|
|
3
|
+
const { withBase } = require(`${akanjsPrefix}@akanjs/config/postcss.config.base`);
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @type {import('postcss-load-config').Config}
|
|
7
|
+
*/
|
|
8
|
+
const config = {};
|
|
9
|
+
|
|
10
|
+
module.exports = withBase(config);
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "<%= AppName %>",
|
|
3
|
+
"short_name": "<%= AppName %>",
|
|
4
|
+
"orientation": "portrait",
|
|
5
|
+
"theme_color": "#1976d2",
|
|
6
|
+
"background_color": "#fafafa",
|
|
7
|
+
"display": "standalone",
|
|
8
|
+
"scope": "/",
|
|
9
|
+
"description": "<%= appName %>",
|
|
10
|
+
"start_url": "/",
|
|
11
|
+
"icons": [
|
|
12
|
+
{
|
|
13
|
+
"src": "icons/icon-72x72.png",
|
|
14
|
+
"sizes": "72x72",
|
|
15
|
+
"type": "image/png",
|
|
16
|
+
"purpose": "any"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"src": "icons/icon-96x96.png",
|
|
20
|
+
"sizes": "96x96",
|
|
21
|
+
"type": "image/png",
|
|
22
|
+
"purpose": "any"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"src": "icons/icon-128x128.png",
|
|
26
|
+
"sizes": "128x128",
|
|
27
|
+
"type": "image/png",
|
|
28
|
+
"purpose": "any"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"src": "icons/icon-144x144.png",
|
|
32
|
+
"sizes": "144x144",
|
|
33
|
+
"type": "image/png",
|
|
34
|
+
"purpose": "any"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"src": "icons/icon-152x152.png",
|
|
38
|
+
"sizes": "152x152",
|
|
39
|
+
"type": "image/png",
|
|
40
|
+
"purpose": "any"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"src": "icons/icon-192x192.png",
|
|
44
|
+
"sizes": "192x192",
|
|
45
|
+
"type": "image/png",
|
|
46
|
+
"purpose": "any"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"src": "icons/icon-256x256.png",
|
|
50
|
+
"sizes": "256x256",
|
|
51
|
+
"type": "image/png",
|
|
52
|
+
"purpose": "any"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"src": "icons/icon-384x384.png",
|
|
56
|
+
"sizes": "384x384",
|
|
57
|
+
"type": "image/png",
|
|
58
|
+
"purpose": "any"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"src": "icons/icon-512x512.png",
|
|
62
|
+
"sizes": "512x512",
|
|
63
|
+
"type": "image/png",
|
|
64
|
+
"purpose": "any"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"allowJs": true,
|
|
5
|
+
"strict": false,
|
|
6
|
+
"noEmit": true,
|
|
7
|
+
"incremental": true,
|
|
8
|
+
"resolveJsonModule": true,
|
|
9
|
+
"jsx": "preserve",
|
|
10
|
+
"plugins": [
|
|
11
|
+
{
|
|
12
|
+
"name": "next"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"include": ["./**/*.ts", "./**/*.tsx", ".next/types/**/*.ts"],
|
|
17
|
+
"references": [
|
|
18
|
+
{
|
|
19
|
+
"path": "./tsconfig.spec.json"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
**/script.ts
|
|
2
|
+
**/script*.ts
|
|
3
|
+
**/.env
|
|
4
|
+
**/env.client.debug.ts*
|
|
5
|
+
**/env.client.develop.ts*
|
|
6
|
+
**/env.client.main.ts*
|
|
7
|
+
**/env.client.testing.ts*
|
|
8
|
+
**/env.server.debug.ts*
|
|
9
|
+
**/env.server.develop.ts*
|
|
10
|
+
**/env.server.main.ts*
|
|
11
|
+
**/env.server.testing.ts*
|
|
12
|
+
|
|
13
|
+
# System Files
|
|
14
|
+
.DS_Store
|
|
15
|
+
Thumbs.db
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
version: "3.8"
|
|
2
|
+
networks:
|
|
3
|
+
<%= repoName %>-network:
|
|
4
|
+
driver: bridge
|
|
5
|
+
services:
|
|
6
|
+
redis:
|
|
7
|
+
container_name: redis
|
|
8
|
+
image: redis
|
|
9
|
+
restart: unless-stopped
|
|
10
|
+
ports:
|
|
11
|
+
- 6379:6379
|
|
12
|
+
networks:
|
|
13
|
+
- <%= repoName %>-network
|
|
14
|
+
mongo:
|
|
15
|
+
image: mongo
|
|
16
|
+
container_name: mongo
|
|
17
|
+
restart: unless-stopped
|
|
18
|
+
ports:
|
|
19
|
+
- 27017:27017
|
|
20
|
+
volumes:
|
|
21
|
+
- ./mongo/local/data:/data/db
|
|
22
|
+
command: mongod --dbpath /data/db
|
|
23
|
+
networks:
|
|
24
|
+
- <%= repoName %>-network
|
|
25
|
+
meili:
|
|
26
|
+
image: getmeili/meilisearch:latest
|
|
27
|
+
container_name: meili
|
|
28
|
+
restart: unless-stopped
|
|
29
|
+
ports:
|
|
30
|
+
- "7700:7700"
|
|
31
|
+
environment:
|
|
32
|
+
- MEILI_ENV=development
|
|
33
|
+
- MEILI_MASTER_KEY=masterKey
|
|
34
|
+
- MEILI_NO_ANALYTICS=true
|
|
35
|
+
networks:
|
|
36
|
+
- <%= repoName %>-network
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"jsx": "preserve",
|
|
5
|
+
"declaration": true,
|
|
6
|
+
"declarationDir": "dist"
|
|
7
|
+
},
|
|
8
|
+
"files": [],
|
|
9
|
+
"include": ["**/*.ts", "**/*.tsx"],
|
|
10
|
+
"references": [
|
|
11
|
+
{
|
|
12
|
+
"path": "./tsconfig.spec.json"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# organization configuration, no need to change
|
|
2
|
+
NEXT_PUBLIC_REPO_NAME=<%= repoName %>
|
|
3
|
+
NEXT_PUBLIC_SERVE_DOMAIN="<%= serveDomain %>"
|
|
4
|
+
|
|
5
|
+
# development branch, debug, develop, main, etc. mainly it changes databases.
|
|
6
|
+
NEXT_PUBLIC_ENV=local
|
|
7
|
+
|
|
8
|
+
# local, cloud, edge it changes the connection point of the clients.
|
|
9
|
+
NEXT_PUBLIC_OPERATION_MODE=local
|
|
10
|
+
# hybrid app specific config, will be depreciated in the future
|
|
11
|
+
APP_OPERATION_MODE=local
|
|
12
|
+
|
|
13
|
+
# backend service mode, federation, batch, all
|
|
14
|
+
SERVER_MODE=federation
|
|
15
|
+
|
|
16
|
+
# analyze the bundle size
|
|
17
|
+
ANALYZE=false
|
|
18
|
+
|
|
19
|
+
# log level, debug, info, warn, error
|
|
20
|
+
NEXT_PUBLIC_LOG_LEVEL=debug
|