@pipelab/plugin-discord 1.0.0-beta.27 → 1.0.0-beta.31
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 +42 -20
- package/dist/index.mjs +42 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
package/dist/index.cjs
CHANGED
|
@@ -151202,6 +151202,17 @@ async function isOnline() {
|
|
|
151202
151202
|
lastCheckTime = now;
|
|
151203
151203
|
return isOnlineCached;
|
|
151204
151204
|
}
|
|
151205
|
+
function allowPrereleaseInRange(rangeStr) {
|
|
151206
|
+
try {
|
|
151207
|
+
return new import_semver.default.Range(rangeStr).set.map((conj) => conj.map((c) => {
|
|
151208
|
+
const v = c.semver;
|
|
151209
|
+
if (v.prerelease && v.prerelease.length) return c.operator + v.format();
|
|
151210
|
+
return c.operator + v.major + "." + v.minor + "." + v.patch + "-0";
|
|
151211
|
+
}).join(" ")).join(" || ");
|
|
151212
|
+
} catch {
|
|
151213
|
+
return rangeStr;
|
|
151214
|
+
}
|
|
151215
|
+
}
|
|
151205
151216
|
/**
|
|
151206
151217
|
* Robust utility to fetch, cache, and resolve an NPM package.
|
|
151207
151218
|
* Centralized in core-node to avoid circular dependencies.
|
|
@@ -151224,6 +151235,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151224
151235
|
const ctx = options.context;
|
|
151225
151236
|
const baseDir = ctx.getPackagesPath(packageName);
|
|
151226
151237
|
let resolvedVersion;
|
|
151238
|
+
const includePrerelease = !!(ctx.releaseTag && ctx.releaseTag !== "latest");
|
|
151227
151239
|
let resolvedVersionOrRange = versionOrRange;
|
|
151228
151240
|
if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
|
|
151229
151241
|
console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
|
|
@@ -151231,7 +151243,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151231
151243
|
if (!await isOnline()) {
|
|
151232
151244
|
console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151233
151245
|
const fallbackStart = Date.now();
|
|
151234
|
-
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
|
|
151246
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName, includePrerelease);
|
|
151235
151247
|
if (fallbackVersion) {
|
|
151236
151248
|
resolvedVersion = fallbackVersion;
|
|
151237
151249
|
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
@@ -151246,7 +151258,27 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151246
151258
|
const packument = await packumentPromise;
|
|
151247
151259
|
const versions = Object.keys(packument.versions);
|
|
151248
151260
|
const range = resolvedVersionOrRange || "latest";
|
|
151249
|
-
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
151261
|
+
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range, { includePrerelease });
|
|
151262
|
+
if (!foundVersion && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151263
|
+
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151264
|
+
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
151265
|
+
const rewrittenRangeForCheck = allowPrereleaseInRange(range);
|
|
151266
|
+
if (import_semver.default.satisfies(releaseTagVersion, rewrittenRangeForCheck, { includePrerelease: true })) {
|
|
151267
|
+
console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) for ${packageName}@${range} because it satisfies the range`);
|
|
151268
|
+
foundVersion = releaseTagVersion;
|
|
151269
|
+
}
|
|
151270
|
+
}
|
|
151271
|
+
}
|
|
151272
|
+
if (!foundVersion && includePrerelease) {
|
|
151273
|
+
const rewrittenRange = allowPrereleaseInRange(range);
|
|
151274
|
+
if (rewrittenRange !== range) {
|
|
151275
|
+
const matched = import_semver.default.maxSatisfying(versions, rewrittenRange, { includePrerelease });
|
|
151276
|
+
if (matched) {
|
|
151277
|
+
console.log(`[Fetcher] Resolved ${packageName}@${range} to ${matched} via rewritten range ${rewrittenRange}`);
|
|
151278
|
+
foundVersion = matched;
|
|
151279
|
+
}
|
|
151280
|
+
}
|
|
151281
|
+
}
|
|
151250
151282
|
if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151251
151283
|
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151252
151284
|
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
@@ -151262,7 +151294,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151262
151294
|
} catch (error) {
|
|
151263
151295
|
console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151264
151296
|
const fallbackStart = Date.now();
|
|
151265
|
-
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName);
|
|
151297
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName, includePrerelease);
|
|
151266
151298
|
if (fallbackVersion) {
|
|
151267
151299
|
resolvedVersion = fallbackVersion;
|
|
151268
151300
|
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
@@ -151444,35 +151476,24 @@ async function installDependencies(packageDir, packageName, options) {
|
|
|
151444
151476
|
console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
|
|
151445
151477
|
return;
|
|
151446
151478
|
}
|
|
151447
|
-
const tempDir = `${packageDir}.tmp-deps-${Math.random().toString(36).slice(2)}`;
|
|
151448
|
-
await (0, node_fs_promises.mkdir)(tempDir, { recursive: true });
|
|
151449
151479
|
try {
|
|
151450
|
-
await (0, node_fs_promises.cp)((0, node_path.join)(packageDir, "package.json"), (0, node_path.join)(tempDir, "package.json"));
|
|
151451
151480
|
console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
|
|
151452
151481
|
const pnpmStart = Date.now();
|
|
151453
|
-
const { all } = await runPnpm(
|
|
151482
|
+
const { all } = await runPnpm(packageDir, {
|
|
151454
151483
|
signal: options.signal,
|
|
151455
151484
|
context: options.context
|
|
151456
151485
|
});
|
|
151457
151486
|
console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
|
|
151458
151487
|
if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
|
|
151459
|
-
|
|
151460
|
-
if ((0, node_fs.existsSync)(nodeModulesPath)) await (0, node_fs_promises.rm)(nodeModulesPath, {
|
|
151461
|
-
recursive: true,
|
|
151462
|
-
force: true
|
|
151463
|
-
}).catch(() => {});
|
|
151464
|
-
const renameStart = Date.now();
|
|
151465
|
-
await (0, node_fs_promises.rename)(tempNodeModules, nodeModulesPath);
|
|
151466
|
-
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
|
|
151488
|
+
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (total installDependencies took ${Date.now() - start}ms).`);
|
|
151467
151489
|
} catch (err) {
|
|
151468
151490
|
console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
|
|
151469
151491
|
if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);
|
|
151470
|
-
|
|
151471
|
-
} finally {
|
|
151472
|
-
await (0, node_fs_promises.rm)(tempDir, {
|
|
151492
|
+
await (0, node_fs_promises.rm)(nodeModulesPath, {
|
|
151473
151493
|
recursive: true,
|
|
151474
151494
|
force: true
|
|
151475
151495
|
}).catch(() => {});
|
|
151496
|
+
throw new Error(`Failed to install dependencies for ${packageName}. See logs for details.`);
|
|
151476
151497
|
}
|
|
151477
151498
|
}
|
|
151478
151499
|
async function fetchPipelabAsset(packageName, versionOrRange, options) {
|
|
@@ -151536,7 +151557,7 @@ async function crawlMonorepoPackages() {
|
|
|
151536
151557
|
}
|
|
151537
151558
|
return cache;
|
|
151538
151559
|
}
|
|
151539
|
-
async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
|
|
151560
|
+
async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix, includePrerelease = false) {
|
|
151540
151561
|
if (!(0, node_fs.existsSync)(baseDir)) return null;
|
|
151541
151562
|
try {
|
|
151542
151563
|
const localVersions = (await (0, node_fs_promises.readdir)(baseDir, { withFileTypes: true })).filter((e) => e.isDirectory() || e.isSymbolicLink()).map((e) => e.name).filter((name) => !!import_semver.default.valid(name));
|
|
@@ -151549,7 +151570,7 @@ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
|
|
|
151549
151570
|
return latestLocal;
|
|
151550
151571
|
}
|
|
151551
151572
|
} else {
|
|
151552
|
-
const matched = import_semver.default.maxSatisfying(localVersions, range);
|
|
151573
|
+
const matched = import_semver.default.maxSatisfying(localVersions, range, { includePrerelease });
|
|
151553
151574
|
if (matched) {
|
|
151554
151575
|
console.info(`[Fetcher] ${logPrefix}: Using locally cached matching version: ${matched} for range ${range}`);
|
|
151555
151576
|
return matched;
|
|
@@ -152797,6 +152818,7 @@ DISCORD_CLIENT_SECRET=yJ4vRnzDtKAqg2Le3_Sap2CqHybkTp2U`, "utf8");
|
|
|
152797
152818
|
acceptCloudflareNotice: true
|
|
152798
152819
|
});
|
|
152799
152820
|
console.log("tunnel", tunnel);
|
|
152821
|
+
if (!tunnel) throw new Error("Failed to start tunnel");
|
|
152800
152822
|
const url = await tunnel.getURL();
|
|
152801
152823
|
console.log("Public URL:", url);
|
|
152802
152824
|
})()]);
|
package/dist/index.mjs
CHANGED
|
@@ -151197,6 +151197,17 @@ async function isOnline() {
|
|
|
151197
151197
|
lastCheckTime = now;
|
|
151198
151198
|
return isOnlineCached;
|
|
151199
151199
|
}
|
|
151200
|
+
function allowPrereleaseInRange(rangeStr) {
|
|
151201
|
+
try {
|
|
151202
|
+
return new import_semver.default.Range(rangeStr).set.map((conj) => conj.map((c) => {
|
|
151203
|
+
const v = c.semver;
|
|
151204
|
+
if (v.prerelease && v.prerelease.length) return c.operator + v.format();
|
|
151205
|
+
return c.operator + v.major + "." + v.minor + "." + v.patch + "-0";
|
|
151206
|
+
}).join(" ")).join(" || ");
|
|
151207
|
+
} catch {
|
|
151208
|
+
return rangeStr;
|
|
151209
|
+
}
|
|
151210
|
+
}
|
|
151200
151211
|
/**
|
|
151201
151212
|
* Robust utility to fetch, cache, and resolve an NPM package.
|
|
151202
151213
|
* Centralized in core-node to avoid circular dependencies.
|
|
@@ -151219,6 +151230,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151219
151230
|
const ctx = options.context;
|
|
151220
151231
|
const baseDir = ctx.getPackagesPath(packageName);
|
|
151221
151232
|
let resolvedVersion;
|
|
151233
|
+
const includePrerelease = !!(ctx.releaseTag && ctx.releaseTag !== "latest");
|
|
151222
151234
|
let resolvedVersionOrRange = versionOrRange;
|
|
151223
151235
|
if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
|
|
151224
151236
|
console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
|
|
@@ -151226,7 +151238,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151226
151238
|
if (!await isOnline()) {
|
|
151227
151239
|
console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151228
151240
|
const fallbackStart = Date.now();
|
|
151229
|
-
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
|
|
151241
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName, includePrerelease);
|
|
151230
151242
|
if (fallbackVersion) {
|
|
151231
151243
|
resolvedVersion = fallbackVersion;
|
|
151232
151244
|
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
@@ -151241,7 +151253,27 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151241
151253
|
const packument = await packumentPromise;
|
|
151242
151254
|
const versions = Object.keys(packument.versions);
|
|
151243
151255
|
const range = resolvedVersionOrRange || "latest";
|
|
151244
|
-
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
151256
|
+
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range, { includePrerelease });
|
|
151257
|
+
if (!foundVersion && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151258
|
+
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151259
|
+
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
151260
|
+
const rewrittenRangeForCheck = allowPrereleaseInRange(range);
|
|
151261
|
+
if (import_semver.default.satisfies(releaseTagVersion, rewrittenRangeForCheck, { includePrerelease: true })) {
|
|
151262
|
+
console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) for ${packageName}@${range} because it satisfies the range`);
|
|
151263
|
+
foundVersion = releaseTagVersion;
|
|
151264
|
+
}
|
|
151265
|
+
}
|
|
151266
|
+
}
|
|
151267
|
+
if (!foundVersion && includePrerelease) {
|
|
151268
|
+
const rewrittenRange = allowPrereleaseInRange(range);
|
|
151269
|
+
if (rewrittenRange !== range) {
|
|
151270
|
+
const matched = import_semver.default.maxSatisfying(versions, rewrittenRange, { includePrerelease });
|
|
151271
|
+
if (matched) {
|
|
151272
|
+
console.log(`[Fetcher] Resolved ${packageName}@${range} to ${matched} via rewritten range ${rewrittenRange}`);
|
|
151273
|
+
foundVersion = matched;
|
|
151274
|
+
}
|
|
151275
|
+
}
|
|
151276
|
+
}
|
|
151245
151277
|
if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151246
151278
|
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151247
151279
|
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
@@ -151257,7 +151289,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151257
151289
|
} catch (error) {
|
|
151258
151290
|
console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151259
151291
|
const fallbackStart = Date.now();
|
|
151260
|
-
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName);
|
|
151292
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName, includePrerelease);
|
|
151261
151293
|
if (fallbackVersion) {
|
|
151262
151294
|
resolvedVersion = fallbackVersion;
|
|
151263
151295
|
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
@@ -151439,35 +151471,24 @@ async function installDependencies(packageDir, packageName, options) {
|
|
|
151439
151471
|
console.log(`[Fetcher] ${packageName}: Dependencies already installed, skipping.`);
|
|
151440
151472
|
return;
|
|
151441
151473
|
}
|
|
151442
|
-
const tempDir = `${packageDir}.tmp-deps-${Math.random().toString(36).slice(2)}`;
|
|
151443
|
-
await mkdir(tempDir, { recursive: true });
|
|
151444
151474
|
try {
|
|
151445
|
-
await cp(join$1(packageDir, "package.json"), join$1(tempDir, "package.json"));
|
|
151446
151475
|
console.log(`[Fetcher] ${packageName}: Ensuring dependencies are installed...`);
|
|
151447
151476
|
const pnpmStart = Date.now();
|
|
151448
|
-
const { all } = await runPnpm(
|
|
151477
|
+
const { all } = await runPnpm(packageDir, {
|
|
151449
151478
|
signal: options.signal,
|
|
151450
151479
|
context: options.context
|
|
151451
151480
|
});
|
|
151452
151481
|
console.log(`[Fetcher] ${packageName}: pnpm install command took ${Date.now() - pnpmStart}ms`);
|
|
151453
151482
|
if (all) console.log(`[Fetcher] ${packageName}: Installation trace:\n${all}`);
|
|
151454
|
-
|
|
151455
|
-
if (existsSync(nodeModulesPath)) await rm(nodeModulesPath, {
|
|
151456
|
-
recursive: true,
|
|
151457
|
-
force: true
|
|
151458
|
-
}).catch(() => {});
|
|
151459
|
-
const renameStart = Date.now();
|
|
151460
|
-
await rename(tempNodeModules, nodeModulesPath);
|
|
151461
|
-
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (rename took ${Date.now() - renameStart}ms, total installDependencies took ${Date.now() - start}ms).`);
|
|
151483
|
+
console.log(`[Fetcher] ${packageName}: Dependencies installed successfully (total installDependencies took ${Date.now() - start}ms).`);
|
|
151462
151484
|
} catch (err) {
|
|
151463
151485
|
console.error(`[Fetcher] ${packageName}: CRITICAL ERROR during dependency installation: ${err.message}`);
|
|
151464
151486
|
if (err.all) console.error(`[Fetcher] ${packageName}: Error details:\n${err.all}`);
|
|
151465
|
-
|
|
151466
|
-
} finally {
|
|
151467
|
-
await rm(tempDir, {
|
|
151487
|
+
await rm(nodeModulesPath, {
|
|
151468
151488
|
recursive: true,
|
|
151469
151489
|
force: true
|
|
151470
151490
|
}).catch(() => {});
|
|
151491
|
+
throw new Error(`Failed to install dependencies for ${packageName}. See logs for details.`);
|
|
151471
151492
|
}
|
|
151472
151493
|
}
|
|
151473
151494
|
async function fetchPipelabAsset(packageName, versionOrRange, options) {
|
|
@@ -151531,7 +151552,7 @@ async function crawlMonorepoPackages() {
|
|
|
151531
151552
|
}
|
|
151532
151553
|
return cache;
|
|
151533
151554
|
}
|
|
151534
|
-
async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
|
|
151555
|
+
async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix, includePrerelease = false) {
|
|
151535
151556
|
if (!existsSync(baseDir)) return null;
|
|
151536
151557
|
try {
|
|
151537
151558
|
const localVersions = (await readdir(baseDir, { withFileTypes: true })).filter((e) => e.isDirectory() || e.isSymbolicLink()).map((e) => e.name).filter((name) => !!import_semver.default.valid(name));
|
|
@@ -151544,7 +151565,7 @@ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
|
|
|
151544
151565
|
return latestLocal;
|
|
151545
151566
|
}
|
|
151546
151567
|
} else {
|
|
151547
|
-
const matched = import_semver.default.maxSatisfying(localVersions, range);
|
|
151568
|
+
const matched = import_semver.default.maxSatisfying(localVersions, range, { includePrerelease });
|
|
151548
151569
|
if (matched) {
|
|
151549
151570
|
console.info(`[Fetcher] ${logPrefix}: Using locally cached matching version: ${matched} for range ${range}`);
|
|
151550
151571
|
return matched;
|
|
@@ -152792,6 +152813,7 @@ DISCORD_CLIENT_SECRET=yJ4vRnzDtKAqg2Le3_Sap2CqHybkTp2U`, "utf8");
|
|
|
152792
152813
|
acceptCloudflareNotice: true
|
|
152793
152814
|
});
|
|
152794
152815
|
console.log("tunnel", tunnel);
|
|
152816
|
+
if (!tunnel) throw new Error("Failed to start tunnel");
|
|
152795
152817
|
const url = await tunnel.getURL();
|
|
152796
152818
|
console.log("Public URL:", url);
|
|
152797
152819
|
})()]);
|