@pipelab/plugin-discord 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 +4 -4
package/dist/index.cjs
CHANGED
|
@@ -148208,11 +148208,13 @@ async function withLock(key, fn) {
|
|
|
148208
148208
|
* Centralized in core-node to avoid circular dependencies.
|
|
148209
148209
|
*/
|
|
148210
148210
|
async function fetchPackage(packageName, versionOrRange, options) {
|
|
148211
|
+
const start = Date.now();
|
|
148211
148212
|
if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
|
|
148212
148213
|
if (packageName.startsWith("@pipelab/")) {
|
|
148214
|
+
const localStart = Date.now();
|
|
148213
148215
|
const local = await tryResolveMonorepoPackage(packageName);
|
|
148214
148216
|
if (local) {
|
|
148215
|
-
console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
|
|
148217
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
|
|
148216
148218
|
return {
|
|
148217
148219
|
...local,
|
|
148218
148220
|
resolvedVersion: "workspace"
|
|
@@ -148224,6 +148226,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148224
148226
|
const baseDir = ctx.getPackagesPath(packageName);
|
|
148225
148227
|
let resolvedVersion;
|
|
148226
148228
|
console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
|
|
148229
|
+
const resolveStart = Date.now();
|
|
148227
148230
|
try {
|
|
148228
148231
|
const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
|
|
148229
148232
|
let packumentPromise = packumentRequests.get(packageName);
|
|
@@ -148237,22 +148240,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148237
148240
|
const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
148238
148241
|
if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
|
|
148239
148242
|
resolvedVersion = foundVersion;
|
|
148240
|
-
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
|
|
148243
|
+
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
|
|
148241
148244
|
} catch (error) {
|
|
148242
|
-
console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
|
|
148245
|
+
console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
148246
|
+
const fallbackStart = Date.now();
|
|
148243
148247
|
const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
|
|
148244
|
-
if (fallbackVersion)
|
|
148245
|
-
|
|
148248
|
+
if (fallbackVersion) {
|
|
148249
|
+
resolvedVersion = fallbackVersion;
|
|
148250
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
148251
|
+
} else throw error;
|
|
148246
148252
|
}
|
|
148247
148253
|
const cachePath = (0, node_path.join)(ctx.userDataPath, "cache", "pacote");
|
|
148248
148254
|
const packageDir = (0, node_path.join)(baseDir, resolvedVersion);
|
|
148249
|
-
|
|
148250
|
-
|
|
148251
|
-
|
|
148252
|
-
|
|
148255
|
+
const checkStart = Date.now();
|
|
148256
|
+
const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
|
|
148257
|
+
const checkDuration = Date.now() - checkStart;
|
|
148258
|
+
if (isInstalled) {
|
|
148259
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
|
|
148260
|
+
return {
|
|
148261
|
+
packageDir,
|
|
148262
|
+
resolvedVersion
|
|
148263
|
+
};
|
|
148264
|
+
}
|
|
148253
148265
|
return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
|
|
148254
148266
|
if (!isPackageComplete(packageDir)) {
|
|
148255
148267
|
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
|
|
148268
|
+
const downloadStart = Date.now();
|
|
148256
148269
|
const tempDir = (0, node_path.join)(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
|
|
148257
148270
|
await (0, node_fs_promises.mkdir)(tempDir, { recursive: true });
|
|
148258
148271
|
try {
|
|
@@ -148268,6 +148281,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148268
148281
|
if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
|
|
148269
148282
|
else throw err;
|
|
148270
148283
|
}
|
|
148284
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
|
|
148271
148285
|
} catch (err) {
|
|
148272
148286
|
await (0, node_fs_promises.rm)(tempDir, {
|
|
148273
148287
|
recursive: true,
|
|
@@ -148276,8 +148290,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148276
148290
|
throw err;
|
|
148277
148291
|
}
|
|
148278
148292
|
}
|
|
148293
|
+
const entryStart = Date.now();
|
|
148279
148294
|
const entryPoint = await resolveEntryPoint(packageDir, packageName);
|
|
148280
|
-
|
|
148295
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
|
|
148296
|
+
if (options?.installDeps) {
|
|
148297
|
+
const depsStart = Date.now();
|
|
148298
|
+
await installDependencies(packageDir, packageName, options);
|
|
148299
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
|
|
148300
|
+
}
|
|
148301
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
|
|
148281
148302
|
return {
|
|
148282
148303
|
packageDir,
|
|
148283
148304
|
resolvedVersion,
|
|
@@ -148316,10 +148337,14 @@ async function runPnpm(cwd, options) {
|
|
|
148316
148337
|
* Installs a specific version of Node.js if not already present.
|
|
148317
148338
|
*/
|
|
148318
148339
|
async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
148340
|
+
const checkStart = Date.now();
|
|
148319
148341
|
const isWindows = process.platform === "win32";
|
|
148320
148342
|
const nodeDir = context.getThirdPartyPath("node", version);
|
|
148321
148343
|
const finalNodePath = (0, node_path.join)(nodeDir, isWindows ? "node.exe" : "bin/node");
|
|
148322
|
-
if (isNodeJSComplete(finalNodePath))
|
|
148344
|
+
if (isNodeJSComplete(finalNodePath)) {
|
|
148345
|
+
console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
|
|
148346
|
+
return finalNodePath;
|
|
148347
|
+
}
|
|
148323
148348
|
return withLock(`node:${version}`, async () => {
|
|
148324
148349
|
if (isNodeJSComplete(finalNodePath)) return finalNodePath;
|
|
148325
148350
|
const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
|
|
@@ -148331,9 +148356,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148331
148356
|
const archivePath = (0, node_path.join)(tempDir, fileName);
|
|
148332
148357
|
sendStartupProgress(`Downloading Node.js v${version}...`);
|
|
148333
148358
|
console.log(`Downloading Node.js from ${downloadUrl}...`);
|
|
148359
|
+
const dlStart = Date.now();
|
|
148334
148360
|
await downloadFile(downloadUrl, archivePath);
|
|
148361
|
+
console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
|
|
148335
148362
|
sendStartupProgress(`Extracting Node.js v${version}...`);
|
|
148336
148363
|
console.log(`Extracting Node.js to ${tempDir}...`);
|
|
148364
|
+
const extStart = Date.now();
|
|
148337
148365
|
const extractTempDir = (0, node_path.join)(tempDir, "extracted");
|
|
148338
148366
|
await (0, node_fs_promises.mkdir)(extractTempDir, { recursive: true });
|
|
148339
148367
|
if (extension === "zip") await extractZip(archivePath, extractTempDir);
|
|
@@ -148358,6 +148386,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148358
148386
|
if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
|
|
148359
148387
|
else throw err;
|
|
148360
148388
|
}
|
|
148389
|
+
console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
|
|
148361
148390
|
} finally {
|
|
148362
148391
|
await (0, node_fs_promises.rm)(tempNodeDir, {
|
|
148363
148392
|
recursive: true,
|
|
@@ -148368,6 +148397,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148368
148397
|
force: true
|
|
148369
148398
|
}).catch(() => {});
|
|
148370
148399
|
}
|
|
148400
|
+
console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
|
|
148371
148401
|
return finalNodePath;
|
|
148372
148402
|
});
|
|
148373
148403
|
}
|
|
@@ -148375,16 +148405,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148375
148405
|
* Installs the PNPM package from npm if not already present.
|
|
148376
148406
|
*/
|
|
148377
148407
|
async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
|
|
148408
|
+
const checkStart = Date.now();
|
|
148378
148409
|
const pnpmPath = (0, node_path.join)(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
|
|
148379
|
-
if ((0, node_fs.existsSync)(pnpmPath))
|
|
148410
|
+
if ((0, node_fs.existsSync)(pnpmPath)) {
|
|
148411
|
+
console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
|
|
148412
|
+
return pnpmPath;
|
|
148413
|
+
}
|
|
148380
148414
|
return withLock(`pnpm:${version}`, async () => {
|
|
148381
148415
|
if ((0, node_fs.existsSync)(pnpmPath)) return pnpmPath;
|
|
148382
148416
|
sendStartupProgress(`Checking PNPM v${version}...`);
|
|
148383
148417
|
const { packageDir } = await fetchPackage("pnpm", version, { context });
|
|
148418
|
+
console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
|
|
148384
148419
|
return (0, node_path.join)(packageDir, "bin", "pnpm.cjs");
|
|
148385
148420
|
});
|
|
148386
148421
|
}
|
|
148387
148422
|
async function installDependencies(packageDir, packageName, options) {
|
|
148423
|
+
const start = Date.now();
|
|
148388
148424
|
const nodeModulesPath = (0, node_path.join)(packageDir, "node_modules");
|
|
148389
148425
|
if (isDependenciesInstalledSync(packageDir)) {
|
|
148390
148426
|
console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
|
|
@@ -148395,18 +148431,21 @@ async function installDependencies(packageDir, packageName, options) {
|
|
|
148395
148431
|
try {
|
|
148396
148432
|
await (0, node_fs_promises.cp)((0, node_path.join)(packageDir, "package.json"), (0, node_path.join)(tempDir, "package.json"));
|
|
148397
148433
|
console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
|
|
148434
|
+
const pnpmStart = Date.now();
|
|
148398
148435
|
const { all } = await runPnpm(tempDir, {
|
|
148399
148436
|
signal: options.signal,
|
|
148400
148437
|
context: options.context
|
|
148401
148438
|
});
|
|
148439
|
+
console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
|
|
148402
148440
|
if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
|
|
148403
148441
|
const tempNodeModules = (0, node_path.join)(tempDir, "node_modules");
|
|
148404
148442
|
if ((0, node_fs.existsSync)(nodeModulesPath)) await (0, node_fs_promises.rm)(nodeModulesPath, {
|
|
148405
148443
|
recursive: true,
|
|
148406
148444
|
force: true
|
|
148407
148445
|
}).catch(() => {});
|
|
148446
|
+
const renameStart = Date.now();
|
|
148408
148447
|
await (0, node_fs_promises.rename)(tempNodeModules, nodeModulesPath);
|
|
148409
|
-
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
|
|
148448
|
+
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
|
|
148410
148449
|
} catch (err) {
|
|
148411
148450
|
console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
|
|
148412
148451
|
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 { basename, join, normalize } from "path";
|
|
4
4
|
import { formatWithOptions, types } from "util";
|
|
5
5
|
import path$1, { basename as basename$1, delimiter, dirname, join as join$1, sep } 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";
|
|
@@ -45185,7 +45185,16 @@ object({
|
|
|
45185
45185
|
pipelines: optional(array(SaveLocationValidator), [])
|
|
45186
45186
|
});
|
|
45187
45187
|
//#endregion
|
|
45188
|
+
//#region ../../node_modules/tsdown/esm-shims.js
|
|
45189
|
+
var getFilename, getDirname, __dirname;
|
|
45190
|
+
var init_esm_shims = __esmMin((() => {
|
|
45191
|
+
getFilename = () => fileURLToPath(import.meta.url);
|
|
45192
|
+
getDirname = () => path$1.dirname(getFilename());
|
|
45193
|
+
__dirname = /* @__PURE__ */ getDirname();
|
|
45194
|
+
}));
|
|
45195
|
+
//#endregion
|
|
45188
45196
|
//#region ../../packages/core-node/src/context.ts
|
|
45197
|
+
init_esm_shims();
|
|
45189
45198
|
const _dirname = typeof __dirname !== "undefined" ? __dirname : typeof import.meta !== "undefined" && import.meta.url ? dirname(fileURLToPath(import.meta.url)) : process.cwd();
|
|
45190
45199
|
const isDev = process.env.NODE_ENV === "development";
|
|
45191
45200
|
/**
|
|
@@ -111029,6 +111038,7 @@ var require_lib$9 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
111029
111038
|
//#endregion
|
|
111030
111039
|
//#region ../../node_modules/@npmcli/run-script/lib/set-path.js
|
|
111031
111040
|
var require_set_path = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
111041
|
+
init_esm_shims();
|
|
111032
111042
|
const { log } = require_lib$29();
|
|
111033
111043
|
const { resolve: resolve$4, dirname: dirname$2, delimiter: delimiter$1 } = __require("path");
|
|
111034
111044
|
const nodeGypPath = resolve$4(__dirname, "../lib/node-gyp-bin");
|
|
@@ -148200,11 +148210,13 @@ async function withLock(key, fn) {
|
|
|
148200
148210
|
* Centralized in core-node to avoid circular dependencies.
|
|
148201
148211
|
*/
|
|
148202
148212
|
async function fetchPackage(packageName, versionOrRange, options) {
|
|
148213
|
+
const start = Date.now();
|
|
148203
148214
|
if (isDev && projectRoot && process.env.PIPELAB_FORCE_NPM !== "true") {
|
|
148204
148215
|
if (packageName.startsWith("@pipelab/")) {
|
|
148216
|
+
const localStart = Date.now();
|
|
148205
148217
|
const local = await tryResolveMonorepoPackage(packageName);
|
|
148206
148218
|
if (local) {
|
|
148207
|
-
console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir}`);
|
|
148219
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local source at ${local.packageDir} (${Date.now() - localStart}ms)`);
|
|
148208
148220
|
return {
|
|
148209
148221
|
...local,
|
|
148210
148222
|
resolvedVersion: "workspace"
|
|
@@ -148216,6 +148228,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148216
148228
|
const baseDir = ctx.getPackagesPath(packageName);
|
|
148217
148229
|
let resolvedVersion;
|
|
148218
148230
|
console.log(`[Fetcher] Resolving ${packageName}@${versionOrRange || "latest"}...`);
|
|
148231
|
+
const resolveStart = Date.now();
|
|
148219
148232
|
try {
|
|
148220
148233
|
const cachePath = join$1(ctx.userDataPath, "cache", "pacote");
|
|
148221
148234
|
let packumentPromise = packumentRequests.get(packageName);
|
|
@@ -148229,22 +148242,32 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148229
148242
|
const foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
148230
148243
|
if (!foundVersion) throw new Error(`Package ${packageName}@${range} not found on npm (available tags: ${Object.keys(packument["dist-tags"] || {}).join(", ")})`);
|
|
148231
148244
|
resolvedVersion = foundVersion;
|
|
148232
|
-
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm`);
|
|
148245
|
+
console.log(`[Fetcher] ${packageName}: Resolved to v${resolvedVersion} via npm (${Date.now() - resolveStart}ms)`);
|
|
148233
148246
|
} catch (error) {
|
|
148234
|
-
console.warn(`[Fetcher] ${packageName}: remote resolution failed, trying local fallback...`);
|
|
148247
|
+
console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
148248
|
+
const fallbackStart = Date.now();
|
|
148235
148249
|
const fallbackVersion = await tryLocalFallback(versionOrRange, error, baseDir, packageName);
|
|
148236
|
-
if (fallbackVersion)
|
|
148237
|
-
|
|
148250
|
+
if (fallbackVersion) {
|
|
148251
|
+
resolvedVersion = fallbackVersion;
|
|
148252
|
+
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
148253
|
+
} else throw error;
|
|
148238
148254
|
}
|
|
148239
148255
|
const cachePath = join$1(ctx.userDataPath, "cache", "pacote");
|
|
148240
148256
|
const packageDir = join$1(baseDir, resolvedVersion);
|
|
148241
|
-
|
|
148242
|
-
|
|
148243
|
-
|
|
148244
|
-
|
|
148257
|
+
const checkStart = Date.now();
|
|
148258
|
+
const isInstalled = options?.installDeps ? isPackageComplete(packageDir) && isDependenciesInstalledSync(packageDir) : isPackageComplete(packageDir);
|
|
148259
|
+
const checkDuration = Date.now() - checkStart;
|
|
148260
|
+
if (isInstalled) {
|
|
148261
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Already installed (check took ${checkDuration}ms, fetchPackage took ${Date.now() - start}ms)`);
|
|
148262
|
+
return {
|
|
148263
|
+
packageDir,
|
|
148264
|
+
resolvedVersion
|
|
148265
|
+
};
|
|
148266
|
+
}
|
|
148245
148267
|
return withLock(`package:${packageName}:${resolvedVersion}`, async () => {
|
|
148246
148268
|
if (!isPackageComplete(packageDir)) {
|
|
148247
148269
|
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloading to ${packageDir}...`);
|
|
148270
|
+
const downloadStart = Date.now();
|
|
148248
148271
|
const tempDir = join$1(baseDir, `.tmp-${resolvedVersion}-${Math.random().toString(36).slice(2)}`);
|
|
148249
148272
|
await mkdir(tempDir, { recursive: true });
|
|
148250
148273
|
try {
|
|
@@ -148260,6 +148283,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148260
148283
|
if (isPackageComplete(packageDir)) console.log(`[Fetcher] Destination ${packageDir} already exists and is valid.`);
|
|
148261
148284
|
else throw err;
|
|
148262
148285
|
}
|
|
148286
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Downloaded and extracted in ${Date.now() - downloadStart}ms`);
|
|
148263
148287
|
} catch (err) {
|
|
148264
148288
|
await rm(tempDir, {
|
|
148265
148289
|
recursive: true,
|
|
@@ -148268,8 +148292,15 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
148268
148292
|
throw err;
|
|
148269
148293
|
}
|
|
148270
148294
|
}
|
|
148295
|
+
const entryStart = Date.now();
|
|
148271
148296
|
const entryPoint = await resolveEntryPoint(packageDir, packageName);
|
|
148272
|
-
|
|
148297
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Resolved entry point in ${Date.now() - entryStart}ms`);
|
|
148298
|
+
if (options?.installDeps) {
|
|
148299
|
+
const depsStart = Date.now();
|
|
148300
|
+
await installDependencies(packageDir, packageName, options);
|
|
148301
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: Installed dependencies in ${Date.now() - depsStart}ms`);
|
|
148302
|
+
}
|
|
148303
|
+
console.log(`[Fetcher] ${packageName}@${resolvedVersion}: FetchPackage complete in ${Date.now() - start}ms`);
|
|
148273
148304
|
return {
|
|
148274
148305
|
packageDir,
|
|
148275
148306
|
resolvedVersion,
|
|
@@ -148308,10 +148339,14 @@ async function runPnpm(cwd, options) {
|
|
|
148308
148339
|
* Installs a specific version of Node.js if not already present.
|
|
148309
148340
|
*/
|
|
148310
148341
|
async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
148342
|
+
const checkStart = Date.now();
|
|
148311
148343
|
const isWindows = process.platform === "win32";
|
|
148312
148344
|
const nodeDir = context.getThirdPartyPath("node", version);
|
|
148313
148345
|
const finalNodePath = join$1(nodeDir, isWindows ? "node.exe" : "bin/node");
|
|
148314
|
-
if (isNodeJSComplete(finalNodePath))
|
|
148346
|
+
if (isNodeJSComplete(finalNodePath)) {
|
|
148347
|
+
console.log(`[Environment] Node.js check took ${Date.now() - checkStart}ms (found at ${finalNodePath})`);
|
|
148348
|
+
return finalNodePath;
|
|
148349
|
+
}
|
|
148315
148350
|
return withLock(`node:${version}`, async () => {
|
|
148316
148351
|
if (isNodeJSComplete(finalNodePath)) return finalNodePath;
|
|
148317
148352
|
const arch = process.arch === "x64" ? "x64" : process.arch === "arm64" ? "arm64" : "x86";
|
|
@@ -148323,9 +148358,12 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148323
148358
|
const archivePath = join$1(tempDir, fileName);
|
|
148324
148359
|
sendStartupProgress(`Downloading Node.js v${version}...`);
|
|
148325
148360
|
console.log(`Downloading Node.js from ${downloadUrl}...`);
|
|
148361
|
+
const dlStart = Date.now();
|
|
148326
148362
|
await downloadFile(downloadUrl, archivePath);
|
|
148363
|
+
console.log(`[Environment] Node.js download took ${Date.now() - dlStart}ms`);
|
|
148327
148364
|
sendStartupProgress(`Extracting Node.js v${version}...`);
|
|
148328
148365
|
console.log(`Extracting Node.js to ${tempDir}...`);
|
|
148366
|
+
const extStart = Date.now();
|
|
148329
148367
|
const extractTempDir = join$1(tempDir, "extracted");
|
|
148330
148368
|
await mkdir(extractTempDir, { recursive: true });
|
|
148331
148369
|
if (extension === "zip") await extractZip(archivePath, extractTempDir);
|
|
@@ -148350,6 +148388,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148350
148388
|
if (isNodeJSComplete(finalNodePath)) console.log(`[Fetcher] Node.js directory already exists and is valid.`);
|
|
148351
148389
|
else throw err;
|
|
148352
148390
|
}
|
|
148391
|
+
console.log(`[Environment] Node.js extraction took ${Date.now() - extStart}ms`);
|
|
148353
148392
|
} finally {
|
|
148354
148393
|
await rm(tempNodeDir, {
|
|
148355
148394
|
recursive: true,
|
|
@@ -148360,6 +148399,7 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148360
148399
|
force: true
|
|
148361
148400
|
}).catch(() => {});
|
|
148362
148401
|
}
|
|
148402
|
+
console.log(`[Environment] Node.js set up complete in ${Date.now() - checkStart}ms`);
|
|
148363
148403
|
return finalNodePath;
|
|
148364
148404
|
});
|
|
148365
148405
|
}
|
|
@@ -148367,16 +148407,22 @@ async function ensureNodeJS(context, version = DEFAULT_NODE_VERSION) {
|
|
|
148367
148407
|
* Installs the PNPM package from npm if not already present.
|
|
148368
148408
|
*/
|
|
148369
148409
|
async function ensurePNPM(context, version = DEFAULT_PNPM_VERSION) {
|
|
148410
|
+
const checkStart = Date.now();
|
|
148370
148411
|
const pnpmPath = join$1(context.getPackagesPath("pnpm", version), "bin", "pnpm.cjs");
|
|
148371
|
-
if (existsSync(pnpmPath))
|
|
148412
|
+
if (existsSync(pnpmPath)) {
|
|
148413
|
+
console.log(`[Environment] PNPM check took ${Date.now() - checkStart}ms (found at ${pnpmPath})`);
|
|
148414
|
+
return pnpmPath;
|
|
148415
|
+
}
|
|
148372
148416
|
return withLock(`pnpm:${version}`, async () => {
|
|
148373
148417
|
if (existsSync(pnpmPath)) return pnpmPath;
|
|
148374
148418
|
sendStartupProgress(`Checking PNPM v${version}...`);
|
|
148375
148419
|
const { packageDir } = await fetchPackage("pnpm", version, { context });
|
|
148420
|
+
console.log(`[Environment] PNPM set up complete in ${Date.now() - checkStart}ms`);
|
|
148376
148421
|
return join$1(packageDir, "bin", "pnpm.cjs");
|
|
148377
148422
|
});
|
|
148378
148423
|
}
|
|
148379
148424
|
async function installDependencies(packageDir, packageName, options) {
|
|
148425
|
+
const start = Date.now();
|
|
148380
148426
|
const nodeModulesPath = join$1(packageDir, "node_modules");
|
|
148381
148427
|
if (isDependenciesInstalledSync(packageDir)) {
|
|
148382
148428
|
console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
|
|
@@ -148387,18 +148433,21 @@ async function installDependencies(packageDir, packageName, options) {
|
|
|
148387
148433
|
try {
|
|
148388
148434
|
await cp(join$1(packageDir, "package.json"), join$1(tempDir, "package.json"));
|
|
148389
148435
|
console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
|
|
148436
|
+
const pnpmStart = Date.now();
|
|
148390
148437
|
const { all } = await runPnpm(tempDir, {
|
|
148391
148438
|
signal: options.signal,
|
|
148392
148439
|
context: options.context
|
|
148393
148440
|
});
|
|
148441
|
+
console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
|
|
148394
148442
|
if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
|
|
148395
148443
|
const tempNodeModules = join$1(tempDir, "node_modules");
|
|
148396
148444
|
if (existsSync(nodeModulesPath)) await rm(nodeModulesPath, {
|
|
148397
148445
|
recursive: true,
|
|
148398
148446
|
force: true
|
|
148399
148447
|
}).catch(() => {});
|
|
148448
|
+
const renameStart = Date.now();
|
|
148400
148449
|
await rename(tempNodeModules, nodeModulesPath);
|
|
148401
|
-
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully.`);
|
|
148450
|
+
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
|
|
148402
148451
|
} catch (err) {
|
|
148403
148452
|
console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
|
|
148404
148453
|
if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);
|