@simplysm/sd-cli 14.0.19 → 14.0.21

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 (89) hide show
  1. package/dist/angular/vite-postcss-inline-plugin.d.ts.map +1 -1
  2. package/dist/angular/vite-postcss-inline-plugin.js +4 -1
  3. package/dist/angular/vite-postcss-inline-plugin.js.map +1 -1
  4. package/dist/capacitor/capacitor-android.d.ts +16 -0
  5. package/dist/capacitor/capacitor-android.d.ts.map +1 -0
  6. package/dist/capacitor/capacitor-android.js +289 -0
  7. package/dist/capacitor/capacitor-android.js.map +1 -0
  8. package/dist/capacitor/capacitor.d.ts +0 -49
  9. package/dist/capacitor/capacitor.d.ts.map +1 -1
  10. package/dist/capacitor/capacitor.js +4 -244
  11. package/dist/capacitor/capacitor.js.map +1 -1
  12. package/dist/commands/check.js +2 -2
  13. package/dist/commands/check.js.map +1 -1
  14. package/dist/commands/lint.d.ts +1 -42
  15. package/dist/commands/lint.d.ts.map +1 -1
  16. package/dist/commands/lint.js +1 -151
  17. package/dist/commands/lint.js.map +1 -1
  18. package/dist/commands/publish.d.ts.map +1 -1
  19. package/dist/commands/publish.js +2 -1
  20. package/dist/commands/publish.js.map +1 -1
  21. package/dist/commands/typecheck.d.ts +3 -40
  22. package/dist/commands/typecheck.d.ts.map +1 -1
  23. package/dist/commands/typecheck.js +3 -232
  24. package/dist/commands/typecheck.js.map +1 -1
  25. package/dist/electron/electron.js +11 -4
  26. package/dist/electron/electron.js.map +1 -1
  27. package/dist/orchestrators/DevWatchOrchestrator.d.ts +1 -0
  28. package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -1
  29. package/dist/orchestrators/DevWatchOrchestrator.js +10 -6
  30. package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -1
  31. package/dist/orchestrators/TypecheckOrchestrator.d.ts +74 -0
  32. package/dist/orchestrators/TypecheckOrchestrator.d.ts.map +1 -0
  33. package/dist/orchestrators/TypecheckOrchestrator.js +285 -0
  34. package/dist/orchestrators/TypecheckOrchestrator.js.map +1 -0
  35. package/dist/sd-cli.js +6 -1
  36. package/dist/sd-cli.js.map +1 -1
  37. package/dist/utils/lint-core.d.ts +43 -0
  38. package/dist/utils/lint-core.d.ts.map +1 -0
  39. package/dist/utils/lint-core.js +154 -0
  40. package/dist/utils/lint-core.js.map +1 -0
  41. package/dist/utils/lint-utils.d.ts +1 -1
  42. package/dist/utils/lint-utils.d.ts.map +1 -1
  43. package/dist/utils/server-production-files.d.ts +22 -0
  44. package/dist/utils/server-production-files.d.ts.map +1 -0
  45. package/dist/utils/server-production-files.js +162 -0
  46. package/dist/utils/server-production-files.js.map +1 -0
  47. package/dist/workers/lint.worker.d.ts +1 -1
  48. package/dist/workers/lint.worker.d.ts.map +1 -1
  49. package/dist/workers/lint.worker.js +1 -1
  50. package/dist/workers/lint.worker.js.map +1 -1
  51. package/dist/workers/server-build.worker.d.ts.map +1 -1
  52. package/dist/workers/server-build.worker.js +11 -161
  53. package/dist/workers/server-build.worker.js.map +1 -1
  54. package/package.json +4 -4
  55. package/src/angular/vite-postcss-inline-plugin.ts +5 -1
  56. package/src/capacitor/capacitor-android.ts +368 -0
  57. package/src/capacitor/capacitor.ts +4 -317
  58. package/src/commands/check.ts +2 -2
  59. package/src/commands/lint.ts +1 -201
  60. package/src/commands/publish.ts +2 -1
  61. package/src/commands/typecheck.ts +7 -292
  62. package/src/electron/electron.ts +4 -4
  63. package/src/orchestrators/DevWatchOrchestrator.ts +10 -6
  64. package/src/orchestrators/TypecheckOrchestrator.ts +364 -0
  65. package/src/sd-cli.ts +6 -1
  66. package/src/utils/lint-core.ts +205 -0
  67. package/src/utils/lint-utils.ts +1 -1
  68. package/src/utils/server-production-files.ts +186 -0
  69. package/src/workers/lint.worker.ts +1 -1
  70. package/src/workers/server-build.worker.ts +10 -185
  71. package/tests/angular/vite-postcss-inline-plugin.spec.ts +10 -0
  72. package/tests/capacitor/capacitor-android-exports.verify.md +11 -0
  73. package/tests/capacitor/capacitor-android.spec.ts +219 -0
  74. package/tests/capacitor/capacitor-build.spec.ts +17 -21
  75. package/tests/capacitor/capacitor-icon.spec.ts +17 -19
  76. package/tests/capacitor/capacitor-init.spec.ts +18 -14
  77. package/tests/capacitor/capacitor-run.spec.ts +10 -24
  78. package/tests/capacitor/capacitor-workspace.spec.ts +10 -15
  79. package/tests/commands/check.spec.ts +2 -2
  80. package/tests/commands/lint.spec.ts +33 -194
  81. package/tests/commands/publish-set.verify.md +7 -0
  82. package/tests/electron/electron-symlink-cleanup.verify.md +8 -0
  83. package/tests/orchestrators/dist-delete-watcher.verify.md +10 -0
  84. package/tests/orchestrators/typecheck-orchestrator.spec.ts +180 -0
  85. package/tests/sd-cli-catch-all.verify.md +7 -0
  86. package/tests/utils/lint-core-import-paths.verify.md +10 -0
  87. package/tests/utils/lint-core.spec.ts +188 -0
  88. package/tests/utils/server-production-files-import-paths.verify.md +14 -0
  89. package/tests/workers/server-build-context-dispose.verify.md +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sd-cli.js","sourceRoot":"","sources":["../src/sd-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-cli.js","sourceRoot":"","sources":["../src/sd-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * ESLint 실행 옵션
3
+ */
4
+ export interface LintOptions {
5
+ /** 린트 대상 경로 필터 (예: `packages/core-common`). 빈 배열이면 전체 대상 */
6
+ targets: string[];
7
+ /** 자동 수정 활성화 */
8
+ fix: boolean;
9
+ /** ESLint 규칙별 실행 시간 측정 활성화 (TIMING 환경변수 설정) */
10
+ timing: boolean;
11
+ }
12
+ /**
13
+ * executeLint()의 반환 타입
14
+ */
15
+ export interface LintResult {
16
+ /** 린트 에러가 없으면 true */
17
+ success: boolean;
18
+ /** ESLint 전체 에러 수 */
19
+ errorCount: number;
20
+ /** ESLint 전체 경고 수 */
21
+ warningCount: number;
22
+ /** 포매터 출력 문자열 (stdout에 출력할 내용) */
23
+ formattedOutput: string;
24
+ }
25
+ /**
26
+ * eslint.config.ts/js에서 globalIgnores 패턴을 추출한다.
27
+ * ignores만 있고 files가 없는 설정 객체가 globalIgnores이다.
28
+ * @internal 테스트용으로 export
29
+ */
30
+ export declare function loadIgnorePatterns(cwd: string): Promise<string[]>;
31
+ /**
32
+ * ESLint를 실행하고 결과를 반환한다.
33
+ *
34
+ * - `eslint.config.ts/js`에서 globalIgnores 패턴을 추출하여 glob 필터링에 적용
35
+ * - consola를 사용하여 진행 상황 표시
36
+ * - 캐시 활성화 (`.cache/eslint.cache`에 저장, 설정 변경 시 자동 무효화)
37
+ * - stdout 출력이나 process.exitCode 설정 없음 (호출자가 결정)
38
+ *
39
+ * @param options - 린트 실행 옵션
40
+ * @returns 린트 결과 (성공 여부, 에러/경고 수, 포매터 출력)
41
+ */
42
+ export declare function executeLint(options: LintOptions): Promise<LintResult>;
43
+ //# sourceMappingURL=lint-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-core.d.ts","sourceRoot":"","sources":["../../src/utils/lint-core.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB;AA0BD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuCvE;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAkF3E"}
@@ -0,0 +1,154 @@
1
+ import { ESLint } from "eslint";
2
+ import { createJiti } from "jiti";
3
+ import path from "path";
4
+ import { fsx, pathx } from "@simplysm/core-node";
5
+ import { env, SdError } from "@simplysm/core-common";
6
+ import { consola } from "consola";
7
+ //#endregion
8
+ //#region Utilities
9
+ /** ESLint 설정 파일 검색 순서 */
10
+ const ESLINT_CONFIG_FILES = [
11
+ "eslint.config.ts",
12
+ "eslint.config.mts",
13
+ "eslint.config.js",
14
+ "eslint.config.mjs",
15
+ ];
16
+ /**
17
+ * ESLint 설정 객체가 ignores 속성만 가지고 있는지 확인하는 타입 가드
18
+ */
19
+ function isGlobalIgnoresConfig(item) {
20
+ if (item == null || typeof item !== "object")
21
+ return false;
22
+ if (!("ignores" in item))
23
+ return false;
24
+ if ("files" in item)
25
+ return false; // files가 있으면 globalIgnores가 아님
26
+ const ignores = item.ignores;
27
+ if (!Array.isArray(ignores))
28
+ return false;
29
+ return ignores.every((i) => typeof i === "string");
30
+ }
31
+ /**
32
+ * eslint.config.ts/js에서 globalIgnores 패턴을 추출한다.
33
+ * ignores만 있고 files가 없는 설정 객체가 globalIgnores이다.
34
+ * @internal 테스트용으로 export
35
+ */
36
+ export async function loadIgnorePatterns(cwd) {
37
+ let configPath;
38
+ for (const f of ESLINT_CONFIG_FILES) {
39
+ const p = path.join(cwd, f);
40
+ if (await fsx.exists(p)) {
41
+ configPath = p;
42
+ break;
43
+ }
44
+ }
45
+ if (configPath == null) {
46
+ throw new SdError(`ESLint 설정 파일을 찾을 수 없습니다 (cwd: ${cwd}): ${ESLINT_CONFIG_FILES.join(", ")}`);
47
+ }
48
+ const jiti = createJiti(import.meta.url);
49
+ const configModule = await jiti.import(configPath);
50
+ let configs;
51
+ if (Array.isArray(configModule)) {
52
+ configs = configModule;
53
+ }
54
+ else if (configModule != null &&
55
+ typeof configModule === "object" &&
56
+ "default" in configModule) {
57
+ configs = configModule.default;
58
+ }
59
+ else {
60
+ throw new SdError(`ESLint 설정 파일의 형식이 올바르지 않습니다: ${configPath}`);
61
+ }
62
+ if (!Array.isArray(configs)) {
63
+ throw new SdError(`ESLint 설정이 배열이 아닙니다: ${configPath}`);
64
+ }
65
+ return configs.filter(isGlobalIgnoresConfig).flatMap((item) => item.ignores);
66
+ }
67
+ //#endregion
68
+ //#region Main
69
+ /**
70
+ * ESLint를 실행하고 결과를 반환한다.
71
+ *
72
+ * - `eslint.config.ts/js`에서 globalIgnores 패턴을 추출하여 glob 필터링에 적용
73
+ * - consola를 사용하여 진행 상황 표시
74
+ * - 캐시 활성화 (`.cache/eslint.cache`에 저장, 설정 변경 시 자동 무효화)
75
+ * - stdout 출력이나 process.exitCode 설정 없음 (호출자가 결정)
76
+ *
77
+ * @param options - 린트 실행 옵션
78
+ * @returns 린트 결과 (성공 여부, 에러/경고 수, 포매터 출력)
79
+ */
80
+ export async function executeLint(options) {
81
+ const { targets, fix, timing } = options;
82
+ const cwd = process.cwd();
83
+ const logger = consola.withTag("sd:cli:lint");
84
+ logger.debug("린트 시작", { targets, fix, timing });
85
+ // TIMING 환경변수 설정
86
+ if (timing) {
87
+ env("TIMING", "1");
88
+ }
89
+ // ESLint 설정 로드
90
+ logger.start("ESLint 설정 로딩 중");
91
+ const ignorePatterns = await loadIgnorePatterns(cwd);
92
+ logger.debug("무시 패턴 로드 완료", { ignorePatternCount: ignorePatterns.length });
93
+ logger.success(`ESLint 설정 로드 완료 (${ignorePatterns.length}개 무시 패턴)`);
94
+ // 린트 대상 파일 수집
95
+ logger.start("린트 대상 파일 수집 중");
96
+ let files = await fsx.glob("**/*.{ts,js,mjs,cjs}", {
97
+ cwd,
98
+ ignore: ignorePatterns,
99
+ nodir: true,
100
+ absolute: true,
101
+ });
102
+ files = pathx.filterByTargets(files, targets, cwd);
103
+ logger.debug("파일 수집 완료", { fileCount: files.length });
104
+ logger.success(`린트 대상 파일 수집 완료 (${files.length}개 파일)`);
105
+ // 린트 실행
106
+ let eslint;
107
+ let eslintResults;
108
+ if (files.length > 0) {
109
+ logger.start(`린트 실행 중... (${files.length}개 파일)`);
110
+ eslint = new ESLint({
111
+ cwd,
112
+ fix,
113
+ cache: true,
114
+ cacheLocation: path.join(cwd, ".cache", "eslint.cache"),
115
+ });
116
+ eslintResults = await eslint.lintFiles(files);
117
+ logger.success("린트 실행 완료");
118
+ // 자동 수정 적용
119
+ if (fix) {
120
+ logger.debug("자동 수정 적용 중...");
121
+ await ESLint.outputFixes(eslintResults);
122
+ logger.debug("자동 수정 적용 완료");
123
+ }
124
+ }
125
+ // 파일이 없거나 린트가 실행되지 않은 경우 성공 결과 반환
126
+ if (files.length === 0 || eslintResults == null || eslint == null) {
127
+ logger.info("린트할 파일 없음");
128
+ return { success: true, errorCount: 0, warningCount: 0, formattedOutput: "" };
129
+ }
130
+ // 결과 집계
131
+ let errorCount = eslintResults.sum((r) => r.errorCount);
132
+ let warningCount = eslintResults.sum((r) => r.warningCount);
133
+ if (errorCount > 0) {
134
+ logger.error("린트 에러 발생", { errorCount, warningCount });
135
+ }
136
+ else {
137
+ logger.info("린트 완료", { errorCount, warningCount });
138
+ }
139
+ // 포매터 출력 수집
140
+ let formattedOutput = "";
141
+ const formatter = await eslint.loadFormatter("stylish");
142
+ const resultText = await formatter.format(eslintResults);
143
+ if (resultText) {
144
+ formattedOutput += resultText;
145
+ }
146
+ return {
147
+ success: errorCount === 0,
148
+ errorCount,
149
+ warningCount,
150
+ formattedOutput,
151
+ };
152
+ }
153
+ //#endregion
154
+ //# sourceMappingURL=lint-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-core.js","sourceRoot":"","sources":["../../src/utils/lint-core.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { LintOptions, LintResult } from "../commands/lint";
1
+ import type { LintOptions, LintResult } from "./lint-core";
2
2
  /**
3
3
  * lint Worker를 생성하고 실행한 뒤 terminate하는 공통 유틸.
4
4
  * BuildOrchestrator.start()와 check.ts에서 호출한다.
@@ -1 +1 @@
1
- {"version":3,"file":"lint-utils.d.ts","sourceRoot":"","sources":["../../src/utils/lint-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGhE;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAQ/E"}
1
+ {"version":3,"file":"lint-utils.d.ts","sourceRoot":"","sources":["../../src/utils/lint-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3D;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAQ/E"}
@@ -0,0 +1,22 @@
1
+ import type { ServerBuildInfo } from "../workers/server-build.worker";
2
+ /**
3
+ * 세 가지 소스에서 외부 모듈을 수집하고 병합한다.
4
+ * collectAllDependencyExternals를 통한 단일 패스 의존성 트리 순회를 사용한다.
5
+ */
6
+ export declare function collectAllExternals(pkgDir: string, manualExternals?: string[]): string[];
7
+ /**
8
+ * pnpm-lock.yaml의 packages 섹션을 파싱하여 name→version 맵을 생성한다.
9
+ * Lockfile v9 형식: `packages:` 섹션의 `'name@version':` 키를 파싱한다.
10
+ * YAML 파서 의존성을 피하기 위해 단순 라인 기반 파싱을 사용한다.
11
+ */
12
+ export declare function parseLockfileVersions(cwd: string): Map<string, string>;
13
+ /**
14
+ * pnpm-lock.yaml에서 주어진 모든 패키지의 잠긴 버전을 확인한다.
15
+ * lockfile에서 패키지를 찾을 수 없으면 에러를 던진다.
16
+ */
17
+ export declare function resolveLockedVersions(cwd: string, pkgNames: string[]): Record<string, string>;
18
+ /**
19
+ * 프로덕션 배포용 파일을 생성한다
20
+ */
21
+ export declare function generateProductionFiles(info: ServerBuildInfo, externals: string[]): void;
22
+ //# sourceMappingURL=server-production-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-production-files.d.ts","sourceRoot":"","sources":["../../src/utils/server-production-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAStE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAMxF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCtE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc7F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAgGN"}
@@ -0,0 +1,162 @@
1
+ import path from "path";
2
+ import fs from "fs";
3
+ import { cpx } from "@simplysm/core-node";
4
+ import { consola } from "consola";
5
+ import { collectAllDependencyExternals } from "./esbuild-config.js";
6
+ const logger = consola.withTag("sd:cli:server-production-files");
7
+ /**
8
+ * 세 가지 소스에서 외부 모듈을 수집하고 병합한다.
9
+ * collectAllDependencyExternals를 통한 단일 패스 의존성 트리 순회를 사용한다.
10
+ */
11
+ export function collectAllExternals(pkgDir, manualExternals) {
12
+ logger.debug("의존성 트리 스캔 중...");
13
+ const { optionalPeerDeps, nativeModules } = collectAllDependencyExternals(pkgDir);
14
+ const manual = manualExternals ?? [];
15
+ return [...new Set([...optionalPeerDeps, ...nativeModules, ...manual])];
16
+ }
17
+ /**
18
+ * pnpm-lock.yaml의 packages 섹션을 파싱하여 name→version 맵을 생성한다.
19
+ * Lockfile v9 형식: `packages:` 섹션의 `'name@version':` 키를 파싱한다.
20
+ * YAML 파서 의존성을 피하기 위해 단순 라인 기반 파싱을 사용한다.
21
+ */
22
+ export function parseLockfileVersions(cwd) {
23
+ const lockfilePath = path.join(cwd, "pnpm-lock.yaml");
24
+ if (!fs.existsSync(lockfilePath)) {
25
+ throw new Error(`pnpm-lock.yaml not found in ${cwd}. Run "pnpm install" first.`);
26
+ }
27
+ const content = fs.readFileSync(lockfilePath, "utf-8");
28
+ const map = new Map();
29
+ // "packages:" 섹션을 찾고 "'@scope/name@1.2.3':" 또는 "'name@1.2.3':" 형태의 항목을 파싱
30
+ const lines = content.split("\n");
31
+ let inPackages = false;
32
+ for (const line of lines) {
33
+ if (line === "packages:") {
34
+ inPackages = true;
35
+ continue;
36
+ }
37
+ if (inPackages && line.length > 0 && !line.startsWith(" ") && !line.startsWith("'")) {
38
+ break; // 다음 최상위 섹션
39
+ }
40
+ if (!inPackages)
41
+ continue;
42
+ // "'@scope/name@version':" 또는 "'name@version':" 매칭
43
+ const match = /^\s{2}'(.+)@(\d[^']*)':\s*$/.exec(line);
44
+ if (match != null) {
45
+ const name = match[1];
46
+ const version = match[2];
47
+ // 첫 번째 항목 유지 (lockfile은 각 버전을 한 번만 기록)
48
+ if (!map.has(name)) {
49
+ map.set(name, version);
50
+ }
51
+ }
52
+ }
53
+ return map;
54
+ }
55
+ /**
56
+ * pnpm-lock.yaml에서 주어진 모든 패키지의 잠긴 버전을 확인한다.
57
+ * lockfile에서 패키지를 찾을 수 없으면 에러를 던진다.
58
+ */
59
+ export function resolveLockedVersions(cwd, pkgNames) {
60
+ const versionMap = parseLockfileVersions(cwd);
61
+ const result = {};
62
+ for (const name of pkgNames) {
63
+ const version = versionMap.get(name);
64
+ if (version == null) {
65
+ throw new Error(`External dependency "${name}" not found in pnpm-lock.yaml. ` +
66
+ `Run "pnpm install" and try again.`);
67
+ }
68
+ result[name] = version;
69
+ }
70
+ return result;
71
+ }
72
+ /**
73
+ * 프로덕션 배포용 파일을 생성한다
74
+ */
75
+ export function generateProductionFiles(info, externals) {
76
+ const distDir = path.join(info.pkgDir, "dist");
77
+ const pkgJson = JSON.parse(fs.readFileSync(path.join(info.pkgDir, "package.json"), "utf-8"));
78
+ // dist/package.json
79
+ const distPkgJson = {
80
+ name: pkgJson.name,
81
+ version: pkgJson.version,
82
+ type: pkgJson.type,
83
+ };
84
+ if (externals.length > 0) {
85
+ distPkgJson["dependencies"] = resolveLockedVersions(info.cwd, externals);
86
+ }
87
+ if (info.packageManager === "volta") {
88
+ const nodeVersion = cpx.spawnSync("node", ["-v"]).stdout.trim();
89
+ distPkgJson["volta"] = { node: nodeVersion };
90
+ }
91
+ fs.writeFileSync(path.join(distDir, "package.json"), JSON.stringify(distPkgJson, undefined, 2));
92
+ // dist/mise.toml
93
+ if (info.packageManager === "mise") {
94
+ const rootMiseTomlPath = path.join(info.cwd, "mise.toml");
95
+ let nodeVersion = "20";
96
+ if (fs.existsSync(rootMiseTomlPath)) {
97
+ const miseContent = fs.readFileSync(rootMiseTomlPath, "utf-8");
98
+ const match = /node\s*=\s*"([^"]+)"/.exec(miseContent);
99
+ if (match != null) {
100
+ nodeVersion = match[1];
101
+ }
102
+ }
103
+ fs.writeFileSync(path.join(distDir, "mise.toml"), `[tools]\nnode = "${nodeVersion}"\n`);
104
+ }
105
+ // dist/openssl.cnf
106
+ fs.writeFileSync(path.join(distDir, "openssl.cnf"), [
107
+ "nodejs_conf = openssl_init",
108
+ "",
109
+ "[openssl_init]",
110
+ "providers = provider_sect",
111
+ "ssl_conf = ssl_sect",
112
+ "",
113
+ "[provider_sect]",
114
+ "default = default_sect",
115
+ "legacy = legacy_sect",
116
+ "",
117
+ "[default_sect]",
118
+ "activate = 1",
119
+ "",
120
+ "[legacy_sect]",
121
+ "activate = 1",
122
+ "",
123
+ "[ssl_sect]",
124
+ "system_default = system_default_sect",
125
+ "",
126
+ "[system_default_sect]",
127
+ "Options = UnsafeLegacyRenegotiation",
128
+ ].join("\n"));
129
+ // dist/pm2.config.cjs
130
+ if (info.pm2 != null) {
131
+ const pm2Name = info.pm2.name ?? pkgJson.name.replace(/@/g, "").replace(/[/\\]/g, "-");
132
+ const ignoreWatch = JSON.stringify([
133
+ "node_modules",
134
+ "www",
135
+ ...(info.pm2.ignoreWatchPaths ?? []),
136
+ ]);
137
+ const envObj = {
138
+ NODE_ENV: "production",
139
+ TZ: "Asia/Seoul",
140
+ ...(info.env ?? {}),
141
+ };
142
+ const envStr = JSON.stringify(envObj, undefined, 4);
143
+ const useInterpreter = info.packageManager !== "volta";
144
+ const pm2Config = [
145
+ ...(useInterpreter ? [`const cp = require("child_process");`, ``] : []),
146
+ `module.exports = {`,
147
+ ` name: ${JSON.stringify(pm2Name)},`,
148
+ ` script: "main.js",`,
149
+ ` watch: true,`,
150
+ ` watch_delay: 2000,`,
151
+ ` ignore_watch: ${ignoreWatch},`,
152
+ ...(useInterpreter ? [` interpreter: cp.execSync("mise which node").toString().trim(),`] : []),
153
+ ` interpreter_args: "--openssl-config=openssl.cnf",`,
154
+ ` env: ${envStr.replace(/\n/g, "\n ")},`,
155
+ ` arrayProcess: "concat",`,
156
+ ` useDelTargetNull: true,`,
157
+ `};`,
158
+ ].join("\n");
159
+ fs.writeFileSync(path.join(distDir, "pm2.config.cjs"), pm2Config);
160
+ }
161
+ }
162
+ //# sourceMappingURL=server-production-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-production-files.js","sourceRoot":"","sources":["../../src/utils/server-production-files.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type LintOptions, type LintResult } from "../commands/lint";
1
+ import { type LintOptions, type LintResult } from "../utils/lint-core";
2
2
  /**
3
3
  * lint 워커.
4
4
  * check 명령어와 BuildOrchestrator에서 별도 스레드로 lint를 실행하는 워커
@@ -1 +1 @@
1
- {"version":3,"file":"lint.worker.d.ts","sourceRoot":"","sources":["../../src/workers/lint.worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIlF;;;GAGG;AACH,iBAAe,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAE7D;;;;;;;;AAED,wBAAsC"}
1
+ {"version":3,"file":"lint.worker.d.ts","sourceRoot":"","sources":["../../src/workers/lint.worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIpF;;;GAGG;AACH,iBAAe,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAE7D;;;;;;;;AAED,wBAAsC"}
@@ -1,5 +1,5 @@
1
1
  import { createWorker } from "@simplysm/core-node";
2
- import { executeLint } from "../commands/lint.js";
2
+ import { executeLint } from "../utils/lint-core.js";
3
3
  //#region Worker
4
4
  /**
5
5
  * lint 워커.
@@ -1 +1 @@
1
- {"version":3,"file":"lint.worker.js","sourceRoot":"","sources":["../../src/workers/lint.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAqC,MAAM,kBAAkB,CAAC;AAElF,gBAAgB;AAEhB;;;GAGG;AACH,KAAK,UAAU,IAAI,CAAC,OAAoB;IACtC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,eAAe,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtC,YAAY"}
1
+ {"version":3,"file":"lint.worker.js","sourceRoot":"","sources":["../../src/workers/lint.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAqC,MAAM,oBAAoB,CAAC;AAEpF,gBAAgB;AAEhB;;;GAGG;AACH,KAAK,UAAU,IAAI,CAAC,OAAoB;IACtC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,eAAe,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtC,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-build.worker.d.ts","sourceRoot":"","sources":["../../src/workers/server-build.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-build.worker.d.ts","sourceRoot":"","sources":["../../src/workers/server-build.worker.ts"],"names":[],"mappings":"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"}