forked from olcxjas-softworks/LarpixClient
update electron to v43
This commit is contained in:
parent
68ac0beedf
commit
fb6c8b6ee9
5385 changed files with 513060 additions and 123058 deletions
97
electron/node_modules/electron-publish/out/snapStorePublisher.js
generated
vendored
Normal file
97
electron/node_modules/electron-publish/out/snapStorePublisher.js
generated
vendored
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.SnapStorePublisher = void 0;
|
||||
exports.resolveSnapCredentials = resolveSnapCredentials;
|
||||
const builder_util_1 = require("builder-util");
|
||||
const path = require("path");
|
||||
const publisher_1 = require("./publisher");
|
||||
class SnapStorePublisher extends publisher_1.Publisher {
|
||||
constructor(context, options, credentials) {
|
||||
super(context);
|
||||
this.context = context;
|
||||
this.options = options;
|
||||
this.credentials = credentials;
|
||||
this.providerName = "snapStore";
|
||||
}
|
||||
async upload(task) {
|
||||
var _a;
|
||||
this.createProgressBar(path.basename(task.file), -1);
|
||||
await checkSnapcraft();
|
||||
// Credentials are injected via SNAPCRAFT_STORE_CREDENTIALS so that the
|
||||
// snapcraft subprocess authenticates without an interactive login session.
|
||||
// Generate credentials with: snapcraft export-login -
|
||||
// https://documentation.ubuntu.com/snapcraft/stable/how-to/publishing/authenticate/
|
||||
const credEnv = await resolveSnapCredentials(this.credentials.cscLink, this.credentials.resourcesDir);
|
||||
// Channel format: [<track>/]<risk>[/<branch>] e.g. "stable", "edge", "lts/stable"
|
||||
// Multiple channels are comma-separated: "beta,edge"
|
||||
let channels = (_a = this.options.channels) !== null && _a !== void 0 ? _a : ["edge"];
|
||||
if (typeof channels === "string") {
|
||||
channels = channels.split(",");
|
||||
}
|
||||
// `snapcraft upload <snap-file> --release <channels>` uploads the snap and
|
||||
// immediately releases it to the specified channels upon store review.
|
||||
// https://documentation.ubuntu.com/snapcraft/stable/reference/commands/upload/
|
||||
const args = ["upload", task.file];
|
||||
if (channels.length > 0) {
|
||||
args.push("--release", channels.join(","));
|
||||
}
|
||||
return (0, builder_util_1.spawn)("snapcraft", args, {
|
||||
stdio: ["ignore", "inherit", "inherit"],
|
||||
env: { ...process.env, ...credEnv },
|
||||
});
|
||||
}
|
||||
toString() {
|
||||
return "Snap Store";
|
||||
}
|
||||
}
|
||||
exports.SnapStorePublisher = SnapStorePublisher;
|
||||
// Resolves Snap Store credentials from cscLink / SNAP_CSC_LINK and returns
|
||||
// them as { SNAPCRAFT_STORE_CREDENTIALS } so they can be injected into the
|
||||
// snapcraft subprocess environment. The value is the raw export-login output
|
||||
// (base64-encoded or a file path handled by loadCscLink).
|
||||
// https://documentation.ubuntu.com/snapcraft/stable/how-to/publishing/authenticate/
|
||||
async function resolveSnapCredentials(cscLink, resourcesDir) {
|
||||
var _a;
|
||||
const link = (_a = (cscLink !== null && cscLink !== void 0 ? cscLink : process.env.SNAP_CSC_LINK)) === null || _a === void 0 ? void 0 : _a.trim();
|
||||
if (!link) {
|
||||
return {};
|
||||
}
|
||||
const credentials = await (0, builder_util_1.loadCscLink)(link, resourcesDir);
|
||||
const trimmed = credentials.trim();
|
||||
if (!trimmed) {
|
||||
throw new Error("Resolved snap store credentials are empty");
|
||||
}
|
||||
return { SNAPCRAFT_STORE_CREDENTIALS: trimmed };
|
||||
}
|
||||
// Snapcraft 7 introduced SNAPCRAFT_STORE_CREDENTIALS as the standard
|
||||
// non-interactive credential mechanism. Earlier versions used a different
|
||||
// auth format that is no longer compatible with this publisher.
|
||||
// https://documentation.ubuntu.com/snapcraft/stable/how-to/publishing/authenticate/
|
||||
const REQUIRED_SNAPCRAFT_MAJOR = 7;
|
||||
async function checkSnapcraft() {
|
||||
const installMessage = process.platform === "darwin" ? "brew install snapcraft" : "sudo snap install snapcraft --classic";
|
||||
let versionOutput;
|
||||
try {
|
||||
versionOutput = await (0, builder_util_1.exec)("snapcraft", ["--version"]);
|
||||
}
|
||||
catch {
|
||||
throw new Error(`snapcraft is not installed, please: ${installMessage}`);
|
||||
}
|
||||
const trimmed = versionOutput.trim();
|
||||
// Edge-channel installs report "snapcraft, version edge" with no semver — skip the check.
|
||||
if (trimmed === "snapcraft, version edge") {
|
||||
return;
|
||||
}
|
||||
// Handles both output formats:
|
||||
// "snapcraft, version X.Y.Z" (snapcraft ≤ 6)
|
||||
// "snapcraft X.Y.Z" (snapcraft 7+)
|
||||
let s = trimmed.replace(/^snapcraft/, "").trim();
|
||||
s = s.replace(/^,/, "").trim();
|
||||
s = s.replace(/^version/, "").trim();
|
||||
s = s.replace(/^'|'$/g, "");
|
||||
const major = parseInt(s.split(".")[0], 10);
|
||||
if (!Number.isFinite(major) || major < REQUIRED_SNAPCRAFT_MAJOR) {
|
||||
throw new Error(`at least snapcraft ${REQUIRED_SNAPCRAFT_MAJOR}.0.0 is required, but ${trimmed} installed, please: ${installMessage}`);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=snapStorePublisher.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue