@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.
Files changed (85) hide show
  1. package/cjs/index.js +60 -19
  2. package/cjs/src/guidelines/___library/sharedUiStructureDescription.en.md +0 -18
  3. package/cjs/src/templates/app/app/[lang]/(__appName__)/styles.css.template +19 -0
  4. package/cjs/src/templates/app/app/index.html.template +13 -0
  5. package/cjs/src/templates/app/capacitor.config.ts.template +8 -0
  6. package/cjs/src/templates/app/env/env.client.debug.ts.template +7 -0
  7. package/cjs/src/templates/app/env/env.client.develop.ts.template +7 -0
  8. package/cjs/src/templates/app/env/env.client.local.ts.template +7 -0
  9. package/cjs/src/templates/app/env/env.client.main.ts.template +7 -0
  10. package/cjs/src/templates/app/env/env.client.testing.ts.template +7 -0
  11. package/cjs/src/templates/app/env/env.server.debug.ts.template +15 -0
  12. package/cjs/src/templates/app/env/env.server.develop.ts.template +15 -0
  13. package/cjs/src/templates/app/env/env.server.local.ts.template +15 -0
  14. package/cjs/src/templates/app/env/env.server.main.ts.template +15 -0
  15. package/cjs/src/templates/app/env/env.server.testing.ts.template +7 -0
  16. package/cjs/src/templates/app/main.js +2 -1
  17. package/cjs/src/templates/app/page.test.ts.template +10 -0
  18. package/cjs/src/templates/app/playwright.config.ts.template +6 -0
  19. package/cjs/src/templates/app/postcss.config.js.template +10 -0
  20. package/cjs/src/templates/app/public/manifest.json.template +67 -0
  21. package/cjs/src/templates/app/tsconfig.json.template +22 -0
  22. package/cjs/src/templates/app/tsconfig.spec.json.template +7 -0
  23. package/cjs/src/templates/libRoot/.gitignore.template +15 -0
  24. package/cjs/src/templates/libRoot/env/env.server.example.ts.template +7 -0
  25. package/cjs/src/templates/libRoot/env/env.server.testing.ts.template +7 -0
  26. package/cjs/src/templates/libRoot/package.json.template +4 -0
  27. package/cjs/src/templates/libRoot/tsconfig.json.template +13 -0
  28. package/cjs/src/templates/libRoot/tsconfig.spec.json.template +7 -0
  29. package/cjs/src/templates/localDev/docker-compose.yaml.template +36 -0
  30. package/cjs/src/templates/pkgRoot/tsconfig.json.template +15 -0
  31. package/cjs/src/templates/workspaceRoot/.env.template +20 -0
  32. package/cjs/src/templates/workspaceRoot/.gitignore.template +118 -0
  33. package/cjs/src/templates/workspaceRoot/.prettierignore.template +10 -0
  34. package/cjs/src/templates/workspaceRoot/.prettierrc.json.template +6 -0
  35. package/cjs/src/templates/workspaceRoot/.swcrc.template +9 -0
  36. package/cjs/src/templates/workspaceRoot/.vscode/settings.json.template +13 -0
  37. package/cjs/src/templates/workspaceRoot/README.md.template +37 -0
  38. package/cjs/src/templates/workspaceRoot/eslint.config.ts.template +3 -0
  39. package/cjs/src/templates/workspaceRoot/package.json.template +43 -0
  40. package/cjs/src/templates/workspaceRoot/tsconfig.json.template +29 -0
  41. package/esm/index.js +61 -20
  42. package/esm/src/guidelines/___library/sharedUiStructureDescription.en.md +0 -18
  43. package/esm/src/templates/app/app/[lang]/(__appName__)/styles.css.template +19 -0
  44. package/esm/src/templates/app/app/index.html.template +13 -0
  45. package/esm/src/templates/app/capacitor.config.ts.template +8 -0
  46. package/esm/src/templates/app/env/env.client.debug.ts.template +7 -0
  47. package/esm/src/templates/app/env/env.client.develop.ts.template +7 -0
  48. package/esm/src/templates/app/env/env.client.local.ts.template +7 -0
  49. package/esm/src/templates/app/env/env.client.main.ts.template +7 -0
  50. package/esm/src/templates/app/env/env.client.testing.ts.template +7 -0
  51. package/esm/src/templates/app/env/env.server.debug.ts.template +15 -0
  52. package/esm/src/templates/app/env/env.server.develop.ts.template +15 -0
  53. package/esm/src/templates/app/env/env.server.local.ts.template +15 -0
  54. package/esm/src/templates/app/env/env.server.main.ts.template +15 -0
  55. package/esm/src/templates/app/env/env.server.testing.ts.template +7 -0
  56. package/esm/src/templates/app/main.js +2 -1
  57. package/esm/src/templates/app/page.test.ts.template +10 -0
  58. package/esm/src/templates/app/playwright.config.ts.template +6 -0
  59. package/esm/src/templates/app/postcss.config.js.template +10 -0
  60. package/esm/src/templates/app/public/manifest.json.template +67 -0
  61. package/esm/src/templates/app/tsconfig.json.template +22 -0
  62. package/esm/src/templates/app/tsconfig.spec.json.template +7 -0
  63. package/esm/src/templates/libRoot/.gitignore.template +15 -0
  64. package/esm/src/templates/libRoot/env/env.server.example.ts.template +7 -0
  65. package/esm/src/templates/libRoot/env/env.server.testing.ts.template +7 -0
  66. package/esm/src/templates/libRoot/package.json.template +4 -0
  67. package/esm/src/templates/libRoot/tsconfig.json.template +13 -0
  68. package/esm/src/templates/libRoot/tsconfig.spec.json.template +7 -0
  69. package/esm/src/templates/localDev/docker-compose.yaml.template +36 -0
  70. package/esm/src/templates/pkgRoot/tsconfig.json.template +15 -0
  71. package/esm/src/templates/workspaceRoot/.env.template +20 -0
  72. package/esm/src/templates/workspaceRoot/.gitignore.template +118 -0
  73. package/esm/src/templates/workspaceRoot/.prettierignore.template +10 -0
  74. package/esm/src/templates/workspaceRoot/.prettierrc.json.template +6 -0
  75. package/esm/src/templates/workspaceRoot/.swcrc.template +9 -0
  76. package/esm/src/templates/workspaceRoot/.vscode/settings.json.template +13 -0
  77. package/esm/src/templates/workspaceRoot/README.md.template +37 -0
  78. package/esm/src/templates/workspaceRoot/eslint.config.ts.template +3 -0
  79. package/esm/src/templates/workspaceRoot/package.json.template +43 -0
  80. package/esm/src/templates/workspaceRoot/tsconfig.json.template +29 -0
  81. package/package.json +1 -1
  82. package/src/application/application.command.d.ts +1 -0
  83. package/src/application/application.runner.d.ts +6 -1
  84. package/src/application/application.script.d.ts +3 -1
  85. 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: [...new Set(routes.map(({ basePath: basePath2 }) => basePath2))].join(",")
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
- const spinner = app.spinning("Building frontend...");
3996
- await this.#runner.buildFrontend(app);
3997
- spinner.succeed(`Frontend built in dist/apps/${app.name}/frontend`);
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: [`${pkg.cwdPath}/src/templates/**/*.ts`, `${pkg.cwdPath}/src/guidelines/**/*.md`]
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,8 @@
1
+ //! will be replaced with akan.config.ts
2
+ import { withBase } from "@akanjs/config/capacitor.base.config";
3
+
4
+ export default withBase((config) => {
5
+ return {
6
+ ...config,
7
+ };
8
+ });
@@ -0,0 +1,7 @@
1
+ import { baseClientEnv } from "@akanjs/base";
2
+
3
+ import { AppClientEnv } from "./env.client.type";
4
+
5
+ export const env: AppClientEnv = {
6
+ ...baseClientEnv,
7
+ } as const;
@@ -0,0 +1,7 @@
1
+ import { baseClientEnv } from "@akanjs/base";
2
+
3
+ import { AppClientEnv } from "./env.client.type";
4
+
5
+ export const env: AppClientEnv = {
6
+ ...baseClientEnv,
7
+ } as const;
@@ -0,0 +1,7 @@
1
+ import { baseClientEnv } from "@akanjs/base";
2
+
3
+ import { AppClientEnv } from "./env.client.type";
4
+
5
+ export const env: AppClientEnv = {
6
+ ...baseClientEnv,
7
+ } as const;
@@ -0,0 +1,7 @@
1
+ import { baseClientEnv } from "@akanjs/base";
2
+
3
+ import { AppClientEnv } from "./env.client.type";
4
+
5
+ export const env: AppClientEnv = {
6
+ ...baseClientEnv,
7
+ } as const;
@@ -0,0 +1,7 @@
1
+ import { baseClientEnv } from "@akanjs/base";
2
+
3
+ import { AppClientEnv } from "./env.client.type";
4
+
5
+ export const env: AppClientEnv = {
6
+ ...baseClientEnv,
7
+ } as const;
@@ -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
+ };
@@ -0,0 +1,7 @@
1
+ import { env as shared } from "@shared/server";
2
+
3
+ import type { ModulesOptions } from "../lib/option";
4
+
5
+ export const env: ModulesOptions = {
6
+ ...shared,
7
+ };
@@ -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,6 @@
1
+ //! will be replaced with akan.config.ts
2
+ import { withBase } from "@akanjs/test/playwright.config.base";
3
+
4
+ const config = withBase(__filename);
5
+
6
+ export default config;
@@ -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,7 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "types": ["jest", "node"]
5
+ },
6
+ "include": ["jest.config.ts", "**/*.test.ts"]
7
+ }
@@ -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,7 @@
1
+ import { env as shared } from "@shared/server";
2
+
3
+ import type { ModulesOptions } from "../lib/option";
4
+
5
+ export const env: ModulesOptions = {
6
+ ...shared,
7
+ };
@@ -0,0 +1,7 @@
1
+ import { env as shared } from "@shared/server";
2
+
3
+ import type { ModulesOptions } from "../lib/option";
4
+
5
+ export const env: ModulesOptions = {
6
+ ...shared,
7
+ };
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "@<%= libName %>",
3
+ "version": "0.0.1"
4
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "jsx": "preserve",
5
+ "declaration": true,
6
+ "declarationDir": "dist"
7
+ },
8
+ "references": [
9
+ {
10
+ "path": "./tsconfig.spec.json"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "types": ["jest", "node"]
5
+ },
6
+ "include": ["jest.config.ts", "**/*.test.ts"]
7
+ }
@@ -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