diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a5be63fc5..2c6bf2046a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ### Chores +- Upgraded Electron to 24.2, and Node.js to 18.× ([PR 3124](https://github.com/input-output-hk/daedalus/pull/3124)) - Defined a proxy for currency conversions ([PR 3121](https://github.com/input-output-hk/daedalus/pull/3121)) - Switched Daedalus to be built with Nix flakes ([PR 3008](https://github.com/input-output-hk/daedalus/pull/3008)) - Update `cardano-wallet` to `v2023-04-14` ([PR 3104](https://github.com/input-output-hk/daedalus/pull/3104)) diff --git a/installers/common/WindowsInstaller.hs b/installers/common/WindowsInstaller.hs index 82a06bc1c2..2b16ca37b9 100644 --- a/installers/common/WindowsInstaller.hs +++ b/installers/common/WindowsInstaller.hs @@ -241,13 +241,15 @@ writeInstallerNSIS outName (Version fullVersion') InstallerConfig{installDirecto file [] "cardano-launcher.exe" file [] "libffi-8.dll" file [] "libgmp-10.dll" + file [] "libstdc++-6.dll" + file [] "mcfgthread-12.dll" + file [] "libgcc_s_seh-1.dll" --file [] "cardano-x509-certificates.exe" --file [] "log-config-prod.yaml" --file [] "wallet-topology.yaml" --file [] "configuration.yaml" --file [] "*genesis*.json" file [] "launcher-config.yaml" - file [Recursive] "dlls\\" file [Recursive] "..\\release\\win32-x64\\$SpacedName-win32-x64\\" mapM_ unsafeInject diff --git a/nix/any-darwin.nix b/nix/any-darwin.nix index 3cfcf395e7..ce8547afe7 100644 --- a/nix/any-darwin.nix +++ b/nix/any-darwin.nix @@ -77,10 +77,6 @@ in rec { find . -type f -name '*.node' -not -path '*/@swc*/*' -exec rm -vf {} ';' patchShebangs . >/dev/null # a real lot of paths to patch, no need to litter logs - sed -r 's#/bin/sh#sh#' -i node_modules/lzma-native/node_modules/node-gyp-build/bin.js - - # GNU sed is a bit different: - sed -r "s#sed -i '''#sed -i#" -i node_modules/lzma-native/liblzma-config.sh # And now, with correct shebangs, run the install scripts (we have to do that # semi-manually, because another `yarn install` will overwrite those shebangs…): @@ -294,8 +290,8 @@ in rec { url = "https://github.com/electron/electron/releases/download/v${electronVersion}/electron-v${electronVersion}-darwin-${archSuffix}.zip"; hash = if archSuffix == "x64" - then "sha256-a/CXlNbwILuq+AandY2hJRN7PJZkb0UD64G5VB5Q4C8=" - else "sha256-N03fBYF5SzHu6QCCgXL5IYGTwDLA5Gv/z6xq7JXCLxo="; + then "sha256-I/d/vecsrYMV59Nw2SnNzrVAj1UzSUJB/F3VA9itDNw=" + else "sha256-Up0HRemSeMZvYxyB7b7yKlrYhxMyNmAC7dNxtAmFCyQ="; }; electronChromedriver = pkgs.fetchurl { diff --git a/nix/libsystemd--device-monitor.patch b/nix/libsystemd--device-monitor.patch new file mode 100644 index 0000000000..a78c42848d --- /dev/null +++ b/nix/libsystemd--device-monitor.patch @@ -0,0 +1,17 @@ +diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c +index fd5900704d..f9106fdbe5 100644 +--- a/src/libsystemd/sd-device/device-monitor.c ++++ b/src/libsystemd/sd-device/device-monitor.c +@@ -445,9 +445,9 @@ int device_monitor_receive_device(sd_device_monitor *m, sd_device **ret) { + "sd-device-monitor: No sender credentials received, message ignored."); + + cred = (struct ucred*) CMSG_DATA(cmsg); +- if (cred->uid != 0) +- return log_debug_errno(SYNTHETIC_ERRNO(EAGAIN), +- "sd-device-monitor: Sender uid="UID_FMT", message ignored.", cred->uid); ++ //if (cred->uid != 0) ++ // return log_debug_errno(SYNTHETIC_ERRNO(EAGAIN), ++ // "sd-device-monitor: Sender uid="UID_FMT", message ignored.", cred->uid); + + if (streq(buf.raw, "libudev")) { + /* udev message needs proper version magic */ diff --git a/nix/new-common.nix b/nix/new-common.nix index 40ea03e685..8627c044d7 100644 --- a/nix/new-common.nix +++ b/nix/new-common.nix @@ -30,14 +30,19 @@ rec { # patches = pkgs.lib.optional pkgs.stdenv.isDarwin (njPath + "/bypass-xcodebuild.diff"); # }; - nodejs = pkgs.nodejs-14_x.overrideAttrs (drv: { - # XXX: we don’t want `bypass-xcodebuild.diff`, rather we supply + nodejs = let + base = pkgs.nodejs-18_x; + in if !(pkgs.lib.hasInfix "-darwin" targetSystem) then base else base.overrideAttrs (drv: { + # XXX: we don’t want `bypass-xcodebuild.diff` or `bypass-darwin-xcrun-node16.patch`, rather we supply # the pure `xcbuild` – without that, `blake2` doesn’t build, # cf. - patches = []; + patches = pkgs.lib.filter (patch: !( + pkgs.lib.hasInfix "bypass-xcodebuild" patch || + pkgs.lib.hasInfix "bypass-darwin-xcrun" patch + )) drv.patches; }); - nodePackages = pkgs.nodePackages.override { nodejs = nodejs; }; + nodePackages = pkgs.nodePackages.override { inherit nodejs; }; yarn = (pkgs.yarn.override { inherit nodejs; }).overrideAttrs (drv: { # XXX: otherwise, unable to run our package.json scripts in Nix sandbox (patchShebangs doesn’t catch this) @@ -50,8 +55,8 @@ rec { # Nixpkgs master @ 2022-07-18 # Why → newer `yarn2nix` uses `deep-equal` to see if anything changed in the lockfile, we need that. source = pkgs.fetchzip { - url = "https://github.com/NixOS/nixpkgs/archive/qe4d49de45a3b5dbcb881656b4e3986e666141ea9.tar.gz"; - sha256 = "0y0c9ybkcfmjgrl93wzzlk7ii95kh2fb4v5ac5w6rmcsq2ff3yaz"; + url = "https://github.com/NixOS/nixpkgs/archive/e4d49de45a3b5dbcb881656b4e3986e666141ea9.tar.gz"; + hash = "sha256-X/nhnMCa1Wx4YapsspyAs6QYz6T/85FofrI6NpdPDHg="; }; subdir = builtins.path { path = source + "/pkgs/development/tools/yarn2nix-moretea/yarn2nix"; }; in @@ -135,7 +140,7 @@ rec { # XXX: don’t use fetchzip, we need the raw .tar.gz in `patchElectronRebuild` below src = pkgs.fetchurl { url = "https://electronjs.org/headers/v${electronVersion}/node-v${electronVersion}-headers.tar.gz"; - hash = "sha256-+FZ1EYV6tiZZUFulFYtq1pr861EhBaMlHRgP5H9ENmw="; + hash = "sha256-er08CKt3fwotSjYxqdzpm8Q0YjvD1PhfNBDZ3Jozsvk="; }; } '' tar -xf $src @@ -144,16 +149,18 @@ rec { ''; electronShaSums = pkgs.fetchurl { + name = "electronShaSums-${electronVersion}"; # cache invalidation url = "https://github.com/electron/electron/releases/download/v${electronVersion}/SHASUMS256.txt"; - hash = "sha256-NiUplP/dqmynH2ZN97kJVqMkzSLOLi3JR1T/OWHiOiA="; + hash = "sha256-75bNqt2c7u/fm0P2Ha6NvkbGThEifIHXl2x5UCdy4fM="; }; electronCacheHash = builtins.hashString "sha256" "https://github.com/electron/electron/releases/download/v${electronVersion}"; electronChromedriverShaSums = pkgs.fetchurl { + name = "electronChromedriverShaSums-${electronChromedriverVersion}"; # cache invalidation url = "https://github.com/electron/electron/releases/download/v${electronChromedriverVersion}/SHASUMS256.txt"; - sha256 = "07xxam8dvn1aixvx39gd5x3yc1bs6i599ywxwi5cbkpf957ilpcx"; + hash = "sha256-nV0aT0nuzsVK5J37lEo0egXmRy/tpdF3jyrY3VBVvR8="; }; electronChromedriverCacheHash = builtins.hashString "sha256" @@ -176,20 +183,20 @@ rec { patchElectronRebuild = pkgs.writeShellScriptBin "patch-electron-rebuild" '' echo 'Patching electron-rebuild to force our Node.js headers…' - nodeGypJs=lib/src/module-type/node-gyp.js - if [ ! -e $nodeGypJs ] ; then - # makes it work both here, and in shell.nix: - nodeGypJs="node_modules/electron-rebuild/$nodeGypJs" - fi - if [ ! -e $nodeGypJs ] ; then - echo >&2 'fatal: shouldn’t happen unless electron-rebuild changes' - exit 1 - fi + tarball="''${1:-${commonSources.electronHeaders.src}}" + nodedir="''${2:-${commonSources.electronHeaders}}" + + echo " → tarball=$tarball" + echo " → nodedir=$nodedir" + + nodeGypJs="node_modules/@electron/rebuild/lib/module-type/node-gyp/node-gyp.js" # Patch idempotently (matters in repetitive shell.nix): - if ! grep -qF ${commonSources.electronHeaders.src} $nodeGypJs ; then - sed -r 's|const extraNodeGypArgs.*|\0 extraNodeGypArgs.push("--tarball", "${commonSources.electronHeaders.src}", "--nodedir", "${commonSources.electronHeaders}");|' -i $nodeGypJs + if ! grep -qF "$tarball" $nodeGypJs ; then + sed -r "s|const extraNodeGypArgs.*|\0 extraNodeGypArgs.push('--tarball', '$tarball', '--nodedir', '$nodedir');|" -i $nodeGypJs fi + + echo " → result=$(grep -F "const extraNodeGypArgs" $nodeGypJs)" ''; } diff --git a/nix/old-default.nix b/nix/old-default.nix index 07ee953133..5b756aceaf 100644 --- a/nix/old-default.nix +++ b/nix/old-default.nix @@ -8,7 +8,19 @@ let system = { x86_64-windows = "x86_64-linux"; # Windows can only be cross-built from Linux now }.${target} or target; - pkgs = inputs.nixpkgs.legacyPackages.${system}; + pkgs = + if target != "x86_64-linux" + then inputs.nixpkgs.legacyPackages.${system} + else import inputs.nixpkgs { + inherit system; + config.packageOverrides = super: { + # XXX: non-root users need to be able to use sd-device/device-monitor.c to detect Ledger: + # FIXME: find the correct (minimal) place to override this: + systemd = super.systemd.overrideAttrs (oldAttrs: { + patches = oldAttrs.patches ++ [./libsystemd--device-monitor.patch]; + }); + }; + }; walletFlake = (import inputs.flake-compat { # FIXME: add patches in `flake.nix` after src = pkgs.runCommand "cardano-wallet" {} '' diff --git a/nix/windows-usb-libs.zip b/nix/windows-usb-libs.zip deleted file mode 100644 index 86e1455ef3..0000000000 Binary files a/nix/windows-usb-libs.zip and /dev/null differ diff --git a/nix/x86_64-linux.nix b/nix/x86_64-linux.nix index 6a7ae66e6c..7bde1a4c14 100644 --- a/nix/x86_64-linux.nix +++ b/nix/x86_64-linux.nix @@ -57,7 +57,6 @@ in rec { find . -type f -name '*.node' -not -path '*/@swc*/*' -exec rm -vf {} ';' patchShebangs . >/dev/null # a real lot of paths to patch, no need to litter logs - sed -r 's#/bin/sh#sh#' -i node_modules/lzma-native/node_modules/node-gyp-build/bin.js # And now, with correct shebangs, run the install scripts (we have to do that # semi-manually, because another `yarn install` will overwrite those shebangs…): @@ -102,7 +101,7 @@ in rec { patchedPackageJson = pkgs.writeText "package.json" (builtins.toJSON ( pkgs.lib.recursiveUpdate originalPackageJson { productName = oldCode.launcherConfigs.installerConfig.spacedName; - main = "main/index.js"; + main = "dist/main/index.js"; } )); buildPhase = '' @@ -119,6 +118,9 @@ in rec { cp -R dist/. $out/share/daedalus/. cp $patchedPackageJson $out/share/daedalus/package.json + chmod +w $out/share/daedalus/package.json + sed -r 's,"dist/main/index.js","main/index.js",g' -i $out/share/daedalus/package.json + # XXX: the webpack utils embed the original source paths into map files, which causes the derivation # to depend on the original inputs at the nix layer, and double the size of the linux installs. # this will just replace all storepaths with an invalid one: @@ -309,7 +311,7 @@ in rec { linuxSources = { electron = pkgs.fetchurl { url = "https://github.com/electron/electron/releases/download/v${electronVersion}/electron-v${electronVersion}-linux-x64.zip"; - hash = "sha256-dgdCKkuoDNpL1/77L74vTguac9uS4egtwBASqFtdDSs="; + hash = "sha256-jXeA3Sr8/l6Uos9XT0+hCiosaRIndx/KSQUcUkrGdRM="; }; electronChromedriver = pkgs.fetchurl { diff --git a/nix/x86_64-windows.nix b/nix/x86_64-windows.nix index 434b17a06b..ee3907be17 100644 --- a/nix/x86_64-windows.nix +++ b/nix/x86_64-windows.nix @@ -118,13 +118,296 @@ in rec { # TODO: build the distributed ones from source: ( cd $(mktemp -d) - unzip ${./windows-usb-libs.zip} - mv build/Debug/*.node $out/ + cp ${nativeModules}/build/Debug/*.node $out/ ) ''; dontFixup = true; # TODO: just to shave some seconds, turn back on after everything works }; + fresherPkgs = import (pkgs.fetchFromGitHub { + owner = "NixOS"; repo = "nixpkgs"; + rev = "17a689596b72d1906883484838eb1aaf51ab8001"; # nixos-unstable on 2023-05-15T08:29:41Z + hash = "sha256-YPLMeYE+UzxxP0qbkBzv3RBDvyGR5I4d7v2n8dI3+fY="; + }) { inherit (pkgs) system; }; + + msvc-wine = pkgs.stdenv.mkDerivation { + name = "msvc-wine"; + src = pkgs.fetchFromGitHub { + owner = "mstorsjo"; + repo = "msvc-wine"; + rev = "c4fd83d53689f30ae6cfd8e9ef1ea01712907b59"; # 2023-05-09T21:52:05Z + hash = "sha256-hA11dIOIL9sta+rwGb2EwWrEkRm6nvczpGmLZtr3nHI="; + }; + buildInputs = [ + (pkgs.python3.withPackages (ps: with ps; [ six ])) + ]; + configurePhase = ":"; + buildPhase = ":"; + installPhase = '' + sed -r 's,msiextract,${pkgs.msitools}/bin/\0,g' -i vsdownload.py + mkdir -p $out/libexec + cp -r . $out/libexec/. + ''; + }; + + msvc-cache = let + version = "16"; # There doesn’t seem to be an easy way to specify a more stable full version, 16.11.26 + in pkgs.stdenv.mkDerivation { + name = "msvc-cache-${version}"; + inherit version; + outputHashMode = "recursive"; + outputHashAlgo = "sha256"; + outputHash = "sha256-7+vNhYbrizqhoIDL6vN7vE+Gq2duoYW5adMgOpJgw2w="; + buildInputs = []; + dontUnpack = true; + dontConfigure = true; + NIX_SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; + buildPhase = '' + mkdir -p $out + ${msvc-wine}/libexec/vsdownload.py --accept-license --major ${version} \ + --save-manifest \ + --only-download --cache $out --dest ./ + cp -v *.manifest $out/. + ''; + dontInstall = true; + }; + + msvc-installed = pkgs.stdenv.mkDerivation { + name = "msvc-installed-${msvc-cache.version}"; + inherit (msvc-cache) version; + dontUnpack = true; + dontConfigure = true; + buildPhase = '' + mkdir -p $out + ${msvc-wine}/libexec/vsdownload.py --accept-license --major ${msvc-cache.version} \ + --manifest ${msvc-cache}/*.manifest \ + --keep-unpack --cache ${msvc-cache} --dest $out/ + mv $out/unpack/MSBuild $out/ + ''; + dontInstall = true; + }; + + electronHeadersWithNodeLib = pkgs.runCommandLocal "electron-headers" { + # XXX: don’t use fetchzip, we need the raw .tar.gz in `patchElectronRebuild` below + inherit (commonSources.electronHeaders) src; + } '' + tar -xf $src + mv node_headers $out + echo 9 >$out/installVersion + mkdir -p $out/Release + ln -s ${windowsSources.node-lib} $out/Release/node.lib + ''; + + nativeModules = pkgs.stdenv.mkDerivation { + name = "daedalus-native-modules"; + src = newCommon.srcLockfiles; + nativeBuildInputs = [ yarn nodejs ] + ++ (with fresherPkgs; [ wineWowPackages.stableFull fontconfig winetricks samba /* samba for bin/ntlm_auth */ ]) + ++ (with pkgs; [ python3 pkgconfig jq file procps ]); + buildInputs = with pkgs; [ libusb ]; + configurePhase = newCommon.setupCacheAndGypDirs + '' + # Grab all cached `node_modules` from above: + cp -r ${node_modules}/. ./ + chmod -R +w . + ''; + FONTCONFIG_FILE = fresherPkgs.makeFontsCache { + fontDirectories = with fresherPkgs; [ + dejavu_fonts freefont_ttf gyre-fonts liberation_ttf noto-fonts-emoji + unifont winePackages.fonts xorg.fontcursormisc xorg.fontmiscmisc + ]; + }; + buildPhase = let + mkSection = title: '' + echo ' ' + echo ' ' + echo ' ' + echo ' ' + echo ' ' + echo '===================== '${pkgs.lib.escapeShellArg title}' =====================' + ''; + completeHack = "rebuild-complete-hack-bnlzMmdjbXB5emozNWFndGx1bnd5dnh5"; + in '' + ${pkgs.xvfb-run}/bin/xvfb-run \ + --server-args="-screen 0 1920x1080x24 +extension GLX +extension RENDER -ac -noreset" \ + ${pkgs.writeShellScript "wine-setup-inside-xvfb" '' + set -euo pipefail + + ${mkSection "Setting Windows system version"} + winetricks -q win81 + + ${mkSection "Setting up env and symlinks in standard locations"} + + # Symlink Windows SDK in a standard location: + lx_program_files="$HOME/.wine/drive_c/Program Files (x86)" + mkdir -p "$lx_program_files" + ln -svf ${msvc-installed}/kits "$lx_program_files/Windows Kits" + + # Symlink VC in a standard location: + vc_versionYear="$(jq -r .info.productLineVersion <${msvc-cache}/*.manifest)" + lx_VSINSTALLDIR="$lx_program_files/Microsoft Visual Studio/$vc_versionYear/Community" + mkdir -p "$lx_VSINSTALLDIR" + ln -svf ${msvc-installed}/VC "$lx_VSINSTALLDIR"/ + ln -svf ${msvc-installed}/MSBuild "$lx_VSINSTALLDIR"/ + + export VCINSTALLDIR="$(winepath -w "$lx_VSINSTALLDIR/VC")\\" + export VCToolsVersion="$(ls ${msvc-installed}/VC/Tools/MSVC | head -n1)" + export VCToolsInstallDir="$(winepath -w "$lx_VSINSTALLDIR/VC/Tools/MSVC/$VCToolsVersion")\\" + export VCToolsRedistDir="$(winepath -w "$lx_VSINSTALLDIR/VC/Redist/MSVC/$VCToolsVersion")\\" + + export ClearDevCommandPromptEnvVars=false + + export VSINSTALLDIR="$(winepath -w "$lx_VSINSTALLDIR")\\" + + lx_WindowsSdkDir=("$lx_program_files/Windows Kits"/*) + export WindowsSdkDir="$(winepath -w "$lx_WindowsSdkDir")\\" + + set -x + + # XXX: this can break, as `v10.0` is not determined programmatically; + # XXX: the path is taken from `${msvc-installed}/MSBuild/Microsoft/VC/v160/Microsoft.Cpp.WindowsSDK.props` + wine reg ADD 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0' \ + /v 'InstallationFolder' /t 'REG_SZ' /d "$WindowsSdkDir" /f + + # XXX: This path is taken from `${msvc-installed}/unpack/Common7/Tools/vsdevcmd/core/winsdk.bat` + wine reg ADD 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots' \ + /v 'KitsRoot10' /t 'REG_SZ' /d "$WindowsSdkDir" /f + + set +x + + ${mkSection "Preparing the ‘info’ structure"} + jq --null-input \ + --arg msBuild "$(winepath -w "$lx_VSINSTALLDIR/MSBuild/Current/Bin/MSBuild.exe")" \ + --arg path "$VCINSTALLDIR" \ + --arg sdk "$(ls ${msvc-installed}/kits/10/Include | head -n1)" \ + --arg toolset "$(ls "$lx_VSINSTALLDIR/VC/Redist/MSVC" | grep -E '^v[0-9]+$')" \ + --arg version "$(jq -r .info.productDisplayVersion <${msvc-cache}/*.manifest)" \ + --arg versionMajor "$(jq -r .info.productDisplayVersion <${msvc-cache}/*.manifest | cut -d. -f1)" \ + --arg versionMinor "$(jq -r .info.productDisplayVersion <${msvc-cache}/*.manifest | cut -d. -f2)" \ + --arg versionYear "$(jq -r .info.productLineVersion <${msvc-cache}/*.manifest)" \ + '{$msBuild,$path,$sdk,$toolset,$version,$versionMajor,$versionMinor,$versionYear}' \ + > vs-info.json + + ${mkSection "Stubbing node_modules/node-gyp/lib/find-visualstudio.js"} + ( + cat <<<${pkgs.lib.escapeShellArg '' + 'use strict' + function findVisualStudio (nodeSemver, configMsvsVersion, callback) { + process.nextTick(() => callback(null, + ''} + cat vs-info.json + cat <<<${pkgs.lib.escapeShellArg '' + )); + } + module.exports = findVisualStudio + ''} + ) >node_modules/node-gyp/lib/find-visualstudio.js + cat node_modules/node-gyp/lib/find-visualstudio.js + + ${mkSection "Setting WINEPATH"} + export WINEPATH="$(winepath -w ${native.nodejs});$(winepath -w ${native.python})" + + ${mkSection "Removing all symlinks to /nix/store (mostly python3)"} + find node_modules -type l >all-symlinks.lst + paste all-symlinks.lst <(xargs /dev/null ; do + ${mkSection "Wine is still running in the background, will try to kill it"} + echo 'All remaining processes:' + ps aux | cat + + sleep 1 + pkill -9 wine || true + sleep 4 + done + ''} + ''; + installPhase = '' + #find -iname '*.node' | xargs file -L + + mkdir -p $out/build/Release + cp node_modules/usb-detection/build/Release/detection.node $out/build/Release/ + cp node_modules/usb/build/Release/usb_bindings.node $out/build/Release/ + cp node_modules/node-hid/build/Release/HID.node $out/build/Release/ + + # make sure they’re for Windows + find $out -iname '*.node' | while IFS= read -r ext ; do + file "$ext" | grep -F 'MS Windows' || { + echo "fatal: $ext is not built for MS Windows (shouldn’t happen)" + exit 2 + } + done + + # Is that needed? + cp -r $out/build/Release $out/build/Debug + ''; + }; + + native = rec { + nodejs = pkgs.fetchzip { + url = "https://nodejs.org/dist/v${newCommon.nodejs.version}/node-v${newCommon.nodejs.version}-win-x64.zip"; + hash = "sha256-n8ux67xrq3Rta1nE715y1m040oaLxUI2bIt12RaJdeM="; + }; + + python = pkgs.fetchzip { + url = "https://www.python.org/ftp/python/3.10.11/python-3.10.11-embed-amd64.zip"; + hash = "sha256-p83yidrRg5Rz1vQpyRuZCb5F+s3ddgHt+JakPjgFgUc="; + stripRoot = false; + }; + }; + windowsIcons = let buildInputs = with pkgs; [ imagemagick ]; # Allow fallback to `mainnet` if cluster’s icons don’t exist: @@ -198,11 +481,6 @@ in rec { # a cross-compiled fastlist for the ps-list package fastlist = pkgs.pkgsCross.mingwW64.callPackage ./fastlist.nix {}; - dlls = pkgs.fetchurl { - url = "https://s3.eu-central-1.amazonaws.com/daedalus-ci-binaries/DLLs.zip"; - sha256 = "0p6nrf8sg2wgcaf3b1qkbb98bz2dimb7lnshsa93xnmia9m2vsxa"; - }; - preSigning = let installDir = oldCode.launcherConfigs.installerConfig.spacedName; in pkgs.runCommand "pre-signing" { buildInputs = [ pkgs.unzip ]; } '' @@ -221,10 +499,6 @@ in rec { cp -v ${fastlist}/bin/fastlist.exe "../release/win32-x64/${installDir}-win32-x64/resources/app/dist/main/fastlist.exe" ln -s ${../installers/nsis_plugins} nsis_plugins - mkdir dlls - pushd dlls - unzip ${dlls} - popd cp -vr ${oldCode.daedalus-bridge}/bin/* . cp -v ${nsisFiles}/{*.yaml,*.json,daedalus.nsi,*.key,*.cert} . cp ${unsignedUninstaller}/uninstall.exe . @@ -273,7 +547,15 @@ in rec { windowsSources = { electron = pkgs.fetchurl { url = "https://github.com/electron/electron/releases/download/v${electronVersion}/electron-v${electronVersion}-win32-x64.zip"; - hash = "sha256-GAhaJQlEf++Iltru6WoS9I+OYKTV7Ez6tE2NWbnYmnI="; + hash = "sha256-xYQml960qP3sB/Rp3uEMU7s9aT2Ma4A5VHHzuUx8r9c="; + }; + + # XXX: normally, node-gyp would download it only for Windows, + # XXX: see `resolveLibUrl()` in `node-gyp/lib/process-release.js` + node-lib = pkgs.fetchurl { + name = "node.lib-${electronVersion}"; # cache invalidation + url = "https://electronjs.org/headers/v${electronVersion}/win-x64/node.lib"; + hash = "sha256-JhIFzgm+Oig7FsHk1TP85H6PDD3drC7wXpVDfq8hIC4="; }; }; diff --git a/package.json b/package.json index bca0db38e7..617c43c020 100644 --- a/package.json +++ b/package.json @@ -124,8 +124,8 @@ "electron-connect": "0.6.3", "electron-devtools-installer": "3.2.0", "electron-mock-ipc": "0.3.12", - "electron-packager": "15.4.0", - "electron-rebuild": "3.2.7", + "electron-packager": "17.1.1", + "@electron/rebuild": "3.2.13", "electron-reloader": "1.2.1", "eslint": "8.13.0", "eslint-config-airbnb": "19.0.4", @@ -199,7 +199,7 @@ "dependencies": { "@cardano-foundation/ledgerjs-hw-app-cardano": "6.0.0", "@iohk-jormungandr/wallet-js": "0.5.0-pre7", - "@ledgerhq/hw-transport-node-hid": "6.27.1", + "@ledgerhq/hw-transport-node-hid": "6.27.15", "@trezor/connect": "9.0.2", "aes-js": "3.1.2", "bech32": "2.0.0", @@ -219,7 +219,7 @@ "classnames": "2.2.6", "csv-stringify": "5.5.1", "cucumber-html-reporter": "5.2.0", - "electron": "13.6.3", + "electron": "24.2.0", "electron-log-daedalus": "2.2.21", "electron-store": "8.0.1", "es6-error": "4.1.1", @@ -248,7 +248,7 @@ "moment": "2.29.0", "nanoid": "3.2.0", "node-downloader-helper": "1.0.18", - "node-hid": "2.1.1", + "node-hid": "2.1.2", "omit-deep-lodash": "1.1.5", "pbkdf2": "3.1.2", "pdfkit": "0.8.3", @@ -311,6 +311,8 @@ "**/**/usb": "1.7.2", "**/**/prismjs": "1.27.0", "**/**/prebuild-install": "^6.1.4", + "**/**/node-abi": "^3.40.0", + "**/**/nan": "^2.17.0", "prebuild-install": "^6.1.4", "pbkdf2": "3.1.2" } diff --git a/scripts/rebuild-native-modules.sh b/scripts/rebuild-native-modules.sh index 6c9f2c841b..74c3f5aa74 100755 --- a/scripts/rebuild-native-modules.sh +++ b/scripts/rebuild-native-modules.sh @@ -17,6 +17,9 @@ find . -type f -name '*.node' -not -path '*/@swc*/*' -exec rm -vf {} ';' # doesn’t work reliably. nix run -L .#internal.mainnet.newCommon.patchElectronRebuild +# XXX: Electron 24.2 requires c++17, not 14 (or old 1y): +sed -r 's,std=c\+\+(14|1y),std=c++17,g' -i node_modules/usb/binding.gyp + # TODO: do we really need to run `electron-rebuild` 3×? electron-rebuild --force diff --git a/source/main/cardano/CardanoNode.ts b/source/main/cardano/CardanoNode.ts index 326682ec63..0f8e75ede2 100644 --- a/source/main/cardano/CardanoNode.ts +++ b/source/main/cardano/CardanoNode.ts @@ -738,14 +738,14 @@ export class CardanoNode { ca: '' as any, key: '' as any, cert: '' as any, - hostname: 'localhost', + hostname: '127.0.0.1', // “localhost” breaks under new electron, which prefers ::1 (IPv6) port, } : { ca: _actions.readFileSync(`${tlsPath}/client/ca.crt`), key: _actions.readFileSync(`${tlsPath}/client/client.key`), cert: _actions.readFileSync(`${tlsPath}/client/client.pem`), - hostname: 'localhost', + hostname: '127.0.0.1', // “localhost” breaks under new electron, which prefers ::1 (IPv6) port, }; diff --git a/source/main/cardano/CardanoSelfnodeLauncher.ts b/source/main/cardano/CardanoSelfnodeLauncher.ts index 04f7e5931c..e503fa157e 100644 --- a/source/main/cardano/CardanoSelfnodeLauncher.ts +++ b/source/main/cardano/CardanoSelfnodeLauncher.ts @@ -31,7 +31,8 @@ const CARDANO_WALLET_START_TIMEOUT = 60 * 1000; // 60 seconds | unit: millisecon const CARDANO_WALLET_START_CHECK_INTERVAL = 500; // 500 ms | unit: milliseconds const TOKEN_METADATA_SERVER_PORT = 65432; -const TOKEN_METADATA_SERVER = `http://localhost:${TOKEN_METADATA_SERVER_PORT}/`; +// “localhost” breaks under new electron, which prefers ::1 (IPv6) +const TOKEN_METADATA_SERVER = `http://127.0.0.1:${TOKEN_METADATA_SERVER_PORT}/`; const TOKEN_METADATA_SERVER_PROCESS_NAME = environment.isWindows ? 'mock-token-metadata-server.exe' : 'mock-token-metadata-server'; diff --git a/source/main/config.ts b/source/main/config.ts index 3a705b7e01..efa86e09cf 100644 --- a/source/main/config.ts +++ b/source/main/config.ts @@ -178,7 +178,8 @@ export const FALLBACK_TOKEN_METADATA_SERVER_URL = export const MINIMUM_AMOUNT_OF_RAM_FOR_RTS_FLAGS = 16 * 1024 * 1024 * 1024; // 16gb RAM // Used by mock-token-metadata-server -export const MOCK_TOKEN_METADATA_SERVER_URL = 'http://localhost'; +// “localhost” breaks under new electron, which prefers ::1 (IPv6) +export const MOCK_TOKEN_METADATA_SERVER_URL = 'http://127.0.0.1'; export const MOCK_TOKEN_METADATA_SERVER_PORT = process.env.MOCK_TOKEN_METADATA_SERVER_PORT || 0; export const RTS_FLAGS = ['-c']; diff --git a/source/main/index.ts b/source/main/index.ts index f5763d0fea..a31dbd6534 100644 --- a/source/main/index.ts +++ b/source/main/index.ts @@ -82,8 +82,6 @@ if (isBlankScreenFixActive) { // (1/2) this line increases the limit for the main process EventEmitter.defaultMaxListeners = 100; // Default: 10 -app.allowRendererProcessReuse = true; - const safeExit = async () => { pauseActiveDownloads(); @@ -253,15 +251,16 @@ const onAppReady = async () => { // Security feature: Prevent creation of new browser windows // https://github.com/electron/electron/blob/master/docs/tutorial/security.md#14-disable-or-limit-creation-of-new-windows app.on('web-contents-created', (_, contents) => { - contents.on('new-window', (event, url) => { - // Prevent creation of new BrowserWindows via links / window.open - event.preventDefault(); + contents.setWindowOpenHandler((details) => { + const { url } = details; // @ts-ignore ts-migrate(2554) FIXME: Expected 2 arguments, but got 1. logger.info('Prevented creation of new browser window', { url, }); // Open these links with the default browser shell.openExternal(url); + // Prevent creation of new BrowserWindows via links / window.open + return { action: 'deny' }; }); }); // Wait for controlled cardano-node shutdown before quitting the app diff --git a/source/main/windows/main.ts b/source/main/windows/main.ts index 4a19b8069b..ed550b0e88 100644 --- a/source/main/windows/main.ts +++ b/source/main/windows/main.ts @@ -48,7 +48,7 @@ export const createMainWindow = ( height: 870, ...getSavedWindowBounds(), webPreferences: { - nodeIntegration: isTest, + nodeIntegration: true, webviewTag: false, // @ts-ignore ts-migrate(2322) FIXME: Type '{ nodeIntegration: boolean; webviewTag: fals... Remove this comment to see the full error message contextIsolation: false, @@ -81,7 +81,7 @@ export const createMainWindow = ( window.close(); }); if (isDev) { - window.loadURL(`http://localhost:8080`); + window.loadURL(`http://127.0.0.1:8080`); } else { window.loadURL(`file://${__dirname}/../renderer/index.html`); } diff --git a/source/renderer/app/api/index.ts b/source/renderer/app/api/index.ts index 1f54636431..600c0eb62b 100644 --- a/source/renderer/app/api/index.ts +++ b/source/renderer/app/api/index.ts @@ -9,7 +9,7 @@ export type Api = { export const setupApi = (isTest: boolean): Api => ({ ada: new AdaApi(isTest, { - hostname: 'localhost', + hostname: '127.0.0.1', // “localhost” breaks under new electron, which prefers ::1 (IPv6) port: 8090, ca: Uint8Array.from([]), key: Uint8Array.from([]), diff --git a/yarn.lock b/yarn.lock index 8ea4ad25ef..2c745e1a0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1016,7 +1016,17 @@ react "^16.6.0" react-json-view "^1.13.3" -"@electron/get@^1.0.1", "@electron/get@^1.12.4", "@electron/get@^1.6.0": +"@electron/asar@^3.2.1": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.4.tgz#7e8635a3c4f6d8b3f8ae6efaf5ecb9fbf3bd9864" + integrity sha512-lykfY3TJRRWFeTxccEKdf1I6BLl2Plw81H0bbp4Fc5iEc67foDCa5pjJQULVgo0wF+Dli75f3xVcdb/67FFZ/g== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + +"@electron/get@^1.12.4": version "1.14.1" resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" dependencies: @@ -1031,10 +1041,77 @@ global-agent "^3.0.0" global-tunnel-ng "^2.7.1" +"@electron/get@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.2.tgz#ae2a967b22075e9c25aaf00d5941cd79c21efd7e" + integrity sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^11.8.5" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" + +"@electron/notarize@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-1.2.3.tgz#38056a629e5a0b5fd56c975c4828c0f74285b644" + integrity sha512-9oRzT56rKh5bspk3KpAVF8lPKHYQrBnRwcgiOeR0hdilVEQmszDaAu0IPCPrwwzJN0ugNs0rRboTreHMt/6mBQ== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.1" + +"@electron/osx-sign@^1.0.1": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.4.tgz#8e91442846471636ca0469426a82b253b9170151" + integrity sha512-xfhdEcIOfAZg7scZ9RQPya1G1lWo8/zMCwUXAulq0SfY7ONIW+b9qGyKdMyuMctNYwllrIS+vmxfijSfjeh97g== + dependencies: + compare-version "^0.1.2" + debug "^4.3.4" + fs-extra "^10.0.0" + isbinaryfile "^4.0.8" + minimist "^1.2.6" + plist "^3.0.5" + +"@electron/rebuild@3.2.13": + version "3.2.13" + resolved "https://registry.yarnpkg.com/@electron/rebuild/-/rebuild-3.2.13.tgz#98fbb98981b1a86162546a2ab91b2355569cca4c" + integrity sha512-DH9Ol4JCnHDYVOD0fKWq+Qqbn/0WU1O6QR0mIpMXEVU4YFM4PlaqNC9K36mGShNBxxGFotZCMDrB1wl/iHM12g== + dependencies: + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.1.1" + detect-libc "^2.0.1" + fs-extra "^10.0.0" + got "^11.7.0" + node-abi "^3.0.0" + node-api-version "^0.1.4" + node-gyp "^9.0.0" + ora "^5.1.0" + semver "^7.3.5" + tar "^6.0.5" + yargs "^17.0.1" + "@electron/remote@^1.0.4": version "1.2.2" resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-1.2.2.tgz#4c390a2e669df47af973c09eec106162a296c323" +"@electron/universal@^1.3.2": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.3.4.tgz#bccd94b635d7c85eeed5eabba457eb4ed2be2777" + integrity sha512-BdhBgm2ZBnYyYRLRgOjM5VHkyFItsbggJ0MHycOjKWdFGYwK97ZFXH54dTvUWEfha81vfvwr5On6XBjt99uDcg== + dependencies: + "@electron/asar" "^3.2.1" + "@malept/cross-spawn-promise" "^1.1.0" + debug "^4.3.1" + dir-compare "^3.0.0" + fs-extra "^9.0.1" + minimatch "^3.0.4" + plist "^3.0.4" + "@emotion/cache@^10.0.27", "@emotion/cache@^10.0.9": version "10.0.29" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" @@ -1200,7 +1277,7 @@ tslib "^2.1.0" typescript "^4.5" -"@gar/promisify@^1.0.1": +"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -1434,15 +1511,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@ledgerhq/devices@^6.27.1": - version "6.27.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.27.1.tgz#3b13ab1d1ba8201e9e74a08f390560483978c962" - dependencies: - "@ledgerhq/errors" "^6.10.0" - "@ledgerhq/logs" "^6.10.0" - rxjs "6" - semver "^7.3.5" - "@ledgerhq/devices@^8.0.0": version "8.0.0" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.0.tgz#8fe9f9e442e28b7a20bcdf4c2eed06ce7b8f76ae" @@ -1452,34 +1520,51 @@ rxjs "6" semver "^7.3.5" -"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.12.3": +"@ledgerhq/devices@^8.0.3": + version "8.0.3" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.3.tgz#bca76789b9dec2353ea8b089f7bd183ed3047afd" + integrity sha512-Q7/vqkGELSBuwFafFoTqlHIRyOjw8JqbSgiQwe2R38xN0RKtKIh+5E6UfMKyoExiq+SrQg0IC8P2LS+XdjOHLw== + dependencies: + "@ledgerhq/errors" "^6.12.6" + "@ledgerhq/logs" "^6.10.1" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/errors@^6.12.3": version "6.12.3" resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.12.3.tgz#a610caae1eeeb7cb038525e5212fe03217dda683" -"@ledgerhq/hw-transport-node-hid-noevents@^6.27.1": - version "6.27.12" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.27.12.tgz#5dacbaf7e146018a73d18d16ce975925b5795732" +"@ledgerhq/errors@^6.12.6": + version "6.12.6" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.12.6.tgz#f89c82c91c2930f34bc3e0d86a27ec7b6e6e4f5f" + integrity sha512-D+r2B09vaRO06wfGoss+rNgwqWSoK0bCtsaJWzlD2hv1zxTtucqVtSztbRFypIqxWTCb3ix5Nh2dWHEJVTp2Xw== + +"@ledgerhq/hw-transport-node-hid-noevents@^6.27.15": + version "6.27.15" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.27.15.tgz#fbf968ac6fa9345f2642da609f3bdf3236a3ae37" + integrity sha512-cLf/Egp4+WWUlKT5Zi9BZTmlMcdVQKftmnfb/LIeVnoiN2tn6a3vx51+o7voqVzSKWYSQwwwTjVVI4ayf+Av3A== dependencies: - "@ledgerhq/devices" "^8.0.0" - "@ledgerhq/errors" "^6.12.3" - "@ledgerhq/hw-transport" "^6.28.1" + "@ledgerhq/devices" "^8.0.3" + "@ledgerhq/errors" "^6.12.6" + "@ledgerhq/hw-transport" "^6.28.4" "@ledgerhq/logs" "^6.10.1" node-hid "^2.1.2" -"@ledgerhq/hw-transport-node-hid@6.27.1": - version "6.27.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.27.1.tgz#550b56b741fbdeb07ceb66082cf9500844f3d0a1" +"@ledgerhq/hw-transport-node-hid@6.27.15": + version "6.27.15" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.27.15.tgz#cec5d41166731815f465d0b226f139cd33659214" + integrity sha512-gycGBlnc8GJPvpbMORJ2kh/Uue8KspBc5sStfc7dY8w9GrUyLUT2XMKuTlljw/qOSBhDBTsjhRXKwxxtHsytuQ== dependencies: - "@ledgerhq/devices" "^6.27.1" - "@ledgerhq/errors" "^6.10.0" - "@ledgerhq/hw-transport" "^6.27.1" - "@ledgerhq/hw-transport-node-hid-noevents" "^6.27.1" - "@ledgerhq/logs" "^6.10.0" + "@ledgerhq/devices" "^8.0.3" + "@ledgerhq/errors" "^6.12.6" + "@ledgerhq/hw-transport" "^6.28.4" + "@ledgerhq/hw-transport-node-hid-noevents" "^6.27.15" + "@ledgerhq/logs" "^6.10.1" lodash "^4.17.21" - node-hid "2.1.1" + node-hid "^2.1.2" usb "^1.7.0" -"@ledgerhq/hw-transport@^6.27.1", "@ledgerhq/hw-transport@^6.27.10", "@ledgerhq/hw-transport@^6.28.1": +"@ledgerhq/hw-transport@^6.27.10": version "6.28.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.1.tgz#cb22fe9bc23af4682c30f2aac7fe6f7ab13ed65a" dependencies: @@ -1487,7 +1572,16 @@ "@ledgerhq/errors" "^6.12.3" events "^3.3.0" -"@ledgerhq/logs@^6.10.0", "@ledgerhq/logs@^6.10.1": +"@ledgerhq/hw-transport@^6.28.4": + version "6.28.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.4.tgz#c2fc5bff4fca71ac44f069b775d33d0b1b5d9000" + integrity sha512-fB2H92YQjidmae2GFCmOGPwkZWk0lvTu0tlLlzfiY0wRheAG+DEgjnqhdU8wmydkPLIj0WUjRgldtnJtg/a2iQ== + dependencies: + "@ledgerhq/devices" "^8.0.3" + "@ledgerhq/errors" "^6.12.6" + events "^3.3.0" + +"@ledgerhq/logs@^6.10.1": version "6.10.1" resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" @@ -1571,6 +1665,14 @@ "@gar/promisify" "^1.0.1" semver "^7.3.5" +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + "@npmcli/move-file@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" @@ -1578,6 +1680,14 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + "@pmmmwh/react-refresh-webpack-plugin@0.5.3": version "0.5.3" resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.3.tgz#b8f0e035f6df71b5c4126cb98de29f65188b9e7b" @@ -2683,6 +2793,11 @@ version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" +"@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== + "@trezor/blockchain-link@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@trezor/blockchain-link/-/blockchain-link-2.1.4.tgz#4f558f0187f7bea324f38f70b1e25473957ca265" @@ -3035,7 +3150,7 @@ version "11.11.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" -"@types/node@14", "@types/node@^14.0.10", "@types/node@^14.6.2": +"@types/node@14", "@types/node@^14.0.10": version "14.18.16" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.16.tgz#878f670ba3f00482bf859b6550b6010610fc54b5" @@ -3051,6 +3166,11 @@ version "12.20.50" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.50.tgz#14ba5198f1754ffd0472a2f84ab433b45ee0b65e" +"@types/node@^18.11.18": + version "18.16.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.7.tgz#86d0ba2541f808cb78d4dc5d3e40242a349d6db8" + integrity sha512-MFg7ua/bRtnA1hYE3pVyWxGd/r7aMqjNOdHvlSsXV3n8iaeGKkOaPzpJh6/ovf4bEXWcojkeMJpTsq3mzXW4IQ== + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -3814,9 +3934,10 @@ abab@^2.0.3, abab@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" -abbrev@1: +abbrev@1, abbrev@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" @@ -3886,12 +4007,13 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agentkeepalive@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" +agentkeepalive@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255" + integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg== dependencies: debug "^4.1.0" - depd "^1.1.2" + depd "^2.0.0" humanize-ms "^1.2.1" aggregate-error@^3.0.0: @@ -4319,17 +4441,6 @@ asar@2.1.0: optionalDependencies: "@types/glob" "^7.1.1" -asar@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473" - dependencies: - chromium-pickle-js "^0.2.0" - commander "^5.0.0" - glob "^7.1.6" - minimatch "^3.0.4" - optionalDependencies: - "@types/glob" "^7.1.1" - asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -4966,6 +5077,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -5118,17 +5236,6 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -5141,10 +5248,6 @@ buffer-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -5247,7 +5350,7 @@ cacache@^12.0.2: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^15.0.5, cacache@^15.2.0: +cacache@^15.0.5: version "15.3.0" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" dependencies: @@ -5270,6 +5373,30 @@ cacache@^15.0.5, cacache@^15.2.0: tar "^6.0.2" unique-filename "^1.1.1" +cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + 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.0" + tar "^6.1.11" + unique-filename "^2.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -5931,7 +6058,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.2, concat-stream@~1.6.0: +concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -6554,13 +6681,13 @@ debounce-fn@^4.0.0: dependencies: mimic-fn "^3.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" dependencies: @@ -6758,11 +6885,11 @@ delimit-stream@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" -depd@2.0.0: +depd@2.0.0, depd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" -depd@^1.1.2, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -6791,6 +6918,11 @@ detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" +detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -6848,6 +6980,14 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dir-compare@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-3.3.0.tgz#2c749f973b5c4b5d087f11edaae730db31788416" + integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== + dependencies: + buffer-equal "^1.0.0" + minimatch "^3.0.4" + dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" @@ -7106,37 +7246,21 @@ electron-mock-ipc@0.3.12: version "0.3.12" resolved "https://registry.yarnpkg.com/electron-mock-ipc/-/electron-mock-ipc-0.3.12.tgz#f9a7dca9a23a95dbe5a62f27cca12768d4cb88c0" -electron-notarize@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.2.1.tgz#347c18eca8e29dddadadee511b870c13d4008baf" - dependencies: - debug "^4.1.1" - fs-extra "^9.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" +electron-packager@17.1.1: + version "17.1.1" + resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-17.1.1.tgz#f156fc63d3a66f4e902e4b42992550a172982d59" + integrity sha512-r1NDtlajsq7gf2EXgjRfblCVPquvD2yeg+6XGErOKblvxOpDi0iulZLVhgYDP4AEF1P5/HgbX/vwjlkEv7PEIQ== dependencies: - bluebird "^3.5.0" - compare-version "^0.1.2" - debug "^2.6.8" - isbinaryfile "^3.0.2" - minimist "^1.2.0" - plist "^3.0.1" - -electron-packager@15.4.0: - version "15.4.0" - resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-15.4.0.tgz#07ea036b70cde2062d4c8dce4d907d793b303998" - dependencies: - "@electron/get" "^1.6.0" - asar "^3.1.0" + "@electron/asar" "^3.2.1" + "@electron/get" "^2.0.0" + "@electron/notarize" "^1.2.3" + "@electron/osx-sign" "^1.0.1" + "@electron/universal" "^1.3.2" cross-spawn-windows-exe "^1.2.0" debug "^4.0.1" - electron-notarize "^1.1.1" - electron-osx-sign "^0.5.0" extract-zip "^2.0.0" filenamify "^4.1.0" - fs-extra "^9.0.0" + fs-extra "^10.1.0" galactus "^0.2.1" get-package-info "^1.0.0" junk "^3.1.0" @@ -7145,26 +7269,7 @@ electron-packager@15.4.0: rcedit "^3.0.1" resolve "^1.1.6" semver "^7.1.3" - yargs-parser "^20.0.0" - -electron-rebuild@3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-3.2.7.tgz#0f56c1cc99a6fec0a5b990532283c2a8c838c19b" - dependencies: - "@malept/cross-spawn-promise" "^2.0.0" - chalk "^4.0.0" - debug "^4.1.1" - detect-libc "^1.0.3" - fs-extra "^10.0.0" - got "^11.7.0" - lzma-native "^8.0.5" - node-abi "^3.0.0" - node-api-version "^0.1.4" - node-gyp "^8.4.0" - ora "^5.1.0" - semver "^7.3.5" - tar "^6.0.5" - yargs "^17.0.1" + yargs-parser "^21.1.1" electron-reloader@1.2.1: version "1.2.1" @@ -7187,13 +7292,14 @@ electron-to-chromium@^1.4.118: version "1.4.131" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.131.tgz#ca42d22eac0fe545860fbc636a6f4a7190ba70a9" -electron@13.6.3: - version "13.6.3" - resolved "https://registry.yarnpkg.com/electron/-/electron-13.6.3.tgz#c0217178807d3e0b2175c49dbe33ea8dac447e73" +electron@24.2.0: + version "24.2.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-24.2.0.tgz#54623a909e2e5d53a69d5fd8bf22ab37e61c188b" + integrity sha512-fEYAftYqFhveniWJbEHXjNMWjooFFIuqNj/eEFJkGzycInfBJq/c4E/dew++s6s0YLubxFnjoF2qZiqapLj0gA== dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^14.6.2" - extract-zip "^1.0.3" + "@electron/get" "^2.0.0" + "@types/node" "^18.11.18" + extract-zip "^2.0.1" element-resize-detector@^1.2.2: version "1.2.4" @@ -7241,9 +7347,10 @@ encodeurl@^1.0.2, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" -encoding@^0.1.12: +encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" @@ -7998,18 +8105,10 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -extract-zip@^2.0.0: +extract-zip@^2.0.0, extract-zip@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" get-stream "^5.1.0" @@ -8533,7 +8632,7 @@ fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" -fs-extra@10, fs-extra@^10.0.0: +fs-extra@10, fs-extra@^10.0.0, fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" dependencies: @@ -8593,7 +8692,7 @@ fs-extra@^9.0.0, fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^2.0.0: +fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" dependencies: @@ -8889,6 +8988,17 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-agent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" @@ -9036,6 +9146,23 @@ got@^11.0.2, got@^11.7.0, got@^11.8.0: p-cancelable "^2.0.0" responselike "^2.0.0" +got@^11.8.5: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -9549,6 +9676,15 @@ 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@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" @@ -10306,11 +10442,10 @@ isarray@^2.0.1, isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" -isbinaryfile@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - dependencies: - buffer-alloc "^1.2.0" +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isexe@^2.0.0: version "2.0.0" @@ -11434,18 +11569,15 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.7.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" -lzma-native@^8.0.5: - version "8.0.6" - resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-8.0.6.tgz#3ea456209d643bafd9b5d911781bdf0b396b2665" - dependencies: - node-addon-api "^3.1.0" - node-gyp-build "^4.2.1" - readable-stream "^3.6.0" - magic-string@0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" @@ -11483,26 +11615,27 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-fetch-happen@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" +make-fetch-happen@^10.0.3: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== dependencies: - agentkeepalive "^4.1.3" - cacache "^15.2.0" + agentkeepalive "^4.2.1" + cacache "^16.1.0" http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" + http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" + lru-cache "^7.7.1" + minipass "^3.1.6" minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" + minipass-fetch "^2.0.3" minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" - negotiator "^0.6.2" + negotiator "^0.6.3" promise-retry "^2.0.1" - socks-proxy-agent "^6.0.0" - ssri "^8.0.0" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" make-iterator@^1.0.0: version "1.0.1" @@ -11873,6 +12006,13 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -11891,15 +12031,16 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== dependencies: - minipass "^3.1.0" + minipass "^3.1.6" minipass-sized "^1.0.3" - minizlib "^2.0.0" + minizlib "^2.1.2" optionalDependencies: - encoding "^0.1.12" + encoding "^0.1.13" minipass-flush@^1.0.5: version "1.0.5" @@ -11919,13 +12060,25 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: +minipass@^3.0.0, minipass@^3.1.1: version "3.1.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" dependencies: yallist "^4.0.0" -minizlib@^2.0.0, minizlib@^2.1.1: +minipass@^3.1.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" dependencies: @@ -11962,7 +12115,7 @@ mkdirp@1.0.4, mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4: +mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" dependencies: @@ -12064,9 +12217,10 @@ mz@^2.4.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.12.1, nan@^2.13.2, nan@^2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" +nan@^2.12.1, nan@^2.13.2, nan@^2.15.0, nan@^2.17.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== nanoassert@^1.0.0: version "1.1.0" @@ -12104,7 +12258,7 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" -negotiator@0.6.3, negotiator@^0.6.2: +negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -12149,15 +12303,10 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-abi@^2.21.0: - version "2.30.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.0.tgz#8be53bf3e7945a34eea10e0fc9a5982776cf550b" - dependencies: - semver "^5.4.1" - -node-abi@^3.0.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.15.0.tgz#cd9ac8c58328129b49998cc6fa16aa5506152716" +node-abi@^2.21.0, node-abi@^3.0.0, node-abi@^3.40.0: + version "3.40.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.40.0.tgz#51d8ed44534f70ff1357dfbc3a89717b1ceac1b4" + integrity sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA== dependencies: semver "^7.3.5" @@ -12165,7 +12314,7 @@ node-addon-api@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.0.2.tgz#04bc7b83fd845ba785bb6eae25bc857e1ef75681" -node-addon-api@^3.0.0, node-addon-api@^3.0.2, node-addon-api@^3.1.0: +node-addon-api@^3.0.0, node-addon-api@^3.0.2: version "3.2.1" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" @@ -12205,7 +12354,7 @@ node-forge@^1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" -node-gyp-build@^4.2.1, node-gyp-build@^4.2.2: +node-gyp-build@^4.2.2: version "4.4.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" @@ -12213,30 +12362,23 @@ node-gyp-build@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" -node-gyp@^8.4.0: - version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" +node-gyp@^9.0.0: + version "9.3.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.1.tgz#1e19f5f290afcc9c46973d68700cbd21a96192e4" + integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== dependencies: env-paths "^2.2.0" glob "^7.1.4" graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" + make-fetch-happen "^10.0.3" + nopt "^6.0.0" npmlog "^6.0.0" rimraf "^3.0.2" semver "^7.3.5" tar "^6.1.2" which "^2.0.2" -node-hid@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" - dependencies: - bindings "^1.5.0" - node-addon-api "^3.0.2" - prebuild-install "^6.0.0" - -node-hid@^2.1.2: +node-hid@2.1.2, node-hid@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.2.tgz#3145fa86ed4336a402a71e9f372c54213b88797c" dependencies: @@ -12299,11 +12441,12 @@ nofilter@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== dependencies: - abbrev "1" + abbrev "^1.0.0" nopt@~1.0.10: version "1.0.10" @@ -13098,13 +13241,21 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -plist@^3.0.0, plist@^3.0.1: +plist@^3.0.0: version "3.0.5" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.5.tgz#2cbeb52d10e3cdccccf0c11a63a85d830970a987" dependencies: base64-js "^1.5.1" xmlbuilder "^9.0.7" +plist@^3.0.4, plist@^3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" + integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== + dependencies: + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" @@ -13359,7 +13510,7 @@ postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0. picocolors "^1.0.0" source-map-js "^1.0.2" -prebuild-install@^5.3.3, prebuild-install@^6.0.0, prebuild-install@^6.1.4, prebuild-install@^7.1.1: +prebuild-install@^5.3.3, prebuild-install@^6.1.4, prebuild-install@^7.1.1: version "6.1.4" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" dependencies: @@ -15310,9 +15461,10 @@ socks-proxy-agent@6.1.1: debug "^4.3.1" socks "^2.6.1" -socks-proxy-agent@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz#f6b5229cc0cbd6f2f202d9695f09d871e951c85e" +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== dependencies: agent-base "^6.0.2" debug "^4.3.3" @@ -15522,12 +15674,19 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.0, ssri@^8.0.1: +ssri@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" dependencies: minipass "^3.1.1" +ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -16104,6 +16263,18 @@ tar@^6.0.2, tar@^6.0.5, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.1.11: + version "6.1.14" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.14.tgz#e87926bec1cfe7c9e783a77a79f3e81c1cfa3b66" + integrity sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + tcp-port-used@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70" @@ -16785,12 +16956,26 @@ unique-filename@^1.1.1: dependencies: unique-slug "^2.0.0" +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + unique-slug@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" dependencies: imurmurhash "^0.1.4" +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + unique-stream@^2.0.2: version "2.3.1" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" @@ -17796,6 +17981,11 @@ xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" +xmlbuilder@^15.1.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" @@ -17866,7 +18056,7 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.9: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" @@ -17874,6 +18064,11 @@ yargs-parser@^21.0.0: version "21.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-parser@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394"