@pipelab/plugin-netlify 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
@@ -151215,6 +151215,17 @@ async function isOnline() {
151215
151215
  lastCheckTime = now;
151216
151216
  return isOnlineCached;
151217
151217
  }
151218
+ function allowPrereleaseInRange(rangeStr) {
151219
+ try {
151220
+ return new import_semver.default.Range(rangeStr).set.map((conj) => conj.map((c) => {
151221
+ const v = c.semver;
151222
+ if (v.prerelease && v.prerelease.length) return c.operator + v.format();
151223
+ return c.operator + v.major + "." + v.minor + "." + v.patch + "-0";
151224
+ }).join(" ")).join(" || ");
151225
+ } catch {
151226
+ return rangeStr;
151227
+ }
151228
+ }
151218
151229
  /**
151219
151230
  * Robust utility to fetch, cache, and resolve an NPM package.
151220
151231
  * Centralized in core-node to avoid circular dependencies.
@@ -151237,6 +151248,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151237
151248
  const ctx = options.context;
151238
151249
  const baseDir = ctx.getPackagesPath(packageName);
151239
151250
  let resolvedVersion;
151251
+ const includePrerelease = !!(ctx.releaseTag && ctx.releaseTag !== "latest");
151240
151252
  let resolvedVersionOrRange = versionOrRange;
151241
151253
  if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
151242
151254
  console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
@@ -151244,7 +151256,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151244
151256
  if (!await isOnline()) {
151245
151257
  console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
151246
151258
  const fallbackStart = Date.now();
151247
- const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
151259
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName, includePrerelease);
151248
151260
  if (fallbackVersion) {
151249
151261
  resolvedVersion = fallbackVersion;
151250
151262
  console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
@@ -151259,7 +151271,27 @@ async function fetchPackage(packageName, versionOrRange, options) {
151259
151271
  const packument = await packumentPromise;
151260
151272
  const versions = Object.keys(packument.versions);
151261
151273
  const range = resolvedVersionOrRange || "latest";
151262
- let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
151274
+ let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range, { includePrerelease });
151275
+ if (!foundVersion && ctx.releaseTag && ctx.releaseTag !== "latest") {
151276
+ const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151277
+ if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
151278
+ const rewrittenRangeForCheck = allowPrereleaseInRange(range);
151279
+ if (import_semver.default.satisfies(releaseTagVersion, rewrittenRangeForCheck, { includePrerelease: true })) {
151280
+ console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) for ${packageName}@${range} because it satisfies the range`);
151281
+ foundVersion = releaseTagVersion;
151282
+ }
151283
+ }
151284
+ }
151285
+ if (!foundVersion && includePrerelease) {
151286
+ const rewrittenRange = allowPrereleaseInRange(range);
151287
+ if (rewrittenRange !== range) {
151288
+ const matched = import_semver.default.maxSatisfying(versions, rewrittenRange, { includePrerelease });
151289
+ if (matched) {
151290
+ console.log(`[Fetcher] Resolved ${packageName}@${range} to ${matched} via rewritten range ${rewrittenRange}`);
151291
+ foundVersion = matched;
151292
+ }
151293
+ }
151294
+ }
151263
151295
  if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
151264
151296
  const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151265
151297
  if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
@@ -151275,7 +151307,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151275
151307
  } catch (error) {
151276
151308
  console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
151277
151309
  const fallbackStart = Date.now();
151278
- const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName);
151310
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName, includePrerelease);
151279
151311
  if (fallbackVersion) {
151280
151312
  resolvedVersion = fallbackVersion;
151281
151313
  console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
@@ -151538,7 +151570,7 @@ async function crawlMonorepoPackages() {
151538
151570
  }
151539
151571
  return cache;
151540
151572
  }
151541
- async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
151573
+ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix, includePrerelease = false) {
151542
151574
  if (!(0, node_fs.existsSync)(baseDir)) return null;
151543
151575
  try {
151544
151576
  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));
@@ -151551,7 +151583,7 @@ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
151551
151583
  return latestLocal;
151552
151584
  }
151553
151585
  } else {
151554
- const matched = import_semver.default.maxSatisfying(localVersions, range);
151586
+ const matched = import_semver.default.maxSatisfying(localVersions, range, { includePrerelease });
151555
151587
  if (matched) {
151556
151588
  console.info(`[Fetcher] ${logPrefix}: Using locally cached matching version: ${matched} for range ${range}`);
151557
151589
  return matched;
@@ -151715,11 +151747,15 @@ var src_default = createNodeDefinition({
151715
151747
  token: createStringParam("", {
151716
151748
  required: true,
151717
151749
  label: "Personal Access Token"
151750
+ }),
151751
+ site: createNetlifySiteParam("", "token", {
151752
+ required: true,
151753
+ label: "Netlify Site"
151718
151754
  })
151719
151755
  },
151720
151756
  outputs: {}
151721
151757
  }),
151722
- runner: createActionRunner(async ({ log, inputs, cwd, abortSignal, paths }) => {
151758
+ runner: createActionRunner(async ({ log, inputs, cwd, abortSignal, paths, context }) => {
151723
151759
  log("Building netlify site");
151724
151760
  const { node } = paths;
151725
151761
  const buildDir = (0, node_path.join)(cwd, "build");
@@ -151739,7 +151775,8 @@ var src_default = createNodeDefinition({
151739
151775
  "build"
151740
151776
  ],
151741
151777
  extraEnv: { NETLIFY_AUTH_TOKEN: inputs.token },
151742
- signal: abortSignal
151778
+ signal: abortSignal,
151779
+ context
151743
151780
  });
151744
151781
  if (buildOut) log(buildOut);
151745
151782
  const { all: deployOut } = await runPnpm(buildDir, {
@@ -151752,7 +151789,8 @@ var src_default = createNodeDefinition({
151752
151789
  "--prod"
151753
151790
  ],
151754
151791
  extraEnv: { NETLIFY_AUTH_TOKEN: inputs.token },
151755
- signal: abortSignal
151792
+ signal: abortSignal,
151793
+ context
151756
151794
  });
151757
151795
  if (deployOut) log(deployOut);
151758
151796
  log("Uploaded to netlify");
package/dist/index.mjs CHANGED
@@ -151209,6 +151209,17 @@ async function isOnline() {
151209
151209
  lastCheckTime = now;
151210
151210
  return isOnlineCached;
151211
151211
  }
151212
+ function allowPrereleaseInRange(rangeStr) {
151213
+ try {
151214
+ return new import_semver.default.Range(rangeStr).set.map((conj) => conj.map((c) => {
151215
+ const v = c.semver;
151216
+ if (v.prerelease && v.prerelease.length) return c.operator + v.format();
151217
+ return c.operator + v.major + "." + v.minor + "." + v.patch + "-0";
151218
+ }).join(" ")).join(" || ");
151219
+ } catch {
151220
+ return rangeStr;
151221
+ }
151222
+ }
151212
151223
  /**
151213
151224
  * Robust utility to fetch, cache, and resolve an NPM package.
151214
151225
  * Centralized in core-node to avoid circular dependencies.
@@ -151231,6 +151242,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151231
151242
  const ctx = options.context;
151232
151243
  const baseDir = ctx.getPackagesPath(packageName);
151233
151244
  let resolvedVersion;
151245
+ const includePrerelease = !!(ctx.releaseTag && ctx.releaseTag !== "latest");
151234
151246
  let resolvedVersionOrRange = versionOrRange;
151235
151247
  if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
151236
151248
  console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
@@ -151238,7 +151250,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151238
151250
  if (!await isOnline()) {
151239
151251
  console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
151240
151252
  const fallbackStart = Date.now();
151241
- const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
151253
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName, includePrerelease);
151242
151254
  if (fallbackVersion) {
151243
151255
  resolvedVersion = fallbackVersion;
151244
151256
  console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
@@ -151253,7 +151265,27 @@ async function fetchPackage(packageName, versionOrRange, options) {
151253
151265
  const packument = await packumentPromise;
151254
151266
  const versions = Object.keys(packument.versions);
151255
151267
  const range = resolvedVersionOrRange || "latest";
151256
- let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range);
151268
+ let foundVersion = packument["dist-tags"]?.[range] || import_semver.default.maxSatisfying(versions, range, { includePrerelease });
151269
+ if (!foundVersion && ctx.releaseTag && ctx.releaseTag !== "latest") {
151270
+ const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151271
+ if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
151272
+ const rewrittenRangeForCheck = allowPrereleaseInRange(range);
151273
+ if (import_semver.default.satisfies(releaseTagVersion, rewrittenRangeForCheck, { includePrerelease: true })) {
151274
+ console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) for ${packageName}@${range} because it satisfies the range`);
151275
+ foundVersion = releaseTagVersion;
151276
+ }
151277
+ }
151278
+ }
151279
+ if (!foundVersion && includePrerelease) {
151280
+ const rewrittenRange = allowPrereleaseInRange(range);
151281
+ if (rewrittenRange !== range) {
151282
+ const matched = import_semver.default.maxSatisfying(versions, rewrittenRange, { includePrerelease });
151283
+ if (matched) {
151284
+ console.log(`[Fetcher] Resolved ${packageName}@${range} to ${matched} via rewritten range ${rewrittenRange}`);
151285
+ foundVersion = matched;
151286
+ }
151287
+ }
151288
+ }
151257
151289
  if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
151258
151290
  const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151259
151291
  if (releaseTagVersion && import_semver.default.valid(releaseTagVersion)) {
@@ -151269,7 +151301,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151269
151301
  } catch (error) {
151270
151302
  console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
151271
151303
  const fallbackStart = Date.now();
151272
- const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName);
151304
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName, includePrerelease);
151273
151305
  if (fallbackVersion) {
151274
151306
  resolvedVersion = fallbackVersion;
151275
151307
  console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
@@ -151532,7 +151564,7 @@ async function crawlMonorepoPackages() {
151532
151564
  }
151533
151565
  return cache;
151534
151566
  }
151535
- async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
151567
+ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix, includePrerelease = false) {
151536
151568
  if (!existsSync(baseDir)) return null;
151537
151569
  try {
151538
151570
  const localVersions = (await readdir(baseDir, { withFileTypes: true })).filter((e) => e.isDirectory() || e.isSymbolicLink()).map((e) => e.name).filter((name) => !!import_semver.default.valid(name));
@@ -151545,7 +151577,7 @@ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
151545
151577
  return latestLocal;
151546
151578
  }
151547
151579
  } else {
151548
- const matched = import_semver.default.maxSatisfying(localVersions, range);
151580
+ const matched = import_semver.default.maxSatisfying(localVersions, range, { includePrerelease });
151549
151581
  if (matched) {
151550
151582
  console.info(`[Fetcher] ${logPrefix}: Using locally cached matching version: ${matched} for range ${range}`);
151551
151583
  return matched;
@@ -151709,11 +151741,15 @@ var src_default = createNodeDefinition({
151709
151741
  token: createStringParam("", {
151710
151742
  required: true,
151711
151743
  label: "Personal Access Token"
151744
+ }),
151745
+ site: createNetlifySiteParam("", "token", {
151746
+ required: true,
151747
+ label: "Netlify Site"
151712
151748
  })
151713
151749
  },
151714
151750
  outputs: {}
151715
151751
  }),
151716
- runner: createActionRunner(async ({ log, inputs, cwd, abortSignal, paths }) => {
151752
+ runner: createActionRunner(async ({ log, inputs, cwd, abortSignal, paths, context }) => {
151717
151753
  log("Building netlify site");
151718
151754
  const { node } = paths;
151719
151755
  const buildDir = join(cwd, "build");
@@ -151733,7 +151769,8 @@ var src_default = createNodeDefinition({
151733
151769
  "build"
151734
151770
  ],
151735
151771
  extraEnv: { NETLIFY_AUTH_TOKEN: inputs.token },
151736
- signal: abortSignal
151772
+ signal: abortSignal,
151773
+ context
151737
151774
  });
151738
151775
  if (buildOut) log(buildOut);
151739
151776
  const { all: deployOut } = await runPnpm(buildDir, {
@@ -151746,7 +151783,8 @@ var src_default = createNodeDefinition({
151746
151783
  "--prod"
151747
151784
  ],
151748
151785
  extraEnv: { NETLIFY_AUTH_TOKEN: inputs.token },
151749
- signal: abortSignal
151786
+ signal: abortSignal,
151787
+ context
151750
151788
  });
151751
151789
  if (deployOut) log(deployOut);
151752
151790
  log("Uploaded to netlify");