@pipelab/plugin-poki 1.0.0-beta.28 → 1.0.0-beta.32
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 +38 -6
- package/dist/index.mjs +38 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -5
package/dist/index.cjs
CHANGED
|
@@ -89525,7 +89525,7 @@ const runWithLiveLogs = async (command, args, execaOptions, log, hooks, abortSig
|
|
|
89525
89525
|
TERM: "xterm-256color",
|
|
89526
89526
|
FORCE_STDERR_LOGGING: "1"
|
|
89527
89527
|
},
|
|
89528
|
-
cancelSignal: abortSignal
|
|
89528
|
+
cancelSignal: abortSignal ?? execaOptions.cancelSignal
|
|
89529
89529
|
});
|
|
89530
89530
|
hooks?.onCreated?.(subprocess);
|
|
89531
89531
|
subprocess.stdout?.on("data", (data) => {
|
|
@@ -151231,6 +151231,17 @@ async function isOnline() {
|
|
|
151231
151231
|
lastCheckTime = now;
|
|
151232
151232
|
return isOnlineCached;
|
|
151233
151233
|
}
|
|
151234
|
+
function allowPrereleaseInRange(rangeStr) {
|
|
151235
|
+
try {
|
|
151236
|
+
return new import_semver.default.Range(rangeStr).set.map((conj) => conj.map((c) => {
|
|
151237
|
+
const v = c.semver;
|
|
151238
|
+
if (v.prerelease && v.prerelease.length) return c.operator + v.format();
|
|
151239
|
+
return c.operator + v.major + "." + v.minor + "." + v.patch + "-0";
|
|
151240
|
+
}).join(" ")).join(" || ");
|
|
151241
|
+
} catch {
|
|
151242
|
+
return rangeStr;
|
|
151243
|
+
}
|
|
151244
|
+
}
|
|
151234
151245
|
/**
|
|
151235
151246
|
* Robust utility to fetch, cache, and resolve an NPM package.
|
|
151236
151247
|
* Centralized in core-node to avoid circular dependencies.
|
|
@@ -151253,6 +151264,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151253
151264
|
const ctx = options.context;
|
|
151254
151265
|
const baseDir = ctx.getPackagesPath(packageName);
|
|
151255
151266
|
let resolvedVersion;
|
|
151267
|
+
const includePrerelease = !!(ctx.releaseTag && ctx.releaseTag !== "latest");
|
|
151256
151268
|
let resolvedVersionOrRange = versionOrRange;
|
|
151257
151269
|
if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
|
|
151258
151270
|
console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
|
|
@@ -151260,7 +151272,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151260
151272
|
if (!await isOnline()) {
|
|
151261
151273
|
console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151262
151274
|
const fallbackStart = Date.now();
|
|
151263
|
-
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
|
|
151275
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName, includePrerelease);
|
|
151264
151276
|
if (fallbackVersion) {
|
|
151265
151277
|
resolvedVersion = fallbackVersion;
|
|
151266
151278
|
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
@@ -151275,7 +151287,27 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151275
151287
|
const packument = await packumentPromise;
|
|
151276
151288
|
const versions = Object.keys(packument.versions);
|
|
151277
151289
|
const range = resolvedVersionOrRange || "latest";
|
|
151278
|
-
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
151290
|
+
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range, { includePrerelease });
|
|
151291
|
+
if (!foundVersion && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151292
|
+
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151293
|
+
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
151294
|
+
const rewrittenRangeForCheck = allowPrereleaseInRange(range);
|
|
151295
|
+
if (import_semver.default.satisfies(releaseTagVersion, rewrittenRangeForCheck, { includePrerelease: true })) {
|
|
151296
|
+
console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) for ${packageName}@${range} because it satisfies the range`);
|
|
151297
|
+
foundVersion = releaseTagVersion;
|
|
151298
|
+
}
|
|
151299
|
+
}
|
|
151300
|
+
}
|
|
151301
|
+
if (!foundVersion && includePrerelease) {
|
|
151302
|
+
const rewrittenRange = allowPrereleaseInRange(range);
|
|
151303
|
+
if (rewrittenRange !== range) {
|
|
151304
|
+
const matched = import_semver.default.maxSatisfying(versions, rewrittenRange, { includePrerelease });
|
|
151305
|
+
if (matched) {
|
|
151306
|
+
console.log(`[Fetcher] Resolved ${packageName}@${range} to ${matched} via rewritten range ${rewrittenRange}`);
|
|
151307
|
+
foundVersion = matched;
|
|
151308
|
+
}
|
|
151309
|
+
}
|
|
151310
|
+
}
|
|
151279
151311
|
if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151280
151312
|
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151281
151313
|
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
@@ -151291,7 +151323,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151291
151323
|
} catch (error) {
|
|
151292
151324
|
console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151293
151325
|
const fallbackStart = Date.now();
|
|
151294
|
-
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName);
|
|
151326
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName, includePrerelease);
|
|
151295
151327
|
if (fallbackVersion) {
|
|
151296
151328
|
resolvedVersion = fallbackVersion;
|
|
151297
151329
|
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
@@ -151546,7 +151578,7 @@ async function crawlMonorepoPackages() {
|
|
|
151546
151578
|
}
|
|
151547
151579
|
return cache;
|
|
151548
151580
|
}
|
|
151549
|
-
async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
|
|
151581
|
+
async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix, includePrerelease = false) {
|
|
151550
151582
|
if (!(0, node_fs.existsSync)(baseDir)) return null;
|
|
151551
151583
|
try {
|
|
151552
151584
|
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));
|
|
@@ -151559,7 +151591,7 @@ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
|
|
|
151559
151591
|
return latestLocal;
|
|
151560
151592
|
}
|
|
151561
151593
|
} else {
|
|
151562
|
-
const matched = import_semver.default.maxSatisfying(localVersions, range);
|
|
151594
|
+
const matched = import_semver.default.maxSatisfying(localVersions, range, { includePrerelease });
|
|
151563
151595
|
if (matched) {
|
|
151564
151596
|
console.info(`[Fetcher] ${logPrefix}: Using locally cached matching version: ${matched} for range ${range}`);
|
|
151565
151597
|
return matched;
|
package/dist/index.mjs
CHANGED
|
@@ -89518,7 +89518,7 @@ const runWithLiveLogs = async (command, args, execaOptions, log, hooks, abortSig
|
|
|
89518
89518
|
TERM: "xterm-256color",
|
|
89519
89519
|
FORCE_STDERR_LOGGING: "1"
|
|
89520
89520
|
},
|
|
89521
|
-
cancelSignal: abortSignal
|
|
89521
|
+
cancelSignal: abortSignal ?? execaOptions.cancelSignal
|
|
89522
89522
|
});
|
|
89523
89523
|
hooks?.onCreated?.(subprocess);
|
|
89524
89524
|
subprocess.stdout?.on("data", (data) => {
|
|
@@ -151225,6 +151225,17 @@ async function isOnline() {
|
|
|
151225
151225
|
lastCheckTime = now;
|
|
151226
151226
|
return isOnlineCached;
|
|
151227
151227
|
}
|
|
151228
|
+
function allowPrereleaseInRange(rangeStr) {
|
|
151229
|
+
try {
|
|
151230
|
+
return new import_semver.default.Range(rangeStr).set.map((conj) => conj.map((c) => {
|
|
151231
|
+
const v = c.semver;
|
|
151232
|
+
if (v.prerelease && v.prerelease.length) return c.operator + v.format();
|
|
151233
|
+
return c.operator + v.major + "." + v.minor + "." + v.patch + "-0";
|
|
151234
|
+
}).join(" ")).join(" || ");
|
|
151235
|
+
} catch {
|
|
151236
|
+
return rangeStr;
|
|
151237
|
+
}
|
|
151238
|
+
}
|
|
151228
151239
|
/**
|
|
151229
151240
|
* Robust utility to fetch, cache, and resolve an NPM package.
|
|
151230
151241
|
* Centralized in core-node to avoid circular dependencies.
|
|
@@ -151247,6 +151258,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151247
151258
|
const ctx = options.context;
|
|
151248
151259
|
const baseDir = ctx.getPackagesPath(packageName);
|
|
151249
151260
|
let resolvedVersion;
|
|
151261
|
+
const includePrerelease = !!(ctx.releaseTag && ctx.releaseTag !== "latest");
|
|
151250
151262
|
let resolvedVersionOrRange = versionOrRange;
|
|
151251
151263
|
if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
|
|
151252
151264
|
console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
|
|
@@ -151254,7 +151266,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151254
151266
|
if (!await isOnline()) {
|
|
151255
151267
|
console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151256
151268
|
const fallbackStart = Date.now();
|
|
151257
|
-
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
|
|
151269
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName, includePrerelease);
|
|
151258
151270
|
if (fallbackVersion) {
|
|
151259
151271
|
resolvedVersion = fallbackVersion;
|
|
151260
151272
|
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
@@ -151269,7 +151281,27 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151269
151281
|
const packument = await packumentPromise;
|
|
151270
151282
|
const versions = Object.keys(packument.versions);
|
|
151271
151283
|
const range = resolvedVersionOrRange || "latest";
|
|
151272
|
-
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
|
|
151284
|
+
let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range, { includePrerelease });
|
|
151285
|
+
if (!foundVersion && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151286
|
+
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151287
|
+
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
151288
|
+
const rewrittenRangeForCheck = allowPrereleaseInRange(range);
|
|
151289
|
+
if (import_semver.default.satisfies(releaseTagVersion, rewrittenRangeForCheck, { includePrerelease: true })) {
|
|
151290
|
+
console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) for ${packageName}@${range} because it satisfies the range`);
|
|
151291
|
+
foundVersion = releaseTagVersion;
|
|
151292
|
+
}
|
|
151293
|
+
}
|
|
151294
|
+
}
|
|
151295
|
+
if (!foundVersion && includePrerelease) {
|
|
151296
|
+
const rewrittenRange = allowPrereleaseInRange(range);
|
|
151297
|
+
if (rewrittenRange !== range) {
|
|
151298
|
+
const matched = import_semver.default.maxSatisfying(versions, rewrittenRange, { includePrerelease });
|
|
151299
|
+
if (matched) {
|
|
151300
|
+
console.log(`[Fetcher] Resolved ${packageName}@${range} to ${matched} via rewritten range ${rewrittenRange}`);
|
|
151301
|
+
foundVersion = matched;
|
|
151302
|
+
}
|
|
151303
|
+
}
|
|
151304
|
+
}
|
|
151273
151305
|
if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
|
|
151274
151306
|
const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
|
|
151275
151307
|
if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
|
|
@@ -151285,7 +151317,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
|
|
|
151285
151317
|
} catch (error) {
|
|
151286
151318
|
console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
|
|
151287
151319
|
const fallbackStart = Date.now();
|
|
151288
|
-
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName);
|
|
151320
|
+
const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName, includePrerelease);
|
|
151289
151321
|
if (fallbackVersion) {
|
|
151290
151322
|
resolvedVersion = fallbackVersion;
|
|
151291
151323
|
console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
|
|
@@ -151540,7 +151572,7 @@ async function crawlMonorepoPackages() {
|
|
|
151540
151572
|
}
|
|
151541
151573
|
return cache;
|
|
151542
151574
|
}
|
|
151543
|
-
async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
|
|
151575
|
+
async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix, includePrerelease = false) {
|
|
151544
151576
|
if (!existsSync(baseDir)) return null;
|
|
151545
151577
|
try {
|
|
151546
151578
|
const localVersions = (await readdir(baseDir, { withFileTypes: true })).filter((e) => e.isDirectory() || e.isSymbolicLink()).map((e) => e.name).filter((name) => !!import_semver.default.valid(name));
|
|
@@ -151553,7 +151585,7 @@ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
|
|
|
151553
151585
|
return latestLocal;
|
|
151554
151586
|
}
|
|
151555
151587
|
} else {
|
|
151556
|
-
const matched = import_semver.default.maxSatisfying(localVersions, range);
|
|
151588
|
+
const matched = import_semver.default.maxSatisfying(localVersions, range, { includePrerelease });
|
|
151557
151589
|
if (matched) {
|
|
151558
151590
|
console.info(`[Fetcher] ${logPrefix}: Using locally cached matching version: ${matched} for range ${range}`);
|
|
151559
151591
|
return matched;
|