@simplysm/sd-cli 14.0.38 → 14.0.39

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 (50) hide show
  1. package/dist/angular/angular-build-pipeline.d.ts +1 -1
  2. package/dist/angular/angular-build-pipeline.js +1 -1
  3. package/dist/angular/client-transform-stylesheet.d.ts +1 -1
  4. package/dist/angular/client-transform-stylesheet.js +3 -3
  5. package/dist/esbuild/esbuild-client-config.d.ts +0 -2
  6. package/dist/esbuild/esbuild-client-config.d.ts.map +1 -1
  7. package/dist/esbuild/esbuild-client-config.js +19 -9
  8. package/dist/esbuild/esbuild-client-config.js.map +1 -1
  9. package/dist/esbuild/esbuild-postcss-plugin.d.ts +8 -0
  10. package/dist/esbuild/esbuild-postcss-plugin.d.ts.map +1 -0
  11. package/dist/esbuild/esbuild-postcss-plugin.js +105 -0
  12. package/dist/esbuild/esbuild-postcss-plugin.js.map +1 -0
  13. package/dist/esbuild/esbuild-tsc-plugin.d.ts +23 -0
  14. package/dist/esbuild/esbuild-tsc-plugin.d.ts.map +1 -0
  15. package/dist/esbuild/esbuild-tsc-plugin.js +60 -0
  16. package/dist/esbuild/esbuild-tsc-plugin.js.map +1 -0
  17. package/dist/workers/client.worker.d.ts.map +1 -1
  18. package/dist/workers/client.worker.js +32 -2
  19. package/dist/workers/client.worker.js.map +1 -1
  20. package/dist/workers/server-build.worker.d.ts.map +1 -1
  21. package/dist/workers/server-build.worker.js +129 -90
  22. package/dist/workers/server-build.worker.js.map +1 -1
  23. package/dist/workers/server-esbuild-context.d.ts +27 -0
  24. package/dist/workers/server-esbuild-context.d.ts.map +1 -1
  25. package/dist/workers/server-esbuild-context.js +43 -3
  26. package/dist/workers/server-esbuild-context.js.map +1 -1
  27. package/package.json +6 -4
  28. package/src/angular/angular-build-pipeline.ts +2 -2
  29. package/src/angular/client-transform-stylesheet.ts +4 -4
  30. package/src/esbuild/esbuild-client-config.ts +21 -12
  31. package/src/esbuild/esbuild-postcss-plugin.ts +117 -0
  32. package/src/esbuild/esbuild-tsc-plugin.ts +83 -0
  33. package/src/workers/client.worker.ts +32 -2
  34. package/src/workers/server-build.worker.ts +136 -97
  35. package/src/workers/server-esbuild-context.ts +59 -3
  36. package/tests/angular/client-transform-stylesheet.spec.ts +1 -1
  37. package/tests/esbuild/esbuild-tsc-plugin.acc.spec.ts +349 -0
  38. package/tests/esbuild/esbuild-tsc-plugin.spec.ts +230 -0
  39. package/tests/utils/esbuild-client-config-postcss.verify.md +6 -0
  40. package/tests/utils/esbuild-client-config.acc.spec.ts +26 -14
  41. package/tests/utils/esbuild-client-config.spec.ts +73 -11
  42. package/tests/utils/esbuild-postcss-plugin.acc.spec.ts +299 -0
  43. package/tests/utils/esbuild-postcss-plugin.spec.ts +290 -0
  44. package/tests/utils/esbuild-scss-plugin.acc.spec.ts +1 -0
  45. package/tests/workers/server-build-lint.spec.ts +43 -0
  46. package/tests/workers/server-build-worker-refactoring.verify.md +14 -0
  47. package/tests/workers/server-build-worker.spec.ts +122 -9
  48. package/tests/workers/server-esbuild-context-tsc.verify.md +7 -0
  49. package/tests/workers/server-esbuild-context.acc.spec.ts +156 -2
  50. package/tests/workers/server-esbuild-context.spec.ts +320 -2
@@ -7,6 +7,7 @@ import { parseTsconfig, getPackageSourceFiles, } from "../utils/tsconfig.js";
7
7
  import { createServerEsbuildOptions, writeChangedOutputFiles, } from "../esbuild/esbuild-config.js";
8
8
  import { collectAllExternals, generateProductionFiles } from "../deps/server-externals/server-production-files.js";
9
9
  import { runTscPackageBuild } from "../utils/tsc-build.js";
10
+ import { createTscPlugin } from "../esbuild/esbuild-tsc-plugin.js";
10
11
  import { LintWithProgramRunner } from "../lint/lint-with-program.js";
11
12
  import { setupWorkerLifecycle } from "./shared-worker-lifecycle.js";
12
13
  import { buildWatchPaths } from "./build-watch-paths.js";
@@ -21,7 +22,6 @@ let publicWatcher;
21
22
  let srcWatcher;
22
23
  async function cleanup() {
23
24
  await esbuildCtx.dispose();
24
- lastBuilderProgram = undefined;
25
25
  const watcherToClose = publicWatcher;
26
26
  publicWatcher = undefined;
27
27
  const srcWatcherToClose = srcWatcher;
@@ -48,15 +48,27 @@ async function build(info) {
48
48
  const entryPoints = getPackageSourceFiles(info.pkgDir, parsedConfig);
49
49
  // 외부 모듈 수집
50
50
  const external = collectAllExternals(info.pkgDir, info.externals);
51
- // esbuild (비동기) ‖ tsc (동기) 병렬 실행
52
- const esbuildOptions = createServerEsbuildOptions({
53
- pkgDir: info.pkgDir,
54
- entryPoints,
55
- env: info.env,
56
- external,
57
- });
58
- const esbuildPromise = info.output.js
59
- ? esbuild.build(esbuildOptions).then(async (result) => {
51
+ let jsResult;
52
+ let tscErrors;
53
+ let tscDiagnostics;
54
+ let tscProgram;
55
+ if (info.output.js) {
56
+ // js=true: tsc 플러그인 통합 — 단일 esbuild.build() 호출
57
+ const tscPlugin = createTscPlugin({
58
+ pkgDir: info.pkgDir,
59
+ cwd: info.cwd,
60
+ output: { dts: info.output.dts },
61
+ env: info.output.env,
62
+ includeTests: info.output.includeTests,
63
+ });
64
+ const esbuildOptions = createServerEsbuildOptions({
65
+ pkgDir: info.pkgDir,
66
+ entryPoints,
67
+ env: info.env,
68
+ external,
69
+ });
70
+ jsResult = await esbuild.build({ ...esbuildOptions, plugins: [tscPlugin.plugin] })
71
+ .then(async (result) => {
60
72
  if (result.outputFiles) {
61
73
  await writeChangedOutputFiles(result.outputFiles);
62
74
  }
@@ -67,33 +79,40 @@ async function build(info) {
67
79
  errors: errors.length > 0 ? errors : undefined,
68
80
  warnings: warnings.length > 0 ? warnings : undefined,
69
81
  };
70
- }).catch((err) => ({
82
+ })
83
+ .catch((err) => ({
71
84
  success: false,
72
85
  errors: [errNs.message(err)],
73
86
  warnings: undefined,
74
- }))
75
- : null;
76
- // tsc 타입체크 (항상 실행, emit은 output.dts로 제어)
77
- const tscResult = runTscPackageBuild({
78
- pkgDir: info.pkgDir,
79
- cwd: info.cwd,
80
- output: { js: false, dts: info.output.dts },
81
- parsedConfig,
82
- env: info.output.env,
83
- includeTests: info.output.includeTests,
84
- });
85
- const jsResult = esbuildPromise
86
- ? await esbuildPromise
87
- : { success: true, errors: undefined, warnings: undefined };
87
+ }));
88
+ tscErrors = tscPlugin.getErrors() ?? [];
89
+ tscDiagnostics = tscPlugin.getDiagnostics();
90
+ tscProgram = tscPlugin.getProgram();
91
+ }
92
+ else {
93
+ // js=false: runTscPackageBuild 직접 호출 (플러그인 경유 불가)
94
+ const tscResult = runTscPackageBuild({
95
+ pkgDir: info.pkgDir,
96
+ cwd: info.cwd,
97
+ output: { js: false, dts: info.output.dts },
98
+ parsedConfig,
99
+ env: info.output.env,
100
+ includeTests: info.output.includeTests,
101
+ });
102
+ jsResult = { success: true, errors: undefined, warnings: undefined };
103
+ tscErrors = tscResult.errors ?? [];
104
+ tscDiagnostics = tscResult.diagnostics;
105
+ tscProgram = tscResult.program;
106
+ }
88
107
  // lint 실행 (활성화 + program 사용 가능 시)
89
108
  let lint;
90
- if (info.output.lint === true && tscResult.program != null) {
109
+ if (info.output.lint === true && tscProgram != null) {
91
110
  logger.debug(`[${info.name}] lint 시작`);
92
111
  const lintRunner = new LintWithProgramRunner({
93
112
  cwd: info.cwd,
94
113
  pkgName: info.name,
95
114
  });
96
- lint = await lintRunner.lint({ program: tscResult.program });
115
+ lint = await lintRunner.lint({ program: tscProgram });
97
116
  logger.debug(`[${info.name}] lint 완료`);
98
117
  }
99
118
  // JS 출력이 요청된 경우에만 프로덕션 아티팩트 생성
@@ -103,14 +122,15 @@ async function build(info) {
103
122
  await copyPublicFiles(info.pkgDir, false);
104
123
  generateProductionFiles(info, external);
105
124
  }
106
- const allErrors = [...(jsResult.errors ?? []), ...(tscResult.errors ?? [])];
107
- logger.debug(`[${info.name}] server worker build 완료 (js: ${jsResult.success}, tsc: ${tscResult.success})`);
125
+ const allErrors = [...(jsResult.errors ?? []), ...tscErrors];
126
+ const tscSuccess = tscErrors.length === 0;
127
+ logger.debug(`[${info.name}] server worker build 완료 (js: ${jsResult.success}, tsc: ${tscSuccess})`);
108
128
  return {
109
129
  build: {
110
- success: jsResult.success && tscResult.success,
130
+ success: jsResult.success && tscSuccess,
111
131
  errors: allErrors.length > 0 ? allErrors : undefined,
112
132
  warnings: jsResult.warnings,
113
- diagnostics: tscResult.diagnostics,
133
+ diagnostics: tscDiagnostics,
114
134
  },
115
135
  lint,
116
136
  mainJsPath,
@@ -129,84 +149,103 @@ async function build(info) {
129
149
  };
130
150
  }
131
151
  }
132
- // watch 모드용 가변 상태
133
- let watchInfo;
134
- let watchLintRunner;
135
- let lastBuilderProgram;
136
- /**
137
- * esbuild + tsc 병렬 리빌드 (watch 모드)
138
- */
139
- async function rebuildAll() {
140
- const info = watchInfo;
141
- logger.debug(`[${info.name}] rebuildAll 시작`);
142
- const mainJsPath = pathx.posixResolve(info.pkgDir, "dist", "main.js");
143
- const parsedConfig = parseTsconfig(info.pkgDir);
144
- // esbuild 리빌드 (비동기)
145
- const esbuildPromise = info.output.js ? esbuildCtx.rebuild() : null;
146
- // tsc 리빌드 (동기, 증분)
147
- const tscResult = runTscPackageBuild({
148
- pkgDir: info.pkgDir,
149
- cwd: info.cwd,
150
- output: { js: false, dts: info.output.dts },
151
- parsedConfig,
152
- env: info.output.env,
153
- includeTests: info.output.includeTests,
154
- oldBuilderProgram: lastBuilderProgram,
155
- });
156
- lastBuilderProgram = tscResult.builderProgram ?? lastBuilderProgram;
157
- // lint 실행 (활성화 + program 사용 가능 시)
158
- let lint;
159
- if (info.output.lint === true && tscResult.program != null) {
160
- logger.debug(`[${info.name}] lint 시작`);
161
- if (watchLintRunner == null) {
162
- watchLintRunner = new LintWithProgramRunner({
163
- cwd: info.cwd,
164
- pkgName: info.name,
165
- });
166
- }
167
- lint = await watchLintRunner.lint({
168
- program: tscResult.program,
169
- affectedFiles: tscResult.affectedFiles,
170
- });
171
- logger.debug(`[${info.name}] lint 완료`);
172
- }
173
- const jsResult = esbuildPromise != null
174
- ? (await esbuildPromise) ?? { success: true, errors: undefined, warnings: undefined }
175
- : { success: true, errors: undefined, warnings: undefined };
176
- const allErrors = [...(jsResult.errors ?? []), ...(tscResult.errors ?? [])];
177
- logger.debug(`[${info.name}] rebuildAll 완료`);
178
- return {
179
- build: {
180
- success: jsResult.success && tscResult.success,
181
- errors: allErrors.length > 0 ? allErrors : undefined,
182
- warnings: jsResult.warnings,
183
- },
184
- lint,
185
- mainJsPath,
186
- };
187
- }
188
152
  /**
189
153
  * watch 모드 시작
190
154
  */
191
155
  async function startWatch(info) {
192
156
  guardStartWatch();
193
- watchInfo = info;
194
157
  logger.debug(`[${info.name}] server worker startWatch 시작`);
158
+ // watch 모드 로컬 상태 (클로저로 관리)
159
+ let lastBuilderProgram;
160
+ let watchLintRunner;
161
+ /**
162
+ * esbuild + tsc 리빌드 (watch 모드)
163
+ * js=true: esbuildCtx.rebuild() 단일 호출 (tsc 플러그인 자동 트리거)
164
+ * js=false: runTscPackageBuild 직접 호출
165
+ */
166
+ async function rebuildAll() {
167
+ logger.debug(`[${info.name}] rebuildAll 시작`);
168
+ const mainJsPath = pathx.posixResolve(info.pkgDir, "dist", "main.js");
169
+ let jsResult;
170
+ let tscProgram;
171
+ let tscAffectedFiles;
172
+ let tscErrors;
173
+ if (info.output.js) {
174
+ // js=true: esbuildCtx.rebuild() 단일 호출 (tsc 에러 자동 병합)
175
+ const rebuildResult = await esbuildCtx.rebuild();
176
+ jsResult = rebuildResult ?? { success: true, errors: undefined, warnings: undefined };
177
+ tscProgram = esbuildCtx.getTscProgram();
178
+ tscAffectedFiles = esbuildCtx.getTscAffectedFiles();
179
+ tscErrors = [];
180
+ }
181
+ else {
182
+ // js=false: runTscPackageBuild 직접 호출
183
+ const parsedConfig = parseTsconfig(info.pkgDir);
184
+ const tscResult = runTscPackageBuild({
185
+ pkgDir: info.pkgDir,
186
+ cwd: info.cwd,
187
+ output: { js: false, dts: info.output.dts },
188
+ parsedConfig,
189
+ env: info.output.env,
190
+ includeTests: info.output.includeTests,
191
+ oldBuilderProgram: lastBuilderProgram,
192
+ });
193
+ lastBuilderProgram = tscResult.builderProgram ?? lastBuilderProgram;
194
+ jsResult = { success: true, errors: undefined, warnings: undefined };
195
+ tscProgram = tscResult.program;
196
+ tscAffectedFiles = tscResult.affectedFiles;
197
+ tscErrors = tscResult.errors ?? [];
198
+ }
199
+ // lint 실행 (활성화 + program 사용 가능 시)
200
+ let lint;
201
+ if (info.output.lint === true && tscProgram != null) {
202
+ logger.debug(`[${info.name}] lint 시작`);
203
+ if (watchLintRunner == null) {
204
+ watchLintRunner = new LintWithProgramRunner({
205
+ cwd: info.cwd,
206
+ pkgName: info.name,
207
+ });
208
+ }
209
+ lint = await watchLintRunner.lint({
210
+ program: tscProgram,
211
+ affectedFiles: tscAffectedFiles,
212
+ });
213
+ logger.debug(`[${info.name}] lint 완료`);
214
+ }
215
+ const allErrors = [...(jsResult.errors ?? []), ...tscErrors];
216
+ const allSuccess = jsResult.success && tscErrors.length === 0;
217
+ logger.debug(`[${info.name}] rebuildAll 완료`);
218
+ return {
219
+ build: {
220
+ success: allSuccess,
221
+ errors: allErrors.length > 0 ? allErrors : undefined,
222
+ warnings: jsResult.warnings,
223
+ },
224
+ lint,
225
+ mainJsPath,
226
+ };
227
+ }
195
228
  try {
196
229
  const parsedConfig = parseTsconfig(info.pkgDir);
197
230
  const entryPoints = getPackageSourceFiles(info.pkgDir, parsedConfig);
198
231
  // 외부 모듈 수집 (watch 모드용 — watch manager가 자체 캐시를 유지)
199
232
  const cachedExternal = collectAllExternals(info.pkgDir, info.externals);
200
- // esbuild 컨텍스트 생성 (JS 출력 필요 )
233
+ // esbuild 컨텍스트 생성 (JS 출력 필요 시, tsc 플러그인 포함)
201
234
  if (info.output.js) {
202
235
  await esbuildCtx.createContext({
203
236
  pkgDir: info.pkgDir,
204
237
  entryPoints,
205
238
  env: info.env,
206
239
  external: cachedExternal,
240
+ tsc: {
241
+ cwd: info.cwd,
242
+ output: { dts: info.output.dts },
243
+ env: info.output.env,
244
+ includeTests: info.output.includeTests,
245
+ },
207
246
  });
208
247
  }
209
- // 초기 빌드: esbuild + tsc 병렬
248
+ // 초기 빌드
210
249
  sender.send("buildStart", {});
211
250
  const initialResult = await rebuildAll();
212
251
  // 첫 빌드 시 .config.json 작성
@@ -1 +1 @@
1
- {"version":3,"file":"server-build.worker.js","sourceRoot":"","sources":["../../src/workers/server-build.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-build.worker.js","sourceRoot":"","sources":["../../src/workers/server-build.worker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
+ import type ts from "typescript";
1
2
  import esbuild from "esbuild";
3
+ import type { TypecheckEnv } from "../utils/tsconfig";
4
+ import type { SerializedDiagnostic } from "../typecheck/typecheck-serialization";
2
5
  /**
3
6
  * esbuild watch context 생성 옵션
4
7
  */
@@ -7,6 +10,15 @@ export interface EsbuildContextOptions {
7
10
  entryPoints: string[];
8
11
  env?: Record<string, string>;
9
12
  external: string[];
13
+ /** tsc 플러그인 옵션. 제공 시 createTscPlugin으로 플러그인을 생성하여 esbuild context에 포함한다. */
14
+ tsc?: {
15
+ cwd: string;
16
+ output: {
17
+ dts: boolean;
18
+ };
19
+ env?: TypecheckEnv;
20
+ includeTests?: boolean;
21
+ };
10
22
  }
11
23
  /**
12
24
  * esbuild watch context를 생성한다.
@@ -44,4 +56,19 @@ export declare function getMetafile(): esbuild.Metafile | undefined;
44
56
  * esbuild context 존재 여부를 반환한다.
45
57
  */
46
58
  export declare function hasContext(): boolean;
59
+ /**
60
+ * tsc 플러그인의 ts.Program을 반환한다.
61
+ * 플러그인이 없으면 undefined를 반환한다.
62
+ */
63
+ export declare function getTscProgram(): ts.Program | undefined;
64
+ /**
65
+ * tsc 플러그인의 affected files를 반환한다.
66
+ * 플러그인이 없으면 undefined를 반환한다.
67
+ */
68
+ export declare function getTscAffectedFiles(): ReadonlySet<string> | undefined;
69
+ /**
70
+ * tsc 플러그인의 diagnostics를 반환한다.
71
+ * 플러그인이 없으면 빈 배열을 반환한다.
72
+ */
73
+ export declare function getTscDiagnostics(): SerializedDiagnostic[];
47
74
  //# sourceMappingURL=server-esbuild-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-esbuild-context.d.ts","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAM9B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAQD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcjF;AAED;;;GAGG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,IAAI,CAAC,CAqBR;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnF;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ7C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC"}
1
+ {"version":3,"file":"server-esbuild-context.d.ts","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,OAAO,MAAM,SAAS,CAAC;AAM9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,GAAG,CAAC,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE;YAAE,GAAG,EAAE,OAAO,CAAA;SAAE,CAAC;QACzB,GAAG,CAAC,EAAE,YAAY,CAAC;QACnB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAWD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjF;AAED;;;GAGG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,IAAI,CAAC,CAuBR;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBnF;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,EAAE,CAAC,OAAO,GAAG,SAAS,CAEtD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAErE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,oBAAoB,EAAE,CAE1D"}
@@ -1,14 +1,26 @@
1
1
  import esbuild from "esbuild";
2
2
  import { createServerEsbuildOptions, writeChangedOutputFiles, } from "../esbuild/esbuild-config.js";
3
+ import { createTscPlugin } from "../esbuild/esbuild-tsc-plugin.js";
3
4
  /** esbuild watch context (모듈 스코프 상태) */
4
5
  let context;
5
6
  /** 마지막 빌드의 metafile (변경 필터링용) */
6
7
  let lastMetafile;
8
+ /** tsc 플러그인 인스턴스 (모듈 스코프 상태) */
9
+ let tscPlugin;
7
10
  /**
8
11
  * esbuild watch context를 생성한다.
9
12
  * dev 모드 전용 (metafile:true, write:false).
10
13
  */
11
14
  export async function createContext(options) {
15
+ if (options.tsc != null) {
16
+ tscPlugin = createTscPlugin({
17
+ pkgDir: options.pkgDir,
18
+ cwd: options.tsc.cwd,
19
+ output: options.tsc.output,
20
+ env: options.tsc.env,
21
+ includeTests: options.tsc.includeTests,
22
+ });
23
+ }
12
24
  const baseOptions = createServerEsbuildOptions({
13
25
  pkgDir: options.pkgDir,
14
26
  entryPoints: options.entryPoints,
@@ -18,6 +30,7 @@ export async function createContext(options) {
18
30
  });
19
31
  context = await esbuild.context({
20
32
  ...baseOptions,
33
+ plugins: tscPlugin != null ? [tscPlugin.plugin] : [],
21
34
  metafile: true,
22
35
  write: false,
23
36
  });
@@ -36,11 +49,13 @@ export async function rebuild() {
36
49
  if (result.outputFiles) {
37
50
  await writeChangedOutputFiles(result.outputFiles);
38
51
  }
39
- const errors = result.errors.map((e) => e.text);
52
+ const esbuildErrors = result.errors.map((e) => e.text);
53
+ const tscErrors = tscPlugin?.getErrors() ?? [];
54
+ const allErrors = [...esbuildErrors, ...tscErrors];
40
55
  const warnings = result.warnings.map((w) => w.text);
41
56
  return {
42
- success: result.errors.length === 0,
43
- errors: errors.length > 0 ? errors : undefined,
57
+ success: allErrors.length === 0,
58
+ errors: allErrors.length > 0 ? allErrors : undefined,
44
59
  warnings: warnings.length > 0 ? warnings : undefined,
45
60
  };
46
61
  }
@@ -57,6 +72,9 @@ export async function recreateContext(options) {
57
72
  const oldContext = context;
58
73
  context = undefined;
59
74
  lastMetafile = undefined;
75
+ if (tscPlugin != null) {
76
+ tscPlugin.resetBuilderProgram();
77
+ }
60
78
  try {
61
79
  await createContext(options);
62
80
  }
@@ -73,6 +91,7 @@ export async function dispose() {
73
91
  const contextToDispose = context;
74
92
  context = undefined;
75
93
  lastMetafile = undefined;
94
+ tscPlugin = undefined;
76
95
  if (contextToDispose != null) {
77
96
  await contextToDispose.dispose();
78
97
  }
@@ -89,4 +108,25 @@ export function getMetafile() {
89
108
  export function hasContext() {
90
109
  return context != null;
91
110
  }
111
+ /**
112
+ * tsc 플러그인의 ts.Program을 반환한다.
113
+ * 플러그인이 없으면 undefined를 반환한다.
114
+ */
115
+ export function getTscProgram() {
116
+ return tscPlugin?.getProgram();
117
+ }
118
+ /**
119
+ * tsc 플러그인의 affected files를 반환한다.
120
+ * 플러그인이 없으면 undefined를 반환한다.
121
+ */
122
+ export function getTscAffectedFiles() {
123
+ return tscPlugin?.getAffectedFiles();
124
+ }
125
+ /**
126
+ * tsc 플러그인의 diagnostics를 반환한다.
127
+ * 플러그인이 없으면 빈 배열을 반환한다.
128
+ */
129
+ export function getTscDiagnostics() {
130
+ return tscPlugin?.getDiagnostics() ?? [];
131
+ }
92
132
  //# sourceMappingURL=server-esbuild-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-esbuild-context.js","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAYnC,wCAAwC;AACxC,IAAI,OAAyC,CAAC;AAE9C,iCAAiC;AACjC,IAAI,YAA0C,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA8B;IAChE,MAAM,WAAW,GAAG,0BAA0B,CAAC;QAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;QAC9B,GAAG,WAAW;QACd,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IAK3B,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAEvC,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC9C,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA8B;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC;IAC3B,OAAO,GAAG,SAAS,CAAC;IACpB,YAAY,GAAG,SAAS,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;YAAS,CAAC;QACT,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC;IACjC,OAAO,GAAG,SAAS,CAAC;IACpB,YAAY,GAAG,SAAS,CAAC;IAEzB,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"server-esbuild-context.js","sourceRoot":"","sources":["../../src/workers/server-esbuild-context.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "14.0.38",
3
+ "version": "14.0.39",
4
4
  "description": "Simplysm package - CLI tool",
5
5
  "author": "simplysm",
6
6
  "license": "Apache-2.0",
@@ -19,6 +19,8 @@
19
19
  ],
20
20
  "sideEffects": false,
21
21
  "dependencies": {
22
+ "acorn": "^8.14.1",
23
+ "acorn-walk": "^8.3.4",
22
24
  "@angular/build": "^21.2.7",
23
25
  "@angular/compiler-cli": "^21.2.8",
24
26
  "@fastify/http-proxy": "^11.4.3",
@@ -38,9 +40,9 @@
38
40
  "typescript": "^5.9.3",
39
41
  "ws": "^8.20.0",
40
42
  "yargs": "^18.0.0",
41
- "@simplysm/core-common": "14.0.38",
42
- "@simplysm/core-node": "14.0.38",
43
- "@simplysm/storage": "14.0.38"
43
+ "@simplysm/core-common": "14.0.39",
44
+ "@simplysm/core-node": "14.0.39",
45
+ "@simplysm/storage": "14.0.39"
44
46
  },
45
47
  "devDependencies": {
46
48
  "@types/semver": "^7.7.1",
@@ -65,7 +65,7 @@ export interface AngularBuildPipelineOptions {
65
65
  compilerOptionsTransformer?: (opts: ts.CompilerOptions) => ts.CompilerOptions;
66
66
 
67
67
  // client 모드 전용
68
- postCssPlugins?: unknown[];
68
+ postcssPlugins?: unknown[];
69
69
  scssCacheDir?: string;
70
70
  }
71
71
 
@@ -210,7 +210,7 @@ export class AngularBuildPipeline {
210
210
  this._options.mode === "client"
211
211
  ? createClientTransformStylesheet({
212
212
  loadPaths,
213
- postCssPlugins: this._options.postCssPlugins,
213
+ postcssPlugins: this._options.postcssPlugins,
214
214
  scssErrors: this._scssErrors,
215
215
  scssDependencies: this._scssDependencies,
216
216
  cacheDir: this._options.scssCacheDir,
@@ -6,7 +6,7 @@ import { compileScssFileAsync, compileScssStringAsync } from "./scss-compiler.js
6
6
 
7
7
  export interface ClientTransformStylesheetOptions {
8
8
  loadPaths: string[];
9
- postCssPlugins?: unknown[];
9
+ postcssPlugins?: unknown[];
10
10
  scssErrors: string[];
11
11
  scssDependencies: Map<string, Set<string>>;
12
12
  /** SCSS 캐시 디렉토리 (미지정 시 캐시 비활성화) */
@@ -57,11 +57,11 @@ async function readFileHash(filePath: string): Promise<string | undefined> {
57
57
  export function createClientTransformStylesheet(
58
58
  options: ClientTransformStylesheetOptions,
59
59
  ): (data: string, containingFile: string, stylesheetFile?: string) => Promise<string | null> {
60
- const { loadPaths, postCssPlugins, scssErrors, scssDependencies, cacheDir } = options;
60
+ const { loadPaths, postcssPlugins, scssErrors, scssDependencies, cacheDir } = options;
61
61
 
62
62
  const postCssProcessor =
63
- postCssPlugins != null && postCssPlugins.length > 0
64
- ? postcss(postCssPlugins as postcss.AcceptedPlugin[])
63
+ postcssPlugins != null && postcssPlugins.length > 0
64
+ ? postcss(postcssPlugins as postcss.AcceptedPlugin[])
65
65
  : undefined;
66
66
 
67
67
  return async (
@@ -1,7 +1,9 @@
1
1
  import path from "path";
2
2
  import fs from "fs";
3
+ import { createRequire } from "module";
3
4
  import esbuild from "esbuild";
4
5
  import browserslistToEsbuild from "browserslist-to-esbuild";
6
+ import type { AcceptedPlugin } from "postcss";
5
7
  import {
6
8
  createCompilerPlugin,
7
9
  SourceFileCache,
@@ -9,6 +11,7 @@ import {
9
11
  type BundleStylesheetOptions,
10
12
  } from "@angular/build/private";
11
13
  import { createScssPlugin } from "./esbuild-scss-plugin";
14
+ import { createPostcssPlugin } from "./esbuild-postcss-plugin";
12
15
 
13
16
  export interface CreateClientEsbuildOptions {
14
17
  /** 패키지 디렉토리 경로 */
@@ -29,8 +32,6 @@ export interface CreateClientEsbuildOptions {
29
32
  onEnd?: (result: esbuild.BuildResult) => void | Promise<void>;
30
33
  /** PostCSS 플러그인 ([name, options] 튜플 배열) */
31
34
  postcssPlugins?: [string, (object | string)?][];
32
- /** PostCSS 설정 기준 경로 */
33
- postcssConfigPath?: string;
34
35
  /** 빌드 출력 경로 (기본: pkgDir/dist) */
35
36
  outdir?: string;
36
37
  /** browserslist 쿼리. 미설정 시 "es2022" 기본값 */
@@ -91,18 +92,23 @@ export async function createClientEsbuildContext(
91
92
  path: cachePath,
92
93
  basePath: cachePath,
93
94
  },
94
- postcssConfiguration:
95
- options.postcssPlugins != null
96
- ? {
97
- config: { plugins: options.postcssPlugins },
98
- configPath: options.postcssConfigPath ?? options.pkgDir,
99
- }
100
- : undefined,
95
+ postcssConfiguration: undefined,
101
96
  inlineStyleLanguage: "scss",
102
97
  };
103
98
 
104
99
  const angularPlugin = createCompilerPlugin(pluginOptions, styleOptions);
105
100
 
101
+ // PostCSS 플러그인 로딩 (튜플 → 인스턴스)
102
+ let loadedPostcssPlugins: AcceptedPlugin[] | undefined;
103
+ if (options.postcssPlugins != null && options.postcssPlugins.length > 0) {
104
+ const req = createRequire(path.join(options.pkgDir, "package.json"));
105
+ loadedPostcssPlugins = options.postcssPlugins.map(([name, pluginOpts]) => {
106
+ const pluginFn = req(name);
107
+ const fn = pluginFn.default ?? pluginFn;
108
+ return pluginOpts != null ? fn(pluginOpts) : fn;
109
+ });
110
+ }
111
+
106
112
  // SCSS side-effect import 처리 플러그인
107
113
  const scssPlugin = createScssPlugin({
108
114
  loadPaths: [
@@ -126,10 +132,10 @@ export async function createClientEsbuildContext(
126
132
  }
127
133
 
128
134
  // 커스텀 env
135
+ // esbuild define은 정적 패턴만 치환하므로, import.meta.env 객체 자체를 주입해야
136
+ // env() 함수의 동적 접근(import.meta.env?.[key])이 동작한다.
129
137
  if (options.env != null) {
130
- for (const [key, value] of Object.entries(options.env)) {
131
- define[`import.meta.env.${key}`] = JSON.stringify(value);
132
- }
138
+ define["import.meta.env"] = JSON.stringify(options.env);
133
139
  }
134
140
 
135
141
  // import.meta.hot 폴리필 banner (Angular HMR 런타임용)
@@ -187,6 +193,9 @@ export async function createClientEsbuildContext(
187
193
  angularPlugin,
188
194
  scssPlugin,
189
195
  ...(options.plugins ?? []),
196
+ ...(loadedPostcssPlugins != null
197
+ ? [createPostcssPlugin({ plugins: loadedPostcssPlugins })]
198
+ : []),
190
199
  ...(options.legacyModule === true
191
200
  ? [
192
201
  {