@simplysm/sd-cli 14.0.57 → 14.0.59

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.
@@ -1 +1 @@
1
- {"version":3,"file":"git-phase.d.ts","sourceRoot":"","sources":["../../../src/commands/publish/git-phase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,EAC1C,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
1
+ {"version":3,"file":"git-phase.d.ts","sourceRoot":"","sources":["../../../src/commands/publish/git-phase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,EAC1C,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
@@ -26,15 +26,8 @@ export async function ensureCleanWorkingTree(hasGit, logger) {
26
26
  env: {
27
27
  // eslint-disable-next-line no-restricted-properties -- 자식 프로세스에 env 전달
28
28
  ...process.env,
29
- MCP_CONNECTION_NONBLOCKING: "true",
30
- CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1",
31
- DISABLE_TELEMETRY: "1",
32
- CLAUDE_CODE_DISABLE_BACKGROUND_TASKS: "1",
33
29
  CLAUDE_CODE_DISABLE_AUTO_MEMORY: "1",
34
- CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING: "1",
35
- CLAUDE_CODE_DISABLE_SESSION_DATA_UPLOAD: "1",
36
- CLAUDE_CODE_SKIP_PROMPT_HISTORY: "1",
37
- CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS: "1",
30
+ CLAUDE_CODE_SKIP_PROMPT_HISTORY: "1"
38
31
  },
39
32
  });
40
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git-phase.js","sourceRoot":"","sources":["../../../src/commands/publish/git-phase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-phase.js","sourceRoot":"","sources":["../../../src/commands/publish/git-phase.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"replace-deps.d.ts","sourceRoot":"","sources":["../../../src/deps/replace-deps/replace-deps.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgF9D;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAAiD,CAAC;AAEvF;;;GAGG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAItF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAW/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAyIhC"}
1
+ {"version":3,"file":"replace-deps.d.ts","sourceRoot":"","sources":["../../../src/deps/replace-deps/replace-deps.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAyG9D;;GAEG;AACH,eAAO,MAAM,wBAAwB,QAAiD,CAAC;AAEvF;;;GAGG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAItF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAW/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAkNhC"}
@@ -74,6 +74,26 @@ async function copyWithUnlink(sourcePath, targetPath, filter) {
74
74
  await fs.promises.copyFile(sourcePath, targetPath);
75
75
  }
76
76
  }
77
+ /**
78
+ * 교체된 패키지의 postinstall 스크립트를 actualTargetPath에서 실행한다.
79
+ * scripts.postinstall이 없으면 조용히 종료한다. 실행 실패는 로깅만 하고 throw하지 않는다.
80
+ */
81
+ async function runPostinstall(entry, logger) {
82
+ const sourcePkgJsonPath = pathx.posix(path.join(entry.resolvedSourcePath, "package.json"));
83
+ try {
84
+ const pkgJson = JSON.parse(await fs.promises.readFile(sourcePkgJsonPath, "utf-8"));
85
+ const postinstall = pkgJson.scripts?.postinstall;
86
+ if (postinstall == null)
87
+ return;
88
+ logger.warn(`[${entry.targetName}] postinstall 스크립트 실행: ${postinstall}`);
89
+ logger.start(`[${entry.targetName}] postinstall 실행 중...`);
90
+ await promisify(exec)(postinstall, { cwd: entry.actualTargetPath });
91
+ logger.success(`[${entry.targetName}] postinstall 실행 완료`);
92
+ }
93
+ catch (err) {
94
+ logger.error(`[${entry.targetName}] postinstall 실패: ${err instanceof Error ? err.message : err}`);
95
+ }
96
+ }
77
97
  /**
78
98
  * npm publish 시 files 필드와 무관하게 항상 포함되는 파일 패턴 (대소문자 무시)
79
99
  */
@@ -141,21 +161,8 @@ export async function setupReplaceDeps(projectRoot, replaceDeps) {
141
161
  const copiedEntries = results.filter((e) => e != null);
142
162
  logger.success(`replace-deps 설정 완료 (${copiedEntries.length}개 의존성 교체)`);
143
163
  // 교체된 패키지의 postinstall 스크립트 실행
144
- for (const { targetName, resolvedSourcePath, actualTargetPath } of copiedEntries) {
145
- const sourcePkgJsonPath = pathx.posix(path.join(resolvedSourcePath, "package.json"));
146
- try {
147
- const pkgJson = JSON.parse(await fs.promises.readFile(sourcePkgJsonPath, "utf-8"));
148
- const postinstall = pkgJson.scripts?.postinstall;
149
- if (postinstall == null)
150
- continue;
151
- logger.warn(`[${targetName}] postinstall 스크립트 실행: ${postinstall}`);
152
- logger.start(`[${targetName}] postinstall 실행 중...`);
153
- await promisify(exec)(postinstall, { cwd: actualTargetPath });
154
- logger.success(`[${targetName}] postinstall 실행 완료`);
155
- }
156
- catch (err) {
157
- logger.error(`[${targetName}] postinstall 실패: ${err instanceof Error ? err.message : err}`);
158
- }
164
+ for (const entry of copiedEntries) {
165
+ await runPostinstall(entry, logger);
159
166
  }
160
167
  }
161
168
  /**
@@ -175,6 +182,9 @@ export async function watchReplaceDeps(projectRoot, replaceDeps, options) {
175
182
  const logger = consola.withTag("sd:cli:replace-deps:watch");
176
183
  const entries = await resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger);
177
184
  logger.start(`replace-deps 워치 시작 중... (${entries.length}개 대상)`);
185
+ for (const entry of entries) {
186
+ logger.debug(`[${entry.targetName}] entry: source=${entry.resolvedSourcePath} -> target=${entry.actualTargetPath}`);
187
+ }
178
188
  // resolvedSourcePath(posix) → entries 그룹화
179
189
  // resolvedSourcePath는 replace-deps-resolve의 pathx.posixResolve 결과로 이미 POSIX이다.
180
190
  const sourceMap = new Map();
@@ -184,6 +194,7 @@ export async function watchReplaceDeps(projectRoot, replaceDeps, options) {
184
194
  arr.push(entry);
185
195
  sourceMap.set(key, arr);
186
196
  }
197
+ logger.debug(`source 그룹 수: ${sourceMap.size}`);
187
198
  // 각 source의 watchPaths 수집 (files 필드 없는 source는 경고 후 제외). source 단위 병렬.
188
199
  const allWatchPaths = new Set();
189
200
  await Promise.all([...sourceMap].map(async ([sourcePath, sourceEntries]) => {
@@ -195,14 +206,18 @@ export async function watchReplaceDeps(projectRoot, replaceDeps, options) {
195
206
  return;
196
207
  }
197
208
  for (const f of files) {
198
- allWatchPaths.add(pathx.posix(path.join(sourcePath, f)));
209
+ const wp = pathx.posix(path.join(sourcePath, f));
210
+ allWatchPaths.add(wp);
211
+ logger.debug(`[${sourceEntries[0].targetName}] 감시 경로 추가: ${wp}`);
199
212
  }
200
213
  const rootEntries = await fs.promises
201
214
  .readdir(sourcePath)
202
215
  .catch(() => []);
203
216
  for (const name of rootEntries) {
204
217
  if (NPM_DEFAULT_FILE_PATTERN.test(name)) {
205
- allWatchPaths.add(pathx.posix(path.join(sourcePath, name)));
218
+ const wp = pathx.posix(path.join(sourcePath, name));
219
+ allWatchPaths.add(wp);
220
+ logger.debug(`[${sourceEntries[0].targetName}] 감시 경로 추가(npm 기본): ${wp}`);
206
221
  }
207
222
  }
208
223
  }
@@ -229,15 +244,52 @@ export async function watchReplaceDeps(projectRoot, replaceDeps, options) {
229
244
  }
230
245
  return undefined;
231
246
  };
247
+ logger.debug(`FsWatcher.watch 시작 (총 ${allWatchPaths.size}개 경로)`);
232
248
  const watcher = await FsWatcher.watch([...allWatchPaths], {
233
249
  followSymlinks: false,
234
250
  });
251
+ logger.debug("FsWatcher.watch 준비 완료");
252
+ // entry(actualTargetPath) 단위 postinstall debounce.
253
+ // 짧은 시간 내 여러 파일 변경이 발생하면 마지막 변경 후 1초 뒤에 한 번만 실행한다.
254
+ const POSTINSTALL_DEBOUNCE_MS = 1000;
255
+ const postinstallTimers = new Map();
256
+ const postinstallEntryByKey = new Map();
257
+ const schedulePostinstall = (entry) => {
258
+ const key = entry.actualTargetPath;
259
+ const prev = postinstallTimers.get(key);
260
+ if (prev != null) {
261
+ clearTimeout(prev);
262
+ logger.debug(`[${entry.targetName}] postinstall 재예약 (이전 타이머 취소)`);
263
+ }
264
+ else {
265
+ logger.debug(`[${entry.targetName}] postinstall 예약 (${POSTINSTALL_DEBOUNCE_MS}ms 후)`);
266
+ }
267
+ postinstallEntryByKey.set(key, entry);
268
+ const timer = setTimeout(() => {
269
+ postinstallTimers.delete(key);
270
+ const target = postinstallEntryByKey.get(key);
271
+ postinstallEntryByKey.delete(key);
272
+ if (target == null)
273
+ return;
274
+ logger.debug(`[${target.targetName}] postinstall 디바운스 만료, 실행 시작`);
275
+ void runPostinstall(target, logger);
276
+ }, POSTINSTALL_DEBOUNCE_MS);
277
+ postinstallTimers.set(key, timer);
278
+ };
235
279
  watcher.onChange({ delay: 300 }, async (changeInfos) => {
280
+ logger.debug(`변경 감지 ${changeInfos.length}건`);
281
+ for (const ci of changeInfos) {
282
+ logger.debug(` - ${ci.event}: ${ci.path}`);
283
+ }
284
+ const changedEntries = new Set();
236
285
  const flags = await Promise.all(changeInfos.map(async ({ path: changedPath }) => {
237
286
  const src = findSource(changedPath);
238
- if (src == null)
287
+ if (src == null) {
288
+ logger.debug(`source 매칭 실패, 무시: ${changedPath}`);
239
289
  return false;
290
+ }
240
291
  const sourceEntries = sourceMap.get(src);
292
+ logger.debug(`source 매칭: ${changedPath} -> ${src} (target ${sourceEntries.length}개)`);
241
293
  let localActualCopy = false;
242
294
  // 동일 source의 복수 target 복사는 순차로 유지한다 (destination 중복 시 race 방지).
243
295
  for (const e of sourceEntries) {
@@ -255,19 +307,26 @@ export async function watchReplaceDeps(projectRoot, replaceDeps, options) {
255
307
  if (sourceExists) {
256
308
  const stat = await fs.promises.stat(changedPath);
257
309
  if (stat.isDirectory()) {
310
+ logger.debug(`[${e.targetName}] mkdir: ${relativePath}`);
258
311
  await fsx.mkdir(destPath);
259
312
  }
260
313
  else {
261
- if (await isFileContentSame(changedPath, destPath))
314
+ if (await isFileContentSame(changedPath, destPath)) {
315
+ logger.debug(`[${e.targetName}] 동일 콘텐츠, 스킵: ${relativePath}`);
262
316
  continue;
317
+ }
263
318
  await fsx.mkdir(pathx.posix(path.dirname(destPath)));
264
319
  await fsx.copy(changedPath, destPath);
320
+ logger.debug(`[${e.targetName}] 복사 완료: ${relativePath}`);
265
321
  localActualCopy = true;
322
+ changedEntries.add(e);
266
323
  }
267
324
  }
268
325
  else {
269
326
  await fsx.rm(destPath);
327
+ logger.debug(`[${e.targetName}] 삭제 완료: ${relativePath}`);
270
328
  localActualCopy = true;
329
+ changedEntries.add(e);
271
330
  }
272
331
  }
273
332
  catch (err) {
@@ -277,13 +336,25 @@ export async function watchReplaceDeps(projectRoot, replaceDeps, options) {
277
336
  return localActualCopy;
278
337
  }));
279
338
  if (flags.some((f) => f)) {
339
+ logger.debug(`배치 종료, 변경된 entry ${changedEntries.size}개: ${[...changedEntries].map((e) => e.targetName).join(", ")}`);
340
+ for (const entry of changedEntries) {
341
+ schedulePostinstall(entry);
342
+ }
280
343
  options?.onChanged?.();
281
344
  }
345
+ else {
346
+ logger.debug("배치 종료, 실제 변경 없음");
347
+ }
282
348
  });
283
349
  logger.success("replace-deps 워치 준비 완료");
284
350
  return {
285
351
  entries,
286
352
  dispose: () => {
353
+ for (const timer of postinstallTimers.values()) {
354
+ clearTimeout(timer);
355
+ }
356
+ postinstallTimers.clear();
357
+ postinstallEntryByKey.clear();
287
358
  void watcher.close();
288
359
  },
289
360
  };
@@ -1 +1 @@
1
- {"version":3,"file":"replace-deps.js","sourceRoot":"","sources":["../../../src/deps/replace-deps/replace-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replace-deps.js","sourceRoot":"","sources":["../../../src/deps/replace-deps/replace-deps.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "14.0.57",
3
+ "version": "14.0.59",
4
4
  "description": "Simplysm package - CLI tool",
5
5
  "author": "simplysm",
6
6
  "license": "Apache-2.0",
@@ -44,9 +44,9 @@
44
44
  "ws": "^8.20.0",
45
45
  "yaml": "^2.8.3",
46
46
  "yargs": "^18.0.0",
47
- "@simplysm/core-common": "14.0.57",
48
- "@simplysm/core-node": "14.0.57",
49
- "@simplysm/storage": "14.0.57"
47
+ "@simplysm/core-node": "14.0.59",
48
+ "@simplysm/core-common": "14.0.59",
49
+ "@simplysm/storage": "14.0.59"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/semver": "^7.7.1",
@@ -36,15 +36,8 @@ export async function ensureCleanWorkingTree(
36
36
  env: {
37
37
  // eslint-disable-next-line no-restricted-properties -- 자식 프로세스에 env 전달
38
38
  ...process.env,
39
- MCP_CONNECTION_NONBLOCKING: "true",
40
- CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1",
41
- DISABLE_TELEMETRY: "1",
42
- CLAUDE_CODE_DISABLE_BACKGROUND_TASKS: "1",
43
39
  CLAUDE_CODE_DISABLE_AUTO_MEMORY: "1",
44
- CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING: "1",
45
- CLAUDE_CODE_DISABLE_SESSION_DATA_UPLOAD: "1",
46
- CLAUDE_CODE_SKIP_PROMPT_HISTORY: "1",
47
- CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS: "1",
40
+ CLAUDE_CODE_SKIP_PROMPT_HISTORY: "1"
48
41
  },
49
42
  },
50
43
  );
@@ -84,6 +84,31 @@ async function copyWithUnlink(
84
84
  }
85
85
  }
86
86
 
87
+ /**
88
+ * 교체된 패키지의 postinstall 스크립트를 actualTargetPath에서 실행한다.
89
+ * scripts.postinstall이 없으면 조용히 종료한다. 실행 실패는 로깅만 하고 throw하지 않는다.
90
+ */
91
+ async function runPostinstall(
92
+ entry: ReplaceDepEntry,
93
+ logger: ReturnType<typeof consola.withTag>,
94
+ ): Promise<void> {
95
+ const sourcePkgJsonPath = pathx.posix(path.join(entry.resolvedSourcePath, "package.json"));
96
+ try {
97
+ const pkgJson = JSON.parse(await fs.promises.readFile(sourcePkgJsonPath, "utf-8"));
98
+ const postinstall = pkgJson.scripts?.postinstall as string | undefined;
99
+ if (postinstall == null) return;
100
+
101
+ logger.warn(`[${entry.targetName}] postinstall 스크립트 실행: ${postinstall}`);
102
+ logger.start(`[${entry.targetName}] postinstall 실행 중...`);
103
+ await promisify(exec)(postinstall, { cwd: entry.actualTargetPath });
104
+ logger.success(`[${entry.targetName}] postinstall 실행 완료`);
105
+ } catch (err) {
106
+ logger.error(
107
+ `[${entry.targetName}] postinstall 실패: ${err instanceof Error ? err.message : err}`,
108
+ );
109
+ }
110
+ }
111
+
87
112
  /**
88
113
  * npm publish 시 files 필드와 무관하게 항상 포함되는 파일 패턴 (대소문자 무시)
89
114
  */
@@ -173,22 +198,8 @@ export async function setupReplaceDeps(
173
198
  logger.success(`replace-deps 설정 완료 (${copiedEntries.length}개 의존성 교체)`);
174
199
 
175
200
  // 교체된 패키지의 postinstall 스크립트 실행
176
- for (const { targetName, resolvedSourcePath, actualTargetPath } of copiedEntries) {
177
- const sourcePkgJsonPath = pathx.posix(path.join(resolvedSourcePath, "package.json"));
178
- try {
179
- const pkgJson = JSON.parse(await fs.promises.readFile(sourcePkgJsonPath, "utf-8"));
180
- const postinstall = pkgJson.scripts?.postinstall as string | undefined;
181
- if (postinstall == null) continue;
182
-
183
- logger.warn(`[${targetName}] postinstall 스크립트 실행: ${postinstall}`);
184
- logger.start(`[${targetName}] postinstall 실행 중...`);
185
- await promisify(exec)(postinstall, { cwd: actualTargetPath });
186
- logger.success(`[${targetName}] postinstall 실행 완료`);
187
- } catch (err) {
188
- logger.error(
189
- `[${targetName}] postinstall 실패: ${err instanceof Error ? err.message : err}`,
190
- );
191
- }
201
+ for (const entry of copiedEntries) {
202
+ await runPostinstall(entry, logger);
192
203
  }
193
204
  }
194
205
 
@@ -215,6 +226,11 @@ export async function watchReplaceDeps(
215
226
  const entries = await resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger);
216
227
 
217
228
  logger.start(`replace-deps 워치 시작 중... (${entries.length}개 대상)`);
229
+ for (const entry of entries) {
230
+ logger.debug(
231
+ `[${entry.targetName}] entry: source=${entry.resolvedSourcePath} -> target=${entry.actualTargetPath}`,
232
+ );
233
+ }
218
234
 
219
235
  // resolvedSourcePath(posix) → entries 그룹화
220
236
  // resolvedSourcePath는 replace-deps-resolve의 pathx.posixResolve 결과로 이미 POSIX이다.
@@ -225,6 +241,7 @@ export async function watchReplaceDeps(
225
241
  arr.push(entry);
226
242
  sourceMap.set(key, arr);
227
243
  }
244
+ logger.debug(`source 그룹 수: ${sourceMap.size}`);
228
245
 
229
246
  // 각 source의 watchPaths 수집 (files 필드 없는 source는 경고 후 제외). source 단위 병렬.
230
247
  const allWatchPaths = new Set<string>();
@@ -242,7 +259,9 @@ export async function watchReplaceDeps(
242
259
  }
243
260
 
244
261
  for (const f of files) {
245
- allWatchPaths.add(pathx.posix(path.join(sourcePath, f)));
262
+ const wp = pathx.posix(path.join(sourcePath, f));
263
+ allWatchPaths.add(wp);
264
+ logger.debug(`[${sourceEntries[0].targetName}] 감시 경로 추가: ${wp}`);
246
265
  }
247
266
 
248
267
  const rootEntries = await fs.promises
@@ -250,7 +269,9 @@ export async function watchReplaceDeps(
250
269
  .catch(() => [] as string[]);
251
270
  for (const name of rootEntries) {
252
271
  if (NPM_DEFAULT_FILE_PATTERN.test(name)) {
253
- allWatchPaths.add(pathx.posix(path.join(sourcePath, name)));
272
+ const wp = pathx.posix(path.join(sourcePath, name));
273
+ allWatchPaths.add(wp);
274
+ logger.debug(`[${sourceEntries[0].targetName}] 감시 경로 추가(npm 기본): ${wp}`);
254
275
  }
255
276
  }
256
277
  } catch (err) {
@@ -281,16 +302,58 @@ export async function watchReplaceDeps(
281
302
  return undefined;
282
303
  };
283
304
 
305
+ logger.debug(`FsWatcher.watch 시작 (총 ${allWatchPaths.size}개 경로)`);
284
306
  const watcher = await FsWatcher.watch([...allWatchPaths], {
285
307
  followSymlinks: false,
286
308
  });
309
+ logger.debug("FsWatcher.watch 준비 완료");
310
+
311
+ // entry(actualTargetPath) 단위 postinstall debounce.
312
+ // 짧은 시간 내 여러 파일 변경이 발생하면 마지막 변경 후 1초 뒤에 한 번만 실행한다.
313
+ const POSTINSTALL_DEBOUNCE_MS = 1000;
314
+ const postinstallTimers = new Map<string, NodeJS.Timeout>();
315
+ const postinstallEntryByKey = new Map<string, ReplaceDepEntry>();
316
+
317
+ const schedulePostinstall = (entry: ReplaceDepEntry) => {
318
+ const key = entry.actualTargetPath;
319
+ const prev = postinstallTimers.get(key);
320
+ if (prev != null) {
321
+ clearTimeout(prev);
322
+ logger.debug(`[${entry.targetName}] postinstall 재예약 (이전 타이머 취소)`);
323
+ } else {
324
+ logger.debug(`[${entry.targetName}] postinstall 예약 (${POSTINSTALL_DEBOUNCE_MS}ms 후)`);
325
+ }
326
+ postinstallEntryByKey.set(key, entry);
327
+ const timer = setTimeout(() => {
328
+ postinstallTimers.delete(key);
329
+ const target = postinstallEntryByKey.get(key);
330
+ postinstallEntryByKey.delete(key);
331
+ if (target == null) return;
332
+ logger.debug(`[${target.targetName}] postinstall 디바운스 만료, 실행 시작`);
333
+ void runPostinstall(target, logger);
334
+ }, POSTINSTALL_DEBOUNCE_MS);
335
+ postinstallTimers.set(key, timer);
336
+ };
287
337
 
288
338
  watcher.onChange({ delay: 300 }, async (changeInfos) => {
339
+ logger.debug(`변경 감지 ${changeInfos.length}건`);
340
+ for (const ci of changeInfos) {
341
+ logger.debug(` - ${ci.event}: ${ci.path}`);
342
+ }
343
+
344
+ const changedEntries = new Set<ReplaceDepEntry>();
345
+
289
346
  const flags = await Promise.all(
290
347
  changeInfos.map(async ({ path: changedPath }) => {
291
348
  const src = findSource(changedPath);
292
- if (src == null) return false;
349
+ if (src == null) {
350
+ logger.debug(`source 매칭 실패, 무시: ${changedPath}`);
351
+ return false;
352
+ }
293
353
  const sourceEntries = sourceMap.get(src)!;
354
+ logger.debug(
355
+ `source 매칭: ${changedPath} -> ${src} (target ${sourceEntries.length}개)`,
356
+ );
294
357
 
295
358
  let localActualCopy = false;
296
359
 
@@ -311,16 +374,24 @@ export async function watchReplaceDeps(
311
374
  if (sourceExists) {
312
375
  const stat = await fs.promises.stat(changedPath);
313
376
  if (stat.isDirectory()) {
377
+ logger.debug(`[${e.targetName}] mkdir: ${relativePath}`);
314
378
  await fsx.mkdir(destPath);
315
379
  } else {
316
- if (await isFileContentSame(changedPath, destPath)) continue;
380
+ if (await isFileContentSame(changedPath, destPath)) {
381
+ logger.debug(`[${e.targetName}] 동일 콘텐츠, 스킵: ${relativePath}`);
382
+ continue;
383
+ }
317
384
  await fsx.mkdir(pathx.posix(path.dirname(destPath)));
318
385
  await fsx.copy(changedPath, destPath);
386
+ logger.debug(`[${e.targetName}] 복사 완료: ${relativePath}`);
319
387
  localActualCopy = true;
388
+ changedEntries.add(e);
320
389
  }
321
390
  } else {
322
391
  await fsx.rm(destPath);
392
+ logger.debug(`[${e.targetName}] 삭제 완료: ${relativePath}`);
323
393
  localActualCopy = true;
394
+ changedEntries.add(e);
324
395
  }
325
396
  } catch (err) {
326
397
  logger.error(
@@ -334,7 +405,15 @@ export async function watchReplaceDeps(
334
405
  );
335
406
 
336
407
  if (flags.some((f) => f)) {
408
+ logger.debug(
409
+ `배치 종료, 변경된 entry ${changedEntries.size}개: ${[...changedEntries].map((e) => e.targetName).join(", ")}`,
410
+ );
411
+ for (const entry of changedEntries) {
412
+ schedulePostinstall(entry);
413
+ }
337
414
  options?.onChanged?.();
415
+ } else {
416
+ logger.debug("배치 종료, 실제 변경 없음");
338
417
  }
339
418
  });
340
419
 
@@ -343,6 +422,11 @@ export async function watchReplaceDeps(
343
422
  return {
344
423
  entries,
345
424
  dispose: () => {
425
+ for (const timer of postinstallTimers.values()) {
426
+ clearTimeout(timer);
427
+ }
428
+ postinstallTimers.clear();
429
+ postinstallEntryByKey.clear();
346
430
  void watcher.close();
347
431
  },
348
432
  };