@pipelab/plugin-electron 1.0.0-beta.10 → 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
@@ -148294,11 +148294,13 @@ async function withLock(key, fn) {
148294
148294
  * Centralized in core-node to avoid circular dependencies.
148295
148295
  */
148296
148296
  async function fetchPackage(packageName, versionOrRange, options) {
148297
+ const start = Date.now();
148297
148298
  if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
148298
148299
  if (packageName.startsWith("@pipelab/")) {
148300
+ const localStart = Date.now();
148299
148301
  const local = await tryResolveMonorepoPackage(packageName);
148300
148302
  if (local) {
148301
- console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
148303
+ console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
148302
148304
  return {
148303
148305
  ...local,
148304
148306
  resolvedVersion: "workspace"
@@ -148310,6 +148312,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148310
148312
  const baseDir = ctx.getPackagesPath(packageName);
148311
148313
  let resolvedVersion;
148312
148314
  console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
148315
+ const resolveStart = Date.now();
148313
148316
  try {
148314
148317
  const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
148315
148318
  let packumentPromise = packumentRequests.get(packageName);
@@ -148323,22 +148326,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
148323
148326
  const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
148324
148327
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
148325
148328
  resolvedVersion = foundVersion;
148326
- console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
148329
+ console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
148327
148330
  } catch (error) {
148328
- console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
148331
+ console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
148332
+ const fallbackStart = Date.now();
148329
148333
  const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
148330
- if (fallbackVersion) resolvedVersion = fallbackVersion;
148331
- else throw error;
148334
+ if (fallbackVersion) {
148335
+ resolvedVersion = fallbackVersion;
148336
+ console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
148337
+ } else throw error;
148332
148338
  }
148333
148339
  const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
148334
148340
  const packageDir = (0, node_path.join)(baseDir, resolvedVersion);
148335
- if (options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir)) return {
148336
- packageDir,
148337
- resolvedVersion
148338
- };
148341
+ const checkStart = Date.now();
148342
+ const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
148343
+ const checkDuration = Date.now() - checkStart;
148344
+ if (isInstalled) {
148345
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
148346
+ return {
148347
+ packageDir,
148348
+ resolvedVersion
148349
+ };
148350
+ }
148339
148351
  return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
148340
148352
  if (!isPackageComplete(packageDir)) {
148341
148353
  console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
148354
+ const downloadStart = Date.now();
148342
148355
  const tempDir = (0, node_path.join)(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
148343
148356
  await (0, node_fs_promises.mkdir)(tempDir, { recursive: true });
148344
148357
  try {
@@ -148354,6 +148367,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148354
148367
  if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
148355
148368
  else throw err;
148356
148369
  }
148370
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
148357
148371
  } catch (err) {
148358
148372
  await (0, node_fs_promises.rm)(tempDir, {
148359
148373
  recursive: true,
@@ -148362,8 +148376,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
148362
148376
  throw err;
148363
148377
  }
148364
148378
  }
148379
+ const entryStart = Date.now();
148365
148380
  const entryPoint = await resolveEntryPoint(packageDir, packageName);
148366
- if (options?.installDeps) await installDependencies(packageDir, packageName, options);
148381
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
148382
+ if (options?.installDeps) {
148383
+ const depsStart = Date.now();
148384
+ await installDependencies(packageDir, packageName, options);
148385
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
148386
+ }
148387
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
148367
148388
  return {
148368
148389
  packageDir,
148369
148390
  resolvedVersion,
@@ -148402,10 +148423,14 @@ async function runPnpm(cwd, options) {
148402
148423
  * Installs a specific version of Node.js if not already present.
148403
148424
  */
148404
148425
  async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148426
+ const checkStart = Date.now();
148405
148427
  const isWindows = process.platform === "win32";
148406
148428
  const nodeDir = context.getThirdPartyPath("node", version);
148407
148429
  const finalNodePath = (0, node_path.join)(nodeDir, isWindows ? "node.exe" : "bin/node");
148408
- if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148430
+ if (isNodeJSComplete(finalNodePath)) {
148431
+ console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
148432
+ return finalNodePath;
148433
+ }
148409
148434
  return withLock(`node:${version}`, async () => {
148410
148435
  if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148411
148436
  const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
@@ -148417,9 +148442,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148417
148442
  const archivePath = (0, node_path.join)(tempDir, fileName);
148418
148443
  sendStartupProgress(`Downloading Node.js v${version}...`);
148419
148444
  console.log(`Downloading Node.js from ${downloadUrl}...`);
148445
+ const dlStart = Date.now();
148420
148446
  await downloadFile(downloadUrl, archivePath);
148447
+ console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
148421
148448
  sendStartupProgress(`Extracting Node.js v${version}...`);
148422
148449
  console.log(`Extracting Node.js to ${tempDir}...`);
148450
+ const extStart = Date.now();
148423
148451
  const extractTempDir = (0, node_path.join)(tempDir, "extracted");
148424
148452
  await (0, node_fs_promises.mkdir)(extractTempDir, { recursive: true });
148425
148453
  if (extension === "zip") await extractZip(archivePath, extractTempDir);
@@ -148444,6 +148472,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148444
148472
  if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
148445
148473
  else throw err;
148446
148474
  }
148475
+ console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
148447
148476
  } finally {
148448
148477
  await (0, node_fs_promises.rm)(tempNodeDir, {
148449
148478
  recursive: true,
@@ -148454,6 +148483,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148454
148483
  force: true
148455
148484
  }).catch(() => {});
148456
148485
  }
148486
+ console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
148457
148487
  return finalNodePath;
148458
148488
  });
148459
148489
  }
@@ -148461,16 +148491,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148461
148491
  * Installs the PNPM package from npm if not already present.
148462
148492
  */
148463
148493
  async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
148494
+ const checkStart = Date.now();
148464
148495
  const pnpmPath = (0, node_path.join)(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
148465
- if ((0, node_fs.existsSync)(pnpmPath)) return pnpmPath;
148496
+ if ((0, node_fs.existsSync)(pnpmPath)) {
148497
+ console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
148498
+ return pnpmPath;
148499
+ }
148466
148500
  return withLock(`pnpm:${version}`, async () => {
148467
148501
  if ((0, node_fs.existsSync)(pnpmPath)) return pnpmPath;
148468
148502
  sendStartupProgress(`Checking PNPM v${version}...`);
148469
148503
  const { packageDir } = await fetchPackage("pnpm", version, { context });
148504
+ console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
148470
148505
  return (0, node_path.join)(packageDir, "bin", "pnpm.cjs");
148471
148506
  });
148472
148507
  }
148473
148508
  async function installDependencies(packageDir, packageName, options) {
148509
+ const start = Date.now();
148474
148510
  const nodeModulesPath = (0, node_path.join)(packageDir, "node_modules");
148475
148511
  if (isDependenciesInstalledSync(packageDir)) {
148476
148512
  console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
@@ -148481,18 +148517,21 @@ async function installDependencies(packageDir, packageName, options) {
148481
148517
  try {
148482
148518
  await (0, node_fs_promises.cp)((0, node_path.join)(packageDir, "package.json"), (0, node_path.join)(tempDir, "package.json"));
148483
148519
  console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
148520
+ const pnpmStart = Date.now();
148484
148521
  const { all } = await runPnpm(tempDir, {
148485
148522
  signal: options.signal,
148486
148523
  context: options.context
148487
148524
  });
148525
+ console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
148488
148526
  if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
148489
148527
  const tempNodeModules = (0, node_path.join)(tempDir, "node_modules");
148490
148528
  if ((0, node_fs.existsSync)(nodeModulesPath)) await (0, node_fs_promises.rm)(nodeModulesPath, {
148491
148529
  recursive: true,
148492
148530
  force: true
148493
148531
  }).catch(() => {});
148532
+ const renameStart = Date.now();
148494
148533
  await (0, node_fs_promises.rename)(tempNodeModules, nodeModulesPath);
148495
- console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
148534
+ console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
148496
148535
  } catch (err) {
148497
148536
  console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
148498
148537
  if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);
package/dist/index.mjs CHANGED
@@ -1,10 +1,10 @@
1
- import { a as __require, i as __reExport, o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-kImr3pkf.mjs";
1
+ import { a as __require, i as __reExport, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "./chunk-kImr3pkf.mjs";
2
2
  import { hostname } from "os";
3
3
  import { normalize } from "path";
4
4
  import { formatWithOptions, types } from "util";
5
5
  import path, { basename, delimiter, dirname, join } from "node:path";
6
- import { arch, constants, platform, tmpdir } from "node:os";
7
6
  import { fileURLToPath, pathToFileURL } from "node:url";
7
+ import { arch, constants, platform, tmpdir } from "node:os";
8
8
  import { appendFileSync, createReadStream, createWriteStream, existsSync, readFileSync, readdirSync, statSync, writeFileSync } from "node:fs";
9
9
  import http from "node:http";
10
10
  import { webcrypto } from "node:crypto";
@@ -45213,7 +45213,16 @@ object({
45213
45213
  pipelines: optional(array(SaveLocationValidator), [])
45214
45214
  });
45215
45215
  //#endregion
45216
+ //#region ../../node_modules/tsdown/esm-shims.js
45217
+ var getFilename, getDirname, __dirname;
45218
+ var init_esm_shims = __esmMin((() => {
45219
+ getFilename = () => fileURLToPath(import.meta.url);
45220
+ getDirname = () => path.dirname(getFilename());
45221
+ __dirname = /* @__PURE__ */ getDirname();
45222
+ }));
45223
+ //#endregion
45216
45224
  //#region ../../packages/core-node/src/context.ts
45225
+ init_esm_shims();
45217
45226
  const _dirname = typeof __dirname !== "undefined" ? __dirname : typeof import.meta !== "undefined" && import.meta.url ? dirname(fileURLToPath(import.meta.url)) : process.cwd();
45218
45227
  const isDev = process.env.NODE_ENV === "development";
45219
45228
  /**
@@ -111114,6 +111123,7 @@ var require_lib$9 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
111114
111123
  //#endregion
111115
111124
  //#region ../../node_modules/@npmcli/run-script/lib/set-path.js
111116
111125
  var require_set_path = /* @__PURE__ */ __commonJSMin(((exports, module) => {
111126
+ init_esm_shims();
111117
111127
  const { log } = require_lib$29();
111118
111128
  const { resolve: resolve$4, dirname: dirname$2, delimiter: delimiter$1 } = __require("path");
111119
111129
  const nodeGypPath = resolve$4(__dirname, "../lib/node-gyp-bin");
@@ -148285,11 +148295,13 @@ async function withLock(key, fn) {
148285
148295
  * Centralized in core-node to avoid circular dependencies.
148286
148296
  */
148287
148297
  async function fetchPackage(packageName, versionOrRange, options) {
148298
+ const start = Date.now();
148288
148299
  if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
148289
148300
  if (packageName.startsWith("@pipelab/")) {
148301
+ const localStart = Date.now();
148290
148302
  const local = await tryResolveMonorepoPackage(packageName);
148291
148303
  if (local) {
148292
- console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
148304
+ console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
148293
148305
  return {
148294
148306
  ...local,
148295
148307
  resolvedVersion: "workspace"
@@ -148301,6 +148313,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148301
148313
  const baseDir = ctx.getPackagesPath(packageName);
148302
148314
  let resolvedVersion;
148303
148315
  console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
148316
+ const resolveStart = Date.now();
148304
148317
  try {
148305
148318
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
148306
148319
  let packumentPromise = packumentRequests.get(packageName);
@@ -148314,22 +148327,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
148314
148327
  const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
148315
148328
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
148316
148329
  resolvedVersion = foundVersion;
148317
- console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
148330
+ console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
148318
148331
  } catch (error) {
148319
- console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
148332
+ console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
148333
+ const fallbackStart = Date.now();
148320
148334
  const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
148321
- if (fallbackVersion) resolvedVersion = fallbackVersion;
148322
- else throw error;
148335
+ if (fallbackVersion) {
148336
+ resolvedVersion = fallbackVersion;
148337
+ console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
148338
+ } else throw error;
148323
148339
  }
148324
148340
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
148325
148341
  const packageDir = join(baseDir, resolvedVersion);
148326
- if (options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir)) return {
148327
- packageDir,
148328
- resolvedVersion
148329
- };
148342
+ const checkStart = Date.now();
148343
+ const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
148344
+ const checkDuration = Date.now() - checkStart;
148345
+ if (isInstalled) {
148346
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
148347
+ return {
148348
+ packageDir,
148349
+ resolvedVersion
148350
+ };
148351
+ }
148330
148352
  return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
148331
148353
  if (!isPackageComplete(packageDir)) {
148332
148354
  console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
148355
+ const downloadStart = Date.now();
148333
148356
  const tempDir = join(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
148334
148357
  await mkdir(tempDir, { recursive: true });
148335
148358
  try {
@@ -148345,6 +148368,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148345
148368
  if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
148346
148369
  else throw err;
148347
148370
  }
148371
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
148348
148372
  } catch (err) {
148349
148373
  await rm(tempDir, {
148350
148374
  recursive: true,
@@ -148353,8 +148377,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
148353
148377
  throw err;
148354
148378
  }
148355
148379
  }
148380
+ const entryStart = Date.now();
148356
148381
  const entryPoint = await resolveEntryPoint(packageDir, packageName);
148357
- if (options?.installDeps) await installDependencies(packageDir, packageName, options);
148382
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
148383
+ if (options?.installDeps) {
148384
+ const depsStart = Date.now();
148385
+ await installDependencies(packageDir, packageName, options);
148386
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
148387
+ }
148388
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
148358
148389
  return {
148359
148390
  packageDir,
148360
148391
  resolvedVersion,
@@ -148393,10 +148424,14 @@ async function runPnpm(cwd, options) {
148393
148424
  * Installs a specific version of Node.js if not already present.
148394
148425
  */
148395
148426
  async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148427
+ const checkStart = Date.now();
148396
148428
  const isWindows = process.platform === "win32";
148397
148429
  const nodeDir = context.getThirdPartyPath("node", version);
148398
148430
  const finalNodePath = join(nodeDir, isWindows ? "node.exe" : "bin/node");
148399
- if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148431
+ if (isNodeJSComplete(finalNodePath)) {
148432
+ console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
148433
+ return finalNodePath;
148434
+ }
148400
148435
  return withLock(`node:${version}`, async () => {
148401
148436
  if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148402
148437
  const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
@@ -148408,9 +148443,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148408
148443
  const archivePath = join(tempDir, fileName);
148409
148444
  sendStartupProgress(`Downloading Node.js v${version}...`);
148410
148445
  console.log(`Downloading Node.js from ${downloadUrl}...`);
148446
+ const dlStart = Date.now();
148411
148447
  await downloadFile(downloadUrl, archivePath);
148448
+ console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
148412
148449
  sendStartupProgress(`Extracting Node.js v${version}...`);
148413
148450
  console.log(`Extracting Node.js to ${tempDir}...`);
148451
+ const extStart = Date.now();
148414
148452
  const extractTempDir = join(tempDir, "extracted");
148415
148453
  await mkdir(extractTempDir, { recursive: true });
148416
148454
  if (extension === "zip") await extractZip(archivePath, extractTempDir);
@@ -148435,6 +148473,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148435
148473
  if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
148436
148474
  else throw err;
148437
148475
  }
148476
+ console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
148438
148477
  } finally {
148439
148478
  await rm(tempNodeDir, {
148440
148479
  recursive: true,
@@ -148445,6 +148484,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148445
148484
  force: true
148446
148485
  }).catch(() => {});
148447
148486
  }
148487
+ console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
148448
148488
  return finalNodePath;
148449
148489
  });
148450
148490
  }
@@ -148452,16 +148492,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148452
148492
  * Installs the PNPM package from npm if not already present.
148453
148493
  */
148454
148494
  async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
148495
+ const checkStart = Date.now();
148455
148496
  const pnpmPath = join(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
148456
- if (existsSync(pnpmPath)) return pnpmPath;
148497
+ if (existsSync(pnpmPath)) {
148498
+ console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
148499
+ return pnpmPath;
148500
+ }
148457
148501
  return withLock(`pnpm:${version}`, async () => {
148458
148502
  if (existsSync(pnpmPath)) return pnpmPath;
148459
148503
  sendStartupProgress(`Checking PNPM v${version}...`);
148460
148504
  const { packageDir } = await fetchPackage("pnpm", version, { context });
148505
+ console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
148461
148506
  return join(packageDir, "bin", "pnpm.cjs");
148462
148507
  });
148463
148508
  }
148464
148509
  async function installDependencies(packageDir, packageName, options) {
148510
+ const start = Date.now();
148465
148511
  const nodeModulesPath = join(packageDir, "node_modules");
148466
148512
  if (isDependenciesInstalledSync(packageDir)) {
148467
148513
  console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
@@ -148472,18 +148518,21 @@ async function installDependencies(packageDir, packageName, options) {
148472
148518
  try {
148473
148519
  await cp(join(packageDir, "package.json"), join(tempDir, "package.json"));
148474
148520
  console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
148521
+ const pnpmStart = Date.now();
148475
148522
  const { all } = await runPnpm(tempDir, {
148476
148523
  signal: options.signal,
148477
148524
  context: options.context
148478
148525
  });
148526
+ console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
148479
148527
  if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
148480
148528
  const tempNodeModules = join(tempDir, "node_modules");
148481
148529
  if (existsSync(nodeModulesPath)) await rm(nodeModulesPath, {
148482
148530
  recursive: true,
148483
148531
  force: true
148484
148532
  }).catch(() => {});
148533
+ const renameStart = Date.now();
148485
148534
  await rename(tempNodeModules, nodeModulesPath);
148486
- console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
148535
+ console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
148487
148536
  } catch (err) {
148488
148537
  console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
148489
148538
  if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);