@simplysm/sd-cli 14.0.10 → 14.0.12

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 (266) hide show
  1. package/README.md +58 -253
  2. package/dist/angular/client-transform-stylesheet.js +1 -1
  3. package/dist/angular/client-transform-stylesheet.js.map +1 -1
  4. package/dist/angular/vite-angular-plugin.d.ts +1 -1
  5. package/dist/angular/vite-angular-plugin.d.ts.map +1 -1
  6. package/dist/angular/vite-angular-plugin.js +60 -34
  7. package/dist/angular/vite-angular-plugin.js.map +1 -1
  8. package/dist/angular/vite-postcss-inline-plugin.d.ts +1 -1
  9. package/dist/angular/vite-postcss-inline-plugin.js +1 -1
  10. package/dist/capacitor/capacitor.d.ts +14 -2
  11. package/dist/capacitor/capacitor.d.ts.map +1 -1
  12. package/dist/capacitor/capacitor.js +131 -17
  13. package/dist/capacitor/capacitor.js.map +1 -1
  14. package/dist/commands/build.d.ts +3 -10
  15. package/dist/commands/build.d.ts.map +1 -1
  16. package/dist/commands/build.js +3 -10
  17. package/dist/commands/build.js.map +1 -1
  18. package/dist/commands/check.js +3 -3
  19. package/dist/commands/check.js.map +1 -1
  20. package/dist/commands/dev.d.ts +3 -9
  21. package/dist/commands/dev.d.ts.map +1 -1
  22. package/dist/commands/dev.js +3 -9
  23. package/dist/commands/dev.js.map +1 -1
  24. package/dist/commands/device.d.ts +13 -0
  25. package/dist/commands/device.d.ts.map +1 -0
  26. package/dist/commands/device.js +53 -0
  27. package/dist/commands/device.js.map +1 -0
  28. package/dist/commands/publish.d.ts +1 -1
  29. package/dist/commands/publish.d.ts.map +1 -1
  30. package/dist/commands/publish.js +18 -26
  31. package/dist/commands/publish.js.map +1 -1
  32. package/dist/commands/replace-deps.d.ts +3 -3
  33. package/dist/commands/replace-deps.d.ts.map +1 -1
  34. package/dist/commands/replace-deps.js +1 -1
  35. package/dist/commands/typecheck.d.ts +4 -3
  36. package/dist/commands/typecheck.d.ts.map +1 -1
  37. package/dist/commands/typecheck.js +5 -11
  38. package/dist/commands/typecheck.js.map +1 -1
  39. package/dist/commands/watch.d.ts +9 -9
  40. package/dist/commands/watch.js +9 -9
  41. package/dist/electron/electron.d.ts.map +1 -1
  42. package/dist/electron/electron.js +42 -3
  43. package/dist/electron/electron.js.map +1 -1
  44. package/dist/engines/BaseEngine.d.ts +1 -1
  45. package/dist/engines/BaseEngine.d.ts.map +1 -1
  46. package/dist/engines/BaseEngine.js +3 -1
  47. package/dist/engines/BaseEngine.js.map +1 -1
  48. package/dist/engines/NgtscEngine.d.ts +7 -7
  49. package/dist/engines/NgtscEngine.d.ts.map +1 -1
  50. package/dist/engines/NgtscEngine.js +3 -3
  51. package/dist/engines/ServerEsbuildEngine.d.ts +7 -7
  52. package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -1
  53. package/dist/engines/ServerEsbuildEngine.js +3 -3
  54. package/dist/engines/TscEngine.d.ts +7 -7
  55. package/dist/engines/TscEngine.d.ts.map +1 -1
  56. package/dist/engines/TscEngine.js +3 -3
  57. package/dist/engines/ViteEngine.d.ts +1 -1
  58. package/dist/engines/ViteEngine.d.ts.map +1 -1
  59. package/dist/engines/ViteEngine.js +7 -12
  60. package/dist/engines/ViteEngine.js.map +1 -1
  61. package/dist/engines/index.d.ts +5 -5
  62. package/dist/engines/index.js +5 -5
  63. package/dist/engines/types.d.ts +20 -20
  64. package/dist/engines/types.d.ts.map +1 -1
  65. package/dist/infra/ResultCollector.d.ts +9 -9
  66. package/dist/infra/ResultCollector.js +8 -8
  67. package/dist/infra/SignalHandler.d.ts +7 -7
  68. package/dist/infra/SignalHandler.js +7 -7
  69. package/dist/infra/WorkerManager.d.ts +14 -14
  70. package/dist/infra/WorkerManager.js +14 -14
  71. package/dist/orchestrators/BuildOrchestrator.d.ts +25 -25
  72. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  73. package/dist/orchestrators/BuildOrchestrator.js +29 -29
  74. package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
  75. package/dist/orchestrators/DevWatchOrchestrator.d.ts +7 -7
  76. package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -1
  77. package/dist/orchestrators/DevWatchOrchestrator.js +35 -57
  78. package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -1
  79. package/dist/sd-cli-entry.d.ts +2 -2
  80. package/dist/sd-cli-entry.d.ts.map +1 -1
  81. package/dist/sd-cli-entry.js +45 -9
  82. package/dist/sd-cli-entry.js.map +1 -1
  83. package/dist/sd-cli.d.ts +3 -3
  84. package/dist/sd-cli.js +16 -16
  85. package/dist/sd-cli.js.map +1 -1
  86. package/dist/sd-config.types.d.ts +105 -105
  87. package/dist/sd-config.types.d.ts.map +1 -1
  88. package/dist/utils/angular-compiler.js +5 -5
  89. package/dist/utils/angular-compiler.js.map +1 -1
  90. package/dist/utils/build-env.d.ts +1 -1
  91. package/dist/utils/build-env.js +1 -1
  92. package/dist/utils/concurrency.d.ts +7 -7
  93. package/dist/utils/concurrency.js +7 -7
  94. package/dist/utils/copy-public.d.ts +9 -9
  95. package/dist/utils/copy-public.js +17 -17
  96. package/dist/utils/copy-public.js.map +1 -1
  97. package/dist/utils/copy-src.d.ts +9 -9
  98. package/dist/utils/copy-src.js +11 -11
  99. package/dist/utils/copy-src.js.map +1 -1
  100. package/dist/utils/engine-stop.d.ts +8 -9
  101. package/dist/utils/engine-stop.d.ts.map +1 -1
  102. package/dist/utils/engine-stop.js +9 -10
  103. package/dist/utils/engine-stop.js.map +1 -1
  104. package/dist/utils/esbuild-config.d.ts +23 -23
  105. package/dist/utils/esbuild-config.d.ts.map +1 -1
  106. package/dist/utils/esbuild-config.js +25 -25
  107. package/dist/utils/esbuild-config.js.map +1 -1
  108. package/dist/utils/lint-with-program.d.ts +15 -15
  109. package/dist/utils/lint-with-program.d.ts.map +1 -1
  110. package/dist/utils/lint-with-program.js +29 -29
  111. package/dist/utils/lint-with-program.js.map +1 -1
  112. package/dist/utils/ngtsc-build-core.d.ts +8 -8
  113. package/dist/utils/ngtsc-build-core.d.ts.map +1 -1
  114. package/dist/utils/ngtsc-build-core.js +14 -14
  115. package/dist/utils/ngtsc-build-core.js.map +1 -1
  116. package/dist/utils/output-path-rewriter.d.ts +14 -14
  117. package/dist/utils/output-path-rewriter.js +18 -18
  118. package/dist/utils/output-path-rewriter.js.map +1 -1
  119. package/dist/utils/output-utils.d.ts +6 -6
  120. package/dist/utils/output-utils.js +11 -11
  121. package/dist/utils/output-utils.js.map +1 -1
  122. package/dist/utils/package-utils.d.ts +21 -21
  123. package/dist/utils/package-utils.d.ts.map +1 -1
  124. package/dist/utils/package-utils.js +56 -45
  125. package/dist/utils/package-utils.js.map +1 -1
  126. package/dist/utils/replace-deps.d.ts +25 -25
  127. package/dist/utils/replace-deps.d.ts.map +1 -1
  128. package/dist/utils/replace-deps.js +84 -65
  129. package/dist/utils/replace-deps.js.map +1 -1
  130. package/dist/utils/sd-config.d.ts +3 -3
  131. package/dist/utils/sd-config.js +3 -3
  132. package/dist/utils/tsc-build.d.ts +13 -13
  133. package/dist/utils/tsc-build.d.ts.map +1 -1
  134. package/dist/utils/tsc-build.js +9 -9
  135. package/dist/utils/tsc-build.js.map +1 -1
  136. package/dist/utils/tsconfig.d.ts +11 -9
  137. package/dist/utils/tsconfig.d.ts.map +1 -1
  138. package/dist/utils/tsconfig.js +11 -9
  139. package/dist/utils/tsconfig.js.map +1 -1
  140. package/dist/utils/typecheck-non-package.d.ts +5 -6
  141. package/dist/utils/typecheck-non-package.d.ts.map +1 -1
  142. package/dist/utils/typecheck-non-package.js +7 -8
  143. package/dist/utils/typecheck-non-package.js.map +1 -1
  144. package/dist/utils/typecheck-serialization.d.ts +8 -8
  145. package/dist/utils/typecheck-serialization.d.ts.map +1 -1
  146. package/dist/utils/typecheck-serialization.js +12 -16
  147. package/dist/utils/typecheck-serialization.js.map +1 -1
  148. package/dist/utils/vite-config.d.ts +8 -5
  149. package/dist/utils/vite-config.d.ts.map +1 -1
  150. package/dist/utils/vite-config.js +36 -29
  151. package/dist/utils/vite-config.js.map +1 -1
  152. package/dist/utils/vite-scope-watch-plugin.d.ts.map +1 -1
  153. package/dist/utils/vite-scope-watch-plugin.js +1 -1
  154. package/dist/utils/vite-scope-watch-plugin.js.map +1 -1
  155. package/dist/utils/worker-events.d.ts +12 -12
  156. package/dist/utils/worker-events.d.ts.map +1 -1
  157. package/dist/utils/worker-events.js +10 -10
  158. package/dist/utils/worker-events.js.map +1 -1
  159. package/dist/utils/worker-utils.d.ts +12 -13
  160. package/dist/utils/worker-utils.d.ts.map +1 -1
  161. package/dist/utils/worker-utils.js +12 -13
  162. package/dist/utils/worker-utils.js.map +1 -1
  163. package/dist/vitest-plugin.d.ts.map +1 -1
  164. package/dist/vitest-plugin.js +5 -7
  165. package/dist/vitest-plugin.js.map +1 -1
  166. package/dist/workers/client.worker.d.ts +4 -2
  167. package/dist/workers/client.worker.d.ts.map +1 -1
  168. package/dist/workers/client.worker.js +209 -1
  169. package/dist/workers/client.worker.js.map +1 -1
  170. package/dist/workers/library-build.worker.d.ts +1 -1
  171. package/dist/workers/library-build.worker.d.ts.map +1 -1
  172. package/dist/workers/library-build.worker.js +7 -7
  173. package/dist/workers/library-build.worker.js.map +1 -1
  174. package/dist/workers/lint.worker.d.ts +2 -2
  175. package/dist/workers/lint.worker.js +2 -2
  176. package/dist/workers/ngtsc-build.worker.js +30 -30
  177. package/dist/workers/ngtsc-build.worker.js.map +1 -1
  178. package/dist/workers/server-build.worker.d.ts +17 -17
  179. package/dist/workers/server-build.worker.d.ts.map +1 -1
  180. package/dist/workers/server-build.worker.js +46 -46
  181. package/dist/workers/server-build.worker.js.map +1 -1
  182. package/dist/workers/server-runtime.worker.d.ts +7 -7
  183. package/dist/workers/server-runtime.worker.d.ts.map +1 -1
  184. package/dist/workers/server-runtime.worker.js +17 -17
  185. package/dist/workers/server-runtime.worker.js.map +1 -1
  186. package/docs/config.md +340 -0
  187. package/docs/publish-configuration-types.md +87 -0
  188. package/docs/pwa-configuration-types.md +55 -0
  189. package/docs/vitest-plugin.md +47 -0
  190. package/package.json +9 -7
  191. package/src/angular/client-transform-stylesheet.ts +1 -1
  192. package/src/angular/vite-angular-plugin.ts +70 -37
  193. package/src/angular/vite-postcss-inline-plugin.ts +1 -1
  194. package/src/capacitor/capacitor.ts +159 -23
  195. package/src/commands/build.ts +3 -10
  196. package/src/commands/check.ts +3 -3
  197. package/src/commands/dev.ts +3 -9
  198. package/src/commands/device.ts +65 -0
  199. package/src/commands/publish.ts +30 -26
  200. package/src/commands/replace-deps.ts +3 -3
  201. package/src/commands/typecheck.ts +7 -13
  202. package/src/commands/watch.ts +9 -9
  203. package/src/electron/electron.ts +49 -4
  204. package/src/engines/BaseEngine.ts +4 -1
  205. package/src/engines/NgtscEngine.ts +7 -7
  206. package/src/engines/ServerEsbuildEngine.ts +7 -7
  207. package/src/engines/TscEngine.ts +7 -7
  208. package/src/engines/ViteEngine.ts +8 -13
  209. package/src/engines/index.ts +5 -5
  210. package/src/engines/types.ts +20 -20
  211. package/src/infra/ResultCollector.ts +9 -9
  212. package/src/infra/SignalHandler.ts +7 -7
  213. package/src/infra/WorkerManager.ts +14 -14
  214. package/src/orchestrators/BuildOrchestrator.ts +37 -37
  215. package/src/orchestrators/DevWatchOrchestrator.ts +37 -61
  216. package/src/sd-cli-entry.ts +51 -9
  217. package/src/sd-cli.ts +16 -16
  218. package/src/sd-config.types.ts +107 -107
  219. package/src/utils/angular-compiler.ts +5 -5
  220. package/src/utils/build-env.ts +1 -1
  221. package/src/utils/concurrency.ts +7 -7
  222. package/src/utils/copy-public.ts +17 -17
  223. package/src/utils/copy-src.ts +11 -11
  224. package/src/utils/engine-stop.ts +9 -10
  225. package/src/utils/esbuild-config.ts +29 -29
  226. package/src/utils/lint-with-program.ts +34 -34
  227. package/src/utils/ngtsc-build-core.ts +17 -17
  228. package/src/utils/output-path-rewriter.ts +18 -18
  229. package/src/utils/output-utils.ts +11 -11
  230. package/src/utils/package-utils.ts +57 -45
  231. package/src/utils/replace-deps.ts +92 -67
  232. package/src/utils/sd-config.ts +3 -3
  233. package/src/utils/tsc-build.ts +18 -18
  234. package/src/utils/tsconfig.ts +11 -9
  235. package/src/utils/typecheck-non-package.ts +7 -8
  236. package/src/utils/typecheck-serialization.ts +13 -15
  237. package/src/utils/vite-config.ts +45 -35
  238. package/src/utils/vite-scope-watch-plugin.ts +6 -1
  239. package/src/utils/worker-events.ts +16 -16
  240. package/src/utils/worker-utils.ts +12 -13
  241. package/src/vitest-plugin.ts +5 -8
  242. package/src/workers/client.worker.ts +236 -2
  243. package/src/workers/library-build.worker.ts +8 -8
  244. package/src/workers/lint.worker.ts +2 -2
  245. package/src/workers/ngtsc-build.worker.ts +31 -31
  246. package/src/workers/server-build.worker.ts +60 -60
  247. package/src/workers/server-runtime.worker.ts +22 -22
  248. package/tests/angular/vite-angular-plugin-hmr-fallback.spec.ts +1 -0
  249. package/tests/angular/vite-angular-plugin-hmr.spec.ts +78 -0
  250. package/tests/angular/vite-angular-plugin.spec.ts +67 -0
  251. package/tests/capacitor/capacitor-build.spec.ts +6 -4
  252. package/tests/capacitor/capacitor-icon.spec.ts +7 -5
  253. package/tests/capacitor/capacitor-init.spec.ts +120 -10
  254. package/tests/capacitor/capacitor-run.spec.ts +14 -17
  255. package/tests/capacitor/capacitor-workspace.spec.ts +5 -3
  256. package/tests/commands/check.spec.ts +2 -2
  257. package/tests/commands/device.spec.ts +147 -0
  258. package/tests/commands/publish.spec.ts +2 -2
  259. package/tests/commands/typecheck.spec.ts +8 -0
  260. package/tests/electron/electron.spec.ts +12 -10
  261. package/tests/engines/base-engine.spec.ts +37 -0
  262. package/tests/engines/vite-engine.spec.ts +115 -3
  263. package/tests/orchestrators/dev-watch-orchestrator.spec.ts +21 -93
  264. package/tests/utils/vite-config.spec.ts +144 -90
  265. package/tests/workers/client-worker.spec.ts +690 -0
  266. package/tests/workers/server-build-worker.spec.ts +3 -3
@@ -1,21 +1,21 @@
1
1
  import type { BuildResult } from "../infra/ResultCollector";
2
2
  import type { SdPackageConfig } from "../sd-config.types";
3
3
  import type { RebuildManager } from "./rebuild-manager";
4
- /** Worker build completion event data */
4
+ /** 워커 빌드 완료 이벤트 데이터 */
5
5
  export interface BuildEventData {
6
6
  success: boolean;
7
7
  errors?: string[];
8
8
  warnings?: string[];
9
9
  }
10
- /** Worker error event data */
10
+ /** 워커 에러 이벤트 데이터 */
11
11
  export interface ErrorEventData {
12
12
  message: string;
13
13
  }
14
- /** Worker server ready event data */
14
+ /** 워커 서버 준비 완료 이벤트 데이터 */
15
15
  export interface ServerReadyEventData {
16
16
  port: number;
17
17
  }
18
- /** Server Build completion event data */
18
+ /** Server 빌드 완료 이벤트 데이터 */
19
19
  export interface ServerBuildEventData {
20
20
  success: boolean;
21
21
  mainJsPath: string;
@@ -23,7 +23,7 @@ export interface ServerBuildEventData {
23
23
  warnings?: string[];
24
24
  }
25
25
  /**
26
- * Base Worker info type
26
+ * 기본 Worker 정보 타입
27
27
  */
28
28
  export interface BaseWorkerInfo<TEvents extends Record<string, unknown> = Record<string, unknown>> {
29
29
  name: string;
@@ -36,7 +36,7 @@ export interface BaseWorkerInfo<TEvents extends Record<string, unknown> = Record
36
36
  buildResolver: (() => void) | undefined;
37
37
  }
38
38
  /**
39
- * Worker event handler options
39
+ * 워커 이벤트 핸들러 옵션
40
40
  */
41
41
  export interface WorkerEventHandlerOptions {
42
42
  resultKey: string;
@@ -44,13 +44,13 @@ export interface WorkerEventHandlerOptions {
44
44
  resultType: "build";
45
45
  }
46
46
  /**
47
- * Register common Worker event handlers (buildStart, build, error only - serverReady not included)
47
+ * 공통 Worker 이벤트 핸들러를 등록한다 (buildStart, build, error serverReady 미포함)
48
48
  *
49
- * @param workerInfo Worker info
50
- * @param opts Handler options
51
- * @param results Result map
52
- * @param rebuildManager Rebuild manager
53
- * @returns completeTask function (saves result and signals build completion)
49
+ * @param workerInfo 워커 정보
50
+ * @param opts 핸들러 옵션
51
+ * @param results 결과
52
+ * @param rebuildManager 재빌드 매니저
53
+ * @returns completeTask 함수 (결과 저장 빌드 완료 신호)
54
54
  */
55
55
  export declare function registerWorkerEventHandlers(workerInfo: {
56
56
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-events.d.ts","sourceRoot":"","sources":["../../src/utils/worker-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,8BAA8B;AAC9B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qCAAqC;AACrC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE;QACN,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;QACjF,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACjE,CAAC;IACF,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,MAAM,EAAE;QACN,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;KACvD,CAAC;IACF,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACzC,EACD,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACjC,cAAc,EAAE,cAAc,GAC7B,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAiD/B"}
1
+ {"version":3,"file":"worker-events.d.ts","sourceRoot":"","sources":["../../src/utils/worker-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,uBAAuB;AACvB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,oBAAoB;AACpB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0BAA0B;AAC1B,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2BAA2B;AAC3B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE;QACN,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;QACjF,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACjE,CAAC;IACF,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,MAAM,EAAE;QACN,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;KACvD,CAAC;IACF,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACzC,EACD,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACjC,cAAc,EAAE,cAAc,GAC7B,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAiD/B"}
@@ -2,13 +2,13 @@ import { consola } from "consola";
2
2
  import { formatBuildMessages } from "./output-utils.js";
3
3
  const workerEventsLogger = consola.withTag("sd:cli:worker-events");
4
4
  /**
5
- * Register common Worker event handlers (buildStart, build, error only - serverReady not included)
5
+ * 공통 Worker 이벤트 핸들러를 등록한다 (buildStart, build, error serverReady 미포함)
6
6
  *
7
- * @param workerInfo Worker info
8
- * @param opts Handler options
9
- * @param results Result map
10
- * @param rebuildManager Rebuild manager
11
- * @returns completeTask function (saves result and signals build completion)
7
+ * @param workerInfo 워커 정보
8
+ * @param opts 핸들러 옵션
9
+ * @param results 결과
10
+ * @param rebuildManager 재빌드 매니저
11
+ * @returns completeTask 함수 (결과 저장 빌드 완료 신호)
12
12
  */
13
13
  export function registerWorkerEventHandlers(workerInfo, opts, results, rebuildManager) {
14
14
  workerEventsLogger.debug(`[${workerInfo.name}] 이벤트 핸들러 등록 (${opts.resultType})`);
@@ -18,16 +18,16 @@ export function registerWorkerEventHandlers(workerInfo, opts, results, rebuildMa
18
18
  workerInfo.buildResolver = undefined;
19
19
  workerInfo.isInitialBuild = false;
20
20
  };
21
- // Build start (on rebuild)
21
+ // 빌드 시작 (재빌드 )
22
22
  workerInfo.worker.on("buildStart", () => {
23
23
  if (!workerInfo.isInitialBuild) {
24
24
  workerInfo.buildResolver = rebuildManager.registerBuild(opts.resultKey, opts.listrTitle);
25
25
  }
26
26
  });
27
- // Build completion
27
+ // 빌드 완료
28
28
  workerInfo.worker.on("build", (data) => {
29
29
  workerEventsLogger.debug(`[${workerInfo.name}] build: success=${String(data.success)}`);
30
- // Print warnings
30
+ // 경고 출력
31
31
  if (data.warnings != null && data.warnings.length > 0) {
32
32
  workerEventsLogger.warn(formatBuildMessages(workerInfo.name, workerInfo.config.target, data.warnings));
33
33
  }
@@ -39,7 +39,7 @@ export function registerWorkerEventHandlers(workerInfo, opts, results, rebuildMa
39
39
  message: data.errors?.join("\n"),
40
40
  });
41
41
  });
42
- // Error
42
+ // 에러
43
43
  workerInfo.worker.on("error", (data) => {
44
44
  workerEventsLogger.debug(`[${workerInfo.name}] error: ${data.message}`);
45
45
  completeTask({
@@ -1 +1 @@
1
- {"version":3,"file":"worker-events.js","sourceRoot":"","sources":["../../src/utils/worker-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAkDnE;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAQC,EACD,IAA+B,EAC/B,OAAiC,EACjC,cAA8B;IAE9B,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAQ,EAAE;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACpC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC;QAC7B,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;QACrC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC;IACpC,CAAC,CAAC;IAEF,2BAA2B;IAC3B,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACtC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YAC/B,UAAU,CAAC,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,oBAAoB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAExF,iBAAiB;QACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,kBAAkB,CAAC,IAAI,CACrB,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC9E,CAAC;QACJ,CAAC;QAED,YAAY,CAAC;YACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YAChC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACnD,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ;IACR,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,YAAY,CAAC;YACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YAChC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"worker-events.js","sourceRoot":"","sources":["../../src/utils/worker-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAkDnE;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAQC,EACD,IAA+B,EAC/B,OAAiC,EACjC,cAA8B;IAE9B,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAQ,EAAE;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACpC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC;QAC7B,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;QACrC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC;IACpC,CAAC,CAAC;IAEF,gBAAgB;IAChB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACtC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YAC/B,UAAU,CAAC,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ;IACR,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,oBAAoB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAExF,QAAQ;QACR,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,kBAAkB,CAAC,IAAI,CACrB,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC9E,CAAC;QACJ,CAAC;QAED,YAAY,CAAC;YACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YAChC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACnD,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK;IACL,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACrC,kBAAkB,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,YAAY,CAAC;YACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;YAChC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,28 +1,27 @@
1
1
  import { type ConsolaInstance } from "consola";
2
2
  /**
3
- * Apply sd-cli reporter and debug log level in worker threads
3
+ * 워커 스레드에서 sd-cli 리포터와 디버그 로그 레벨을 적용한다.
4
4
  *
5
- * Checks the SD_DEBUG environment variable (set by --debug flag in main process)
6
- * and applies debug log level to consola in the current worker thread.
7
- * Must be called at worker module top level.
5
+ * SD_DEBUG 환경변수(메인 프로세스의 --debug 플래그로 설정)를 확인하고
6
+ * 현재 워커 스레드의 consola 디버그 로그 레벨을 적용한다.
7
+ * 워커 모듈 최상위에서 호출해야 한다.
8
8
  */
9
9
  export declare function applyDebugLevel(): void;
10
10
  /**
11
- * Register cleanup handlers for worker process shutdown signals
11
+ * 워커 프로세스 종료 시그널에 대한 정리 핸들러를 등록한다.
12
12
  *
13
- * Registers SIGINT and SIGTERM handlers to gracefully cleanup resources
14
- * before process exit. Both handlers execute the cleanup function and
15
- * exit with code 0.
13
+ * 프로세스 종료 리소스를 정상적으로 정리하기 위해 SIGINT와 SIGTERM 핸들러를 등록한다.
14
+ * 핸들러 모두 정리 함수를 실행하고 코드 0으로 종료한다.
16
15
  *
17
- * @param cleanup - Cleanup function to execute on shutdown (sync or async)
18
- * @param logger - Consola logger instance for error logging
16
+ * @param cleanup - 종료 실행할 정리 함수 (동기 또는 비동기)
17
+ * @param logger - 에러 로깅용 consola 로거 인스턴스
19
18
  */
20
19
  export declare function registerCleanupHandlers(cleanup: () => void | Promise<void>, logger: ConsolaInstance): void;
21
20
  /**
22
- * Create guard to prevent duplicate calls to Worker function
21
+ * Worker 함수의 중복 호출을 방지하는 가드를 생성한다.
23
22
  *
24
- * @param label - Function name to use in error message
25
- * @returns Guard function that throws error if called twice
23
+ * @param label - 에러 메시지에 사용할 함수명
24
+ * @returns 호출되면 에러를 던지는 가드 함수
26
25
  */
27
26
  export declare function createOnceGuard(label: string): () => void;
28
27
  //# sourceMappingURL=worker-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-utils.d.ts","sourceRoot":"","sources":["../../src/utils/worker-utils.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,eAAe,EAAa,MAAM,SAAS,CAAC;AAGnE;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACnC,MAAM,EAAE,eAAe,GACtB,IAAI,CAcN;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,IAAI,CAQzD"}
1
+ {"version":3,"file":"worker-utils.d.ts","sourceRoot":"","sources":["../../src/utils/worker-utils.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,eAAe,EAAa,MAAM,SAAS,CAAC;AAGnE;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACnC,MAAM,EAAE,eAAe,GACtB,IAAI,CAcN;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,IAAI,CAQzD"}
@@ -1,11 +1,11 @@
1
1
  import consola, { LogLevels } from "consola";
2
2
  import { SdCliReporter } from "./SdCliReporter.js";
3
3
  /**
4
- * Apply sd-cli reporter and debug log level in worker threads
4
+ * 워커 스레드에서 sd-cli 리포터와 디버그 로그 레벨을 적용한다.
5
5
  *
6
- * Checks the SD_DEBUG environment variable (set by --debug flag in main process)
7
- * and applies debug log level to consola in the current worker thread.
8
- * Must be called at worker module top level.
6
+ * SD_DEBUG 환경변수(메인 프로세스의 --debug 플래그로 설정)를 확인하고
7
+ * 현재 워커 스레드의 consola 디버그 로그 레벨을 적용한다.
8
+ * 워커 모듈 최상위에서 호출해야 한다.
9
9
  */
10
10
  export function applyDebugLevel() {
11
11
  consola.options.reporters = [new SdCliReporter()];
@@ -14,14 +14,13 @@ export function applyDebugLevel() {
14
14
  }
15
15
  }
16
16
  /**
17
- * Register cleanup handlers for worker process shutdown signals
17
+ * 워커 프로세스 종료 시그널에 대한 정리 핸들러를 등록한다.
18
18
  *
19
- * Registers SIGINT and SIGTERM handlers to gracefully cleanup resources
20
- * before process exit. Both handlers execute the cleanup function and
21
- * exit with code 0.
19
+ * 프로세스 종료 리소스를 정상적으로 정리하기 위해 SIGINT와 SIGTERM 핸들러를 등록한다.
20
+ * 핸들러 모두 정리 함수를 실행하고 코드 0으로 종료한다.
22
21
  *
23
- * @param cleanup - Cleanup function to execute on shutdown (sync or async)
24
- * @param logger - Consola logger instance for error logging
22
+ * @param cleanup - 종료 실행할 정리 함수 (동기 또는 비동기)
23
+ * @param logger - 에러 로깅용 consola 로거 인스턴스
25
24
  */
26
25
  export function registerCleanupHandlers(cleanup, logger) {
27
26
  const handleSignal = () => {
@@ -38,10 +37,10 @@ export function registerCleanupHandlers(cleanup, logger) {
38
37
  process.on("SIGINT", handleSignal);
39
38
  }
40
39
  /**
41
- * Create guard to prevent duplicate calls to Worker function
40
+ * Worker 함수의 중복 호출을 방지하는 가드를 생성한다.
42
41
  *
43
- * @param label - Function name to use in error message
44
- * @returns Guard function that throws error if called twice
42
+ * @param label - 에러 메시지에 사용할 함수명
43
+ * @returns 호출되면 에러를 던지는 가드 함수
45
44
  */
46
45
  export function createOnceGuard(label) {
47
46
  let called = false;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-utils.js","sourceRoot":"","sources":["../../src/utils/worker-utils.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAwB,SAAS,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAmC,EACnC,MAAuB;IAEvB,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACvB,IAAI,CAAC,GAAG,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO,GAAG,EAAE;QACV,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"worker-utils.js","sourceRoot":"","sources":["../../src/utils/worker-utils.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAwB,SAAS,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAmC,EACnC,MAAuB;IAEvB,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACvB,IAAI,CAAC,GAAG,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO,GAAG,EAAE;QACV,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vitest-plugin.d.ts","sourceRoot":"","sources":["../src/vitest-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAMnC,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CA2G/E"}
1
+ {"version":3,"file":"vitest-plugin.d.ts","sourceRoot":"","sources":["../src/vitest-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAOnC,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CA2G/E"}
@@ -1,5 +1,6 @@
1
1
  import path from "path";
2
2
  import ts from "typescript";
3
+ import { pathx } from "@simplysm/core-node";
3
4
  import { NgtscProgram } from "./utils/angular-build.js";
4
5
  import { compileScssString, compileScssFile } from "./utils/scss-compiler.js";
5
6
  export function angularVitestPlugin(options) {
@@ -24,7 +25,7 @@ export function angularVitestPlugin(options) {
24
25
  inlineSources: true,
25
26
  };
26
27
  const host = ts.createCompilerHost(compilerOptions);
27
- // AngularLibraryHostExtensions duck-typing
28
+ // AngularLibraryHostExtensions 덕 타이핑
28
29
  const hostExt = host;
29
30
  hostExt.readResource = (fileName) => ts.sys.readFile(fileName) ?? "";
30
31
  const pkgDir = ts.sys.resolvePath(options.tsconfig + "/..");
@@ -60,12 +61,12 @@ export function angularVitestPlugin(options) {
60
61
  await program.compiler.analyzeAsync();
61
62
  const { transformers } = program.compiler.prepareEmit();
62
63
  const tsProgram = program.getTsProgram();
63
- // per-file emit
64
+ // 파일별 emit
64
65
  for (const filePath of sourceFiles) {
65
66
  const sf = tsProgram.getSourceFile(filePath);
66
67
  if (sf == null)
67
68
  continue;
68
- currentSourcePath = normalizePath(filePath);
69
+ currentSourcePath = pathx.posix(filePath);
69
70
  tsProgram.emit(sf, host.writeFile, undefined, false, transformers);
70
71
  }
71
72
  },
@@ -73,7 +74,7 @@ export function angularVitestPlugin(options) {
73
74
  if (!id.endsWith(".ts") || id.includes("node_modules")) {
74
75
  return undefined;
75
76
  }
76
- const compiled = compiledFiles.get(normalizePath(id));
77
+ const compiled = compiledFiles.get(pathx.posix(id));
77
78
  if (compiled == null) {
78
79
  return undefined;
79
80
  }
@@ -81,7 +82,4 @@ export function angularVitestPlugin(options) {
81
82
  },
82
83
  };
83
84
  }
84
- function normalizePath(p) {
85
- return p.replace(/\\/g, "/");
86
- }
87
85
  //# sourceMappingURL=vitest-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vitest-plugin.js","sourceRoot":"","sources":["../src/vitest-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vitest-plugin.js","sourceRoot":"","sources":["../src/vitest-plugin.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,10 @@ export interface ClientBuildInfo {
18
18
  browserSupport?: SdBrowserSupportConfig;
19
19
  /** PWA 설정. false로 비활성화. 미설정 시 기본값으로 활성화 */
20
20
  pwa?: false | SdPwaConfig;
21
- /** Enable lint using ts.Program from compilation */
21
+ /** 컴파일의 ts.Program 사용하여 lint 실행 */
22
22
  enableLint?: boolean;
23
+ /** Vite optimizeDeps.exclude에 전달할 패키지 목록 */
24
+ exclude?: string[];
23
25
  }
24
26
  /** Client 빌드 결과 */
25
27
  export interface ClientBuildResult {
@@ -46,7 +48,7 @@ export interface ClientWorkerEvents extends Record<string, unknown> {
46
48
  */
47
49
  declare function startWatch(info: ClientBuildInfo): Promise<ClientBuildResult>;
48
50
  /**
49
- * dev server 중지. Vite server를 정리한다.
51
+ * dev server 중지. Vite server 또는 RollupWatcher를 정리한다.
50
52
  */
51
53
  declare function stopWatch(): Promise<void>;
52
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.worker.d.ts","sourceRoot":"","sources":["../../src/workers/client.worker.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAM3E,sBAAsB;AACtB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uDAAuD;IACvD,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kBAAkB;IAClB,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,2CAA2C;IAC3C,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;IAC1B,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,mBAAmB;AACnB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED,oBAAoB;AACpB,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,iBAAiB,CAAC;IACzB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACrC;AAsBD;;;GAGG;AACH,iBAAe,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2D3E;AAED;;GAEG;AACH,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAQxC;AAED;;GAEG;AACH,iBAAe,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2CtE;AAmBD,QAAA,MAAM,MAAM;;;eAED,OAAO,KAAK;oBACP,OAAO,UAAU;mBAClB,OAAO,SAAS;;;CAGI,CAAC;AAEpC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"client.worker.d.ts","sourceRoot":"","sources":["../../src/workers/client.worker.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAM3E,sBAAsB;AACtB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uDAAuD;IACvD,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kBAAkB;IAClB,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,2CAA2C;IAC3C,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;IAC1B,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,mBAAmB;AACnB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED,oBAAoB;AACpB,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,iBAAiB,CAAC;IACzB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACrC;AAgID;;;GAGG;AACH,iBAAe,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+D3E;AAgGD;;GAEG;AACH,iBAAe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCxC;AAED;;GAEG;AACH,iBAAe,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4CtE;AAmBD,QAAA,MAAM,MAAM;;;eAED,OAAO,KAAK;oBACP,OAAO,UAAU;mBAClB,OAAO,SAAS;;;CAGI,CAAC;AAEpC,eAAe,MAAM,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { createServer, build as viteBuild } from "vite";
2
2
  import path from "path";
3
3
  import fs from "node:fs";
4
+ import http from "node:http";
5
+ import mime from "mime";
4
6
  import { createWorker } from "@simplysm/core-node";
5
7
  import { err as errNs } from "@simplysm/core-common";
6
8
  import { consola } from "consola";
@@ -11,6 +13,98 @@ applyDebugLevel();
11
13
  //#region Worker
12
14
  const logger = consola.withTag("sd:cli:client:worker");
13
15
  let viteServer;
16
+ let rollupWatcher;
17
+ let legacyHttpServer;
18
+ /** SSE 연결된 클라이언트 목록 (live reload용) */
19
+ const sseClients = new Set();
20
+ /** SSE 연결된 모든 클라이언트에 reload 신호를 전송한다 */
21
+ function notifyLiveReload() {
22
+ for (const client of sseClients) {
23
+ client.write("data: reload\n\n");
24
+ }
25
+ }
26
+ /** live reload 클라이언트 스크립트 (HTML에 주입) */
27
+ const LIVE_RELOAD_SCRIPT = `<script>(function(){var s=new EventSource("__live-reload");s.onmessage=function(){location.reload();};})()</script>`;
28
+ /**
29
+ * HTML 응답 시 live reload 스크립트를 </body> 직전에 주입한다.
30
+ */
31
+ function injectLiveReloadScript(html) {
32
+ const idx = html.lastIndexOf("</body>");
33
+ if (idx !== -1) {
34
+ return html.slice(0, idx) + LIVE_RELOAD_SCRIPT + html.slice(idx);
35
+ }
36
+ return html + LIVE_RELOAD_SCRIPT;
37
+ }
38
+ /**
39
+ * legacy dev 모드용 HTTP 정적 파일 서버를 생성한다.
40
+ * dist/ 디렉토리의 파일을 서빙하고, SPA fallback + SSE live reload를 지원한다.
41
+ */
42
+ function createLegacyHttpServer(distDir, basePath) {
43
+ return http.createServer((req, res) => {
44
+ const url = (req.url ?? "/").split("?")[0];
45
+ // basePath prefix 제거
46
+ let relativePath;
47
+ if (url.startsWith(basePath)) {
48
+ relativePath = url.slice(basePath.length);
49
+ }
50
+ else {
51
+ res.writeHead(404);
52
+ res.end("Not Found");
53
+ return;
54
+ }
55
+ // SSE live reload 엔드포인트
56
+ if (relativePath === "__live-reload" || relativePath === "/__live-reload") {
57
+ res.writeHead(200, {
58
+ "Content-Type": "text/event-stream",
59
+ "Cache-Control": "no-cache",
60
+ "Connection": "keep-alive",
61
+ });
62
+ sseClients.add(res);
63
+ req.on("close", () => {
64
+ sseClients.delete(res);
65
+ });
66
+ return;
67
+ }
68
+ // 빈 경로 또는 / → index.html
69
+ if (relativePath === "" || relativePath === "/") {
70
+ relativePath = "index.html";
71
+ }
72
+ // 선행 슬래시 제거
73
+ if (relativePath.startsWith("/")) {
74
+ relativePath = relativePath.slice(1);
75
+ }
76
+ const filePath = path.join(distDir, relativePath);
77
+ const ext = path.extname(filePath);
78
+ // 파일 존재 확인
79
+ if (fs.existsSync(filePath) && !fs.statSync(filePath).isDirectory()) {
80
+ const contentType = mime.getType(ext) ?? "application/octet-stream";
81
+ if (ext === ".html") {
82
+ // HTML: live reload 스크립트 주입
83
+ const content = injectLiveReloadScript(fs.readFileSync(filePath, "utf-8"));
84
+ res.writeHead(200, { "Content-Type": contentType });
85
+ res.end(content);
86
+ }
87
+ else {
88
+ const content = fs.readFileSync(filePath);
89
+ res.writeHead(200, { "Content-Type": contentType });
90
+ res.end(content);
91
+ }
92
+ }
93
+ else {
94
+ // SPA fallback: index.html 반환 (live reload 스크립트 주입)
95
+ const indexPath = path.join(distDir, "index.html");
96
+ if (fs.existsSync(indexPath)) {
97
+ const content = injectLiveReloadScript(fs.readFileSync(indexPath, "utf-8"));
98
+ res.writeHead(200, { "Content-Type": "text/html" });
99
+ res.end(content);
100
+ }
101
+ else {
102
+ res.writeHead(404);
103
+ res.end("Not Found");
104
+ }
105
+ }
106
+ });
107
+ }
14
108
  function resolvePackageInfo(info) {
15
109
  const tsconfigPath = path.join(info.pkgDir, "tsconfig.json");
16
110
  const pkgJsonPath = path.join(info.pkgDir, "package.json");
@@ -22,6 +116,9 @@ function resolvePackageInfo(info) {
22
116
  * 서버가 준비되면 serverReady 이벤트로 포트를 알린다.
23
117
  */
24
118
  async function startWatch(info) {
119
+ if (info.browserSupport?.legacyModule === true) {
120
+ return startLegacyWatch(info);
121
+ }
25
122
  logger.debug(`[${info.name}] client worker startWatch 시작 (port: ${info.port ?? "auto"})`);
26
123
  try {
27
124
  const { tsconfigPath, pkgName } = resolvePackageInfo(info);
@@ -45,6 +142,7 @@ async function startWatch(info) {
45
142
  legacyModule: info.browserSupport?.legacyModule,
46
143
  polyfills,
47
144
  pwa: info.pwa,
145
+ exclude: info.exclude,
48
146
  });
49
147
  logger.debug(`[${info.name}] Vite server 생성 시작`);
50
148
  viteServer = await createServer(viteConfig);
@@ -74,10 +172,119 @@ async function startWatch(info) {
74
172
  }
75
173
  }
76
174
  /**
77
- * dev server 중지. Vite server를 정리한다.
175
+ * legacy watch 시작. Vite build --watch로 파일 변경을 감시한다.
176
+ * legacyModule: true일 때 createServer 대신 사용한다.
177
+ */
178
+ async function startLegacyWatch(info) {
179
+ logger.debug(`[${info.name}] client worker startLegacyWatch 시작`);
180
+ try {
181
+ const { tsconfigPath, pkgName } = resolvePackageInfo(info);
182
+ // dist 초기화 (첫 빌드만 비움)
183
+ const distDir = path.join(info.pkgDir, "dist");
184
+ fs.rmSync(distDir, { recursive: true, force: true });
185
+ // polyfills.ts 자동 감지
186
+ const polyfillsPath = path.join(info.pkgDir, "src", "polyfills.ts");
187
+ const polyfills = fs.existsSync(polyfillsPath) ? ["./src/polyfills.ts"] : undefined;
188
+ const viteConfig = await createClientViteConfig({
189
+ pkgDir: info.pkgDir,
190
+ pkgName,
191
+ mode: "build",
192
+ tsconfigPath,
193
+ serverPort: 0,
194
+ env: info.env,
195
+ watch: true,
196
+ onBuildStart: () => sender.send("buildStart", {}),
197
+ onBuild: (result) => sender.send("build", result),
198
+ enableLint: info.enableLint,
199
+ replaceDeps: info.replaceDeps,
200
+ onScopeRebuild: () => sender.send("scopeRebuild", {}),
201
+ browserslist: info.browserSupport?.browserslist,
202
+ postCssPlugins: info.browserSupport?.postCss?.plugins,
203
+ legacyModule: info.browserSupport?.legacyModule,
204
+ polyfills,
205
+ pwa: false,
206
+ exclude: info.exclude,
207
+ });
208
+ const watcher = (await viteBuild(viteConfig));
209
+ rollupWatcher = watcher;
210
+ // .config.json 생성
211
+ writeConfigJson(info.pkgDir, info.configs);
212
+ // HTTP 정적 파일 서버 시작
213
+ const name = pkgName.replace(/^@[^/]+\//, "");
214
+ const basePath = `/${name}/`;
215
+ const httpServer = createLegacyHttpServer(distDir, basePath);
216
+ legacyHttpServer = httpServer;
217
+ const serverPort = await new Promise((resolve, reject) => {
218
+ httpServer.listen(info.port ?? 0, "0.0.0.0", () => {
219
+ const addr = httpServer.address();
220
+ if (typeof addr === "object" && addr != null) {
221
+ resolve(addr.port);
222
+ }
223
+ else {
224
+ reject(new Error("HTTP 서버 포트를 감지할 수 없습니다."));
225
+ }
226
+ });
227
+ httpServer.on("error", reject);
228
+ });
229
+ sender.send("serverReady", { port: serverPort });
230
+ // 첫 빌드 완료 대기
231
+ return await new Promise((resolve) => {
232
+ let firstBuildResolved = false;
233
+ watcher.on("event", (event) => {
234
+ if (event.code === "END") {
235
+ if (!firstBuildResolved) {
236
+ firstBuildResolved = true;
237
+ resolve({ success: true });
238
+ }
239
+ else {
240
+ // 재빌드 완료 → 브라우저 live reload
241
+ notifyLiveReload();
242
+ }
243
+ }
244
+ else if (event.code === "ERROR") {
245
+ const message = event.error?.message ?? "Unknown build error";
246
+ sender.send("error", { message });
247
+ if (!firstBuildResolved) {
248
+ firstBuildResolved = true;
249
+ resolve({ success: false, errors: [message] });
250
+ }
251
+ }
252
+ });
253
+ });
254
+ }
255
+ catch (err) {
256
+ const message = errNs.message(err);
257
+ sender.send("error", { message });
258
+ return { success: false, errors: [message] };
259
+ }
260
+ }
261
+ /**
262
+ * dev server 중지. Vite server 또는 RollupWatcher를 정리한다.
78
263
  */
79
264
  async function stopWatch() {
80
265
  logger.debug("Vite server 정리 시작");
266
+ const watcherToClose = rollupWatcher;
267
+ rollupWatcher = undefined;
268
+ if (watcherToClose != null) {
269
+ await watcherToClose.close();
270
+ }
271
+ // SSE 클라이언트 정리
272
+ for (const client of sseClients) {
273
+ client.end();
274
+ }
275
+ sseClients.clear();
276
+ const httpServerToClose = legacyHttpServer;
277
+ legacyHttpServer = undefined;
278
+ if (httpServerToClose != null) {
279
+ await new Promise((resolve, reject) => {
280
+ httpServerToClose.close((err) => {
281
+ if (err != null)
282
+ reject(err);
283
+ else
284
+ resolve();
285
+ });
286
+ });
287
+ }
81
288
  const serverToClose = viteServer;
82
289
  viteServer = undefined;
83
290
  if (serverToClose != null) {
@@ -114,6 +321,7 @@ async function build(info) {
114
321
  legacyModule: info.browserSupport?.legacyModule,
115
322
  polyfills,
116
323
  pwa: info.pwa,
324
+ exclude: info.exclude,
117
325
  });
118
326
  await viteBuild(viteConfig);
119
327
  // .config.json 생성