@pipelab/plugin-poki 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
@@ -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
@@ -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, { delimiter, dirname, join } from "node:path";
6
- import { constants, tmpdir } from "node:os";
7
6
  import { fileURLToPath } from "node:url";
7
+ import { constants, 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";
@@ -45183,7 +45183,16 @@ object({
45183
45183
  pipelines: optional(array(SaveLocationValidator), [])
45184
45184
  });
45185
45185
  //#endregion
45186
+ //#region ../../node_modules/tsdown/esm-shims.js
45187
+ var getFilename, getDirname, __dirname;
45188
+ var init_esm_shims = __esmMin((() => {
45189
+ getFilename = () => fileURLToPath(import.meta.url);
45190
+ getDirname = () => path.dirname(getFilename());
45191
+ __dirname = /* @__PURE__ */ getDirname();
45192
+ }));
45193
+ //#endregion
45186
45194
  //#region ../../packages/core-node/src/context.ts
45195
+ init_esm_shims();
45187
45196
  const _dirname = typeof __dirname !== "undefined" ? __dirname : typeof import.meta !== "undefined" && import.meta.url ? dirname(fileURLToPath(import.meta.url)) : process.cwd();
45188
45197
  const isDev = process.env.NODE_ENV === "development";
45189
45198
  /**
@@ -111057,6 +111066,7 @@ var require_lib$9 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
111057
111066
  //#endregion
111058
111067
  //#region ../../node_modules/@npmcli/run-script/lib/set-path.js
111059
111068
  var require_set_path = /* @__PURE__ */ __commonJSMin(((exports, module) => {
111069
+ init_esm_shims();
111060
111070
  const { log } = require_lib$29();
111061
111071
  const { resolve: resolve$4, dirname: dirname$2, delimiter: delimiter$1 } = __require("path");
111062
111072
  const nodeGypPath = resolve$4(__dirname, "../lib/node-gyp-bin");
@@ -148228,11 +148238,13 @@ async function withLock(key, fn) {
148228
148238
  * Centralized in core-node to avoid circular dependencies.
148229
148239
  */
148230
148240
  async function fetchPackage(packageName, versionOrRange, options) {
148241
+ const start = Date.now();
148231
148242
  if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
148232
148243
  if (packageName.startsWith("@pipelab/")) {
148244
+ const localStart = Date.now();
148233
148245
  const local = await tryResolveMonorepoPackage(packageName);
148234
148246
  if (local) {
148235
- 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)`);
148236
148248
  return {
148237
148249
  ...local,
148238
148250
  resolvedVersion: "workspace"
@@ -148244,6 +148256,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148244
148256
  const baseDir = ctx.getPackagesPath(packageName);
148245
148257
  let resolvedVersion;
148246
148258
  console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
148259
+ const resolveStart = Date.now();
148247
148260
  try {
148248
148261
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
148249
148262
  let packumentPromise = packumentRequests.get(packageName);
@@ -148257,22 +148270,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
148257
148270
  const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
148258
148271
  if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
148259
148272
  resolvedVersion = foundVersion;
148260
- 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)`);
148261
148274
  } catch (error) {
148262
- 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();
148263
148277
  const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
148264
- if (fallbackVersion) resolvedVersion = fallbackVersion;
148265
- 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;
148266
148282
  }
148267
148283
  const cachePath = join(ctx.userDataPath, "cache", "pacote");
148268
148284
  const packageDir = join(baseDir, resolvedVersion);
148269
- if (options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir)) return {
148270
- packageDir,
148271
- resolvedVersion
148272
- };
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
+ }
148273
148295
  return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
148274
148296
  if (!isPackageComplete(packageDir)) {
148275
148297
  console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
148298
+ const downloadStart = Date.now();
148276
148299
  const tempDir = join(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
148277
148300
  await mkdir(tempDir, { recursive: true });
148278
148301
  try {
@@ -148288,6 +148311,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
148288
148311
  if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
148289
148312
  else throw err;
148290
148313
  }
148314
+ console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
148291
148315
  } catch (err) {
148292
148316
  await rm(tempDir, {
148293
148317
  recursive: true,
@@ -148296,8 +148320,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
148296
148320
  throw err;
148297
148321
  }
148298
148322
  }
148323
+ const entryStart = Date.now();
148299
148324
  const entryPoint = await resolveEntryPoint(packageDir, packageName);
148300
- 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`);
148301
148332
  return {
148302
148333
  packageDir,
148303
148334
  resolvedVersion,
@@ -148336,10 +148367,14 @@ async function runPnpm(cwd, options) {
148336
148367
  * Installs a specific version of Node.js if not already present.
148337
148368
  */
148338
148369
  async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148370
+ const checkStart = Date.now();
148339
148371
  const isWindows = process.platform === "win32";
148340
148372
  const nodeDir = context.getThirdPartyPath("node", version);
148341
148373
  const finalNodePath = join(nodeDir, isWindows ? "node.exe" : "bin/node");
148342
- 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
+ }
148343
148378
  return withLock(`node:${version}`, async () => {
148344
148379
  if (isNodeJSComplete(finalNodePath)) return finalNodePath;
148345
148380
  const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
@@ -148351,9 +148386,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148351
148386
  const archivePath = join(tempDir, fileName);
148352
148387
  sendStartupProgress(`Downloading Node.js v${version}...`);
148353
148388
  console.log(`Downloading Node.js from ${downloadUrl}...`);
148389
+ const dlStart = Date.now();
148354
148390
  await downloadFile(downloadUrl, archivePath);
148391
+ console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
148355
148392
  sendStartupProgress(`Extracting Node.js v${version}...`);
148356
148393
  console.log(`Extracting Node.js to ${tempDir}...`);
148394
+ const extStart = Date.now();
148357
148395
  const extractTempDir = join(tempDir, "extracted");
148358
148396
  await mkdir(extractTempDir, { recursive: true });
148359
148397
  if (extension === "zip") await extractZip(archivePath, extractTempDir);
@@ -148378,6 +148416,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148378
148416
  if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
148379
148417
  else throw err;
148380
148418
  }
148419
+ console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
148381
148420
  } finally {
148382
148421
  await rm(tempNodeDir, {
148383
148422
  recursive: true,
@@ -148388,6 +148427,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148388
148427
  force: true
148389
148428
  }).catch(() => {});
148390
148429
  }
148430
+ console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
148391
148431
  return finalNodePath;
148392
148432
  });
148393
148433
  }
@@ -148395,16 +148435,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
148395
148435
  * Installs the PNPM package from npm if not already present.
148396
148436
  */
148397
148437
  async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
148438
+ const checkStart = Date.now();
148398
148439
  const pnpmPath = join(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
148399
- 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
+ }
148400
148444
  return withLock(`pnpm:${version}`, async () => {
148401
148445
  if (existsSync(pnpmPath)) return pnpmPath;
148402
148446
  sendStartupProgress(`Checking PNPM v${version}...`);
148403
148447
  const { packageDir } = await fetchPackage("pnpm", version, { context });
148448
+ console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
148404
148449
  return join(packageDir, "bin", "pnpm.cjs");
148405
148450
  });
148406
148451
  }
148407
148452
  async function installDependencies(packageDir, packageName, options) {
148453
+ const start = Date.now();
148408
148454
  const nodeModulesPath = join(packageDir, "node_modules");
148409
148455
  if (isDependenciesInstalledSync(packageDir)) {
148410
148456
  console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
@@ -148415,18 +148461,21 @@ async function installDependencies(packageDir, packageName, options) {
148415
148461
  try {
148416
148462
  await cp(join(packageDir, "package.json"), join(tempDir, "package.json"));
148417
148463
  console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
148464
+ const pnpmStart = Date.now();
148418
148465
  const { all } = await runPnpm(tempDir, {
148419
148466
  signal: options.signal,
148420
148467
  context: options.context
148421
148468
  });
148469
+ console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
148422
148470
  if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
148423
148471
  const tempNodeModules = join(tempDir, "node_modules");
148424
148472
  if (existsSync(nodeModulesPath)) await rm(nodeModulesPath, {
148425
148473
  recursive: true,
148426
148474
  force: true
148427
148475
  }).catch(() => {});
148476
+ const renameStart = Date.now();
148428
148477
  await rename(tempNodeModules, nodeModulesPath);
148429
- 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).`);
148430
148479
  } catch (err) {
148431
148480
  console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
148432
148481
  if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);