Update electron-builder to 23.0.1
This commit is contained in:
parent
0c31ad25ef
commit
c87cb59676
7 changed files with 142 additions and 689 deletions
|
@ -261,7 +261,7 @@
|
|||
"css-loader": "3.2.0",
|
||||
"debug": "4.3.3",
|
||||
"electron": "17.1.0",
|
||||
"electron-builder": "22.14.5",
|
||||
"electron-builder": "23.0.1",
|
||||
"electron-mocha": "11.0.2",
|
||||
"electron-notarize": "0.1.1",
|
||||
"esbuild": "0.14.3",
|
||||
|
@ -325,6 +325,8 @@
|
|||
"url": "https://updates.signal.org/desktop"
|
||||
}
|
||||
],
|
||||
"mergeASARs": true,
|
||||
"singleArchFiles": "node_modules/{@signalapp/signal-client/prebuilds/**,ringrtc/build/**,sharp/**}",
|
||||
"target": [
|
||||
{
|
||||
"target": "zip",
|
||||
|
|
|
@ -1,322 +0,0 @@
|
|||
diff --git a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
|
||||
index ed6b8d3..98495fd 100644
|
||||
--- a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
|
||||
+++ b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
|
||||
@@ -85,7 +85,7 @@ class LinuxTargetHelper {
|
||||
exec += " ";
|
||||
exec += executableArgs.join(" ");
|
||||
}
|
||||
- exec += " %U";
|
||||
+ exec += " --no-sandbox %U";
|
||||
}
|
||||
const desktopMeta = {
|
||||
Name: appInfo.productName,
|
||||
diff --git a/node_modules/app-builder-lib/templates/linux/after-install.tpl b/node_modules/app-builder-lib/templates/linux/after-install.tpl
|
||||
index 1536059..555f8f5 100644
|
||||
--- a/node_modules/app-builder-lib/templates/linux/after-install.tpl
|
||||
+++ b/node_modules/app-builder-lib/templates/linux/after-install.tpl
|
||||
@@ -3,8 +3,5 @@
|
||||
# Link to the binary
|
||||
ln -sf '/opt/${sanitizedProductName}/${executable}' '/usr/bin/${executable}'
|
||||
|
||||
-# SUID chrome-sandbox for Electron 5+
|
||||
-chmod 4755 '/opt/${sanitizedProductName}/chrome-sandbox' || true
|
||||
-
|
||||
update-mime-database /usr/share/mime || true
|
||||
update-desktop-database /usr/share/applications || true
|
||||
diff --git a/node_modules/app-builder-lib/templates/nsis/include/extractAppPackage.nsh b/node_modules/app-builder-lib/templates/nsis/include/extractAppPackage.nsh
|
||||
index 367aaae..d96a655 100644
|
||||
--- a/node_modules/app-builder-lib/templates/nsis/include/extractAppPackage.nsh
|
||||
+++ b/node_modules/app-builder-lib/templates/nsis/include/extractAppPackage.nsh
|
||||
@@ -90,5 +90,41 @@
|
||||
!macroend
|
||||
|
||||
!macro extractUsing7za FILE
|
||||
+ Push $OUTDIR
|
||||
+ CreateDirectory "$PLUGINSDIR\7z-out"
|
||||
+ ClearErrors
|
||||
+ SetOutPath "$PLUGINSDIR\7z-out"
|
||||
+ Nsis7z::Extract "${FILE}"
|
||||
+ Pop $R0
|
||||
+ SetOutPath $R0
|
||||
+
|
||||
+ # Retry counter
|
||||
+ StrCpy $R1 0
|
||||
+
|
||||
+ LoopExtract7za:
|
||||
+ IntOp $R1 $R1 + 1
|
||||
+
|
||||
+ # Attempt to copy files in atomic way
|
||||
+ CopyFiles /SILENT "$PLUGINSDIR\7z-out\*" $OUTDIR
|
||||
+ IfErrors 0 DoneExtract7za
|
||||
+
|
||||
+ DetailPrint `Can't modify "${PRODUCT_NAME}"'s files.`
|
||||
+ ${if} $R1 < 5
|
||||
+ # Try copying a few times before asking for a user action.
|
||||
+ Goto RetryExtract7za
|
||||
+ ${else}
|
||||
+ MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "$(appCannotBeClosed)" /SD IDCANCEL IDRETRY RetryExtract7za
|
||||
+ ${endIf}
|
||||
+
|
||||
+ # As an absolutely last resort after a few automatic attempts and user
|
||||
+ # intervention - we will just overwrite everything with `Nsis7z::Extract`
|
||||
+ # even though it is not atomic and will ignore errors.
|
||||
Nsis7z::Extract "${FILE}"
|
||||
+ Quit
|
||||
+
|
||||
+ RetryExtract7za:
|
||||
+ Sleep 1000
|
||||
+ Goto LoopExtract7za
|
||||
+
|
||||
+ DoneExtract7za:
|
||||
!macroend
|
||||
diff --git a/node_modules/app-builder-lib/templates/nsis/include/installUtil.nsh b/node_modules/app-builder-lib/templates/nsis/include/installUtil.nsh
|
||||
index 0d6f293..4736774 100644
|
||||
--- a/node_modules/app-builder-lib/templates/nsis/include/installUtil.nsh
|
||||
+++ b/node_modules/app-builder-lib/templates/nsis/include/installUtil.nsh
|
||||
@@ -126,7 +126,10 @@ Function handleUninstallResult
|
||||
Return
|
||||
|
||||
${if} $R0 != 0
|
||||
+ MessageBox MB_OK|MB_ICONEXCLAMATION "$(uninstallFailed): $R0"
|
||||
DetailPrint `Uninstall was not successful. Uninstaller error code: $R0.`
|
||||
+ SetErrorLevel 2
|
||||
+ Quit
|
||||
${endif}
|
||||
FunctionEnd
|
||||
|
||||
@@ -156,7 +159,7 @@ Function uninstallOldVersion
|
||||
!endif
|
||||
${if} $uninstallString == ""
|
||||
ClearErrors
|
||||
- Goto Done
|
||||
+ Return
|
||||
${endif}
|
||||
${endif}
|
||||
|
||||
@@ -175,7 +178,7 @@ Function uninstallOldVersion
|
||||
${if} $installationDir == ""
|
||||
${andIf} $uninstallerFileName == ""
|
||||
ClearErrors
|
||||
- Goto Done
|
||||
+ Return
|
||||
${endif}
|
||||
|
||||
${if} $installMode == "CurrentUser"
|
||||
@@ -206,12 +209,37 @@ Function uninstallOldVersion
|
||||
StrCpy $uninstallerFileNameTemp "$PLUGINSDIR\old-uninstaller.exe"
|
||||
!insertmacro copyFile "$uninstallerFileName" "$uninstallerFileNameTemp"
|
||||
|
||||
- ExecWait '"$uninstallerFileNameTemp" /S /KEEP_APP_DATA $0 _?=$installationDir' $R0
|
||||
- ifErrors 0 Done
|
||||
- # the execution failed - might have been caused by some group policy restrictions
|
||||
- # we try to execute the uninstaller in place
|
||||
- ExecWait '"$uninstallerFileName" /S /KEEP_APP_DATA $0 _?=$installationDir' $R0
|
||||
- Done:
|
||||
+ # Retry counter
|
||||
+ StrCpy $R5 0
|
||||
+
|
||||
+ UninstallLoop:
|
||||
+ IntOp $R5 $R5 + 1
|
||||
+
|
||||
+ ${if} $R5 > 5
|
||||
+ MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "$(appCannotBeClosed)" /SD IDCANCEL IDRETRY OneMoreAttempt
|
||||
+ Return
|
||||
+ ${endIf}
|
||||
+
|
||||
+ OneMoreAttempt:
|
||||
+ ExecWait '"$uninstallerFileNameTemp" /S /KEEP_APP_DATA $0 _?=$installationDir' $R0
|
||||
+ ifErrors TryInPlace CheckResult
|
||||
+
|
||||
+ TryInPlace:
|
||||
+ # the execution failed - might have been caused by some group policy restrictions
|
||||
+ # we try to execute the uninstaller in place
|
||||
+ ExecWait '"$uninstallerFileName" /S /KEEP_APP_DATA $0 _?=$installationDir' $R0
|
||||
+ ifErrors DoesNotExist
|
||||
+
|
||||
+ CheckResult:
|
||||
+ ${if} $R0 == 0
|
||||
+ Return
|
||||
+ ${endIf}
|
||||
+
|
||||
+ Sleep 1000
|
||||
+ Goto UninstallLoop
|
||||
+
|
||||
+ DoesNotExist:
|
||||
+ SetErrors
|
||||
FunctionEnd
|
||||
|
||||
!macro uninstallOldVersion ROOT_KEY
|
||||
diff --git a/node_modules/app-builder-lib/templates/nsis/messages.yml b/node_modules/app-builder-lib/templates/nsis/messages.yml
|
||||
index ce95e3f..6527c99 100644
|
||||
--- a/node_modules/app-builder-lib/templates/nsis/messages.yml
|
||||
+++ b/node_modules/app-builder-lib/templates/nsis/messages.yml
|
||||
@@ -144,3 +144,5 @@ areYouSureToUninstall:
|
||||
da: Er du sikker på, at du vil afinstallere ${PRODUCT_NAME}?
|
||||
decompressionFailed:
|
||||
en: Failed to decompress files. Please try running the installer again.
|
||||
+uninstallFailed:
|
||||
+ en: Failed to uninstall old application files. Please try running the installer again.
|
||||
diff --git a/node_modules/app-builder-lib/templates/nsis/uninstaller.nsh b/node_modules/app-builder-lib/templates/nsis/uninstaller.nsh
|
||||
index 8db1f9a..d400ec4 100644
|
||||
--- a/node_modules/app-builder-lib/templates/nsis/uninstaller.nsh
|
||||
+++ b/node_modules/app-builder-lib/templates/nsis/uninstaller.nsh
|
||||
@@ -28,6 +28,109 @@ Function un.onInit
|
||||
!endif
|
||||
FunctionEnd
|
||||
|
||||
+Function un.atomicRMDir
|
||||
+ Exch $R0
|
||||
+ Push $R1
|
||||
+ Push $R2
|
||||
+ Push $R3
|
||||
+
|
||||
+ StrCpy $R3 "$INSTDIR$R0\*.*"
|
||||
+ FindFirst $R1 $R2 $R3
|
||||
+
|
||||
+ loop:
|
||||
+ StrCmp $R2 "" break
|
||||
+
|
||||
+ StrCmp $R2 "." continue
|
||||
+ StrCmp $R2 ".." continue
|
||||
+
|
||||
+ IfFileExists "$INSTDIR$R0\$R2\*.*" isDir isNotDir
|
||||
+
|
||||
+ isDir:
|
||||
+ CreateDirectory "$PLUGINSDIR\old-install$R0\$R2"
|
||||
+
|
||||
+ Push "$R0\$R2"
|
||||
+ Call un.atomicRMDir
|
||||
+ Pop $R3
|
||||
+
|
||||
+ ${if} $R3 != 0
|
||||
+ Goto done
|
||||
+ ${endIf}
|
||||
+
|
||||
+ Goto continue
|
||||
+
|
||||
+ isNotDir:
|
||||
+ ClearErrors
|
||||
+ Rename "$INSTDIR$R0\$R2" "$PLUGINSDIR\old-install$R0\$R2"
|
||||
+
|
||||
+ # Ignore errors when renaming ourselves.
|
||||
+ StrCmp "$R0\$R2" "${UNINSTALL_FILENAME}" 0 +2
|
||||
+ ClearErrors
|
||||
+
|
||||
+ IfErrors 0 +3
|
||||
+ StrCpy $R3 "$INSTDIR$R0\$R2"
|
||||
+ Goto done
|
||||
+
|
||||
+ continue:
|
||||
+ FindNext $R1 $R2
|
||||
+ Goto loop
|
||||
+
|
||||
+ break:
|
||||
+ StrCpy $R3 0
|
||||
+
|
||||
+ done:
|
||||
+ FindClose $R1
|
||||
+
|
||||
+ StrCpy $R0 $R3
|
||||
+
|
||||
+ Pop $R3
|
||||
+ Pop $R2
|
||||
+ Pop $R1
|
||||
+ Exch $R0
|
||||
+FunctionEnd
|
||||
+
|
||||
+Function un.restoreFiles
|
||||
+ Exch $R0
|
||||
+ Push $R1
|
||||
+ Push $R2
|
||||
+ Push $R3
|
||||
+
|
||||
+ StrCpy $R3 "$PLUGINSDIR\old-install$R0\*.*"
|
||||
+ FindFirst $R1 $R2 $R3
|
||||
+
|
||||
+ loop:
|
||||
+ StrCmp $R2 "" break
|
||||
+
|
||||
+ StrCmp $R2 "." continue
|
||||
+ StrCmp $R2 ".." continue
|
||||
+
|
||||
+ IfFileExists "$INSTDIR$R0\$R2\*.*" isDir isNotDir
|
||||
+
|
||||
+ isDir:
|
||||
+ CreateDirectory "$INSTDIR$R0\$R2"
|
||||
+
|
||||
+ Push "$R0\$R2"
|
||||
+ Call un.restoreFiles
|
||||
+ Pop $R3
|
||||
+
|
||||
+ Goto continue
|
||||
+
|
||||
+ isNotDir:
|
||||
+ Rename $PLUGINSDIR\old-install$R0\$R2" "$INSTDIR$R0\$R2"
|
||||
+
|
||||
+ continue:
|
||||
+ FindNext $R1 $R2
|
||||
+ Goto loop
|
||||
+
|
||||
+ break:
|
||||
+ StrCpy $R0 0
|
||||
+ FindClose $R1
|
||||
+
|
||||
+ Pop $R3
|
||||
+ Pop $R2
|
||||
+ Pop $R1
|
||||
+ Exch $R0
|
||||
+FunctionEnd
|
||||
+
|
||||
Section "un.install"
|
||||
# for assisted installer we check it here to show progress
|
||||
!ifndef ONE_CLICK
|
||||
@@ -38,6 +141,34 @@ Section "un.install"
|
||||
|
||||
!insertmacro setLinkVars
|
||||
|
||||
+ # delete the installed files
|
||||
+ !ifmacrodef customRemoveFiles
|
||||
+ !insertmacro customRemoveFiles
|
||||
+ !else
|
||||
+ ${if} ${isUpdated}
|
||||
+ CreateDirectory "$PLUGINSDIR\old-install"
|
||||
+
|
||||
+ Push ""
|
||||
+ Call un.atomicRMDir
|
||||
+ Pop $R0
|
||||
+
|
||||
+ ${if} $R0 != 0
|
||||
+ DetailPrint "File is busy, aborting: $R0"
|
||||
+
|
||||
+ # Attempt to restore previous directory
|
||||
+ Push ""
|
||||
+ Call un.restoreFiles
|
||||
+ Pop $R0
|
||||
+
|
||||
+ Abort `Can't rename "$INSTDIR" to "$PLUGINSDIR\old-install".`
|
||||
+ ${endif}
|
||||
+
|
||||
+ ${endif}
|
||||
+
|
||||
+ # Remove all files (or remaining shallow directories from the block above)
|
||||
+ RMDir /r $INSTDIR
|
||||
+ !endif
|
||||
+
|
||||
${ifNot} ${isKeepShortcuts}
|
||||
WinShell::UninstAppUserModelId "${APP_ID}"
|
||||
|
||||
@@ -64,13 +195,6 @@ Section "un.install"
|
||||
!insertmacro unregisterFileAssociations
|
||||
!endif
|
||||
|
||||
- # delete the installed files
|
||||
- !ifmacrodef customRemoveFiles
|
||||
- !insertmacro customRemoveFiles
|
||||
- !else
|
||||
- RMDir /r $INSTDIR
|
||||
- !endif
|
||||
-
|
||||
Var /GLOBAL isDeleteAppData
|
||||
StrCpy $isDeleteAppData "0"
|
||||
|
54
patches/app-builder-lib+23.0.1.patch
Normal file
54
patches/app-builder-lib+23.0.1.patch
Normal file
|
@ -0,0 +1,54 @@
|
|||
diff --git a/node_modules/app-builder-lib/out/asar/asar.d.ts b/node_modules/app-builder-lib/out/asar/asar.d.ts
|
||||
index be27052..97db603 100644
|
||||
--- a/node_modules/app-builder-lib/out/asar/asar.d.ts
|
||||
+++ b/node_modules/app-builder-lib/out/asar/asar.d.ts
|
||||
@@ -1,3 +1,3 @@
|
||||
-export declare function readAsarHeader(archive: string): Promise<ReadAsarHeader>;
|
||||
-export declare function readAsar(archive: string): Promise<AsarFilesystem>;
|
||||
+export declare function readAsarHeader(archive: string): Promise<unknown>;
|
||||
+export declare function readAsar(archive: string): Promise<unknown>;
|
||||
export declare function readAsarJson(archive: string, file: string): Promise<any>;
|
||||
diff --git a/node_modules/app-builder-lib/out/asar/integrity.d.ts b/node_modules/app-builder-lib/out/asar/integrity.d.ts
|
||||
index 01da9f4..094c175 100644
|
||||
--- a/node_modules/app-builder-lib/out/asar/integrity.d.ts
|
||||
+++ b/node_modules/app-builder-lib/out/asar/integrity.d.ts
|
||||
@@ -1,5 +1,4 @@
|
||||
/// <reference types="node" />
|
||||
-import { NodeIntegrity } from "./asar";
|
||||
export interface AsarIntegrityOptions {
|
||||
readonly resourcesPath: string;
|
||||
readonly resourcesRelativePath: string;
|
||||
@@ -12,5 +11,5 @@ export interface AsarIntegrity {
|
||||
[key: string]: HeaderHash;
|
||||
}
|
||||
export declare function computeData({ resourcesPath, resourcesRelativePath }: AsarIntegrityOptions): Promise<AsarIntegrity>;
|
||||
-export declare function hashFile(file: string, blockSize?: number): Promise<NodeIntegrity>;
|
||||
-export declare function hashFileContents(contents: Buffer | string, blockSize?: number): NodeIntegrity;
|
||||
+export declare function hashFile(file: string, blockSize?: number): Promise<unknown>;
|
||||
+export declare function hashFileContents(contents: Buffer | string, blockSize?: number): unknown;
|
||||
diff --git a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
|
||||
index ffcc8bd..4215569 100644
|
||||
--- a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
|
||||
+++ b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js
|
||||
@@ -88,7 +88,7 @@ class LinuxTargetHelper {
|
||||
// https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#exec-variables
|
||||
const execCodes = ["%f", "%u", "%F", "%U"];
|
||||
if (executableArgs == null || executableArgs.findIndex(arg => execCodes.includes(arg)) === -1) {
|
||||
- exec += " %U";
|
||||
+ exec += " --no-sandbox %U";
|
||||
}
|
||||
}
|
||||
const desktopMeta = {
|
||||
diff --git a/node_modules/app-builder-lib/templates/linux/after-install.tpl b/node_modules/app-builder-lib/templates/linux/after-install.tpl
|
||||
index 1536059..555f8f5 100644
|
||||
--- a/node_modules/app-builder-lib/templates/linux/after-install.tpl
|
||||
+++ b/node_modules/app-builder-lib/templates/linux/after-install.tpl
|
||||
@@ -3,8 +3,5 @@
|
||||
# Link to the binary
|
||||
ln -sf '/opt/${sanitizedProductName}/${executable}' '/usr/bin/${executable}'
|
||||
|
||||
-# SUID chrome-sandbox for Electron 5+
|
||||
-chmod 4755 '/opt/${sanitizedProductName}/chrome-sandbox' || true
|
||||
-
|
||||
update-mime-database /usr/share/mime || true
|
||||
update-desktop-database /usr/share/applications || true
|
|
@ -3,13 +3,11 @@
|
|||
|
||||
import type { AfterPackContext } from 'electron-builder';
|
||||
import { afterPack as fuseElectron } from './fuse-electron';
|
||||
import { afterPack as mergeASARs } from './merge-macos-asars';
|
||||
import { afterPack as copyPacks } from './copy-language-packs';
|
||||
import { afterPack as pruneMacOSRelease } from './prune-macos-release';
|
||||
|
||||
export async function afterPack(context: AfterPackContext): Promise<void> {
|
||||
await pruneMacOSRelease(context);
|
||||
await mergeASARs(context);
|
||||
await fuseElectron(context);
|
||||
await copyPacks(context);
|
||||
}
|
||||
|
|
|
@ -44,9 +44,7 @@ export async function afterPack({
|
|||
// Disables the --inspect and --inspect-brk family of CLI options
|
||||
[FuseV1Options.EnableNodeCliInspectArguments]: enableInspectArguments,
|
||||
// Enables validation of the app.asar archive on macOS
|
||||
// See https://github.com/electron-userland/electron-builder/issues/6507
|
||||
// See https://github.com/electron-userland/electron-builder/issues/6506
|
||||
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: false,
|
||||
[FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
|
||||
// Enforces that Electron will only load your app from "app.asar" instead of
|
||||
// it's normall search paths
|
||||
[FuseV1Options.OnlyLoadAppFromAsar]: true,
|
||||
|
|
|
@ -1,221 +0,0 @@
|
|||
// Copyright 2021 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { existsSync } from 'fs';
|
||||
import fs from 'fs/promises';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
import { execFileSync } from 'child_process';
|
||||
import type { AfterPackContext } from 'electron-builder';
|
||||
import asar from 'asar';
|
||||
|
||||
// See: https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary
|
||||
const LIPO = process.env.LIPO || 'lipo';
|
||||
|
||||
// See: https://github.com/apple-opensource-mirror/llvmCore/blob/0c60489d96c87140db9a6a14c6e82b15f5e5d252/include/llvm/Object/MachOFormat.h#L108-L112
|
||||
// If binary file starts with one of the following magic numbers - it is most
|
||||
// likely a a Mach-O file or simply a macOS object file. We use this check to
|
||||
// detect binding files below.
|
||||
const MACHO_MAGIC = new Set([
|
||||
// 32-bit Mach-O
|
||||
0xfeedface, 0xcefaedfe,
|
||||
|
||||
// 64-bit Mach-O
|
||||
0xfeedfacf, 0xcffaedfe,
|
||||
|
||||
// Universal
|
||||
0xcafebabe, 0xbebafeca,
|
||||
]);
|
||||
|
||||
function toRelativePath(file: string): string {
|
||||
return file.replace(/^\//, '');
|
||||
}
|
||||
|
||||
function isDirectory(a: string, file: string): boolean {
|
||||
return Boolean('files' in asar.statFile(a, file));
|
||||
}
|
||||
|
||||
export async function afterPack(context: AfterPackContext): Promise<void> {
|
||||
const { appOutDir, packager, electronPlatformName } = context;
|
||||
if (electronPlatformName !== 'darwin') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!appOutDir.includes('mac-universal')) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { productFilename } = packager.appInfo;
|
||||
const arm64 = appOutDir.replace(/--[^-]*$/, '--arm64');
|
||||
const x64 = appOutDir.replace(/--[^-]*$/, '--x64');
|
||||
|
||||
const commonPath = path.join('Contents', 'Resources', 'app.asar');
|
||||
const archive = path.join(arm64, `${productFilename}.app`, commonPath);
|
||||
const otherArchive = path.join(x64, `${productFilename}.app`, commonPath);
|
||||
|
||||
if (!existsSync(archive)) {
|
||||
console.info(`${archive} does not exist yet`);
|
||||
return;
|
||||
}
|
||||
if (!existsSync(otherArchive)) {
|
||||
console.info(`${otherArchive} does not exist yet`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Merging ${archive} and ${otherArchive}`);
|
||||
|
||||
const files = new Set(asar.listPackage(archive).map(toRelativePath));
|
||||
const otherFiles = new Set(
|
||||
asar.listPackage(otherArchive).map(toRelativePath)
|
||||
);
|
||||
|
||||
//
|
||||
// Build set of unpacked directories and files
|
||||
//
|
||||
|
||||
const unpackedFiles = new Set<string>();
|
||||
|
||||
function buildUnpacked(a: string, fileList: Set<string>): void {
|
||||
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(archive, files);
|
||||
buildUnpacked(otherArchive, otherFiles);
|
||||
|
||||
//
|
||||
// Build list of files/directories unique to each asar
|
||||
//
|
||||
|
||||
const unique = [];
|
||||
for (const file of otherFiles) {
|
||||
if (!files.has(file)) {
|
||||
unique.push(file);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Find files with different content
|
||||
//
|
||||
|
||||
const bindings = [];
|
||||
for (const file of files) {
|
||||
if (!otherFiles.has(file)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Skip directories
|
||||
if (isDirectory(archive, file)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const content = asar.extractFile(archive, file);
|
||||
const otherContent = asar.extractFile(otherArchive, file);
|
||||
|
||||
if (content.compare(otherContent) === 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!MACHO_MAGIC.has(content.readUInt32LE(0))) {
|
||||
throw new Error(`Can't reconcile two non-macho files ${file}`);
|
||||
}
|
||||
|
||||
bindings.push(file);
|
||||
}
|
||||
|
||||
//
|
||||
// Extract both asars and copy unique directories/files from `otherArchive`
|
||||
// to extracted `archive`. Then run `lipo` on every shared binding and
|
||||
// overwrite original ASARs with the new merged ASAR.
|
||||
//
|
||||
// The point is - we want electron-builder to find identical ASARs and thus
|
||||
// include only a single ASAR in the final build.
|
||||
//
|
||||
// Once (If) https://github.com/electron/universal/pull/34 lands - we can
|
||||
// remove this script and start using optimized version of the process
|
||||
// with a single output ASAR instead of two.
|
||||
//
|
||||
|
||||
const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'archive-'));
|
||||
const otherDir = await fs.mkdtemp(path.join(os.tmpdir(), 'other-archive-'));
|
||||
|
||||
try {
|
||||
console.log(`Extracting ${archive} to ${dir}`);
|
||||
asar.extractAll(archive, dir);
|
||||
|
||||
console.log(`Extracting ${otherArchive} to ${otherDir}`);
|
||||
asar.extractAll(otherArchive, otherDir);
|
||||
|
||||
for (const file of unique) {
|
||||
const source = path.resolve(otherDir, file);
|
||||
const destination = path.resolve(dir, file);
|
||||
|
||||
if (isDirectory(otherArchive, file)) {
|
||||
console.log(`Creating unique directory: ${file}`);
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await fs.mkdir(destination, { recursive: true });
|
||||
continue;
|
||||
}
|
||||
|
||||
console.log(`Copying unique file: ${file}`);
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await fs.mkdir(path.dirname(destination), { recursive: true });
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await fs.copyFile(source, destination);
|
||||
}
|
||||
|
||||
for (const binding of bindings) {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
const source = await fs.realpath(path.resolve(otherDir, binding));
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
const destination = await fs.realpath(path.resolve(dir, binding));
|
||||
|
||||
console.log(`Merging binding: ${binding}`);
|
||||
execFileSync(LIPO, [
|
||||
source,
|
||||
destination,
|
||||
'-create',
|
||||
'-output',
|
||||
destination,
|
||||
]);
|
||||
}
|
||||
|
||||
for (const dest of [archive, otherArchive]) {
|
||||
console.log(`Removing ${dest}`);
|
||||
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await Promise.all([
|
||||
fs.rm(dest, { recursive: true }),
|
||||
fs.rm(`${dest}.unpacked`, { recursive: true }),
|
||||
]);
|
||||
|
||||
const resolvedUnpack = Array.from(unpackedFiles).map(file =>
|
||||
path.join(dir, file)
|
||||
);
|
||||
|
||||
console.log(`Overwriting ${dest}`);
|
||||
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await asar.createPackageWithOptions(dir, dest, {
|
||||
unpack: `{${resolvedUnpack.join(',')}}`,
|
||||
});
|
||||
}
|
||||
|
||||
console.log('Success');
|
||||
} finally {
|
||||
await Promise.all([
|
||||
fs.rm(dir, { recursive: true }),
|
||||
fs.rm(otherDir, { recursive: true }),
|
||||
]);
|
||||
}
|
||||
}
|
224
yarn.lock
224
yarn.lock
|
@ -1023,16 +1023,18 @@
|
|||
global-agent "^3.0.0"
|
||||
global-tunnel-ng "^2.7.1"
|
||||
|
||||
"@electron/universal@1.0.5":
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz#b812340e4ef21da2b3ee77b2b4d35c9b86defe37"
|
||||
integrity sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag==
|
||||
"@electron/universal@1.2.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.0.tgz#518cac72bccd79c00bf41345119e6fdbabdb871d"
|
||||
integrity sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q==
|
||||
dependencies:
|
||||
"@malept/cross-spawn-promise" "^1.1.0"
|
||||
asar "^3.0.3"
|
||||
asar "^3.1.0"
|
||||
debug "^4.3.1"
|
||||
dir-compare "^2.4.0"
|
||||
fs-extra "^9.0.1"
|
||||
minimatch "^3.0.4"
|
||||
plist "^3.0.4"
|
||||
|
||||
"@emotion/babel-utils@^0.6.4":
|
||||
version "0.6.10"
|
||||
|
@ -1876,6 +1878,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
||||
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
|
||||
|
||||
"@tootallnate/once@2":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
|
||||
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
|
||||
|
||||
"@types/anymatch@*":
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a"
|
||||
|
@ -2261,14 +2268,6 @@
|
|||
"@types/pino-std-serializers" "*"
|
||||
"@types/sonic-boom" "*"
|
||||
|
||||
"@types/plist@^3.0.1":
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01"
|
||||
integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
xmlbuilder ">=11.0.1"
|
||||
|
||||
"@types/prop-types@*":
|
||||
version "15.5.9"
|
||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.9.tgz#f2d14df87b0739041bc53a7d75e3d77d726a3ec0"
|
||||
|
@ -2491,11 +2490,6 @@
|
|||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/verror@^1.10.3":
|
||||
version "1.10.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.5.tgz#2a1413aded46e67a1fe2386800e291123ed75eb1"
|
||||
integrity sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==
|
||||
|
||||
"@types/webpack-dev-server@3.11.3":
|
||||
version "3.11.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#237e26d87651cf95490dcd356f568c8c84016177"
|
||||
|
@ -3207,29 +3201,29 @@ anymatch@~3.1.2:
|
|||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
app-builder-bin@3.7.1:
|
||||
version "3.7.1"
|
||||
resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz#cb0825c5e12efc85b196ac3ed9c89f076c61040e"
|
||||
integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==
|
||||
app-builder-bin@4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-4.1.0.tgz#db4108c005ca5ea53b00d1eb4cd6f6c265fafdc9"
|
||||
integrity sha512-rbdMe0sIVE95cpYqMQh4IFqhTDdB8LkKlTRcbO/Y3QleRYoIePejIbX774IYomYYzZbJfJuX7pLRiGvSdIxIYA==
|
||||
|
||||
app-builder-lib@22.14.5:
|
||||
version "22.14.5"
|
||||
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.5.tgz#a61a50b132b858e98fdc70b6b88994ae99b4f96d"
|
||||
integrity sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg==
|
||||
app-builder-lib@23.0.1:
|
||||
version "23.0.1"
|
||||
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-23.0.1.tgz#a916f525f65875c6e05aa288413f1aa7c08a19b6"
|
||||
integrity sha512-XO+xQ7oVmGjGyBttXfaE2WawgPYQjBhLu8ZZhvGUiKL8WiLFrRUunoaoF+WzwLda4pMIvEEd7MGQ1VRopWO4tQ==
|
||||
dependencies:
|
||||
"7zip-bin" "~5.1.1"
|
||||
"@develar/schema-utils" "~2.6.5"
|
||||
"@electron/universal" "1.0.5"
|
||||
"@electron/universal" "1.2.0"
|
||||
"@malept/flatpak-bundler" "^0.4.0"
|
||||
async-exit-hook "^2.0.1"
|
||||
bluebird-lst "^1.0.9"
|
||||
builder-util "22.14.5"
|
||||
builder-util-runtime "8.9.1"
|
||||
builder-util "23.0.0"
|
||||
builder-util-runtime "9.0.0"
|
||||
chromium-pickle-js "^0.2.0"
|
||||
debug "^4.3.2"
|
||||
ejs "^3.1.6"
|
||||
electron-osx-sign "^0.5.0"
|
||||
electron-publish "22.14.5"
|
||||
electron-osx-sign "^0.6.0"
|
||||
electron-publish "23.0.0"
|
||||
form-data "^4.0.0"
|
||||
fs-extra "^10.0.0"
|
||||
hosted-git-info "^4.0.2"
|
||||
|
@ -3412,7 +3406,7 @@ asap@~2.0.3:
|
|||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
|
||||
|
||||
asar@3.1.0, asar@^3.0.3:
|
||||
asar@3.1.0, asar@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473"
|
||||
integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==
|
||||
|
@ -4317,7 +4311,7 @@ buffer@^4.3.0:
|
|||
ieee754 "^1.1.4"
|
||||
isarray "^1.0.0"
|
||||
|
||||
buffer@^5.1.0, buffer@^5.5.0:
|
||||
buffer@^5.5.0:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
|
||||
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
|
||||
|
@ -4325,29 +4319,31 @@ buffer@^5.1.0, buffer@^5.5.0:
|
|||
base64-js "^1.3.1"
|
||||
ieee754 "^1.1.13"
|
||||
|
||||
builder-util-runtime@8.9.1:
|
||||
version "8.9.1"
|
||||
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a"
|
||||
integrity sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==
|
||||
builder-util-runtime@9.0.0:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz#3a40ba7382712ccdb24471567f91d7c167e00830"
|
||||
integrity sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA==
|
||||
dependencies:
|
||||
debug "^4.3.2"
|
||||
sax "^1.2.4"
|
||||
|
||||
builder-util@22.14.5:
|
||||
version "22.14.5"
|
||||
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.5.tgz#42a18608d2a566c0846e91266464776c8bfb0cc9"
|
||||
integrity sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA==
|
||||
builder-util@23.0.0:
|
||||
version "23.0.0"
|
||||
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.0.0.tgz#63a6d0d585f49b2c502d64bb074098827e2a9df3"
|
||||
integrity sha512-OkRo/W19it+9ulWoqVKIWmfTS1i6J6vaWIB4j33u5+vNbhyRP7PkBMzB878gBDGyuBwjT/Oq4bh8DzrrB374IA==
|
||||
dependencies:
|
||||
"7zip-bin" "~5.1.1"
|
||||
"@types/debug" "^4.1.6"
|
||||
"@types/fs-extra" "^9.0.11"
|
||||
app-builder-bin "3.7.1"
|
||||
app-builder-bin "4.1.0"
|
||||
bluebird-lst "^1.0.9"
|
||||
builder-util-runtime "8.9.1"
|
||||
builder-util-runtime "9.0.0"
|
||||
chalk "^4.1.1"
|
||||
cross-spawn "^7.0.3"
|
||||
debug "^4.3.2"
|
||||
fs-extra "^10.0.0"
|
||||
http-proxy-agent "^5.0.0"
|
||||
https-proxy-agent "^5.0.0"
|
||||
is-ci "^3.0.0"
|
||||
js-yaml "^4.1.0"
|
||||
source-map-support "^0.5.19"
|
||||
|
@ -4518,7 +4514,7 @@ caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000984, caniuse-lite@^1.0.300011
|
|||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz#364d47d35a3007e528f69adb6fecb07c2bb2cc50"
|
||||
integrity sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==
|
||||
|
||||
canvas@^2.6.1, "canvas@https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz", jsdom@^15.2.1, "jsdom@https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz":
|
||||
canvas@^2.6.1, "canvas@https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz", dmg-license@^1.0.9, "dmg-license@https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz", jsdom@^15.2.1, "jsdom@https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/nop/-/nop-1.0.0.tgz#cb46cf7e01574aa6390858149f66897afe53c9ca"
|
||||
|
||||
|
@ -4760,14 +4756,6 @@ cli-table3@0.5.1:
|
|||
optionalDependencies:
|
||||
colors "^1.1.2"
|
||||
|
||||
cli-truncate@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086"
|
||||
integrity sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==
|
||||
dependencies:
|
||||
slice-ansi "^1.0.0"
|
||||
string-width "^2.0.0"
|
||||
|
||||
cli-width@^2.0.0:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
|
||||
|
@ -5169,7 +5157,7 @@ core-js@^3.0.1, core-js@^3.0.4:
|
|||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09"
|
||||
integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==
|
||||
|
||||
core-util-is@1.0.2, core-util-is@~1.0.0:
|
||||
core-util-is@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||
|
@ -5192,13 +5180,6 @@ cosmiconfig@^5.0.0, cosmiconfig@^5.2.0, cosmiconfig@^5.2.1:
|
|||
js-yaml "^3.13.1"
|
||||
parse-json "^4.0.0"
|
||||
|
||||
crc@^3.8.0:
|
||||
version "3.8.0"
|
||||
resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6"
|
||||
integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==
|
||||
dependencies:
|
||||
buffer "^5.1.0"
|
||||
|
||||
create-ecdh@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
|
||||
|
@ -5751,35 +5732,20 @@ dir-glob@^3.0.1:
|
|||
dependencies:
|
||||
path-type "^4.0.0"
|
||||
|
||||
dmg-builder@22.14.5:
|
||||
version "22.14.5"
|
||||
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.5.tgz#137c0b55e639badcc0b119eb060e6fa4ed61d948"
|
||||
integrity sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w==
|
||||
dmg-builder@23.0.1:
|
||||
version "23.0.1"
|
||||
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-23.0.1.tgz#fc5d3e6939b4ca7769d83224d48c2e8da453e84d"
|
||||
integrity sha512-pyqUXprUD5bWeCfW/heG80iJdf6/pF0v8WjP2VDk0fATMYJiYqZpmkWy00BxAEAnFRIqv3iXYRtGlgwFjhr+3g==
|
||||
dependencies:
|
||||
app-builder-lib "22.14.5"
|
||||
builder-util "22.14.5"
|
||||
builder-util-runtime "8.9.1"
|
||||
app-builder-lib "23.0.1"
|
||||
builder-util "23.0.0"
|
||||
builder-util-runtime "9.0.0"
|
||||
fs-extra "^10.0.0"
|
||||
iconv-lite "^0.6.2"
|
||||
js-yaml "^4.1.0"
|
||||
optionalDependencies:
|
||||
dmg-license "^1.0.9"
|
||||
|
||||
dmg-license@^1.0.9:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz#a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f"
|
||||
integrity sha512-Rq6qMDaDou2+aPN2SYy0x7LDznoJ/XaG6oDcH5wXUp+WRWQMUYE6eM+F+nex+/LSXOp1uw4HLFoed0YbfU8R/Q==
|
||||
dependencies:
|
||||
"@types/plist" "^3.0.1"
|
||||
"@types/verror" "^1.10.3"
|
||||
ajv "^6.10.0"
|
||||
cli-truncate "^1.1.0"
|
||||
crc "^3.8.0"
|
||||
iconv-corefoundation "^1.1.6"
|
||||
plist "^3.0.1"
|
||||
smart-buffer "^4.0.2"
|
||||
verror "^1.10.0"
|
||||
|
||||
dns-equal@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
|
||||
|
@ -5972,17 +5938,17 @@ ejs@^3.1.6:
|
|||
dependencies:
|
||||
jake "^10.6.1"
|
||||
|
||||
electron-builder@22.14.5:
|
||||
version "22.14.5"
|
||||
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.5.tgz#3a25547bd4fe3728d4704da80956a794c5c31496"
|
||||
integrity sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg==
|
||||
electron-builder@23.0.1:
|
||||
version "23.0.1"
|
||||
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-23.0.1.tgz#2e5481ff66fe4e4d171e393a8ac2189338d054a6"
|
||||
integrity sha512-0ISmpdJlIjcKxuLu0JOygA4c90y1aOiNTAqML2ln2BQJ+UsfizWyBeVOEJdZnEurmCAt1ICeiQ9DeQcMgCLnnQ==
|
||||
dependencies:
|
||||
"@types/yargs" "^17.0.1"
|
||||
app-builder-lib "22.14.5"
|
||||
builder-util "22.14.5"
|
||||
builder-util-runtime "8.9.1"
|
||||
app-builder-lib "23.0.1"
|
||||
builder-util "23.0.0"
|
||||
builder-util-runtime "9.0.0"
|
||||
chalk "^4.1.1"
|
||||
dmg-builder "22.14.5"
|
||||
dmg-builder "23.0.1"
|
||||
fs-extra "^10.0.0"
|
||||
is-ci "^3.0.0"
|
||||
lazy-val "^1.0.5"
|
||||
|
@ -6015,10 +5981,10 @@ electron-notarize@0.1.1:
|
|||
debug "^4.1.1"
|
||||
fs-extra "^8.0.1"
|
||||
|
||||
electron-osx-sign@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz#fc258c5e896859904bbe3d01da06902c04b51c3a"
|
||||
integrity sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==
|
||||
electron-osx-sign@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz#9b69c191d471d9458ef5b1e4fdd52baa059f1bb8"
|
||||
integrity sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==
|
||||
dependencies:
|
||||
bluebird "^3.5.0"
|
||||
compare-version "^0.1.2"
|
||||
|
@ -6027,14 +5993,14 @@ electron-osx-sign@^0.5.0:
|
|||
minimist "^1.2.0"
|
||||
plist "^3.0.1"
|
||||
|
||||
electron-publish@22.14.5:
|
||||
version "22.14.5"
|
||||
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.5.tgz#34bcdce671f0e651330db20040d6919c77c94bd6"
|
||||
integrity sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg==
|
||||
electron-publish@23.0.0:
|
||||
version "23.0.0"
|
||||
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-23.0.0.tgz#d17c7e407a8bd2c6fc359be2e36d1f88d69cca74"
|
||||
integrity sha512-T4UuPjwaGrm+5DYkmSLlY3ae8EQ8LvkDdO/ZHiyIa7o43myjKXDLkYVISA4mH4FtGVBk1SSQF0CNH96TimZK6g==
|
||||
dependencies:
|
||||
"@types/fs-extra" "^9.0.11"
|
||||
builder-util "22.14.5"
|
||||
builder-util-runtime "8.9.1"
|
||||
builder-util "23.0.0"
|
||||
builder-util-runtime "9.0.0"
|
||||
chalk "^4.1.1"
|
||||
fs-extra "^10.0.0"
|
||||
lazy-val "^1.0.5"
|
||||
|
@ -7000,11 +6966,6 @@ extsprintf@1.0.2:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
|
||||
|
||||
extsprintf@^1.2.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
||||
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
|
||||
|
||||
fabric@4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/fabric/-/fabric-4.6.0.tgz#bd11c2baf165db2c97e4d05740d931586cb26bbb"
|
||||
|
@ -8354,6 +8315,15 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1:
|
|||
agent-base "6"
|
||||
debug "4"
|
||||
|
||||
http-proxy-agent@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
|
||||
integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
|
||||
dependencies:
|
||||
"@tootallnate/once" "2"
|
||||
agent-base "6"
|
||||
debug "4"
|
||||
|
||||
http-proxy-middleware@0.19.1:
|
||||
version "0.19.1"
|
||||
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
|
||||
|
@ -8423,14 +8393,6 @@ humanize-duration@3.27.1:
|
|||
resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.27.1.tgz#2cd4ea4b03bd92184aee6d90d77a8f3d7628df69"
|
||||
integrity sha512-jCVkMl+EaM80rrMrAPl96SGG4NRac53UyI1o/yAzebDntEY6K6/Fj2HOjdPg8omTqIe5Y0wPBai2q5xXrIbarA==
|
||||
|
||||
iconv-corefoundation@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz#27c135470237f6f8d13462fa1f5eaf250523c29a"
|
||||
integrity sha512-1NBe55C75bKGZaY9UHxvXG3G0gEp0ziht7quhuFrW3SPgZDw9HI6qvYXRSV5M/Eupyu8ljuJ6Cba+ec15PZ4Xw==
|
||||
dependencies:
|
||||
cli-truncate "^1.1.0"
|
||||
node-addon-api "^1.6.3"
|
||||
|
||||
iconv-lite@0.4.19:
|
||||
version "0.4.19"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
|
||||
|
@ -10445,11 +10407,6 @@ node-abi@^3.3.0:
|
|||
dependencies:
|
||||
semver "^7.3.5"
|
||||
|
||||
node-addon-api@^1.6.3:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
|
||||
integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
|
||||
|
||||
node-addon-api@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87"
|
||||
|
@ -11465,6 +11422,14 @@ plist@^3.0.1:
|
|||
xmlbuilder "^9.0.7"
|
||||
xmldom "^0.5.0"
|
||||
|
||||
plist@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz#a62df837e3aed2bb3b735899d510c4f186019cbe"
|
||||
integrity sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==
|
||||
dependencies:
|
||||
base64-js "^1.5.1"
|
||||
xmlbuilder "^9.0.7"
|
||||
|
||||
pngjs@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
|
||||
|
@ -13601,13 +13566,6 @@ slash@^3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
||||
|
||||
slice-ansi@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
|
||||
integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==
|
||||
dependencies:
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
|
||||
slice-ansi@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
|
||||
|
@ -13621,7 +13579,7 @@ slide@^1.1.5:
|
|||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
|
||||
|
||||
smart-buffer@^4.0.2, smart-buffer@^4.1.0:
|
||||
smart-buffer@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba"
|
||||
integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==
|
||||
|
@ -15000,15 +14958,6 @@ verror@1.3.6:
|
|||
dependencies:
|
||||
extsprintf "1.0.2"
|
||||
|
||||
verror@^1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
|
||||
integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
core-util-is "1.0.2"
|
||||
extsprintf "^1.2.0"
|
||||
|
||||
vm-browserify@^1.0.1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019"
|
||||
|
@ -15437,11 +15386,6 @@ xdg-basedir@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
|
||||
integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
|
||||
|
||||
xmlbuilder@>=11.0.1:
|
||||
version "15.1.1"
|
||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
|
||||
integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
|
||||
|
||||
xmlbuilder@^9.0.7:
|
||||
version "9.0.7"
|
||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
|
||||
|
|
Loading…
Reference in a new issue