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