Update gitignore (sorry)

This commit is contained in:
olcxja 2026-05-10 14:02:17 +02:00
commit cca8b02fea
6604 changed files with 1219661 additions and 4 deletions

View file

@ -0,0 +1,8 @@
import { Lazy } from "lazy-val";
import { Packager } from "../packager";
export declare class ProjectInfoManager {
readonly packager: Packager;
readonly infoFile: Lazy<string>;
constructor(packager: Packager);
private saveConfigurationAndMetadata;
}

View file

@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProjectInfoManager = void 0;
const fs_extra_1 = require("fs-extra");
const lazy_val_1 = require("lazy-val");
const path = require("path");
class ProjectInfoManager {
constructor(packager) {
this.packager = packager;
this.infoFile = new lazy_val_1.Lazy(() => this.saveConfigurationAndMetadata());
}
async saveConfigurationAndMetadata() {
const packager = this.packager;
const tempDir = await packager.tempDirManager.createTempDir({ prefix: "remote-build-metadata" });
// we cannot use getTempFile because file name must be constant
const info = {
metadata: packager.metadata,
configuration: packager.config,
repositoryInfo: await packager.repositoryInfo,
buildResourceDirName: path.basename(packager.buildResourcesDir),
};
if (packager.metadata !== packager.devMetadata && packager.devMetadata != null) {
info.devMetadata = packager.devMetadata;
}
const file = path.join(tempDir, "info.json");
await fs_extra_1.outputJson(file, info);
return file;
}
}
exports.ProjectInfoManager = ProjectInfoManager;
//# sourceMappingURL=ProjectInfoManager.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"ProjectInfoManager.js","sourceRoot":"","sources":["../../src/remoteBuilder/ProjectInfoManager.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AACrC,uCAA+B;AAC/B,6BAA4B;AAG5B,MAAa,kBAAkB;IAG7B,YAAqB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAF9B,aAAQ,GAAG,IAAI,eAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAA;IAE7B,CAAC;IAEnC,KAAK,CAAC,4BAA4B;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAA;QAChG,+DAA+D;QAC/D,MAAM,IAAI,GAAQ;YAChB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,cAAc,EAAE,MAAM,QAAQ,CAAC,cAAc;YAC7C,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAChE,CAAA;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE;YAC9E,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;SACxC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC5C,MAAM,qBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAtBD,gDAsBC","sourcesContent":["import { outputJson } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Packager } from \"../packager\"\n\nexport class ProjectInfoManager {\n readonly infoFile = new Lazy(() => this.saveConfigurationAndMetadata())\n\n constructor(readonly packager: Packager) {}\n\n private async saveConfigurationAndMetadata() {\n const packager = this.packager\n const tempDir = await packager.tempDirManager.createTempDir({ prefix: \"remote-build-metadata\" })\n // we cannot use getTempFile because file name must be constant\n const info: any = {\n metadata: packager.metadata,\n configuration: packager.config,\n repositoryInfo: await packager.repositoryInfo,\n buildResourceDirName: path.basename(packager.buildResourcesDir),\n }\n if (packager.metadata !== packager.devMetadata && packager.devMetadata != null) {\n info.devMetadata = packager.devMetadata\n }\n const file = path.join(tempDir, \"info.json\")\n await outputJson(file, info)\n return file\n }\n}\n"]}

View file

@ -0,0 +1,13 @@
import { Arch } from "builder-util";
import { Target } from "../core";
import { PlatformPackager } from "../platformPackager";
export declare class RemoteBuilder {
readonly packager: PlatformPackager<any>;
private readonly toBuild;
private buildStarted;
constructor(packager: PlatformPackager<any>);
scheduleBuild(target: Target, arch: Arch, unpackedDirectory: string): void;
build(): Promise<any>;
private _build;
private artifactInfoToArtifactCreatedEvent;
}

View file

@ -0,0 +1,113 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RemoteBuilder = void 0;
const bluebird_lst_1 = require("bluebird-lst");
const builder_util_1 = require("builder-util");
const path = require("path");
const core_1 = require("../core");
const platformPackager_1 = require("../platformPackager");
const appBuilder_1 = require("../util/appBuilder");
const ProjectInfoManager_1 = require("./ProjectInfoManager");
class RemoteBuilder {
constructor(packager) {
this.packager = packager;
this.toBuild = new Map();
this.buildStarted = false;
}
scheduleBuild(target, arch, unpackedDirectory) {
if (!builder_util_1.isEnvTrue(process.env._REMOTE_BUILD) && this.packager.config.remoteBuild === false) {
throw new builder_util_1.InvalidConfigurationError('Target is not supported on your OS and using of Electron Build Service is disabled ("remoteBuild" option)');
}
let list = this.toBuild.get(arch);
if (list == null) {
list = [];
this.toBuild.set(arch, list);
}
list.push({
name: target.name,
arch: builder_util_1.Arch[arch],
unpackedDirectory,
outDir: target.outDir,
});
}
build() {
if (this.buildStarted) {
return Promise.resolve();
}
this.buildStarted = true;
return bluebird_lst_1.default.mapSeries(Array.from(this.toBuild.keys()), (arch) => {
return this._build(this.toBuild.get(arch), this.packager);
});
}
// noinspection JSMethodCanBeStatic
async _build(targets, packager) {
if (builder_util_1.log.isDebugEnabled) {
builder_util_1.log.debug({ remoteTargets: JSON.stringify(targets, null, 2) }, "remote building");
}
const projectInfoManager = new ProjectInfoManager_1.ProjectInfoManager(packager.info);
const buildRequest = {
targets: targets.map(it => {
return {
name: it.name,
arch: it.arch,
unpackedDirName: path.basename(it.unpackedDirectory),
};
}),
platform: packager.platform.buildConfigurationKey,
};
if (platformPackager_1.isSafeToUnpackElectronOnRemoteBuildServer(packager)) {
buildRequest.electronDownload = {
version: packager.info.framework.version,
platform: core_1.Platform.LINUX.nodeName,
arch: targets[0].arch,
};
const linuxPackager = packager;
buildRequest.executableName = linuxPackager.executableName;
}
const req = Buffer.from(JSON.stringify(buildRequest)).toString("base64");
const outDir = targets[0].outDir;
const args = ["remote-build", "--request", req, "--output", outDir];
args.push("--file", targets[0].unpackedDirectory);
args.push("--file", await projectInfoManager.infoFile.value);
const buildResourcesDir = packager.buildResourcesDir;
if (buildResourcesDir === packager.projectDir) {
throw new builder_util_1.InvalidConfigurationError(`Build resources dir equals to project dir and so, not sent to remote build agent. It will lead to incorrect results.\nPlease set "directories.buildResources" to separate dir or leave default ("build" directory in the project root)`);
}
args.push("--build-resource-dir", buildResourcesDir);
const result = await appBuilder_1.executeAppBuilderAsJson(args);
if (result.error != null) {
throw new builder_util_1.InvalidConfigurationError(`Remote builder error (if you think that it is not your application misconfiguration issue, please file issue to https://github.com/electron-userland/electron-builder/issues):\n\n${result.error}`, "REMOTE_BUILDER_ERROR");
}
else if (result.files != null) {
for (const artifact of result.files) {
const localFile = path.join(outDir, artifact.file);
const artifactCreatedEvent = this.artifactInfoToArtifactCreatedEvent(artifact, localFile, outDir);
// PublishManager uses outDir and options, real (the same as for local build) values must be used
await this.packager.info.callArtifactBuildCompleted(artifactCreatedEvent);
}
}
}
artifactInfoToArtifactCreatedEvent(artifact, localFile, outDir) {
const target = artifact.target;
// noinspection SpellCheckingInspection
return {
...artifact,
file: localFile,
target: target == null ? null : new FakeTarget(target, outDir, this.packager.config[target]),
packager: this.packager,
};
}
}
exports.RemoteBuilder = RemoteBuilder;
class FakeTarget extends core_1.Target {
constructor(name, outDir, options) {
super(name);
this.outDir = outDir;
this.options = options;
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async build(appOutDir, arch) {
// no build
}
}
//# sourceMappingURL=RemoteBuilder.js.map

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
export {};

View file

@ -0,0 +1,85 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs_extra_1 = require("fs-extra");
const path = require("path");
const builder_util_1 = require("builder-util");
const packager_1 = require("../packager");
if (process.env.BUILDER_REMOVE_STAGE_EVEN_IF_DEBUG == null) {
process.env.BUILDER_REMOVE_STAGE_EVEN_IF_DEBUG = "true";
}
async function doBuild(data) {
if (process.env.APP_BUILDER_TMP_DIR == null) {
throw new builder_util_1.InvalidConfigurationError("Env APP_BUILDER_TMP_DIR must be set for builder process");
}
const projectDir = process.env.PROJECT_DIR;
if (projectDir == null) {
throw new builder_util_1.InvalidConfigurationError("Env PROJECT_DIR must be set for builder process");
}
const targets = data.targets;
if (data.platform == null) {
throw new builder_util_1.InvalidConfigurationError("platform not specified");
}
if (targets == null) {
throw new builder_util_1.InvalidConfigurationError("targets path not specified");
}
if (!Array.isArray(targets)) {
throw new builder_util_1.InvalidConfigurationError("targets must be array of target name");
}
const infoFile = projectDir + path.sep + "info.json";
const info = await fs_extra_1.readJson(infoFile);
const projectOutDir = process.env.PROJECT_OUT_DIR;
if (projectDir == null) {
throw new builder_util_1.InvalidConfigurationError("Env PROJECT_OUT_DIR must be set for builder process");
}
// yes, for now we expect the only target
const prepackaged = projectDir + path.sep + targets[0].unpackedDirName;
// do not use build function because we don't need to publish artifacts
const options = {
prepackaged,
projectDir,
[data.platform]: targets.map(it => it.name + ":" + it.arch),
publish: "never",
};
const packager = new packager_1.Packager(options);
const artifacts = [];
const relativePathOffset = projectOutDir.length + 1;
packager.artifactCreated(event => {
if (event.file == null) {
return;
}
artifacts.push({
file: event.file.substring(relativePathOffset),
target: event.target == null ? null : event.target.name,
arch: event.arch,
safeArtifactName: event.safeArtifactName,
isWriteUpdateInfo: event.isWriteUpdateInfo === true,
updateInfo: event.updateInfo,
});
});
packager.stageDirPathCustomizer = (target, packager, arch) => {
// snap creates a lot of files and so, we cannot use tmpfs to avoid out of memory error
const parentDir = target.name === "snap" && !target.isUseTemplateApp ? projectOutDir : projectDir;
return `${parentDir}${path.sep}__${target.name}-${builder_util_1.Arch[arch]}`;
};
// _build method expects final effective configuration - packager.options.config is ignored
await packager._build({
...info.configuration,
publish: null,
beforeBuild: null,
afterPack: null,
afterSign: null,
afterAllArtifactBuild: null,
onNodeModuleFile: null,
directories: {
output: projectOutDir,
buildResources: `${projectDir}${path.sep}${info.buildResourceDirName}`,
},
}, info.metadata, info.devMetadata, info.repositoryInfo);
// writeJson must be not used because it adds unwanted \n as last file symbol
await fs_extra_1.writeFile(path.join(process.env.APP_BUILDER_TMP_DIR, "__build-result.json"), JSON.stringify(artifacts));
}
doBuild(JSON.parse(process.argv[2])).catch(error => {
process.exitCode = 0;
return fs_extra_1.writeFile(path.join(process.env.APP_BUILDER_TMP_DIR, "__build-result.json"), (error.stack || error).toString());
});
//# sourceMappingURL=builder-cli.js.map

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,3 @@
/// <reference types="node" />
export declare const ELECTRON_BUILD_SERVICE_LOCAL_CA_CERT: Buffer;
export declare const ELECTRON_BUILD_SERVICE_CA_CERT: Buffer;

View file

@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ELECTRON_BUILD_SERVICE_CA_CERT = exports.ELECTRON_BUILD_SERVICE_LOCAL_CA_CERT = void 0;
// noinspection SpellCheckingInspection
exports.ELECTRON_BUILD_SERVICE_LOCAL_CA_CERT = Buffer.from(`-----BEGIN CERTIFICATE-----
MIIBiDCCAS+gAwIBAgIRAPHSzTRLcN2nElhQdaRP47IwCgYIKoZIzj0EAwIwJDEi
MCAGA1UEAxMZZWxlY3Ryb24uYnVpbGQubG9jYWwgcm9vdDAeFw0xNzExMTMxNzI4
NDFaFw0yNzExMTExNzI4NDFaMCQxIjAgBgNVBAMTGWVsZWN0cm9uLmJ1aWxkLmxv
Y2FsIHJvb3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQVyduuCT2acuk2QH06
yal/b6O7eTTpOHk3Ucjc+ZZta2vC2+c1IKcSAwimKbTbK+nRxWWJl9ZYx9RTwbRf
QjD6o0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
FgQUlm08vBe4CUNAOTQN5Z1RNTfJjjYwCgYIKoZIzj0EAwIDRwAwRAIgMXlT6YM8
4pQtnhUjijVMz+NlcYafS1CEbNBMaWhP87YCIGXUmu7ON9hRLanXzBNBlrtTQG+i
l/NT6REwZA64/lNy
-----END CERTIFICATE-----
`);
// noinspection SpellCheckingInspection
exports.ELECTRON_BUILD_SERVICE_CA_CERT = Buffer.from(`-----BEGIN CERTIFICATE-----
MIIBfTCCASOgAwIBAgIRAIdieK1+3C4abgOvQ7pVVqAwCgYIKoZIzj0EAwIwHjEc
MBoGA1UEAxMTZWxlY3Ryb24uYnVpbGQgcm9vdDAeFw0xNzExMTMxNzI4NDFaFw0x
ODExMTMxNzI4NDFaMB4xHDAaBgNVBAMTE2VsZWN0cm9uLmJ1aWxkIHJvb3QwWTAT
BgcqhkjOPQIBBggqhkjOPQMBBwNCAAR+4b6twzizN/z27yvwrCV5kinGUrfo+W7n
L/l28ErscNe1BDSyh/IYrnMWb1rDMSLGhvkgI9Cfex1whNPHR101o0IwQDAOBgNV
HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU6Dq8kK7tQlrt
zkIYrYiTZGpHEp0wCgYIKoZIzj0EAwIDSAAwRQIgKSfjAQbYlY/S1wMLUi84r8QN
hhMnUwsOmlDan0xPalICIQDLIAXAIyArVtH38a4aizvhH8YeXrxzpJh3U8RolBZF
SA==
-----END CERTIFICATE-----
`);
//# sourceMappingURL=remote-builder-certs.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"remote-builder-certs.js","sourceRoot":"","sources":["../../src/remoteBuilder/remote-builder-certs.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AAC1B,QAAA,oCAAoC,GAAG,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;CAW/D,CAAC,CAAA;AAEF,uCAAuC;AAC1B,QAAA,8BAA8B,GAAG,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;CAWzD,CAAC,CAAA","sourcesContent":["// noinspection SpellCheckingInspection\nexport const ELECTRON_BUILD_SERVICE_LOCAL_CA_CERT = Buffer.from(`-----BEGIN CERTIFICATE-----\nMIIBiDCCAS+gAwIBAgIRAPHSzTRLcN2nElhQdaRP47IwCgYIKoZIzj0EAwIwJDEi\nMCAGA1UEAxMZZWxlY3Ryb24uYnVpbGQubG9jYWwgcm9vdDAeFw0xNzExMTMxNzI4\nNDFaFw0yNzExMTExNzI4NDFaMCQxIjAgBgNVBAMTGWVsZWN0cm9uLmJ1aWxkLmxv\nY2FsIHJvb3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQVyduuCT2acuk2QH06\nyal/b6O7eTTpOHk3Ucjc+ZZta2vC2+c1IKcSAwimKbTbK+nRxWWJl9ZYx9RTwbRf\nQjD6o0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E\nFgQUlm08vBe4CUNAOTQN5Z1RNTfJjjYwCgYIKoZIzj0EAwIDRwAwRAIgMXlT6YM8\n4pQtnhUjijVMz+NlcYafS1CEbNBMaWhP87YCIGXUmu7ON9hRLanXzBNBlrtTQG+i\nl/NT6REwZA64/lNy\n-----END CERTIFICATE-----\n`)\n\n// noinspection SpellCheckingInspection\nexport const ELECTRON_BUILD_SERVICE_CA_CERT = Buffer.from(`-----BEGIN CERTIFICATE-----\nMIIBfTCCASOgAwIBAgIRAIdieK1+3C4abgOvQ7pVVqAwCgYIKoZIzj0EAwIwHjEc\nMBoGA1UEAxMTZWxlY3Ryb24uYnVpbGQgcm9vdDAeFw0xNzExMTMxNzI4NDFaFw0x\nODExMTMxNzI4NDFaMB4xHDAaBgNVBAMTE2VsZWN0cm9uLmJ1aWxkIHJvb3QwWTAT\nBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR+4b6twzizN/z27yvwrCV5kinGUrfo+W7n\nL/l28ErscNe1BDSyh/IYrnMWb1rDMSLGhvkgI9Cfex1whNPHR101o0IwQDAOBgNV\nHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU6Dq8kK7tQlrt\nzkIYrYiTZGpHEp0wCgYIKoZIzj0EAwIDSAAwRQIgKSfjAQbYlY/S1wMLUi84r8QN\nhhMnUwsOmlDan0xPalICIQDLIAXAIyArVtH38a4aizvhH8YeXrxzpJh3U8RolBZF\nSA==\n-----END CERTIFICATE-----\n`)\n"]}