From ea14159dcc570c5c87e5e8910f5ef8f9d7bf6a03 Mon Sep 17 00:00:00 2001 From: Devin Binnie <52460000+devinbinnie@users.noreply.github.com> Date: Fri, 20 Aug 2021 04:08:22 -0400 Subject: [PATCH] [MM-36793][MM-37954] Upgrade to Electron v13.2.0 (#1707) * [MM-36793][MM-37954] Upgrade to Electron v13.2.0 * Update config.yml --- .circleci/config.yml | 2 +- package-lock.json | 574 ++++++++++++++++++----------- package.json | 16 +- src/main/views/webContentEvents.ts | 57 ++- src/main/windows/mainWindow.ts | 2 +- 5 files changed, 405 insertions(+), 246 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ef0a4cbd..2ffa638d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -449,7 +449,7 @@ workflows: branches: only: - /^release-\d+(\.\d+){1,2}(-rc.*)?/ - - pull/1695 + - MM-36793 - store_artifacts: # for master/PR builds diff --git a/package-lock.json b/package-lock.json index 4dc81b6d..fa59b7d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,11 +15,11 @@ "bootstrap-dark": "^1.0.3", "brace-expansion": "^2.0.0", "classnames": "^2.3.1", - "electron-context-menu": "^2.5.0", - "electron-devtools-installer": "^3.1.1", + "electron-context-menu": "3.1.1", + "electron-devtools-installer": "^3.2.0", "electron-is-dev": "^2.0.0", - "electron-log": "^4.3.2", - "electron-updater": "4.3.8", + "electron-log": "^4.4.1", + "electron-updater": "4.3.9", "font-awesome": "^4.7.0", "prop-types": "^15.6.2", "react": "^16.14.0", @@ -64,11 +64,11 @@ "cross-env": "^5.2.0", "css-loader": "^1.0.1", "devtron": "^1.4.0", - "electron": "12.0.1", + "electron": "13.2.1", "electron-builder": "22.11.7", "electron-connect": "^0.6.3", - "electron-mocha": "^10.0.0", - "electron-notarize": "^1.0.0", + "electron-mocha": "^10.1.0", + "electron-notarize": "^1.1.0", "eslint": "7.19.0", "eslint-import-resolver-webpack": "0.13.0", "eslint-plugin-babel": "5.3.1", @@ -88,7 +88,7 @@ "npm-run-all": "^4.1.5", "sass-loader": "^10.2.0", "shebang-loader": "^0.0.1", - "spectron": "^14.0.0", + "spectron": "^15.0.0", "style-loader": "^2.0.0", "typescript": "^4.3.4", "url-loader": "^1.1.2", @@ -5423,9 +5423,9 @@ "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, "node_modules/@types/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now==" }, "node_modules/@types/source-list-map": { "version": "0.1.2", @@ -7189,6 +7189,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, "engines": { "node": ">= 4.0.0" } @@ -8603,15 +8604,15 @@ } }, "node_modules/builder-util-runtime": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.3.tgz", - "integrity": "sha512-1Q2ReBqFblimF5g/TLg2+0M5Xzv0Ih5LxJ/BMWXvEy/e6pQKeeEpbkPMGsN6OiQgkygaZo5VXCXIjOkOQG5EoQ==", + "version": "8.7.5", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz", + "integrity": "sha512-fgUFHKtMNjdvH6PDRFntdIGUPgwZ69sXsAqEulCtoiqgWes5agrMq/Ud274zjJRTbckYh2PHh8/1CpFc6dpsbQ==", "dependencies": { "debug": "^4.3.2", "sax": "^1.2.4" }, "engines": { - "node": ">=8.2.5" + "node": ">=12.0.0" } }, "node_modules/builder-util-runtime/node_modules/debug": { @@ -8623,6 +8624,11 @@ }, "engines": { "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/builder-util/node_modules/7zip-bin": { @@ -12372,9 +12378,9 @@ } }, "node_modules/electron": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-12.0.1.tgz", - "integrity": "sha512-4bTfLSTmuFkMxq3RMyjd8DxuzbxI1Bde879XDrBA4kFWbKhZ3hfXqHXQz3129eCmcLre5odcNsWq7/xzyJilMA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-13.2.1.tgz", + "integrity": "sha512-/K0Uw+o3+phbHtrVL6qDFVJqmeRF6EIPwVeUHEH5R8JNy13f4X3RouKjQzVyY/Os8fEqYHGFONWhD6q6g750HQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -12601,9 +12607,9 @@ } }, "node_modules/electron-chromedriver": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-12.0.0.tgz", - "integrity": "sha512-zOs98o9+20Er8Q44z06h90VldwrJaoRCieW3Q8WkdDjA3cMRU5mlmm1kGDhPLMeYNuhq6e39aGMVH/IBFD97HQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-13.0.0.tgz", + "integrity": "sha512-fID1ms8wT7qNfoKkXHNpH0ZE8/Nclb5YmkF3O0w57OxsR8S9PxgE9CJAgaSGroxBgZ+ge1i2OU0Aq/WE/e/Neg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -12647,6 +12653,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/electron-connect": { @@ -12662,27 +12671,26 @@ } }, "node_modules/electron-context-menu": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-2.5.0.tgz", - "integrity": "sha512-kzvp8XUmbp2TG2hELJUl7Yjlq4Ag549JQu/C8mxvy1CmAU15UFmPC3bPdXMGE/e3xbi97shgxfttxeQ/6h4MoQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.1.1.tgz", + "integrity": "sha512-LJhwaKf6XHwk2LQ5SdwoGNODoA8lRwks9bbEeAqqMf4e3hsrT7pZtX6MaHKYNFZKxF14JjI/VR+VRjGvxmaQoA==", "dependencies": { "cli-truncate": "^2.1.0", - "electron-dl": "^3.1.0", - "electron-is-dev": "^1.2.0" + "electron-dl": "^3.2.1", + "electron-is-dev": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/electron-context-menu/node_modules/electron-is-dev": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", - "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" - }, "node_modules/electron-devtools-installer": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-3.1.1.tgz", - "integrity": "sha512-g2D4J6APbpsiIcnLkFMyKZ6bOpEJ0Ltcc2m66F7oKUymyGAt628OWeU9nRZoh1cNmUs/a6Cls2UfOmsZtE496Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-3.2.0.tgz", + "integrity": "sha512-t3UczsYugm4OAbqvdImMCImIMVdFzJAHgbwHpkl5jmfu1izVgUcP/mnrPqJIpEeCK1uZGpt+yHgWEN+9EwoYhQ==", "dependencies": { "rimraf": "^3.0.2", "semver": "^7.2.1", + "tslib": "^2.1.0", "unzip-crx-3": "^0.2.0" } }, @@ -12722,19 +12730,27 @@ "node": ">=10" } }, + "node_modules/electron-devtools-installer/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, "node_modules/electron-devtools-installer/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/electron-dl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.1.0.tgz", - "integrity": "sha512-nY3vvxX5w11+cFT6JkJwMHtH6dk5sPtjRtzjaj4NrS9CyYF3atvVt8yMfZtXruULU1JAuxEEf2B8O6YgXs9xsQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.2.1.tgz", + "integrity": "sha512-k5DFjocJlXbrjshO1zeWe/Gz7HkGwCgnehHPemiyzN2B/LfLlnbIX7sCj5F+huTwZ2l+nQehTI4IR37xvCn6FQ==", "dependencies": { "ext-name": "^5.0.0", "pupa": "^2.0.1", "unused-filename": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/electron-is-dev": { @@ -12743,23 +12759,23 @@ "integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==" }, "node_modules/electron-log": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.2.tgz", - "integrity": "sha512-PJPWE8JDzQ137UlxX9K917nI8GTcwgiJpE2PMPXZo+I6C4AaZU+JWQ3lW5NjQ1Lg8Qk8qbze+Ly0yAiqhbmpeA==" + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.1.tgz", + "integrity": "sha512-nK/DwxPLtwWbggPCm27eMQhYHc3gzoZ+cokBK99diO4WsZJKrv5l44EUW8mRfWpmC8ZubnMyp6GTUIJyTc9AJA==" }, "node_modules/electron-mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/electron-mocha/-/electron-mocha-10.0.0.tgz", - "integrity": "sha512-eCIAPlhSi10wPcwYnZWxRAKoEGKX+UQyco3gjWcWPD6csfwCLT5CTvA1bId8Q8Gb0ss8Rj8y8kuK9eLCJtr0DQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/electron-mocha/-/electron-mocha-10.1.0.tgz", + "integrity": "sha512-P+Eew2rgjFw99kLjiqAchoFA4mpsw60lwy34LTmWpmOhweMc6EoLJqeDZigGXiHOSDw+HT/imdChYgVexVuJEQ==", "dev": true, "dependencies": { "ansi-colors": "^4.1.1", "electron-window": "^0.8.0", - "fs-extra": "^9.0.1", - "log-symbols": "^4.0.0", - "mocha": "^8.2.1", + "fs-extra": "^10.0.0", + "log-symbols": "^4.1.0", + "mocha": "^8.4.0", "which": "^2.0.2", - "yargs": "^16.1.1" + "yargs": "^16.2.0" }, "bin": { "electron-mocha": "bin/electron-mocha" @@ -12783,6 +12799,34 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/electron-mocha/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/electron-mocha/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/electron-mocha/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -12825,6 +12869,20 @@ "node": ">=10" } }, + "node_modules/electron-mocha/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/electron-mocha/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -12846,6 +12904,18 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/electron-mocha/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/electron-mocha/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -12858,6 +12928,22 @@ "node": ">=10" } }, + "node_modules/electron-mocha/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/electron-mocha/node_modules/mocha": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", @@ -12971,6 +13057,15 @@ "node": ">=10" } }, + "node_modules/electron-mocha/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/electron-mocha/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -13037,9 +13132,9 @@ } }, "node_modules/electron-notarize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.0.0.tgz", - "integrity": "sha512-dsib1IAquMn0onCrNMJ6gtEIZn/azG8hZMCYOuZIMVMUeRMgBYHK1s5TK9P8xAcrAjh/2aN5WYHzgVSWX314og==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.1.0.tgz", + "integrity": "sha512-Dmp/jm2y3PTcjmjVe+jCT0sjsbBfbNuk7GOPtduZce2iae1hgAPnlNErk6x70TalsGIL5Ip3liSryqde/6eB5w==", "dev": true, "dependencies": { "debug": "^4.1.1", @@ -13185,17 +13280,18 @@ "dev": true }, "node_modules/electron-updater": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.8.tgz", - "integrity": "sha512-/tB82Ogb2LqaXrUzAD8waJC+TZV52Pr0Znfj7w+i4D+jA2GgrKFI3Pxjp+36y9FcBMQz7kYsMHcB6c5zBJao+A==", + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.9.tgz", + "integrity": "sha512-LCNfedSwZfS4Hza+pDyPR05LqHtGorCStaBgVpRnfKxOlZcvpYEX0AbMeH5XUtbtGRoH2V8osbbf2qKPNb7AsA==", "dependencies": { - "@types/semver": "^7.3.4", - "builder-util-runtime": "8.7.3", - "fs-extra": "^9.1.0", - "js-yaml": "^4.0.0", + "@types/semver": "^7.3.5", + "builder-util-runtime": "8.7.5", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", "lazy-val": "^1.0.4", + "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", - "semver": "^7.3.4" + "semver": "^7.3.5" } }, "node_modules/electron-updater/node_modules/argparse": { @@ -13203,6 +13299,19 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "node_modules/electron-updater/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/electron-updater/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -13214,6 +13323,17 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/electron-updater/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/electron-updater/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -13239,6 +13359,14 @@ "node": ">=10" } }, + "node_modules/electron-updater/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/electron-updater/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -15389,6 +15517,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -15403,6 +15532,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -15414,6 +15544,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, "engines": { "node": ">= 10.0.0" } @@ -17870,6 +18001,18 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -18528,6 +18671,11 @@ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=" + }, "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", @@ -18569,55 +18717,6 @@ "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=", "dev": true }, - "node_modules/log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/logalot": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", @@ -24492,21 +24591,21 @@ } }, "node_modules/spectron": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/spectron/-/spectron-14.0.0.tgz", - "integrity": "sha512-88GM7D1eLiTxjByjtY7lxU7CJcQ92kX1x0WfnADaIXqqYRLbI1KlIWxXz1Xm5UxuMJh5N847K0NONG49mvZtuw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/spectron/-/spectron-15.0.0.tgz", + "integrity": "sha512-eErHqymkEVb6H+LPZQoDYvWEv93o3nhxL7HXXdmC61ncV0jBckh8x3Qt6j+As2c1n0C/hKG9A2H1NnwGwD6agg==", "dev": true, "hasInstallScript": true, "dependencies": { - "@electron/remote": "^1.0.4", + "@electron/remote": "^1.1.0", "dev-null": "^0.1.1", - "electron-chromedriver": "^12.0.0", + "electron-chromedriver": "^13.0.0", "got": "^11.8.0", "split": "^1.0.1", "webdriverio": "^6.9.1" }, "engines": { - "node": ">=10.12.0" + "node": ">=12.20.0" } }, "node_modules/spectron/node_modules/@sindresorhus/is": { @@ -32275,9 +32374,9 @@ "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" }, "@types/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now==" }, "@types/source-list-map": { "version": "0.1.2", @@ -33699,7 +33798,8 @@ "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true }, "atob": { "version": "2.1.2", @@ -34989,9 +35089,9 @@ } }, "builder-util-runtime": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.3.tgz", - "integrity": "sha512-1Q2ReBqFblimF5g/TLg2+0M5Xzv0Ih5LxJ/BMWXvEy/e6pQKeeEpbkPMGsN6OiQgkygaZo5VXCXIjOkOQG5EoQ==", + "version": "8.7.5", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz", + "integrity": "sha512-fgUFHKtMNjdvH6PDRFntdIGUPgwZ69sXsAqEulCtoiqgWes5agrMq/Ud274zjJRTbckYh2PHh8/1CpFc6dpsbQ==", "requires": { "debug": "^4.3.2", "sax": "^1.2.4" @@ -37913,9 +38013,9 @@ } }, "electron": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-12.0.1.tgz", - "integrity": "sha512-4bTfLSTmuFkMxq3RMyjd8DxuzbxI1Bde879XDrBA4kFWbKhZ3hfXqHXQz3129eCmcLre5odcNsWq7/xzyJilMA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-13.2.1.tgz", + "integrity": "sha512-/K0Uw+o3+phbHtrVL6qDFVJqmeRF6EIPwVeUHEH5R8JNy13f4X3RouKjQzVyY/Os8fEqYHGFONWhD6q6g750HQ==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -38081,9 +38181,9 @@ } }, "electron-chromedriver": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-12.0.0.tgz", - "integrity": "sha512-zOs98o9+20Er8Q44z06h90VldwrJaoRCieW3Q8WkdDjA3cMRU5mlmm1kGDhPLMeYNuhq6e39aGMVH/IBFD97HQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-13.0.0.tgz", + "integrity": "sha512-fID1ms8wT7qNfoKkXHNpH0ZE8/Nclb5YmkF3O0w57OxsR8S9PxgE9CJAgaSGroxBgZ+ge1i2OU0Aq/WE/e/Neg==", "dev": true, "requires": { "@electron/get": "^1.12.4", @@ -38126,29 +38226,23 @@ } }, "electron-context-menu": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-2.5.0.tgz", - "integrity": "sha512-kzvp8XUmbp2TG2hELJUl7Yjlq4Ag549JQu/C8mxvy1CmAU15UFmPC3bPdXMGE/e3xbi97shgxfttxeQ/6h4MoQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-3.1.1.tgz", + "integrity": "sha512-LJhwaKf6XHwk2LQ5SdwoGNODoA8lRwks9bbEeAqqMf4e3hsrT7pZtX6MaHKYNFZKxF14JjI/VR+VRjGvxmaQoA==", "requires": { "cli-truncate": "^2.1.0", - "electron-dl": "^3.1.0", - "electron-is-dev": "^1.2.0" - }, - "dependencies": { - "electron-is-dev": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.2.0.tgz", - "integrity": "sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==" - } + "electron-dl": "^3.2.1", + "electron-is-dev": "^2.0.0" } }, "electron-devtools-installer": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-3.1.1.tgz", - "integrity": "sha512-g2D4J6APbpsiIcnLkFMyKZ6bOpEJ0Ltcc2m66F7oKUymyGAt628OWeU9nRZoh1cNmUs/a6Cls2UfOmsZtE496Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/electron-devtools-installer/-/electron-devtools-installer-3.2.0.tgz", + "integrity": "sha512-t3UczsYugm4OAbqvdImMCImIMVdFzJAHgbwHpkl5jmfu1izVgUcP/mnrPqJIpEeCK1uZGpt+yHgWEN+9EwoYhQ==", "requires": { "rimraf": "^3.0.2", "semver": "^7.2.1", + "tslib": "^2.1.0", "unzip-crx-3": "^0.2.0" }, "dependencies": { @@ -38176,6 +38270,11 @@ "lru-cache": "^6.0.0" } }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -38184,9 +38283,9 @@ } }, "electron-dl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.1.0.tgz", - "integrity": "sha512-nY3vvxX5w11+cFT6JkJwMHtH6dk5sPtjRtzjaj4NrS9CyYF3atvVt8yMfZtXruULU1JAuxEEf2B8O6YgXs9xsQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-3.2.1.tgz", + "integrity": "sha512-k5DFjocJlXbrjshO1zeWe/Gz7HkGwCgnehHPemiyzN2B/LfLlnbIX7sCj5F+huTwZ2l+nQehTI4IR37xvCn6FQ==", "requires": { "ext-name": "^5.0.0", "pupa": "^2.0.1", @@ -38199,23 +38298,23 @@ "integrity": "sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA==" }, "electron-log": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.3.2.tgz", - "integrity": "sha512-PJPWE8JDzQ137UlxX9K917nI8GTcwgiJpE2PMPXZo+I6C4AaZU+JWQ3lW5NjQ1Lg8Qk8qbze+Ly0yAiqhbmpeA==" + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.1.tgz", + "integrity": "sha512-nK/DwxPLtwWbggPCm27eMQhYHc3gzoZ+cokBK99diO4WsZJKrv5l44EUW8mRfWpmC8ZubnMyp6GTUIJyTc9AJA==" }, "electron-mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/electron-mocha/-/electron-mocha-10.0.0.tgz", - "integrity": "sha512-eCIAPlhSi10wPcwYnZWxRAKoEGKX+UQyco3gjWcWPD6csfwCLT5CTvA1bId8Q8Gb0ss8Rj8y8kuK9eLCJtr0DQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/electron-mocha/-/electron-mocha-10.1.0.tgz", + "integrity": "sha512-P+Eew2rgjFw99kLjiqAchoFA4mpsw60lwy34LTmWpmOhweMc6EoLJqeDZigGXiHOSDw+HT/imdChYgVexVuJEQ==", "dev": true, "requires": { "ansi-colors": "^4.1.1", "electron-window": "^0.8.0", - "fs-extra": "^9.0.1", - "log-symbols": "^4.0.0", - "mocha": "^8.2.1", + "fs-extra": "^10.0.0", + "log-symbols": "^4.1.0", + "mocha": "^8.4.0", "which": "^2.0.2", - "yargs": "^16.1.1" + "yargs": "^16.2.0" }, "dependencies": { "ansi-colors": { @@ -38230,6 +38329,27 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -38263,6 +38383,17 @@ "path-exists": "^4.0.0" } }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -38278,6 +38409,16 @@ "argparse": "^2.0.1" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -38287,6 +38428,16 @@ "p-locate": "^5.0.0" } }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, "mocha": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", @@ -38374,6 +38525,12 @@ "has-flag": "^4.0.0" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -38424,9 +38581,9 @@ } }, "electron-notarize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.0.0.tgz", - "integrity": "sha512-dsib1IAquMn0onCrNMJ6gtEIZn/azG8hZMCYOuZIMVMUeRMgBYHK1s5TK9P8xAcrAjh/2aN5WYHzgVSWX314og==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.1.0.tgz", + "integrity": "sha512-Dmp/jm2y3PTcjmjVe+jCT0sjsbBfbNuk7GOPtduZce2iae1hgAPnlNErk6x70TalsGIL5Ip3liSryqde/6eB5w==", "dev": true, "requires": { "debug": "^4.1.1", @@ -38534,17 +38691,18 @@ "dev": true }, "electron-updater": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.8.tgz", - "integrity": "sha512-/tB82Ogb2LqaXrUzAD8waJC+TZV52Pr0Znfj7w+i4D+jA2GgrKFI3Pxjp+36y9FcBMQz7kYsMHcB6c5zBJao+A==", + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.9.tgz", + "integrity": "sha512-LCNfedSwZfS4Hza+pDyPR05LqHtGorCStaBgVpRnfKxOlZcvpYEX0AbMeH5XUtbtGRoH2V8osbbf2qKPNb7AsA==", "requires": { - "@types/semver": "^7.3.4", - "builder-util-runtime": "8.7.3", - "fs-extra": "^9.1.0", - "js-yaml": "^4.0.0", + "@types/semver": "^7.3.5", + "builder-util-runtime": "8.7.5", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", "lazy-val": "^1.0.4", + "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", - "semver": "^7.3.4" + "semver": "^7.3.5" }, "dependencies": { "argparse": { @@ -38552,6 +38710,16 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -38560,6 +38728,15 @@ "argparse": "^2.0.1" } }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -38576,6 +38753,11 @@ "lru-cache": "^6.0.0" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -40350,6 +40532,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -40361,6 +40544,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" @@ -40369,7 +40553,8 @@ "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true } } }, @@ -42317,6 +42502,12 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -42858,6 +43049,11 @@ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=" + }, "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", @@ -42899,42 +43095,6 @@ "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=", "dev": true }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "logalot": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", @@ -47700,14 +47860,14 @@ } }, "spectron": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/spectron/-/spectron-14.0.0.tgz", - "integrity": "sha512-88GM7D1eLiTxjByjtY7lxU7CJcQ92kX1x0WfnADaIXqqYRLbI1KlIWxXz1Xm5UxuMJh5N847K0NONG49mvZtuw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/spectron/-/spectron-15.0.0.tgz", + "integrity": "sha512-eErHqymkEVb6H+LPZQoDYvWEv93o3nhxL7HXXdmC61ncV0jBckh8x3Qt6j+As2c1n0C/hKG9A2H1NnwGwD6agg==", "dev": true, "requires": { - "@electron/remote": "^1.0.4", + "@electron/remote": "^1.1.0", "dev-null": "^0.1.1", - "electron-chromedriver": "^12.0.0", + "electron-chromedriver": "^13.0.0", "got": "^11.8.0", "split": "^1.0.1", "webdriverio": "^6.9.1" diff --git a/package.json b/package.json index 9989f07a..88e36cc9 100644 --- a/package.json +++ b/package.json @@ -86,11 +86,11 @@ "cross-env": "^5.2.0", "css-loader": "^1.0.1", "devtron": "^1.4.0", - "electron": "12.0.1", + "electron": "13.2.1", "electron-builder": "22.11.7", "electron-connect": "^0.6.3", - "electron-mocha": "^10.0.0", - "electron-notarize": "^1.0.0", + "electron-mocha": "^10.1.0", + "electron-notarize": "^1.1.0", "eslint": "7.19.0", "eslint-import-resolver-webpack": "0.13.0", "eslint-plugin-babel": "5.3.1", @@ -110,7 +110,7 @@ "npm-run-all": "^4.1.5", "sass-loader": "^10.2.0", "shebang-loader": "^0.0.1", - "spectron": "^14.0.0", + "spectron": "^15.0.0", "style-loader": "^2.0.0", "typescript": "^4.3.4", "url-loader": "^1.1.2", @@ -126,11 +126,11 @@ "bootstrap-dark": "^1.0.3", "brace-expansion": "^2.0.0", "classnames": "^2.3.1", - "electron-context-menu": "^2.5.0", - "electron-devtools-installer": "^3.1.1", + "electron-context-menu": "3.1.1", + "electron-devtools-installer": "^3.2.0", "electron-is-dev": "^2.0.0", - "electron-log": "^4.3.2", - "electron-updater": "4.3.8", + "electron-log": "^4.4.1", + "electron-updater": "4.3.9", "font-awesome": "^4.7.0", "prop-types": "^15.6.2", "react": "^16.14.0", diff --git a/src/main/views/webContentEvents.ts b/src/main/views/webContentEvents.ts index 71cf7839..0f9aa9dd 100644 --- a/src/main/views/webContentEvents.ts +++ b/src/main/views/webContentEvents.ts @@ -89,72 +89,70 @@ const denyNewWindow = (event: Event, url: string) => { }; const generateNewWindowListener = (getServersFunction: () => TeamWithTabs[], spellcheck?: boolean) => { - return (event: Event, url: string) => { - const parsedURL = urlUtils.parseURL(url); + return (details: Electron.HandlerDetails): {action: 'deny' | 'allow'} => { + const parsedURL = urlUtils.parseURL(details.url); if (!parsedURL) { - event.preventDefault(); - log.warn(`Ignoring non-url ${url}`); - return; + log.warn(`Ignoring non-url ${details.url}`); + return {action: 'deny'}; } const configServers = getServersFunction(); // Dev tools case if (parsedURL.protocol === 'devtools:') { - return; + return {action: 'allow'}; } - event.preventDefault(); // Check for valid URL - if (!urlUtils.isValidURI(url)) { - return; + if (!urlUtils.isValidURI(details.url)) { + return {action: 'deny'}; } // Check for custom protocol if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:' && parsedURL.protocol !== `${scheme}:`) { - allowProtocolDialog.handleDialogEvent(parsedURL.protocol, url); - return; + allowProtocolDialog.handleDialogEvent(parsedURL.protocol, details.url); + return {action: 'deny'}; } const server = urlUtils.getView(parsedURL, configServers); if (!server) { - shell.openExternal(url); - return; + shell.openExternal(details.url); + return {action: 'deny'}; } // Public download links case // TODO: We might be handling different types differently in the future, for now // we are going to mimic the browser and just pop a new browser window for public links if (parsedURL.pathname.match(/^(\/api\/v[3-4]\/public)*\/files\//)) { - shell.openExternal(url); - return; + shell.openExternal(details.url); + return {action: 'deny'}; } // Image proxy case if (parsedURL.pathname.match(/^\/api\/v[3-4]\/image/)) { - shell.openExternal(url); - return; + shell.openExternal(details.url); + return {action: 'deny'}; } if (parsedURL.pathname.match(/^\/help\//)) { // Help links case // continue to open special case internal urls in default browser - shell.openExternal(url); - return; + shell.openExternal(details.url); + return {action: 'deny'}; } if (urlUtils.isTeamUrl(server.url, parsedURL, true)) { WindowManager.showMainWindow(parsedURL); - return; + return {action: 'deny'}; } if (urlUtils.isAdminUrl(server.url, parsedURL)) { - log.info(`${url} is an admin console page, preventing to open a new window`); - return; + log.info(`${details.url} is an admin console page, preventing to open a new window`); + return {action: 'deny'}; } - if (popupWindow && popupWindow.webContents.getURL() === url) { - log.info(`Popup window already open at provided url: ${url}`); - return; + if (popupWindow && popupWindow.webContents.getURL() === details.url) { + log.info(`Popup window already open at provided url: ${details.url}`); + return {action: 'deny'}; } // TODO: move popups to its own and have more than one. @@ -183,15 +181,17 @@ const generateNewWindowListener = (getServersFunction: () => TeamWithTabs[], spe } if (urlUtils.isManagedResource(server.url, parsedURL)) { - popupWindow.loadURL(url); + popupWindow.loadURL(details.url); } else { // currently changing the userAgent for popup windows to allow plugins to go through google's oAuth // should be removed once a proper oAuth2 implementation is setup. - popupWindow.loadURL(url, { + popupWindow.loadURL(details.url, { userAgent: composeUserAgent(), }); } } + + return {action: 'deny'}; }; }; @@ -226,7 +226,7 @@ export const addWebContentsEventListeners = (mmview: MattermostView, getServersF const spellcheck = mmview.options.webPreferences?.spellcheck; const newWindow = generateNewWindowListener(getServersFunction, spellcheck); - contents.on('new-window', newWindow); + contents.setWindowOpenHandler(newWindow); contents.on('page-title-updated', mmview.handleTitleUpdate); contents.on('page-favicon-updated', mmview.handleFaviconUpdate); @@ -237,7 +237,6 @@ export const addWebContentsEventListeners = (mmview: MattermostView, getServersF try { contents.removeListener('will-navigate', willNavigate as (e: Event, u: string) => void); contents.removeListener('did-start-navigation', didStartNavigation as (e: Event, u: string) => void); - contents.removeListener('new-window', newWindow); contents.removeListener('page-title-updated', mmview.handleTitleUpdate); contents.removeListener('page-favicon-updated', mmview.handleFaviconUpdate); contents.removeListener('update-target-url', mmview.handleUpdateTarget); diff --git a/src/main/windows/mainWindow.ts b/src/main/windows/mainWindow.ts index c0f6293f..e5aedbeb 100644 --- a/src/main/windows/mainWindow.ts +++ b/src/main/windows/mainWindow.ts @@ -71,7 +71,7 @@ function createMainWindow(config: CombinedConfig, options: {linuxAppIcon: string frame: !isFramelessWindow(), fullscreen: savedWindowState.fullscreen, titleBarStyle: 'hidden' as const, - trafficLightPosition: {x: 12, y: 24}, + trafficLightPosition: {x: 12, y: 12}, backgroundColor: '#fff', // prevents blurry text: https://electronjs.org/docs/faq#the-font-looks-blurry-what-is-this-and-what-can-i-do webPreferences: { nodeIntegration: process.env.NODE_ENV === 'test',