@simplysm/sd-cli 13.0.68 → 13.0.70

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
@@ -35,7 +35,7 @@ class Capacitor {
35
35
  _platforms;
36
36
  _npmConfig;
37
37
  /**
38
- * Capacitor 인스턴스 생성 (설정 검증 포함)
38
+ * Create Capacitor instance (with configuration validation)
39
39
  */
40
40
  static async create(pkgPath, config) {
41
41
  Capacitor._validateConfig(config);
@@ -43,85 +43,85 @@ class Capacitor {
43
43
  return new Capacitor(pkgPath, config, npmConfig);
44
44
  }
45
45
  /**
46
- * F5: 설정 검증
46
+ * F5: Validate configuration
47
47
  */
48
48
  static _validateConfig(config) {
49
49
  if (typeof config.appId !== "string" || config.appId.trim() === "") {
50
- throw new CapacitorConfigError("capacitor.appId\uB294 \uD544\uC218\uC785\uB2C8\uB2E4.");
50
+ throw new CapacitorConfigError("capacitor.appId is required.");
51
51
  }
52
52
  if (!/^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$/i.test(config.appId)) {
53
- throw new CapacitorConfigError(`capacitor.appId \uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4: ${config.appId}`);
53
+ throw new CapacitorConfigError(`capacitor.appId format is invalid: ${config.appId}`);
54
54
  }
55
55
  if (typeof config.appName !== "string" || config.appName.trim() === "") {
56
- throw new CapacitorConfigError("capacitor.appName\uC740 \uD544\uC218\uC785\uB2C8\uB2E4.");
56
+ throw new CapacitorConfigError("capacitor.appName is required.");
57
57
  }
58
58
  if (config.platform != null) {
59
59
  const platforms = Object.keys(config.platform);
60
60
  for (const p of platforms) {
61
61
  if (p !== "android") {
62
- throw new CapacitorConfigError(`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uD50C\uB7AB\uD3FC: ${p} (\uD604\uC7AC android\uB9CC \uC9C0\uC6D0)`);
62
+ throw new CapacitorConfigError(`unsupported platform: ${p} (currently only android is supported)`);
63
63
  }
64
64
  }
65
65
  }
66
66
  }
67
67
  /**
68
- * 명령어 실행 (로깅 포함)
68
+ * Execute command (with logging)
69
69
  */
70
70
  async _exec(cmd, args, cwd) {
71
- Capacitor._logger.debug(`\uC2E4\uD589 \uBA85\uB839: ${cmd} ${args.join(" ")}`);
71
+ Capacitor._logger.debug(`executed command: ${cmd} ${args.join(" ")}`);
72
72
  const { stdout: result } = await execa(cmd, args, { cwd });
73
- Capacitor._logger.debug(`\uC2E4\uD589 \uACB0\uACFC: ${result}`);
73
+ Capacitor._logger.debug(`execution result: ${result}`);
74
74
  return result;
75
75
  }
76
76
  /**
77
- * F10: 동시 실행 방지를 위한 잠금 획득
77
+ * F10: Acquire lock to prevent concurrent execution
78
78
  */
79
79
  async _acquireLock() {
80
80
  const lockPath = path.resolve(this._capPath, Capacitor._LOCK_FILE_NAME);
81
81
  if (await fsExists(lockPath)) {
82
82
  const lockContent = await fsRead(lockPath);
83
83
  throw new Error(
84
- `\uB2E4\uB978 Capacitor \uC791\uC5C5\uC774 \uC9C4\uD589 \uC911\uC785\uB2C8\uB2E4 (PID: ${lockContent}). \uBB38\uC81C\uAC00 \uC788\uB2E4\uBA74 ${lockPath} \uD30C\uC77C\uC744 \uC0AD\uC81C\uD558\uC138\uC694.`
84
+ `Another Capacitor operation is in progress (PID: ${lockContent}). If there's an issue, delete the ${lockPath} file.`
85
85
  );
86
86
  }
87
87
  await fsMkdir(this._capPath);
88
88
  await fsWrite(lockPath, String(process.pid));
89
89
  }
90
90
  /**
91
- * F10: 잠금 해제
91
+ * F10: Release lock
92
92
  */
93
93
  async _releaseLock() {
94
94
  const lockPath = path.resolve(this._capPath, Capacitor._LOCK_FILE_NAME);
95
95
  await fsRm(lockPath);
96
96
  }
97
97
  /**
98
- * F4: 외부 도구 검증
98
+ * F4: Validate external tools
99
99
  */
100
100
  async _validateTools() {
101
101
  const sdkPath = await this._findAndroidSdk();
102
102
  if (sdkPath == null) {
103
103
  throw new Error(
104
- "Android SDK\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n1. Android Studio\uB97C \uC124\uCE58\uD558\uAC70\uB098\n2. ANDROID_HOME \uB610\uB294 ANDROID_SDK_ROOT \uD658\uACBD\uBCC0\uC218\uB97C \uC124\uC815\uD558\uC138\uC694."
104
+ "Android SDK not found.\n1. Install Android Studio or\n2. Set ANDROID_HOME or ANDROID_SDK_ROOT environment variable."
105
105
  );
106
106
  }
107
107
  if (this._platforms.includes("android")) {
108
108
  const javaPath = await this._findJava21();
109
109
  if (javaPath == null) {
110
110
  Capacitor._logger.warn(
111
- "Java 21\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. Gradle\uC774 \uB0B4\uC7A5 JDK\uB97C \uC0AC\uC6A9\uD558\uAC70\uB098 \uBE4C\uB4DC\uAC00 \uC2E4\uD328\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
111
+ "Java 21 not found. Gradle may use embedded JDK or the build may fail."
112
112
  );
113
113
  }
114
114
  }
115
115
  }
116
116
  /**
117
- * Capacitor 프로젝트 초기화
117
+ * Initialize Capacitor project
118
118
  *
119
- * 1. package.json 생성 의존성 설치
120
- * 2. capacitor.config.ts 생성
121
- * 3. 플랫폼 추가 (android)
122
- * 4. 아이콘 설정
123
- * 5. Android 네이티브 설정
124
- * 6. cap sync 또는 cap copy 실행
119
+ * 1. Create package.json and install dependencies
120
+ * 2. Create capacitor.config.ts
121
+ * 3. Add platform (android)
122
+ * 4. Set up icon
123
+ * 5. Configure Android native settings
124
+ * 6. Run cap sync or cap copy
125
125
  */
126
126
  async initialize() {
127
127
  await this._acquireLock();
@@ -144,7 +144,7 @@ class Capacitor {
144
144
  }
145
145
  }
146
146
  /**
147
- * Android APK/AAB 빌드
147
+ * Build Android APK/AAB
148
148
  */
149
149
  async build(outPath) {
150
150
  await this._acquireLock();
@@ -155,7 +155,7 @@ class Capacitor {
155
155
  if (platform === "android") {
156
156
  await this._buildAndroid(outPath, buildType);
157
157
  } else {
158
- throw new Error(`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uD50C\uB7AB\uD3FC: ${platform}`);
158
+ throw new Error(`unsupported platform: ${platform}`);
159
159
  }
160
160
  }
161
161
  } finally {
@@ -163,7 +163,7 @@ class Capacitor {
163
163
  }
164
164
  }
165
165
  /**
166
- * 디바이스에서 실행 (WebView 개발 서버로 연결)
166
+ * Run app on device (connect WebView to development server)
167
167
  */
168
168
  async runOnDevice(url) {
169
169
  if (url != null) {
@@ -186,30 +186,30 @@ class Capacitor {
186
186
  }
187
187
  }
188
188
  /**
189
- * F11: URL 검증
189
+ * F11: Validate URL
190
190
  */
191
191
  _validateUrl(url) {
192
192
  try {
193
193
  const parsed = new URL(url);
194
194
  if (!["http:", "https:"].includes(parsed.protocol)) {
195
- throw new Error(`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uD504\uB85C\uD1A0\uCF5C: ${parsed.protocol}`);
195
+ throw new Error(`unsupported protocol: ${parsed.protocol}`);
196
196
  }
197
197
  } catch (err) {
198
198
  if (err instanceof TypeError) {
199
- throw new Error(`\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 URL: ${url}`);
199
+ throw new Error(`invalid URL: ${url}`);
200
200
  }
201
201
  throw err;
202
202
  }
203
203
  }
204
- //#region Private - 초기화
204
+ //#region Private - Initialization
205
205
  /**
206
- * Capacitor 프로젝트 기본 초기화 (package.json, npm install, cap init)
206
+ * Basic Capacitor project initialization (package.json, npm install, cap init)
207
207
  */
208
208
  async _initCap() {
209
209
  const depChanged = await this._setupNpmConf();
210
210
  if (!depChanged) return false;
211
211
  const installResult = await this._exec("pnpm", ["install"], this._capPath);
212
- Capacitor._logger.debug(`pnpm install \uC644\uB8CC: ${installResult}`);
212
+ Capacitor._logger.debug(`pnpm install completed: ${installResult}`);
213
213
  const configPath = path.resolve(this._capPath, "capacitor.config.ts");
214
214
  if (!await fsExists(configPath)) {
215
215
  await this._exec(
@@ -227,12 +227,12 @@ class Capacitor {
227
227
  return true;
228
228
  }
229
229
  /**
230
- * package.json 설정
230
+ * Configure package.json
231
231
  */
232
232
  async _setupNpmConf() {
233
233
  const projNpmConfigPath = path.resolve(this._pkgPath, "../../package.json");
234
234
  if (!await fsExists(projNpmConfigPath)) {
235
- throw new Error(`\uB8E8\uD2B8 package.json\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: ${projNpmConfigPath}`);
235
+ throw new Error(`root package.json not found: ${projNpmConfigPath}`);
236
236
  }
237
237
  const projNpmConfig = await fsReadJson(projNpmConfigPath);
238
238
  const capNpmConfPath = path.resolve(this._capPath, "package.json");
@@ -266,14 +266,14 @@ class Capacitor {
266
266
  for (const prevPlugin of prevPlugins) {
267
267
  if (!usePlugins.includes(prevPlugin)) {
268
268
  delete capNpmConf.dependencies[prevPlugin];
269
- Capacitor._logger.debug(`\uD50C\uB7EC\uADF8\uC778 \uC81C\uAC70: ${prevPlugin}`);
269
+ Capacitor._logger.debug(`plugin removed: ${prevPlugin}`);
270
270
  }
271
271
  }
272
272
  for (const plugin of usePlugins) {
273
273
  if (!(plugin in capNpmConf.dependencies)) {
274
274
  const version = mainDeps[plugin] ?? "*";
275
275
  capNpmConf.dependencies[plugin] = version;
276
- Capacitor._logger.debug(`\uD50C\uB7EC\uADF8\uC778 \uCD94\uAC00: ${plugin}@${version}`);
276
+ Capacitor._logger.debug(`plugin added: ${plugin}@${version}`);
277
277
  }
278
278
  }
279
279
  await fsMkdir(this._capPath);
@@ -282,7 +282,7 @@ class Capacitor {
282
282
  return isChanged;
283
283
  }
284
284
  /**
285
- * capacitor.config.ts 생성
285
+ * Create capacitor.config.ts
286
286
  */
287
287
  async _writeCapConf() {
288
288
  const confPath = path.resolve(this._capPath, "capacitor.config.ts");
@@ -312,20 +312,20 @@ export default config;
312
312
  await fsWrite(confPath, configContent);
313
313
  }
314
314
  /**
315
- * 플랫폼 추가 (F12: 멱등성 보장)
315
+ * Add platform (F12: ensure idempotency)
316
316
  */
317
317
  async _addPlatforms() {
318
318
  for (const platform of this._platforms) {
319
319
  const platformPath = path.resolve(this._capPath, platform);
320
320
  if (await fsExists(platformPath)) {
321
- Capacitor._logger.debug(`\uD50C\uB7AB\uD3FC \uC774\uBBF8 \uC874\uC7AC: ${platform}`);
321
+ Capacitor._logger.debug(`platform already exists: ${platform}`);
322
322
  continue;
323
323
  }
324
324
  await this._exec("npx", ["cap", "add", platform], this._capPath);
325
325
  }
326
326
  }
327
327
  /**
328
- * 아이콘 설정 (F6: 에러 복구)
328
+ * Set up icon (F6: error recovery)
329
329
  */
330
330
  async _setupIcon() {
331
331
  const assetsDirPath = path.resolve(this._capPath, "assets");
@@ -333,7 +333,7 @@ export default config;
333
333
  const iconSource = path.resolve(this._pkgPath, this._config.icon);
334
334
  if (!await fsExists(iconSource)) {
335
335
  Capacitor._logger.warn(
336
- `\uC544\uC774\uCF58 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: ${iconSource}. \uAE30\uBCF8 \uC544\uC774\uCF58\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.`
336
+ `icon file not found: ${iconSource}. Using default icon.`
337
337
  );
338
338
  return;
339
339
  }
@@ -366,7 +366,7 @@ export default config;
366
366
  );
367
367
  } catch (err) {
368
368
  Capacitor._logger.warn(
369
- `\uC544\uC774\uCF58 \uC0DD\uC131 \uC2E4\uD328: ${err instanceof Error ? err.message : err}. \uAE30\uBCF8 \uC544\uC774\uCF58\uC744 \uC0AC\uC6A9\uD569\uB2C8\uB2E4.`
369
+ `icon generation failed: ${err instanceof Error ? err.message : err}. Using default icon.`
370
370
  );
371
371
  }
372
372
  } else {
@@ -374,14 +374,14 @@ export default config;
374
374
  }
375
375
  }
376
376
  //#endregion
377
- //#region Private - Android 설정
377
+ //#region Private - Android Configuration
378
378
  /**
379
- * Android 네이티브 설정
379
+ * Configure Android native settings
380
380
  */
381
381
  async _configureAndroid() {
382
382
  const androidPath = path.resolve(this._capPath, "android");
383
383
  if (!await fsExists(androidPath)) {
384
- throw new Error(`Android \uD504\uB85C\uC81D\uD2B8 \uB514\uB809\uD1A0\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4: ${androidPath}`);
384
+ throw new Error(`Android project directory not found: ${androidPath}`);
385
385
  }
386
386
  await this._configureAndroidJavaHomePath(androidPath);
387
387
  await this._configureAndroidSdkPath(androidPath);
@@ -389,12 +389,12 @@ export default config;
389
389
  await this._configureAndroidBuildGradle(androidPath);
390
390
  }
391
391
  /**
392
- * JAVA_HOME 경로 설정 (gradle.properties)
392
+ * Set up JAVA_HOME path (gradle.properties)
393
393
  */
394
394
  async _configureAndroidJavaHomePath(androidPath) {
395
395
  const gradlePropsPath = path.resolve(androidPath, "gradle.properties");
396
396
  if (!await fsExists(gradlePropsPath)) {
397
- Capacitor._logger.warn(`gradle.properties \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4: ${gradlePropsPath}`);
397
+ Capacitor._logger.warn(`gradle.properties file not found: ${gradlePropsPath}`);
398
398
  return;
399
399
  }
400
400
  let content = await fsRead(gradlePropsPath);
@@ -408,7 +408,7 @@ org.gradle.java.home=${escapedPath}
408
408
  }
409
409
  }
410
410
  /**
411
- * Java 21 경로 자동 탐색
411
+ * Auto-detect Java 21 path
412
412
  */
413
413
  async _findJava21() {
414
414
  const patterns = [
@@ -428,7 +428,7 @@ org.gradle.java.home=${escapedPath}
428
428
  return void 0;
429
429
  }
430
430
  /**
431
- * Android SDK 경로 설정 (local.properties)
431
+ * Set up Android SDK path (local.properties)
432
432
  */
433
433
  async _configureAndroidSdkPath(androidPath) {
434
434
  const localPropsPath = path.resolve(androidPath, "local.properties");
@@ -438,12 +438,12 @@ org.gradle.java.home=${escapedPath}
438
438
  `);
439
439
  } else {
440
440
  throw new Error(
441
- "Android SDK\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n1. Android Studio\uB97C \uC124\uCE58\uD558\uAC70\uB098\n2. ANDROID_HOME \uB610\uB294 ANDROID_SDK_ROOT \uD658\uACBD\uBCC0\uC218\uB97C \uC124\uC815\uD558\uC138\uC694."
441
+ "Android SDK not found.\n1. Install Android Studio or\n2. Set ANDROID_HOME or ANDROID_SDK_ROOT environment variable."
442
442
  );
443
443
  }
444
444
  }
445
445
  /**
446
- * Android SDK 경로 탐색
446
+ * Search for Android SDK path
447
447
  */
448
448
  async _findAndroidSdk() {
449
449
  const fromEnv = env["ANDROID_HOME"] ?? env["ANDROID_SDK_ROOT"];
@@ -464,12 +464,12 @@ org.gradle.java.home=${escapedPath}
464
464
  return void 0;
465
465
  }
466
466
  /**
467
- * AndroidManifest.xml 수정 (F3: 에러 처리 추가)
467
+ * Modify AndroidManifest.xml (F3: add error handling)
468
468
  */
469
469
  async _configureAndroidManifest(androidPath) {
470
470
  const manifestPath = path.resolve(androidPath, "app/src/main/AndroidManifest.xml");
471
471
  if (!await fsExists(manifestPath)) {
472
- throw new Error(`AndroidManifest.xml \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4: ${manifestPath}`);
472
+ throw new Error(`AndroidManifest.xml file not found: ${manifestPath}`);
473
473
  }
474
474
  let content = await fsRead(manifestPath);
475
475
  if (!content.includes("android:usesCleartextTraffic")) {
@@ -520,12 +520,12 @@ org.gradle.java.home=${escapedPath}
520
520
  await fsWrite(manifestPath, content);
521
521
  }
522
522
  /**
523
- * build.gradle 수정 (F3: 에러 처리 추가)
523
+ * Modify build.gradle (F3: add error handling)
524
524
  */
525
525
  async _configureAndroidBuildGradle(androidPath) {
526
526
  const buildGradlePath = path.resolve(androidPath, "app/build.gradle");
527
527
  if (!await fsExists(buildGradlePath)) {
528
- throw new Error(`build.gradle \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4: ${buildGradlePath}`);
528
+ throw new Error(`build.gradle file not found: ${buildGradlePath}`);
529
529
  }
530
530
  let content = await fsRead(buildGradlePath);
531
531
  const version = this._npmConfig.version;
@@ -550,7 +550,7 @@ org.gradle.java.home=${escapedPath}
550
550
  if (signConfig) {
551
551
  const keystoreSource = path.resolve(this._pkgPath, signConfig.keystore);
552
552
  if (!await fsExists(keystoreSource)) {
553
- throw new Error(`keystore \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: ${keystoreSource}`);
553
+ throw new Error(`keystore file not found: ${keystoreSource}`);
554
554
  }
555
555
  await fsCopy(keystoreSource, keystorePath);
556
556
  const keystoreRelativePath = path.relative(path.dirname(buildGradlePath), keystorePath).replace(/\\/g, "/");
@@ -582,9 +582,9 @@ org.gradle.java.home=${escapedPath}
582
582
  await fsWrite(buildGradlePath, content);
583
583
  }
584
584
  //#endregion
585
- //#region Private - 빌드
585
+ //#region Private - Build
586
586
  /**
587
- * Android 빌드
587
+ * Build Android
588
588
  */
589
589
  async _buildAndroid(outPath, buildType) {
590
590
  const androidPath = path.resolve(this._capPath, "android");
@@ -599,7 +599,7 @@ org.gradle.java.home=${escapedPath}
599
599
  await this._copyAndroidBuildOutput(androidPath, targetOutPath, buildType);
600
600
  }
601
601
  /**
602
- * Android 빌드 결과물 복사
602
+ * Copy Android build output
603
603
  */
604
604
  async _copyAndroidBuildOutput(androidPath, targetOutPath, buildType) {
605
605
  const isBundle = this._config.platform?.android?.bundle;
@@ -622,7 +622,7 @@ org.gradle.java.home=${escapedPath}
622
622
  `app-${buildType}.${ext}`
623
623
  );
624
624
  if (!await fsExists(actualPath)) {
625
- Capacitor._logger.warn(`\uBE4C\uB4DC \uACB0\uACFC\uBB3C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: ${actualPath}`);
625
+ Capacitor._logger.warn(`build output not found: ${actualPath}`);
626
626
  return;
627
627
  }
628
628
  const outputFileName = `${this._config.appName}${isSigned ? "" : "-unsigned"}-latest.${ext}`;
@@ -633,9 +633,9 @@ org.gradle.java.home=${escapedPath}
633
633
  await fsCopy(actualPath, path.resolve(updatesPath, `${this._npmConfig.version}.${ext}`));
634
634
  }
635
635
  //#endregion
636
- //#region Private - 디바이스 실행
636
+ //#region Private - Device Execution
637
637
  /**
638
- * capacitor.config.ts의 server.url 업데이트
638
+ * Update server.url in capacitor.config.ts
639
639
  */
640
640
  async _updateServerUrl(url) {
641
641
  const configPath = path.resolve(this._capPath, "capacitor.config.ts");
@@ -650,9 +650,9 @@ org.gradle.java.home=${escapedPath}
650
650
  await fsWrite(configPath, content);
651
651
  }
652
652
  //#endregion
653
- //#region Private - 유틸리티
653
+ //#region Private - Utilities
654
654
  /**
655
- * 문자열을 PascalCase로 변환
655
+ * Convert string to PascalCase
656
656
  */
657
657
  _toPascalCase(str) {
658
658
  return str.replace(/[-_](.)/g, (_, c) => c.toUpperCase()).replace(/^./, (c) => c.toUpperCase());
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/capacitor/capacitor.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,17 +1,17 @@
1
1
  /**
2
- * Add-client 명령 옵션
2
+ * Add-client command options
3
3
  */
4
4
  export interface AddClientOptions {
5
5
  }
6
6
  /**
7
- * 클라이언트 패키지를 프로젝트에 추가한다.
7
+ * Add client package to the project.
8
8
  *
9
- * 1. 프로젝트 루트 확인 (sd.config.ts 존재)
10
- * 2. 대화형 프롬프트 (이름 접미사, 라우터 사용 여부)
11
- * 3. 패키지 디렉토리 중복 확인
12
- * 4. Handlebars 템플릿 렌더링
13
- * 5. sd.config.ts 패키지 항목 추가 (ts-morph)
14
- * 6. eslint.config.ts tailwind 설정 추가 ( 클라이언트인 경우)
9
+ * 1. Verify project root (sd.config.ts exists)
10
+ * 2. Interactive prompt (name suffix, router usage)
11
+ * 3. Check for duplicate package directory
12
+ * 4. Render Handlebars template
13
+ * 5. Add package entry to sd.config.ts (ts-morph)
14
+ * 6. Add tailwind configuration to eslint.config.ts (if first client)
15
15
  * 7. pnpm install
16
16
  */
17
17
  export declare function runAddClient(_options: AddClientOptions): Promise<void>;
@@ -10,27 +10,27 @@ async function runAddClient(_options) {
10
10
  const cwd = process.cwd();
11
11
  const logger = consola.withTag("sd:cli:add-client");
12
12
  if (!fs.existsSync(path.join(cwd, "sd.config.ts"))) {
13
- consola.error("sd.config.ts\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uD504\uB85C\uC81D\uD2B8 \uB8E8\uD2B8\uC5D0\uC11C \uC2E4\uD589\uD574\uC8FC\uC138\uC694.");
13
+ consola.error("Cannot find sd.config.ts. Please run from the project root.");
14
14
  process.exitCode = 1;
15
15
  return;
16
16
  }
17
17
  const projectName = path.basename(cwd);
18
18
  const clientSuffix = await input({
19
- message: "\uD074\uB77C\uC774\uC5B8\uD2B8 \uC774\uB984\uC744 \uC785\uB825\uD558\uC138\uC694 (client-___):",
19
+ message: "Enter client name suffix (client-___):",
20
20
  validate: (value) => {
21
- if (!value.trim()) return "\uC774\uB984\uC744 \uC785\uB825\uD574\uC8FC\uC138\uC694.";
22
- if (!/^[a-z][a-z0-9-]*$/.test(value)) return "\uC18C\uBB38\uC790, \uC22B\uC790, \uD558\uC774\uD508\uB9CC \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4.";
21
+ if (!value.trim()) return "Please enter a name.";
22
+ if (!/^[a-z][a-z0-9-]*$/.test(value)) return "Only lowercase letters, numbers, and hyphens are allowed.";
23
23
  return true;
24
24
  }
25
25
  });
26
26
  const useRouter = await confirm({
27
- message: "\uB77C\uC6B0\uD130\uB97C \uC0AC\uC6A9\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",
27
+ message: "Do you want to use router?",
28
28
  default: true
29
29
  });
30
30
  const clientName = `client-${clientSuffix}`;
31
31
  const packageDir = path.join(cwd, "packages", clientName);
32
32
  if (fs.existsSync(packageDir)) {
33
- consola.error(`packages/${clientName} \uB514\uB809\uD1A0\uB9AC\uAC00 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4.`);
33
+ consola.error(`packages/${clientName} directory already exists.`);
34
34
  process.exitCode = 1;
35
35
  return;
36
36
  }
@@ -45,31 +45,31 @@ async function runAddClient(_options) {
45
45
  const dirReplacements = {
46
46
  __CLIENT__: clientName
47
47
  };
48
- logger.info(`${clientName} \uD328\uD0A4\uC9C0 \uC0DD\uC131 \uC911...`);
48
+ logger.info(`Creating ${clientName} package...`);
49
49
  await renderTemplateDir(templateDir, path.join(cwd, "packages"), context, dirReplacements);
50
- logger.success(`packages/${clientName} \uC0DD\uC131 \uC644\uB8CC`);
50
+ logger.success(`packages/${clientName} created successfully`);
51
51
  const sdConfigPath = path.join(cwd, "sd.config.ts");
52
52
  const added = addPackageToSdConfig(sdConfigPath, clientName, { target: "client" });
53
53
  if (added) {
54
- logger.success("sd.config.ts \uC5C5\uB370\uC774\uD2B8 \uC644\uB8CC");
54
+ logger.success("sd.config.ts updated successfully");
55
55
  } else {
56
- consola.warn(`"${clientName}"\uC774(\uAC00) sd.config.ts\uC5D0 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4.`);
56
+ consola.warn(`"${clientName}" already exists in sd.config.ts.`);
57
57
  }
58
58
  const eslintConfigPath = path.join(cwd, "eslint.config.ts");
59
59
  if (fs.existsSync(eslintConfigPath)) {
60
60
  const tailwindAdded = addTailwindToEslintConfig(eslintConfigPath, clientName);
61
61
  if (tailwindAdded) {
62
- logger.success("eslint.config.ts\uC5D0 tailwind \uC124\uC815 \uCD94\uAC00");
62
+ logger.success("Added tailwind configuration to eslint.config.ts");
63
63
  }
64
64
  }
65
- logger.info("pnpm install \uC2E4\uD589 \uC911...");
65
+ logger.info("Running pnpm install...");
66
66
  await execa("pnpm", ["install"], { cwd });
67
- logger.success("pnpm install \uC644\uB8CC");
67
+ logger.success("pnpm install completed");
68
68
  consola.box(
69
69
  [
70
- `\uD074\uB77C\uC774\uC5B8\uD2B8 "${clientName}"\uC774(\uAC00) \uCD94\uAC00\uB418\uC5C8\uC2B5\uB2C8\uB2E4!`,
70
+ `Client "${clientName}" has been added!`,
71
71
  "",
72
- ` pnpm dev ${clientName} \uAC1C\uBC1C \uC11C\uBC84 \uC2E4\uD589`
72
+ ` pnpm dev ${clientName} Run development server`
73
73
  ].join("\n")
74
74
  );
75
75
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/add-client.ts"],
4
- "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAS,OAAO,eAAe;AAC/B,SAAS,eAAe;AACxB,SAAS,yBAAyB;AAClC,SAAS,sBAAsB,iCAAiC;AAChE,SAAS,aAAa;AACtB,SAAS,uBAAuB;AA2BhC,eAAsB,aAAa,UAA2C;AAC5E,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,SAAS,QAAQ,QAAQ,mBAAmB;AAGlD,MAAI,CAAC,GAAG,WAAW,KAAK,KAAK,KAAK,cAAc,CAAC,GAAG;AAClD,YAAQ,MAAM,0JAA4C;AAC1D,YAAQ,WAAW;AACnB;AAAA,EACF;AAGA,QAAM,cAAc,KAAK,SAAS,GAAG;AAGrC,QAAM,eAAe,MAAM,MAAM;AAAA,IAC/B,SAAS;AAAA,IACT,UAAU,CAAC,UAAU;AACnB,UAAI,CAAC,MAAM,KAAK,EAAG,QAAO;AAC1B,UAAI,CAAC,oBAAoB,KAAK,KAAK,EAAG,QAAO;AAC7C,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,QAAM,YAAY,MAAM,QAAQ;AAAA,IAC9B,SAAS;AAAA,IACT,SAAS;AAAA,EACX,CAAC;AAED,QAAM,aAAa,UAAU,YAAY;AAGzC,QAAM,aAAa,KAAK,KAAK,KAAK,YAAY,UAAU;AACxD,MAAI,GAAG,WAAW,UAAU,GAAG;AAC7B,YAAQ,MAAM,YAAY,UAAU,8EAAkB;AACtD,YAAQ,WAAW;AACnB;AAAA,EACF;AAGA,QAAM,UAAU,gBAAgB,YAAY,OAAO;AACnD,QAAM,cAAc,KAAK,KAAK,SAAS,aAAa,YAAY;AAEhE,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV;AAEA,QAAM,kBAAkB;AAAA,IACtB,YAAY;AAAA,EACd;AAEA,SAAO,KAAK,GAAG,UAAU,4CAAc;AACvC,QAAM,kBAAkB,aAAa,KAAK,KAAK,KAAK,UAAU,GAAG,SAAS,eAAe;AACzF,SAAO,QAAQ,YAAY,UAAU,4BAAQ;AAG7C,QAAM,eAAe,KAAK,KAAK,KAAK,cAAc;AAClD,QAAM,QAAQ,qBAAqB,cAAc,YAAY,EAAE,QAAQ,SAAS,CAAC;AACjF,MAAI,OAAO;AACT,WAAO,QAAQ,oDAAsB;AAAA,EACvC,OAAO;AACL,YAAQ,KAAK,IAAI,UAAU,iFAA+B;AAAA,EAC5D;AAGA,QAAM,mBAAmB,KAAK,KAAK,KAAK,kBAAkB;AAC1D,MAAI,GAAG,WAAW,gBAAgB,GAAG;AACnC,UAAM,gBAAgB,0BAA0B,kBAAkB,UAAU;AAC5E,QAAI,eAAe;AACjB,aAAO,QAAQ,2DAAkC;AAAA,IACnD;AAAA,EACF;AAGA,SAAO,KAAK,qCAAsB;AAClC,QAAM,MAAM,QAAQ,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC;AACxC,SAAO,QAAQ,2BAAiB;AAGhC,UAAQ;AAAA,IACN;AAAA,MACE,mCAAU,UAAU;AAAA,MACpB;AAAA,MACA,cAAc,UAAU;AAAA,IAC1B,EAAE,KAAK,IAAI;AAAA,EACb;AACF;",
4
+ "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAS,OAAO,eAAe;AAC/B,SAAS,eAAe;AACxB,SAAS,yBAAyB;AAClC,SAAS,sBAAsB,iCAAiC;AAChE,SAAS,aAAa;AACtB,SAAS,uBAAuB;AA2BhC,eAAsB,aAAa,UAA2C;AAC5E,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,SAAS,QAAQ,QAAQ,mBAAmB;AAGlD,MAAI,CAAC,GAAG,WAAW,KAAK,KAAK,KAAK,cAAc,CAAC,GAAG;AAClD,YAAQ,MAAM,6DAA6D;AAC3E,YAAQ,WAAW;AACnB;AAAA,EACF;AAGA,QAAM,cAAc,KAAK,SAAS,GAAG;AAGrC,QAAM,eAAe,MAAM,MAAM;AAAA,IAC/B,SAAS;AAAA,IACT,UAAU,CAAC,UAAU;AACnB,UAAI,CAAC,MAAM,KAAK,EAAG,QAAO;AAC1B,UAAI,CAAC,oBAAoB,KAAK,KAAK,EAAG,QAAO;AAC7C,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,QAAM,YAAY,MAAM,QAAQ;AAAA,IAC9B,SAAS;AAAA,IACT,SAAS;AAAA,EACX,CAAC;AAED,QAAM,aAAa,UAAU,YAAY;AAGzC,QAAM,aAAa,KAAK,KAAK,KAAK,YAAY,UAAU;AACxD,MAAI,GAAG,WAAW,UAAU,GAAG;AAC7B,YAAQ,MAAM,YAAY,UAAU,4BAA4B;AAChE,YAAQ,WAAW;AACnB;AAAA,EACF;AAGA,QAAM,UAAU,gBAAgB,YAAY,OAAO;AACnD,QAAM,cAAc,KAAK,KAAK,SAAS,aAAa,YAAY;AAEhE,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV;AAEA,QAAM,kBAAkB;AAAA,IACtB,YAAY;AAAA,EACd;AAEA,SAAO,KAAK,YAAY,UAAU,aAAa;AAC/C,QAAM,kBAAkB,aAAa,KAAK,KAAK,KAAK,UAAU,GAAG,SAAS,eAAe;AACzF,SAAO,QAAQ,YAAY,UAAU,uBAAuB;AAG5D,QAAM,eAAe,KAAK,KAAK,KAAK,cAAc;AAClD,QAAM,QAAQ,qBAAqB,cAAc,YAAY,EAAE,QAAQ,SAAS,CAAC;AACjF,MAAI,OAAO;AACT,WAAO,QAAQ,mCAAmC;AAAA,EACpD,OAAO;AACL,YAAQ,KAAK,IAAI,UAAU,mCAAmC;AAAA,EAChE;AAGA,QAAM,mBAAmB,KAAK,KAAK,KAAK,kBAAkB;AAC1D,MAAI,GAAG,WAAW,gBAAgB,GAAG;AACnC,UAAM,gBAAgB,0BAA0B,kBAAkB,UAAU;AAC5E,QAAI,eAAe;AACjB,aAAO,QAAQ,kDAAkD;AAAA,IACnE;AAAA,EACF;AAGA,SAAO,KAAK,yBAAyB;AACrC,QAAM,MAAM,QAAQ,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC;AACxC,SAAO,QAAQ,wBAAwB;AAGvC,UAAQ;AAAA,IACN;AAAA,MACE,WAAW,UAAU;AAAA,MACrB;AAAA,MACA,cAAc,UAAU;AAAA,IAC1B,EAAE,KAAK,IAAI;AAAA,EACb;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,18 +1,18 @@
1
1
  /**
2
- * Add-server 명령 옵션
2
+ * Add-server command options
3
3
  */
4
4
  export interface AddServerOptions {
5
5
  }
6
6
  /**
7
- * 서버 패키지를 프로젝트에 추가한다.
7
+ * Adds a server package to the project.
8
8
  *
9
- * 1. 프로젝트 루트 확인
10
- * 2. 대화형 프롬프트 (이름 접미사, 클라이언트 선택)
11
- * 3. 패키지 디렉토리 중복 확인
12
- * 4. Handlebars 템플릿 렌더링
13
- * 5. sd.config.ts에 서버 패키지 항목 추가
14
- * 6. 선택된 클라이언트의 server 필드 업데이트
15
- * 7. pnpm install
9
+ * 1. Verify project root
10
+ * 2. Interactive prompts (name suffix, client selection)
11
+ * 3. Check for duplicate package directory
12
+ * 4. Render Handlebars template
13
+ * 5. Add server package entry to sd.config.ts
14
+ * 6. Update server field in selected clients
15
+ * 7. Run pnpm install
16
16
  */
17
17
  export declare function runAddServer(_options: AddServerOptions): Promise<void>;
18
18
  //# sourceMappingURL=add-server.d.ts.map