@pipelab/plugin-netlify 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 +3 -3
package/dist/index.cjs
CHANGED
|
@@ -148221,11 +148221,13 @@ async function withLock(key, fn) {
|
|
|
148221
148221
|
* Centralized in core-node to avoid circular dependencies.
|
|
148222
148222
|
*/
|
|
148223
148223
|
async function fetchPackage(packageName, versionOrRange, options) {
|
|
148224
|
+
const start = Date.now();
|
|
148224
148225
|
if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
|
|
148225
148226
|
if (packageName.startsWith("@pipelab/")) {
|
|
148227
|
+
const localStart = Date.now();
|
|
148226
148228
|
const local = await tryResolveMonorepoPackage(packageName);
|
|
148227
148229
|
if (local) {
|
|
148228
|
-
console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
|
|
148230
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
|
|
148229
148231
|
return {
|
|
148230
148232
|
...local,
|
|
148231
148233
|
resolvedVersion: "workspace"
|
|
@@ -148237,6 +148239,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148237
148239
|
const baseDir = ctx.getPackagesPath(packageName);
|
|
148238
148240
|
let resolvedVersion;
|
|
148239
148241
|
console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
|
|
148242
|
+
const resolveStart = Date.now();
|
|
148240
148243
|
try {
|
|
148241
148244
|
const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
|
|
148242
148245
|
let packumentPromise = packumentRequests.get(packageName);
|
|
@@ -148250,22 +148253,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148250
148253
|
const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
148251
148254
|
if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
|
|
148252
148255
|
resolvedVersion = foundVersion;
|
|
148253
|
-
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
|
|
148256
|
+
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
|
|
148254
148257
|
} catch (error) {
|
|
148255
|
-
console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
|
|
148258
|
+
console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
148259
|
+
const fallbackStart = Date.now();
|
|
148256
148260
|
const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
|
|
148257
|
-
if (fallbackVersion)
|
|
148258
|
-
|
|
148261
|
+
if (fallbackVersion) {
|
|
148262
|
+
resolvedVersion = fallbackVersion;
|
|
148263
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
148264
|
+
} else throw error;
|
|
148259
148265
|
}
|
|
148260
148266
|
const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
|
|
148261
148267
|
const packageDir = (0, node_path.join)(baseDir, resolvedVersion);
|
|
148262
|
-
|
|
148263
|
-
|
|
148264
|
-
|
|
148265
|
-
|
|
148268
|
+
const checkStart = Date.now();
|
|
148269
|
+
const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
|
|
148270
|
+
const checkDuration = Date.now() - checkStart;
|
|
148271
|
+
if (isInstalled) {
|
|
148272
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
|
|
148273
|
+
return {
|
|
148274
|
+
packageDir,
|
|
148275
|
+
resolvedVersion
|
|
148276
|
+
};
|
|
148277
|
+
}
|
|
148266
148278
|
return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
|
|
148267
148279
|
if (!isPackageComplete(packageDir)) {
|
|
148268
148280
|
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
|
|
148281
|
+
const downloadStart = Date.now();
|
|
148269
148282
|
const tempDir = (0, node_path.join)(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
|
|
148270
148283
|
await (0, node_fs_promises.mkdir)(tempDir, { recursive: true });
|
|
148271
148284
|
try {
|
|
@@ -148281,6 +148294,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148281
148294
|
if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
|
|
148282
148295
|
else throw err;
|
|
148283
148296
|
}
|
|
148297
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
|
|
148284
148298
|
} catch (err) {
|
|
148285
148299
|
await (0, node_fs_promises.rm)(tempDir, {
|
|
148286
148300
|
recursive: true,
|
|
@@ -148289,8 +148303,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148289
148303
|
throw err;
|
|
148290
148304
|
}
|
|
148291
148305
|
}
|
|
148306
|
+
const entryStart = Date.now();
|
|
148292
148307
|
const entryPoint = await resolveEntryPoint(packageDir, packageName);
|
|
148293
|
-
|
|
148308
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
|
|
148309
|
+
if (options?.installDeps) {
|
|
148310
|
+
const depsStart = Date.now();
|
|
148311
|
+
await installDependencies(packageDir, packageName, options);
|
|
148312
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
|
|
148313
|
+
}
|
|
148314
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
|
|
148294
148315
|
return {
|
|
148295
148316
|
packageDir,
|
|
148296
148317
|
resolvedVersion,
|
|
@@ -148329,10 +148350,14 @@ async function runPnpm(cwd, options) {
|
|
|
148329
148350
|
* Installs a specific version of Node.js if not already present.
|
|
148330
148351
|
*/
|
|
148331
148352
|
async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
148353
|
+
const checkStart = Date.now();
|
|
148332
148354
|
const isWindows = process.platform === "win32";
|
|
148333
148355
|
const nodeDir = context.getThirdPartyPath("node", version);
|
|
148334
148356
|
const finalNodePath = (0, node_path.join)(nodeDir, isWindows ? "node.exe" : "bin/node");
|
|
148335
|
-
if (isNodeJSComplete(finalNodePath))
|
|
148357
|
+
if (isNodeJSComplete(finalNodePath)) {
|
|
148358
|
+
console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
|
|
148359
|
+
return finalNodePath;
|
|
148360
|
+
}
|
|
148336
148361
|
return withLock(`node:${version}`, async () => {
|
|
148337
148362
|
if (isNodeJSComplete(finalNodePath)) return finalNodePath;
|
|
148338
148363
|
const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
|
|
@@ -148344,9 +148369,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148344
148369
|
const archivePath = (0, node_path.join)(tempDir, fileName);
|
|
148345
148370
|
sendStartupProgress(`Downloading Node.js v${version}...`);
|
|
148346
148371
|
console.log(`Downloading Node.js from ${downloadUrl}...`);
|
|
148372
|
+
const dlStart = Date.now();
|
|
148347
148373
|
await downloadFile(downloadUrl, archivePath);
|
|
148374
|
+
console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
|
|
148348
148375
|
sendStartupProgress(`Extracting Node.js v${version}...`);
|
|
148349
148376
|
console.log(`Extracting Node.js to ${tempDir}...`);
|
|
148377
|
+
const extStart = Date.now();
|
|
148350
148378
|
const extractTempDir = (0, node_path.join)(tempDir, "extracted");
|
|
148351
148379
|
await (0, node_fs_promises.mkdir)(extractTempDir, { recursive: true });
|
|
148352
148380
|
if (extension === "zip") await extractZip(archivePath, extractTempDir);
|
|
@@ -148371,6 +148399,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148371
148399
|
if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
|
|
148372
148400
|
else throw err;
|
|
148373
148401
|
}
|
|
148402
|
+
console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
|
|
148374
148403
|
} finally {
|
|
148375
148404
|
await (0, node_fs_promises.rm)(tempNodeDir, {
|
|
148376
148405
|
recursive: true,
|
|
@@ -148381,6 +148410,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148381
148410
|
force: true
|
|
148382
148411
|
}).catch(() => {});
|
|
148383
148412
|
}
|
|
148413
|
+
console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
|
|
148384
148414
|
return finalNodePath;
|
|
148385
148415
|
});
|
|
148386
148416
|
}
|
|
@@ -148388,16 +148418,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148388
148418
|
* Installs the PNPM package from npm if not already present.
|
|
148389
148419
|
*/
|
|
148390
148420
|
async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
|
|
148421
|
+
const checkStart = Date.now();
|
|
148391
148422
|
const pnpmPath = (0, node_path.join)(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
|
|
148392
|
-
if ((0, node_fs.existsSync)(pnpmPath))
|
|
148423
|
+
if ((0, node_fs.existsSync)(pnpmPath)) {
|
|
148424
|
+
console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
|
|
148425
|
+
return pnpmPath;
|
|
148426
|
+
}
|
|
148393
148427
|
return withLock(`pnpm:${version}`, async () => {
|
|
148394
148428
|
if ((0, node_fs.existsSync)(pnpmPath)) return pnpmPath;
|
|
148395
148429
|
sendStartupProgress(`Checking PNPM v${version}...`);
|
|
148396
148430
|
const { packageDir } = await fetchPackage("pnpm", version, { context });
|
|
148431
|
+
console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
|
|
148397
148432
|
return (0, node_path.join)(packageDir, "bin", "pnpm.cjs");
|
|
148398
148433
|
});
|
|
148399
148434
|
}
|
|
148400
148435
|
async function installDependencies(packageDir, packageName, options) {
|
|
148436
|
+
const start = Date.now();
|
|
148401
148437
|
const nodeModulesPath = (0, node_path.join)(packageDir, "node_modules");
|
|
148402
148438
|
if (isDependenciesInstalledSync(packageDir)) {
|
|
148403
148439
|
console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
|
|
@@ -148408,18 +148444,21 @@ async function installDependencies(packageDir, packageName, options) {
|
|
|
148408
148444
|
try {
|
|
148409
148445
|
await (0, node_fs_promises.cp)((0, node_path.join)(packageDir, "package.json"), (0, node_path.join)(tempDir, "package.json"));
|
|
148410
148446
|
console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
|
|
148447
|
+
const pnpmStart = Date.now();
|
|
148411
148448
|
const { all } = await runPnpm(tempDir, {
|
|
148412
148449
|
signal: options.signal,
|
|
148413
148450
|
context: options.context
|
|
148414
148451
|
});
|
|
148452
|
+
console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
|
|
148415
148453
|
if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
|
|
148416
148454
|
const tempNodeModules = (0, node_path.join)(tempDir, "node_modules");
|
|
148417
148455
|
if ((0, node_fs.existsSync)(nodeModulesPath)) await (0, node_fs_promises.rm)(nodeModulesPath, {
|
|
148418
148456
|
recursive: true,
|
|
148419
148457
|
force: true
|
|
148420
148458
|
}).catch(() => {});
|
|
148459
|
+
const renameStart = Date.now();
|
|
148421
148460
|
await (0, node_fs_promises.rename)(tempNodeModules, nodeModulesPath);
|
|
148422
|
-
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
|
|
148461
|
+
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
|
|
148423
148462
|
} catch (err) {
|
|
148424
148463
|
console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
|
|
148425
148464
|
if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);
|
package/dist/index.mjs
CHANGED
|
@@ -148222,11 +148222,13 @@ async function withLock(key, fn) {
|
|
|
148222
148222
|
* Centralized in core-node to avoid circular dependencies.
|
|
148223
148223
|
*/
|
|
148224
148224
|
async function fetchPackage(packageName, versionOrRange, options) {
|
|
148225
|
+
const start = Date.now();
|
|
148225
148226
|
if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
|
|
148226
148227
|
if (packageName.startsWith("@pipelab/")) {
|
|
148228
|
+
const localStart = Date.now();
|
|
148227
148229
|
const local = await tryResolveMonorepoPackage(packageName);
|
|
148228
148230
|
if (local) {
|
|
148229
|
-
console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
|
|
148231
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
|
|
148230
148232
|
return {
|
|
148231
148233
|
...local,
|
|
148232
148234
|
resolvedVersion: "workspace"
|
|
@@ -148238,6 +148240,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148238
148240
|
const baseDir = ctx.getPackagesPath(packageName);
|
|
148239
148241
|
let resolvedVersion;
|
|
148240
148242
|
console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
|
|
148243
|
+
const resolveStart = Date.now();
|
|
148241
148244
|
try {
|
|
148242
148245
|
const cachePath = join(ctx.userDataPath, "cache", "pacote");
|
|
148243
148246
|
let packumentPromise = packumentRequests.get(packageName);
|
|
@@ -148251,22 +148254,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148251
148254
|
const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
148252
148255
|
if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
|
|
148253
148256
|
resolvedVersion = foundVersion;
|
|
148254
|
-
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
|
|
148257
|
+
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
|
|
148255
148258
|
} catch (error) {
|
|
148256
|
-
console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
|
|
148259
|
+
console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
148260
|
+
const fallbackStart = Date.now();
|
|
148257
148261
|
const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
|
|
148258
|
-
if (fallbackVersion)
|
|
148259
|
-
|
|
148262
|
+
if (fallbackVersion) {
|
|
148263
|
+
resolvedVersion = fallbackVersion;
|
|
148264
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
148265
|
+
} else throw error;
|
|
148260
148266
|
}
|
|
148261
148267
|
const cachePath = join(ctx.userDataPath, "cache", "pacote");
|
|
148262
148268
|
const packageDir = join(baseDir, resolvedVersion);
|
|
148263
|
-
|
|
148264
|
-
|
|
148265
|
-
|
|
148266
|
-
|
|
148269
|
+
const checkStart = Date.now();
|
|
148270
|
+
const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
|
|
148271
|
+
const checkDuration = Date.now() - checkStart;
|
|
148272
|
+
if (isInstalled) {
|
|
148273
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
|
|
148274
|
+
return {
|
|
148275
|
+
packageDir,
|
|
148276
|
+
resolvedVersion
|
|
148277
|
+
};
|
|
148278
|
+
}
|
|
148267
148279
|
return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
|
|
148268
148280
|
if (!isPackageComplete(packageDir)) {
|
|
148269
148281
|
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
|
|
148282
|
+
const downloadStart = Date.now();
|
|
148270
148283
|
const tempDir = join(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
|
|
148271
148284
|
await mkdir(tempDir, { recursive: true });
|
|
148272
148285
|
try {
|
|
@@ -148282,6 +148295,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148282
148295
|
if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
|
|
148283
148296
|
else throw err;
|
|
148284
148297
|
}
|
|
148298
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
|
|
148285
148299
|
} catch (err) {
|
|
148286
148300
|
await rm(tempDir, {
|
|
148287
148301
|
recursive: true,
|
|
@@ -148290,8 +148304,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148290
148304
|
throw err;
|
|
148291
148305
|
}
|
|
148292
148306
|
}
|
|
148307
|
+
const entryStart = Date.now();
|
|
148293
148308
|
const entryPoint = await resolveEntryPoint(packageDir, packageName);
|
|
148294
|
-
|
|
148309
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
|
|
148310
|
+
if (options?.installDeps) {
|
|
148311
|
+
const depsStart = Date.now();
|
|
148312
|
+
await installDependencies(packageDir, packageName, options);
|
|
148313
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
|
|
148314
|
+
}
|
|
148315
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
|
|
148295
148316
|
return {
|
|
148296
148317
|
packageDir,
|
|
148297
148318
|
resolvedVersion,
|
|
@@ -148330,10 +148351,14 @@ async function runPnpm(cwd, options) {
|
|
|
148330
148351
|
* Installs a specific version of Node.js if not already present.
|
|
148331
148352
|
*/
|
|
148332
148353
|
async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
148354
|
+
const checkStart = Date.now();
|
|
148333
148355
|
const isWindows = process.platform === "win32";
|
|
148334
148356
|
const nodeDir = context.getThirdPartyPath("node", version);
|
|
148335
148357
|
const finalNodePath = join(nodeDir, isWindows ? "node.exe" : "bin/node");
|
|
148336
|
-
if (isNodeJSComplete(finalNodePath))
|
|
148358
|
+
if (isNodeJSComplete(finalNodePath)) {
|
|
148359
|
+
console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
|
|
148360
|
+
return finalNodePath;
|
|
148361
|
+
}
|
|
148337
148362
|
return withLock(`node:${version}`, async () => {
|
|
148338
148363
|
if (isNodeJSComplete(finalNodePath)) return finalNodePath;
|
|
148339
148364
|
const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
|
|
@@ -148345,9 +148370,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148345
148370
|
const archivePath = join(tempDir, fileName);
|
|
148346
148371
|
sendStartupProgress(`Downloading Node.js v${version}...`);
|
|
148347
148372
|
console.log(`Downloading Node.js from ${downloadUrl}...`);
|
|
148373
|
+
const dlStart = Date.now();
|
|
148348
148374
|
await downloadFile(downloadUrl, archivePath);
|
|
148375
|
+
console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
|
|
148349
148376
|
sendStartupProgress(`Extracting Node.js v${version}...`);
|
|
148350
148377
|
console.log(`Extracting Node.js to ${tempDir}...`);
|
|
148378
|
+
const extStart = Date.now();
|
|
148351
148379
|
const extractTempDir = join(tempDir, "extracted");
|
|
148352
148380
|
await mkdir(extractTempDir, { recursive: true });
|
|
148353
148381
|
if (extension === "zip") await extractZip(archivePath, extractTempDir);
|
|
@@ -148372,6 +148400,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148372
148400
|
if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
|
|
148373
148401
|
else throw err;
|
|
148374
148402
|
}
|
|
148403
|
+
console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
|
|
148375
148404
|
} finally {
|
|
148376
148405
|
await rm(tempNodeDir, {
|
|
148377
148406
|
recursive: true,
|
|
@@ -148382,6 +148411,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148382
148411
|
force: true
|
|
148383
148412
|
}).catch(() => {});
|
|
148384
148413
|
}
|
|
148414
|
+
console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
|
|
148385
148415
|
return finalNodePath;
|
|
148386
148416
|
});
|
|
148387
148417
|
}
|
|
@@ -148389,16 +148419,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148389
148419
|
* Installs the PNPM package from npm if not already present.
|
|
148390
148420
|
*/
|
|
148391
148421
|
async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
|
|
148422
|
+
const checkStart = Date.now();
|
|
148392
148423
|
const pnpmPath = join(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
|
|
148393
|
-
if (existsSync(pnpmPath))
|
|
148424
|
+
if (existsSync(pnpmPath)) {
|
|
148425
|
+
console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
|
|
148426
|
+
return pnpmPath;
|
|
148427
|
+
}
|
|
148394
148428
|
return withLock(`pnpm:${version}`, async () => {
|
|
148395
148429
|
if (existsSync(pnpmPath)) return pnpmPath;
|
|
148396
148430
|
sendStartupProgress(`Checking PNPM v${version}...`);
|
|
148397
148431
|
const { packageDir } = await fetchPackage("pnpm", version, { context });
|
|
148432
|
+
console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
|
|
148398
148433
|
return join(packageDir, "bin", "pnpm.cjs");
|
|
148399
148434
|
});
|
|
148400
148435
|
}
|
|
148401
148436
|
async function installDependencies(packageDir, packageName, options) {
|
|
148437
|
+
const start = Date.now();
|
|
148402
148438
|
const nodeModulesPath = join(packageDir, "node_modules");
|
|
148403
148439
|
if (isDependenciesInstalledSync(packageDir)) {
|
|
148404
148440
|
console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
|
|
@@ -148409,18 +148445,21 @@ async function installDependencies(packageDir, packageName, options) {
|
|
|
148409
148445
|
try {
|
|
148410
148446
|
await cp(join(packageDir, "package.json"), join(tempDir, "package.json"));
|
|
148411
148447
|
console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
|
|
148448
|
+
const pnpmStart = Date.now();
|
|
148412
148449
|
const { all } = await runPnpm(tempDir, {
|
|
148413
148450
|
signal: options.signal,
|
|
148414
148451
|
context: options.context
|
|
148415
148452
|
});
|
|
148453
|
+
console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
|
|
148416
148454
|
if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
|
|
148417
148455
|
const tempNodeModules = join(tempDir, "node_modules");
|
|
148418
148456
|
if (existsSync(nodeModulesPath)) await rm(nodeModulesPath, {
|
|
148419
148457
|
recursive: true,
|
|
148420
148458
|
force: true
|
|
148421
148459
|
}).catch(() => {});
|
|
148460
|
+
const renameStart = Date.now();
|
|
148422
148461
|
await rename(tempNodeModules, nodeModulesPath);
|
|
148423
|
-
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
|
|
148462
|
+
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
|
|
148424
148463
|
} catch (err) {
|
|
148425
148464
|
console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
|
|
148426
148465
|
if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);
|