From a1dfc702d97869e6348c19ba299f56158ba54bc9 Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Wed, 27 May 2026 16:42:09 -0700 Subject: [PATCH] Update electron-builder to 26.11.1 --- package.json | 13 +- patches/@electron__universal.patch | 1170 ++++++++++++++++++++++++++++ patches/app-builder-lib.patch | 21 +- patches/dmg-builder.patch | 15 +- pnpm-lock.yaml | 627 ++++++--------- 5 files changed, 1445 insertions(+), 401 deletions(-) create mode 100644 patches/@electron__universal.patch diff --git a/package.json b/package.json index fd334fb820..70b9f6fe9c 100644 --- a/package.json +++ b/package.json @@ -237,7 +237,7 @@ "direction": "2.0.1", "dom-accessibility-api": "0.7.1", "electron": "42.3.0", - "electron-builder": "26.0.14", + "electron-builder": "26.11.1", "electron-mocha": "13.1.0", "emoji-regex-xs": "2.0.1", "enhanced-resolve": "5.21.3", @@ -357,15 +357,16 @@ "fabric@4.6.0": "patches/fabric+4.6.0.patch", "@vitest/expect@2.0.5": "patches/@vitest+expect+2.0.5.patch", "growing-file@0.1.3": "patches/growing-file+0.1.3.patch", - "app-builder-lib": "patches/app-builder-lib.patch", - "dmg-builder": "patches/dmg-builder.patch", "fs-xattr": "patches/fs-xattr.patch", "@types/chai": "patches/@types__chai.patch", "@napi-rs/canvas@0.1.61": "patches/@napi-rs__canvas@0.1.61.patch", "playwright-core": "patches/playwright-core.patch", "tsx": "patches/tsx.patch", "node-fetch@3.3.2": "patches/node-fetch@3.3.2.patch", - "zod@4.3.6": "patches/zod@4.3.6.patch" + "zod@4.3.6": "patches/zod@4.3.6.patch", + "dmg-builder": "patches/dmg-builder.patch", + "app-builder-lib": "patches/app-builder-lib.patch", + "@electron/universal": "patches/@electron__universal.patch" }, "onlyBuiltDependencies": [ "@indutny/mac-screen-share", @@ -510,12 +511,12 @@ "customNsisBinary": { "url": "https://updates.signal.org/desktop/nsis/nsis-3.0.4.1.7z", "version": "3.0.4.1-signal", - "checksum": "D6XH03F8A4Vzfjpq6zS9eZYXGXktdoaeQh5QgxAZ01pdts3KaDfMilem0x+HUzn9FpzfpgZrD8MVTcFlcPfcWg==" + "checksum": "822a421e2b8cfc66fc586128a5976818c1af24453ee05f5aa4faea21504b7036" }, "customNsisResources": { "url": "https://updates.signal.org/desktop/nsis/nsis-resources-3.4.1.7z", "version": "3.4.1-signal", - "checksum": "KmySC53iz92XNYVgEy5gc0/cpXiyWsxxOX5UETBAt889TIvsNlUx7uKBxkQVf3D2Ycex0D2IPGjRdGYr1bftrw==" + "checksum": "161c900098cadd1da1e5e87f339909269d58b00bda788a7c1fb67441ecfd15e6" } }, "linux": { diff --git a/patches/@electron__universal.patch b/patches/@electron__universal.patch new file mode 100644 index 0000000000..67a2d27228 --- /dev/null +++ b/patches/@electron__universal.patch @@ -0,0 +1,1170 @@ +diff --git a/dist/asar-utils.d.ts b/dist/asar-utils.d.ts +new file mode 100644 +index 0000000000000000000000000000000000000000..e207f8f0905c749a80afe0884660dcad5574cf4a +--- /dev/null ++++ b/dist/asar-utils.d.ts +@@ -0,0 +1,17 @@ ++export declare enum AsarMode { ++ NO_ASAR = 0, ++ HAS_ASAR = 1 ++} ++export type MergeASARsOptions = { ++ x64AsarPath: string; ++ arm64AsarPath: string; ++ outputAsarPath: string; ++ singleArchFiles?: string; ++}; ++export declare const detectAsarMode: (appPath: string) => Promise; ++export declare const generateAsarIntegrity: (asarPath: string) => { ++ algorithm: "SHA256"; ++ hash: string; ++}; ++export declare const mergeASARs: ({ x64AsarPath, arm64AsarPath, outputAsarPath, singleArchFiles, }: MergeASARsOptions) => Promise; ++export declare const isUniversalMachO: (fileContent: Buffer) => boolean; +diff --git a/dist/asar-utils.js b/dist/asar-utils.js +new file mode 100644 +index 0000000000000000000000000000000000000000..0e7d6d71c3e37be8f19f3ef7faaf2698bff11fcc +--- /dev/null ++++ b/dist/asar-utils.js +@@ -0,0 +1,177 @@ ++import { execFileSync } from 'node:child_process'; ++import crypto from 'node:crypto'; ++import fs from 'node:fs'; ++import os from 'node:os'; ++import path from 'node:path'; ++import * as asar from '@electron/asar'; ++import { minimatch } from 'minimatch'; ++import { d } from './debug.js'; ++const LIPO = 'lipo'; ++export var AsarMode; ++(function (AsarMode) { ++ AsarMode[AsarMode["NO_ASAR"] = 0] = "NO_ASAR"; ++ AsarMode[AsarMode["HAS_ASAR"] = 1] = "HAS_ASAR"; ++})(AsarMode || (AsarMode = {})); ++// See: https://github.com/apple-opensource-mirror/llvmCore/blob/0c60489d96c87140db9a6a14c6e82b15f5e5d252/include/llvm/Object/MachOFormat.h#L108-L112 ++const MACHO_MAGIC = new Set([ ++ // 32-bit Mach-O ++ 0xfeedface, 0xcefaedfe, ++ // 64-bit Mach-O ++ 0xfeedfacf, 0xcffaedfe, ++]); ++const MACHO_UNIVERSAL_MAGIC = new Set([ ++ // universal ++ 0xcafebabe, 0xbebafeca, ++]); ++export const detectAsarMode = async (appPath) => { ++ d('checking asar mode of', appPath); ++ const asarPath = path.resolve(appPath, 'Contents', 'Resources', 'app.asar'); ++ if (!fs.existsSync(asarPath)) { ++ d('determined no asar'); ++ return AsarMode.NO_ASAR; ++ } ++ d('determined has asar'); ++ return AsarMode.HAS_ASAR; ++}; ++export const generateAsarIntegrity = (asarPath) => { ++ return { ++ algorithm: 'SHA256', ++ hash: crypto ++ .createHash('SHA256') ++ .update(asar.getRawHeader(asarPath).headerString) ++ .digest('hex'), ++ }; ++}; ++function toRelativePath(file) { ++ return file.replace(/^\//, ''); ++} ++function isDirectory(a, file) { ++ return Boolean('files' in asar.statFile(a, file)); ++} ++function checkSingleArch(archive, file, allowList) { ++ if (allowList === undefined || !minimatch(file, allowList, { matchBase: true })) { ++ throw new Error(`Detected unique file "${file}" in "${archive}" not covered by ` + ++ `allowList rule: "${allowList}"`); ++ } ++} ++export const mergeASARs = async ({ x64AsarPath, arm64AsarPath, outputAsarPath, singleArchFiles, }) => { ++ d(`merging ${x64AsarPath} and ${arm64AsarPath}`); ++ const x64Files = new Set(asar.listPackage(x64AsarPath, { isPack: false }).map(toRelativePath)); ++ const arm64Files = new Set(asar.listPackage(arm64AsarPath, { isPack: false }).map(toRelativePath)); ++ // ++ // Build set of unpacked directories and files ++ // ++ const unpackedFiles = new Set(); ++ function buildUnpacked(a, fileList) { ++ for (const file of fileList) { ++ const stat = asar.statFile(a, file); ++ if (!('unpacked' in stat) || !stat.unpacked) { ++ continue; ++ } ++ if ('files' in stat) { ++ continue; ++ } ++ unpackedFiles.add(file); ++ } ++ } ++ buildUnpacked(x64AsarPath, x64Files); ++ buildUnpacked(arm64AsarPath, arm64Files); ++ // ++ // Build list of files/directories unique to each asar ++ // ++ for (const file of x64Files) { ++ if (!arm64Files.has(file)) { ++ checkSingleArch(x64AsarPath, file, singleArchFiles); ++ } ++ } ++ const arm64Unique = []; ++ for (const file of arm64Files) { ++ if (!x64Files.has(file)) { ++ checkSingleArch(arm64AsarPath, file, singleArchFiles); ++ arm64Unique.push(file); ++ } ++ } ++ // ++ // Find common bindings with different content ++ // ++ const commonBindings = []; ++ for (const file of x64Files) { ++ if (!arm64Files.has(file)) { ++ continue; ++ } ++ // Skip directories ++ if (isDirectory(x64AsarPath, file)) { ++ continue; ++ } ++ const x64Content = asar.extractFile(x64AsarPath, file); ++ const arm64Content = asar.extractFile(arm64AsarPath, file); ++ // Skip file if the same content ++ if (x64Content.compare(arm64Content) === 0) { ++ continue; ++ } ++ // Skip universal Mach-O files. ++ if (isUniversalMachO(x64Content)) { ++ continue; ++ } ++ if (!MACHO_MAGIC.has(x64Content.readUInt32LE(0))) { ++ throw new Error(`Can't reconcile two non-macho files ${file}`); ++ } ++ commonBindings.push(file); ++ } ++ // ++ // Extract both ++ // ++ const x64Dir = await fs.promises.mkdtemp(path.join(os.tmpdir(), 'x64-')); ++ const arm64Dir = await fs.promises.mkdtemp(path.join(os.tmpdir(), 'arm64-')); ++ try { ++ d(`extracting ${x64AsarPath} to ${x64Dir}`); ++ asar.extractAll(x64AsarPath, x64Dir); ++ d(`extracting ${arm64AsarPath} to ${arm64Dir}`); ++ asar.extractAll(arm64AsarPath, arm64Dir); ++ for (const file of arm64Unique) { ++ const source = path.resolve(arm64Dir, file); ++ const destination = path.resolve(x64Dir, file); ++ if (isDirectory(arm64AsarPath, file)) { ++ d(`creating unique directory: ${file}`); ++ await fs.promises.mkdir(destination, { recursive: true }); ++ continue; ++ } ++ d(`copying unique file: ${file}`); ++ await fs.promises.mkdir(path.dirname(destination), { recursive: true }); ++ await fs.promises.cp(source, destination, { ++ force: true, ++ recursive: true, ++ verbatimSymlinks: true, ++ }); ++ } ++ for (const binding of commonBindings) { ++ const source = await fs.promises.realpath(path.resolve(arm64Dir, binding)); ++ const destination = await fs.promises.realpath(path.resolve(x64Dir, binding)); ++ d(`merging binding: ${binding}`); ++ execFileSync(LIPO, [source, destination, '-create', '-output', destination]); ++ } ++ d(`creating archive at ${outputAsarPath}`); ++ const resolvedUnpack = Array.from(unpackedFiles).map((file) => path.join(x64Dir, file)); ++ let unpack; ++ if (resolvedUnpack.length > 1) { ++ unpack = `{${resolvedUnpack.join(',')}}`; ++ } ++ else if (resolvedUnpack.length === 1) { ++ unpack = resolvedUnpack[0]; ++ } ++ await asar.createPackageWithOptions(x64Dir, outputAsarPath, { ++ unpack, ++ }); ++ d('done merging'); ++ } ++ finally { ++ await Promise.all([ ++ fs.promises.rm(x64Dir, { recursive: true, force: true }), ++ fs.promises.rm(arm64Dir, { recursive: true, force: true }), ++ ]); ++ } ++}; ++export const isUniversalMachO = (fileContent) => { ++ return MACHO_UNIVERSAL_MAGIC.has(fileContent.readUInt32LE(0)); ++}; ++//# sourceMappingURL=asar-utils.js.map +\ No newline at end of file +diff --git a/dist/asar-utils.js.map b/dist/asar-utils.js.map +new file mode 100644 +index 0000000000000000000000000000000000000000..5ee6d0cf46cf662265a6fe9364c6c2a0493337d3 +--- /dev/null ++++ b/dist/asar-utils.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"asar-utils.js","sourceRoot":"","sources":["../src/asar-utils.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/dist/cjs/file-utils.d.ts b/dist/cjs/file-utils.d.ts +index ecf69dd338b5e8711833e3ade3181a4ed7bff3d4..c7dbbd4f2805b6b4dd5db34e19faedfc25ca5522 100644 +--- a/dist/cjs/file-utils.d.ts ++++ b/dist/cjs/file-utils.d.ts +@@ -4,15 +4,19 @@ export declare enum AppFileType { + PLAIN = 1, + INFO_PLIST = 2, + SNAPSHOT = 3, +- APP_CODE = 4 ++ APP_CODE = 4, ++ SINGLE_ARCH = 5 + } + export type AppFile = { + relativePath: string; + type: AppFileType; + }; ++export type GetAllAppFilesOpts = { ++ singleArchFiles?: string; ++}; + /** + * + * @param appPath Path to the application + */ +-export declare const getAllAppFiles: (appPath: string) => Promise; ++export declare const getAllAppFiles: (appPath: string, opts: GetAllAppFilesOpts) => Promise; + export declare const readMachOHeader: (path: string) => Promise; +diff --git a/dist/cjs/file-utils.js b/dist/cjs/file-utils.js +index 269a550b08f21e35e8b817e75c1310df296d9d88..99f2b51785c7a4f5629938d919dcbe5e3004a347 100644 +--- a/dist/cjs/file-utils.js ++++ b/dist/cjs/file-utils.js +@@ -44,10 +44,12 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar + Object.defineProperty(exports, "__esModule", { value: true }); + exports.readMachOHeader = exports.getAllAppFiles = exports.AppFileType = void 0; + const cross_spawn_promise_1 = require("@malept/cross-spawn-promise"); ++const minimatch_1 = require("minimatch"); + const fs = __importStar(require("fs-extra")); + const path = __importStar(require("path")); + const node_stream_1 = require("node:stream"); + const MACHO_PREFIX = 'Mach-O '; ++const UNPACKED_ASAR_PATH = path.join('Contents', 'Resources', 'app.asar.unpacked'); + var AppFileType; + (function (AppFileType) { + AppFileType[AppFileType["MACHO"] = 0] = "MACHO"; +@@ -55,12 +57,27 @@ var AppFileType; + AppFileType[AppFileType["INFO_PLIST"] = 2] = "INFO_PLIST"; + AppFileType[AppFileType["SNAPSHOT"] = 3] = "SNAPSHOT"; + AppFileType[AppFileType["APP_CODE"] = 4] = "APP_CODE"; ++ AppFileType[AppFileType["SINGLE_ARCH"] = 5] = "SINGLE_ARCH"; + })(AppFileType || (exports.AppFileType = AppFileType = {})); ++const isSingleArchFile = (relativePath, opts) => { ++ if (opts.singleArchFiles === undefined) { ++ return false; ++ } ++ const unpackedPath = path.relative(UNPACKED_ASAR_PATH, relativePath); ++ // Outside of app.asar.unpacked ++ if (unpackedPath.startsWith('..')) { ++ return false; ++ } ++ return (0, minimatch_1.minimatch)(unpackedPath, opts.singleArchFiles, { ++ matchBase: true, ++ }); ++}; + /** + * + * @param appPath Path to the application + */ +-const getAllAppFiles = async (appPath) => { ++const getAllAppFiles = async (appPath, opts) => { ++ const unpackedPath = path.join('Contents', 'Resources', 'app.asar.unpacked'); + const files = []; + const visited = new Set(); + const traverse = async (p) => { +@@ -72,6 +89,7 @@ const getAllAppFiles = async (appPath) => { + if (info.isSymbolicLink()) + return; + if (info.isFile()) { ++ const relativePath = path.relative(appPath, p); + let fileType = AppFileType.PLAIN; + var fileOutput = ''; + try { +@@ -88,6 +106,9 @@ const getAllAppFiles = async (appPath) => { + if (p.endsWith('.asar')) { + fileType = AppFileType.APP_CODE; + } ++ else if (isSingleArchFile(relativePath, opts)) { ++ fileType = AppFileType.SINGLE_ARCH; ++ } + else if (fileOutput.startsWith(MACHO_PREFIX)) { + fileType = AppFileType.MACHO; + } +@@ -98,7 +119,7 @@ const getAllAppFiles = async (appPath) => { + fileType = AppFileType.INFO_PLIST; + } + files.push({ +- relativePath: path.relative(appPath, p), ++ relativePath, + type: fileType, + }); + } +diff --git a/dist/cjs/file-utils.js.map b/dist/cjs/file-utils.js.map +index 18e999064a80a5fe1536db92155e97bf5bd147be..8ca03004a57cb1a5df3e09af62a66dcd462106a7 100644 +--- a/dist/cjs/file-utils.js.map ++++ b/dist/cjs/file-utils.js.map +@@ -1 +1 @@ +-{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/file-utils.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/file-utils.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/dist/cjs/index.js b/dist/cjs/index.js +index a8e99778a052f17bfeacf8f02d50ddd099cc2968..4fa3236c198e3e9acc65f57724267617f6d09ff0 100644 +--- a/dist/cjs/index.js ++++ b/dist/cjs/index.js +@@ -48,7 +48,9 @@ const file_utils_1 = require("./file-utils"); + const sha_1 = require("./sha"); + const debug_1 = require("./debug"); + const integrity_1 = require("./integrity"); +-const dupedFiles = (files) => files.filter((f) => f.type !== file_utils_1.AppFileType.SNAPSHOT && f.type !== file_utils_1.AppFileType.APP_CODE); ++const dupedFiles = (files) => files.filter((f) => f.type !== file_utils_1.AppFileType.SNAPSHOT && ++ f.type !== file_utils_1.AppFileType.APP_CODE && ++ f.type !== file_utils_1.AppFileType.SINGLE_ARCH); + const makeUniversalApp = async (opts) => { + (0, debug_1.d)('making a universal app with options', opts); + if (process.platform !== 'darwin') +@@ -83,8 +85,8 @@ const makeUniversalApp = async (opts) => { + await (0, cross_spawn_promise_1.spawn)('cp', ['-R', opts.x64AppPath, tmpApp]); + const uniqueToX64 = []; + const uniqueToArm64 = []; +- const x64Files = await (0, file_utils_1.getAllAppFiles)(await fs.realpath(tmpApp)); +- const arm64Files = await (0, file_utils_1.getAllAppFiles)(await fs.realpath(opts.arm64AppPath)); ++ const x64Files = await (0, file_utils_1.getAllAppFiles)(await fs.realpath(tmpApp), opts); ++ const arm64Files = await (0, file_utils_1.getAllAppFiles)(await fs.realpath(opts.arm64AppPath), opts); + for (const file of dupedFiles(x64Files)) { + if (!arm64Files.some((f) => f.relativePath === file.relativePath)) + uniqueToX64.push(file.relativePath); +@@ -101,7 +103,9 @@ const makeUniversalApp = async (opts) => { + }); + throw new Error('While trying to merge mach-o files across your apps we found a mismatch, the number of mach-o files is not the same between the arm64 and x64 builds'); + } +- for (const file of x64Files.filter((f) => f.type === file_utils_1.AppFileType.PLAIN)) { ++ // Single Arch files are copied as is without processing. ++ const multiArchFiles = x64Files.filter((f) => f.type !== file_utils_1.AppFileType.SINGLE_ARCH); ++ for (const file of multiArchFiles.filter((f) => f.type === file_utils_1.AppFileType.PLAIN)) { + const x64Sha = await (0, sha_1.sha)(path.resolve(opts.x64AppPath, file.relativePath)); + const arm64Sha = await (0, sha_1.sha)(path.resolve(opts.arm64AppPath, file.relativePath)); + if (x64Sha !== arm64Sha) { +@@ -115,7 +119,7 @@ const makeUniversalApp = async (opts) => { + } + } + const knownMergedMachOFiles = new Set(); +- for (const machOFile of x64Files.filter((f) => f.type === file_utils_1.AppFileType.MACHO)) { ++ for (const machOFile of multiArchFiles.filter((f) => f.type === file_utils_1.AppFileType.MACHO)) { + const first = await fs.realpath(path.resolve(tmpApp, machOFile.relativePath)); + const second = await fs.realpath(path.resolve(opts.arm64AppPath, machOFile.relativePath)); + if ((0, asar_utils_1.isUniversalMachO)(await (0, file_utils_1.readMachOHeader)(first)) && +@@ -227,8 +231,8 @@ const makeUniversalApp = async (opts) => { + (0, debug_1.d)('x64 and arm64 asars are the same'); + } + } +- const generatedIntegrity = await (0, integrity_1.computeIntegrityData)(path.join(tmpApp, 'Contents')); +- const plistFiles = x64Files.filter((f) => f.type === file_utils_1.AppFileType.INFO_PLIST); ++ const generatedIntegrity = await (0, integrity_1.computeIntegrityData)(path.join(tmpApp, 'Contents'), opts); ++ const plistFiles = multiArchFiles.filter((f) => f.type === file_utils_1.AppFileType.INFO_PLIST); + for (const plistFile of plistFiles) { + const x64PlistPath = path.resolve(opts.x64AppPath, plistFile.relativePath); + const arm64PlistPath = path.resolve(opts.arm64AppPath, plistFile.relativePath); +diff --git a/dist/cjs/index.js.map b/dist/cjs/index.js.map +index 517685286a9044d3f88114d3a332c031e19e7497..f30249a6e25bd24528aaf56d744c0f82a1432181 100644 +--- a/dist/cjs/index.js.map ++++ b/dist/cjs/index.js.map +@@ -1 +1 @@ +-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/dist/cjs/integrity.d.ts b/dist/cjs/integrity.d.ts +index bc5e439c5368abdd923f8437c370018d1ea269dc..1d5ee8144a038df8218eadbd4396e5e41867c956 100644 +--- a/dist/cjs/integrity.d.ts ++++ b/dist/cjs/integrity.d.ts +@@ -5,4 +5,7 @@ export interface HeaderHash { + export interface AsarIntegrity { + [key: string]: HeaderHash; + } +-export declare function computeIntegrityData(contentsPath: string): Promise; ++export type ComputeIntegrityDataOpts = { ++ singleArchFiles?: string; ++}; ++export declare function computeIntegrityData(contentsPath: string, opts: ComputeIntegrityDataOpts): Promise; +diff --git a/dist/cjs/integrity.js b/dist/cjs/integrity.js +index 99575f8a6d3070d813eab1de52340f2671a65d97..bdfcb31863bfdd477bcb18845194425780afcd84 100644 +--- a/dist/cjs/integrity.js ++++ b/dist/cjs/integrity.js +@@ -31,11 +31,11 @@ const fs = __importStar(require("fs-extra")); + const path_1 = __importDefault(require("path")); + const file_utils_1 = require("./file-utils"); + const asar_utils_1 = require("./asar-utils"); +-async function computeIntegrityData(contentsPath) { ++async function computeIntegrityData(contentsPath, opts) { + const root = await fs.realpath(contentsPath); + const resourcesRelativePath = 'Resources'; + const resourcesPath = path_1.default.resolve(root, resourcesRelativePath); +- const resources = await (0, file_utils_1.getAllAppFiles)(resourcesPath); ++ const resources = await (0, file_utils_1.getAllAppFiles)(resourcesPath, opts); + const resourceAsars = resources + .filter((file) => file.type === file_utils_1.AppFileType.APP_CODE) + .reduce((prev, file) => (Object.assign(Object.assign({}, prev), { [path_1.default.join(resourcesRelativePath, file.relativePath)]: path_1.default.join(resourcesPath, file.relativePath) })), {}); +diff --git a/dist/cjs/integrity.js.map b/dist/cjs/integrity.js.map +index ca9e8fbdc178a7f77cd885a0b9a90013a0c12817..1b7a093bcdad0df68b1837ab36c33ae3621218a3 100644 +--- a/dist/cjs/integrity.js.map ++++ b/dist/cjs/integrity.js.map +@@ -1 +1 @@ +-{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../src/integrity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,gDAAwB;AACxB,6CAA2D;AAE3D,6CAAqD;AAe9C,KAAK,UAAU,oBAAoB,CAAC,YAAoB;IAC7D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE7C,MAAM,qBAAqB,GAAG,WAAW,CAAC;IAC1C,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAc,EAAC,aAAa,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,SAAS;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAW,CAAC,QAAQ,CAAC;SACpD,MAAM,CACL,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,iCACX,IAAI,KACP,CAAC,cAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,cAAI,CAAC,IAAI,CAC9D,aAAa,EACb,IAAI,CAAC,YAAY,CAClB,IACD,EACF,EAAE,CACH,CAAC;IAEJ,kCAAkC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACvE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3B,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAA,kCAAqB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACjC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AA/BD,oDA+BC"} +\ No newline at end of file ++{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../src/integrity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,gDAAwB;AACxB,6CAA2D;AAE3D,6CAAqD;AAmB9C,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,IAA8B;IAE9B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE7C,MAAM,qBAAqB,GAAG,WAAW,CAAC;IAC1C,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAc,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,SAAS;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAW,CAAC,QAAQ,CAAC;SACpD,MAAM,CACL,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,iCACX,IAAI,KACP,CAAC,cAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,cAAI,CAAC,IAAI,CAC9D,aAAa,EACb,IAAI,CAAC,YAAY,CAClB,IACD,EACF,EAAE,CACH,CAAC;IAEJ,kCAAkC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACvE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3B,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAA,kCAAqB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACjC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAlCD,oDAkCC"} +\ No newline at end of file +diff --git a/dist/debug.d.ts b/dist/debug.d.ts +new file mode 100644 +index 0000000000000000000000000000000000000000..f6cf4a4d6c11d87d872819931e109584fee8fd0c +--- /dev/null ++++ b/dist/debug.d.ts +@@ -0,0 +1,2 @@ ++import debug from 'debug'; ++export declare const d: debug.Debugger; +diff --git a/dist/debug.js b/dist/debug.js +new file mode 100644 +index 0000000000000000000000000000000000000000..61f8c1e572aa93c21c296459622cdd9c73a74e1d +--- /dev/null ++++ b/dist/debug.js +@@ -0,0 +1,3 @@ ++import debug from 'debug'; ++export const d = debug('electron-universal'); ++//# sourceMappingURL=debug.js.map +\ No newline at end of file +diff --git a/dist/debug.js.map b/dist/debug.js.map +new file mode 100644 +index 0000000000000000000000000000000000000000..24522b31c696b388418ae09c7a92da27b310f263 +--- /dev/null ++++ b/dist/debug.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC"} +\ No newline at end of file +diff --git a/dist/esm/file-utils.d.ts b/dist/esm/file-utils.d.ts +index ecf69dd338b5e8711833e3ade3181a4ed7bff3d4..c7dbbd4f2805b6b4dd5db34e19faedfc25ca5522 100644 +--- a/dist/esm/file-utils.d.ts ++++ b/dist/esm/file-utils.d.ts +@@ -4,15 +4,19 @@ export declare enum AppFileType { + PLAIN = 1, + INFO_PLIST = 2, + SNAPSHOT = 3, +- APP_CODE = 4 ++ APP_CODE = 4, ++ SINGLE_ARCH = 5 + } + export type AppFile = { + relativePath: string; + type: AppFileType; + }; ++export type GetAllAppFilesOpts = { ++ singleArchFiles?: string; ++}; + /** + * + * @param appPath Path to the application + */ +-export declare const getAllAppFiles: (appPath: string) => Promise; ++export declare const getAllAppFiles: (appPath: string, opts: GetAllAppFilesOpts) => Promise; + export declare const readMachOHeader: (path: string) => Promise; +diff --git a/dist/esm/file-utils.js b/dist/esm/file-utils.js +index 9167870351984be6680f9a1e6c6dd6af7db170f3..7bfbbe7684e75fa4596689892b2f9bf22497a602 100644 +--- a/dist/esm/file-utils.js ++++ b/dist/esm/file-utils.js +@@ -18,10 +18,12 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } + }; + import { spawn, ExitCodeError } from '@malept/cross-spawn-promise'; ++import { minimatch } from 'minimatch'; + import * as fs from 'fs-extra'; + import * as path from 'path'; + import { promises as stream } from 'node:stream'; + const MACHO_PREFIX = 'Mach-O '; ++const UNPACKED_ASAR_PATH = path.join('Contents', 'Resources', 'app.asar.unpacked'); + export var AppFileType; + (function (AppFileType) { + AppFileType[AppFileType["MACHO"] = 0] = "MACHO"; +@@ -29,12 +31,27 @@ export var AppFileType; + AppFileType[AppFileType["INFO_PLIST"] = 2] = "INFO_PLIST"; + AppFileType[AppFileType["SNAPSHOT"] = 3] = "SNAPSHOT"; + AppFileType[AppFileType["APP_CODE"] = 4] = "APP_CODE"; ++ AppFileType[AppFileType["SINGLE_ARCH"] = 5] = "SINGLE_ARCH"; + })(AppFileType || (AppFileType = {})); ++const isSingleArchFile = (relativePath, opts) => { ++ if (opts.singleArchFiles === undefined) { ++ return false; ++ } ++ const unpackedPath = path.relative(UNPACKED_ASAR_PATH, relativePath); ++ // Outside of app.asar.unpacked ++ if (unpackedPath.startsWith('..')) { ++ return false; ++ } ++ return minimatch(unpackedPath, opts.singleArchFiles, { ++ matchBase: true, ++ }); ++}; + /** + * + * @param appPath Path to the application + */ +-export const getAllAppFiles = async (appPath) => { ++export const getAllAppFiles = async (appPath, opts) => { ++ const unpackedPath = path.join('Contents', 'Resources', 'app.asar.unpacked'); + const files = []; + const visited = new Set(); + const traverse = async (p) => { +@@ -46,6 +63,7 @@ export const getAllAppFiles = async (appPath) => { + if (info.isSymbolicLink()) + return; + if (info.isFile()) { ++ const relativePath = path.relative(appPath, p); + let fileType = AppFileType.PLAIN; + var fileOutput = ''; + try { +@@ -62,6 +80,9 @@ export const getAllAppFiles = async (appPath) => { + if (p.endsWith('.asar')) { + fileType = AppFileType.APP_CODE; + } ++ else if (isSingleArchFile(relativePath, opts)) { ++ fileType = AppFileType.SINGLE_ARCH; ++ } + else if (fileOutput.startsWith(MACHO_PREFIX)) { + fileType = AppFileType.MACHO; + } +@@ -72,7 +93,7 @@ export const getAllAppFiles = async (appPath) => { + fileType = AppFileType.INFO_PLIST; + } + files.push({ +- relativePath: path.relative(appPath, p), ++ relativePath, + type: fileType, + }); + } +diff --git a/dist/esm/file-utils.js.map b/dist/esm/file-utils.js.map +index a8089cb59097dd50322f72c695245698f6c2b8b1..3d3e724178dd724a86adcc4216a5c37379666e95 100644 +--- a/dist/esm/file-utils.js.map ++++ b/dist/esm/file-utils.js.map +@@ -1 +1 @@ +-{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/file-utils.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/file-utils.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/dist/esm/index.js b/dist/esm/index.js +index 34ff91a3270e4bbb99ace1e3ce6e0a699fe5c5ff..66a1cfb9c683e642ff6569d9d03ec84bea21116b 100644 +--- a/dist/esm/index.js ++++ b/dist/esm/index.js +@@ -22,7 +22,9 @@ import { AppFileType, getAllAppFiles, readMachOHeader } from './file-utils'; + import { sha } from './sha'; + import { d } from './debug'; + import { computeIntegrityData } from './integrity'; +-const dupedFiles = (files) => files.filter((f) => f.type !== AppFileType.SNAPSHOT && f.type !== AppFileType.APP_CODE); ++const dupedFiles = (files) => files.filter((f) => f.type !== AppFileType.SNAPSHOT && ++ f.type !== AppFileType.APP_CODE && ++ f.type !== AppFileType.SINGLE_ARCH); + export const makeUniversalApp = async (opts) => { + d('making a universal app with options', opts); + if (process.platform !== 'darwin') +@@ -57,8 +59,8 @@ export const makeUniversalApp = async (opts) => { + await spawn('cp', ['-R', opts.x64AppPath, tmpApp]); + const uniqueToX64 = []; + const uniqueToArm64 = []; +- const x64Files = await getAllAppFiles(await fs.realpath(tmpApp)); +- const arm64Files = await getAllAppFiles(await fs.realpath(opts.arm64AppPath)); ++ const x64Files = await getAllAppFiles(await fs.realpath(tmpApp), opts); ++ const arm64Files = await getAllAppFiles(await fs.realpath(opts.arm64AppPath), opts); + for (const file of dupedFiles(x64Files)) { + if (!arm64Files.some((f) => f.relativePath === file.relativePath)) + uniqueToX64.push(file.relativePath); +@@ -75,7 +77,9 @@ export const makeUniversalApp = async (opts) => { + }); + throw new Error('While trying to merge mach-o files across your apps we found a mismatch, the number of mach-o files is not the same between the arm64 and x64 builds'); + } +- for (const file of x64Files.filter((f) => f.type === AppFileType.PLAIN)) { ++ // Single Arch files are copied as is without processing. ++ const multiArchFiles = x64Files.filter((f) => f.type !== AppFileType.SINGLE_ARCH); ++ for (const file of multiArchFiles.filter((f) => f.type === AppFileType.PLAIN)) { + const x64Sha = await sha(path.resolve(opts.x64AppPath, file.relativePath)); + const arm64Sha = await sha(path.resolve(opts.arm64AppPath, file.relativePath)); + if (x64Sha !== arm64Sha) { +@@ -89,7 +93,7 @@ export const makeUniversalApp = async (opts) => { + } + } + const knownMergedMachOFiles = new Set(); +- for (const machOFile of x64Files.filter((f) => f.type === AppFileType.MACHO)) { ++ for (const machOFile of multiArchFiles.filter((f) => f.type === AppFileType.MACHO)) { + const first = await fs.realpath(path.resolve(tmpApp, machOFile.relativePath)); + const second = await fs.realpath(path.resolve(opts.arm64AppPath, machOFile.relativePath)); + if (isUniversalMachO(await readMachOHeader(first)) && +@@ -201,8 +205,8 @@ export const makeUniversalApp = async (opts) => { + d('x64 and arm64 asars are the same'); + } + } +- const generatedIntegrity = await computeIntegrityData(path.join(tmpApp, 'Contents')); +- const plistFiles = x64Files.filter((f) => f.type === AppFileType.INFO_PLIST); ++ const generatedIntegrity = await computeIntegrityData(path.join(tmpApp, 'Contents'), opts); ++ const plistFiles = multiArchFiles.filter((f) => f.type === AppFileType.INFO_PLIST); + for (const plistFile of plistFiles) { + const x64PlistPath = path.resolve(opts.x64AppPath, plistFile.relativePath); + const arm64PlistPath = path.resolve(opts.arm64AppPath, plistFile.relativePath); +diff --git a/dist/esm/index.js.map b/dist/esm/index.js.map +index 0d2bf56fb3eb1edd1aec1256d573e2d3ca61b5bb..d4b75f8eb7dc8b5cfe6471b61534372bc229a8a8 100644 +--- a/dist/esm/index.js.map ++++ b/dist/esm/index.js.map +@@ -1 +1 @@ +-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAW,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA8DnD,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAE,EAAE,CACtC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAuB,EAAiB,EAAE;IAC/E,CAAC,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC/B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAEpF,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QACxC,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,UAAU,+CAA+C,CAChF,CAAC;SACH;aAAM;YACL,CAAC,CAAC,wDAAwD,CAAC,CAAC;YAC5D,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAClC;KACF;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;IAE7C,IAAI,WAAW,KAAK,aAAa;QAC/B,MAAM,IAAI,KAAK,CACb,+HAA+H,CAChI,CAAC;IAEJ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IAEvC,IAAI;QACF,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAE9E,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CAAC;gBAC/D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACvC;QACD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;YACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CAAC;gBAC7D,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACzC;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1D,CAAC,CAAC,8CAA8C,CAAC,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC;gBACZ,WAAW;gBACX,aAAa;aACd,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CACb,sJAAsJ,CACvJ,CAAC;SACH;QAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,EAAE;YACvE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3E,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/E,IAAI,MAAM,KAAK,QAAQ,EAAE;gBACvB,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,gCAAgC,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC;gBAC5F,sHAAsH;gBACtH,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,cAAc,EAAE;oBACrE,6DAA6D;oBAC7D,SAAS;iBACV;gBACD,MAAM,IAAI,KAAK,CACb,6FAA6F,IAAI,CAAC,YAAY,WAAW,CAC1H,CAAC;aACH;SACF;QACD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,EAAE;YAC5E,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAE1F,IACE,gBAAgB,CAAC,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC9C,gBAAgB,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,EAC/C;gBACA,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,mDAAmD,CAAC,CAAC;gBAC/E,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAClD,SAAS;aACV;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YACpF,IAAI,MAAM,KAAK,QAAQ,EAAE;gBACvB,IACE,IAAI,CAAC,YAAY,KAAK,SAAS;oBAC/B,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAC1E;oBACA,MAAM,IAAI,KAAK,CACb,kBAAkB,SAAS,CAAC,YAAY,wEAAwE;wBAC9G,uBAAuB,IAAI,CAAC,YAAY,GAAG,CAC9C,CAAC;iBACH;gBAED,CAAC,CACC,qBAAqB,EACrB,SAAS,CAAC,YAAY,EACtB,yBAAyB,MAAM,MAAM,QAAQ,iBAAiB,CAC/D,CAAC;gBACF,SAAS;aACV;YAED,CAAC,CAAC,mCAAmC,EAAE;gBACrC,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,EAAE;gBAClB,KAAK;gBACL,MAAM;gBACN,SAAS;gBACT,SAAS;gBACT,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;aAChE,CAAC,CAAC;YACH,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SACnD;QAED;;;;;WAKG;QACH,IAAI,WAAW,KAAK,QAAQ,CAAC,OAAO,EAAE;YACpC,CAAC,CAAC,yDAAyD,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,CACzC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EAC/D,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAC5C,CAAC;YACF,MAAM,WAAW,GAAG,UAAU,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;YAC7F,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,kDAAkD,CAAC,CAAC;YACjF,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAC7C,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,UAAU,CAAC,KAAK;gBACjB,CAAC,qBAAqB,CAAC,GAAG,CACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,CACrF,CACJ,CAAC;YACF,CAAC,CAAC,iDAAiD,oBAAoB,CAAC,MAAM,UAAU,CAAC,CAAC;YAE1F,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,CAAC,CAAC,sEAAsE,CAAC,CAAC;gBAC1E,MAAM,EAAE,CAAC,IAAI,CACX,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EACpD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CACzD,CAAC;gBACF,MAAM,EAAE,CAAC,IAAI,CACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAC3D,CAAC;gBAEF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACrD,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1B,MAAM,EAAE,CAAC,IAAI,CACX,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAC/D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CACpC,CAAC;gBACF,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CAC9E,CAAC;gBACF,EAAE,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,MAAM,IAAI,CAAC,aAAa,CACtB,SAAS,EACT,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAC1D,CAAC;aACH;iBAAM;gBACL,CAAC,CAAC,wCAAwC,CAAC,CAAC;aAC7C;SACF;QAED;;;;;;WAMG;QACH,mFAAmF;QACnF,IAAI,WAAW,KAAK,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YACxD,CAAC,CAAC,6BAA6B,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACzE,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;gBACtE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;gBACnF,cAAc,EAAE,MAAM;gBACtB,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;SACJ;aAAM,IAAI,WAAW,KAAK,QAAQ,CAAC,QAAQ,EAAE;YAC5C,CAAC,CAAC,mDAAmD,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YACxF,MAAM,YAAY,GAAG,MAAM,GAAG,CAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CACrE,CAAC;YAEF,IAAI,UAAU,KAAK,YAAY,EAAE;gBAC/B,CAAC,CAAC,mCAAmC,CAAC,CAAC;gBACvC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;gBAClF,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;gBACtF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;gBACvF,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;oBACpC,MAAM,EAAE,CAAC,IAAI,CACX,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,uBAAuB,CAAC,CACvE,CAAC;iBACH;gBAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;gBACtF,MAAM,EAAE,CAAC,IAAI,CACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EACpE,aAAa,CACd,CAAC;gBACF,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAChC,IAAI,CAAC,YAAY,EACjB,UAAU,EACV,WAAW,EACX,mBAAmB,CACpB,CAAC;gBACF,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;oBACtC,MAAM,EAAE,CAAC,IAAI,CACX,aAAa,EACb,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,yBAAyB,CAAC,CACzE,CAAC;iBACH;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACrD,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1B,MAAM,EAAE,CAAC,IAAI,CACX,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,EAChE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CACpC,CAAC;gBACF,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CACjB,CACE,MAAM,IAAI,CAAC,WAAW,CACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EAClE,cAAc,CACf,CACF,CAAC,QAAQ,CAAC,MAAM,CAAC,CACnB,CAAC;gBACF,EAAE,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;aAC/C;iBAAM;gBACL,CAAC,CAAC,kCAAkC,CAAC,CAAC;aACvC;SACF;QAED,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAErF,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;YAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;YAE/E,MAAM,KAAuD,KAAK,CAAC,KAAK,CACtE,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CACjC,EAFF,EAAE,qBAAqB,EAAE,YAAY,OAEnC,EAFwC,QAAQ,cAAlD,yBAAoD,CAElD,CAAC;YACT,MAAM,KAA2D,KAAK,CAAC,KAAK,CAC1E,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CACnC,EAFF,EAAE,qBAAqB,EAAE,cAAc,OAErC,EAF0C,UAAU,cAAtD,yBAAwD,CAEtD,CAAC;YACT,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;gBAC3D,MAAM,IAAI,KAAK,CACb,8GAA8G,SAAS,CAAC,YAAY,WAAW,CAChJ,CAAC;aACH;YAED,MAAM,mBAAmB,GACvB,CAAC,IAAI,CAAC,kBAAkB;gBACxB,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,mBAAmB;gBACrC,CAAC,iCAAM,QAAQ,KAAE,qBAAqB,EAAE,kBAAkB,IAC1D,CAAC,mBAAM,QAAQ,CAAE,CAAC;YAEpB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;SAC5F;QAED,KAAK,MAAM,aAAa,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC,EAAE;YACrF,CAAC,CAAC,uBAAuB,EAAE,aAAa,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;YAChF,MAAM,EAAE,CAAC,IAAI,CACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,EAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CACjD,CAAC;SACH;QAED,CAAC,CAAC,kDAAkD,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;KAC9C;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,GAAG,CAAC;KACX;YAAS;QACR,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACzB;AACH,CAAC,CAAC"} +\ No newline at end of file ++{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/dist/esm/integrity.d.ts b/dist/esm/integrity.d.ts +index bc5e439c5368abdd923f8437c370018d1ea269dc..1d5ee8144a038df8218eadbd4396e5e41867c956 100644 +--- a/dist/esm/integrity.d.ts ++++ b/dist/esm/integrity.d.ts +@@ -5,4 +5,7 @@ export interface HeaderHash { + export interface AsarIntegrity { + [key: string]: HeaderHash; + } +-export declare function computeIntegrityData(contentsPath: string): Promise; ++export type ComputeIntegrityDataOpts = { ++ singleArchFiles?: string; ++}; ++export declare function computeIntegrityData(contentsPath: string, opts: ComputeIntegrityDataOpts): Promise; +diff --git a/dist/esm/integrity.js b/dist/esm/integrity.js +index f27f0ad0ca8f7e087b68c1e8c540fc0acb619fd6..d445c3336765a1e6ab344f6d7fc31e5f1027e7da 100644 +--- a/dist/esm/integrity.js ++++ b/dist/esm/integrity.js +@@ -2,11 +2,11 @@ import * as fs from 'fs-extra'; + import path from 'path'; + import { AppFileType, getAllAppFiles } from './file-utils'; + import { generateAsarIntegrity } from './asar-utils'; +-export async function computeIntegrityData(contentsPath) { ++export async function computeIntegrityData(contentsPath, opts) { + const root = await fs.realpath(contentsPath); + const resourcesRelativePath = 'Resources'; + const resourcesPath = path.resolve(root, resourcesRelativePath); +- const resources = await getAllAppFiles(resourcesPath); ++ const resources = await getAllAppFiles(resourcesPath, opts); + const resourceAsars = resources + .filter((file) => file.type === AppFileType.APP_CODE) + .reduce((prev, file) => (Object.assign(Object.assign({}, prev), { [path.join(resourcesRelativePath, file.relativePath)]: path.join(resourcesPath, file.relativePath) })), {}); +diff --git a/dist/esm/integrity.js.map b/dist/esm/integrity.js.map +index 43791de5d58593a59d24f65fc9e5c80e91aa60a5..782aec1d8175855ca6bccc8ad94522411504b251 100644 +--- a/dist/esm/integrity.js.map ++++ b/dist/esm/integrity.js.map +@@ -1 +1 @@ +-{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../src/integrity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAerD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,YAAoB;IAC7D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE7C,MAAM,qBAAqB,GAAG,WAAW,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,SAAS;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;SACpD,MAAM,CACL,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,iCACX,IAAI,KACP,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAC9D,aAAa,EACb,IAAI,CAAC,YAAY,CAClB,IACD,EACF,EAAE,CACH,CAAC;IAEJ,kCAAkC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACvE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3B,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACjC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC"} +\ No newline at end of file ++{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../src/integrity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAmBrD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,IAA8B;IAE9B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE7C,MAAM,qBAAqB,GAAG,WAAW,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,SAAS;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;SACpD,MAAM,CACL,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,iCACX,IAAI,KACP,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAC9D,aAAa,EACb,IAAI,CAAC,YAAY,CAClB,IACD,EACF,EAAE,CACH,CAAC;IAEJ,kCAAkC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACvE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3B,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACjC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC"} +\ No newline at end of file +diff --git a/dist/file-utils.d.ts b/dist/file-utils.d.ts +new file mode 100644 +index 0000000000000000000000000000000000000000..a02a62eccca1013c535b74a21cfbab74f8abd3d2 +--- /dev/null ++++ b/dist/file-utils.d.ts +@@ -0,0 +1,20 @@ ++import type { MakeUniversalOpts } from './types.d.ts'; ++export declare enum AppFileType { ++ MACHO = 0, ++ PLAIN = 1, ++ INFO_PLIST = 2, ++ SNAPSHOT = 3, ++ APP_CODE = 4, ++ SINGLE_ARCH = 5 ++} ++export type AppFile = { ++ relativePath: string; ++ type: AppFileType; ++}; ++/** ++ * ++ * @param appPath Path to the application ++ */ ++export declare const getAllAppFiles: (appPath: string, opts: Pick) => Promise; ++export declare const readMachOHeader: (path: string) => Promise>; ++export declare const fsMove: (oldPath: string, newPath: string) => Promise; +diff --git a/dist/file-utils.js b/dist/file-utils.js +new file mode 100644 +index 0000000000000000000000000000000000000000..f1fa260987e514c49f17f7fbbd0893748c2bce7c +--- /dev/null ++++ b/dist/file-utils.js +@@ -0,0 +1,119 @@ ++import fs from 'node:fs'; ++import path from 'node:path'; ++import { promises as stream } from 'node:stream'; ++import { spawn, ExitCodeError } from '@malept/cross-spawn-promise'; ++import { minimatch } from 'minimatch'; ++const MACHO_PREFIX = 'Mach-O '; ++const UNPACKED_ASAR_PATH = path.join('Contents', 'Resources', 'app.asar.unpacked'); ++export var AppFileType; ++(function (AppFileType) { ++ AppFileType[AppFileType["MACHO"] = 0] = "MACHO"; ++ AppFileType[AppFileType["PLAIN"] = 1] = "PLAIN"; ++ AppFileType[AppFileType["INFO_PLIST"] = 2] = "INFO_PLIST"; ++ AppFileType[AppFileType["SNAPSHOT"] = 3] = "SNAPSHOT"; ++ AppFileType[AppFileType["APP_CODE"] = 4] = "APP_CODE"; ++ AppFileType[AppFileType["SINGLE_ARCH"] = 5] = "SINGLE_ARCH"; ++})(AppFileType || (AppFileType = {})); ++const isSingleArchFile = (relativePath, opts) => { ++ if (opts.singleArchFiles === undefined) { ++ return false; ++ } ++ const unpackedPath = path.relative(UNPACKED_ASAR_PATH, relativePath); ++ // Outside of app.asar.unpacked ++ if (unpackedPath.startsWith('..')) { ++ return false; ++ } ++ return minimatch(unpackedPath, opts.singleArchFiles, { ++ matchBase: true, ++ }); ++}; ++/** ++ * ++ * @param appPath Path to the application ++ */ ++export const getAllAppFiles = async (appPath, opts) => { ++ const unpackedPath = path.join('Contents', 'Resources', 'app.asar.unpacked'); ++ const files = []; ++ const visited = new Set(); ++ const traverse = async (p) => { ++ p = await fs.promises.realpath(p); ++ if (visited.has(p)) ++ return; ++ visited.add(p); ++ const info = await fs.promises.stat(p); ++ if (info.isSymbolicLink()) ++ return; ++ if (info.isFile()) { ++ const relativePath = path.relative(appPath, p); ++ let fileType = AppFileType.PLAIN; ++ var fileOutput = ''; ++ try { ++ fileOutput = await spawn('file', ['--brief', '--no-pad', p]); ++ } ++ catch (e) { ++ if (e instanceof ExitCodeError) { ++ /* silently accept error codes from "file" */ ++ } ++ else { ++ throw e; ++ } ++ } ++ if (p.endsWith('.asar')) { ++ fileType = AppFileType.APP_CODE; ++ } ++ else if (isSingleArchFile(relativePath, opts)) { ++ fileType = AppFileType.SINGLE_ARCH; ++ } ++ else if (fileOutput.startsWith(MACHO_PREFIX)) { ++ fileType = AppFileType.MACHO; ++ } ++ else if (p.endsWith('.bin')) { ++ fileType = AppFileType.SNAPSHOT; ++ } ++ else if (path.basename(p) === 'Info.plist') { ++ fileType = AppFileType.INFO_PLIST; ++ } ++ files.push({ ++ relativePath, ++ type: fileType, ++ }); ++ } ++ if (info.isDirectory()) { ++ for (const child of await fs.promises.readdir(p)) { ++ await traverse(path.resolve(p, child)); ++ } ++ } ++ }; ++ await traverse(appPath); ++ return files; ++}; ++export const readMachOHeader = async (path) => { ++ const chunks = []; ++ // no need to read the entire file, we only need the first 4 bytes of the file to determine the header ++ await stream.pipeline(fs.createReadStream(path, { start: 0, end: 3 }), async function* (source) { ++ for await (const chunk of source) { ++ chunks.push(chunk); ++ } ++ }); ++ return Buffer.concat(chunks); ++}; ++export const fsMove = async (oldPath, newPath) => { ++ try { ++ await fs.promises.rename(oldPath, newPath); ++ } ++ catch (err) { ++ if (err.code === 'EXDEV') { ++ // Cross-device link, fallback to copy and delete ++ await fs.promises.cp(oldPath, newPath, { ++ force: true, ++ recursive: true, ++ verbatimSymlinks: true, ++ }); ++ await fs.promises.rm(oldPath, { force: true, recursive: true }); ++ } ++ else { ++ throw err; ++ } ++ } ++}; ++//# sourceMappingURL=file-utils.js.map +\ No newline at end of file +diff --git a/dist/file-utils.js.map b/dist/file-utils.js.map +new file mode 100644 +index 0000000000000000000000000000000000000000..b1f854d64ca450103223fb63377fe244a336a726 +--- /dev/null ++++ b/dist/file-utils.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../src/file-utils.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/dist/index.d.ts b/dist/index.d.ts +new file mode 100644 +index 0000000000000000000000000000000000000000..b039d86129b9a88ce9794d7d84470ebd1b18286b +--- /dev/null ++++ b/dist/index.d.ts +@@ -0,0 +1,2 @@ ++import type { MakeUniversalOpts } from './types.d.ts'; ++export declare const makeUniversalApp: (opts: MakeUniversalOpts) => Promise; +diff --git a/dist/index.js b/dist/index.js +new file mode 100644 +index 0000000000000000000000000000000000000000..5c392c7fc7ad0535d03f3cb0535e6cecd828c369 +--- /dev/null ++++ b/dist/index.js +@@ -0,0 +1,229 @@ ++import fs from 'node:fs'; ++import os from 'node:os'; ++import path from 'node:path'; ++import * as asar from '@electron/asar'; ++import { spawn } from '@malept/cross-spawn-promise'; ++import * as dircompare from 'dir-compare'; ++import { minimatch } from 'minimatch'; ++import plist from 'plist'; ++import { AsarMode, detectAsarMode, isUniversalMachO, mergeASARs } from './asar-utils.js'; ++import { AppFileType, fsMove, getAllAppFiles, readMachOHeader } from './file-utils.js'; ++import { sha } from './sha.js'; ++import { d } from './debug.js'; ++import { computeIntegrityData } from './integrity.js'; ++const dupedFiles = (files) => files.filter((f) => f.type !== AppFileType.SNAPSHOT && ++ f.type !== AppFileType.APP_CODE && ++ f.type !== AppFileType.SINGLE_ARCH); ++export const makeUniversalApp = async (opts) => { ++ d('making a universal app with options', opts); ++ if (process.platform !== 'darwin') ++ throw new Error('@electron/universal is only supported on darwin platforms'); ++ if (!opts.x64AppPath || !path.isAbsolute(opts.x64AppPath)) ++ throw new Error('Expected opts.x64AppPath to be an absolute path but it was not'); ++ if (!opts.arm64AppPath || !path.isAbsolute(opts.arm64AppPath)) ++ throw new Error('Expected opts.arm64AppPath to be an absolute path but it was not'); ++ if (!opts.outAppPath || !path.isAbsolute(opts.outAppPath)) ++ throw new Error('Expected opts.outAppPath to be an absolute path but it was not'); ++ if (fs.existsSync(opts.outAppPath)) { ++ d('output path exists already'); ++ if (!opts.force) { ++ throw new Error(`The out path "${opts.outAppPath}" already exists and force is not set to true`); ++ } ++ else { ++ d('overwriting existing application because force == true'); ++ await fs.promises.rm(opts.outAppPath, { recursive: true, force: true }); ++ } ++ } ++ const x64AsarMode = await detectAsarMode(opts.x64AppPath); ++ const arm64AsarMode = await detectAsarMode(opts.arm64AppPath); ++ d('detected x64AsarMode =', x64AsarMode); ++ d('detected arm64AsarMode =', arm64AsarMode); ++ if (x64AsarMode !== arm64AsarMode) ++ throw new Error('Both the x64 and arm64 versions of your application need to have been built with the same asar settings (enabled vs disabled)'); ++ const tmpDir = await fs.promises.mkdtemp(path.resolve(os.tmpdir(), 'electron-universal-')); ++ d('building universal app in', tmpDir); ++ try { ++ d('copying x64 app as starter template'); ++ const tmpApp = path.resolve(tmpDir, 'Tmp.app'); ++ await spawn('cp', ['-R', opts.x64AppPath, tmpApp]); ++ const uniqueToX64 = []; ++ const uniqueToArm64 = []; ++ const x64Files = await getAllAppFiles(await fs.promises.realpath(tmpApp), opts); ++ const arm64Files = await getAllAppFiles(await fs.promises.realpath(opts.arm64AppPath), opts); ++ for (const file of dupedFiles(x64Files)) { ++ if (!arm64Files.some((f) => f.relativePath === file.relativePath)) ++ uniqueToX64.push(file.relativePath); ++ } ++ for (const file of dupedFiles(arm64Files)) { ++ if (!x64Files.some((f) => f.relativePath === file.relativePath)) ++ uniqueToArm64.push(file.relativePath); ++ } ++ if (uniqueToX64.length !== 0 || uniqueToArm64.length !== 0) { ++ d('some files were not in both builds, aborting'); ++ console.error({ ++ uniqueToX64, ++ uniqueToArm64, ++ }); ++ throw new Error('While trying to merge mach-o files across your apps we found a mismatch, the number of mach-o files is not the same between the arm64 and x64 builds'); ++ } ++ // Single Arch files are copied as is without processing. ++ const multiArchFiles = x64Files.filter((f) => f.type !== AppFileType.SINGLE_ARCH); ++ for (const file of multiArchFiles.filter((f) => f.type === AppFileType.PLAIN)) { ++ const x64Sha = await sha(path.resolve(opts.x64AppPath, file.relativePath)); ++ const arm64Sha = await sha(path.resolve(opts.arm64AppPath, file.relativePath)); ++ if (x64Sha !== arm64Sha) { ++ d('SHA for file', file.relativePath, `does not match across builds ${x64Sha}!=${arm64Sha}`); ++ // The MainMenu.nib files generated by Xcode13 are deterministic in effect but not deterministic in generated sequence ++ if (path.basename(path.dirname(file.relativePath)) === 'MainMenu.nib') { ++ // The mismatch here is OK so we just move on to the next one ++ continue; ++ } ++ throw new Error(`Expected all non-binary files to have identical SHAs when creating a universal build but "${file.relativePath}" did not`); ++ } ++ } ++ const knownMergedMachOFiles = new Set(); ++ for (const machOFile of multiArchFiles.filter((f) => f.type === AppFileType.MACHO)) { ++ const first = await fs.promises.realpath(path.resolve(tmpApp, machOFile.relativePath)); ++ const second = await fs.promises.realpath(path.resolve(opts.arm64AppPath, machOFile.relativePath)); ++ if (isUniversalMachO(await readMachOHeader(first)) && ++ isUniversalMachO(await readMachOHeader(second))) { ++ d(machOFile.relativePath, `is already universal across builds, skipping lipo`); ++ knownMergedMachOFiles.add(machOFile.relativePath); ++ continue; ++ } ++ const x64Sha = await sha(path.resolve(opts.x64AppPath, machOFile.relativePath)); ++ const arm64Sha = await sha(path.resolve(opts.arm64AppPath, machOFile.relativePath)); ++ if (x64Sha === arm64Sha) { ++ if (opts.x64ArchFiles === undefined || ++ !minimatch(machOFile.relativePath, opts.x64ArchFiles, { matchBase: true })) { ++ throw new Error(`Detected file "${machOFile.relativePath}" that's the same in both x64 and arm64 builds and not covered by the ` + ++ `x64ArchFiles rule: "${opts.x64ArchFiles}"`); ++ } ++ d('SHA for Mach-O file', machOFile.relativePath, `matches across builds ${x64Sha}===${arm64Sha}, skipping lipo`); ++ continue; ++ } ++ d('joining two MachO files with lipo', { ++ first, ++ second, ++ }); ++ await spawn('lipo', [ ++ first, ++ second, ++ '-create', ++ '-output', ++ await fs.promises.realpath(path.resolve(tmpApp, machOFile.relativePath)), ++ ]); ++ knownMergedMachOFiles.add(machOFile.relativePath); ++ } ++ /** ++ * If we don't have an ASAR we need to check if the two "app" folders are identical, if ++ * they are then we can just leave one there and call it a day. If the app folders for x64 ++ * and arm64 are different though we need to rename each folder and create a new fake "app" ++ * entrypoint to dynamically load the correct app folder ++ */ ++ if (x64AsarMode === AsarMode.NO_ASAR) { ++ d('checking if the x64 and arm64 app folders are identical'); ++ const comparison = await dircompare.compare(path.resolve(tmpApp, 'Contents', 'Resources', 'app'), path.resolve(opts.arm64AppPath, 'Contents', 'Resources', 'app'), { compareSize: true, compareContent: true }); ++ const differences = comparison.diffSet.filter((difference) => difference.state !== 'equal'); ++ d(`Found ${differences.length} difference(s) between the x64 and arm64 folders`); ++ const nonMergedDifferences = differences.filter((difference) => !difference.name1 || ++ !knownMergedMachOFiles.has(path.join('Contents', 'Resources', 'app', difference.relativePath, difference.name1))); ++ d(`After discluding MachO files merged with lipo ${nonMergedDifferences.length} remain.`); ++ if (nonMergedDifferences.length > 0) { ++ d('x64 and arm64 app folders are different, creating dynamic entry ASAR'); ++ await fsMove(path.resolve(tmpApp, 'Contents', 'Resources', 'app'), path.resolve(tmpApp, 'Contents', 'Resources', 'app-x64')); ++ await fs.promises.cp(path.resolve(opts.arm64AppPath, 'Contents', 'Resources', 'app'), path.resolve(tmpApp, 'Contents', 'Resources', 'app-arm64'), { force: true, recursive: true, verbatimSymlinks: true }); ++ const entryAsar = path.resolve(tmpDir, 'entry-asar'); ++ await fs.promises.mkdir(entryAsar, { recursive: true }); ++ await fs.promises.cp(path.resolve(import.meta.dirname, '..', 'entry-asar', 'no-asar.js'), path.resolve(entryAsar, 'index.js')); ++ let pj = JSON.parse(await fs.promises.readFile(path.resolve(opts.x64AppPath, 'Contents', 'Resources', 'app', 'package.json'), 'utf8')); ++ pj.main = 'index.js'; ++ await fs.promises.writeFile(path.resolve(entryAsar, 'package.json'), JSON.stringify(pj) + '\n', 'utf8'); ++ await asar.createPackage(entryAsar, path.resolve(tmpApp, 'Contents', 'Resources', 'app.asar')); ++ } ++ else { ++ d('x64 and arm64 app folders are the same'); ++ } ++ } ++ /** ++ * If we have an ASAR we just need to check if the two "app.asar" files have the same hash, ++ * if they are, same as above, we can leave one there and call it a day. If they're different ++ * we have to make a dynamic entrypoint. There is an assumption made here that every file in ++ * app.asar.unpacked is a native node module. This assumption _may_ not be true so we should ++ * look at codifying that assumption as actual logic. ++ */ ++ // FIXME: Codify the assumption that app.asar.unpacked only contains native modules ++ if (x64AsarMode === AsarMode.HAS_ASAR && opts.mergeASARs) { ++ d('merging x64 and arm64 asars'); ++ const output = path.resolve(tmpApp, 'Contents', 'Resources', 'app.asar'); ++ await mergeASARs({ ++ x64AsarPath: path.resolve(tmpApp, 'Contents', 'Resources', 'app.asar'), ++ arm64AsarPath: path.resolve(opts.arm64AppPath, 'Contents', 'Resources', 'app.asar'), ++ outputAsarPath: output, ++ singleArchFiles: opts.singleArchFiles, ++ }); ++ } ++ else if (x64AsarMode === AsarMode.HAS_ASAR) { ++ d('checking if the x64 and arm64 asars are identical'); ++ const x64AsarSha = await sha(path.resolve(tmpApp, 'Contents', 'Resources', 'app.asar')); ++ const arm64AsarSha = await sha(path.resolve(opts.arm64AppPath, 'Contents', 'Resources', 'app.asar')); ++ if (x64AsarSha !== arm64AsarSha) { ++ d('x64 and arm64 asars are different'); ++ const x64AsarPath = path.resolve(tmpApp, 'Contents', 'Resources', 'app-x64.asar'); ++ await fsMove(path.resolve(tmpApp, 'Contents', 'Resources', 'app.asar'), x64AsarPath); ++ const x64Unpacked = path.resolve(tmpApp, 'Contents', 'Resources', 'app.asar.unpacked'); ++ if (fs.existsSync(x64Unpacked)) { ++ await fsMove(x64Unpacked, path.resolve(tmpApp, 'Contents', 'Resources', 'app-x64.asar.unpacked')); ++ } ++ const arm64AsarPath = path.resolve(tmpApp, 'Contents', 'Resources', 'app-arm64.asar'); ++ await fs.promises.cp(path.resolve(opts.arm64AppPath, 'Contents', 'Resources', 'app.asar'), arm64AsarPath, { force: true, recursive: true, verbatimSymlinks: true }); ++ const arm64Unpacked = path.resolve(opts.arm64AppPath, 'Contents', 'Resources', 'app.asar.unpacked'); ++ if (fs.existsSync(arm64Unpacked)) { ++ await fs.promises.cp(arm64Unpacked, path.resolve(tmpApp, 'Contents', 'Resources', 'app-arm64.asar.unpacked'), { force: true, recursive: true, verbatimSymlinks: true }); ++ } ++ const entryAsar = path.resolve(tmpDir, 'entry-asar'); ++ await fs.promises.mkdir(entryAsar, { recursive: true }); ++ await fs.promises.cp(path.resolve(import.meta.dirname, '..', 'entry-asar', 'has-asar.js'), path.resolve(entryAsar, 'index.js')); ++ let pj = JSON.parse((await asar.extractFile(path.resolve(opts.x64AppPath, 'Contents', 'Resources', 'app.asar'), 'package.json')).toString('utf8')); ++ pj.main = 'index.js'; ++ await fs.promises.writeFile(path.resolve(entryAsar, 'package.json'), JSON.stringify(pj) + '\n', 'utf8'); ++ const asarPath = path.resolve(tmpApp, 'Contents', 'Resources', 'app.asar'); ++ await asar.createPackage(entryAsar, asarPath); ++ } ++ else { ++ d('x64 and arm64 asars are the same'); ++ } ++ } ++ const generatedIntegrity = await computeIntegrityData(path.join(tmpApp, 'Contents'), opts); ++ const plistFiles = multiArchFiles.filter((f) => f.type === AppFileType.INFO_PLIST); ++ for (const plistFile of plistFiles) { ++ const x64PlistPath = path.resolve(opts.x64AppPath, plistFile.relativePath); ++ const arm64PlistPath = path.resolve(opts.arm64AppPath, plistFile.relativePath); ++ const { ElectronAsarIntegrity: x64Integrity, ...x64Plist } = plist.parse(await fs.promises.readFile(x64PlistPath, 'utf8')); ++ const { ElectronAsarIntegrity: arm64Integrity, ...arm64Plist } = plist.parse(await fs.promises.readFile(arm64PlistPath, 'utf8')); ++ if (JSON.stringify(x64Plist) !== JSON.stringify(arm64Plist)) { ++ throw new Error(`Expected all Info.plist files to be identical when ignoring integrity when creating a universal build but "${plistFile.relativePath}" was not`); ++ } ++ const injectAsarIntegrity = !opts.infoPlistsToIgnore || ++ minimatch(plistFile.relativePath, opts.infoPlistsToIgnore, { matchBase: true }); ++ const mergedPlist = injectAsarIntegrity ++ ? { ...x64Plist, ElectronAsarIntegrity: generatedIntegrity } ++ : { ...x64Plist }; ++ await fs.promises.writeFile(path.resolve(tmpApp, plistFile.relativePath), plist.build(mergedPlist)); ++ } ++ for (const snapshotsFile of arm64Files.filter((f) => f.type === AppFileType.SNAPSHOT)) { ++ d('copying snapshot file', snapshotsFile.relativePath, 'to target application'); ++ await fs.promises.cp(path.resolve(opts.arm64AppPath, snapshotsFile.relativePath), path.resolve(tmpApp, snapshotsFile.relativePath)); ++ } ++ d('moving final universal app to target destination'); ++ await fs.promises.mkdir(path.dirname(opts.outAppPath), { recursive: true }); ++ await spawn('mv', [tmpApp, opts.outAppPath]); ++ } ++ catch (err) { ++ throw err; ++ } ++ finally { ++ await fs.promises.rm(tmpDir, { recursive: true, force: true }); ++ } ++}; ++//# sourceMappingURL=index.js.map +\ No newline at end of file +diff --git a/dist/index.js.map b/dist/index.js.map +new file mode 100644 +index 0000000000000000000000000000000000000000..c07c98af38f49e2c37e53ff992d157979e697014 +--- /dev/null ++++ b/dist/index.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAW,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAE,EAAE,CACtC,KAAK,CAAC,MAAM,CACV,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ;IAC/B,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ;IAC/B,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,WAAW,CACrC,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAuB,EAAiB,EAAE;IAC/E,CAAC,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC/B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAEpF,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,UAAU,+CAA+C,CAChF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,wDAAwD,CAAC,CAAC;YAC5D,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;IAE7C,IAAI,WAAW,KAAK,aAAa;QAC/B,MAAM,IAAI,KAAK,CACb,+HAA+H,CAChI,CAAC;IAEJ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QAE7F,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CAAC;gBAC/D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CAAC;gBAC7D,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,CAAC,CAAC,8CAA8C,CAAC,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC;gBACZ,WAAW;gBACX,aAAa;aACd,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CACb,sJAAsJ,CACvJ,CAAC;QACJ,CAAC;QAED,yDAAyD;QACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,WAAW,CAAC,CAAC;QAClF,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3E,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/E,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,gCAAgC,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC;gBAC5F,sHAAsH;gBACtH,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;oBACtE,6DAA6D;oBAC7D,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,6FAA6F,IAAI,CAAC,YAAY,WAAW,CAC1H,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,KAAK,MAAM,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACnF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CACxD,CAAC;YAEF,IACE,gBAAgB,CAAC,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC9C,gBAAgB,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,EAC/C,CAAC;gBACD,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,mDAAmD,CAAC,CAAC;gBAC/E,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAClD,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YACpF,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IACE,IAAI,CAAC,YAAY,KAAK,SAAS;oBAC/B,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAC1E,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,kBAAkB,SAAS,CAAC,YAAY,wEAAwE;wBAC9G,uBAAuB,IAAI,CAAC,YAAY,GAAG,CAC9C,CAAC;gBACJ,CAAC;gBAED,CAAC,CACC,qBAAqB,EACrB,SAAS,CAAC,YAAY,EACtB,yBAAyB,MAAM,MAAM,QAAQ,iBAAiB,CAC/D,CAAC;gBACF,SAAS;YACX,CAAC;YAED,CAAC,CAAC,mCAAmC,EAAE;gBACrC,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,EAAE;gBAClB,KAAK;gBACL,MAAM;gBACN,SAAS;gBACT,SAAS;gBACT,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;aACzE,CAAC,CAAC;YACH,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACpD,CAAC;QAED;;;;;WAKG;QACH,IAAI,WAAW,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrC,CAAC,CAAC,yDAAyD,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,CACzC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EAC/D,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAC5C,CAAC;YACF,MAAM,WAAW,GAAG,UAAU,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;YAC7F,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,kDAAkD,CAAC,CAAC;YACjF,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAC7C,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,UAAU,CAAC,KAAK;gBACjB,CAAC,qBAAqB,CAAC,GAAG,CACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,CACrF,CACJ,CAAC;YACF,CAAC,CAAC,iDAAiD,oBAAoB,CAAC,MAAM,UAAU,CAAC,CAAC;YAE1F,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,CAAC,CAAC,sEAAsE,CAAC,CAAC;gBAC1E,MAAM,MAAM,CACV,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EACpD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CACzD,CAAC;gBACF,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,EAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,EAC1D,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CACzD,CAAC;gBAEF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACrD,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EACnE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CACpC,CAAC;gBACF,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CACjB,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,EAC7E,MAAM,CACP,CACF,CAAC;gBACF,EAAE,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrB,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EACzB,MAAM,CACP,CAAC;gBACF,MAAM,IAAI,CAAC,aAAa,CACtB,SAAS,EACT,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAC1D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,wCAAwC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED;;;;;;WAMG;QACH,mFAAmF;QACnF,IAAI,WAAW,KAAK,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzD,CAAC,CAAC,6BAA6B,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACzE,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;gBACtE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;gBACnF,cAAc,EAAE,MAAM;gBACtB,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,WAAW,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7C,CAAC,CAAC,mDAAmD,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YACxF,MAAM,YAAY,GAAG,MAAM,GAAG,CAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CACrE,CAAC;YAEF,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBAChC,CAAC,CAAC,mCAAmC,CAAC,CAAC;gBACvC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;gBAClF,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;gBACrF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;gBACvF,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,MAAM,MAAM,CACV,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,uBAAuB,CAAC,CACvE,CAAC;gBACJ,CAAC;gBAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;gBACtF,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EACpE,aAAa,EACb,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CACzD,CAAC;gBACF,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAChC,IAAI,CAAC,YAAY,EACjB,UAAU,EACV,WAAW,EACX,mBAAmB,CACpB,CAAC;gBACF,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAClB,aAAa,EACb,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,yBAAyB,CAAC,EACxE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CACzD,CAAC;gBACJ,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACrD,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,EACpE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CACpC,CAAC;gBACF,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CACjB,CACE,MAAM,IAAI,CAAC,WAAW,CACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EAClE,cAAc,CACf,CACF,CAAC,QAAQ,CAAC,MAAM,CAAC,CACnB,CAAC;gBACF,EAAE,CAAC,IAAI,GAAG,UAAU,CAAC;gBACrB,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EACzB,MAAM,CACP,CAAC;gBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,kCAAkC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QAE3F,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC;QACnF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;YAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;YAE/E,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CACtE,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAC1C,CAAC;YACT,MAAM,EAAE,qBAAqB,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAC1E,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAC5C,CAAC;YACT,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CACb,8GAA8G,SAAS,CAAC,YAAY,WAAW,CAChJ,CAAC;YACJ,CAAC;YAED,MAAM,mBAAmB,GACvB,CAAC,IAAI,CAAC,kBAAkB;gBACxB,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,MAAM,WAAW,GAAG,mBAAmB;gBACrC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,qBAAqB,EAAE,kBAAkB,EAAE;gBAC5D,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;YAEpB,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,EAC5C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CACzB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,aAAa,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtF,CAAC,CAAC,uBAAuB,EAAE,aAAa,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;YAChF,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,EAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CACjD,CAAC;QACJ,CAAC;QAED,CAAC,CAAC,kDAAkD,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC,CAAC"} +\ No newline at end of file +diff --git a/dist/integrity.d.ts b/dist/integrity.d.ts +new file mode 100644 +index 0000000000000000000000000000000000000000..6af5c516c1389743274460536bcc1668e8a136f4 +--- /dev/null ++++ b/dist/integrity.d.ts +@@ -0,0 +1,9 @@ ++import type { MakeUniversalOpts } from './types.d.ts'; ++export interface HeaderHash { ++ algorithm: 'SHA256'; ++ hash: string; ++} ++export interface AsarIntegrity { ++ [key: string]: HeaderHash; ++} ++export declare function computeIntegrityData(contentsPath: string, opts: Pick): Promise; +diff --git a/dist/integrity.js b/dist/integrity.js +new file mode 100644 +index 0000000000000000000000000000000000000000..7df45ded8feca61d3dbac03682a962054d9cd92c +--- /dev/null ++++ b/dist/integrity.js +@@ -0,0 +1,26 @@ ++import fs from 'node:fs'; ++import path from 'node:path'; ++import { AppFileType, getAllAppFiles } from './file-utils.js'; ++import { generateAsarIntegrity } from './asar-utils.js'; ++export async function computeIntegrityData(contentsPath, opts) { ++ const root = await fs.promises.realpath(contentsPath); ++ const resourcesRelativePath = 'Resources'; ++ const resourcesPath = path.resolve(root, resourcesRelativePath); ++ const resources = await getAllAppFiles(resourcesPath, opts); ++ const resourceAsars = resources ++ .filter((file) => file.type === AppFileType.APP_CODE) ++ .reduce((prev, file) => ({ ++ ...prev, ++ [path.join(resourcesRelativePath, file.relativePath)]: path.join(resourcesPath, file.relativePath), ++ }), {}); ++ // sort to produce constant result ++ const allAsars = Object.entries(resourceAsars).sort(([name1], [name2]) => name1.localeCompare(name2)); ++ const hashes = await Promise.all(allAsars.map(async ([, from]) => generateAsarIntegrity(from))); ++ const asarIntegrity = {}; ++ for (let i = 0; i < allAsars.length; i++) { ++ const [asar] = allAsars[i]; ++ asarIntegrity[asar] = hashes[i]; ++ } ++ return asarIntegrity; ++} ++//# sourceMappingURL=integrity.js.map +\ No newline at end of file +diff --git a/dist/integrity.js.map b/dist/integrity.js.map +new file mode 100644 +index 0000000000000000000000000000000000000000..9fa36c6283b81b8cd02ebce3052080a84f8fce3d +--- /dev/null ++++ b/dist/integrity.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../src/integrity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAgBxD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,IAAgD;IAEhD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEtD,MAAM,qBAAqB,GAAG,WAAW,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,SAAS;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;SACpD,MAAM,CACL,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACf,GAAG,IAAI;QACP,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAC9D,aAAa,EACb,IAAI,CAAC,YAAY,CAClB;KACF,CAAC,EACF,EAAE,CACH,CAAC;IAEJ,kCAAkC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACvE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAC3B,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC"} +\ No newline at end of file +diff --git a/dist/sha.d.ts b/dist/sha.d.ts +new file mode 100644 +index 0000000000000000000000000000000000000000..1c0daaa8b3bd65854b38289becc7dcd816bbfa87 +--- /dev/null ++++ b/dist/sha.d.ts +@@ -0,0 +1 @@ ++export declare const sha: (filePath: string) => Promise; +diff --git a/dist/sha.js b/dist/sha.js +new file mode 100644 +index 0000000000000000000000000000000000000000..0313dfb1e2a9585c7734188fbacee40cf45621dc +--- /dev/null ++++ b/dist/sha.js +@@ -0,0 +1,12 @@ ++import fs from 'node:fs'; ++import crypto from 'node:crypto'; ++import { pipeline } from 'node:stream/promises'; ++import { d } from './debug.js'; ++export const sha = async (filePath) => { ++ d('hashing', filePath); ++ const hash = crypto.createHash('sha256'); ++ hash.setEncoding('hex'); ++ await pipeline(fs.createReadStream(filePath), hash); ++ return hash.read(); ++}; ++//# sourceMappingURL=sha.js.map +\ No newline at end of file +diff --git a/dist/sha.js.map b/dist/sha.js.map +new file mode 100644 +index 0000000000000000000000000000000000000000..0c74193f9a8cd2d3da7f89ebd854ab1dbdf8847c +--- /dev/null ++++ b/dist/sha.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"sha.js","sourceRoot":"","sources":["../src/sha.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;IAC5C,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACxB,MAAM,QAAQ,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC,CAAC"} diff --git a/patches/app-builder-lib.patch b/patches/app-builder-lib.patch index 2fcef800f6..65867182de 100644 --- a/patches/app-builder-lib.patch +++ b/patches/app-builder-lib.patch @@ -1,8 +1,8 @@ diff --git a/out/asar/asarUtil.js b/out/asar/asarUtil.js -index bea8a3b1b2ab56d99ea3679eb88aaf0b4b646803..622e362315642a7144021bbb885e571e9e948e07 100644 +index ffb85dea810257c8ddbed2f857c25787c9e5b694..fdcc65fb94bcf95adbb4cf97b7d4c85a8fce5883 100644 --- a/out/asar/asarUtil.js +++ b/out/asar/asarUtil.js -@@ -149,15 +149,24 @@ class AsarPackager { +@@ -212,15 +212,24 @@ class AsarPackager { if (a === b) { return 0; } @@ -32,7 +32,7 @@ index bea8a3b1b2ab56d99ea3679eb88aaf0b4b646803..622e362315642a7144021bbb885e571e return a < b ? -1 : 1; }); diff --git a/out/targets/FpmTarget.js b/out/targets/FpmTarget.js -index 47e6f48fcbed88b6ac07cff15c888c1b8b59721f..76dd6cc7265054222f2d70c76aa8456d550f29d1 100644 +index f10f8148a237fae6c7af44818a127dfc881d884f..3bc2a9d1895d4f00133c82240ec2eba8c87d605a 100644 --- a/out/targets/FpmTarget.js +++ b/out/targets/FpmTarget.js @@ -30,6 +30,7 @@ class FpmTarget extends core_1.Target { @@ -44,7 +44,7 @@ index 47e6f48fcbed88b6ac07cff15c888c1b8b59721f..76dd6cc7265054222f2d70c76aa8456d productFilename: packager.appInfo.productFilename, ...packager.platformSpecificBuildOptions, diff --git a/templates/linux/after-install.tpl b/templates/linux/after-install.tpl -index 6cf860bd2847bae35ca8885cb680dd6c8c516e39..a3cb08a6dc7970ab2b32c731f41ea6e471204a19 100644 +index 2bb3d32d9df96a4bf0245670613f20459b32fb46..6dda2f3798ec0b13366f1b8d4adb9cd61696fd28 100644 --- a/templates/linux/after-install.tpl +++ b/templates/linux/after-install.tpl @@ -55,3 +55,26 @@ if apparmor_status --enabled > /dev/null 2>&1; then @@ -75,7 +75,7 @@ index 6cf860bd2847bae35ca8885cb680dd6c8c516e39..a3cb08a6dc7970ab2b32c731f41ea6e4 + +# SIGNAL CHANGES END diff --git a/templates/linux/after-remove.tpl b/templates/linux/after-remove.tpl -index 19b3decabe18a816f9ed5440fa9124ebfd6e3907..b5011d1b8cdb741ba6453f942a3c0660b66d41a0 100644 +index 19b3decabe18a816f9ed5440fa9124ebfd6e3907..fa1ecd2d991977c53a5082b2efb3120c53211f13 100644 --- a/templates/linux/after-remove.tpl +++ b/templates/linux/after-remove.tpl @@ -13,3 +13,12 @@ APPARMOR_PROFILE_DEST='/etc/apparmor.d/${executable}' @@ -91,9 +91,8 @@ index 19b3decabe18a816f9ed5440fa9124ebfd6e3907..b5011d1b8cdb741ba6453f942a3c0660 +fi + +# SIGNAL CHANGES END -\ No newline at end of file diff --git a/templates/nsis/include/installer.nsh b/templates/nsis/include/installer.nsh -index 34e91dfe82fdbb2e929820f2e8deb771b7f7893c..73bfffc6c227a018cbbeb690d6d7b882ed142fc8 100644 +index 300ef3dd699d0f5a081b1934fcc22dbe12025bdb..e1fc5bc630d2c3697bb1b51ddedf830a8f6418a5 100644 --- a/templates/nsis/include/installer.nsh +++ b/templates/nsis/include/installer.nsh @@ -90,7 +90,13 @@ @@ -112,10 +111,10 @@ index 34e91dfe82fdbb2e929820f2e8deb771b7f7893c..73bfffc6c227a018cbbeb690d6d7b882 SetShellVarContext all ${endif} diff --git a/templates/nsis/installSection.nsh b/templates/nsis/installSection.nsh -index 053772f55ca6ece52f0a34c4fa0f05c9a5f07bd2..a58ea8c19116f8ec3fb7515ec4104282f635ecc8 100644 +index 053772f55ca6ece52f0a34c4fa0f05c9a5f07bd2..051bdafdb4aef45b0787fb3de1415d4a17c92ebf 100644 --- a/templates/nsis/installSection.nsh +++ b/templates/nsis/installSection.nsh -@@ -22,11 +22,37 @@ StrCpy $appExe "$INSTDIR\${APP_EXECUTABLE_FILENAME}" +@@ -22,10 +22,37 @@ StrCpy $appExe "$INSTDIR\${APP_EXECUTABLE_FILENAME}" SpiderBanner::Show /MODERN !endif @@ -124,7 +123,7 @@ index 053772f55ca6ece52f0a34c4fa0f05c9a5f07bd2..a58ea8c19116f8ec3fb7515ec4104282 FindWindow $0 "#32770" "" $hwndparent $0 - GetDlgItem $0 $0 1000 - SendMessage $0 ${WM_SETTEXT} 0 "STR:$(installing)" - ++ + GetDlgItem $1 $0 1000 + SendMessage $1 ${WM_SETTEXT} 0 "STR:$(installing)" + @@ -152,6 +151,6 @@ index 053772f55ca6ece52f0a34c4fa0f05c9a5f07bd2..a58ea8c19116f8ec3fb7515ec4104282 + GetDlgItem $1 $0 1025 + SendMessage $1 ${STM_SETIMAGE} ${IMAGE_ICON} $2 + !endif + StrCpy $1 $hwndparent System::Call 'user32::ShutdownBlockReasonCreate(${SYSTYPE_PTR}r1, w "$(installing)")' - ${endif} diff --git a/patches/dmg-builder.patch b/patches/dmg-builder.patch index 786788a564..ae86eaee82 100644 --- a/patches/dmg-builder.patch +++ b/patches/dmg-builder.patch @@ -1,5 +1,5 @@ diff --git a/out/dmgLicense.js b/out/dmgLicense.js -index cf1dbdf803d3af37e439c7f0fa219b497f8faaef..d546a96a2857c11e70c6489b33c87a7665399fd7 100644 +index d58b72f1f6e8009fa7c984d0aa43e7d6e2c0358e..4cff1dffabc835a2c046aaaf278a1208f0475c97 100644 --- a/out/dmgLicense.js +++ b/out/dmgLicense.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); @@ -11,16 +11,3 @@ index cf1dbdf803d3af37e439c7f0fa219b497f8faaef..d546a96a2857c11e70c6489b33c87a76 const fs_extra_1 = require("fs-extra"); const js_yaml_1 = require("js-yaml"); const licenseButtons_1 = require("./licenseButtons"); -diff --git a/vendor/dmgbuild/core.py b/vendor/dmgbuild/core.py -index 1adc35289fc604f3dd5545d3d86fbacb6baeaf69..473e70a3a7a4e9285517634a0749d9da82211699 100644 ---- a/vendor/dmgbuild/core.py -+++ b/vendor/dmgbuild/core.py -@@ -255,7 +255,7 @@ def build_dmg(): - icvp['backgroundColorBlue'] = float(c.b) - elif background_file: - alias = Alias.for_file(background_file) -- background_bmk = Bookmark.for_file(background_file) -+ # background_bmk = Bookmark.for_file(background_file) - - icvp['backgroundType'] = 2 - icvp['backgroundImageAlias'] = biplist.Data(alias.to_bytes()) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 117f2b318c..0b22e3669f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,6 +13,9 @@ overrides: react-popper@2.3.0>react-dom: 19.2.4 patchedDependencies: + '@electron/universal': + hash: 506a5defc2fc12cdae1092759ae376a9fd8f1731ef1d38cf2aee2d1ec752acde + path: patches/@electron__universal.patch '@napi-rs/canvas@0.1.61': hash: d232c1154bffd88fa8df40fc91dc36098b29aba725d826c24ce74cfac7803919 path: patches/@napi-rs__canvas@0.1.61.patch @@ -26,13 +29,13 @@ patchedDependencies: hash: e8a96f71e52bf903c9f1eadba4740489a0beb48da33db52354adca484fe1f495 path: patches/@vitest+expect+2.0.5.patch app-builder-lib: - hash: bcbaa020b1d47a2b1e6ba770e561454819f95f13e01361cc3b2a25560a607fd5 + hash: 4b0b6a075db66810319028f6784bd5bb11cd9bb38570800f1fff0d80f90c44d8 path: patches/app-builder-lib.patch casual@1.6.2: hash: b88b5052437cbdc1882137778b76ca5037f71b2a030ae9ef39dc97f51670d599 path: patches/casual+1.6.2.patch dmg-builder: - hash: 7ce1df215d2c4dcbe797485ec0456168d19a4870687b21c489062abd079c7982 + hash: 75ddbdfdce4e9fad4f5e7d3e2ac0d29fc920006584534018bf560c486e0642ec path: patches/dmg-builder.patch fabric@4.6.0: hash: 259e6eff3d60c4a453f7815fca6aa0d3a81842f4efdc4051836812fc1e711e00 @@ -419,8 +422,8 @@ importers: specifier: 42.3.0 version: 42.3.0 electron-builder: - specifier: 26.0.14 - version: 26.0.14(electron-builder-squirrel-windows@26.0.14) + specifier: 26.11.1 + version: 26.11.1(electron-builder-squirrel-windows@26.11.1) electron-mocha: specifier: 13.1.0 version: 13.1.0 @@ -1143,15 +1146,14 @@ packages: resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} engines: {node: '>=12'} + '@electron/get@3.1.0': + resolution: {integrity: sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==} + engines: {node: '>=14'} + '@electron/get@5.0.0': resolution: {integrity: sha512-pjoBpru1KdEtcExBnuHAP1cAc/5faoedw0hzJkL3o4/IJp7HNF1+fbrdxT3gMYRX2oJfvnA/WXeCTVQpYYxyJA==} engines: {node: '>=22.12.0'} - '@electron/node-gyp@10.2.0-electron.2': - resolution: {integrity: sha512-OhO6fwqpetMO1vWI3+J8mb3a4s4A405tgKoUCJsgd4nyQDdFh0VvZm+gj/Cc70iRLQoIYUfSaAgYSVwmLsQHig==} - engines: {node: '>=12.13.0'} - hasBin: true - '@electron/notarize@2.1.0': resolution: {integrity: sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA==} engines: {node: '>= 10.0.0'} @@ -1160,14 +1162,14 @@ packages: resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} engines: {node: '>= 10.0.0'} - '@electron/osx-sign@1.3.1': - resolution: {integrity: sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==} + '@electron/osx-sign@1.3.3': + resolution: {integrity: sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==} engines: {node: '>=12.0.0'} hasBin: true - '@electron/rebuild@3.7.2': - resolution: {integrity: sha512-19/KbIR/DAxbsCkiaGMXIdPnMCJLkcf8AvGnduJtWBs/CBwiAjY1apCqOLVxrXg+rtXFCngbXhBanWjxLUt1Mg==} - engines: {node: '>=12.13.0'} + '@electron/rebuild@4.0.3': + resolution: {integrity: sha512-u9vpTHRMkOYCs/1FLiSVAFZ7FbjsXK+bQuzviJZa+lG7BHZl1nz52/IcGvwa3sk80/fc3llutBkbCq10Vh8WQA==} + engines: {node: '>=22.12.0'} hasBin: true '@electron/symbolicate-mac@2.3.1': @@ -1175,8 +1177,8 @@ packages: engines: {node: '>=4'} hasBin: true - '@electron/universal@2.0.1': - resolution: {integrity: sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==} + '@electron/universal@2.0.3': + resolution: {integrity: sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==} engines: {node: '>=16.4'} '@electron/windows-sign@1.2.2': @@ -1589,9 +1591,6 @@ packages: typescript: optional: true - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@gitbeaker/core@38.12.1': resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==} engines: {node: '>=18.0.0'} @@ -1926,14 +1925,13 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + '@npmcli/agent@3.0.0': + resolution: {integrity: sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==} + engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs + '@npmcli/fs@4.0.0': + resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} + engines: {node: ^18.17.0 || >=20.5.0} '@octokit/auth-token@4.0.0': resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} @@ -4474,10 +4472,6 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - '@tsconfig/node10@1.0.12': resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} @@ -4903,8 +4897,9 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} @@ -4929,18 +4924,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -5035,12 +5022,12 @@ packages: app-builder-bin@5.0.0-alpha.12: resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} - app-builder-lib@26.0.14: - resolution: {integrity: sha512-nc/A9MUd95MCc7bR4yVW7Lhs9FZTA/l8QdV8PE1vZZOOiogK4dupBfCCJG0UqLU81JS62f078/bwAeuMjt3hfQ==} + app-builder-lib@26.11.1: + resolution: {integrity: sha512-KCZm58CifmTGbzw9PZOyDEecwjY3jY9cQ4uBRIDxZYhaJqqsz0RQFkryoV+EPhjVlkPql7Jsg6SNUkz837Bkhw==} engines: {node: '>=14.0.0'} peerDependencies: - dmg-builder: 26.0.14 - electron-builder-squirrel-windows: 26.0.14 + dmg-builder: 26.11.1 + electron-builder-squirrel-windows: 26.11.1 append-transform@2.0.0: resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} @@ -5209,6 +5196,9 @@ packages: blob-util@2.0.2: resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + blueimp-load-image@5.16.0: resolution: {integrity: sha512-3DUSVdOtlfNRk7moRZuTwDmA3NnG8KIJuLcq3c0J7/BIr6X3Vb/EpX3kUH1joxUhmoVF4uCpDfz7wHkz8pQajA==} @@ -5281,12 +5271,13 @@ packages: resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} engines: {node: '>=6.14.2'} - builder-util-runtime@9.3.2: - resolution: {integrity: sha512-7QDXJ1FwT6d9ZhG4kuObUUPY8/ENBS/Ky26O4hR5vbeoRGavgekS2Jxv+8sCn/v23aPGU2DXRWEeJuijN2ooYA==} + builder-util-runtime@9.6.1: + resolution: {integrity: sha512-gnk+lN50T7TIRp4bHTVydSnWsNkYAxGiDDbed3U26Z82s1lr8em4E4fLs/EPfIEZIbfi4Zfo5NsdA9gHWbPmXg==} engines: {node: '>=12.0.0'} - builder-util@26.0.13: - resolution: {integrity: sha512-6b64uHzywaL2KAG+rVcqk/Prta1m3I2Jo1d4d2CrApb6EeSk2V384tmSL0EniH+P8jaNbMp6qhg7cIALw32zRA==} + builder-util@26.11.1: + resolution: {integrity: sha512-oWRbAjgN9RdVCLvNVN9ltZwaUkrH/FrH8wdggAwpz426PTdcbGEARp7J1HXad/QijURPxYL+BKykThaRjluPIQ==} + engines: {node: '>=14.0.0'} byte-counter@0.1.0: resolution: {integrity: sha512-jheRLVMeUKrDBjVw2O5+k4EvR4t9wtxHL+bo/LxfkxsVeuGMy3a5SEGgXdAFA4FSzTrU8rQXQIrsZ3oBq5a0pQ==} @@ -5296,9 +5287,9 @@ packages: resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==} engines: {node: '>= 0.8'} - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + cacache@19.0.1: + resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} + engines: {node: ^18.17.0 || >=20.5.0} cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} @@ -5431,10 +5422,6 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -5453,6 +5440,14 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + cirbuf@1.0.2: resolution: {integrity: sha512-qatGIQ8pnGCXzx06hZhA6o8iYYdBmIcb5vlUkN2viTEvbz2XLmhAwmWYKJqsiEXQNPlWmEcJAFTJwc/wbNkDxQ==} @@ -5596,9 +5591,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - config-file-ts@0.2.8-rc1: - resolution: {integrity: sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==} - config@4.4.1: resolution: {integrity: sha512-XfN4Q4+wBKkGtgMyQ+5ayjepdb0MrdiGKfBr0G1PTLx9rnqsX+Xiw03LEUtSALZU0UVfcFp6+xYV0NL8HLF94g==} engines: {node: '>= 20.0.0'} @@ -5929,8 +5921,8 @@ packages: discontinuous-range@1.0.0: resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} - dmg-builder@26.0.14: - resolution: {integrity: sha512-0l7oEj175hee7NfnaUpb0zf7fsgh1SyHeLjDA0AtOMnBUfTGxPPwrifbUxfd73qzamrGNcyeqza+m/EJx3QUug==} + dmg-builder@26.11.1: + resolution: {integrity: sha512-uFE7wiNn/GJ/MCtHz9ZIYj8w+27WTKush6PX6a1rt7RWJ5Ua4WgK6PAgErSBQXk0Q8UM4YMTXUBNFhN1gR+1qw==} dmg-license@1.0.11: resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} @@ -6011,6 +6003,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + duplexer3@0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} @@ -6028,11 +6023,11 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-builder-squirrel-windows@26.0.14: - resolution: {integrity: sha512-1JvbMXtNJsElDZZaFMa3nIRV/diXBFeP0+JPhLLu1c7b21VWPcPbr3MCCL+lTchVDq+q2v0F5dmHN72CJnOTpg==} + electron-builder-squirrel-windows@26.11.1: + resolution: {integrity: sha512-qWplLUSGhcjKClb1G8c9TOI5abYZGsIP7YlA6jSBLPFdSvN+teV30jFZsNgM1KYeMD6liqNZaRjySJ/zSq+X8A==} - electron-builder@26.0.14: - resolution: {integrity: sha512-YBxpWLMGj0oS7fbS3LVingeZqFunU0F8s+uB9QTd5+wN4qgrf/rSGRkqoImbWg2+F2yHq11wmaA/Xr9xzvgQ0w==} + electron-builder@26.11.1: + resolution: {integrity: sha512-CMG8PQAnUBWIx9THpwWysrHfJQs9Q1E1VDayK+ZkNqvih+ao8mywMP5v2ohLkzlg1ZeVyvkQP6oICJGzyeCAUQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -6041,8 +6036,8 @@ packages: engines: {node: '>= 16.0.0'} hasBin: true - electron-publish@26.0.13: - resolution: {integrity: sha512-O5hfHSwli5cegQ4JS3Dp0dZcheex6UCRE/qYyRQvhB6DhSwojiwTnAGEuQCJXc8K8Zxz2lku5Du3VwYHf8d5Lw==} + electron-publish@26.11.1: + resolution: {integrity: sha512-aMugkYS7QZtS/PjbyOSh0MlymxoWppj7+lEcqmsO1jM6igedcgAdFtmWms3g/DdMPpCZDVKxzkC4a3UK6HGlmA==} electron-to-chromium@1.5.321: resolution: {integrity: sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==} @@ -6564,9 +6559,9 @@ packages: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -6677,11 +6672,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} @@ -6862,10 +6852,6 @@ packages: resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==} engines: {node: '>= 0.6'} - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -6887,10 +6873,6 @@ packages: resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -6906,9 +6888,6 @@ packages: humanize-duration@3.33.2: resolution: {integrity: sha512-K7Ny/ULO1hDm2nnhvAY+SJV1skxFb61fd073SG1IWJl+D44ULrruCuTyjHKjBVVcSuTlnY99DKtgEG39CM5QOQ==} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - hyperlinker@1.0.0: resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==} engines: {node: '>=4'} @@ -6970,9 +6949,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -7039,10 +7015,6 @@ packages: resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==} hasBin: true - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -7091,9 +7063,6 @@ packages: resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==} engines: {node: '>=8'} - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-negated-glob@1.0.0: resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} engines: {node: '>=0.10.0'} @@ -7768,10 +7737,6 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - lru-queue@0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} @@ -7800,9 +7765,9 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + make-fetch-happen@14.0.3: + resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} + engines: {node: ^18.17.0 || >=20.5.0} makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -7934,13 +7899,13 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + minipass-fetch@4.0.1: + resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} + engines: {node: ^18.17.0 || >=20.5.0} minipass-flush@1.0.5: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} @@ -7958,18 +7923,10 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.1.3: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} @@ -8039,8 +7996,8 @@ packages: resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} hasBin: true - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} neo-async@2.6.2: @@ -8052,9 +8009,9 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abi@3.92.0: - resolution: {integrity: sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==} - engines: {node: '>=10'} + node-abi@4.31.0: + resolution: {integrity: sha512-Erq5w/t3syw3s4sDsUaX4QttIdBPsGKTT1DTRsCkTonGggczhlDKm/wDX3o+HPJpQ41EjXCbcmXf0tgr5YZJXw==} + engines: {node: '>=22.12.0'} node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} @@ -8101,6 +8058,11 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true + node-gyp@11.5.0: + resolution: {integrity: sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -8114,9 +8076,9 @@ packages: node-releases@2.0.36: resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} hasBin: true normalize-path@3.0.0: @@ -8285,10 +8247,6 @@ packages: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - p-map@7.0.4: resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} @@ -8662,9 +8620,9 @@ packages: resolution: {integrity: sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==} hasBin: true - proc-log@2.0.1: - resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + proc-log@5.0.0: + resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} + engines: {node: ^18.17.0 || >=20.5.0} process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -8684,14 +8642,6 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} @@ -8703,6 +8653,9 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + proxy-from-env@2.1.0: resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} engines: {node: '>=10'} @@ -9301,10 +9254,6 @@ packages: resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} engines: {node: '>= 18'} - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -9351,9 +9300,9 @@ packages: resolution: {integrity: sha512-87VsXfl9ng7oNZlV0p3c/DfraFneH4EPYZ1F7v+ZbGTdddtI0FHcqRRshJx6/Sy7saXOiCwstw0J2cP4Z6Xj5A==} hasBin: true - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + ssri@12.0.0: + resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} + engines: {node: ^18.17.0 || >=20.5.0} stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} @@ -9608,10 +9557,9 @@ packages: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + tar@7.5.15: + resolution: {integrity: sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==} + engines: {node: '>=18'} tar@7.5.2: resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} @@ -9821,11 +9769,6 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - typescript@6.0.3: resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} @@ -9864,13 +9807,13 @@ packages: resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} engines: {node: '>= 0.8.0'} - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-filename@4.0.0: + resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==} + engines: {node: ^18.17.0 || >=20.5.0} - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + unique-slug@5.0.0: + resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} + engines: {node: ^18.17.0 || >=20.5.0} unique-stream@2.3.1: resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==} @@ -9898,6 +9841,9 @@ packages: resolution: {integrity: sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw==} engines: {node: '>=4'} + unzipper@0.12.3: + resolution: {integrity: sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA==} + upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} @@ -10776,6 +10722,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@electron/get@3.1.0': + dependencies: + debug: 4.4.3(supports-color@8.1.1) + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + '@electron/get@5.0.0': dependencies: debug: 4.4.3(supports-color@8.1.1) @@ -10789,22 +10749,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/node-gyp@10.2.0-electron.2': - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.2 - glob: 8.1.0 - graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 - nopt: 6.0.0 - proc-log: 2.0.1 - semver: 7.7.4 - tar: 6.2.1 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - '@electron/notarize@2.1.0': dependencies: debug: 4.4.3(supports-color@8.1.1) @@ -10821,7 +10765,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/osx-sign@1.3.1': + '@electron/osx-sign@1.3.3': dependencies: compare-version: 0.1.2 debug: 4.4.3(supports-color@8.1.1) @@ -10832,24 +10776,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/rebuild@3.7.2': + '@electron/rebuild@4.0.3': dependencies: - '@electron/node-gyp': 10.2.0-electron.2 '@malept/cross-spawn-promise': 2.0.0 - chalk: 4.1.2 debug: 4.4.3(supports-color@8.1.1) detect-libc: 2.1.2 - fs-extra: 10.1.0 - got: 11.8.5 - node-abi: 3.92.0 + got: 11.8.6 + graceful-fs: 4.2.11 + node-abi: 4.31.0 node-api-version: 0.2.1 + node-gyp: 11.5.0 ora: 5.4.1 read-binary-file-arch: 1.0.6 semver: 7.7.4 - tar: 6.2.1 + tar: 7.5.15 yargs: 17.7.2 transitivePeerDependencies: - - bluebird - supports-color '@electron/symbolicate-mac@2.3.1': @@ -10859,7 +10801,7 @@ snapshots: mkdirp: 1.0.4 yargs: 17.7.2 - '@electron/universal@2.0.1': + '@electron/universal@2.0.3(patch_hash=506a5defc2fc12cdae1092759ae376a9fd8f1731ef1d38cf2aee2d1ec752acde)': dependencies: '@electron/asar': 3.4.1 '@malept/cross-spawn-promise': 2.0.0 @@ -11164,8 +11106,6 @@ snapshots: optionalDependencies: typescript: 6.0.3 - '@gar/promisify@1.1.3': {} - '@gitbeaker/core@38.12.1': dependencies: '@gitbeaker/requester-utils': 38.12.1 @@ -11603,15 +11543,19 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@npmcli/fs@2.1.2': + '@npmcli/agent@3.0.0': dependencies: - '@gar/promisify': 1.1.3 - semver: 7.7.4 + agent-base: 7.1.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color - '@npmcli/move-file@2.0.1': + '@npmcli/fs@4.0.0': dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 + semver: 7.7.4 '@octokit/auth-token@4.0.0': {} @@ -14477,8 +14421,6 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 - '@tootallnate/once@2.0.0': {} - '@tsconfig/node10@1.0.12': optional: true @@ -14977,7 +14919,7 @@ snapshots: '@xtuc/long@4.2.2': {} - abbrev@1.1.1: {} + abbrev@3.0.1: {} abort-controller@3.0.0: dependencies: @@ -14996,18 +14938,8 @@ snapshots: acorn@8.16.0: {} - agent-base@6.0.2: - dependencies: - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - agent-base@7.1.3: {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -15085,45 +15017,48 @@ snapshots: app-builder-bin@5.0.0-alpha.12: {} - app-builder-lib@26.0.14(patch_hash=bcbaa020b1d47a2b1e6ba770e561454819f95f13e01361cc3b2a25560a607fd5)(dmg-builder@26.0.14)(electron-builder-squirrel-windows@26.0.14): + app-builder-lib@26.11.1(patch_hash=4b0b6a075db66810319028f6784bd5bb11cd9bb38570800f1fff0d80f90c44d8)(dmg-builder@26.11.1)(electron-builder-squirrel-windows@26.11.1): dependencies: '@develar/schema-utils': 2.6.5 '@electron/asar': 3.4.1 '@electron/fuses': 1.8.0 + '@electron/get': 3.1.0 '@electron/notarize': 2.5.0 - '@electron/osx-sign': 1.3.1 - '@electron/rebuild': 3.7.2 - '@electron/universal': 2.0.1 + '@electron/osx-sign': 1.3.3 + '@electron/rebuild': 4.0.3 + '@electron/universal': 2.0.3(patch_hash=506a5defc2fc12cdae1092759ae376a9fd8f1731ef1d38cf2aee2d1ec752acde) '@malept/flatpak-bundler': 0.4.0 '@types/fs-extra': 9.0.13 async-exit-hook: 2.0.1 - builder-util: 26.0.13 - builder-util-runtime: 9.3.2 + builder-util: 26.11.1 + builder-util-runtime: 9.6.1 chromium-pickle-js: 0.2.0 - config-file-ts: 0.2.8-rc1 + ci-info: 4.3.1 debug: 4.4.3(supports-color@8.1.1) - dmg-builder: 26.0.14(patch_hash=7ce1df215d2c4dcbe797485ec0456168d19a4870687b21c489062abd079c7982)(electron-builder-squirrel-windows@26.0.14) + dmg-builder: 26.11.1(patch_hash=75ddbdfdce4e9fad4f5e7d3e2ac0d29fc920006584534018bf560c486e0642ec)(electron-builder-squirrel-windows@26.11.1) dotenv: 16.4.7 dotenv-expand: 11.0.7 ejs: 3.1.10 - electron-builder-squirrel-windows: 26.0.14(dmg-builder@26.0.14) - electron-publish: 26.0.13 + electron-builder-squirrel-windows: 26.11.1(dmg-builder@26.11.1) + electron-publish: 26.11.1 fs-extra: 10.1.0 hosted-git-info: 4.1.0 - is-ci: 3.0.1 isbinaryfile: 5.0.4 + jiti: 2.7.0 js-yaml: 4.1.1 json5: 2.2.3 lazy-val: 1.0.5 minimatch: 10.2.4 plist: 3.1.0 + proper-lockfile: 4.1.2 resedit: 1.7.2 semver: 7.7.4 - tar: 6.2.1 + tar: 7.5.15 temp-file: 3.4.0 tiny-async-pool: 1.3.0 + unzipper: 0.12.3 + which: 5.0.0 transitivePeerDependencies: - - bluebird - supports-color append-transform@2.0.0: @@ -15320,6 +15255,8 @@ snapshots: blob-util@2.0.2: {} + bluebird@3.7.2: {} + blueimp-load-image@5.16.0: {} blurhash@2.0.5: {} @@ -15405,26 +15342,25 @@ snapshots: node-gyp-build: 4.8.4 optional: true - builder-util-runtime@9.3.2: + builder-util-runtime@9.6.1: dependencies: debug: 4.4.3(supports-color@8.1.1) sax: 1.6.0 transitivePeerDependencies: - supports-color - builder-util@26.0.13: + builder-util@26.11.1: dependencies: 7zip-bin: 5.2.0 '@types/debug': 4.1.13 app-builder-bin: 5.0.0-alpha.12 - builder-util-runtime: 9.3.2 + builder-util-runtime: 9.6.1 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3(supports-color@8.1.1) fs-extra: 10.1.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - is-ci: 3.0.1 js-yaml: 4.1.1 sanitize-filename: 1.6.3 source-map-support: 0.5.21 @@ -15438,28 +15374,20 @@ snapshots: bytes@3.1.0: {} - cacache@16.1.3: + cacache@19.0.1: dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 + '@npmcli/fs': 4.0.0 + fs-minipass: 3.0.3 + glob: 10.5.0 + lru-cache: 10.4.3 + minipass: 7.1.3 + minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.2.1 - unique-filename: 2.0.1 - transitivePeerDependencies: - - bluebird + p-map: 7.0.4 + ssri: 12.0.0 + tar: 7.5.15 + unique-filename: 4.0.0 cacheable-lookup@5.0.4: {} @@ -15611,8 +15539,6 @@ snapshots: dependencies: readdirp: 4.1.2 - chownr@2.0.0: {} - chownr@3.0.0: {} chrome-trace-event@1.0.4: {} @@ -15623,6 +15549,10 @@ snapshots: ci-info@3.9.0: {} + ci-info@4.3.1: {} + + ci-info@4.4.0: {} + cirbuf@1.0.2: {} cjs-module-lexer@1.4.3: {} @@ -15733,11 +15663,6 @@ snapshots: concat-map@0.0.1: {} - config-file-ts@0.2.8-rc1: - dependencies: - glob: 10.5.0 - typescript: 5.9.3 - config@4.4.1: dependencies: json5: 2.2.3 @@ -16074,18 +15999,16 @@ snapshots: discontinuous-range@1.0.0: {} - dmg-builder@26.0.14(patch_hash=7ce1df215d2c4dcbe797485ec0456168d19a4870687b21c489062abd079c7982)(electron-builder-squirrel-windows@26.0.14): + dmg-builder@26.11.1(patch_hash=75ddbdfdce4e9fad4f5e7d3e2ac0d29fc920006584534018bf560c486e0642ec)(electron-builder-squirrel-windows@26.11.1): dependencies: - app-builder-lib: 26.0.14(patch_hash=bcbaa020b1d47a2b1e6ba770e561454819f95f13e01361cc3b2a25560a607fd5)(dmg-builder@26.0.14)(electron-builder-squirrel-windows@26.0.14) - builder-util: 26.0.13 - builder-util-runtime: 9.3.2 + app-builder-lib: 26.11.1(patch_hash=4b0b6a075db66810319028f6784bd5bb11cd9bb38570800f1fff0d80f90c44d8)(dmg-builder@26.11.1)(electron-builder-squirrel-windows@26.11.1) + builder-util: 26.11.1 fs-extra: 10.1.0 iconv-lite: 0.6.3 js-yaml: 4.1.1 optionalDependencies: dmg-license: 1.0.11 transitivePeerDependencies: - - bluebird - electron-builder-squirrel-windows - supports-color @@ -16191,6 +16114,10 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + duplexer3@0.1.5: {} duplexify@4.1.3: @@ -16210,30 +16137,28 @@ snapshots: dependencies: jake: 10.9.2 - electron-builder-squirrel-windows@26.0.14(dmg-builder@26.0.14): + electron-builder-squirrel-windows@26.11.1(dmg-builder@26.11.1): dependencies: - app-builder-lib: 26.0.14(patch_hash=bcbaa020b1d47a2b1e6ba770e561454819f95f13e01361cc3b2a25560a607fd5)(dmg-builder@26.0.14)(electron-builder-squirrel-windows@26.0.14) - builder-util: 26.0.13 + app-builder-lib: 26.11.1(patch_hash=4b0b6a075db66810319028f6784bd5bb11cd9bb38570800f1fff0d80f90c44d8)(dmg-builder@26.11.1)(electron-builder-squirrel-windows@26.11.1) + builder-util: 26.11.1 electron-winstaller: 5.4.0 transitivePeerDependencies: - - bluebird - dmg-builder - supports-color - electron-builder@26.0.14(electron-builder-squirrel-windows@26.0.14): + electron-builder@26.11.1(electron-builder-squirrel-windows@26.11.1): dependencies: - app-builder-lib: 26.0.14(patch_hash=bcbaa020b1d47a2b1e6ba770e561454819f95f13e01361cc3b2a25560a607fd5)(dmg-builder@26.0.14)(electron-builder-squirrel-windows@26.0.14) - builder-util: 26.0.13 - builder-util-runtime: 9.3.2 + app-builder-lib: 26.11.1(patch_hash=4b0b6a075db66810319028f6784bd5bb11cd9bb38570800f1fff0d80f90c44d8)(dmg-builder@26.11.1)(electron-builder-squirrel-windows@26.11.1) + builder-util: 26.11.1 + builder-util-runtime: 9.6.1 chalk: 4.1.2 - dmg-builder: 26.0.14(patch_hash=7ce1df215d2c4dcbe797485ec0456168d19a4870687b21c489062abd079c7982)(electron-builder-squirrel-windows@26.0.14) + ci-info: 4.4.0 + dmg-builder: 26.11.1(patch_hash=75ddbdfdce4e9fad4f5e7d3e2ac0d29fc920006584534018bf560c486e0642ec)(electron-builder-squirrel-windows@26.11.1) fs-extra: 10.1.0 - is-ci: 3.0.1 lazy-val: 1.0.5 simple-update-notifier: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: - - bluebird - electron-builder-squirrel-windows - supports-color @@ -16245,11 +16170,11 @@ snapshots: which: 5.0.0 yargs: 17.7.2 - electron-publish@26.0.13: + electron-publish@26.11.1: dependencies: '@types/fs-extra': 9.0.13 - builder-util: 26.0.13 - builder-util-runtime: 9.3.2 + builder-util: 26.11.1 + builder-util-runtime: 9.6.1 chalk: 4.1.2 form-data: 4.0.5 fs-extra: 10.1.0 @@ -16893,9 +16818,9 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 - fs-minipass@2.1.0: + fs-minipass@3.0.3: dependencies: - minipass: 3.3.6 + minipass: 7.1.3 fs-monkey@1.0.6: {} @@ -17005,18 +16930,10 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 3.1.5 once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.9 - once: 1.4.0 - global-agent@3.0.0: dependencies: boolean: 3.2.0 @@ -17254,14 +17171,6 @@ snapshots: statuses: 1.5.0 toidentifier: 1.0.0 - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 @@ -17306,13 +17215,6 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 @@ -17326,10 +17228,6 @@ snapshots: humanize-duration@3.33.2: {} - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - hyperlinker@1.0.0: {} iconv-corefoundation@1.1.7: @@ -17376,8 +17274,6 @@ snapshots: indent-string@4.0.0: {} - infer-owner@1.0.4: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -17457,10 +17353,6 @@ snapshots: dependencies: ci-info: 1.6.0 - is-ci@3.0.1: - dependencies: - ci-info: 3.9.0 - is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -17499,8 +17391,6 @@ snapshots: dependencies: ip-regex: 4.3.0 - is-lambda@1.0.1: {} - is-negated-glob@1.0.0: {} is-npm@1.0.0: {} @@ -18334,8 +18224,6 @@ snapshots: dependencies: yallist: 4.0.0 - lru-cache@7.18.3: {} - lru-queue@0.1.0: dependencies: es5-ext: 0.10.64 @@ -18365,26 +18253,20 @@ snapshots: make-error@1.3.6: optional: true - make-fetch-happen@10.2.1: + make-fetch-happen@14.0.3: dependencies: - agentkeepalive: 4.6.0 - cacache: 16.1.3 - http-cache-semantics: 4.1.1 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 + '@npmcli/agent': 3.0.0 + cacache: 19.0.1 + http-cache-semantics: 4.2.0 + minipass: 7.1.3 + minipass-fetch: 4.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - negotiator: 0.6.4 + negotiator: 1.0.0 + proc-log: 5.0.0 promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 9.0.1 + ssri: 12.0.0 transitivePeerDependencies: - - bluebird - supports-color makeerror@1.0.12: @@ -18498,15 +18380,15 @@ snapshots: minimist@1.2.8: {} - minipass-collect@1.0.2: + minipass-collect@2.0.1: dependencies: - minipass: 3.3.6 + minipass: 7.1.3 - minipass-fetch@2.1.2: + minipass-fetch@4.0.1: dependencies: - minipass: 3.3.6 + minipass: 7.1.3 minipass-sized: 1.0.3 - minizlib: 2.1.2 + minizlib: 3.1.0 optionalDependencies: encoding: 0.1.13 @@ -18526,15 +18408,8 @@ snapshots: dependencies: yallist: 4.0.0 - minipass@5.0.0: {} - minipass@7.1.3: {} - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - minizlib@3.1.0: dependencies: minipass: 7.1.3 @@ -18610,7 +18485,7 @@ snapshots: railroad-diagrams: 1.0.0 randexp: 0.4.6 - negotiator@0.6.4: {} + negotiator@1.0.0: {} neo-async@2.6.2: {} @@ -18621,7 +18496,7 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - node-abi@3.92.0: + node-abi@4.31.0: dependencies: semver: 7.7.4 @@ -18658,6 +18533,21 @@ snapshots: node-gyp-build@4.8.4: {} + node-gyp@11.5.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.2 + graceful-fs: 4.2.11 + make-fetch-happen: 14.0.3 + nopt: 8.1.0 + proc-log: 5.0.0 + semver: 7.7.4 + tar: 7.5.15 + tinyglobby: 0.2.16 + which: 5.0.0 + transitivePeerDependencies: + - supports-color + node-int64@0.4.0: {} node-preload@0.2.1: @@ -18668,9 +18558,9 @@ snapshots: node-releases@2.0.36: {} - nopt@6.0.0: + nopt@8.1.0: dependencies: - abbrev: 1.1.1 + abbrev: 3.0.1 normalize-path@3.0.0: {} @@ -18942,10 +18832,6 @@ snapshots: dependencies: aggregate-error: 3.1.0 - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - p-map@7.0.4: {} p-queue@9.1.0: @@ -19227,7 +19113,7 @@ snapshots: colors: 1.4.0 minimist: 1.2.8 - proc-log@2.0.1: {} + proc-log@5.0.0: {} process-nextick-args@2.0.1: {} @@ -19241,8 +19127,6 @@ snapshots: progress@2.0.3: {} - promise-inflight@1.0.1: {} - promise-retry@2.0.1: dependencies: err-code: 2.0.3 @@ -19259,6 +19143,12 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + proxy-from-env@2.1.0: {} pseudomap@1.0.2: {} @@ -20028,14 +19918,6 @@ snapshots: smol-toml@1.6.1: {} - socks-proxy-agent@7.0.0: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3(supports-color@8.1.1) - socks: 2.8.4 - transitivePeerDependencies: - - supports-color - socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 @@ -20096,9 +19978,9 @@ snapshots: argparse: 2.0.1 nearley: 2.20.1 - ssri@9.0.1: + ssri@12.0.0: dependencies: - minipass: 3.3.6 + minipass: 7.1.3 stack-utils@2.0.6: dependencies: @@ -20368,14 +20250,13 @@ snapshots: tapable@2.3.3: {} - tar@6.2.1: + tar@7.5.15: dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 tar@7.5.2: dependencies: @@ -20582,8 +20463,6 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript@5.9.3: {} - typescript@6.0.3: {} uc.micro@2.1.0: {} @@ -20607,11 +20486,11 @@ snapshots: dependencies: qs: 6.14.0 - unique-filename@2.0.1: + unique-filename@4.0.0: dependencies: - unique-slug: 3.0.0 + unique-slug: 5.0.0 - unique-slug@3.0.0: + unique-slug@5.0.0: dependencies: imurmurhash: 0.1.4 @@ -20634,6 +20513,14 @@ snapshots: unzip-response@2.0.1: {} + unzipper@0.12.3: + dependencies: + bluebird: 3.7.2 + duplexer2: 0.1.4 + fs-extra: 11.3.4 + graceful-fs: 4.2.11 + node-int64: 0.4.0 + upath@2.0.1: {} update-browserslist-db@1.1.2(browserslist@4.24.4):