@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 +52 -13
- package/dist/index.mjs +52 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
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)
|
|
148274
|
-
|
|
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
|
-
|
|
148279
|
-
|
|
148280
|
-
|
|
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
|
-
|
|
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))
|
|
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))
|
|
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)
|
|
148275
|
-
|
|
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
|
-
|
|
148280
|
-
|
|
148281
|
-
|
|
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
|
-
|
|
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))
|
|
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))
|
|
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}`);
|