app-builder-lib 22.7.0 → 22.9.1
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/electron-osx-sign/index.d.ts +1 -0
- package/electron-osx-sign/sign.js +12 -1
- package/out/asar/asarUtil.js +1 -1
- package/out/asar/asarUtil.js.map +1 -1
- package/out/codeSign/windowsCodeSign.js +2 -2
- package/out/codeSign/windowsCodeSign.js.map +1 -1
- package/out/configuration.d.ts +1 -1
- package/out/configuration.js +4 -0
- package/out/core.js +43 -49
- package/out/core.js.map +1 -1
- package/out/electron/electronVersion.js +3 -3
- package/out/electron/electronVersion.js.map +1 -1
- package/out/fileTransformer.js +1 -1
- package/out/fileTransformer.js.map +1 -1
- package/out/index.js +1 -1
- package/out/index.js.map +1 -1
- package/out/macPackager.js +25 -2
- package/out/macPackager.js.map +1 -1
- package/out/options/AppXOptions.js +4 -0
- package/out/options/FileAssociation.js +4 -0
- package/out/options/MsiOptions.js +4 -0
- package/out/options/PlatformSpecificBuildOptions.js +4 -0
- package/out/options/SnapOptions.d.ts +18 -0
- package/out/options/SnapOptions.js +4 -0
- package/out/options/SquirrelWindowsOptions.js +4 -0
- package/out/options/linuxOptions.js +4 -0
- package/out/options/macOptions.d.ts +15 -0
- package/out/options/macOptions.js +4 -0
- package/out/options/metadata.js +4 -0
- package/out/options/pkgOptions.js +4 -0
- package/out/options/winOptions.d.ts +1 -1
- package/out/options/winOptions.js +4 -0
- package/out/packager.js +1 -1
- package/out/packagerApi.js +4 -0
- package/out/platformPackager.js +1 -1
- package/out/platformPackager.js.map +1 -1
- package/out/publish/PublishManager.js +1 -1
- package/out/publish/PublishManager.js.map +1 -1
- package/out/publish/updateInfoBuilder.js +1 -1
- package/out/publish/updateInfoBuilder.js.map +1 -1
- package/out/remoteBuilder/RemoteBuilder.js +1 -1
- package/out/remoteBuilder/RemoteBuilder.js.map +1 -1
- package/out/targets/AppImageTarget.js +1 -1
- package/out/targets/AppImageTarget.js.map +1 -1
- package/out/targets/AppxTarget.js +3 -3
- package/out/targets/AppxTarget.js.map +1 -1
- package/out/targets/MsiTarget.js +2 -2
- package/out/targets/MsiTarget.js.map +1 -1
- package/out/targets/archive.js +1 -1
- package/out/targets/archive.js.map +1 -1
- package/out/targets/fpm.js +1 -1
- package/out/targets/fpm.js.map +1 -1
- package/out/targets/nsis/NsisTarget.js +42 -3
- package/out/targets/nsis/NsisTarget.js.map +1 -1
- package/out/targets/nsis/WebInstallerTarget.js +1 -1
- package/out/targets/nsis/WebInstallerTarget.js.map +1 -1
- package/out/targets/nsis/nsisLang.js +2 -2
- package/out/targets/nsis/nsisLang.js.map +1 -1
- package/out/targets/nsis/nsisOptions.js +4 -0
- package/out/targets/snap.js +15 -2
- package/out/targets/snap.js.map +1 -1
- package/out/targets/targetUtil.js +1 -1
- package/out/targets/targetUtil.js.map +1 -1
- package/out/util/appFileCopier.js +1 -1
- package/out/util/appFileCopier.js.map +1 -1
- package/out/util/cacheManager.js +56 -62
- package/out/util/cacheManager.js.map +1 -1
- package/out/util/config.js +2 -2
- package/out/util/config.js.map +1 -1
- package/out/util/macosVersion.js +1 -1
- package/out/util/macosVersion.js.map +1 -1
- package/out/util/yarn.js +1 -1
- package/out/util/yarn.js.map +1 -1
- package/out/winPackager.js +2 -2
- package/out/winPackager.js.map +1 -1
- package/package.json +31 -31
- package/scheme.json +130 -29
- package/templates/nsis/assistedInstaller.nsh +18 -14
- package/templates/nsis/assistedMessages.yml +17 -0
- package/templates/nsis/include/installUtil.nsh +1 -5
- package/templates/nsis/messages.yml +5 -0
- package/templates/nsis/portable.nsi +3 -1
- package/templates/snap/snapcraft.yaml +9 -1
|
@@ -9,6 +9,7 @@ interface SignOptions extends BaseSignOptions {
|
|
|
9
9
|
binaries?: string[];
|
|
10
10
|
entitlements?: string;
|
|
11
11
|
'entitlements-inherit'?: string;
|
|
12
|
+
'entitlements-loginhelper'?: string;
|
|
12
13
|
'gatekeeper-assess'?: boolean;
|
|
13
14
|
hardenedRuntime?: boolean;
|
|
14
15
|
'identity-validation'?: boolean;
|
|
@@ -206,7 +206,12 @@ function signApplicationAsync (opts) {
|
|
|
206
206
|
continue
|
|
207
207
|
}
|
|
208
208
|
debuglog('Signing... ' + filePath)
|
|
209
|
-
|
|
209
|
+
let entitlementsFile = opts['entitlements-inherit']
|
|
210
|
+
if (filePath.includes('Library/LoginItems')) {
|
|
211
|
+
entitlementsFile = opts['entitlements-loginhelper']
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
await execFileAsync('codesign', args.concat('--entitlements', entitlementsFile, filePath))
|
|
210
215
|
}
|
|
211
216
|
debuglog('Signing... ' + opts.app)
|
|
212
217
|
await execFileAsync('codesign', args.concat('--entitlements', opts.entitlements, opts.app))
|
|
@@ -335,6 +340,12 @@ const signAsync = module.exports.signAsync = function (opts) {
|
|
|
335
340
|
}
|
|
336
341
|
}
|
|
337
342
|
}
|
|
343
|
+
if (!opts['entitlements-loginhelper']) {
|
|
344
|
+
filePath = opts.entitlements
|
|
345
|
+
debugwarn('No `entitlements-loginhelper` passed in arguments:', '\n',
|
|
346
|
+
'* Sandbox entitlements file for login helper is default to:', filePath)
|
|
347
|
+
opts['entitlements-loginhelper'] = filePath
|
|
348
|
+
}
|
|
338
349
|
})
|
|
339
350
|
.then(async function () {
|
|
340
351
|
// Pre-sign operations
|
package/out/asar/asarUtil.js
CHANGED
|
@@ -100,7 +100,7 @@ class AsarPackager {
|
|
|
100
100
|
const unpackedFileIndexMap = new Map();
|
|
101
101
|
|
|
102
102
|
for (const fileSet of fileSets) {
|
|
103
|
-
unpackedFileIndexMap.set(fileSet,
|
|
103
|
+
unpackedFileIndexMap.set(fileSet, await this.createPackageFromFiles(fileSet, packager.info));
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
await this.writeAsarFile(fileSets, unpackedFileIndexMap);
|
package/out/asar/asarUtil.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/asar/asarUtil.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncTaskManager, log } from \"builder-util\"\nimport { FileCopier, Filter, MAX_FILE_REQUESTS } from \"builder-util/out/fs\"\nimport { symlink } from \"fs\"\nimport { createReadStream, createWriteStream, ensureDir, readFile, Stats, writeFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { AsarOptions } from \"..\"\nimport { Packager } from \"../packager\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { getDestinationPath, ResolvedFileSet } from \"../util/appFileCopier\"\nimport { AsarFilesystem, Node } from \"./asar\"\nimport { detectUnpackedDirs } from \"./unpackDetector\"\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pickle = require(\"chromium-pickle-js\")\n\n/** @internal */\nexport class AsarPackager {\n private readonly fs = new AsarFilesystem(this.src)\n private readonly outFile: string\n private readonly unpackedDest: string\n\n constructor(private readonly src: string, private readonly destination: string, private readonly options: AsarOptions, private readonly unpackPattern: Filter | null) {\n this.outFile = path.join(destination, \"app.asar\")\n this.unpackedDest = `${this.outFile}.unpacked`\n }\n\n // sort files to minimize file change (i.e. asar file is not changed dramatically on small change)\n async pack(fileSets: Array<ResolvedFileSet>, packager: PlatformPackager<any>) {\n if (this.options.ordering != null) {\n // ordering doesn't support transformed files, but ordering is not used functionality - wait user report to fix it\n await order(fileSets[0].files, this.options.ordering, fileSets[0].src)\n }\n await ensureDir(path.dirname(this.outFile))\n const unpackedFileIndexMap = new Map<ResolvedFileSet, Set<number>>()\n for (const fileSet of fileSets) {\n unpackedFileIndexMap.set(fileSet, await this.createPackageFromFiles(fileSet, packager.info))\n }\n await this.writeAsarFile(fileSets, unpackedFileIndexMap)\n }\n\n private async createPackageFromFiles(fileSet: ResolvedFileSet, packager: Packager) {\n const metadata = fileSet.metadata\n // search auto unpacked dir\n const unpackedDirs = new Set<string>()\n const rootForAppFilesWithoutAsar = path.join(this.destination, \"app\")\n\n if (this.options.smartUnpack !== false) {\n await detectUnpackedDirs(fileSet, unpackedDirs, this.unpackedDest, rootForAppFilesWithoutAsar)\n }\n\n const dirToCreateForUnpackedFiles = new Set<string>(unpackedDirs)\n\n const correctDirNodeUnpackedFlag = async (filePathInArchive: string, dirNode: Node) => {\n for (const dir of unpackedDirs) {\n if (filePathInArchive.length > (dir.length + 2) && filePathInArchive[dir.length] === path.sep && filePathInArchive.startsWith(dir)) {\n dirNode.unpacked = true\n unpackedDirs.add(filePathInArchive)\n // not all dirs marked as unpacked after first iteration - because node module dir can be marked as unpacked after processing node module dir content\n // e.g. node-notifier/example/advanced.js processed, but only on process vendor/terminal-notifier.app module will be marked as unpacked\n await ensureDir(path.join(this.unpackedDest, filePathInArchive))\n break\n }\n }\n }\n\n const transformedFiles = fileSet.transformedFiles\n const taskManager = new AsyncTaskManager(packager.cancellationToken)\n const fileCopier = new FileCopier()\n\n let currentDirNode: Node | null = null\n let currentDirPath: string | null = null\n\n const unpackedFileIndexSet = new Set<number>()\n\n for (let i = 0, n = fileSet.files.length; i < n; i++) {\n const file = fileSet.files[i]\n const stat = metadata.get(file)\n if (stat == null) {\n continue\n }\n\n const pathInArchive = path.relative(rootForAppFilesWithoutAsar, getDestinationPath(file, fileSet))\n\n if (stat.isSymbolicLink()) {\n const s = (stat as any)\n this.fs.getOrCreateNode(pathInArchive).link = s.relativeLink\n s.pathInArchive = pathInArchive\n unpackedFileIndexSet.add(i)\n continue\n }\n\n let fileParent = path.dirname(pathInArchive)\n if (fileParent === \".\") {\n fileParent = \"\"\n }\n\n if (currentDirPath !== fileParent) {\n if (fileParent.startsWith(\"..\")) {\n throw new Error(`Internal error: path must not start with \"..\": ${fileParent}`)\n }\n\n currentDirPath = fileParent\n currentDirNode = this.fs.getOrCreateNode(fileParent)\n // do not check for root\n if (fileParent !== \"\" && !currentDirNode.unpacked) {\n if (unpackedDirs.has(fileParent)) {\n currentDirNode.unpacked = true\n }\n else {\n await correctDirNodeUnpackedFlag(fileParent, currentDirNode)\n }\n }\n }\n\n const dirNode = currentDirNode!\n const newData = transformedFiles == null ? null : transformedFiles.get(i)\n const isUnpacked = dirNode.unpacked || (this.unpackPattern != null && this.unpackPattern(file, stat))\n this.fs.addFileNode(file, dirNode, newData == null ? stat.size : Buffer.byteLength(newData), isUnpacked, stat)\n if (isUnpacked) {\n if (!dirNode.unpacked && !dirToCreateForUnpackedFiles.has(fileParent)) {\n dirToCreateForUnpackedFiles.add(fileParent)\n await ensureDir(path.join(this.unpackedDest, fileParent))\n }\n\n const unpackedFile = path.join(this.unpackedDest, pathInArchive)\n taskManager.addTask(copyFileOrData(fileCopier, newData, file, unpackedFile, stat))\n if (taskManager.tasks.length > MAX_FILE_REQUESTS) {\n await taskManager.awaitTasks()\n }\n\n unpackedFileIndexSet.add(i)\n }\n }\n\n if (taskManager.tasks.length > 0) {\n await taskManager.awaitTasks()\n }\n\n return unpackedFileIndexSet\n }\n\n private writeAsarFile(fileSets: Array<ResolvedFileSet>, unpackedFileIndexMap: Map<ResolvedFileSet, Set<number>>): Promise<any> {\n return new Promise((resolve, reject) => {\n const headerPickle = pickle.createEmpty()\n headerPickle.writeString(JSON.stringify(this.fs.header))\n const headerBuf = headerPickle.toBuffer()\n\n const sizePickle = pickle.createEmpty()\n sizePickle.writeUInt32(headerBuf.length)\n\n const sizeBuf = sizePickle.toBuffer()\n const writeStream = createWriteStream(this.outFile)\n writeStream.on(\"error\", reject)\n writeStream.on(\"close\", resolve)\n writeStream.write(sizeBuf)\n\n let fileSetIndex = 0\n\n let files = fileSets[0].files\n let metadata = fileSets[0].metadata\n let transformedFiles = fileSets[0].transformedFiles\n let unpackedFileIndexSet = unpackedFileIndexMap.get(fileSets[0])!!\n const w = (index: number) => {\n while (true) {\n if (index >= files.length) {\n if (++fileSetIndex >= fileSets.length) {\n writeStream.end()\n return\n }\n else {\n files = fileSets[fileSetIndex].files\n metadata = fileSets[fileSetIndex].metadata\n transformedFiles = fileSets[fileSetIndex].transformedFiles\n unpackedFileIndexSet = unpackedFileIndexMap.get(fileSets[fileSetIndex])!!\n index = 0\n }\n }\n\n if (!unpackedFileIndexSet.has(index)) {\n break\n }\n else {\n const stat = metadata.get(files[index])\n if (stat != null && stat.isSymbolicLink()) {\n symlink((stat as any).linkRelativeToFile, path.join(this.unpackedDest, (stat as any).pathInArchive), () => w(index + 1))\n return\n }\n }\n index++\n }\n\n const data = transformedFiles == null ? null : transformedFiles.get(index)\n const file = files[index]\n if (data !== null && data !== undefined) {\n writeStream.write(data, () => w(index + 1))\n return\n }\n\n // https://github.com/yarnpkg/yarn/pull/3539\n const stat = metadata.get(file)\n if (stat != null && stat.size < (2 * 1024 * 1024)) {\n readFile(file)\n .then(it => {\n writeStream.write(it, () => w(index + 1))\n })\n .catch(e => reject(`Cannot read file ${file}: ${e.stack || e}`))\n }\n else {\n const readStream = createReadStream(file)\n readStream.on(\"error\", reject)\n readStream.once(\"end\", () => w(index + 1))\n readStream.pipe(writeStream, {\n end: false\n })\n }\n }\n\n writeStream.write(headerBuf, () => w(0))\n })\n }\n}\n\nasync function order(filenames: Array<string>, orderingFile: string, src: string) {\n const orderingFiles = (await readFile(orderingFile, \"utf8\")).split(\"\\n\").map(line => {\n if (line.indexOf(\":\") !== -1) {\n line = line.split(\":\").pop()!\n }\n line = line.trim()\n if (line[0] === \"/\") {\n line = line.slice(1)\n }\n return line\n })\n\n const ordering: Array<string> = []\n for (const file of orderingFiles) {\n const pathComponents = file.split(path.sep)\n for (const pathComponent of pathComponents) {\n ordering.push(path.join(src, pathComponent))\n }\n }\n\n const sortedFiles: Array<string> = []\n let missing = 0\n const total = filenames.length\n for (const file of ordering) {\n if (!sortedFiles.includes(file) && filenames.includes(file)) {\n sortedFiles.push(file)\n }\n }\n for (const file of filenames) {\n if (!sortedFiles.includes(file)) {\n sortedFiles.push(file)\n missing += 1\n }\n }\n log.info({coverage: ((total - missing) / total * 100)}, \"ordering files in ASAR archive\")\n return sortedFiles\n}\n\nfunction copyFileOrData(fileCopier: FileCopier, data: string | Buffer | undefined | null, source: string, destination: string, stats: Stats) {\n if (data == null) {\n return fileCopier.copy(source, destination, stats)\n }\n else {\n return writeFile(destination, data)\n }\n}"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../../src/asar/asarUtil.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncTaskManager, log } from \"builder-util\"\nimport { FileCopier, Filter, MAX_FILE_REQUESTS } from \"builder-util/out/fs\"\nimport { symlink } from \"fs\"\nimport { createReadStream, createWriteStream, ensureDir, readFile, Stats, writeFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { AsarOptions } from \"..\"\nimport { Packager } from \"../packager\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { getDestinationPath, ResolvedFileSet } from \"../util/appFileCopier\"\nimport { AsarFilesystem, Node } from \"./asar\"\nimport { detectUnpackedDirs } from \"./unpackDetector\"\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pickle = require(\"chromium-pickle-js\")\n\n/** @internal */\nexport class AsarPackager {\n private readonly fs = new AsarFilesystem(this.src)\n private readonly outFile: string\n private readonly unpackedDest: string\n\n constructor(private readonly src: string, private readonly destination: string, private readonly options: AsarOptions, private readonly unpackPattern: Filter | null) {\n this.outFile = path.join(destination, \"app.asar\")\n this.unpackedDest = `${this.outFile}.unpacked`\n }\n\n // sort files to minimize file change (i.e. asar file is not changed dramatically on small change)\n async pack(fileSets: Array<ResolvedFileSet>, packager: PlatformPackager<any>) {\n if (this.options.ordering != null) {\n // ordering doesn't support transformed files, but ordering is not used functionality - wait user report to fix it\n await order(fileSets[0].files, this.options.ordering, fileSets[0].src)\n }\n await ensureDir(path.dirname(this.outFile))\n const unpackedFileIndexMap = new Map<ResolvedFileSet, Set<number>>()\n for (const fileSet of fileSets) {\n unpackedFileIndexMap.set(fileSet, await this.createPackageFromFiles(fileSet, packager.info))\n }\n await this.writeAsarFile(fileSets, unpackedFileIndexMap)\n }\n\n private async createPackageFromFiles(fileSet: ResolvedFileSet, packager: Packager) {\n const metadata = fileSet.metadata\n // search auto unpacked dir\n const unpackedDirs = new Set<string>()\n const rootForAppFilesWithoutAsar = path.join(this.destination, \"app\")\n\n if (this.options.smartUnpack !== false) {\n await detectUnpackedDirs(fileSet, unpackedDirs, this.unpackedDest, rootForAppFilesWithoutAsar)\n }\n\n const dirToCreateForUnpackedFiles = new Set<string>(unpackedDirs)\n\n const correctDirNodeUnpackedFlag = async (filePathInArchive: string, dirNode: Node) => {\n for (const dir of unpackedDirs) {\n if (filePathInArchive.length > (dir.length + 2) && filePathInArchive[dir.length] === path.sep && filePathInArchive.startsWith(dir)) {\n dirNode.unpacked = true\n unpackedDirs.add(filePathInArchive)\n // not all dirs marked as unpacked after first iteration - because node module dir can be marked as unpacked after processing node module dir content\n // e.g. node-notifier/example/advanced.js processed, but only on process vendor/terminal-notifier.app module will be marked as unpacked\n await ensureDir(path.join(this.unpackedDest, filePathInArchive))\n break\n }\n }\n }\n\n const transformedFiles = fileSet.transformedFiles\n const taskManager = new AsyncTaskManager(packager.cancellationToken)\n const fileCopier = new FileCopier()\n\n let currentDirNode: Node | null = null\n let currentDirPath: string | null = null\n\n const unpackedFileIndexSet = new Set<number>()\n\n for (let i = 0, n = fileSet.files.length; i < n; i++) {\n const file = fileSet.files[i]\n const stat = metadata.get(file)\n if (stat == null) {\n continue\n }\n\n const pathInArchive = path.relative(rootForAppFilesWithoutAsar, getDestinationPath(file, fileSet))\n\n if (stat.isSymbolicLink()) {\n const s = (stat as any)\n this.fs.getOrCreateNode(pathInArchive).link = s.relativeLink\n s.pathInArchive = pathInArchive\n unpackedFileIndexSet.add(i)\n continue\n }\n\n let fileParent = path.dirname(pathInArchive)\n if (fileParent === \".\") {\n fileParent = \"\"\n }\n\n if (currentDirPath !== fileParent) {\n if (fileParent.startsWith(\"..\")) {\n throw new Error(`Internal error: path must not start with \"..\": ${fileParent}`)\n }\n\n currentDirPath = fileParent\n currentDirNode = this.fs.getOrCreateNode(fileParent)\n // do not check for root\n if (fileParent !== \"\" && !currentDirNode.unpacked) {\n if (unpackedDirs.has(fileParent)) {\n currentDirNode.unpacked = true\n }\n else {\n await correctDirNodeUnpackedFlag(fileParent, currentDirNode)\n }\n }\n }\n\n const dirNode = currentDirNode!\n const newData = transformedFiles == null ? null : transformedFiles.get(i)\n const isUnpacked = dirNode.unpacked || (this.unpackPattern != null && this.unpackPattern(file, stat))\n this.fs.addFileNode(file, dirNode, newData == null ? stat.size : Buffer.byteLength(newData), isUnpacked, stat)\n if (isUnpacked) {\n if (!dirNode.unpacked && !dirToCreateForUnpackedFiles.has(fileParent)) {\n dirToCreateForUnpackedFiles.add(fileParent)\n await ensureDir(path.join(this.unpackedDest, fileParent))\n }\n\n const unpackedFile = path.join(this.unpackedDest, pathInArchive)\n taskManager.addTask(copyFileOrData(fileCopier, newData, file, unpackedFile, stat))\n if (taskManager.tasks.length > MAX_FILE_REQUESTS) {\n await taskManager.awaitTasks()\n }\n\n unpackedFileIndexSet.add(i)\n }\n }\n\n if (taskManager.tasks.length > 0) {\n await taskManager.awaitTasks()\n }\n\n return unpackedFileIndexSet\n }\n\n private writeAsarFile(fileSets: Array<ResolvedFileSet>, unpackedFileIndexMap: Map<ResolvedFileSet, Set<number>>): Promise<any> {\n return new Promise((resolve, reject) => {\n const headerPickle = pickle.createEmpty()\n headerPickle.writeString(JSON.stringify(this.fs.header))\n const headerBuf = headerPickle.toBuffer()\n\n const sizePickle = pickle.createEmpty()\n sizePickle.writeUInt32(headerBuf.length)\n\n const sizeBuf = sizePickle.toBuffer()\n const writeStream = createWriteStream(this.outFile)\n writeStream.on(\"error\", reject)\n writeStream.on(\"close\", resolve)\n writeStream.write(sizeBuf)\n\n let fileSetIndex = 0\n\n let files = fileSets[0].files\n let metadata = fileSets[0].metadata\n let transformedFiles = fileSets[0].transformedFiles\n let unpackedFileIndexSet = unpackedFileIndexMap.get(fileSets[0])!!\n const w = (index: number) => {\n while (true) {\n if (index >= files.length) {\n if (++fileSetIndex >= fileSets.length) {\n writeStream.end()\n return\n }\n else {\n files = fileSets[fileSetIndex].files\n metadata = fileSets[fileSetIndex].metadata\n transformedFiles = fileSets[fileSetIndex].transformedFiles\n unpackedFileIndexSet = unpackedFileIndexMap.get(fileSets[fileSetIndex])!!\n index = 0\n }\n }\n\n if (!unpackedFileIndexSet.has(index)) {\n break\n }\n else {\n const stat = metadata.get(files[index])\n if (stat != null && stat.isSymbolicLink()) {\n symlink((stat as any).linkRelativeToFile, path.join(this.unpackedDest, (stat as any).pathInArchive), () => w(index + 1))\n return\n }\n }\n index++\n }\n\n const data = transformedFiles == null ? null : transformedFiles.get(index)\n const file = files[index]\n if (data !== null && data !== undefined) {\n writeStream.write(data, () => w(index + 1))\n return\n }\n\n // https://github.com/yarnpkg/yarn/pull/3539\n const stat = metadata.get(file)\n if (stat != null && stat.size < (2 * 1024 * 1024)) {\n readFile(file)\n .then(it => {\n writeStream.write(it, () => w(index + 1))\n })\n .catch(e => reject(`Cannot read file ${file}: ${e.stack || e}`))\n }\n else {\n const readStream = createReadStream(file)\n readStream.on(\"error\", reject)\n readStream.once(\"end\", () => w(index + 1))\n readStream.pipe(writeStream, {\n end: false\n })\n }\n }\n\n writeStream.write(headerBuf, () => w(0))\n })\n }\n}\n\nasync function order(filenames: Array<string>, orderingFile: string, src: string) {\n const orderingFiles = (await readFile(orderingFile, \"utf8\")).split(\"\\n\").map(line => {\n if (line.indexOf(\":\") !== -1) {\n line = line.split(\":\").pop()!\n }\n line = line.trim()\n if (line[0] === \"/\") {\n line = line.slice(1)\n }\n return line\n })\n\n const ordering: Array<string> = []\n for (const file of orderingFiles) {\n const pathComponents = file.split(path.sep)\n for (const pathComponent of pathComponents) {\n ordering.push(path.join(src, pathComponent))\n }\n }\n\n const sortedFiles: Array<string> = []\n let missing = 0\n const total = filenames.length\n for (const file of ordering) {\n if (!sortedFiles.includes(file) && filenames.includes(file)) {\n sortedFiles.push(file)\n }\n }\n for (const file of filenames) {\n if (!sortedFiles.includes(file)) {\n sortedFiles.push(file)\n missing += 1\n }\n }\n log.info({coverage: ((total - missing) / total * 100)}, \"ordering files in ASAR archive\")\n return sortedFiles\n}\n\nfunction copyFileOrData(fileCopier: FileCopier, data: string | Buffer | undefined | null, source: string, destination: string, stats: Stats) {\n if (data == null) {\n return fileCopier.copy(source, destination, stats)\n }\n else {\n return writeFile(destination, data)\n }\n}"],"sourceRoot":""}
|
|
@@ -209,7 +209,7 @@ async function doSign(configuration, packager) {
|
|
|
209
209
|
/* certificateSubjectName and other such options */
|
|
210
210
|
) {
|
|
211
211
|
vm = await packager.vm.value;
|
|
212
|
-
tool = getWinSignTool(
|
|
212
|
+
tool = getWinSignTool(await getSignVendorPath());
|
|
213
213
|
args = computeSignToolArgs(configuration, true, vm);
|
|
214
214
|
} else {
|
|
215
215
|
vm = new (_vm().VmManager)();
|
|
@@ -260,7 +260,7 @@ function computeSignToolArgs(options, isWin, vm = new (_vm().VmManager)()) {
|
|
|
260
260
|
const timestampingServiceUrl = options.options.timeStampServer || "http://timestamp.digicert.com";
|
|
261
261
|
|
|
262
262
|
if (isWin) {
|
|
263
|
-
args.push(options.isNest || options.hash === "sha256" ? "/tr" : "/t", options.isNest || options.hash === "sha256" ? options.options.rfc3161TimeStampServer || "http://timestamp.
|
|
263
|
+
args.push(options.isNest || options.hash === "sha256" ? "/tr" : "/t", options.isNest || options.hash === "sha256" ? options.options.rfc3161TimeStampServer || "http://timestamp.digicert.com" : timestampingServiceUrl);
|
|
264
264
|
} else {
|
|
265
265
|
args.push("-t", timestampingServiceUrl);
|
|
266
266
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/codeSign/windowsCodeSign.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidConfigurationError, asArray, log } from \"builder-util/out/util\"\nimport { getBin } from \"../binDownload\"\nimport { executeAppBuilderAsJson } from \"../util/appBuilder\"\nimport { computeToolEnv, ToolInfo } from \"../util/bundledTool\"\nimport { rename } from \"fs-extra\"\nimport * as os from \"os\"\nimport * as path from \"path\"\nimport { WindowsConfiguration } from \"..\"\nimport { resolveFunction } from \"../platformPackager\"\nimport { isUseSystemSigncode } from \"../util/flags\"\nimport { VmManager } from \"../vm/vm\"\nimport { WinPackager } from \"../winPackager\"\n\nexport function getSignVendorPath() {\n return getBin(\"winCodeSign\")\n}\n\nexport type CustomWindowsSign = (configuration: CustomWindowsSignTaskConfiguration, packager?: WinPackager) => Promise<any>\n\nexport interface WindowsSignOptions {\n readonly path: string\n\n readonly name?: string | null\n readonly cscInfo?: FileCodeSigningInfo | CertificateFromStoreInfo | null\n readonly site?: string | null\n\n readonly options: WindowsConfiguration\n}\n\nexport interface WindowsSignTaskConfiguration extends WindowsSignOptions {\n // set if output path differs from input (e.g. osslsigncode cannot sign file in-place)\n resultOutputPath?: string\n\n hash: string\n isNest: boolean\n}\n\nexport interface CustomWindowsSignTaskConfiguration extends WindowsSignTaskConfiguration {\n computeSignToolArgs(isWin: boolean): Array<string>\n}\n\nexport async function sign(options: WindowsSignOptions, packager: WinPackager) {\n let hashes = options.options.signingHashAlgorithms\n // msi does not support dual-signing\n if (options.path.endsWith(\".msi\")) {\n hashes = [hashes != null && !hashes.includes(\"sha1\") ? \"sha256\" : \"sha1\"]\n }\n else if (options.path.endsWith(\".appx\")) {\n hashes = [\"sha256\"]\n }\n else if (hashes == null) {\n hashes = [\"sha1\", \"sha256\"]\n }\n else {\n hashes = Array.isArray(hashes) ? hashes : [hashes]\n }\n\n const executor = resolveFunction(options.options.sign, \"sign\") || doSign\n let isNest = false\n for (const hash of hashes) {\n const taskConfiguration: WindowsSignTaskConfiguration = {...options, hash, isNest}\n await executor({\n ...taskConfiguration,\n computeSignToolArgs: isWin => computeSignToolArgs(taskConfiguration, isWin)\n }, packager)\n isNest = true\n if (taskConfiguration.resultOutputPath != null) {\n await rename(taskConfiguration.resultOutputPath, options.path)\n }\n }\n}\n\nexport interface FileCodeSigningInfo {\n readonly file: string\n readonly password: string | null\n}\n\nexport async function getCertInfo(file: string, password: string): Promise<CertificateInfo> {\n let result: any = null\n const errorMessagePrefix = \"Cannot extract publisher name from code signing certificate. As workaround, set win.publisherName. Error: \"\n try {\n result = await executeAppBuilderAsJson<any>([\"certificate-info\", \"--input\", file, \"--password\", password])\n }\n catch (e) {\n throw new Error(`${errorMessagePrefix}${e.stack || e}`)\n }\n\n if (result.error != null) {\n // noinspection ExceptionCaughtLocallyJS\n throw new InvalidConfigurationError(`${errorMessagePrefix}${result.error}`)\n }\n return result\n}\n\nexport interface CertificateInfo {\n readonly commonName: string\n readonly bloodyMicrosoftSubjectDn: string\n}\n\nexport interface CertificateFromStoreInfo {\n thumbprint: string\n subject: string\n store: string\n isLocalMachineStore: boolean\n}\n\nexport async function getCertificateFromStoreInfo(options: WindowsConfiguration, vm: VmManager): Promise<CertificateFromStoreInfo> {\n const certificateSubjectName = options.certificateSubjectName\n const certificateSha1 = options.certificateSha1 ? options.certificateSha1.toUpperCase() : options.certificateSha1\n // ExcludeProperty doesn't work, so, we cannot exclude RawData, it is ok\n // powershell can return object if the only item\n const rawResult = await vm.exec(\"powershell.exe\", [\"Get-ChildItem -Recurse Cert: -CodeSigningCert | Select-Object -Property Subject,PSParentPath,Thumbprint | ConvertTo-Json -Compress\"])\n const certList = rawResult.length === 0 ? [] : asArray<CertInfo>(JSON.parse(rawResult))\n for (const certInfo of certList) {\n if ((certificateSubjectName != null && !certInfo.Subject.includes(certificateSubjectName))\n || certificateSha1 != null && certInfo.Thumbprint.toUpperCase() !== certificateSha1) {\n continue\n }\n\n const parentPath = certInfo.PSParentPath\n const store = parentPath.substring(parentPath.lastIndexOf(\"\\\\\") + 1)\n log.debug({store, PSParentPath: parentPath}, \"auto-detect certificate store\")\n // https://github.com/electron-userland/electron-builder/issues/1717\n const isLocalMachineStore = (parentPath.includes(\"Certificate::LocalMachine\"))\n log.debug(null, \"auto-detect using of LocalMachine store\")\n return {\n thumbprint: certInfo.Thumbprint,\n subject: certInfo.Subject,\n store,\n isLocalMachineStore\n }\n }\n\n throw new Error(`Cannot find certificate ${certificateSubjectName || certificateSha1}, all certs: ${rawResult}`)\n}\n\nexport async function doSign(configuration: CustomWindowsSignTaskConfiguration, packager: WinPackager) {\n // https://github.com/electron-userland/electron-builder/pull/1944\n const timeout = parseInt(process.env.SIGNTOOL_TIMEOUT as any, 10) || 10 * 60 * 1000\n\n let tool: string\n let args: Array<string>\n let env = process.env\n let vm: VmManager\n if (configuration.path.endsWith(\".appx\") || !(\"file\" in configuration.cscInfo!!) /* certificateSubjectName and other such options */) {\n vm = await packager.vm.value\n tool = getWinSignTool(await getSignVendorPath())\n args = computeSignToolArgs(configuration, true, vm)\n }\n else {\n vm = new VmManager()\n const toolInfo = await getToolPath()\n tool = toolInfo.path\n args = configuration.computeSignToolArgs(process.platform === \"win32\")\n if (toolInfo.env != null) {\n env = toolInfo.env\n }\n }\n\n try {\n await vm.exec(tool, args, {timeout, env})\n }\n catch (e) {\n if (e.message.includes(\"The file is being used by another process\") || e.message.includes(\"The specified timestamp server either could not be reached\")) {\n log.warn(`First attempt to code sign failed, another attempt will be made in 15 seconds: ${e.message}`)\n await new Promise((resolve, reject) => {\n setTimeout(() => {\n vm.exec(tool, args, {timeout, env})\n .then(resolve)\n .catch(reject)\n }, 15000)\n })\n }\n throw e\n }\n}\n\ninterface CertInfo {\n Subject: string\n Thumbprint: string\n PSParentPath: string\n}\n\n// on windows be aware of http://stackoverflow.com/a/32640183/1910191\nfunction computeSignToolArgs(options: WindowsSignTaskConfiguration, isWin: boolean, vm: VmManager = new VmManager()): Array<string> {\n const inputFile = vm.toVmFile(options.path)\n const outputPath = isWin ? inputFile : getOutputPath(inputFile, options.hash)\n if (!isWin) {\n options.resultOutputPath = outputPath\n }\n\n const args = isWin ? [\"sign\"] : [\"-in\", inputFile, \"-out\", outputPath]\n\n if (process.env.ELECTRON_BUILDER_OFFLINE !== \"true\") {\n const timestampingServiceUrl = options.options.timeStampServer || \"http://timestamp.digicert.com\"\n if (isWin) {\n args.push(options.isNest || options.hash === \"sha256\" ? \"/tr\" : \"/t\", options.isNest || options.hash === \"sha256\" ? (options.options.rfc3161TimeStampServer || \"http://timestamp.comodoca.com/rfc3161\") : timestampingServiceUrl)\n }\n else {\n args.push(\"-t\", timestampingServiceUrl)\n }\n }\n\n const certificateFile = (options.cscInfo as FileCodeSigningInfo).file\n if (certificateFile == null) {\n const cscInfo = (options.cscInfo as CertificateFromStoreInfo)\n const subjectName = cscInfo.thumbprint\n if (!isWin) {\n throw new Error(`${subjectName == null ? \"certificateSha1\" : \"certificateSubjectName\"} supported only on Windows`)\n }\n\n args.push(\"/sha1\", cscInfo.thumbprint)\n args.push(\"/s\", cscInfo.store)\n if (cscInfo.isLocalMachineStore) {\n args.push(\"/sm\")\n }\n }\n else {\n const certExtension = path.extname(certificateFile)\n if (certExtension === \".p12\" || certExtension === \".pfx\") {\n args.push(isWin ? \"/f\" : \"-pkcs12\", vm.toVmFile(certificateFile))\n }\n else {\n throw new Error(`Please specify pkcs12 (.p12/.pfx) file, ${certificateFile} is not correct`)\n }\n }\n\n if (!isWin || options.hash !== \"sha1\") {\n args.push(isWin ? \"/fd\" : \"-h\", options.hash)\n if (isWin && process.env.ELECTRON_BUILDER_OFFLINE !== \"true\") {\n args.push(\"/td\", \"sha256\")\n }\n }\n\n if (options.name) {\n args.push(isWin ? \"/d\" : \"-n\", options.name)\n }\n\n if (options.site) {\n args.push(isWin ? \"/du\" : \"-i\", options.site)\n }\n\n // msi does not support dual-signing\n if (options.isNest) {\n args.push(isWin ? \"/as\" : \"-nest\")\n }\n\n const password = options.cscInfo == null ? null : (options.cscInfo as FileCodeSigningInfo).password\n if (password) {\n args.push(isWin ? \"/p\" : \"-pass\", password)\n }\n\n if (options.options.additionalCertificateFile) {\n args.push(isWin ? \"/ac\" : \"-ac\", vm.toVmFile(options.options.additionalCertificateFile))\n }\n\n const httpsProxyFromEnv = process.env.HTTPS_PROXY\n if (!isWin && httpsProxyFromEnv != null && httpsProxyFromEnv.length) {\n args.push(\"-p\", httpsProxyFromEnv)\n }\n\n if (isWin) {\n // https://github.com/electron-userland/electron-builder/issues/2875#issuecomment-387233610\n args.push(\"/debug\")\n // must be last argument\n args.push(inputFile)\n }\n\n return args\n}\n\nfunction getOutputPath(inputPath: string, hash: string) {\n const extension = path.extname(inputPath)\n return path.join(path.dirname(inputPath), `${path.basename(inputPath, extension)}-signed-${hash}${extension}`)\n}\n\n/** @internal */\nexport function isOldWin6() {\n const winVersion = os.release()\n return winVersion.startsWith(\"6.\") && !winVersion.startsWith(\"6.3\")\n}\n\nfunction getWinSignTool(vendorPath: string): string {\n // use modern signtool on Windows Server 2012 R2 to be able to sign AppX\n if (isOldWin6()) {\n return path.join(vendorPath, \"windows-6\", \"signtool.exe\")\n }\n else {\n return path.join(vendorPath, \"windows-10\", process.arch, \"signtool.exe\")\n }\n}\n\nasync function getToolPath(): Promise<ToolInfo> {\n if (isUseSystemSigncode()) {\n return {path: \"osslsigncode\"}\n }\n\n const result = process.env.SIGNTOOL_PATH\n if (result) {\n return {path: result}\n }\n\n const vendorPath = await getSignVendorPath()\n if (process.platform === \"win32\") {\n // use modern signtool on Windows Server 2012 R2 to be able to sign AppX\n return {path: getWinSignTool(vendorPath)}\n }\n else if (process.platform === \"darwin\") {\n const toolDirPath = path.join(vendorPath, process.platform, \"10.12\")\n return {\n path: path.join(toolDirPath, \"osslsigncode\"),\n env: computeToolEnv([path.join(toolDirPath, \"lib\")]),\n }\n }\n else {\n return {path: path.join(vendorPath, process.platform, \"osslsigncode\")}\n }\n}\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../../src/codeSign/windowsCodeSign.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidConfigurationError, asArray, log } from \"builder-util/out/util\"\nimport { getBin } from \"../binDownload\"\nimport { executeAppBuilderAsJson } from \"../util/appBuilder\"\nimport { computeToolEnv, ToolInfo } from \"../util/bundledTool\"\nimport { rename } from \"fs-extra\"\nimport * as os from \"os\"\nimport * as path from \"path\"\nimport { WindowsConfiguration } from \"..\"\nimport { resolveFunction } from \"../platformPackager\"\nimport { isUseSystemSigncode } from \"../util/flags\"\nimport { VmManager } from \"../vm/vm\"\nimport { WinPackager } from \"../winPackager\"\n\nexport function getSignVendorPath() {\n return getBin(\"winCodeSign\")\n}\n\nexport type CustomWindowsSign = (configuration: CustomWindowsSignTaskConfiguration, packager?: WinPackager) => Promise<any>\n\nexport interface WindowsSignOptions {\n readonly path: string\n\n readonly name?: string | null\n readonly cscInfo?: FileCodeSigningInfo | CertificateFromStoreInfo | null\n readonly site?: string | null\n\n readonly options: WindowsConfiguration\n}\n\nexport interface WindowsSignTaskConfiguration extends WindowsSignOptions {\n // set if output path differs from input (e.g. osslsigncode cannot sign file in-place)\n resultOutputPath?: string\n\n hash: string\n isNest: boolean\n}\n\nexport interface CustomWindowsSignTaskConfiguration extends WindowsSignTaskConfiguration {\n computeSignToolArgs(isWin: boolean): Array<string>\n}\n\nexport async function sign(options: WindowsSignOptions, packager: WinPackager) {\n let hashes = options.options.signingHashAlgorithms\n // msi does not support dual-signing\n if (options.path.endsWith(\".msi\")) {\n hashes = [hashes != null && !hashes.includes(\"sha1\") ? \"sha256\" : \"sha1\"]\n }\n else if (options.path.endsWith(\".appx\")) {\n hashes = [\"sha256\"]\n }\n else if (hashes == null) {\n hashes = [\"sha1\", \"sha256\"]\n }\n else {\n hashes = Array.isArray(hashes) ? hashes : [hashes]\n }\n\n const executor = resolveFunction(options.options.sign, \"sign\") || doSign\n let isNest = false\n for (const hash of hashes) {\n const taskConfiguration: WindowsSignTaskConfiguration = {...options, hash, isNest}\n await executor({\n ...taskConfiguration,\n computeSignToolArgs: isWin => computeSignToolArgs(taskConfiguration, isWin)\n }, packager)\n isNest = true\n if (taskConfiguration.resultOutputPath != null) {\n await rename(taskConfiguration.resultOutputPath, options.path)\n }\n }\n}\n\nexport interface FileCodeSigningInfo {\n readonly file: string\n readonly password: string | null\n}\n\nexport async function getCertInfo(file: string, password: string): Promise<CertificateInfo> {\n let result: any = null\n const errorMessagePrefix = \"Cannot extract publisher name from code signing certificate. As workaround, set win.publisherName. Error: \"\n try {\n result = await executeAppBuilderAsJson<any>([\"certificate-info\", \"--input\", file, \"--password\", password])\n }\n catch (e) {\n throw new Error(`${errorMessagePrefix}${e.stack || e}`)\n }\n\n if (result.error != null) {\n // noinspection ExceptionCaughtLocallyJS\n throw new InvalidConfigurationError(`${errorMessagePrefix}${result.error}`)\n }\n return result\n}\n\nexport interface CertificateInfo {\n readonly commonName: string\n readonly bloodyMicrosoftSubjectDn: string\n}\n\nexport interface CertificateFromStoreInfo {\n thumbprint: string\n subject: string\n store: string\n isLocalMachineStore: boolean\n}\n\nexport async function getCertificateFromStoreInfo(options: WindowsConfiguration, vm: VmManager): Promise<CertificateFromStoreInfo> {\n const certificateSubjectName = options.certificateSubjectName\n const certificateSha1 = options.certificateSha1 ? options.certificateSha1.toUpperCase() : options.certificateSha1\n // ExcludeProperty doesn't work, so, we cannot exclude RawData, it is ok\n // powershell can return object if the only item\n const rawResult = await vm.exec(\"powershell.exe\", [\"Get-ChildItem -Recurse Cert: -CodeSigningCert | Select-Object -Property Subject,PSParentPath,Thumbprint | ConvertTo-Json -Compress\"])\n const certList = rawResult.length === 0 ? [] : asArray<CertInfo>(JSON.parse(rawResult))\n for (const certInfo of certList) {\n if ((certificateSubjectName != null && !certInfo.Subject.includes(certificateSubjectName))\n || certificateSha1 != null && certInfo.Thumbprint.toUpperCase() !== certificateSha1) {\n continue\n }\n\n const parentPath = certInfo.PSParentPath\n const store = parentPath.substring(parentPath.lastIndexOf(\"\\\\\") + 1)\n log.debug({store, PSParentPath: parentPath}, \"auto-detect certificate store\")\n // https://github.com/electron-userland/electron-builder/issues/1717\n const isLocalMachineStore = (parentPath.includes(\"Certificate::LocalMachine\"))\n log.debug(null, \"auto-detect using of LocalMachine store\")\n return {\n thumbprint: certInfo.Thumbprint,\n subject: certInfo.Subject,\n store,\n isLocalMachineStore\n }\n }\n\n throw new Error(`Cannot find certificate ${certificateSubjectName || certificateSha1}, all certs: ${rawResult}`)\n}\n\nexport async function doSign(configuration: CustomWindowsSignTaskConfiguration, packager: WinPackager) {\n // https://github.com/electron-userland/electron-builder/pull/1944\n const timeout = parseInt(process.env.SIGNTOOL_TIMEOUT as any, 10) || 10 * 60 * 1000\n\n let tool: string\n let args: Array<string>\n let env = process.env\n let vm: VmManager\n if (configuration.path.endsWith(\".appx\") || !(\"file\" in configuration.cscInfo!!) /* certificateSubjectName and other such options */) {\n vm = await packager.vm.value\n tool = getWinSignTool(await getSignVendorPath())\n args = computeSignToolArgs(configuration, true, vm)\n }\n else {\n vm = new VmManager()\n const toolInfo = await getToolPath()\n tool = toolInfo.path\n args = configuration.computeSignToolArgs(process.platform === \"win32\")\n if (toolInfo.env != null) {\n env = toolInfo.env\n }\n }\n\n try {\n await vm.exec(tool, args, {timeout, env})\n }\n catch (e) {\n if (e.message.includes(\"The file is being used by another process\") || e.message.includes(\"The specified timestamp server either could not be reached\")) {\n log.warn(`First attempt to code sign failed, another attempt will be made in 15 seconds: ${e.message}`)\n await new Promise((resolve, reject) => {\n setTimeout(() => {\n vm.exec(tool, args, {timeout, env})\n .then(resolve)\n .catch(reject)\n }, 15000)\n })\n }\n throw e\n }\n}\n\ninterface CertInfo {\n Subject: string\n Thumbprint: string\n PSParentPath: string\n}\n\n// on windows be aware of http://stackoverflow.com/a/32640183/1910191\nfunction computeSignToolArgs(options: WindowsSignTaskConfiguration, isWin: boolean, vm: VmManager = new VmManager()): Array<string> {\n const inputFile = vm.toVmFile(options.path)\n const outputPath = isWin ? inputFile : getOutputPath(inputFile, options.hash)\n if (!isWin) {\n options.resultOutputPath = outputPath\n }\n\n const args = isWin ? [\"sign\"] : [\"-in\", inputFile, \"-out\", outputPath]\n\n if (process.env.ELECTRON_BUILDER_OFFLINE !== \"true\") {\n const timestampingServiceUrl = options.options.timeStampServer || \"http://timestamp.digicert.com\"\n if (isWin) {\n args.push(options.isNest || options.hash === \"sha256\" ? \"/tr\" : \"/t\", options.isNest || options.hash === \"sha256\" ? (options.options.rfc3161TimeStampServer || \"http://timestamp.digicert.com\") : timestampingServiceUrl)\n }\n else {\n args.push(\"-t\", timestampingServiceUrl)\n }\n }\n\n const certificateFile = (options.cscInfo as FileCodeSigningInfo).file\n if (certificateFile == null) {\n const cscInfo = (options.cscInfo as CertificateFromStoreInfo)\n const subjectName = cscInfo.thumbprint\n if (!isWin) {\n throw new Error(`${subjectName == null ? \"certificateSha1\" : \"certificateSubjectName\"} supported only on Windows`)\n }\n\n args.push(\"/sha1\", cscInfo.thumbprint)\n args.push(\"/s\", cscInfo.store)\n if (cscInfo.isLocalMachineStore) {\n args.push(\"/sm\")\n }\n }\n else {\n const certExtension = path.extname(certificateFile)\n if (certExtension === \".p12\" || certExtension === \".pfx\") {\n args.push(isWin ? \"/f\" : \"-pkcs12\", vm.toVmFile(certificateFile))\n }\n else {\n throw new Error(`Please specify pkcs12 (.p12/.pfx) file, ${certificateFile} is not correct`)\n }\n }\n\n if (!isWin || options.hash !== \"sha1\") {\n args.push(isWin ? \"/fd\" : \"-h\", options.hash)\n if (isWin && process.env.ELECTRON_BUILDER_OFFLINE !== \"true\") {\n args.push(\"/td\", \"sha256\")\n }\n }\n\n if (options.name) {\n args.push(isWin ? \"/d\" : \"-n\", options.name)\n }\n\n if (options.site) {\n args.push(isWin ? \"/du\" : \"-i\", options.site)\n }\n\n // msi does not support dual-signing\n if (options.isNest) {\n args.push(isWin ? \"/as\" : \"-nest\")\n }\n\n const password = options.cscInfo == null ? null : (options.cscInfo as FileCodeSigningInfo).password\n if (password) {\n args.push(isWin ? \"/p\" : \"-pass\", password)\n }\n\n if (options.options.additionalCertificateFile) {\n args.push(isWin ? \"/ac\" : \"-ac\", vm.toVmFile(options.options.additionalCertificateFile))\n }\n\n const httpsProxyFromEnv = process.env.HTTPS_PROXY\n if (!isWin && httpsProxyFromEnv != null && httpsProxyFromEnv.length) {\n args.push(\"-p\", httpsProxyFromEnv)\n }\n\n if (isWin) {\n // https://github.com/electron-userland/electron-builder/issues/2875#issuecomment-387233610\n args.push(\"/debug\")\n // must be last argument\n args.push(inputFile)\n }\n\n return args\n}\n\nfunction getOutputPath(inputPath: string, hash: string) {\n const extension = path.extname(inputPath)\n return path.join(path.dirname(inputPath), `${path.basename(inputPath, extension)}-signed-${hash}${extension}`)\n}\n\n/** @internal */\nexport function isOldWin6() {\n const winVersion = os.release()\n return winVersion.startsWith(\"6.\") && !winVersion.startsWith(\"6.3\")\n}\n\nfunction getWinSignTool(vendorPath: string): string {\n // use modern signtool on Windows Server 2012 R2 to be able to sign AppX\n if (isOldWin6()) {\n return path.join(vendorPath, \"windows-6\", \"signtool.exe\")\n }\n else {\n return path.join(vendorPath, \"windows-10\", process.arch, \"signtool.exe\")\n }\n}\n\nasync function getToolPath(): Promise<ToolInfo> {\n if (isUseSystemSigncode()) {\n return {path: \"osslsigncode\"}\n }\n\n const result = process.env.SIGNTOOL_PATH\n if (result) {\n return {path: result}\n }\n\n const vendorPath = await getSignVendorPath()\n if (process.platform === \"win32\") {\n // use modern signtool on Windows Server 2012 R2 to be able to sign AppX\n return {path: getWinSignTool(vendorPath)}\n }\n else if (process.platform === \"darwin\") {\n const toolDirPath = path.join(vendorPath, process.platform, \"10.12\")\n return {\n path: path.join(toolDirPath, \"osslsigncode\"),\n env: computeToolEnv([path.join(toolDirPath, \"lib\")]),\n }\n }\n else {\n return {path: path.join(vendorPath, process.platform, \"osslsigncode\")}\n }\n}\n"],"sourceRoot":""}
|
package/out/configuration.d.ts
CHANGED
|
@@ -219,7 +219,7 @@ export interface MetadataDirectories {
|
|
|
219
219
|
/**
|
|
220
220
|
* The path to build resources.
|
|
221
221
|
*
|
|
222
|
-
* Please note — build resources
|
|
222
|
+
* Please note — build resources are not packed into the app. If you need to use some files, e.g. as tray icon, please include required files explicitly: `"files": ["**\/*", "build/icon.*"]`
|
|
223
223
|
* @default build
|
|
224
224
|
*/
|
|
225
225
|
readonly buildResources?: string | null;
|
package/out/configuration.js
CHANGED
package/out/core.js
CHANGED
|
@@ -15,72 +15,66 @@ function _builderUtil() {
|
|
|
15
15
|
return data;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.buildConfigurationKey = buildConfigurationKey;
|
|
25
|
-
this.nodeName = nodeName;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
toString() {
|
|
29
|
-
return this.name;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
createTarget(type, ...archs) {
|
|
33
|
-
if (type == null && (archs == null || archs.length === 0)) {
|
|
34
|
-
return new Map([[this, new Map()]]);
|
|
35
|
-
}
|
|
18
|
+
class Platform {
|
|
19
|
+
constructor(name, buildConfigurationKey, nodeName) {
|
|
20
|
+
this.name = name;
|
|
21
|
+
this.buildConfigurationKey = buildConfigurationKey;
|
|
22
|
+
this.nodeName = nodeName;
|
|
23
|
+
}
|
|
36
24
|
|
|
37
|
-
|
|
25
|
+
toString() {
|
|
26
|
+
return this.name;
|
|
27
|
+
}
|
|
38
28
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
createTarget(type, ...archs) {
|
|
30
|
+
if (type == null && (archs == null || archs.length === 0)) {
|
|
31
|
+
return new Map([[this, new Map()]]);
|
|
32
|
+
}
|
|
42
33
|
|
|
43
|
-
|
|
44
|
-
archToType.set(arch, type == null ? [] : Array.isArray(type) ? type : [type]);
|
|
45
|
-
}
|
|
34
|
+
const archToType = new Map();
|
|
46
35
|
|
|
47
|
-
|
|
36
|
+
if (this === Platform.MAC) {
|
|
37
|
+
archs = [_builderUtil().Arch.x64];
|
|
48
38
|
}
|
|
49
39
|
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
for (const arch of archs == null || archs.length === 0 ? [(0, _builderUtil().archFromString)(process.arch)] : archs) {
|
|
41
|
+
archToType.set(arch, type == null ? [] : Array.isArray(type) ? type : [type]);
|
|
52
42
|
}
|
|
53
43
|
|
|
54
|
-
|
|
55
|
-
|
|
44
|
+
return new Map([[this, archToType]]);
|
|
45
|
+
}
|
|
56
46
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return Platform.MAC;
|
|
47
|
+
static current() {
|
|
48
|
+
return Platform.fromString(process.platform);
|
|
49
|
+
}
|
|
61
50
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
case Platform.WINDOWS.buildConfigurationKey:
|
|
65
|
-
return Platform.WINDOWS;
|
|
51
|
+
static fromString(name) {
|
|
52
|
+
name = name.toLowerCase();
|
|
66
53
|
|
|
67
|
-
|
|
68
|
-
|
|
54
|
+
switch (name) {
|
|
55
|
+
case Platform.MAC.nodeName:
|
|
56
|
+
case Platform.MAC.name:
|
|
57
|
+
return Platform.MAC;
|
|
69
58
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
59
|
+
case Platform.WINDOWS.nodeName:
|
|
60
|
+
case Platform.WINDOWS.name:
|
|
61
|
+
case Platform.WINDOWS.buildConfigurationKey:
|
|
62
|
+
return Platform.WINDOWS;
|
|
74
63
|
|
|
64
|
+
case Platform.LINUX.nodeName:
|
|
65
|
+
return Platform.LINUX;
|
|
66
|
+
|
|
67
|
+
default:
|
|
68
|
+
throw new Error(`Unknown platform: ${name}`);
|
|
69
|
+
}
|
|
75
70
|
}
|
|
76
71
|
|
|
77
|
-
|
|
78
|
-
Platform.LINUX = new Platform("linux", "linux", "linux");
|
|
79
|
-
Platform.WINDOWS = new Platform("windows", "win", "win32");
|
|
80
|
-
return Platform;
|
|
81
|
-
})();
|
|
72
|
+
}
|
|
82
73
|
|
|
83
74
|
exports.Platform = Platform;
|
|
75
|
+
Platform.MAC = new Platform("mac", "mac", "darwin");
|
|
76
|
+
Platform.LINUX = new Platform("linux", "linux", "linux");
|
|
77
|
+
Platform.WINDOWS = new Platform("windows", "win", "win32");
|
|
84
78
|
|
|
85
79
|
class Target {
|
|
86
80
|
constructor(name, isAsyncSupported = true) {
|
package/out/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;
|
|
1
|
+
{"version":3,"sources":["../src/core.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, archFromString, ArchType } from \"builder-util\"\nimport { AllPublishOptions } from \"builder-util-runtime\"\nimport { SnapStoreOptions } from \"./publish/SnapStorePublisher\"\n\n// https://github.com/YousefED/typescript-json-schema/issues/80\nexport type Publish = AllPublishOptions | SnapStoreOptions | Array<AllPublishOptions | SnapStoreOptions> | null\n\nexport type TargetConfigType = Array<string | TargetConfiguration> | string | TargetConfiguration | null\n\nexport interface TargetConfiguration {\n /**\n * The target name. e.g. `snap`.\n */\n readonly target: string\n\n /**\n * The arch or list of archs.\n */\n readonly arch?: Array<ArchType> | ArchType\n}\n\nexport class Platform {\n static MAC = new Platform(\"mac\", \"mac\", \"darwin\")\n static LINUX = new Platform(\"linux\", \"linux\", \"linux\")\n static WINDOWS = new Platform(\"windows\", \"win\", \"win32\")\n\n constructor(public name: string, public buildConfigurationKey: string, public nodeName: NodeJS.Platform) {\n }\n\n toString() {\n return this.name\n }\n\n createTarget(type?: string | Array<string> | null, ...archs: Array<Arch>): Map<Platform, Map<Arch, Array<string>>> {\n if (type == null && (archs == null || archs.length === 0)) {\n return new Map([[this, new Map()]])\n }\n\n const archToType = new Map()\n if (this === Platform.MAC) {\n archs = [Arch.x64]\n }\n\n for (const arch of (archs == null || archs.length === 0 ? [archFromString(process.arch)] : archs)) {\n archToType.set(arch, type == null ? [] : (Array.isArray(type) ? type : [type]))\n }\n return new Map([[this, archToType]])\n }\n\n static current(): Platform {\n return Platform.fromString(process.platform)\n }\n\n static fromString(name: string): Platform {\n name = name.toLowerCase()\n switch (name) {\n case Platform.MAC.nodeName:\n case Platform.MAC.name:\n return Platform.MAC\n\n case Platform.WINDOWS.nodeName:\n case Platform.WINDOWS.name:\n case Platform.WINDOWS.buildConfigurationKey:\n return Platform.WINDOWS\n\n case Platform.LINUX.nodeName:\n return Platform.LINUX\n\n default:\n throw new Error(`Unknown platform: ${name}`)\n }\n }\n}\n\nexport abstract class Target {\n abstract readonly outDir: string\n abstract readonly options: TargetSpecificOptions | null | undefined\n\n protected constructor(readonly name: string, readonly isAsyncSupported: boolean = true) {\n }\n\n async checkOptions(): Promise<any> {\n // ignore\n }\n\n abstract build(appOutDir: string, arch: Arch): Promise<any>\n\n finishBuild(): Promise<any> {\n return Promise.resolve()\n }\n}\n\nexport interface TargetSpecificOptions {\n /**\n The [artifact file name template](/configuration/configuration#artifact-file-name-template).\n */\n readonly artifactName?: string | null\n\n publish?: Publish\n}\n\nexport const DEFAULT_TARGET = \"default\"\nexport const DIR_TARGET = \"dir\"\n\nexport type CompressionLevel = \"store\" | \"normal\" | \"maximum\"\n\nexport interface BeforeBuildContext {\n readonly appDir: string\n readonly electronVersion: string\n readonly platform: Platform\n readonly arch: string\n}\n\nexport interface SourceRepositoryInfo {\n type?: string\n domain?: string\n user: string\n project: string\n}"],"sourceRoot":""}
|
|
@@ -151,7 +151,7 @@ async function computeElectronVersion(projectDir, projectMetadata) {
|
|
|
151
151
|
return result;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
const dependency = findFromPackageMetadata(
|
|
154
|
+
const dependency = findFromPackageMetadata(await projectMetadata.value);
|
|
155
155
|
|
|
156
156
|
if ((dependency === null || dependency === void 0 ? void 0 : dependency.name) === "electron-nightly") {
|
|
157
157
|
_builderUtil().log.info("You are using a nightly version of electron, be warned that those builds are highly unstable.");
|
|
@@ -171,13 +171,13 @@ async function computeElectronVersion(projectDir, projectMetadata) {
|
|
|
171
171
|
_builderUtil().log.warn("Electron version is set to \"latest\", but it is recommended to set it to some more restricted version range.");
|
|
172
172
|
|
|
173
173
|
try {
|
|
174
|
-
const releaseInfo = JSON.parse(
|
|
174
|
+
const releaseInfo = JSON.parse(await _nodeHttpExecutor().httpExecutor.request({
|
|
175
175
|
hostname: "github.com",
|
|
176
176
|
path: `/electron/${dependency.name === "electron-nightly" ? "nightlies" : "electron"}/releases/latest`,
|
|
177
177
|
headers: {
|
|
178
178
|
accept: "application/json"
|
|
179
179
|
}
|
|
180
|
-
}))
|
|
180
|
+
}));
|
|
181
181
|
const version = releaseInfo.tag_name.startsWith("v") ? releaseInfo.tag_name.substring(1) : releaseInfo.tag_name;
|
|
182
182
|
|
|
183
183
|
_builderUtil().log.info({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/electron/electronVersion.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAIA,MAAM,gBAAgB,GAAG,CAAC,UAAD,EAAa,mBAAb,EAAkC,2BAAlC,EAA+D,kBAA/D,CAAzB;;AAEO,eAAe,kBAAf,CAAkC,UAAlC,EAAsD,MAAtD,EAA8E,eAAA,GAAiC,KAAI,eAAJ,EAAS,MAAM,4CAAqB,yBAAS,IAAI,CAAC,IAAL,CAAU,UAAV,EAAsB,cAAtB,CAAT,CAArB,CAAf,CAA/G,EAAoM;AACzM,MAAI,MAAM,IAAI,IAAd,EAAoB;AAClB,IAAA,MAAM,GAAG,MAAM,yBAAU,UAAV,EAAsB,IAAtB,EAA4B,IAA5B,CAAf;AACD;;AACD,MAAI,MAAM,CAAC,eAAP,IAA0B,IAA9B,EAAoC;AAClC,WAAO,MAAM,CAAC,eAAd;AACD;;AACD,SAAO,MAAM,sBAAsB,CAAC,UAAD,EAAa,eAAb,CAAnC;AACD;;AAEM,eAAe,+BAAf,CAA+C,UAA/C,EAAiE;AACtE,OAAK,MAAM,IAAX,IAAmB,gBAAnB,EAAqC;AACnC,QAAI;AACF,aAAO,CAAC,MAAM,yBAAS,IAAI,CAAC,IAAL,CAAU,UAAV,EAAsB,cAAtB,EAAsC,IAAtC,EAA4C,cAA5C,CAAT,CAAP,EAA8E,OAArF;AACD,KAFD,CAGA,OAAO,CAAP,EAAU;AACR,UAAI,CAAC,CAAC,IAAF,KAAW,QAAf,EAAyB;AACvB,2BAAI,IAAJ,CAAS;AAAC,UAAA,IAAD;AAAO,UAAA,KAAK,EAAE;AAAd,SAAT,EAA2B,2CAA3B;AACD;AACF;AACF;;AACD,SAAO,IAAP;AACD;;AAEM,eAAe,kBAAf,CAAkC,UAAlC,EAAoD;AACzD,OAAK,MAAM,IAAX,IAAmB,gBAAnB,EAAqC;AACnC,QAAI;AACF,aAAQ,MAAM,yBAAS,IAAI,CAAC,IAAL,CAAU,UAAV,EAAsB,cAAtB,EAAsC,IAAtC,EAA4C,cAA5C,CAAT,CAAd;AACD,KAFD,CAGA,OAAO,CAAP,EAAU;AACR,UAAI,CAAC,CAAC,IAAF,KAAW,QAAf,EAAyB;AACvB,2BAAI,IAAJ,CAAS;AAAC,UAAA,IAAD;AAAO,UAAA,KAAK,EAAE;AAAd,SAAT,EAA2B,sCAA3B;AACD;AACF;AACF;;AACD,SAAO,IAAP;AACD;AAED;;;AACO,eAAe,sBAAf,CAAsC,UAAtC,EAA0D,eAA1D,EAAwF;AAC7F,QAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,UAAD,CAApD;;AACA,MAAI,MAAM,IAAI,IAAd,EAAoB;AAClB,WAAO,MAAP;AACD;;AAED,QAAM,UAAU,GAAG,uBAAuB,
|
|
1
|
+
{"version":3,"sources":["../../src/electron/electronVersion.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidConfigurationError, log } from \"builder-util\"\nimport { parseXml } from \"builder-util-runtime\"\nimport { httpExecutor } from \"builder-util/out/nodeHttpExecutor\"\nimport { readJson } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { orNullIfFileNotExist } from \"read-config-file\"\nimport * as semver from \"semver\"\nimport { Configuration } from \"../configuration\"\nimport { getConfig } from \"../util/config\"\n\nexport type MetadataValue = Lazy<{ [key: string]: any } | null>\n\nconst electronPackages = [\"electron\", \"electron-prebuilt\", \"electron-prebuilt-compile\", \"electron-nightly\"]\n\nexport async function getElectronVersion(projectDir: string, config?: Configuration, projectMetadata: MetadataValue = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, \"package.json\"))))): Promise<string> {\n if (config == null) {\n config = await getConfig(projectDir, null, null)\n }\n if (config.electronVersion != null) {\n return config.electronVersion\n }\n return await computeElectronVersion(projectDir, projectMetadata)\n}\n\nexport async function getElectronVersionFromInstalled(projectDir: string) {\n for (const name of electronPackages) {\n try {\n return (await readJson(path.join(projectDir, \"node_modules\", name, \"package.json\"))).version\n }\n catch (e) {\n if (e.code !== \"ENOENT\") {\n log.warn({name, error: e}, `cannot read electron version package.json`)\n }\n }\n }\n return null\n}\n\nexport async function getElectronPackage(projectDir: string) {\n for (const name of electronPackages) {\n try {\n return (await readJson(path.join(projectDir, \"node_modules\", name, \"package.json\")))\n }\n catch (e) {\n if (e.code !== \"ENOENT\") {\n log.warn({name, error: e}, `cannot find electron in package.json`)\n }\n }\n }\n return null\n}\n\n/** @internal */\nexport async function computeElectronVersion(projectDir: string, projectMetadata: MetadataValue): Promise<string> {\n const result = await getElectronVersionFromInstalled(projectDir)\n if (result != null) {\n return result\n }\n\n const dependency = findFromPackageMetadata(await projectMetadata!!.value)\n if (dependency?.name === \"electron-nightly\") {\n log.info(\"You are using a nightly version of electron, be warned that those builds are highly unstable.\")\n const feedXml = await httpExecutor.request({\n hostname: \"github.com\",\n path: `/electron/nightlies/releases.atom`,\n headers: {\n accept: \"application/xml, application/atom+xml, text/xml, */*\",\n },\n })\n const feed = parseXml(feedXml!!)\n const latestRelease = feed.element(\"entry\", false, `No published versions on GitHub`)\n const v = latestRelease.element(\"link\").attribute(\"href\").match(/\\/tag\\/v?([^/]+)$/)!![1]\n return v.startsWith(\"v\") ? v.substring(1) : v\n }\n else if (dependency?.version === \"latest\") {\n log.warn(\"Electron version is set to \\\"latest\\\", but it is recommended to set it to some more restricted version range.\")\n try {\n const releaseInfo = JSON.parse((await httpExecutor.request({\n hostname: \"github.com\",\n path: `/electron/${dependency.name === \"electron-nightly\" ? \"nightlies\" : \"electron\"}/releases/latest`,\n headers: {\n accept: \"application/json\",\n },\n }))!!)\n const version = (releaseInfo.tag_name.startsWith(\"v\")) ? releaseInfo.tag_name.substring(1) : releaseInfo.tag_name\n log.info({version}, `resolve ${dependency.name}@${dependency.version}`)\n return version\n }\n catch (e) {\n log.warn(e)\n }\n\n throw new InvalidConfigurationError(`Cannot find electron dependency to get electron version in the '${path.join(projectDir, \"package.json\")}'`)\n }\n\n const version = dependency?.version\n if (version == null || !/^\\d/.test(version)) {\n const versionMessage = version == null ? \"\" : ` and version (\"${version}\") is not fixed in project`\n throw new InvalidConfigurationError(`Cannot compute electron version from installed node modules - none of the possible electron modules are installed${versionMessage}.\\nSee https://github.com/electron-userland/electron-builder/issues/3984#issuecomment-504968246`)\n }\n\n return semver.coerce(version)!!.toString()\n}\n\ninterface NameAndVersion {\n readonly name: string\n readonly version: string\n}\n\nfunction findFromPackageMetadata(packageData: any): NameAndVersion | null {\n for (const name of electronPackages) {\n const devDependencies = packageData.devDependencies\n let dep = devDependencies == null ? null : devDependencies[name]\n if (dep == null) {\n const dependencies = packageData.dependencies\n dep = dependencies == null ? null : dependencies[name]\n }\n if (dep != null) {\n return {name, version: dep}\n }\n }\n return null\n}\n"],"sourceRoot":""}
|
package/out/fileTransformer.js
CHANGED
|
@@ -117,7 +117,7 @@ function cleanupPackageJson(data, options) {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
async function modifyMainPackageJson(file, extraMetadata, isRemovePackageScripts) {
|
|
120
|
-
const mainPackageData = JSON.parse(
|
|
120
|
+
const mainPackageData = JSON.parse(await (0, _fsExtra().readFile)(file, "utf-8"));
|
|
121
121
|
|
|
122
122
|
if (extraMetadata != null) {
|
|
123
123
|
(0, _builderUtil().deepAssign)(mainPackageData, extraMetadata);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/fileTransformer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/fileTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import { debug, log, deepAssign } from \"builder-util\"\nimport { FileTransformer } from \"builder-util/out/fs\"\nimport { readFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { Configuration } from \"./configuration\"\nimport { Packager } from \"./packager\"\n\n/** @internal */\nexport const NODE_MODULES_PATTERN = `${path.sep}node_modules${path.sep}`\n\n/** @internal */\nexport function isElectronCompileUsed(info: Packager): boolean {\n if (info.config.electronCompile != null) {\n return info.config.electronCompile\n }\n\n // if in devDependencies - it means that babel is used for precompilation or for some reason user decided to not use electron-compile for production\n return hasDep(\"electron-compile\", info)\n}\n\n/** @internal */\nexport function hasDep(name: string, info: Packager) {\n const deps = info.metadata.dependencies\n return deps != null && name in deps\n}\n\n/** @internal */\nexport function createTransformer(srcDir: string, configuration: Configuration, extraMetadata: any, extraTransformer: FileTransformer | null): FileTransformer {\n const mainPackageJson = path.join(srcDir, \"package.json\")\n const isRemovePackageScripts = configuration.removePackageScripts !== false\n const packageJson = path.sep + \"package.json\"\n return file => {\n if (file === mainPackageJson) {\n return modifyMainPackageJson(file, extraMetadata, isRemovePackageScripts)\n }\n\n if (file.endsWith(packageJson) && file.includes(NODE_MODULES_PATTERN)) {\n return readFile(file, \"utf-8\")\n .then(it => cleanupPackageJson(JSON.parse(it), {\n isMain: false,\n isRemovePackageScripts,\n }))\n .catch(e => log.warn(e))\n }\n else if (extraTransformer != null) {\n return extraTransformer(file)\n }\n else {\n return null\n }\n }\n}\n\n/** @internal */\nexport interface CompilerHost {\n compile(file: string): any\n\n saveConfiguration(): Promise<any>\n}\n\n/** @internal */\nexport function createElectronCompilerHost(projectDir: string, cacheDir: string): Promise<CompilerHost> {\n const electronCompilePath = path.join(projectDir, \"node_modules\", \"electron-compile\", \"lib\")\n return require(path.join(electronCompilePath, \"config-parser\")).createCompilerHostFromProjectRoot(projectDir, cacheDir)\n}\n\nconst ignoredPackageMetadataProperties = new Set([\"dist\", \"gitHead\", \"keywords\", \"build\", \"jspm\", \"ava\", \"xo\", \"nyc\", \"eslintConfig\", \"contributors\", \"bundleDependencies\", \"tags\"])\n\ninterface CleanupPackageFileOptions {\n readonly isRemovePackageScripts: boolean\n readonly isMain: boolean\n}\n\nfunction cleanupPackageJson(data: any, options: CleanupPackageFileOptions): any {\n const deps = data.dependencies\n // https://github.com/electron-userland/electron-builder/issues/507#issuecomment-312772099\n const isRemoveBabel = deps != null && typeof deps === \"object\" && !Object.getOwnPropertyNames(deps).some(it => it.startsWith(\"babel\"))\n try {\n let changed = false\n for (const prop of Object.getOwnPropertyNames(data)) {\n // removing devDependencies from package.json breaks levelup in electron, so, remove it only from main package.json\n if (prop[0] === \"_\" ||\n ignoredPackageMetadataProperties.has(prop) ||\n (options.isRemovePackageScripts && prop === \"scripts\") ||\n (options.isMain && prop === \"devDependencies\") ||\n (!options.isMain && prop === \"bugs\") ||\n (isRemoveBabel && prop === \"babel\")) {\n delete data[prop]\n changed = true\n }\n }\n\n if (changed) {\n return JSON.stringify(data, null, 2)\n }\n }\n catch (e) {\n debug(e)\n }\n\n return null\n}\n\nasync function modifyMainPackageJson(file: string, extraMetadata: any, isRemovePackageScripts: boolean) {\n const mainPackageData = JSON.parse(await readFile(file, \"utf-8\"))\n if (extraMetadata != null) {\n deepAssign(mainPackageData, extraMetadata)\n }\n\n // https://github.com/electron-userland/electron-builder/issues/1212\n const serializedDataIfChanged = cleanupPackageJson(mainPackageData, {\n isMain: true,\n isRemovePackageScripts,\n })\n if (serializedDataIfChanged != null) {\n return serializedDataIfChanged\n }\n else if (extraMetadata != null) {\n return JSON.stringify(mainPackageData, null, 2)\n }\n return null\n}"],"sourceRoot":""}
|
package/out/index.js
CHANGED
|
@@ -200,7 +200,7 @@ function build(options, packager = new (_packager().Packager)(options)) {
|
|
|
200
200
|
const afterAllArtifactBuild = (0, _platformPackager().resolveFunction)(buildResult.configuration.afterAllArtifactBuild, "afterAllArtifactBuild");
|
|
201
201
|
|
|
202
202
|
if (afterAllArtifactBuild != null) {
|
|
203
|
-
const newArtifacts = (0, _builderUtilRuntime().asArray)(
|
|
203
|
+
const newArtifacts = (0, _builderUtilRuntime().asArray)(await Promise.resolve(afterAllArtifactBuild(buildResult)));
|
|
204
204
|
|
|
205
205
|
if (newArtifacts.length === 0 || !publishManager.isPublish) {
|
|
206
206
|
return buildResult.artifactPaths;
|
package/out/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAgBA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAQA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA,MAAM,eAAe,GAAG,IAAI,GAAJ,CAAQ,CAAC,SAAD,EAAY,SAAZ,EAAuB,KAAvB,EAA8B,KAA9B,EAAqC,OAArC,EAA8C,YAA9C,EAA4D,yBAA5D,EAAuF,QAAvF,EAAiG,yBAAjG,EAA4H,aAA5H,CAAR,CAAxB;;AAEM,SAAU,wBAAV,CAAmC,OAAnC,EAA4E;AAChF,OAAK,MAAM,UAAX,IAAyB,MAAM,CAAC,IAAP,CAAY,OAAZ,CAAzB,EAA+C;AAC7C,QAAI,CAAC,eAAe,CAAC,GAAhB,CAAoB,UAApB,CAAD,IAAqC,OAAe,CAAC,UAAD,CAAf,KAAgC,SAAzE,EAAoF;AAClF,YAAM,KAAI,wCAAJ,EAA8B,mBAAmB,UAAU,GAA3D,CAAN;AACD;AACF;AACF;;AAEK,SAAU,KAAV,CAAgB,OAAhB,EAA2D,QAAA,GAAqB,KAAI,oBAAJ,EAAa,OAAb,CAAhF,EAAqG;AACzG,EAAA,wBAAwB,CAAC,OAAD,CAAxB;AAEA,QAAM,cAAc,GAAG,KAAI,gCAAJ,EAAmB,QAAnB,EAA6B,OAA7B,CAAvB;;AACA,QAAM,aAAa,GAAG,MAAK;AACzB,uBAAI,IAAJ,CAAS,qBAAT;;AACA,IAAA,QAAQ,CAAC,iBAAT,CAA2B,MAA3B;AACA,IAAA,cAAc,CAAC,WAAf;AACD,GAJD;;AAKA,EAAA,OAAO,CAAC,IAAR,CAAa,QAAb,EAAuB,aAAvB;AAEA,QAAM,OAAO,GAAG,QAAQ,CAAC,KAAT,GACb,IADa,CACR,MAAM,WAAN,IAAoB;AACxB,UAAM,qBAAqB,GAAG,yCAAgB,WAAW,CAAC,aAAZ,CAA0B,qBAA1C,EAAiE,uBAAjE,CAA9B;;AACA,QAAI,qBAAqB,IAAI,IAA7B,EAAmC;AACjC,YAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { executeFinally } from \"builder-util/out/promise\"\nimport { PublishOptions } from \"electron-publish/out/publisher\"\nimport { log, InvalidConfigurationError } from \"builder-util\"\nimport { asArray } from \"builder-util-runtime\"\nimport { Packager } from \"./packager\"\nimport { PackagerOptions } from \"./packagerApi\"\nimport { resolveFunction } from \"./platformPackager\"\nimport { PublishManager } from \"./publish/PublishManager\"\n\nexport { Packager, BuildResult } from \"./packager\"\nexport { PackagerOptions, ArtifactCreated, ArtifactBuildStarted } from \"./packagerApi\"\nexport { TargetConfiguration, Platform, Target, DIR_TARGET, BeforeBuildContext, SourceRepositoryInfo, TargetSpecificOptions, TargetConfigType, DEFAULT_TARGET, CompressionLevel } from \"./core\"\nexport { getArchSuffix, Arch, archFromString } from \"builder-util\"\nexport { Configuration, AfterPackContext, MetadataDirectories } from \"./configuration\"\nexport { ElectronDownloadOptions, ElectronPlatformName } from \"./electron/ElectronFramework\"\nexport { PlatformSpecificBuildOptions, AsarOptions, FileSet, Protocol, ReleaseInfo } from \"./options/PlatformSpecificBuildOptions\"\nexport { FileAssociation } from \"./options/FileAssociation\"\nexport { MacConfiguration, DmgOptions, MasConfiguration, MacOsTargetName, DmgContent, DmgWindow } from \"./options/macOptions\"\nexport { PkgOptions, PkgBackgroundOptions, BackgroundAlignment, BackgroundScaling } from \"./options/pkgOptions\"\nexport { WindowsConfiguration } from \"./options/winOptions\"\nexport { AppXOptions } from \"./options/AppXOptions\"\nexport { MsiOptions } from \"./options/MsiOptions\"\nexport { CommonWindowsInstallerConfiguration } from \"./options/CommonWindowsInstallerConfiguration\"\nexport { NsisOptions, NsisWebOptions, PortableOptions, CommonNsisOptions } from \"./targets/nsis/nsisOptions\"\nexport { LinuxConfiguration, DebOptions, CommonLinuxOptions, LinuxTargetSpecificOptions, AppImageOptions } from \"./options/linuxOptions\"\nexport { SnapOptions } from \"./options/SnapOptions\"\nexport { Metadata, AuthorMetadata, RepositoryInfo } from \"./options/metadata\"\nexport { AppInfo } from \"./appInfo\"\nexport { SquirrelWindowsOptions } from \"./options/SquirrelWindowsOptions\"\nexport { WindowsSignOptions, CustomWindowsSignTaskConfiguration, WindowsSignTaskConfiguration, CustomWindowsSign, FileCodeSigningInfo, CertificateFromStoreInfo } from \"./codeSign/windowsCodeSign\"\nexport { CancellationToken, ProgressInfo } from \"builder-util-runtime\"\nexport { PublishOptions, UploadTask } from \"electron-publish\"\nexport { PublishManager } from \"./publish/PublishManager\"\nexport { PlatformPackager } from \"./platformPackager\"\nexport { Framework, PrepareApplicationStageDirectoryOptions } from \"./Framework\"\nexport { buildForge, ForgeOptions } from \"./forge-maker\"\nexport { SnapStoreOptions } from \"./publish/SnapStorePublisher\"\n\nconst expectedOptions = new Set([\"publish\", \"targets\", \"mac\", \"win\", \"linux\", \"projectDir\", \"platformPackagerFactory\", \"config\", \"effectiveOptionComputed\", \"prepackaged\"])\n\nexport function checkBuildRequestOptions(options: PackagerOptions & PublishOptions) {\n for (const optionName of Object.keys(options)) {\n if (!expectedOptions.has(optionName) && (options as any)[optionName] !== undefined) {\n throw new InvalidConfigurationError(`Unknown option \"${optionName}\"`)\n }\n }\n}\n\nexport function build(options: PackagerOptions & PublishOptions, packager: Packager = new Packager(options)): Promise<Array<string>> {\n checkBuildRequestOptions(options)\n\n const publishManager = new PublishManager(packager, options)\n const sigIntHandler = () => {\n log.warn(\"cancelled by SIGINT\")\n packager.cancellationToken.cancel()\n publishManager.cancelTasks()\n }\n process.once(\"SIGINT\", sigIntHandler)\n\n const promise = packager.build()\n .then(async buildResult => {\n const afterAllArtifactBuild = resolveFunction(buildResult.configuration.afterAllArtifactBuild, \"afterAllArtifactBuild\")\n if (afterAllArtifactBuild != null) {\n const newArtifacts = asArray(await Promise.resolve(afterAllArtifactBuild(buildResult)))\n if (newArtifacts.length === 0 || !publishManager.isPublish) {\n return buildResult.artifactPaths\n }\n\n const publishConfigurations = await publishManager.getGlobalPublishConfigurations()\n if (publishConfigurations == null || publishConfigurations.length === 0) {\n return buildResult.artifactPaths\n }\n\n for (const newArtifact of newArtifacts) {\n buildResult.artifactPaths.push(newArtifact)\n for (const publishConfiguration of publishConfigurations) {\n publishManager.scheduleUpload(publishConfiguration, {\n file: newArtifact,\n arch: null\n }, packager.appInfo)\n }\n }\n }\n return buildResult.artifactPaths\n })\n\n return executeFinally(promise, isErrorOccurred => {\n let promise: Promise<any>\n if (isErrorOccurred) {\n publishManager.cancelTasks()\n promise = Promise.resolve(null)\n }\n else {\n promise = publishManager.awaitTasks()\n }\n\n return promise\n .then(() => process.removeListener(\"SIGINT\", sigIntHandler))\n })\n}"],"sourceRoot":""}
|