diff --git a/electron/js/window.js b/electron/js/window.js index 1edc9190f2..b1b9ba00e3 100644 --- a/electron/js/window.js +++ b/electron/js/window.js @@ -1,5 +1,5 @@ const { app, BrowserWindow, nativeImage, dialog, screen } = require('electron'); -const { is } = require('electron-util'); +const { is, fixPathForAsarUnpack } = require('electron-util'); const version = app.getVersion(); const path = require('path'); const windowStateKeeper = require('electron-window-state'); @@ -73,7 +73,7 @@ class WindowManager { height: DEFAULT_HEIGHT, webPreferences: { - preload: path.join(Util.electronPath(), 'js', 'preload.js'), + preload: fixPathForAsarUnpack(path.join(Util.electronPath(), 'js', 'preload.js')), }, }; diff --git a/package-lock.json b/package-lock.json index 0974d5ccea..3c56cb429b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "ISC", "dependencies": { - "@electron/remote": "^2.0.1", + "@electron/remote": "^2.0.8", "@sentry/browser": "^5.27.4", "amplitude-js": "^5.11.0", "array-move": "^2.2.2", @@ -483,7 +483,8 @@ }, "node_modules/@electron/remote": { "version": "2.0.8", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.8.tgz", + "integrity": "sha512-P10v3+iFCIvEPeYzTWWGwwHmqWnjoh8RYnbtZAb3RlQefy4guagzIwcWtfftABIfm6JJTNQf4WPSKWZOpLmHXw==", "peerDependencies": { "electron": ">= 13.0.0" } @@ -15740,6 +15741,8 @@ }, "@electron/remote": { "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.8.tgz", + "integrity": "sha512-P10v3+iFCIvEPeYzTWWGwwHmqWnjoh8RYnbtZAb3RlQefy4guagzIwcWtfftABIfm6JJTNQf4WPSKWZOpLmHXw==", "requires": {} }, "@electron/universal": { diff --git a/package.deps.json b/package.deps.json index 58204fa259..420d391777 100644 --- a/package.deps.json +++ b/package.deps.json @@ -18,14 +18,44 @@ "dist/*.node", "dist/workers/**/*", "!node_modules/**/*", - "node_modules/google-protobuf", - "node_modules/grpc-web", { - "from": "node_modules/lodash.isequal", - "to": "node_modules/lodash.isequal" + "from": "node_modules/google-protobuf", + "to": "node_modules/google-protobuf" + }, + { + "from": "node_modules/grpc-web", + "to": "node_modules/grpc-web" + }, + { + "from": "node_modules/lodash.isequal", + "to": "node_modules/lodash.isequal" }, { - "from": "node_modules/lodash.escaperegexp", - "to": "node_modules/lodash.escaperegexp" + "from": "node_modules/lodash.escaperegexp", + "to": "node_modules/lodash.escaperegexp" + }, + { + "from": "node_modules/read-chunk", + "to": "node_modules/read-chunk" + }, + { + "from": "node_modules/with-open-file", + "to": "node_modules/with-open-file" + }, + { + "from": "node_modules/@electron/remote", + "to": "node_modules/@electron/remote" + }, + { + "from": "node_modules/p-try", + "to": "node_modules/p-try" + }, + { + "from": "node_modules/p-finally", + "to": "node_modules/p-finally" + }, + { + "from": "node_modules/file-type", + "to": "node_modules/file-type" } -] +] \ No newline at end of file diff --git a/package.json b/package.json index 80d5c82b3d..4d4727870e 100644 --- a/package.json +++ b/package.json @@ -12,16 +12,16 @@ "start:electron-wait-webpack-win": "cross-env-shell wait-for-localhost $SERVER_PORT && npm run electron-win", "start:dev": "npm-run-all --parallel start:watch start:electron-wait-webpack", "start:dev-win": "npm-run-all --parallel start:watch start:electron-wait-webpack-win", - "build": "webpack --mode=production --node-env=production -p --config webpack.config.js", + "build": "webpack --mode=production --node-env=production --config webpack.config.js", "build:deps": "webpack --config webpack.node.config.js --stats detailed | grep 'node_modules' | sed 's/.*\\(node_modules\\/[^\\/[:space:]]\\{1,\\}\\)\\/.*/\\1/' | uniq | node save-node-deps.js", - "dist:mac": "webpack --mode=production --node-env=production -p && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` electron-builder --macos --arm64 --x64", - "dist:macarm": "webpack --mode=production --node-env=production -p && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` electron-builder --macos --arm64", - "dist:macamd": "webpack --mode=production --node-env=production -p && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` electron-builder --macos --x64", - "dist:win": "webpack --mode=production --node-env=production -p && electron-builder --windows", - "dist:linux": "webpack --mode=production --node-env=production -p && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` electron-builder --linux", - "publish:mac": "webpack --mode=production --node-env=production -p && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` BUILD_NUMBER=`git rev-parse --short HEAD` electron-builder --macos --publish always", - "publish:linux": "webpack --mode=production --node-env=production -p && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` BUILD_NUMBER=`git rev-parse --short HEAD` electron-builder --linux --publish always", - "publish:win": "webpack --mode=production --node-env=production -p && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` BUILD_NUMBER=`git rev-parse --short HEAD` electron-builder --windows --publish always", + "dist:mac": "npm run build:deps && webpack --progress --mode=production --node-env=production && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` electron-builder --macos --arm64 --x64", + "dist:macarm": "npm run build:deps && webpack --mode=production --node-env=production && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` electron-builder --macos --arm64", + "dist:macamd": "npm run build:deps && webpack --mode=production --node-env=production && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` electron-builder --macos --x64", + "dist:win": "npm run build:deps && webpack --mode=production --node-env=production && electron-builder --windows", + "dist:linux": "npm run build:deps && webpack --mode=production --node-env=production && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` electron-builder --linux", + "publish:mac": "webpack --mode=production --node-env=production && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` BUILD_NUMBER=`git rev-parse --short HEAD` electron-builder --macos --publish always", + "publish:linux": "webpack --mode=production --node-env=production && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` BUILD_NUMBER=`git rev-parse --short HEAD` electron-builder --linux --publish always", + "publish:win": "webpack --mode=production --node-env=production && DATE=`date '+%Y-%m-%d_%H_%M'` GIT_COMMIT=`git rev-parse --short HEAD` BUILD_NUMBER=`git rev-parse --short HEAD` electron-builder --windows --publish always", "postinstall": "npx patch-package && electron-builder install-app-deps" }, "repository": { @@ -74,7 +74,7 @@ "webpack-dev-server": "^4.9.3" }, "dependencies": { - "@electron/remote": "^2.0.1", + "@electron/remote": "^2.0.8", "@sentry/browser": "^5.27.4", "amplitude-js": "^5.11.0", "array-move": "^2.2.2", @@ -190,14 +190,18 @@ "dist/img/**/*", "dist/css/**/*", "dist/js/**/*", - "electron/icon*", - "electron/about.css", - "electron/about.html", - "electron/common.js", - "electron/about.js", + "electron/img/*", + "electron/about/*", + "electron/js/preload.js", "build", "node_modules/keytar/build/Release/keytar.node", - "node_modules/lodash.isequal" + "node_modules/lodash.isequal", + "node_modules/read-chunk", + "node_modules/@electron/remote", + "node_modules/with-open-file", + "node_modules/p-try", + "node_modules/p-finally", + "node_modules/file-type" ], "extraResources": [], "files": [ @@ -220,8 +224,14 @@ "dist/*.node", "dist/workers/**/*", "!node_modules/**/*", - "node_modules/google-protobuf", - "node_modules/grpc-web", + { + "from": "node_modules/google-protobuf", + "to": "node_modules/google-protobuf" + }, + { + "from": "node_modules/grpc-web", + "to": "node_modules/grpc-web" + }, { "from": "node_modules/lodash.isequal", "to": "node_modules/lodash.isequal" @@ -230,6 +240,30 @@ "from": "node_modules/lodash.escaperegexp", "to": "node_modules/lodash.escaperegexp" }, + { + "from": "node_modules/read-chunk", + "to": "node_modules/read-chunk" + }, + { + "from": "node_modules/with-open-file", + "to": "node_modules/with-open-file" + }, + { + "from": "node_modules/@electron/remote", + "to": "node_modules/@electron/remote" + }, + { + "from": "node_modules/p-try", + "to": "node_modules/p-try" + }, + { + "from": "node_modules/p-finally", + "to": "node_modules/p-finally" + }, + { + "from": "node_modules/file-type", + "to": "node_modules/file-type" + }, { "from": "node_modules/@electron", "to": "node_modules/@electron" @@ -258,10 +292,6 @@ "from": "node_modules/debug", "to": "node_modules/debug" }, - { - "from": "node_modules/electron", - "to": "node_modules/electron" - }, { "from": "node_modules/electron-dl", "to": "node_modules/electron-dl" diff --git a/save-node-deps.js b/save-node-deps.js index 2d0ff6477c..c43ec8e427 100644 --- a/save-node-deps.js +++ b/save-node-deps.js @@ -9,6 +9,8 @@ stdin.on('data', function(chunk) { data +=chunk; }); +let skipIds = [ 'electron' ]; + stdin.on('end', function() { let lines = data.split('\n').sort(); let baseDepsFile = fs.readFileSync('package.deps.json'); @@ -17,7 +19,9 @@ stdin.on('end', function() { let packageJSON = JSON.parse(packageFile); lines = [ ...new Set(lines) ]; - lines = lines.filter((el) => { return el && el.match(/^node_modules/); }).map((it) => { return { from: it, to: it }; }); + lines = lines.filter((el) => { + return el && el.match(/^node_modules/) && !el.match(new RegExp(`^node_modules/(${skipIds.join('|')})$`)); + }).map((it) => { return { from: it, to: it }; }); packageJSON.build.files = baseDepsJSON.concat(lines); let jsonS = JSON.stringify(packageJSON, null, '\t'); diff --git a/src/ts/app.tsx b/src/ts/app.tsx index a7cfae743f..2dbd124c2e 100644 --- a/src/ts/app.tsx +++ b/src/ts/app.tsx @@ -438,8 +438,8 @@ class App extends React.Component { const cb = () => { logo.css({ opacity: 0 }); - window.setTimeout(() => { loader.css({ opacity: 0 }); }, 500); - window.setTimeout(() => { loader.remove(); }, 1000); + window.setTimeout(() => { loader.css({ opacity: 0 }); }, 1000); + window.setTimeout(() => { loader.remove(); }, 1500); }; if (accountId) {