@pipelab/plugin-tauri 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
@@ -148272,11 +148272,13 @@ async function withLock(key, fn) {
148272
148272
  * Centralized in core-node to avoid circular dependencies.
148273
148273
  */
148274
148274
  async function fetchPackage(packageName, versionOrRange, options) {
148275
+ const start = Date.now();
148275
148276
  if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
148276
148277
  if (packageName.startsWith("@pipelab/")) {
148278
+ const localStart = Date.now();
148277
148279
  const local = await tryResolveMonorepoPackage(packageName);
148278
148280
  if (local) {
148279
- console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
148281
+ console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
148280
148282
  return {
148281
148283
  ...local,
148282
148284
  resolvedVersion: "workspace"
@@ -148288,6 +148290,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148288
148290
  const baseDir = ctx.getPackagesPath(packageName);
148289
148291
  let resolvedVersion;
148290
148292
  console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
148293
+ const resolveStart = Date.now();
148291
148294
  try {
148292
148295
  const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
148293
148296
  let packumentPromise = packumentRequests.get(packageName);
@@ -148301,22 +148304,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
148301
148304
  const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
148302
148305
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
148303
148306
  resolvedVersion = foundVersion;
148304
- console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
148307
+ console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
148305
148308
  } catch (error) {
148306
- console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
148309
+ console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
148310
+ const fallbackStart = Date.now();
148307
148311
  const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
148308
- if (fallbackVersion) resolvedVersion = fallbackVersion;
148309
- else throw error;
148312
+ if (fallbackVersion) {
148313
+ resolvedVersion = fallbackVersion;
148314
+ console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
148315
+ } else throw error;
148310
148316
  }
148311
148317
  const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
148312
148318
  const packageDir = (0, node_path.join)(baseDir, resolvedVersion);
148313
- if (options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir)) return {
148314
- packageDir,
148315
- resolvedVersion
148316
- };
148319
+ const checkStart = Date.now();
148320
+ const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
148321
+ const checkDuration = Date.now() - checkStart;
148322
+ if (isInstalled) {
148323
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
148324
+ return {
148325
+ packageDir,
148326
+ resolvedVersion
148327
+ };
148328
+ }
148317
148329
  return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
148318
148330
  if (!isPackageComplete(packageDir)) {
148319
148331
  console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
148332
+ const downloadStart = Date.now();
148320
148333
  const tempDir = (0, node_path.join)(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
148321
148334
  await (0, node_fs_promises.mkdir)(tempDir, { recursive: true });
148322
148335
  try {
@@ -148332,6 +148345,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148332
148345
  if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
148333
148346
  else throw err;
148334
148347
  }
148348
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
148335
148349
  } catch (err) {
148336
148350
  await (0, node_fs_promises.rm)(tempDir, {
148337
148351
  recursive: true,
@@ -148340,8 +148354,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
148340
148354
  throw err;
148341
148355
  }
148342
148356
  }
148357
+ const entryStart = Date.now();
148343
148358
  const entryPoint = await resolveEntryPoint(packageDir, packageName);
148344
- if (options?.installDeps) await installDependencies(packageDir, packageName, options);
148359
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
148360
+ if (options?.installDeps) {
148361
+ const depsStart = Date.now();
148362
+ await installDependencies(packageDir, packageName, options);
148363
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
148364
+ }
148365
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
148345
148366
  return {
148346
148367
  packageDir,
148347
148368
  resolvedVersion,
@@ -148380,10 +148401,14 @@ async function runPnpm(cwd, options) {
148380
148401
  * Installs a specific version of Node.js if not already present.
148381
148402
  */
148382
148403
  async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148404
+ const checkStart = Date.now();
148383
148405
  const isWindows = process.platform === "win32";
148384
148406
  const nodeDir = context.getThirdPartyPath("node", version);
148385
148407
  const finalNodePath = (0, node_path.join)(nodeDir, isWindows ? "node.exe" : "bin/node");
148386
- if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148408
+ if (isNodeJSComplete(finalNodePath)) {
148409
+ console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
148410
+ return finalNodePath;
148411
+ }
148387
148412
  return withLock(`node:${version}`, async () => {
148388
148413
  if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148389
148414
  const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
@@ -148395,9 +148420,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148395
148420
  const archivePath = (0, node_path.join)(tempDir, fileName);
148396
148421
  sendStartupProgress(`Downloading Node.js v${version}...`);
148397
148422
  console.log(`Downloading Node.js from ${downloadUrl}...`);
148423
+ const dlStart = Date.now();
148398
148424
  await downloadFile(downloadUrl, archivePath);
148425
+ console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
148399
148426
  sendStartupProgress(`Extracting Node.js v${version}...`);
148400
148427
  console.log(`Extracting Node.js to ${tempDir}...`);
148428
+ const extStart = Date.now();
148401
148429
  const extractTempDir = (0, node_path.join)(tempDir, "extracted");
148402
148430
  await (0, node_fs_promises.mkdir)(extractTempDir, { recursive: true });
148403
148431
  if (extension === "zip") await extractZip(archivePath, extractTempDir);
@@ -148422,6 +148450,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148422
148450
  if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
148423
148451
  else throw err;
148424
148452
  }
148453
+ console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
148425
148454
  } finally {
148426
148455
  await (0, node_fs_promises.rm)(tempNodeDir, {
148427
148456
  recursive: true,
@@ -148432,6 +148461,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148432
148461
  force: true
148433
148462
  }).catch(() => {});
148434
148463
  }
148464
+ console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
148435
148465
  return finalNodePath;
148436
148466
  });
148437
148467
  }
@@ -148439,16 +148469,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148439
148469
  * Installs the PNPM package from npm if not already present.
148440
148470
  */
148441
148471
  async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
148472
+ const checkStart = Date.now();
148442
148473
  const pnpmPath = (0, node_path.join)(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
148443
- if ((0, node_fs.existsSync)(pnpmPath)) return pnpmPath;
148474
+ if ((0, node_fs.existsSync)(pnpmPath)) {
148475
+ console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
148476
+ return pnpmPath;
148477
+ }
148444
148478
  return withLock(`pnpm:${version}`, async () => {
148445
148479
  if ((0, node_fs.existsSync)(pnpmPath)) return pnpmPath;
148446
148480
  sendStartupProgress(`Checking PNPM v${version}...`);
148447
148481
  const { packageDir } = await fetchPackage("pnpm", version, { context });
148482
+ console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
148448
148483
  return (0, node_path.join)(packageDir, "bin", "pnpm.cjs");
148449
148484
  });
148450
148485
  }
148451
148486
  async function installDependencies(packageDir, packageName, options) {
148487
+ const start = Date.now();
148452
148488
  const nodeModulesPath = (0, node_path.join)(packageDir, "node_modules");
148453
148489
  if (isDependenciesInstalledSync(packageDir)) {
148454
148490
  console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
@@ -148459,18 +148495,21 @@ async function installDependencies(packageDir, packageName, options) {
148459
148495
  try {
148460
148496
  await (0, node_fs_promises.cp)((0, node_path.join)(packageDir, "package.json"), (0, node_path.join)(tempDir, "package.json"));
148461
148497
  console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
148498
+ const pnpmStart = Date.now();
148462
148499
  const { all } = await runPnpm(tempDir, {
148463
148500
  signal: options.signal,
148464
148501
  context: options.context
148465
148502
  });
148503
+ console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
148466
148504
  if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
148467
148505
  const tempNodeModules = (0, node_path.join)(tempDir, "node_modules");
148468
148506
  if ((0, node_fs.existsSync)(nodeModulesPath)) await (0, node_fs_promises.rm)(nodeModulesPath, {
148469
148507
  recursive: true,
148470
148508
  force: true
148471
148509
  }).catch(() => {});
148510
+ const renameStart = Date.now();
148472
148511
  await (0, node_fs_promises.rename)(tempNodeModules, nodeModulesPath);
148473
- console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
148512
+ console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
148474
148513
  } catch (err) {
148475
148514
  console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
148476
148515
  if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);
package/dist/index.mjs CHANGED
@@ -148273,11 +148273,13 @@ async function withLock(key, fn) {
148273
148273
  * Centralized in core-node to avoid circular dependencies.
148274
148274
  */
148275
148275
  async function fetchPackage(packageName, versionOrRange, options) {
148276
+ const start = Date.now();
148276
148277
  if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
148277
148278
  if (packageName.startsWith("@pipelab/")) {
148279
+ const localStart = Date.now();
148278
148280
  const local = await tryResolveMonorepoPackage(packageName);
148279
148281
  if (local) {
148280
- console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
148282
+ console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
148281
148283
  return {
148282
148284
  ...local,
148283
148285
  resolvedVersion: "workspace"
@@ -148289,6 +148291,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148289
148291
  const baseDir = ctx.getPackagesPath(packageName);
148290
148292
  let resolvedVersion;
148291
148293
  console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
148294
+ const resolveStart = Date.now();
148292
148295
  try {
148293
148296
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
148294
148297
  let packumentPromise = packumentRequests.get(packageName);
@@ -148302,22 +148305,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
148302
148305
  const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
148303
148306
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
148304
148307
  resolvedVersion = foundVersion;
148305
- console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
148308
+ console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
148306
148309
  } catch (error) {
148307
- console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
148310
+ console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
148311
+ const fallbackStart = Date.now();
148308
148312
  const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
148309
- if (fallbackVersion) resolvedVersion = fallbackVersion;
148310
- else throw error;
148313
+ if (fallbackVersion) {
148314
+ resolvedVersion = fallbackVersion;
148315
+ console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
148316
+ } else throw error;
148311
148317
  }
148312
148318
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
148313
148319
  const packageDir = join(baseDir, resolvedVersion);
148314
- if (options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir)) return {
148315
- packageDir,
148316
- resolvedVersion
148317
- };
148320
+ const checkStart = Date.now();
148321
+ const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
148322
+ const checkDuration = Date.now() - checkStart;
148323
+ if (isInstalled) {
148324
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
148325
+ return {
148326
+ packageDir,
148327
+ resolvedVersion
148328
+ };
148329
+ }
148318
148330
  return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
148319
148331
  if (!isPackageComplete(packageDir)) {
148320
148332
  console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
148333
+ const downloadStart = Date.now();
148321
148334
  const tempDir = join(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
148322
148335
  await mkdir(tempDir, { recursive: true });
148323
148336
  try {
@@ -148333,6 +148346,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148333
148346
  if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
148334
148347
  else throw err;
148335
148348
  }
148349
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
148336
148350
  } catch (err) {
148337
148351
  await rm(tempDir, {
148338
148352
  recursive: true,
@@ -148341,8 +148355,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
148341
148355
  throw err;
148342
148356
  }
148343
148357
  }
148358
+ const entryStart = Date.now();
148344
148359
  const entryPoint = await resolveEntryPoint(packageDir, packageName);
148345
- if (options?.installDeps) await installDependencies(packageDir, packageName, options);
148360
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
148361
+ if (options?.installDeps) {
148362
+ const depsStart = Date.now();
148363
+ await installDependencies(packageDir, packageName, options);
148364
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
148365
+ }
148366
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
148346
148367
  return {
148347
148368
  packageDir,
148348
148369
  resolvedVersion,
@@ -148381,10 +148402,14 @@ async function runPnpm(cwd, options) {
148381
148402
  * Installs a specific version of Node.js if not already present.
148382
148403
  */
148383
148404
  async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148405
+ const checkStart = Date.now();
148384
148406
  const isWindows = process.platform === "win32";
148385
148407
  const nodeDir = context.getThirdPartyPath("node", version);
148386
148408
  const finalNodePath = join(nodeDir, isWindows ? "node.exe" : "bin/node");
148387
- if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148409
+ if (isNodeJSComplete(finalNodePath)) {
148410
+ console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
148411
+ return finalNodePath;
148412
+ }
148388
148413
  return withLock(`node:${version}`, async () => {
148389
148414
  if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148390
148415
  const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
@@ -148396,9 +148421,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148396
148421
  const archivePath = join(tempDir, fileName);
148397
148422
  sendStartupProgress(`Downloading Node.js v${version}...`);
148398
148423
  console.log(`Downloading Node.js from ${downloadUrl}...`);
148424
+ const dlStart = Date.now();
148399
148425
  await downloadFile(downloadUrl, archivePath);
148426
+ console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
148400
148427
  sendStartupProgress(`Extracting Node.js v${version}...`);
148401
148428
  console.log(`Extracting Node.js to ${tempDir}...`);
148429
+ const extStart = Date.now();
148402
148430
  const extractTempDir = join(tempDir, "extracted");
148403
148431
  await mkdir(extractTempDir, { recursive: true });
148404
148432
  if (extension === "zip") await extractZip(archivePath, extractTempDir);
@@ -148423,6 +148451,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148423
148451
  if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
148424
148452
  else throw err;
148425
148453
  }
148454
+ console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
148426
148455
  } finally {
148427
148456
  await rm(tempNodeDir, {
148428
148457
  recursive: true,
@@ -148433,6 +148462,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148433
148462
  force: true
148434
148463
  }).catch(() => {});
148435
148464
  }
148465
+ console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
148436
148466
  return finalNodePath;
148437
148467
  });
148438
148468
  }
@@ -148440,16 +148470,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148440
148470
  * Installs the PNPM package from npm if not already present.
148441
148471
  */
148442
148472
  async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
148473
+ const checkStart = Date.now();
148443
148474
  const pnpmPath = join(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
148444
- if (existsSync(pnpmPath)) return pnpmPath;
148475
+ if (existsSync(pnpmPath)) {
148476
+ console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
148477
+ return pnpmPath;
148478
+ }
148445
148479
  return withLock(`pnpm:${version}`, async () => {
148446
148480
  if (existsSync(pnpmPath)) return pnpmPath;
148447
148481
  sendStartupProgress(`Checking PNPM v${version}...`);
148448
148482
  const { packageDir } = await fetchPackage("pnpm", version, { context });
148483
+ console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
148449
148484
  return join(packageDir, "bin", "pnpm.cjs");
148450
148485
  });
148451
148486
  }
148452
148487
  async function installDependencies(packageDir, packageName, options) {
148488
+ const start = Date.now();
148453
148489
  const nodeModulesPath = join(packageDir, "node_modules");
148454
148490
  if (isDependenciesInstalledSync(packageDir)) {
148455
148491
  console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
@@ -148460,18 +148496,21 @@ async function installDependencies(packageDir, packageName, options) {
148460
148496
  try {
148461
148497
  await cp(join(packageDir, "package.json"), join(tempDir, "package.json"));
148462
148498
  console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
148499
+ const pnpmStart = Date.now();
148463
148500
  const { all } = await runPnpm(tempDir, {
148464
148501
  signal: options.signal,
148465
148502
  context: options.context
148466
148503
  });
148504
+ console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
148467
148505
  if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
148468
148506
  const tempNodeModules = join(tempDir, "node_modules");
148469
148507
  if (existsSync(nodeModulesPath)) await rm(nodeModulesPath, {
148470
148508
  recursive: true,
148471
148509
  force: true
148472
148510
  }).catch(() => {});
148511
+ const renameStart = Date.now();
148473
148512
  await rename(tempNodeModules, nodeModulesPath);
148474
- console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
148513
+ console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
148475
148514
  } catch (err) {
148476
148515
  console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
148477
148516
  if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);