@pipelab/plugin-electron 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
@@ -89582,7 +89582,7 @@ const runWithLiveLogs = async (command, args, execaOptions, log, hooks, abortSig
89582
89582
  TERM: "xterm-256color",
89583
89583
  FORCE_STDERR_LOGGING: "1"
89584
89584
  },
89585
- cancelSignal: abortSignal
89585
+ cancelSignal: abortSignal ?? execaOptions.cancelSignal
89586
89586
  });
89587
89587
  hooks?.onCreated?.(subprocess);
89588
89588
  subprocess.stdout?.on("data", (data) => {
@@ -151288,6 +151288,17 @@ async function isOnline() {
151288
151288
  lastCheckTime = now;
151289
151289
  return isOnlineCached;
151290
151290
  }
151291
+ function allowPrereleaseInRange(rangeStr) {
151292
+ try {
151293
+ return new import_semver$1.default.Range(rangeStr).set.map((conj) => conj.map((c) => {
151294
+ const v = c.semver;
151295
+ if (v.prerelease && v.prerelease.length) return c.operator + v.format();
151296
+ return c.operator + v.major + "." + v.minor + "." + v.patch + "-0";
151297
+ }).join(" ")).join(" || ");
151298
+ } catch {
151299
+ return rangeStr;
151300
+ }
151301
+ }
151291
151302
  /**
151292
151303
  * Robust utility to fetch, cache, and resolve an NPM package.
151293
151304
  * Centralized in core-node to avoid circular dependencies.
@@ -151310,6 +151321,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151310
151321
  const ctx = options.context;
151311
151322
  const baseDir = ctx.getPackagesPath(packageName);
151312
151323
  let resolvedVersion;
151324
+ const includePrerelease = !!(ctx.releaseTag && ctx.releaseTag !== "latest");
151313
151325
  let resolvedVersionOrRange = versionOrRange;
151314
151326
  if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
151315
151327
  console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
@@ -151317,7 +151329,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151317
151329
  if (!await isOnline()) {
151318
151330
  console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
151319
151331
  const fallbackStart = Date.now();
151320
- const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
151332
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName, includePrerelease);
151321
151333
  if (fallbackVersion) {
151322
151334
  resolvedVersion = fallbackVersion;
151323
151335
  console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
@@ -151332,7 +151344,27 @@ async function fetchPackage(packageName, versionOrRange, options) {
151332
151344
  const packument = await packumentPromise;
151333
151345
  const versions = Object.keys(packument.versions);
151334
151346
  const range = resolvedVersionOrRange || "latest";
151335
- let foundVersion = packument["dist-tags"]?.[range] || import_semver$1.default.maxSatisfying(versions, range);
151347
+ let foundVersion = packument["dist-tags"]?.[range] || import_semver$1.default.maxSatisfying(versions, range, { includePrerelease });
151348
+ if (!foundVersion && ctx.releaseTag && ctx.releaseTag !== "latest") {
151349
+ const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151350
+ if (releaseTagVersion && import_semver$1.default.valid(releaseTagVersion)) {
151351
+ const rewrittenRangeForCheck = allowPrereleaseInRange(range);
151352
+ if (import_semver$1.default.satisfies(releaseTagVersion, rewrittenRangeForCheck, { includePrerelease: true })) {
151353
+ console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) for ${packageName}@${range} because it satisfies the range`);
151354
+ foundVersion = releaseTagVersion;
151355
+ }
151356
+ }
151357
+ }
151358
+ if (!foundVersion && includePrerelease) {
151359
+ const rewrittenRange = allowPrereleaseInRange(range);
151360
+ if (rewrittenRange !== range) {
151361
+ const matched = import_semver$1.default.maxSatisfying(versions, rewrittenRange, { includePrerelease });
151362
+ if (matched) {
151363
+ console.log(`[Fetcher] Resolved ${packageName}@${range} to ${matched} via rewritten range ${rewrittenRange}`);
151364
+ foundVersion = matched;
151365
+ }
151366
+ }
151367
+ }
151336
151368
  if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
151337
151369
  const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151338
151370
  if (releaseTagVersion && import_semver$1.default.valid(releaseTagVersion)) {
@@ -151348,7 +151380,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151348
151380
  } catch (error) {
151349
151381
  console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
151350
151382
  const fallbackStart = Date.now();
151351
- const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName);
151383
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName, includePrerelease);
151352
151384
  if (fallbackVersion) {
151353
151385
  resolvedVersion = fallbackVersion;
151354
151386
  console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
@@ -151611,7 +151643,7 @@ async function crawlMonorepoPackages() {
151611
151643
  }
151612
151644
  return cache;
151613
151645
  }
151614
- async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
151646
+ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix, includePrerelease = false) {
151615
151647
  if (!(0, node_fs.existsSync)(baseDir)) return null;
151616
151648
  try {
151617
151649
  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$1.default.valid(name));
@@ -151624,7 +151656,7 @@ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
151624
151656
  return latestLocal;
151625
151657
  }
151626
151658
  } else {
151627
- const matched = import_semver$1.default.maxSatisfying(localVersions, range);
151659
+ const matched = import_semver$1.default.maxSatisfying(localVersions, range, { includePrerelease });
151628
151660
  if (matched) {
151629
151661
  console.info(`[Fetcher] ${logPrefix}: Using locally cached matching version: ${matched} for range ${range}`);
151630
151662
  return matched;
@@ -152508,14 +152540,14 @@ const defaultElectronConfig = {
152508
152540
  const makeRunner = createActionRunner(async (options) => {
152509
152541
  const appFolder = options.inputs["input-folder"];
152510
152542
  if (!options.inputs.configuration) throw new Error("Missing electron configuration");
152511
- return await forge("make", appFolder, options, merge(defaultElectronConfig, options.inputs.configuration));
152543
+ await forge("make", appFolder, options, merge(defaultElectronConfig, options.inputs.configuration));
152512
152544
  });
152513
152545
  //#endregion
152514
152546
  //#region src/package.ts
152515
152547
  const packageRunner = createActionRunner(async (options) => {
152516
152548
  const appFolder = options.inputs["input-folder"];
152517
152549
  if (!options.inputs.configuration) throw new Error("Missing electron configuration");
152518
- return await forge("package", appFolder, options, merge(defaultElectronConfig, options.inputs.configuration));
152550
+ await forge("package", appFolder, options, merge(defaultElectronConfig, options.inputs.configuration));
152519
152551
  });
152520
152552
  //#endregion
152521
152553
  //#region src/preview.ts
@@ -152524,6 +152556,7 @@ const previewRunner = createActionRunner(async (options) => {
152524
152556
  if (url === "") throw new Error("URL can't be empty");
152525
152557
  if (!options.inputs.configuration) throw new Error("Missing electron configuration");
152526
152558
  const output = await forge("package", void 0, options, merge(defaultElectronConfig, options.inputs.configuration));
152559
+ if (!output || !output.binary) throw new Error("Failed to build electron package for preview");
152527
152560
  options.log("Opening preview", JSON.stringify(output));
152528
152561
  options.log("Opening url", url);
152529
152562
  await runWithLiveLogs(output.binary, ["--url", url], { cancelSignal: options.abortSignal }, options.log);
@@ -152587,7 +152620,7 @@ const packageV2Runner = createActionRunner(async (options) => {
152587
152620
  serverMode: options.inputs["serverMode"]
152588
152621
  });
152589
152622
  options.log("completeConfiguration", completeConfiguration);
152590
- return await forge("package", appFolder, options, completeConfiguration);
152623
+ await forge("package", appFolder, options, completeConfiguration);
152591
152624
  });
152592
152625
  //#endregion
152593
152626
  //#region src/index.ts
package/dist/index.mjs CHANGED
@@ -89575,7 +89575,7 @@ const runWithLiveLogs = async (command, args, execaOptions, log, hooks, abortSig
89575
89575
  TERM: "xterm-256color",
89576
89576
  FORCE_STDERR_LOGGING: "1"
89577
89577
  },
89578
- cancelSignal: abortSignal
89578
+ cancelSignal: abortSignal ?? execaOptions.cancelSignal
89579
89579
  });
89580
89580
  hooks?.onCreated?.(subprocess);
89581
89581
  subprocess.stdout?.on("data", (data) => {
@@ -151282,6 +151282,17 @@ async function isOnline() {
151282
151282
  lastCheckTime = now;
151283
151283
  return isOnlineCached;
151284
151284
  }
151285
+ function allowPrereleaseInRange(rangeStr) {
151286
+ try {
151287
+ return new import_semver$1.default.Range(rangeStr).set.map((conj) => conj.map((c) => {
151288
+ const v = c.semver;
151289
+ if (v.prerelease && v.prerelease.length) return c.operator + v.format();
151290
+ return c.operator + v.major + "." + v.minor + "." + v.patch + "-0";
151291
+ }).join(" ")).join(" || ");
151292
+ } catch {
151293
+ return rangeStr;
151294
+ }
151295
+ }
151285
151296
  /**
151286
151297
  * Robust utility to fetch, cache, and resolve an NPM package.
151287
151298
  * Centralized in core-node to avoid circular dependencies.
@@ -151304,6 +151315,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151304
151315
  const ctx = options.context;
151305
151316
  const baseDir = ctx.getPackagesPath(packageName);
151306
151317
  let resolvedVersion;
151318
+ const includePrerelease = !!(ctx.releaseTag && ctx.releaseTag !== "latest");
151307
151319
  let resolvedVersionOrRange = versionOrRange;
151308
151320
  if (resolvedVersionOrRange === "local") resolvedVersionOrRange = "latest";
151309
151321
  console.log(`[Fetcher] Resolving ${packageName}@${resolvedVersionOrRange || "latest"}...`);
@@ -151311,7 +151323,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151311
151323
  if (!await isOnline()) {
151312
151324
  console.warn(`[Fetcher] ${packageName}: offline mode detected (${Date.now() - resolveStart}ms), trying local fallback...`);
151313
151325
  const fallbackStart = Date.now();
151314
- const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName);
151326
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, /* @__PURE__ */ new Error("Offline"), baseDir, packageName, includePrerelease);
151315
151327
  if (fallbackVersion) {
151316
151328
  resolvedVersion = fallbackVersion;
151317
151329
  console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
@@ -151326,7 +151338,27 @@ async function fetchPackage(packageName, versionOrRange, options) {
151326
151338
  const packument = await packumentPromise;
151327
151339
  const versions = Object.keys(packument.versions);
151328
151340
  const range = resolvedVersionOrRange || "latest";
151329
- let foundVersion = packument["dist-tags"]?.[range] || import_semver$1.default.maxSatisfying(versions, range);
151341
+ let foundVersion = packument["dist-tags"]?.[range] || import_semver$1.default.maxSatisfying(versions, range, { includePrerelease });
151342
+ if (!foundVersion && ctx.releaseTag && ctx.releaseTag !== "latest") {
151343
+ const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151344
+ if (releaseTagVersion && import_semver$1.default.valid(releaseTagVersion)) {
151345
+ const rewrittenRangeForCheck = allowPrereleaseInRange(range);
151346
+ if (import_semver$1.default.satisfies(releaseTagVersion, rewrittenRangeForCheck, { includePrerelease: true })) {
151347
+ console.log(`[Fetcher] Using release tag "${ctx.releaseTag}" (${releaseTagVersion}) for ${packageName}@${range} because it satisfies the range`);
151348
+ foundVersion = releaseTagVersion;
151349
+ }
151350
+ }
151351
+ }
151352
+ if (!foundVersion && includePrerelease) {
151353
+ const rewrittenRange = allowPrereleaseInRange(range);
151354
+ if (rewrittenRange !== range) {
151355
+ const matched = import_semver$1.default.maxSatisfying(versions, rewrittenRange, { includePrerelease });
151356
+ if (matched) {
151357
+ console.log(`[Fetcher] Resolved ${packageName}@${range} to ${matched} via rewritten range ${rewrittenRange}`);
151358
+ foundVersion = matched;
151359
+ }
151360
+ }
151361
+ }
151330
151362
  if (range === "latest" && ctx.releaseTag && ctx.releaseTag !== "latest") {
151331
151363
  const releaseTagVersion = packument["dist-tags"]?.[ctx.releaseTag];
151332
151364
  if (releaseTagVersion && import_semver$1.default.valid(releaseTagVersion)) {
@@ -151342,7 +151374,7 @@ async function fetchPackage(packageName, versionOrRange, options) {
151342
151374
  } catch (error) {
151343
151375
  console.warn(`[Fetcher] ${packageName}: remote resolution failed (${Date.now() - resolveStart}ms), trying local fallback...`);
151344
151376
  const fallbackStart = Date.now();
151345
- const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName);
151377
+ const fallbackVersion = await tryLocalFallback(resolvedVersionOrRange, error, baseDir, packageName, includePrerelease);
151346
151378
  if (fallbackVersion) {
151347
151379
  resolvedVersion = fallbackVersion;
151348
151380
  console.log(`[Fetcher] ${packageName}: Resolved to local fallback ${resolvedVersion} (${Date.now() - fallbackStart}ms)`);
@@ -151605,7 +151637,7 @@ async function crawlMonorepoPackages() {
151605
151637
  }
151606
151638
  return cache;
151607
151639
  }
151608
- async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
151640
+ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix, includePrerelease = false) {
151609
151641
  if (!existsSync(baseDir)) return null;
151610
151642
  try {
151611
151643
  const localVersions = (await readdir(baseDir, { withFileTypes: true })).filter((e) => e.isDirectory() || e.isSymbolicLink()).map((e) => e.name).filter((name) => !!import_semver$1.default.valid(name));
@@ -151618,7 +151650,7 @@ async function tryLocalFallback(versionOrRange, _error, baseDir, logPrefix) {
151618
151650
  return latestLocal;
151619
151651
  }
151620
151652
  } else {
151621
- const matched = import_semver$1.default.maxSatisfying(localVersions, range);
151653
+ const matched = import_semver$1.default.maxSatisfying(localVersions, range, { includePrerelease });
151622
151654
  if (matched) {
151623
151655
  console.info(`[Fetcher] ${logPrefix}: Using locally cached matching version: ${matched} for range ${range}`);
151624
151656
  return matched;
@@ -152502,14 +152534,14 @@ const defaultElectronConfig = {
152502
152534
  const makeRunner = createActionRunner(async (options) => {
152503
152535
  const appFolder = options.inputs["input-folder"];
152504
152536
  if (!options.inputs.configuration) throw new Error("Missing electron configuration");
152505
- return await forge("make", appFolder, options, merge(defaultElectronConfig, options.inputs.configuration));
152537
+ await forge("make", appFolder, options, merge(defaultElectronConfig, options.inputs.configuration));
152506
152538
  });
152507
152539
  //#endregion
152508
152540
  //#region src/package.ts
152509
152541
  const packageRunner = createActionRunner(async (options) => {
152510
152542
  const appFolder = options.inputs["input-folder"];
152511
152543
  if (!options.inputs.configuration) throw new Error("Missing electron configuration");
152512
- return await forge("package", appFolder, options, merge(defaultElectronConfig, options.inputs.configuration));
152544
+ await forge("package", appFolder, options, merge(defaultElectronConfig, options.inputs.configuration));
152513
152545
  });
152514
152546
  //#endregion
152515
152547
  //#region src/preview.ts
@@ -152518,6 +152550,7 @@ const previewRunner = createActionRunner(async (options) => {
152518
152550
  if (url === "") throw new Error("URL can't be empty");
152519
152551
  if (!options.inputs.configuration) throw new Error("Missing electron configuration");
152520
152552
  const output = await forge("package", void 0, options, merge(defaultElectronConfig, options.inputs.configuration));
152553
+ if (!output || !output.binary) throw new Error("Failed to build electron package for preview");
152521
152554
  options.log("Opening preview", JSON.stringify(output));
152522
152555
  options.log("Opening url", url);
152523
152556
  await runWithLiveLogs(output.binary, ["--url", url], { cancelSignal: options.abortSignal }, options.log);
@@ -152581,7 +152614,7 @@ const packageV2Runner = createActionRunner(async (options) => {
152581
152614
  serverMode: options.inputs["serverMode"]
152582
152615
  });
152583
152616
  options.log("completeConfiguration", completeConfiguration);
152584
- return await forge("package", appFolder, options, completeConfiguration);
152617
+ await forge("package", appFolder, options, completeConfiguration);
152585
152618
  });
152586
152619
  //#endregion
152587
152620
  //#region src/index.ts