@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 +42 -9
- package/dist/index.mjs +42 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -6
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
152617
|
+
await forge("package", appFolder, options, completeConfiguration);
|
|
152585
152618
|
});
|
|
152586
152619
|
//#endregion
|
|
152587
152620
|
//#region src/index.ts
|