From 81ba5ca4103cf9fa9e664c62061f31580a7ae4d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=9C=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D1=87=D0=B8=D1=86?= Date: Mon, 4 Oct 2021 12:35:31 +0900 Subject: [PATCH] Upgrade to Electron 15 They fixed Let's Encrypt DST Root CA X3 certificate expiration for 12+ versions, see https://github.com/electron/electron/pull/31218 --- package.json | 7 +- src/main/index.js | 18 +++-- src/renderer/components/App.vue | 28 ++++--- src/renderer/index.js | 4 + yarn.lock | 129 +++++++++++++++++++------------- 5 files changed, 114 insertions(+), 72 deletions(-) diff --git a/package.json b/package.json index 4a7a924..befa317 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Print server for printing URLs on local printers", "author": "jbot ", "homepage": "https://github.com/vast-ru/electron-print-server", - "version": "0.5.0", + "version": "0.6.0", "license": "MIT", "scripts": { "dev": "electron-webpack dev", @@ -18,15 +18,16 @@ "source-map-support": "0.5.12" }, "devDependencies": { + "@electron/remote": "^2.0.1", "@types/express": "4.17.0", "axios": "~0.21.2", "babel-preset-flow": "^6.23.0", "body-parser": "1.19.0", "content-type": "~1.0.4", "debug": "4.1.1", - "electron": "9.4.0", + "electron": "15.1.0", "electron-builder": "20.44.4", - "electron-settings": "3.2.0", + "electron-settings": "^4.0.0", "electron-webpack": "2.7.2", "electron-webpack-vue": "2.3.0", "express": "4.17.1", diff --git a/src/main/index.js b/src/main/index.js index 65e9eb5..b82a915 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -1,4 +1,5 @@ // @flow +import * as remote from '@electron/remote/main'; import bodyParser from 'body-parser'; import axios from 'axios'; import contentType from 'content-type'; @@ -15,6 +16,8 @@ import tmp from 'tmp'; import { format as formatUrl } from 'url'; import packageJson from '../../package.json'; +remote.initialize(); + const d = debug('electron-print-server'); const isDevelopment = process.env.NODE_ENV !== 'production'; @@ -27,6 +30,7 @@ function createMainWindow() { const win = new BrowserWindow({ webPreferences: { nodeIntegration: true, + contextIsolation: false, }, show: false, title: 'Print server (version ' + packageJson.version + ')', @@ -36,6 +40,8 @@ function createMainWindow() { win.webContents.openDevTools(); } + remote.enable(win.webContents); + if (isDevelopment) { win.loadURL(`http://localhost:${process.env.ELECTRON_WEBPACK_WDS_PORT}`); } else { @@ -123,14 +129,14 @@ app.on('ready', () => { tray = createTray(); - if (settings.get('server.autostart')) { - const address = settings.get('server.ip'); - const port = settings.get('server.port'); + if (settings.getSync('server.autostart')) { + const address = settings.getSync('server.ip'); + const port = settings.getSync('server.port'); if (address && port) { startServer(address, port, { - useHttps: settings.get('server.https.enabled', false), - httpsCert: settings.get('server.https.cert', ''), - httpsCertKey: settings.get('server.https.certKey', ''), + useHttps: settings.getSync('server.https.enabled') || false, + httpsCert: settings.getSync('server.https.cert') || '', + httpsCertKey: settings.getSync('server.https.certKey') || '', }); } } diff --git a/src/renderer/components/App.vue b/src/renderer/components/App.vue index 844d396..f046ab4 100644 --- a/src/renderer/components/App.vue +++ b/src/renderer/components/App.vue @@ -68,17 +68,21 @@ import settings from 'electron-settings'; import flatten from 'lodash/flatten'; + const getSetting = (path, def) => { + return settings.hasSync(path) ? settings.getSync(path) : def; + }; + export default { data() { return { availableIps : [], - serverIp : settings.get('server.ip', null), - serverPort : settings.get('server.port', 3030), - serverHttps : settings.get('server.https.enabled', false), - httpsCert : settings.get('server.https.cert', ''), - httpsCertKey : settings.get('server.https.certKey', ''), + serverIp : getSetting('server.ip', null), + serverPort : getSetting('server.port', 3030), + serverHttps : getSetting('server.https.enabled', false), + httpsCert : getSetting('server.https.cert', ''), + httpsCertKey : getSetting('server.https.certKey', ''), serverState : '', - serverAutostart: settings.get('server.autostart', false), + serverAutostart: getSetting('server.autostart', false), availablePrinters: [], printer : null, @@ -112,22 +116,22 @@ }, watch: { serverIp(ip) { - settings.set('server.ip', ip); + settings.setSync('server.ip', ip); }, serverPort(port) { - settings.set('server.port', port); + settings.setSync('server.port', port); }, serverHttps(useHttps) { - settings.set('server.https.enabled', useHttps); + settings.setSync('server.https.enabled', useHttps); }, httpsCert(cert) { - settings.set('server.https.cert', cert); + settings.setSync('server.https.cert', cert); }, httpsCertKey(key) { - settings.set('server.https.certKey', key); + settings.setSync('server.https.certKey', key); }, serverAutostart(autostart) { - settings.set('server.autostart', autostart); + settings.setSync('server.autostart', autostart); }, }, methods: { diff --git a/src/renderer/index.js b/src/renderer/index.js index bae1b4d..afb0ef4 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1,6 +1,10 @@ +import { app } from '@electron/remote'; +import settings from 'electron-settings'; import Vue from 'vue'; import App from './components/App'; +settings.configure({ dir: app.getPath('userData') }); + Vue.config.devtools = false; Vue.config.productionTip = false; diff --git a/yarn.lock b/yarn.lock index c7ceaf9..e162f9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -750,14 +750,13 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" -"@electron/get@^1.0.1": - version "1.12.3" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.3.tgz#fa2723385c4b565a34c4c82f46087aa2a5fbf6d0" - integrity sha512-NFwSnVZQK7dhOYF1NQCt+HGqgL1aNdj0LUSx75uCqnZJqyiWCVdAMFV4b4/kC8HjUJAnsvdSEmjEt4G2qNQ9+Q== +"@electron/get@^1.13.0": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz#95c6bcaff4f9a505ea46792424f451efea89228c" + integrity sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ== dependencies: debug "^4.1.1" env-paths "^2.2.0" - filenamify "^4.1.0" fs-extra "^8.1.0" got "^9.6.0" progress "^2.0.3" @@ -767,6 +766,11 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" +"@electron/remote@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.1.tgz#810cbc595a21f0f94641eb2d7e8264063a3f84de" + integrity sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA== + "@posthtml/esm@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@posthtml/esm/-/esm-1.0.0.tgz#09bcb28a02438dcee22ad1970ca1d85a000ae0cf" @@ -846,11 +850,16 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*", "@types/node@^12.0.12": +"@types/node@*": version "12.19.15" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.15.tgz#0de7e978fb43db62da369db18ea088a63673c182" integrity sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw== +"@types/node@^14.6.2": + version "14.17.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.20.tgz#74cc80438fd0467dc4377ee5bbad89a886df3c10" + integrity sha512-gI5Sl30tmhXsqkNvopFydP7ASc4c2cLfGNQrVKN3X90ADFWFsPEsotm/8JHSUJQKTHbwowAHtcJPeyVhtKv0TQ== + "@types/range-parser@*": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" @@ -2014,11 +2023,6 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - coa@~1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" @@ -2931,13 +2935,17 @@ electron-publish@20.44.4: lazy-val "^1.0.4" mime "^2.4.4" -electron-settings@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/electron-settings/-/electron-settings-3.2.0.tgz#01461e153f95b6f18adbe0c360c70898eb0f43c3" - integrity sha512-7U+vDKd5Gch4Z9K6FjGq80eB3Anwz2GuPc2h/6hOiuvZrS1w+UNPcAA0oAU8G1s9sWAVEadCsr4ZJR6J4iTdzA== +electron-settings@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/electron-settings/-/electron-settings-4.0.2.tgz#26ef242397393e0e69119f6fb879fc2287d0f508" + integrity sha512-WnUlrnBsO784oXcag0ym+A3ySoIwonz5GhYFsWroMHVzslzmsP+81f/Fof41T9UrRUxuPPKiZPZMwGO+yvWChg== dependencies: - clone "^2.1.1" - jsonfile "^4.0.0" + lodash.get "^4.4.2" + lodash.has "^4.5.2" + lodash.set "^4.3.2" + lodash.unset "^4.5.2" + mkdirp "^1.0.4" + write-file-atomic "^3.0.3" electron-to-chromium@^1.2.7: version "1.3.84" @@ -3006,13 +3014,13 @@ electron-webpack@2.7.2: webpack-merge "^4.2.1" yargs "^13.2.4" -electron@9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-9.4.0.tgz#c3c607e3598226ddbaaff8babcdffa8bb2210936" - integrity sha512-hOC4q0jkb+UDYZRy8vrZ1IANnq+jznZnbkD62OEo06nU+hIbp2IrwDRBNuSLmQ3cwZMVir0WSIA1qEVK0PkzGA== +electron@15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-15.1.0.tgz#a57f6978b5e8ef1918429b8c62f918868258f5a3" + integrity sha512-QZJKZdrOG2G9lyOrDpCHh+arMrj7ZVVBulrukhNXwCeCEHgNLTVULEQzMOB9AVXUbIs+FthcddlMgcgpaErohw== dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" + "@electron/get" "^1.13.0" + "@types/node" "^14.6.2" extract-zip "^1.0.3" elliptic@^6.0.0: @@ -3377,20 +3385,6 @@ file-loader@^4.0.0: loader-utils "^1.2.2" schema-utils "^1.0.0" -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.2.0.tgz#c99716d676869585b3b5d328b3f06590d032e89f" - integrity sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.1" - trim-repeated "^1.0.0" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -4432,6 +4426,11 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + is-upper-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" @@ -4691,16 +4690,36 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.has@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" + integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= +lodash.unset@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.unset/-/lodash.unset-4.5.2.tgz#370d1d3e85b72a7e1b0cdf2d272121306f23e4ed" + integrity sha1-Nw0dPoW3Kn4bDN8tJyEhMG8j5O0= + lodash@4.17.21, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -5037,6 +5056,11 @@ mkdirp@0.5.x, mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.0, mkdirp@~0.5.1: dependencies: minimist "^1.2.5" +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -7134,13 +7158,6 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-outer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - style-loader@^0.23.1: version "0.23.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" @@ -7386,13 +7403,6 @@ toposort@^1.0.0: resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -7438,6 +7448,13 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -8011,6 +8028,16 @@ write-file-atomic@^2.0.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"