@pipelab/plugin-poki 1.0.0-beta.11 → 1.0.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -148237,11 +148237,13 @@ async function withLock(key, fn) {
148237
148237
  * Centralized in core-node to avoid circular dependencies.
148238
148238
  */
148239
148239
  async function fetchPackage(packageName, versionOrRange, options) {
148240
+ const start = Date.now();
148240
148241
  if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
148241
148242
  if (packageName.startsWith("@pipelab/")) {
148243
+ const localStart = Date.now();
148242
148244
  const local = await tryResolveMonorepoPackage(packageName);
148243
148245
  if (local) {
148244
- console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
148246
+ console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
148245
148247
  return {
148246
148248
  ...local,
148247
148249
  resolvedVersion: "workspace"
@@ -148253,6 +148255,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148253
148255
  const baseDir = ctx.getPackagesPath(packageName);
148254
148256
  let resolvedVersion;
148255
148257
  console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
148258
+ const resolveStart = Date.now();
148256
148259
  try {
148257
148260
  const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
148258
148261
  let packumentPromise = packumentRequests.get(packageName);
@@ -148266,22 +148269,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
148266
148269
  const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
148267
148270
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
148268
148271
  resolvedVersion = foundVersion;
148269
- console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
148272
+ console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
148270
148273
  } catch (error) {
148271
- console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
148274
+ console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
148275
+ const fallbackStart = Date.now();
148272
148276
  const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
148273
- if (fallbackVersion) resolvedVersion = fallbackVersion;
148274
- else throw error;
148277
+ if (fallbackVersion) {
148278
+ resolvedVersion = fallbackVersion;
148279
+ console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
148280
+ } else throw error;
148275
148281
  }
148276
148282
  const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
148277
148283
  const packageDir = (0, node_path.join)(baseDir, resolvedVersion);
148278
- if (options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir)) return {
148279
- packageDir,
148280
- resolvedVersion
148281
- };
148284
+ const checkStart = Date.now();
148285
+ const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
148286
+ const checkDuration = Date.now() - checkStart;
148287
+ if (isInstalled) {
148288
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
148289
+ return {
148290
+ packageDir,
148291
+ resolvedVersion
148292
+ };
148293
+ }
148282
148294
  return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
148283
148295
  if (!isPackageComplete(packageDir)) {
148284
148296
  console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
148297
+ const downloadStart = Date.now();
148285
148298
  const tempDir = (0, node_path.join)(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
148286
148299
  await (0, node_fs_promises.mkdir)(tempDir, { recursive: true });
148287
148300
  try {
@@ -148297,6 +148310,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148297
148310
  if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
148298
148311
  else throw err;
148299
148312
  }
148313
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
148300
148314
  } catch (err) {
148301
148315
  await (0, node_fs_promises.rm)(tempDir, {
148302
148316
  recursive: true,
@@ -148305,8 +148319,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
148305
148319
  throw err;
148306
148320
  }
148307
148321
  }
148322
+ const entryStart = Date.now();
148308
148323
  const entryPoint = await resolveEntryPoint(packageDir, packageName);
148309
- if (options?.installDeps) await installDependencies(packageDir, packageName, options);
148324
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
148325
+ if (options?.installDeps) {
148326
+ const depsStart = Date.now();
148327
+ await installDependencies(packageDir, packageName, options);
148328
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
148329
+ }
148330
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
148310
148331
  return {
148311
148332
  packageDir,
148312
148333
  resolvedVersion,
@@ -148345,10 +148366,14 @@ async function runPnpm(cwd, options) {
148345
148366
  * Installs a specific version of Node.js if not already present.
148346
148367
  */
148347
148368
  async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148369
+ const checkStart = Date.now();
148348
148370
  const isWindows = process.platform === "win32";
148349
148371
  const nodeDir = context.getThirdPartyPath("node", version);
148350
148372
  const finalNodePath = (0, node_path.join)(nodeDir, isWindows ? "node.exe" : "bin/node");
148351
- if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148373
+ if (isNodeJSComplete(finalNodePath)) {
148374
+ console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
148375
+ return finalNodePath;
148376
+ }
148352
148377
  return withLock(`node:${version}`, async () => {
148353
148378
  if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148354
148379
  const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
@@ -148360,9 +148385,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148360
148385
  const archivePath = (0, node_path.join)(tempDir, fileName);
148361
148386
  sendStartupProgress(`Downloading Node.js v${version}...`);
148362
148387
  console.log(`Downloading Node.js from ${downloadUrl}...`);
148388
+ const dlStart = Date.now();
148363
148389
  await downloadFile(downloadUrl, archivePath);
148390
+ console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
148364
148391
  sendStartupProgress(`Extracting Node.js v${version}...`);
148365
148392
  console.log(`Extracting Node.js to ${tempDir}...`);
148393
+ const extStart = Date.now();
148366
148394
  const extractTempDir = (0, node_path.join)(tempDir, "extracted");
148367
148395
  await (0, node_fs_promises.mkdir)(extractTempDir, { recursive: true });
148368
148396
  if (extension === "zip") await extractZip(archivePath, extractTempDir);
@@ -148387,6 +148415,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148387
148415
  if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
148388
148416
  else throw err;
148389
148417
  }
148418
+ console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
148390
148419
  } finally {
148391
148420
  await (0, node_fs_promises.rm)(tempNodeDir, {
148392
148421
  recursive: true,
@@ -148397,6 +148426,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148397
148426
  force: true
148398
148427
  }).catch(() => {});
148399
148428
  }
148429
+ console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
148400
148430
  return finalNodePath;
148401
148431
  });
148402
148432
  }
@@ -148404,16 +148434,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148404
148434
  * Installs the PNPM package from npm if not already present.
148405
148435
  */
148406
148436
  async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
148437
+ const checkStart = Date.now();
148407
148438
  const pnpmPath = (0, node_path.join)(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
148408
- if ((0, node_fs.existsSync)(pnpmPath)) return pnpmPath;
148439
+ if ((0, node_fs.existsSync)(pnpmPath)) {
148440
+ console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
148441
+ return pnpmPath;
148442
+ }
148409
148443
  return withLock(`pnpm:${version}`, async () => {
148410
148444
  if ((0, node_fs.existsSync)(pnpmPath)) return pnpmPath;
148411
148445
  sendStartupProgress(`Checking PNPM v${version}...`);
148412
148446
  const { packageDir } = await fetchPackage("pnpm", version, { context });
148447
+ console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
148413
148448
  return (0, node_path.join)(packageDir, "bin", "pnpm.cjs");
148414
148449
  });
148415
148450
  }
148416
148451
  async function installDependencies(packageDir, packageName, options) {
148452
+ const start = Date.now();
148417
148453
  const nodeModulesPath = (0, node_path.join)(packageDir, "node_modules");
148418
148454
  if (isDependenciesInstalledSync(packageDir)) {
148419
148455
  console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
@@ -148424,18 +148460,21 @@ async function installDependencies(packageDir, packageName, options) {
148424
148460
  try {
148425
148461
  await (0, node_fs_promises.cp)((0, node_path.join)(packageDir, "package.json"), (0, node_path.join)(tempDir, "package.json"));
148426
148462
  console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
148463
+ const pnpmStart = Date.now();
148427
148464
  const { all } = await runPnpm(tempDir, {
148428
148465
  signal: options.signal,
148429
148466
  context: options.context
148430
148467
  });
148468
+ console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
148431
148469
  if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
148432
148470
  const tempNodeModules = (0, node_path.join)(tempDir, "node_modules");
148433
148471
  if ((0, node_fs.existsSync)(nodeModulesPath)) await (0, node_fs_promises.rm)(nodeModulesPath, {
148434
148472
  recursive: true,
148435
148473
  force: true
148436
148474
  }).catch(() => {});
148475
+ const renameStart = Date.now();
148437
148476
  await (0, node_fs_promises.rename)(tempNodeModules, nodeModulesPath);
148438
- console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
148477
+ console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
148439
148478
  } catch (err) {
148440
148479
  console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
148441
148480
  if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);
package/dist/index.mjs CHANGED
@@ -148238,11 +148238,13 @@ async function withLock(key, fn) {
148238
148238
  * Centralized in core-node to avoid circular dependencies.
148239
148239
  */
148240
148240
  async function fetchPackage(packageName, versionOrRange, options) {
148241
+ const start = Date.now();
148241
148242
  if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
148242
148243
  if (packageName.startsWith("@pipelab/")) {
148244
+ const localStart = Date.now();
148243
148245
  const local = await tryResolveMonorepoPackage(packageName);
148244
148246
  if (local) {
148245
- console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
148247
+ console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
148246
148248
  return {
148247
148249
  ...local,
148248
148250
  resolvedVersion: "workspace"
@@ -148254,6 +148256,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148254
148256
  const baseDir = ctx.getPackagesPath(packageName);
148255
148257
  let resolvedVersion;
148256
148258
  console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
148259
+ const resolveStart = Date.now();
148257
148260
  try {
148258
148261
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
148259
148262
  let packumentPromise = packumentRequests.get(packageName);
@@ -148267,22 +148270,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
148267
148270
  const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
148268
148271
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
148269
148272
  resolvedVersion = foundVersion;
148270
- console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
148273
+ console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
148271
148274
  } catch (error) {
148272
- console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
148275
+ console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
148276
+ const fallbackStart = Date.now();
148273
148277
  const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
148274
- if (fallbackVersion) resolvedVersion = fallbackVersion;
148275
- else throw error;
148278
+ if (fallbackVersion) {
148279
+ resolvedVersion = fallbackVersion;
148280
+ console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
148281
+ } else throw error;
148276
148282
  }
148277
148283
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
148278
148284
  const packageDir = join(baseDir, resolvedVersion);
148279
- if (options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir)) return {
148280
- packageDir,
148281
- resolvedVersion
148282
- };
148285
+ const checkStart = Date.now();
148286
+ const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
148287
+ const checkDuration = Date.now() - checkStart;
148288
+ if (isInstalled) {
148289
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
148290
+ return {
148291
+ packageDir,
148292
+ resolvedVersion
148293
+ };
148294
+ }
148283
148295
  return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
148284
148296
  if (!isPackageComplete(packageDir)) {
148285
148297
  console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
148298
+ const downloadStart = Date.now();
148286
148299
  const tempDir = join(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
148287
148300
  await mkdir(tempDir, { recursive: true });
148288
148301
  try {
@@ -148298,6 +148311,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148298
148311
  if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
148299
148312
  else throw err;
148300
148313
  }
148314
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
148301
148315
  } catch (err) {
148302
148316
  await rm(tempDir, {
148303
148317
  recursive: true,
@@ -148306,8 +148320,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
148306
148320
  throw err;
148307
148321
  }
148308
148322
  }
148323
+ const entryStart = Date.now();
148309
148324
  const entryPoint = await resolveEntryPoint(packageDir, packageName);
148310
- if (options?.installDeps) await installDependencies(packageDir, packageName, options);
148325
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
148326
+ if (options?.installDeps) {
148327
+ const depsStart = Date.now();
148328
+ await installDependencies(packageDir, packageName, options);
148329
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
148330
+ }
148331
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
148311
148332
  return {
148312
148333
  packageDir,
148313
148334
  resolvedVersion,
@@ -148346,10 +148367,14 @@ async function runPnpm(cwd, options) {
148346
148367
  * Installs a specific version of Node.js if not already present.
148347
148368
  */
148348
148369
  async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148370
+ const checkStart = Date.now();
148349
148371
  const isWindows = process.platform === "win32";
148350
148372
  const nodeDir = context.getThirdPartyPath("node", version);
148351
148373
  const finalNodePath = join(nodeDir, isWindows ? "node.exe" : "bin/node");
148352
- if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148374
+ if (isNodeJSComplete(finalNodePath)) {
148375
+ console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
148376
+ return finalNodePath;
148377
+ }
148353
148378
  return withLock(`node:${version}`, async () => {
148354
148379
  if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148355
148380
  const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
@@ -148361,9 +148386,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148361
148386
  const archivePath = join(tempDir, fileName);
148362
148387
  sendStartupProgress(`Downloading Node.js v${version}...`);
148363
148388
  console.log(`Downloading Node.js from ${downloadUrl}...`);
148389
+ const dlStart = Date.now();
148364
148390
  await downloadFile(downloadUrl, archivePath);
148391
+ console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
148365
148392
  sendStartupProgress(`Extracting Node.js v${version}...`);
148366
148393
  console.log(`Extracting Node.js to ${tempDir}...`);
148394
+ const extStart = Date.now();
148367
148395
  const extractTempDir = join(tempDir, "extracted");
148368
148396
  await mkdir(extractTempDir, { recursive: true });
148369
148397
  if (extension === "zip") await extractZip(archivePath, extractTempDir);
@@ -148388,6 +148416,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148388
148416
  if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
148389
148417
  else throw err;
148390
148418
  }
148419
+ console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
148391
148420
  } finally {
148392
148421
  await rm(tempNodeDir, {
148393
148422
  recursive: true,
@@ -148398,6 +148427,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148398
148427
  force: true
148399
148428
  }).catch(() => {});
148400
148429
  }
148430
+ console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
148401
148431
  return finalNodePath;
148402
148432
  });
148403
148433
  }
@@ -148405,16 +148435,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148405
148435
  * Installs the PNPM package from npm if not already present.
148406
148436
  */
148407
148437
  async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
148438
+ const checkStart = Date.now();
148408
148439
  const pnpmPath = join(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
148409
- if (existsSync(pnpmPath)) return pnpmPath;
148440
+ if (existsSync(pnpmPath)) {
148441
+ console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
148442
+ return pnpmPath;
148443
+ }
148410
148444
  return withLock(`pnpm:${version}`, async () => {
148411
148445
  if (existsSync(pnpmPath)) return pnpmPath;
148412
148446
  sendStartupProgress(`Checking PNPM v${version}...`);
148413
148447
  const { packageDir } = await fetchPackage("pnpm", version, { context });
148448
+ console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
148414
148449
  return join(packageDir, "bin", "pnpm.cjs");
148415
148450
  });
148416
148451
  }
148417
148452
  async function installDependencies(packageDir, packageName, options) {
148453
+ const start = Date.now();
148418
148454
  const nodeModulesPath = join(packageDir, "node_modules");
148419
148455
  if (isDependenciesInstalledSync(packageDir)) {
148420
148456
  console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
@@ -148425,18 +148461,21 @@ async function installDependencies(packageDir, packageName, options) {
148425
148461
  try {
148426
148462
  await cp(join(packageDir, "package.json"), join(tempDir, "package.json"));
148427
148463
  console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
148464
+ const pnpmStart = Date.now();
148428
148465
  const { all } = await runPnpm(tempDir, {
148429
148466
  signal: options.signal,
148430
148467
  context: options.context
148431
148468
  });
148469
+ console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
148432
148470
  if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
148433
148471
  const tempNodeModules = join(tempDir, "node_modules");
148434
148472
  if (existsSync(nodeModulesPath)) await rm(nodeModulesPath, {
148435
148473
  recursive: true,
148436
148474
  force: true
148437
148475
  }).catch(() => {});
148476
+ const renameStart = Date.now();
148438
148477
  await rename(tempNodeModules, nodeModulesPath);
148439
- console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
148478
+ console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
148440
148479
  } catch (err) {
148441
148480
  console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
148442
148481
  if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);