@pipelab/plugin-poki 1.0.0-beta.28 → 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 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;