@simplysm/sd-cli 13.0.69 → 13.0.71

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 (201) hide show
  1. package/README.md +10 -957
  2. package/dist/builders/BaseBuilder.d.ts +23 -23
  3. package/dist/builders/BaseBuilder.d.ts.map +1 -1
  4. package/dist/builders/BaseBuilder.js +15 -15
  5. package/dist/builders/DtsBuilder.d.ts +4 -4
  6. package/dist/builders/DtsBuilder.js +1 -1
  7. package/dist/builders/LibraryBuilder.d.ts +3 -3
  8. package/dist/builders/types.d.ts +10 -10
  9. package/dist/capacitor/capacitor.d.ts +36 -36
  10. package/dist/capacitor/capacitor.js +63 -63
  11. package/dist/capacitor/capacitor.js.map +1 -1
  12. package/dist/commands/add-client.d.ts +8 -8
  13. package/dist/commands/add-client.js +15 -15
  14. package/dist/commands/add-client.js.map +1 -1
  15. package/dist/commands/add-server.d.ts +9 -9
  16. package/dist/commands/add-server.js +13 -13
  17. package/dist/commands/add-server.js.map +1 -1
  18. package/dist/commands/build.d.ts +9 -9
  19. package/dist/commands/check.js +3 -3
  20. package/dist/commands/check.js.map +1 -1
  21. package/dist/commands/dev.d.ts +9 -9
  22. package/dist/commands/device.d.ts +9 -9
  23. package/dist/commands/device.d.ts.map +1 -1
  24. package/dist/commands/device.js +17 -17
  25. package/dist/commands/device.js.map +1 -1
  26. package/dist/commands/init.d.ts +6 -6
  27. package/dist/commands/init.js +12 -12
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/lint.d.ts +23 -23
  30. package/dist/commands/lint.d.ts.map +1 -1
  31. package/dist/commands/lint.js +25 -25
  32. package/dist/commands/lint.js.map +1 -1
  33. package/dist/commands/publish.d.ts +13 -13
  34. package/dist/commands/publish.d.ts.map +1 -1
  35. package/dist/commands/publish.js +61 -61
  36. package/dist/commands/publish.js.map +1 -1
  37. package/dist/commands/replace-deps.d.ts +3 -3
  38. package/dist/commands/replace-deps.d.ts.map +1 -1
  39. package/dist/commands/replace-deps.js +1 -1
  40. package/dist/commands/replace-deps.js.map +1 -1
  41. package/dist/commands/typecheck.d.ts +20 -20
  42. package/dist/commands/typecheck.d.ts.map +1 -1
  43. package/dist/commands/typecheck.js +20 -20
  44. package/dist/commands/typecheck.js.map +1 -1
  45. package/dist/commands/watch.d.ts +7 -7
  46. package/dist/electron/electron.d.ts +27 -27
  47. package/dist/electron/electron.js +32 -32
  48. package/dist/electron/electron.js.map +1 -1
  49. package/dist/infra/ResultCollector.d.ts +9 -9
  50. package/dist/infra/ResultCollector.js +5 -5
  51. package/dist/infra/SignalHandler.d.ts +7 -7
  52. package/dist/infra/SignalHandler.js +4 -4
  53. package/dist/infra/WorkerManager.d.ts +14 -14
  54. package/dist/infra/WorkerManager.js +11 -11
  55. package/dist/orchestrators/BuildOrchestrator.d.ts +19 -19
  56. package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
  57. package/dist/orchestrators/BuildOrchestrator.js +26 -26
  58. package/dist/orchestrators/BuildOrchestrator.js.map +1 -1
  59. package/dist/orchestrators/DevOrchestrator.d.ts +25 -25
  60. package/dist/orchestrators/DevOrchestrator.d.ts.map +1 -1
  61. package/dist/orchestrators/DevOrchestrator.js +30 -30
  62. package/dist/orchestrators/DevOrchestrator.js.map +1 -1
  63. package/dist/orchestrators/WatchOrchestrator.d.ts +13 -13
  64. package/dist/orchestrators/WatchOrchestrator.js +17 -17
  65. package/dist/orchestrators/WatchOrchestrator.js.map +1 -1
  66. package/dist/sd-cli-entry.d.ts +2 -2
  67. package/dist/sd-cli-entry.js +38 -38
  68. package/dist/sd-cli-entry.js.map +1 -1
  69. package/dist/sd-cli.d.ts +2 -2
  70. package/dist/sd-cli.js +1 -1
  71. package/dist/sd-cli.js.map +1 -1
  72. package/dist/sd-config.types.d.ts +84 -84
  73. package/dist/sd-config.types.d.ts.map +1 -1
  74. package/dist/utils/build-env.d.ts +1 -1
  75. package/dist/utils/config-editor.d.ts +5 -5
  76. package/dist/utils/config-editor.js +2 -2
  77. package/dist/utils/config-editor.js.map +1 -1
  78. package/dist/utils/copy-public.d.ts +9 -9
  79. package/dist/utils/copy-src.d.ts +9 -9
  80. package/dist/utils/esbuild-config.d.ts +30 -30
  81. package/dist/utils/esbuild-config.d.ts.map +1 -1
  82. package/dist/utils/output-utils.d.ts +6 -6
  83. package/dist/utils/package-utils.d.ts +6 -6
  84. package/dist/utils/package-utils.js +1 -1
  85. package/dist/utils/package-utils.js.map +1 -1
  86. package/dist/utils/rebuild-manager.js +3 -3
  87. package/dist/utils/rebuild-manager.js.map +1 -1
  88. package/dist/utils/replace-deps.d.ts +25 -25
  89. package/dist/utils/replace-deps.js +3 -3
  90. package/dist/utils/replace-deps.js.map +1 -1
  91. package/dist/utils/sd-config.d.ts +3 -3
  92. package/dist/utils/sd-config.js +3 -3
  93. package/dist/utils/sd-config.js.map +1 -1
  94. package/dist/utils/tailwind-config-deps.d.ts +3 -3
  95. package/dist/utils/template.d.ts +8 -8
  96. package/dist/utils/tsconfig.d.ts +16 -16
  97. package/dist/utils/tsconfig.js +2 -2
  98. package/dist/utils/tsconfig.js.map +1 -1
  99. package/dist/utils/typecheck-serialization.d.ts +8 -8
  100. package/dist/utils/vite-config.d.ts +8 -8
  101. package/dist/utils/vite-config.d.ts.map +1 -1
  102. package/dist/utils/vite-config.js +3 -3
  103. package/dist/utils/worker-events.d.ts +12 -12
  104. package/dist/utils/worker-events.d.ts.map +1 -1
  105. package/dist/utils/worker-utils.d.ts +3 -3
  106. package/dist/utils/worker-utils.js +2 -2
  107. package/dist/utils/worker-utils.js.map +1 -1
  108. package/dist/workers/client.worker.d.ts +14 -14
  109. package/dist/workers/client.worker.d.ts.map +1 -1
  110. package/dist/workers/client.worker.js +1 -1
  111. package/dist/workers/client.worker.js.map +1 -1
  112. package/dist/workers/dts.worker.d.ts +13 -13
  113. package/dist/workers/dts.worker.d.ts.map +1 -1
  114. package/dist/workers/dts.worker.js +3 -3
  115. package/dist/workers/dts.worker.js.map +1 -1
  116. package/dist/workers/library.worker.d.ts +12 -12
  117. package/dist/workers/library.worker.js +1 -1
  118. package/dist/workers/library.worker.js.map +1 -1
  119. package/dist/workers/lint.worker.d.ts +1 -1
  120. package/dist/workers/server-runtime.worker.d.ts +6 -6
  121. package/dist/workers/server-runtime.worker.js +6 -6
  122. package/dist/workers/server-runtime.worker.js.map +1 -1
  123. package/dist/workers/server.worker.d.ts +20 -20
  124. package/dist/workers/server.worker.d.ts.map +1 -1
  125. package/dist/workers/server.worker.js +6 -6
  126. package/dist/workers/server.worker.js.map +1 -1
  127. package/package.json +8 -7
  128. package/src/builders/BaseBuilder.ts +33 -33
  129. package/src/builders/DtsBuilder.ts +5 -5
  130. package/src/builders/LibraryBuilder.ts +9 -9
  131. package/src/builders/types.ts +10 -10
  132. package/src/capacitor/capacitor.ts +119 -119
  133. package/src/commands/add-client.ts +31 -31
  134. package/src/commands/add-server.ts +34 -34
  135. package/src/commands/build.ts +9 -9
  136. package/src/commands/check.ts +5 -5
  137. package/src/commands/dev.ts +9 -9
  138. package/src/commands/device.ts +30 -30
  139. package/src/commands/init.ts +25 -25
  140. package/src/commands/lint.ts +64 -64
  141. package/src/commands/publish.ts +139 -139
  142. package/src/commands/replace-deps.ts +4 -4
  143. package/src/commands/typecheck.ts +74 -74
  144. package/src/commands/watch.ts +7 -7
  145. package/src/electron/electron.ts +51 -51
  146. package/src/infra/ResultCollector.ts +9 -9
  147. package/src/infra/SignalHandler.ts +7 -7
  148. package/src/infra/WorkerManager.ts +14 -14
  149. package/src/orchestrators/BuildOrchestrator.ts +76 -76
  150. package/src/orchestrators/DevOrchestrator.ts +88 -88
  151. package/src/orchestrators/WatchOrchestrator.ts +39 -39
  152. package/src/sd-cli-entry.ts +43 -43
  153. package/src/sd-cli.ts +15 -15
  154. package/src/sd-config.types.ts +85 -85
  155. package/src/utils/build-env.ts +1 -1
  156. package/src/utils/config-editor.ts +19 -19
  157. package/src/utils/copy-public.ts +17 -17
  158. package/src/utils/copy-src.ts +11 -11
  159. package/src/utils/esbuild-config.ts +33 -33
  160. package/src/utils/output-utils.ts +11 -11
  161. package/src/utils/package-utils.ts +12 -12
  162. package/src/utils/rebuild-manager.ts +3 -3
  163. package/src/utils/replace-deps.ts +361 -361
  164. package/src/utils/sd-config.ts +44 -44
  165. package/src/utils/tailwind-config-deps.ts +98 -98
  166. package/src/utils/template.ts +56 -56
  167. package/src/utils/tsconfig.ts +127 -127
  168. package/src/utils/typecheck-serialization.ts +86 -86
  169. package/src/utils/vite-config.ts +341 -341
  170. package/src/utils/worker-events.ts +16 -16
  171. package/src/utils/worker-utils.ts +45 -45
  172. package/src/workers/client.worker.ts +34 -34
  173. package/src/workers/dts.worker.ts +467 -467
  174. package/src/workers/library.worker.ts +314 -314
  175. package/src/workers/lint.worker.ts +16 -16
  176. package/src/workers/server-runtime.worker.ts +157 -157
  177. package/src/workers/server.worker.ts +572 -572
  178. package/templates/add-client/__CLIENT__/package.json.hbs +1 -1
  179. package/templates/add-server/__SERVER__/package.json.hbs +2 -2
  180. package/templates/init/package.json.hbs +3 -3
  181. package/tests/config-editor.spec.ts +160 -0
  182. package/tests/copy-src.spec.ts +50 -0
  183. package/tests/get-compiler-options-for-package.spec.ts +139 -0
  184. package/tests/get-package-source-files.spec.ts +181 -0
  185. package/tests/get-types-from-package-json.spec.ts +107 -0
  186. package/tests/infra/ResultCollector.spec.ts +39 -0
  187. package/tests/infra/SignalHandler.spec.ts +38 -0
  188. package/tests/infra/WorkerManager.spec.ts +97 -0
  189. package/tests/load-ignore-patterns.spec.ts +188 -0
  190. package/tests/load-sd-config.spec.ts +137 -0
  191. package/tests/package-utils.spec.ts +188 -0
  192. package/tests/parse-root-tsconfig.spec.ts +89 -0
  193. package/tests/replace-deps.spec.ts +308 -0
  194. package/tests/run-lint.spec.ts +415 -0
  195. package/tests/run-typecheck.spec.ts +653 -0
  196. package/tests/run-watch.spec.ts +75 -0
  197. package/tests/sd-cli.spec.ts +330 -0
  198. package/tests/tailwind-config-deps.spec.ts +30 -0
  199. package/tests/template.spec.ts +70 -0
  200. package/tests/utils/rebuild-manager.spec.ts +43 -0
  201. package/tests/write-changed-output-files.spec.ts +97 -0
@@ -1,6 +1,6 @@
1
1
  import type { SdPackageConfig } from "../sd-config.types";
2
2
  /**
3
- * import.meta.dirname에서 상위로 올라가며 package.json 찾아 패키지 루트를 반환한다.
3
+ * Walk up from import.meta.dirname to find package.json and return package root
4
4
  */
5
5
  export declare function findPackageRoot(startDir: string): string;
6
6
  export interface DepsResult {
@@ -9,11 +9,11 @@ export interface DepsResult {
9
9
  }
10
10
  export declare function collectDeps(pkgDir: string, cwd: string, replaceDepsConfig?: Record<string, string>): DepsResult;
11
11
  /**
12
- * 패키지 설정에서 targets 필터링 (scripts 타겟 제외)
13
- * @param packages 패키지 설정
14
- * @param targets 필터링할 패키지 이름 목록. 배열이면 scripts를 제외한 모든 패키지 반환
15
- * @returns 필터링된 패키지 설정
16
- * @internal 테스트용으로 export
12
+ * Filter packages config by targets (excluding scripts target)
13
+ * @param packages Package config map
14
+ * @param targets List of package names to filter. If empty array, return all packages except scripts
15
+ * @returns Filtered package config map
16
+ * @internal exported for testing
17
17
  */
18
18
  export declare function filterPackagesByTargets(packages: Record<string, SdPackageConfig | undefined>, targets: string[]): Record<string, SdPackageConfig>;
19
19
  //# sourceMappingURL=package-utils.d.ts.map
@@ -4,7 +4,7 @@ function findPackageRoot(startDir) {
4
4
  let dir = startDir;
5
5
  while (!fs.existsSync(path.join(dir, "package.json"))) {
6
6
  const parent = path.dirname(dir);
7
- if (parent === dir) throw new Error("package.json\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.");
7
+ if (parent === dir) throw new Error("package.json not found");
8
8
  dir = parent;
9
9
  }
10
10
  return dir;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/package-utils.ts"],
4
- "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AAMR,SAAS,gBAAgB,UAA0B;AACxD,MAAI,MAAM;AACV,SAAO,CAAC,GAAG,WAAW,KAAK,KAAK,KAAK,cAAc,CAAC,GAAG;AACrD,UAAM,SAAS,KAAK,QAAQ,GAAG;AAC/B,QAAI,WAAW,IAAK,OAAM,IAAI,MAAM,kEAA0B;AAC9D,UAAM;AAAA,EACR;AACA,SAAO;AACT;AAOO,SAAS,YACd,QACA,KACA,mBACY;AACZ,QAAM,kBAAkB,KAAK,KAAK,KAAK,cAAc;AACrD,QAAM,cAAc,KAAK,MAAM,GAAG,aAAa,iBAAiB,OAAO,CAAC;AACxE,QAAM,aAAa,YAAY,KAAK,MAAM,aAAa;AACvD,QAAM,iBAAiB,cAAc,OAAO,WAAW,CAAC,IAAI;AAE5D,QAAM,sBAAgD,CAAC;AACvD,MAAI,qBAAqB,MAAM;AAC7B,eAAW,WAAW,OAAO,KAAK,iBAAiB,GAAG;AACpD,YAAM,WAAW,QAAQ,QAAQ,SAAS,CAAC,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,OAAO,OAAO;AACnF,0BAAoB,KAAK,EAAE,OAAO,IAAI,OAAO,IAAI,QAAQ,GAAG,EAAE,CAAC;AAAA,IACjE;AAAA,EACF;AAEA,QAAM,gBAA0B,CAAC;AACjC,QAAM,cAAwB,CAAC;AAC/B,QAAM,UAAU,oBAAI,IAAY;AAEhC,WAAS,SAAS,KAAmB;AACnC,UAAM,cAAc,KAAK,KAAK,KAAK,cAAc;AACjD,QAAI,CAAC,GAAG,WAAW,WAAW,EAAG;AAEjC,UAAM,UAAU,KAAK,MAAM,GAAG,aAAa,aAAa,OAAO,CAAC;AAGhE,UAAM,OAAO,OAAO,KAAK,QAAQ,gBAAgB,CAAC,CAAC;AAEnD,eAAW,OAAO,MAAM;AACtB,UAAI,QAAQ,IAAI,GAAG,EAAG;AACtB,cAAQ,IAAI,GAAG;AAGf,UAAI,kBAAkB,QAAQ,IAAI,WAAW,iBAAiB,GAAG,GAAG;AAClE,cAAM,UAAU,IAAI,MAAM,eAAe,SAAS,CAAC;AACnD,cAAM,SAAS,KAAK,KAAK,KAAK,YAAY,OAAO;AACjD,YAAI,GAAG,WAAW,KAAK,KAAK,QAAQ,cAAc,CAAC,GAAG;AACpD,wBAAc,KAAK,OAAO;AAC1B,mBAAS,MAAM;AACf;AAAA,QACF;AAAA,MACF;AAGA,YAAM,UAAU,oBAAoB,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC;AACjE,UAAI,WAAW,MAAM;AACnB,oBAAY,KAAK,GAAG;AACpB,cAAM,oBAAoB,KAAK,KAAK,KAAK,gBAAgB,GAAG,IAAI,MAAM,GAAG,CAAC;AAC1E,YAAI,GAAG,WAAW,KAAK,KAAK,mBAAmB,cAAc,CAAC,GAAG;AAC/D,mBAAS,iBAAiB;AAAA,QAC5B;AACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,WAAS,MAAM;AACf,SAAO,EAAE,eAAe,YAAY;AACtC;AASO,SAAS,wBACd,UACA,SACiC;AACjC,QAAM,SAA0C,CAAC;AAEjD,aAAW,CAAC,MAAM,MAAM,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACrD,QAAI,UAAU,KAAM;AAGpB,QAAI,OAAO,WAAW,UAAW;AAGjC,QAAI,QAAQ,WAAW,GAAG;AACxB,aAAO,IAAI,IAAI;AACf;AAAA,IACF;AAGA,QAAI,QAAQ,SAAS,IAAI,GAAG;AAC1B,aAAO,IAAI,IAAI;AAAA,IACjB;AAAA,EACF;AAEA,SAAO;AACT;",
4
+ "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AAMR,SAAS,gBAAgB,UAA0B;AACxD,MAAI,MAAM;AACV,SAAO,CAAC,GAAG,WAAW,KAAK,KAAK,KAAK,cAAc,CAAC,GAAG;AACrD,UAAM,SAAS,KAAK,QAAQ,GAAG;AAC/B,QAAI,WAAW,IAAK,OAAM,IAAI,MAAM,wBAAwB;AAC5D,UAAM;AAAA,EACR;AACA,SAAO;AACT;AAOO,SAAS,YACd,QACA,KACA,mBACY;AACZ,QAAM,kBAAkB,KAAK,KAAK,KAAK,cAAc;AACrD,QAAM,cAAc,KAAK,MAAM,GAAG,aAAa,iBAAiB,OAAO,CAAC;AACxE,QAAM,aAAa,YAAY,KAAK,MAAM,aAAa;AACvD,QAAM,iBAAiB,cAAc,OAAO,WAAW,CAAC,IAAI;AAE5D,QAAM,sBAAgD,CAAC;AACvD,MAAI,qBAAqB,MAAM;AAC7B,eAAW,WAAW,OAAO,KAAK,iBAAiB,GAAG;AACpD,YAAM,WAAW,QAAQ,QAAQ,SAAS,CAAC,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,OAAO,OAAO;AACnF,0BAAoB,KAAK,EAAE,OAAO,IAAI,OAAO,IAAI,QAAQ,GAAG,EAAE,CAAC;AAAA,IACjE;AAAA,EACF;AAEA,QAAM,gBAA0B,CAAC;AACjC,QAAM,cAAwB,CAAC;AAC/B,QAAM,UAAU,oBAAI,IAAY;AAEhC,WAAS,SAAS,KAAmB;AACnC,UAAM,cAAc,KAAK,KAAK,KAAK,cAAc;AACjD,QAAI,CAAC,GAAG,WAAW,WAAW,EAAG;AAEjC,UAAM,UAAU,KAAK,MAAM,GAAG,aAAa,aAAa,OAAO,CAAC;AAGhE,UAAM,OAAO,OAAO,KAAK,QAAQ,gBAAgB,CAAC,CAAC;AAEnD,eAAW,OAAO,MAAM;AACtB,UAAI,QAAQ,IAAI,GAAG,EAAG;AACtB,cAAQ,IAAI,GAAG;AAGf,UAAI,kBAAkB,QAAQ,IAAI,WAAW,iBAAiB,GAAG,GAAG;AAClE,cAAM,UAAU,IAAI,MAAM,eAAe,SAAS,CAAC;AACnD,cAAM,SAAS,KAAK,KAAK,KAAK,YAAY,OAAO;AACjD,YAAI,GAAG,WAAW,KAAK,KAAK,QAAQ,cAAc,CAAC,GAAG;AACpD,wBAAc,KAAK,OAAO;AAC1B,mBAAS,MAAM;AACf;AAAA,QACF;AAAA,MACF;AAGA,YAAM,UAAU,oBAAoB,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC;AACjE,UAAI,WAAW,MAAM;AACnB,oBAAY,KAAK,GAAG;AACpB,cAAM,oBAAoB,KAAK,KAAK,KAAK,gBAAgB,GAAG,IAAI,MAAM,GAAG,CAAC;AAC1E,YAAI,GAAG,WAAW,KAAK,KAAK,mBAAmB,cAAc,CAAC,GAAG;AAC/D,mBAAS,iBAAiB;AAAA,QAC5B;AACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,WAAS,MAAM;AACf,SAAO,EAAE,eAAe,YAAY;AACtC;AASO,SAAS,wBACd,UACA,SACiC;AACjC,QAAM,SAA0C,CAAC;AAEjD,aAAW,CAAC,MAAM,MAAM,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACrD,QAAI,UAAU,KAAM;AAGpB,QAAI,OAAO,WAAW,UAAW;AAGjC,QAAI,QAAQ,WAAW,GAAG;AACxB,aAAO,IAAI,IAAI;AACf;AAAA,IACF;AAGA,QAAI,QAAQ,SAAS,IAAI,GAAG;AAC1B,aAAO,IAAI,IAAI;AAAA,IACjB;AAAA,EACF;AAEA,SAAO;AACT;",
5
5
  "names": []
6
6
  }
@@ -28,15 +28,15 @@ class RebuildManager extends EventEmitter {
28
28
  this._pendingBuilds.clear();
29
29
  const tasks = Array.from(batchBuilds.entries());
30
30
  const titles = tasks.map(([, { title }]) => title).join(", ");
31
- this._logger.start(`\uB9AC\uBE4C\uB4DC \uC9C4\uD589 \uC911... (${titles})`);
31
+ this._logger.start(`Rebuilding... (${titles})`);
32
32
  const results = await Promise.allSettled(tasks.map(([, { promise }]) => promise));
33
33
  const failed = results.filter((r) => r.status === "rejected");
34
34
  if (failed.length > 0) {
35
35
  for (const result of failed) {
36
- this._logger.error("\uB9AC\uBE4C\uB4DC \uC911 \uC624\uB958 \uBC1C\uC0DD", { error: String(result.reason) });
36
+ this._logger.error("Error during rebuild", { error: String(result.reason) });
37
37
  }
38
38
  }
39
- this._logger.success(`\uB9AC\uBE4C\uB4DC \uC644\uB8CC (${titles})`);
39
+ this._logger.success(`Rebuild completed (${titles})`);
40
40
  this.emit("batchComplete");
41
41
  this._isRunning = false;
42
42
  if (this._pendingBuilds.size > 0) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/rebuild-manager.ts"],
4
- "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AAMjB,MAAM,uBAAuB,aAAmC;AAAA,EAC7D,aAAa;AAAA,EACJ,iBAAiB,oBAAI,IAGpC;AAAA,EACe;AAAA,EAEjB,YAAY,QAA4C;AACtD,UAAM;AACN,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,cAAc,KAAa,OAA2B;AACpD,QAAI;AACJ,UAAM,UAAU,IAAI,QAAc,CAAC,YAAY;AAC7C,iBAAW;AAAA,IACb,CAAC;AAED,SAAK,eAAe,IAAI,KAAK,EAAE,OAAO,SAAS,SAAS,CAAC;AAEzD,QAAI,CAAC,KAAK,YAAY;AACpB,WAAK,QAAQ,QAAQ,EAAE,KAAK,MAAM,KAAK,KAAK,UAAU,CAAC;AAAA,IACzD;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,YAA2B;AACvC,QAAI,KAAK,cAAc,KAAK,eAAe,SAAS,GAAG;AACrD;AAAA,IACF;AAEA,SAAK,aAAa;AAElB,UAAM,cAAc,IAAI,IAAI,KAAK,cAAc;AAC/C,SAAK,eAAe,MAAM;AAE1B,UAAM,QAAQ,MAAM,KAAK,YAAY,QAAQ,CAAC;AAC9C,UAAM,SAAS,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,EAAE,KAAK,IAAI;AAC5D,SAAK,QAAQ,MAAM,8CAAgB,MAAM,GAAG;AAE5C,UAAM,UAAU,MAAM,QAAQ,WAAW,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,OAAO,CAAC;AAEhF,UAAM,SAAS,QAAQ,OAAO,CAAC,MAAkC,EAAE,WAAW,UAAU;AACxF,QAAI,OAAO,SAAS,GAAG;AACrB,iBAAW,UAAU,QAAQ;AAC3B,aAAK,QAAQ,MAAM,uDAAe,EAAE,OAAO,OAAO,OAAO,MAAM,EAAE,CAAC;AAAA,MACpE;AAAA,IACF;AAEA,SAAK,QAAQ,QAAQ,oCAAW,MAAM,GAAG;AAEzC,SAAK,KAAK,eAAe;AAEzB,SAAK,aAAa;AAElB,QAAI,KAAK,eAAe,OAAO,GAAG;AAChC,WAAK,KAAK,UAAU;AAAA,IACtB;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AAMjB,MAAM,uBAAuB,aAAmC;AAAA,EAC7D,aAAa;AAAA,EACJ,iBAAiB,oBAAI,IAGpC;AAAA,EACe;AAAA,EAEjB,YAAY,QAA4C;AACtD,UAAM;AACN,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,cAAc,KAAa,OAA2B;AACpD,QAAI;AACJ,UAAM,UAAU,IAAI,QAAc,CAAC,YAAY;AAC7C,iBAAW;AAAA,IACb,CAAC;AAED,SAAK,eAAe,IAAI,KAAK,EAAE,OAAO,SAAS,SAAS,CAAC;AAEzD,QAAI,CAAC,KAAK,YAAY;AACpB,WAAK,QAAQ,QAAQ,EAAE,KAAK,MAAM,KAAK,KAAK,UAAU,CAAC;AAAA,IACzD;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,YAA2B;AACvC,QAAI,KAAK,cAAc,KAAK,eAAe,SAAS,GAAG;AACrD;AAAA,IACF;AAEA,SAAK,aAAa;AAElB,UAAM,cAAc,IAAI,IAAI,KAAK,cAAc;AAC/C,SAAK,eAAe,MAAM;AAE1B,UAAM,QAAQ,MAAM,KAAK,YAAY,QAAQ,CAAC;AAC9C,UAAM,SAAS,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,EAAE,KAAK,IAAI;AAC5D,SAAK,QAAQ,MAAM,kBAAkB,MAAM,GAAG;AAE9C,UAAM,UAAU,MAAM,QAAQ,WAAW,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,OAAO,CAAC;AAEhF,UAAM,SAAS,QAAQ,OAAO,CAAC,MAAkC,EAAE,WAAW,UAAU;AACxF,QAAI,OAAO,SAAS,GAAG;AACrB,iBAAW,UAAU,QAAQ;AAC3B,aAAK,QAAQ,MAAM,wBAAwB,EAAE,OAAO,OAAO,OAAO,MAAM,EAAE,CAAC;AAAA,MAC7E;AAAA,IACF;AAEA,SAAK,QAAQ,QAAQ,sBAAsB,MAAM,GAAG;AAEpD,SAAK,KAAK,eAAe;AAEzB,SAAK,aAAa;AAElB,QAAI,KAAK,eAAe,OAAO,GAAG;AAChC,WAAK,KAAK,UAAU;AAAA,IACtB;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,25 +1,25 @@
1
1
  /**
2
- * replaceDeps 설정의 glob 패턴과 대상 패키지 목록을 매칭하여
3
- * { targetName, sourcePath } 쌍을 반환한다.
2
+ * Match glob patterns from replaceDeps config with target package list
3
+ * and return { targetName, sourcePath } pairs
4
4
  *
5
- * @param replaceDeps - sd.config.ts replaceDeps 설정 (키: glob 패턴, 값: 소스 경로)
6
- * @param targetNames - node_modules에서 찾은 패키지 이름 목록 (예: ["@simplysm/solid", ...])
7
- * @returns 매칭된 { targetName, sourcePath } 배열
5
+ * @param replaceDeps - replaceDeps config from sd.config.ts (key: glob pattern, value: source path)
6
+ * @param targetNames - List of package names found in node_modules (e.g., ["@simplysm/solid", ...])
7
+ * @returns Array of matched { targetName, sourcePath }
8
8
  */
9
9
  export declare function resolveReplaceDepEntries(replaceDeps: Record<string, string>, targetNames: string[]): Array<{
10
10
  targetName: string;
11
11
  sourcePath: string;
12
12
  }>;
13
13
  /**
14
- * pnpm-workspace.yaml 내용을 파싱하여 workspace packages glob 배열을 반환한다.
15
- * 별도 YAML 라이브러리 없이 간단한 라인 파싱으로 처리한다.
14
+ * Parse pnpm-workspace.yaml content and return array of workspace packages globs
15
+ * Simple line parsing without separate YAML library
16
16
  *
17
- * @param content - pnpm-workspace.yaml 파일 내용
18
- * @returns glob 패턴 배열 (예: ["packages/*", "tools/*"])
17
+ * @param content - Content of pnpm-workspace.yaml file
18
+ * @returns Array of glob patterns (e.g., ["packages/*", "tools/*"])
19
19
  */
20
20
  export declare function parseWorkspaceGlobs(content: string): string[];
21
21
  /**
22
- * replaceDeps 복사 교체 항목
22
+ * replaceDeps copy/replace item
23
23
  */
24
24
  export interface ReplaceDepEntry {
25
25
  targetName: string;
@@ -29,34 +29,34 @@ export interface ReplaceDepEntry {
29
29
  actualTargetPath: string;
30
30
  }
31
31
  /**
32
- * watchReplaceDeps 반환 타입
32
+ * Return type of watchReplaceDeps
33
33
  */
34
34
  export interface WatchReplaceDepResult {
35
35
  entries: ReplaceDepEntry[];
36
36
  dispose: () => void;
37
37
  }
38
38
  /**
39
- * replaceDeps 설정에 따라 node_modules 패키지를 소스 디렉토리로 복사 교체한다.
39
+ * Replace packages in node_modules with source directories according to replaceDeps config.
40
40
  *
41
- * 1. pnpm-workspace.yaml 파싱 → workspace 패키지 경로 목록
42
- * 2. [루트, ...workspace 패키지] node_modules에서 매칭되는 패키지 찾기
43
- * 3. 기존 symlink/디렉토리 제거소스 경로를 복사 (node_modules, package.json, .cache, tests 제외)
41
+ * 1. Parse pnpm-workspace.yaml → workspace package paths
42
+ * 2. Find matching packages in [root, ...workspace packages] node_modules
43
+ * 3. Remove existing symlinks/directoriescopy source path (excluding node_modules, package.json, .cache, tests)
44
44
  *
45
- * @param projectRoot - 프로젝트 루트 경로
46
- * @param replaceDeps - sd.config.ts의 replaceDeps 설정
45
+ * @param projectRoot - Project root path
46
+ * @param replaceDeps - replaceDeps config from sd.config.ts
47
47
  */
48
48
  export declare function setupReplaceDeps(projectRoot: string, replaceDeps: Record<string, string>): Promise<void>;
49
49
  /**
50
- * replaceDeps 설정에 따라 소스 디렉토리를 watch하여 변경 대상 경로로 복사한다.
50
+ * Watch source directories according to replaceDeps config and copy changes to target paths.
51
51
  *
52
- * 1. pnpm-workspace.yaml 파싱 → workspace 패키지 경로 목록
53
- * 2. [루트, ...workspace 패키지] node_modules에서 매칭되는 패키지 찾기
54
- * 3. 소스 디렉토리를 FsWatcher watch (300ms delay)
55
- * 4. 변경 대상 경로로 복사 (node_modules, package.json, .cache, tests 제외)
52
+ * 1. Parse pnpm-workspace.yaml → workspace package paths
53
+ * 2. Find matching packages in [root, ...workspace packages] node_modules
54
+ * 3. Watch source directories with FsWatcher (300ms delay)
55
+ * 4. Copy changes to target paths (excluding node_modules, package.json, .cache, tests)
56
56
  *
57
- * @param projectRoot - 프로젝트 루트 경로
58
- * @param replaceDeps - sd.config.ts의 replaceDeps 설정
59
- * @returns entries dispose 함수
57
+ * @param projectRoot - Project root path
58
+ * @param replaceDeps - replaceDeps config from sd.config.ts
59
+ * @returns entries and dispose function
60
60
  */
61
61
  export declare function watchReplaceDeps(projectRoot: string, replaceDeps: Record<string, string>): Promise<WatchReplaceDepResult>;
62
62
  //# sourceMappingURL=replace-deps.d.ts.map
@@ -87,7 +87,7 @@ async function resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger) {
87
87
  try {
88
88
  await fs.promises.access(resolvedSourcePath);
89
89
  } catch {
90
- logger.warn(`\uC18C\uC2A4 \uACBD\uB85C\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC544 \uC2A4\uD0B5\uD569\uB2C8\uB2E4: ${resolvedSourcePath}`);
90
+ logger.warn(`Source path does not exist, skipping: ${resolvedSourcePath}`);
91
91
  continue;
92
92
  }
93
93
  let actualTargetPath = targetPath;
@@ -119,7 +119,7 @@ async function setupReplaceDeps(projectRoot, replaceDeps) {
119
119
  await fsCopy(resolvedSourcePath, actualTargetPath, replaceDepsCopyFilter);
120
120
  setupCount += 1;
121
121
  } catch (err) {
122
- logger.error(`\uBCF5\uC0AC \uAD50\uCCB4 \uC2E4\uD328 (${targetName}): ${err instanceof Error ? err.message : err}`);
122
+ logger.error(`Copy replace failed (${targetName}): ${err instanceof Error ? err.message : err}`);
123
123
  }
124
124
  }
125
125
  logger.success(`Replaced ${setupCount} dependencies`);
@@ -166,7 +166,7 @@ async function watchReplaceDeps(projectRoot, replaceDeps) {
166
166
  }
167
167
  } catch (err) {
168
168
  logger.error(
169
- `\uBCF5\uC0AC \uC2E4\uD328 (${e.targetName}/${relativePath}): ${err instanceof Error ? err.message : err}`
169
+ `Copy failed (${e.targetName}/${relativePath}): ${err instanceof Error ? err.message : err}`
170
170
  );
171
171
  }
172
172
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/replace-deps.ts"],
4
- "mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,QAAQ,SAAS,MAAM,WAAW,uBAAuB;AAU3D,SAAS,yBACd,aACA,aACmD;AACnD,QAAM,UAA6D,CAAC;AAEpE,aAAW,CAAC,SAAS,cAAc,KAAK,OAAO,QAAQ,WAAW,GAAG;AAEnE,UAAM,aAAa,QAAQ,QAAQ,aAAa,CAAC,OAAO;AACtD,UAAI,OAAO,IAAK,QAAO;AACvB,UAAI,OAAO,IAAK,QAAO;AACvB,UAAI,OAAO,OAAO,OAAO,KAAM,QAAO;AACtC,UAAI,OAAO,IAAK,QAAO;AACvB,aAAO;AAAA,IACT,CAAC;AACD,UAAM,QAAQ,IAAI,OAAO,IAAI,UAAU,GAAG;AAC1C,UAAM,cAAc,QAAQ,SAAS,GAAG;AAExC,eAAW,cAAc,aAAa;AACpC,YAAM,QAAQ,MAAM,KAAK,UAAU;AACnC,UAAI,SAAS,KAAM;AAGnB,YAAM,aAAa,cAAc,eAAe,QAAQ,OAAO,MAAM,CAAC,CAAC,IAAI;AAE3E,cAAQ,KAAK,EAAE,YAAY,WAAW,CAAC;AAAA,IACzC;AAAA,EACF;AAEA,SAAO;AACT;AASO,SAAS,oBAAoB,SAA2B;AAC7D,QAAM,QAAQ,QAAQ,MAAM,IAAI;AAChC,QAAM,QAAkB,CAAC;AACzB,MAAI,aAAa;AAEjB,aAAW,QAAQ,OAAO;AACxB,UAAM,UAAU,KAAK,KAAK;AAE1B,QAAI,YAAY,aAAa;AAC3B,mBAAa;AACb;AAAA,IACF;AAGA,QAAI,cAAc,QAAQ,WAAW,IAAI,GAAG;AAC1C,YAAM,QAAQ,QACX,MAAM,CAAC,EACP,KAAK,EACL,QAAQ,gBAAgB,EAAE;AAC7B,YAAM,KAAK,KAAK;AAChB;AAAA,IACF;AAGA,QAAI,cAAc,YAAY,MAAM,CAAC,QAAQ,WAAW,GAAG,GAAG;AAC5D;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAKA,MAAM,iBAAiB,oBAAI,IAAI,CAAC,gBAAgB,gBAAgB,UAAU,OAAO,CAAC;AASlF,SAAS,sBAAsB,UAA2B;AACxD,QAAM,WAAW,KAAK,SAAS,QAAQ;AACvC,SAAO,CAAC,eAAe,IAAI,QAAQ;AACrC;AA8BA,eAAe,mBAAmB,aAAwC;AACxE,QAAM,cAAc,CAAC,WAAW;AAEhC,QAAM,oBAAoB,KAAK,KAAK,aAAa,qBAAqB;AACtE,MAAI;AACF,UAAM,cAAc,MAAM,GAAG,SAAS,SAAS,mBAAmB,OAAO;AACzE,UAAM,iBAAiB,oBAAoB,WAAW;AAEtD,eAAW,WAAW,gBAAgB;AACpC,YAAM,OAAO,MAAM,KAAK,SAAS,EAAE,KAAK,aAAa,UAAU,KAAK,CAAC;AACrE,kBAAY,KAAK,GAAG,IAAI;AAAA,IAC1B;AAAA,EACF,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;AAcA,eAAe,4BACb,aACA,aACA,QAC4B;AAC5B,QAAM,UAA6B,CAAC;AAEpC,QAAM,cAAc,MAAM,mBAAmB,WAAW;AAExD,aAAW,cAAc,aAAa;AACpC,UAAM,iBAAiB,KAAK,KAAK,YAAY,cAAc;AAE3D,QAAI;AACF,YAAM,GAAG,SAAS,OAAO,cAAc;AAAA,IACzC,QAAQ;AACN;AAAA,IACF;AAGA,UAAM,cAAwB,CAAC;AAC/B,eAAW,WAAW,OAAO,KAAK,WAAW,GAAG;AAC9C,YAAM,UAAU,MAAM,KAAK,SAAS,EAAE,KAAK,eAAe,CAAC;AAC3D,kBAAY,KAAK,GAAG,OAAO;AAAA,IAC7B;AAEA,QAAI,YAAY,WAAW,EAAG;AAG9B,UAAM,iBAAiB,yBAAyB,aAAa,WAAW;AAExE,eAAW,EAAE,YAAY,WAAW,KAAK,gBAAgB;AACvD,YAAM,aAAa,KAAK,KAAK,gBAAgB,UAAU;AACvD,YAAM,qBAAqB,KAAK,QAAQ,aAAa,UAAU;AAG/D,UAAI;AACF,cAAM,GAAG,SAAS,OAAO,kBAAkB;AAAA,MAC7C,QAAQ;AACN,eAAO,KAAK,yGAAyB,kBAAkB,EAAE;AACzD;AAAA,MACF;AAGA,UAAI,mBAAmB;AACvB,UAAI;AACF,cAAM,OAAO,MAAM,GAAG,SAAS,MAAM,UAAU;AAC/C,YAAI,KAAK,eAAe,GAAG;AACzB,6BAAmB,MAAM,GAAG,SAAS,SAAS,UAAU;AAAA,QAC1D;AAAA,MACF,QAAQ;AAAA,MAER;AAEA,cAAQ,KAAK;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAYA,eAAsB,iBACpB,aACA,aACe;AACf,QAAM,SAAS,QAAQ,QAAQ,qBAAqB;AACpD,MAAI,aAAa;AAEjB,SAAO,MAAM,yBAAyB;AAEtC,QAAM,UAAU,MAAM,4BAA4B,aAAa,aAAa,MAAM;AAElF,aAAW,EAAE,YAAY,oBAAoB,iBAAiB,KAAK,SAAS;AAC1E,QAAI;AAEF,YAAM,OAAO,oBAAoB,kBAAkB,qBAAqB;AAExE,oBAAc;AAAA,IAChB,SAAS,KAAK;AACZ,aAAO,MAAM,2CAAa,UAAU,MAAM,eAAe,QAAQ,IAAI,UAAU,GAAG,EAAE;AAAA,IACtF;AAAA,EACF;AAEA,SAAO,QAAQ,YAAY,UAAU,eAAe;AACtD;AAcA,eAAsB,iBACpB,aACA,aACgC;AAChC,QAAM,SAAS,QAAQ,QAAQ,2BAA2B;AAE1D,QAAM,UAAU,MAAM,4BAA4B,aAAa,aAAa,MAAM;AAGlF,QAAM,WAAwB,CAAC;AAC/B,QAAM,iBAAiB,oBAAI,IAAY;AAEvC,SAAO,MAAM,YAAY,QAAQ,MAAM,yBAAyB;AAEhE,aAAW,SAAS,SAAS;AAC3B,QAAI,eAAe,IAAI,MAAM,kBAAkB,EAAG;AAClD,mBAAe,IAAI,MAAM,kBAAkB;AAE3C,UAAM,gBAAgB,CAAC,GAAG,cAAc,EAAE;AAAA,MAAI,CAAC,SAC7C,KAAK,KAAK,MAAM,oBAAoB,IAAI;AAAA,IAC1C;AAEA,UAAM,UAAU,MAAM,UAAU,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,gBAAgB,MAAM,CAAC;AAC3F,YAAQ,SAAS,EAAE,OAAO,IAAI,GAAG,OAAO,gBAAgB;AACtD,iBAAW,EAAE,MAAM,YAAY,KAAK,aAAa;AAE/C,YACE,eAAe,IAAI,KAAK,SAAS,WAAW,CAAC,KAC7C,cAAc,KAAK,CAAC,OAAO,gBAAgB,aAAa,EAAE,CAAC,GAC3D;AACA;AAAA,QACF;AAGA,mBAAW,KAAK,SAAS;AACvB,cAAI,EAAE,uBAAuB,MAAM,mBAAoB;AAGvD,gBAAM,eAAe,KAAK,SAAS,EAAE,oBAAoB,WAAW;AACpE,gBAAM,WAAW,KAAK,KAAK,EAAE,kBAAkB,YAAY;AAE3D,cAAI;AAEF,gBAAI,eAAe;AACnB,gBAAI;AACF,oBAAM,GAAG,SAAS,OAAO,WAAW;AACpC,6BAAe;AAAA,YACjB,QAAQ;AAAA,YAER;AAEA,gBAAI,cAAc;AAEhB,oBAAM,OAAO,MAAM,GAAG,SAAS,KAAK,WAAW;AAC/C,kBAAI,KAAK,YAAY,GAAG;AACtB,sBAAM,QAAQ,QAAQ;AAAA,cACxB,OAAO;AACL,sBAAM,QAAQ,KAAK,QAAQ,QAAQ,CAAC;AACpC,sBAAM,OAAO,aAAa,UAAU,qBAAqB;AAAA,cAC3D;AAAA,YACF,OAAO;AAEL,oBAAM,KAAK,QAAQ;AAAA,YACrB;AAAA,UACF,SAAS,KAAK;AACZ,mBAAO;AAAA,cACL,8BAAU,EAAE,UAAU,IAAI,YAAY,MAAM,eAAe,QAAQ,IAAI,UAAU,GAAG;AAAA,YACtF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,aAAS,KAAK,OAAO;AAAA,EACvB;AAEA,SAAO,QAAQ,0BAA0B;AAEzC,SAAO;AAAA,IACL;AAAA,IACA,SAAS,MAAM;AACb,iBAAW,WAAW,UAAU;AAC9B,aAAK,QAAQ,MAAM;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,QAAQ,SAAS,MAAM,WAAW,uBAAuB;AAU3D,SAAS,yBACd,aACA,aACmD;AACnD,QAAM,UAA6D,CAAC;AAEpE,aAAW,CAAC,SAAS,cAAc,KAAK,OAAO,QAAQ,WAAW,GAAG;AAEnE,UAAM,aAAa,QAAQ,QAAQ,aAAa,CAAC,OAAO;AACtD,UAAI,OAAO,IAAK,QAAO;AACvB,UAAI,OAAO,IAAK,QAAO;AACvB,UAAI,OAAO,OAAO,OAAO,KAAM,QAAO;AACtC,UAAI,OAAO,IAAK,QAAO;AACvB,aAAO;AAAA,IACT,CAAC;AACD,UAAM,QAAQ,IAAI,OAAO,IAAI,UAAU,GAAG;AAC1C,UAAM,cAAc,QAAQ,SAAS,GAAG;AAExC,eAAW,cAAc,aAAa;AACpC,YAAM,QAAQ,MAAM,KAAK,UAAU;AACnC,UAAI,SAAS,KAAM;AAGnB,YAAM,aAAa,cAAc,eAAe,QAAQ,OAAO,MAAM,CAAC,CAAC,IAAI;AAE3E,cAAQ,KAAK,EAAE,YAAY,WAAW,CAAC;AAAA,IACzC;AAAA,EACF;AAEA,SAAO;AACT;AASO,SAAS,oBAAoB,SAA2B;AAC7D,QAAM,QAAQ,QAAQ,MAAM,IAAI;AAChC,QAAM,QAAkB,CAAC;AACzB,MAAI,aAAa;AAEjB,aAAW,QAAQ,OAAO;AACxB,UAAM,UAAU,KAAK,KAAK;AAE1B,QAAI,YAAY,aAAa;AAC3B,mBAAa;AACb;AAAA,IACF;AAGA,QAAI,cAAc,QAAQ,WAAW,IAAI,GAAG;AAC1C,YAAM,QAAQ,QACX,MAAM,CAAC,EACP,KAAK,EACL,QAAQ,gBAAgB,EAAE;AAC7B,YAAM,KAAK,KAAK;AAChB;AAAA,IACF;AAGA,QAAI,cAAc,YAAY,MAAM,CAAC,QAAQ,WAAW,GAAG,GAAG;AAC5D;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAKA,MAAM,iBAAiB,oBAAI,IAAI,CAAC,gBAAgB,gBAAgB,UAAU,OAAO,CAAC;AASlF,SAAS,sBAAsB,UAA2B;AACxD,QAAM,WAAW,KAAK,SAAS,QAAQ;AACvC,SAAO,CAAC,eAAe,IAAI,QAAQ;AACrC;AA8BA,eAAe,mBAAmB,aAAwC;AACxE,QAAM,cAAc,CAAC,WAAW;AAEhC,QAAM,oBAAoB,KAAK,KAAK,aAAa,qBAAqB;AACtE,MAAI;AACF,UAAM,cAAc,MAAM,GAAG,SAAS,SAAS,mBAAmB,OAAO;AACzE,UAAM,iBAAiB,oBAAoB,WAAW;AAEtD,eAAW,WAAW,gBAAgB;AACpC,YAAM,OAAO,MAAM,KAAK,SAAS,EAAE,KAAK,aAAa,UAAU,KAAK,CAAC;AACrE,kBAAY,KAAK,GAAG,IAAI;AAAA,IAC1B;AAAA,EACF,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;AAcA,eAAe,4BACb,aACA,aACA,QAC4B;AAC5B,QAAM,UAA6B,CAAC;AAEpC,QAAM,cAAc,MAAM,mBAAmB,WAAW;AAExD,aAAW,cAAc,aAAa;AACpC,UAAM,iBAAiB,KAAK,KAAK,YAAY,cAAc;AAE3D,QAAI;AACF,YAAM,GAAG,SAAS,OAAO,cAAc;AAAA,IACzC,QAAQ;AACN;AAAA,IACF;AAGA,UAAM,cAAwB,CAAC;AAC/B,eAAW,WAAW,OAAO,KAAK,WAAW,GAAG;AAC9C,YAAM,UAAU,MAAM,KAAK,SAAS,EAAE,KAAK,eAAe,CAAC;AAC3D,kBAAY,KAAK,GAAG,OAAO;AAAA,IAC7B;AAEA,QAAI,YAAY,WAAW,EAAG;AAG9B,UAAM,iBAAiB,yBAAyB,aAAa,WAAW;AAExE,eAAW,EAAE,YAAY,WAAW,KAAK,gBAAgB;AACvD,YAAM,aAAa,KAAK,KAAK,gBAAgB,UAAU;AACvD,YAAM,qBAAqB,KAAK,QAAQ,aAAa,UAAU;AAG/D,UAAI;AACF,cAAM,GAAG,SAAS,OAAO,kBAAkB;AAAA,MAC7C,QAAQ;AACN,eAAO,KAAK,yCAAyC,kBAAkB,EAAE;AACzE;AAAA,MACF;AAGA,UAAI,mBAAmB;AACvB,UAAI;AACF,cAAM,OAAO,MAAM,GAAG,SAAS,MAAM,UAAU;AAC/C,YAAI,KAAK,eAAe,GAAG;AACzB,6BAAmB,MAAM,GAAG,SAAS,SAAS,UAAU;AAAA,QAC1D;AAAA,MACF,QAAQ;AAAA,MAER;AAEA,cAAQ,KAAK;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAYA,eAAsB,iBACpB,aACA,aACe;AACf,QAAM,SAAS,QAAQ,QAAQ,qBAAqB;AACpD,MAAI,aAAa;AAEjB,SAAO,MAAM,yBAAyB;AAEtC,QAAM,UAAU,MAAM,4BAA4B,aAAa,aAAa,MAAM;AAElF,aAAW,EAAE,YAAY,oBAAoB,iBAAiB,KAAK,SAAS;AAC1E,QAAI;AAEF,YAAM,OAAO,oBAAoB,kBAAkB,qBAAqB;AAExE,oBAAc;AAAA,IAChB,SAAS,KAAK;AACZ,aAAO,MAAM,wBAAwB,UAAU,MAAM,eAAe,QAAQ,IAAI,UAAU,GAAG,EAAE;AAAA,IACjG;AAAA,EACF;AAEA,SAAO,QAAQ,YAAY,UAAU,eAAe;AACtD;AAcA,eAAsB,iBACpB,aACA,aACgC;AAChC,QAAM,SAAS,QAAQ,QAAQ,2BAA2B;AAE1D,QAAM,UAAU,MAAM,4BAA4B,aAAa,aAAa,MAAM;AAGlF,QAAM,WAAwB,CAAC;AAC/B,QAAM,iBAAiB,oBAAI,IAAY;AAEvC,SAAO,MAAM,YAAY,QAAQ,MAAM,yBAAyB;AAEhE,aAAW,SAAS,SAAS;AAC3B,QAAI,eAAe,IAAI,MAAM,kBAAkB,EAAG;AAClD,mBAAe,IAAI,MAAM,kBAAkB;AAE3C,UAAM,gBAAgB,CAAC,GAAG,cAAc,EAAE;AAAA,MAAI,CAAC,SAC7C,KAAK,KAAK,MAAM,oBAAoB,IAAI;AAAA,IAC1C;AAEA,UAAM,UAAU,MAAM,UAAU,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,gBAAgB,MAAM,CAAC;AAC3F,YAAQ,SAAS,EAAE,OAAO,IAAI,GAAG,OAAO,gBAAgB;AACtD,iBAAW,EAAE,MAAM,YAAY,KAAK,aAAa;AAE/C,YACE,eAAe,IAAI,KAAK,SAAS,WAAW,CAAC,KAC7C,cAAc,KAAK,CAAC,OAAO,gBAAgB,aAAa,EAAE,CAAC,GAC3D;AACA;AAAA,QACF;AAGA,mBAAW,KAAK,SAAS;AACvB,cAAI,EAAE,uBAAuB,MAAM,mBAAoB;AAGvD,gBAAM,eAAe,KAAK,SAAS,EAAE,oBAAoB,WAAW;AACpE,gBAAM,WAAW,KAAK,KAAK,EAAE,kBAAkB,YAAY;AAE3D,cAAI;AAEF,gBAAI,eAAe;AACnB,gBAAI;AACF,oBAAM,GAAG,SAAS,OAAO,WAAW;AACpC,6BAAe;AAAA,YACjB,QAAQ;AAAA,YAER;AAEA,gBAAI,cAAc;AAEhB,oBAAM,OAAO,MAAM,GAAG,SAAS,KAAK,WAAW;AAC/C,kBAAI,KAAK,YAAY,GAAG;AACtB,sBAAM,QAAQ,QAAQ;AAAA,cACxB,OAAO;AACL,sBAAM,QAAQ,KAAK,QAAQ,QAAQ,CAAC;AACpC,sBAAM,OAAO,aAAa,UAAU,qBAAqB;AAAA,cAC3D;AAAA,YACF,OAAO;AAEL,oBAAM,KAAK,QAAQ;AAAA,YACrB;AAAA,UACF,SAAS,KAAK;AACZ,mBAAO;AAAA,cACL,gBAAgB,EAAE,UAAU,IAAI,YAAY,MAAM,eAAe,QAAQ,IAAI,UAAU,GAAG;AAAA,YAC5F;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,aAAS,KAAK,OAAO;AAAA,EACvB;AAEA,SAAO,QAAQ,0BAA0B;AAEzC,SAAO;AAAA,IACL;AAAA,IACA,SAAS,MAAM;AACb,iBAAW,WAAW,UAAU;AAC9B,aAAK,QAAQ,MAAM;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,8 +1,8 @@
1
1
  import type { SdConfig, SdConfigParams } from "../sd-config.types";
2
2
  /**
3
- * sd.config.ts 로드
4
- * @returns SdConfig 객체
5
- * @throws sd.config.ts 없거나 형식이 잘못된 경우
3
+ * Load sd.config.ts
4
+ * @returns SdConfig object
5
+ * @throws if sd.config.ts is missing or format is incorrect
6
6
  */
7
7
  export declare function loadSdConfig(params: SdConfigParams): Promise<SdConfig>;
8
8
  //# sourceMappingURL=sd-config.d.ts.map
@@ -5,16 +5,16 @@ import { fsExists } from "@simplysm/core-node";
5
5
  async function loadSdConfig(params) {
6
6
  const sdConfigPath = path.resolve(params.cwd, "sd.config.ts");
7
7
  if (!await fsExists(sdConfigPath)) {
8
- throw new SdError(`sd.config.ts \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: ${sdConfigPath}`);
8
+ throw new SdError(`sd.config.ts file not found: ${sdConfigPath}`);
9
9
  }
10
10
  const jiti = createJiti(import.meta.url);
11
11
  const sdConfigModule = await jiti.import(sdConfigPath);
12
12
  if (sdConfigModule == null || typeof sdConfigModule !== "object" || !("default" in sdConfigModule) || typeof sdConfigModule.default !== "function") {
13
- throw new SdError(`sd.config.ts\uB294 \uD568\uC218\uB97C default export\uD574\uC57C \uD569\uB2C8\uB2E4: ${sdConfigPath}`);
13
+ throw new SdError(`sd.config.ts must export a function as default: ${sdConfigPath}`);
14
14
  }
15
15
  const config = await sdConfigModule.default(params);
16
16
  if (config == null || typeof config !== "object" || !("packages" in config) || config.packages == null || typeof config.packages !== "object" || Array.isArray(config.packages)) {
17
- throw new SdError(`sd.config.ts\uC758 \uBC18\uD658\uAC12\uC774 \uC62C\uBC14\uB978 \uD615\uC2DD\uC774 \uC544\uB2D9\uB2C8\uB2E4: ${sdConfigPath}`);
17
+ throw new SdError(`sd.config.ts return value is not in the correct format: ${sdConfigPath}`);
18
18
  }
19
19
  return config;
20
20
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/sd-config.ts"],
4
- "mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AACxB,SAAS,gBAAgB;AAQzB,eAAsB,aAAa,QAA2C;AAC5E,QAAM,eAAe,KAAK,QAAQ,OAAO,KAAK,cAAc;AAE5D,MAAI,CAAE,MAAM,SAAS,YAAY,GAAI;AACnC,UAAM,IAAI,QAAQ,iFAA+B,YAAY,EAAE;AAAA,EACjE;AAEA,QAAM,OAAO,WAAW,YAAY,GAAG;AACvC,QAAM,iBAAiB,MAAM,KAAK,OAAO,YAAY;AAErD,MACE,kBAAkB,QAClB,OAAO,mBAAmB,YAC1B,EAAE,aAAa,mBACf,OAAO,eAAe,YAAY,YAClC;AACA,UAAM,IAAI,QAAQ,wFAA2C,YAAY,EAAE;AAAA,EAC7E;AAEA,QAAM,SAAS,MAAM,eAAe,QAAQ,MAAM;AAElD,MACE,UAAU,QACV,OAAO,WAAW,YAClB,EAAE,cAAc,WAChB,OAAO,YAAY,QACnB,OAAO,OAAO,aAAa,YAC3B,MAAM,QAAQ,OAAO,QAAQ,GAC7B;AACA,UAAM,IAAI,QAAQ,+GAAoC,YAAY,EAAE;AAAA,EACtE;AACA,SAAO;AACT;",
4
+ "mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AACxB,SAAS,gBAAgB;AAQzB,eAAsB,aAAa,QAA2C;AAC5E,QAAM,eAAe,KAAK,QAAQ,OAAO,KAAK,cAAc;AAE5D,MAAI,CAAE,MAAM,SAAS,YAAY,GAAI;AACnC,UAAM,IAAI,QAAQ,gCAAgC,YAAY,EAAE;AAAA,EAClE;AAEA,QAAM,OAAO,WAAW,YAAY,GAAG;AACvC,QAAM,iBAAiB,MAAM,KAAK,OAAO,YAAY;AAErD,MACE,kBAAkB,QAClB,OAAO,mBAAmB,YAC1B,EAAE,aAAa,mBACf,OAAO,eAAe,YAAY,YAClC;AACA,UAAM,IAAI,QAAQ,mDAAmD,YAAY,EAAE;AAAA,EACrF;AAEA,QAAM,SAAS,MAAM,eAAe,QAAQ,MAAM;AAElD,MACE,UAAU,QACV,OAAO,WAAW,YAClB,EAAE,cAAc,WAChB,OAAO,YAAY,QACnB,OAAO,OAAO,aAAa,YAC3B,MAAM,QAAQ,OAAO,QAAQ,GAC7B;AACA,UAAM,IAAI,QAAQ,2DAA2D,YAAY,EAAE;AAAA,EAC7F;AACA,SAAO;AACT;",
5
5
  "names": []
6
6
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Tailwind config 파일의 의존성을 재귀적으로 수집한다.
2
+ * Recursively collect dependencies of Tailwind config file
3
3
  *
4
- * Tailwind 내장 `getModuleDependencies`는 상대 경로 import만 추적하지만,
5
- * 함수는 지정된 scope의 패키지 경로도 `node_modules` symlink를 풀어 실제 파일을 추적한다.
4
+ * Tailwind built-in `getModuleDependencies` only tracks relative path imports,
5
+ * but this function also resolves `node_modules` symlinks to track actual files for packages in specified scope.
6
6
  */
7
7
  export declare function getTailwindConfigDeps(configPath: string, replaceDeps: string[]): string[];
8
8
  //# sourceMappingURL=tailwind-config-deps.d.ts.map
@@ -1,14 +1,14 @@
1
1
  /**
2
- * 템플릿 디렉토리를 재귀적으로 순회하며 Handlebars 렌더링 파일을 생성한다.
2
+ * Recursively traverse template directory, render with Handlebars, and generate files
3
3
  *
4
- * - `.hbs` 확장자 파일: Handlebars 컴파일 → `.hbs` 제거한 이름으로 저장
5
- * - `.hbs` 결과가 문자열/공백만이면: 파일 생성 스킵
6
- * - 나머지 파일: 바이너리로 그대로 복사
4
+ * - `.hbs` extension files: Compile with Handlebars → save with `.hbs` removed from name
5
+ * - If `.hbs` result is empty string/whitespace only: skip file creation
6
+ * - Other files: copy as-is (binary)
7
7
  *
8
- * @param srcDir - 템플릿 소스 디렉토리
9
- * @param destDir - 출력 대상 디렉토리
10
- * @param context - Handlebars 템플릿 변수
11
- * @param dirReplacements - 디렉토리 이름 치환 (예: `{ __CLIENT__: "client-admin" }`)
8
+ * @param srcDir - Template source directory
9
+ * @param destDir - Output destination directory
10
+ * @param context - Handlebars template variables
11
+ * @param dirReplacements - Directory name substitution map (e.g., `{ __CLIENT__: "client-admin" }`)
12
12
  */
13
13
  export declare function renderTemplateDir(srcDir: string, destDir: string, context: Record<string, unknown>, dirReplacements?: Record<string, string>): Promise<void>;
14
14
  //# sourceMappingURL=template.d.ts.map
@@ -1,39 +1,39 @@
1
1
  import ts from "typescript";
2
2
  /**
3
- * 패키지의 package.json에서 @types/* devDependencies 읽어 types 목록을 반환합니다.
3
+ * Read @types/* devDependencies from package.json and return types list
4
4
  */
5
5
  export declare function getTypesFromPackageJson(packageDir: string): Promise<string[]>;
6
6
  /**
7
- * 타입체크 환경
8
- * - node: DOM lib 제거 + node 타입 추가
9
- * - browser: node 타입 제거
10
- * - neutral: DOM lib 유지 + node 타입 추가 (Node/브라우저 공용 패키지용)
7
+ * Type check environment
8
+ * - node: remove DOM lib + add node types
9
+ * - browser: remove node types
10
+ * - neutral: keep DOM lib + add node types (for Node/browser shared packages)
11
11
  */
12
12
  export type TypecheckEnv = "node" | "browser" | "neutral";
13
13
  /**
14
- * 패키지용 컴파일러 옵션 생성
14
+ * Create compiler options for package
15
15
  *
16
- * @param baseOptions 루트 tsconfig의 컴파일러 옵션
17
- * @param env 타입체크 환경 (node: DOM lib 제거 + node 타입 추가, browser: node 타입 제거)
18
- * @param packageDir 패키지 디렉토리 경로
16
+ * @param baseOptions - Compiler options from root tsconfig
17
+ * @param env - Type check environment (node: remove DOM lib + add node types, browser: remove node types)
18
+ * @param packageDir - Package directory path
19
19
  *
20
20
  * @remarks
21
- * types 옵션은 baseOptions.types 무시하고 패키지별로 새로 구성한다.
22
- * 이는 루트 tsconfig의 전역 타입이 패키지 환경에 맞지 않을 있기 때문이다.
23
- * (예: browser 패키지에 node 타입이 포함되는 것을 방지)
21
+ * The types option ignores baseOptions.types and is newly constructed per package.
22
+ * This is because the global types in root tsconfig may not fit the package environment.
23
+ * (e.g., prevent node types from being included in browser packages)
24
24
  */
25
25
  export declare function getCompilerOptionsForPackage(baseOptions: ts.CompilerOptions, env: TypecheckEnv, packageDir: string): Promise<ts.CompilerOptions>;
26
26
  /**
27
- * 루트 tsconfig 파싱
28
- * @throws tsconfig.json을 읽거나 파싱할 없는 경우
27
+ * Parse root tsconfig
28
+ * @throws If unable to read or parse tsconfig.json
29
29
  */
30
30
  export declare function parseRootTsconfig(cwd: string): ts.ParsedCommandLine;
31
31
  /**
32
- * 패키지의 소스 파일 목록 가져오기 (tsconfig 기반)
32
+ * Get list of package source files (based on tsconfig)
33
33
  */
34
34
  export declare function getPackageSourceFiles(pkgDir: string, parsedConfig: ts.ParsedCommandLine): string[];
35
35
  /**
36
- * 패키지의 전체 파일 목록 가져오기 (src + tests 포함)
36
+ * Get full list of package files (including src + tests)
37
37
  */
38
38
  export declare function getPackageFiles(pkgDir: string, parsedConfig: ts.ParsedCommandLine): string[];
39
39
  //# sourceMappingURL=tsconfig.d.ts.map
@@ -42,12 +42,12 @@ function parseRootTsconfig(cwd) {
42
42
  const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
43
43
  if (configFile.error) {
44
44
  const message = ts.flattenDiagnosticMessageText(configFile.error.messageText, "\n");
45
- throw new SdError(`tsconfig.json \uC77D\uAE30 \uC2E4\uD328: ${message}`);
45
+ throw new SdError(`Failed to read tsconfig.json: ${message}`);
46
46
  }
47
47
  const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, cwd);
48
48
  if (parsed.errors.length > 0) {
49
49
  const messages = parsed.errors.map((e) => ts.flattenDiagnosticMessageText(e.messageText, "\n"));
50
- throw new SdError(`tsconfig.json \uD30C\uC2F1 \uC2E4\uD328: ${messages.join("; ")}`);
50
+ throw new SdError(`Failed to parse tsconfig.json: ${messages.join("; ")}`);
51
51
  }
52
52
  return parsed;
53
53
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/tsconfig.ts"],
4
- "mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,UAAU,YAAY,uBAAuB;AACtD,SAAS,eAAe;AAMxB,MAAM,mBAAmB,CAAC,OAAO,WAAW;AAK5C,eAAsB,wBAAwB,YAAuC;AACnF,QAAM,kBAAkB,KAAK,KAAK,YAAY,cAAc;AAC5D,MAAI,CAAE,MAAM,SAAS,eAAe,GAAI;AACtC,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACA,QAAM,UAAU,YAAY,mBAAmB,CAAC;AAEhD,SAAO,OAAO,KAAK,OAAO,EACvB,OAAO,CAAC,QAAQ,IAAI,WAAW,SAAS,CAAC,EACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,WAAW,EAAE,CAAC;AAC5C;AAsBA,eAAsB,6BACpB,aACA,KACA,YAC6B;AAC7B,QAAM,UAAU,EAAE,GAAG,YAAY;AACjC,QAAM,eAAe,MAAM,wBAAwB,UAAU;AAG7D,UAAQ,YAAY;AAAA,IAClB,KAAK,KAAK,YAAY,gBAAgB,QAAQ;AAAA,IAC9C,KAAK,KAAK,QAAQ,IAAI,GAAG,gBAAgB,QAAQ;AAAA,EACnD;AAEA,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,cAAQ,MAAM,QAAQ,KAAK;AAAA,QACzB,CAAC,QAAQ,CAAC,iBAAiB,KAAK,CAAC,YAAY,IAAI,YAAY,EAAE,SAAS,OAAO,CAAC;AAAA,MAClF;AACA,cAAQ,QAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,cAAc,MAAM,CAAC,CAAC;AACtD;AAAA,IACF,KAAK;AACH,cAAQ,QAAQ,aAAa,OAAO,CAAC,MAAM,MAAM,MAAM;AACvD;AAAA,IACF,KAAK;AACH,cAAQ,QAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,cAAc,MAAM,CAAC,CAAC;AACtD;AAAA,EACJ;AAEA,SAAO;AACT;AAMO,SAAS,kBAAkB,KAAmC;AACnE,QAAM,eAAe,KAAK,KAAK,KAAK,eAAe;AACnD,QAAM,aAAa,GAAG,eAAe,cAAc,GAAG,IAAI,QAAQ;AAElE,MAAI,WAAW,OAAO;AACpB,UAAM,UAAU,GAAG,6BAA6B,WAAW,MAAM,aAAa,IAAI;AAClF,UAAM,IAAI,QAAQ,4CAAwB,OAAO,EAAE;AAAA,EACrD;AAEA,QAAM,SAAS,GAAG,2BAA2B,WAAW,QAAQ,GAAG,KAAK,GAAG;AAE3E,MAAI,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,WAAW,OAAO,OAAO,IAAI,CAAC,MAAM,GAAG,6BAA6B,EAAE,aAAa,IAAI,CAAC;AAC9F,UAAM,IAAI,QAAQ,4CAAwB,SAAS,KAAK,IAAI,CAAC,EAAE;AAAA,EACjE;AAEA,SAAO;AACT;AAKO,SAAS,sBACd,QACA,cACU;AACV,QAAM,YAAY,KAAK,KAAK,QAAQ,KAAK;AACzC,SAAO,aAAa,UAAU,OAAO,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC3E;AAKO,SAAS,gBAAgB,QAAgB,cAA8C;AAC5F,SAAO,aAAa,UAAU,OAAO,CAAC,MAAM;AAC1C,QAAI,CAAC,gBAAgB,GAAG,MAAM,EAAG,QAAO;AAExC,UAAM,WAAW,KAAK,SAAS,QAAQ,CAAC;AACxC,WAAO,KAAK,QAAQ,QAAQ,MAAM;AAAA,EACpC,CAAC;AACH;",
4
+ "mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,UAAU,YAAY,uBAAuB;AACtD,SAAS,eAAe;AAMxB,MAAM,mBAAmB,CAAC,OAAO,WAAW;AAK5C,eAAsB,wBAAwB,YAAuC;AACnF,QAAM,kBAAkB,KAAK,KAAK,YAAY,cAAc;AAC5D,MAAI,CAAE,MAAM,SAAS,eAAe,GAAI;AACtC,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACA,QAAM,UAAU,YAAY,mBAAmB,CAAC;AAEhD,SAAO,OAAO,KAAK,OAAO,EACvB,OAAO,CAAC,QAAQ,IAAI,WAAW,SAAS,CAAC,EACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,WAAW,EAAE,CAAC;AAC5C;AAsBA,eAAsB,6BACpB,aACA,KACA,YAC6B;AAC7B,QAAM,UAAU,EAAE,GAAG,YAAY;AACjC,QAAM,eAAe,MAAM,wBAAwB,UAAU;AAG7D,UAAQ,YAAY;AAAA,IAClB,KAAK,KAAK,YAAY,gBAAgB,QAAQ;AAAA,IAC9C,KAAK,KAAK,QAAQ,IAAI,GAAG,gBAAgB,QAAQ;AAAA,EACnD;AAEA,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,cAAQ,MAAM,QAAQ,KAAK;AAAA,QACzB,CAAC,QAAQ,CAAC,iBAAiB,KAAK,CAAC,YAAY,IAAI,YAAY,EAAE,SAAS,OAAO,CAAC;AAAA,MAClF;AACA,cAAQ,QAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,cAAc,MAAM,CAAC,CAAC;AACtD;AAAA,IACF,KAAK;AACH,cAAQ,QAAQ,aAAa,OAAO,CAAC,MAAM,MAAM,MAAM;AACvD;AAAA,IACF,KAAK;AACH,cAAQ,QAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,cAAc,MAAM,CAAC,CAAC;AACtD;AAAA,EACJ;AAEA,SAAO;AACT;AAMO,SAAS,kBAAkB,KAAmC;AACnE,QAAM,eAAe,KAAK,KAAK,KAAK,eAAe;AACnD,QAAM,aAAa,GAAG,eAAe,cAAc,GAAG,IAAI,QAAQ;AAElE,MAAI,WAAW,OAAO;AACpB,UAAM,UAAU,GAAG,6BAA6B,WAAW,MAAM,aAAa,IAAI;AAClF,UAAM,IAAI,QAAQ,iCAAiC,OAAO,EAAE;AAAA,EAC9D;AAEA,QAAM,SAAS,GAAG,2BAA2B,WAAW,QAAQ,GAAG,KAAK,GAAG;AAE3E,MAAI,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,WAAW,OAAO,OAAO,IAAI,CAAC,MAAM,GAAG,6BAA6B,EAAE,aAAa,IAAI,CAAC;AAC9F,UAAM,IAAI,QAAQ,kCAAkC,SAAS,KAAK,IAAI,CAAC,EAAE;AAAA,EAC3E;AAEA,SAAO;AACT;AAKO,SAAS,sBACd,QACA,cACU;AACV,QAAM,YAAY,KAAK,KAAK,QAAQ,KAAK;AACzC,SAAO,aAAa,UAAU,OAAO,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC3E;AAKO,SAAS,gBAAgB,QAAgB,cAA8C;AAC5F,SAAO,aAAa,UAAU,OAAO,CAAC,MAAM;AAC1C,QAAI,CAAC,gBAAgB,GAAG,MAAM,EAAG,QAAO;AAExC,UAAM,WAAW,KAAK,SAAS,QAAQ,CAAC;AACxC,WAAO,KAAK,QAAQ,QAAQ,MAAM;AAAA,EACpC,CAAC;AACH;",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import ts from "typescript";
2
2
  /**
3
- * Worker로 전달 가능한 직렬화된 Diagnostic
3
+ * Serialized Diagnostic that can be passed to Worker
4
4
  */
5
5
  export interface SerializedDiagnostic {
6
6
  category: number;
@@ -13,16 +13,16 @@ export interface SerializedDiagnostic {
13
13
  length?: number;
14
14
  }
15
15
  /**
16
- * Diagnostic 직렬화 가능한 형태로 변환
17
- * (Worker thread structured clone 통신을 위해 순환 참조/함수 제거)
16
+ * Convert Diagnostic to serializable form
17
+ * (remove circular references/functions for structured clone communication between Worker threads)
18
18
  */
19
19
  export declare function serializeDiagnostic(diagnostic: ts.Diagnostic): SerializedDiagnostic;
20
20
  /**
21
- * SerializedDiagnostic ts.Diagnostic으로 복원
22
- * 실제 파일 내용을 읽어 formatDiagnosticsWithColorAndContext에서 소스 코드 컨텍스트가 표시되도록
23
- * @param serialized 직렬화된 진단 정보
24
- * @param fileCache 파일 내용 캐시 (동일 파일 중복 읽기 방지)
25
- * @returns 복원된 ts.Diagnostic 객체
21
+ * Restore SerializedDiagnostic to ts.Diagnostic
22
+ * Reads actual file contents so source code context is displayed in formatDiagnosticsWithColorAndContext
23
+ * @param serialized - Serialized diagnostic information
24
+ * @param fileCache - File content cache (prevent duplicate reads of same file)
25
+ * @returns Restored ts.Diagnostic object
26
26
  */
27
27
  export declare function deserializeDiagnostic(serialized: SerializedDiagnostic, fileCache: Map<string, string>): ts.Diagnostic;
28
28
  //# sourceMappingURL=typecheck-serialization.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import type { UserConfig as ViteUserConfig } from "vite";
2
2
  /**
3
- * Vite 설정 생성 옵션
3
+ * Vite config generation options
4
4
  */
5
5
  export interface ViteConfigOptions {
6
6
  pkgDir: string;
@@ -9,19 +9,19 @@ export interface ViteConfigOptions {
9
9
  compilerOptions: Record<string, unknown>;
10
10
  env?: Record<string, string>;
11
11
  mode: "build" | "dev";
12
- /** dev 모드일 서버 포트 (0이면 자동 할당) */
12
+ /** Server port in dev mode (0 for auto-assign) */
13
13
  serverPort?: number;
14
- /** replaceDeps 패키지명 배열 (resolve 완료된 상태) */
14
+ /** Array of replaceDeps package names (resolved state) */
15
15
  replaceDeps?: string[];
16
- /** replaceDeps 패키지 dist 변경 감지 시 콜백 */
16
+ /** Callback when replaceDeps package dist changes */
17
17
  onScopeRebuild?: () => void;
18
18
  }
19
19
  /**
20
- * Vite 설정 생성
20
+ * Create Vite config
21
21
  *
22
- * SolidJS + TailwindCSS 기반의 client 패키지 빌드/개발 서버용 설정입니다.
23
- * - build 모드: production 빌드 (logLevel: silent)
24
- * - dev 모드: dev server (define으로 env 치환, server 설정)
22
+ * Configuration for building/dev server for client packages based on SolidJS + TailwindCSS.
23
+ * - build mode: production build (logLevel: silent)
24
+ * - dev mode: dev server (env substitution via define, server configuration)
25
25
  */
26
26
  export declare function createViteConfig(options: ViteConfigOptions): ViteUserConfig;
27
27
  //# sourceMappingURL=vite-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-config.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\vite-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAU,UAAU,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAiPjE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAuE3E"}
1
+ {"version":3,"file":"vite-config.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\vite-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAU,UAAU,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAiPjE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAuE3E"}
@@ -204,9 +204,9 @@ function createViteConfig(options) {
204
204
  config.logLevel = "silent";
205
205
  } else {
206
206
  config.server = {
207
- // serverPort === 0: 서버 연결 클라이언트 (proxy 대상)
208
- // → host 127.0.0.1 명시하여 IPv4 바인딩 보장
209
- // (Windows에서 localhost ::1(IPv6) 해석되면 proxy 127.0.0.1 연결 ECONNREFUSED 발생)
207
+ // serverPort === 0: server-connected client (proxy target)
208
+ // → explicitly set host to 127.0.0.1 to ensure IPv4 binding
209
+ // (On Windows, if localhost resolves to ::1 (IPv6), proxy connection to 127.0.0.1 causes ECONNREFUSED)
210
210
  host: serverPort === 0 ? "127.0.0.1" : void 0,
211
211
  port: serverPort === 0 ? void 0 : serverPort,
212
212
  strictPort: serverPort !== 0 && serverPort !== void 0
@@ -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 빌드 완료 이벤트 데이터 */
4
+ /** Worker build completion event data */
5
5
  export interface BuildEventData {
6
6
  success: boolean;
7
7
  errors?: string[];
8
8
  warnings?: string[];
9
9
  }
10
- /** Worker 에러 이벤트 데이터 */
10
+ /** Worker error event data */
11
11
  export interface ErrorEventData {
12
12
  message: string;
13
13
  }
14
- /** Worker 서버 준비 이벤트 데이터 */
14
+ /** Worker server ready event data */
15
15
  export interface ServerReadyEventData {
16
16
  port: number;
17
17
  }
18
- /** Server Build 완료 이벤트 데이터 */
18
+ /** Server Build completion event data */
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
- * 기본 Worker 정보 타입
26
+ * Base Worker info type
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 이벤트 핸들러 옵션
39
+ * Worker event handler options
40
40
  */
41
41
  export interface WorkerEventHandlerOptions {
42
42
  resultKey: string;
@@ -44,13 +44,13 @@ export interface WorkerEventHandlerOptions {
44
44
  resultType: "build" | "dts";
45
45
  }
46
46
  /**
47
- * 공통 Worker 이벤트 핸들러 등록 (buildStart, build, error - serverReady 포함하지 않음)
47
+ * Register common Worker event handlers (buildStart, build, error only - serverReady not included)
48
48
  *
49
- * @param workerInfo Worker 정보
50
- * @param opts 핸들러 옵션
51
- * @param results 결과
52
- * @param rebuildManager 리빌드 매니저
53
- * @returns completeTask 함수 (결과를 저장하고 빌드 완료를 알림)
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)
54
54
  */
55
55
  export declare function registerWorkerEventHandlers<TEvents extends Record<string, unknown>, T extends BaseWorkerInfo<TEvents>>(workerInfo: T, opts: WorkerEventHandlerOptions, results: Map<string, BuildResult>, rebuildManager: RebuildManager): (result: BuildResult) => void;
56
56
  //# sourceMappingURL=worker-events.d.ts.map
@@ -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,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAwB;AACxB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,2BAA2B;AAC3B,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8BAA8B;AAC9B,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,GAAG,KAAK,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,CAAC,SAAS,cAAc,CAAC,OAAO,CAAC,EAEjC,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACjC,cAAc,EAAE,cAAc,GAC7B,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAkD/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,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,GAAG,KAAK,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,CAAC,SAAS,cAAc,CAAC,OAAO,CAAC,EAEjC,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACjC,cAAc,EAAE,cAAc,GAC7B,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAkD/B"}
@@ -11,10 +11,10 @@ import type { ConsolaInstance } from "consola";
11
11
  */
12
12
  export declare function registerCleanupHandlers(cleanup: () => Promise<void>, logger: ConsolaInstance): void;
13
13
  /**
14
- * Worker 함수의 중복 호출을 방지하는 가드를 생성한다.
14
+ * Create guard to prevent duplicate calls to Worker function
15
15
  *
16
- * @param label - 에러 메시지에 사용할 함수명
17
- * @returns 호출 중복이면 에러를 throw하는 가드 함수
16
+ * @param label - Function name to use in error message
17
+ * @returns Guard function that throws error if called twice
18
18
  */
19
19
  export declare function createOnceGuard(label: string): () => void;
20
20
  //# sourceMappingURL=worker-utils.d.ts.map
@@ -1,7 +1,7 @@
1
1
  function registerCleanupHandlers(cleanup, logger) {
2
2
  const handleSignal = () => {
3
3
  cleanup().catch((err) => {
4
- logger.error("cleanup \uC2E4\uD328", err);
4
+ logger.error("cleanup failed", err);
5
5
  }).finally(() => {
6
6
  process.exit(0);
7
7
  });
@@ -13,7 +13,7 @@ function createOnceGuard(label) {
13
13
  let called = false;
14
14
  return () => {
15
15
  if (called) {
16
- throw new Error(`${label}\uB294 Worker\uB2F9 \uD55C \uBC88\uB9CC \uD638\uCD9C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.`);
16
+ throw new Error(`${label} can only be called once per Worker`);
17
17
  }
18
18
  called = true;
19
19
  };