mirror of
https://github.com/Eugeny/tabby.git
synced 2024-11-22 03:26:09 +03:00
upgraded to electron 29
This commit is contained in:
parent
f523b114ca
commit
3f0b78edd0
@ -31,6 +31,8 @@ try {
|
|||||||
app.exit(1)
|
app.exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
process.mainModule = module
|
||||||
|
|
||||||
const application = new Application(configStore)
|
const application = new Application(configStore)
|
||||||
|
|
||||||
ipcMain.on('app:new-window', () => {
|
ipcMain.on('app:new-window', () => {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import * as glasstron from 'glasstron'
|
import * as glasstron from 'glasstron'
|
||||||
|
import { autoUpdater } from 'electron-updater'
|
||||||
import { Subject, Observable, debounceTime } from 'rxjs'
|
import { Subject, Observable, debounceTime } from 'rxjs'
|
||||||
import { BrowserWindow, app, ipcMain, Rectangle, Menu, screen, BrowserWindowConstructorOptions, TouchBar, nativeImage, WebContents } from 'electron'
|
import { BrowserWindow, app, ipcMain, Rectangle, Menu, screen, BrowserWindowConstructorOptions, TouchBar, nativeImage, WebContents } from 'electron'
|
||||||
import ElectronConfig = require('electron-config')
|
import ElectronConfig = require('electron-config')
|
||||||
@ -159,6 +159,7 @@ export class Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.setupWindowManagement()
|
this.setupWindowManagement()
|
||||||
|
this.setupUpdater()
|
||||||
|
|
||||||
this.ready = new Promise(resolve => {
|
this.ready = new Promise(resolve => {
|
||||||
const listener = event => {
|
const listener = event => {
|
||||||
@ -346,11 +347,8 @@ export class Window {
|
|||||||
this.send('host:window-focused')
|
this.send('host:window-focused')
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('ready', event => {
|
this.on('ready', () => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
this.window?.webContents.send('start', {
|
||||||
return
|
|
||||||
}
|
|
||||||
this.window.webContents.send('start', {
|
|
||||||
config: this.configStore,
|
config: this.configStore,
|
||||||
executable: app.getPath('exe'),
|
executable: app.getPath('exe'),
|
||||||
windowID: this.window.id,
|
windowID: this.window.id,
|
||||||
@ -359,42 +357,26 @@ export class Window {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-minimize', event => {
|
this.on('window-minimize', () => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
this.window?.minimize()
|
||||||
return
|
|
||||||
}
|
|
||||||
this.window.minimize()
|
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-set-bounds', (event, bounds) => {
|
this.on('window-set-bounds', (_, bounds) => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
this.window?.setBounds(bounds)
|
||||||
return
|
|
||||||
}
|
|
||||||
this.window.setBounds(bounds)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-set-always-on-top', (event, flag) => {
|
this.on('window-set-always-on-top', (_, flag) => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
this.window?.setAlwaysOnTop(flag)
|
||||||
return
|
|
||||||
}
|
|
||||||
this.window.setAlwaysOnTop(flag)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-set-vibrancy', (event, enabled, type) => {
|
this.on('window-set-vibrancy', (_, enabled, type) => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.setVibrancy(enabled, type)
|
this.setVibrancy(enabled, type)
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-set-window-controls-color', (event, theme) => {
|
this.on('window-set-window-controls-color', (_, theme) => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
const symbolColor: string = theme.foreground
|
const symbolColor: string = theme.foreground
|
||||||
this.window.setTitleBarOverlay(
|
this.window?.setTitleBarOverlay(
|
||||||
{
|
{
|
||||||
symbolColor: symbolColor,
|
symbolColor: symbolColor,
|
||||||
height: 32,
|
height: 32,
|
||||||
@ -403,32 +385,23 @@ export class Window {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-set-title', (event, title) => {
|
this.on('window-set-title', (_, title) => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
this.window?.setTitle(title)
|
||||||
return
|
|
||||||
}
|
|
||||||
this.window.setTitle(title)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-bring-to-front', event => {
|
this.on('window-bring-to-front', () => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
if (this.window?.isMinimized()) {
|
||||||
return
|
|
||||||
}
|
|
||||||
if (this.window.isMinimized()) {
|
|
||||||
this.window.restore()
|
this.window.restore()
|
||||||
}
|
}
|
||||||
this.present()
|
this.present()
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-close', event => {
|
this.on('window-close', () => {
|
||||||
if (!this.window || event.sender !== this.window.webContents) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.closing = true
|
this.closing = true
|
||||||
this.window.close()
|
this.window.close()
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-set-touch-bar', (_event, segments, selectedIndex) => {
|
this.on('window-set-touch-bar', (_, segments, selectedIndex) => {
|
||||||
this.touchBarControl.segments = segments.map(s => ({
|
this.touchBarControl.segments = segments.map(s => ({
|
||||||
label: s.label,
|
label: s.label,
|
||||||
icon: s.hasActivity ? activityIcon : undefined,
|
icon: s.hasActivity ? activityIcon : undefined,
|
||||||
@ -468,8 +441,46 @@ export class Window {
|
|||||||
this.window.setOpacity(opacity)
|
this.window.setOpacity(opacity)
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.on('window-set-progress-bar', (_event, value) => {
|
this.on('window-set-progress-bar', (_, value) => {
|
||||||
this.window.setProgressBar(value, { mode: value < 0 ? 'none' : 'normal' })
|
this.window?.setProgressBar(value, { mode: value < 0 ? 'none' : 'normal' })
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
on (event: string, listener: (...args: any[]) => void): void {
|
||||||
|
ipcMain.on(event, (e, ...args) => {
|
||||||
|
if (!this.window || e.sender !== this.window.webContents) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
listener(e, ...args)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private setupUpdater () {
|
||||||
|
autoUpdater.autoDownload = true
|
||||||
|
autoUpdater.autoInstallOnAppQuit = true
|
||||||
|
|
||||||
|
autoUpdater.on('update-available', () => {
|
||||||
|
this.send('updater:update-available')
|
||||||
|
})
|
||||||
|
|
||||||
|
autoUpdater.on('update-not-available', () => {
|
||||||
|
this.send('updater:update-not-available')
|
||||||
|
})
|
||||||
|
|
||||||
|
autoUpdater.on('error', err => {
|
||||||
|
this.send('updater:error', err)
|
||||||
|
})
|
||||||
|
|
||||||
|
autoUpdater.on('update-downloaded', () => {
|
||||||
|
this.send('updater:update-downloaded')
|
||||||
|
})
|
||||||
|
|
||||||
|
this.on('updater:check-for-updates', () => {
|
||||||
|
autoUpdater.checkForUpdates()
|
||||||
|
})
|
||||||
|
|
||||||
|
this.on('updater:quit-and-install', () => {
|
||||||
|
autoUpdater.quitAndInstall()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
"watch": "webpack --progress --color --watch"
|
"watch": "webpack --progress --color --watch"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron/remote": "2.0.10",
|
"@electron/remote": "^2",
|
||||||
"node-pty": "^1.0",
|
"node-pty": "^1.0",
|
||||||
"any-promise": "^1.3.0",
|
"any-promise": "^1.3.0",
|
||||||
"electron-config": "2.0.0",
|
"electron-config": "2.0.0",
|
||||||
@ -63,8 +63,7 @@
|
|||||||
"tabby-terminal": "*"
|
"tabby-terminal": "*"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"*/node-abi": "^2.20.0",
|
"*/node-abi": "^3",
|
||||||
"node-gyp": "^10.0.0",
|
"node-gyp": "^10.0.0"
|
||||||
"nan": "github:jkleinsc/nan#remove_accessor_signature"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ const config = {
|
|||||||
'electron-config': 'commonjs electron-config',
|
'electron-config': 'commonjs electron-config',
|
||||||
'electron-debug': 'commonjs electron-debug',
|
'electron-debug': 'commonjs electron-debug',
|
||||||
'electron-promise-ipc': 'commonjs electron-promise-ipc',
|
'electron-promise-ipc': 'commonjs electron-promise-ipc',
|
||||||
|
'electron-updater': 'commonjs electron-updater',
|
||||||
fs: 'commonjs fs',
|
fs: 'commonjs fs',
|
||||||
glasstron: 'commonjs glasstron',
|
glasstron: 'commonjs glasstron',
|
||||||
mz: 'commonjs mz',
|
mz: 'commonjs mz',
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
"@electron/remote@2.0.10":
|
"@electron/remote@^2":
|
||||||
version "2.0.10"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.0.10.tgz#133e2f607b1861ac249bd78b5abd1e961feed713"
|
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.1.2.tgz#52a97c8faa5b769155b649ef262f2f8c851776e6"
|
||||||
integrity sha512-3SFKKaQXcyWgwmibud+UqJl/XlHOgLcI3fwtB9pNelPSJAcTxocOJrF6FaxBIQaj1+R05Di6xuAswZpXAW7xhA==
|
integrity sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==
|
||||||
|
|
||||||
"@iarna/cli@^1.2.0":
|
"@iarna/cli@^1.2.0":
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
@ -2577,9 +2577,10 @@ mz@^2.7.0:
|
|||||||
object-assign "^4.0.1"
|
object-assign "^4.0.1"
|
||||||
thenify-all "^1.0.0"
|
thenify-all "^1.0.0"
|
||||||
|
|
||||||
nan@^2.17.0, "nan@github:jkleinsc/nan#remove_accessor_signature":
|
nan@^2.17.0:
|
||||||
version "2.16.0"
|
version "2.20.0"
|
||||||
resolved "https://codeload.github.com/jkleinsc/nan/tar.gz/6a2f95a6a2209d8aa7542fb18099fd808a802059"
|
resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3"
|
||||||
|
integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==
|
||||||
|
|
||||||
napi-build-utils@^1.0.1:
|
napi-build-utils@^1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
@ -2610,12 +2611,12 @@ nice-try@^1.0.4:
|
|||||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
||||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||||
|
|
||||||
node-abi@^2.20.0:
|
node-abi@^3:
|
||||||
version "2.30.1"
|
version "3.65.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"
|
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3"
|
||||||
integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==
|
integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^5.4.1"
|
semver "^7.3.5"
|
||||||
|
|
||||||
node-abi@^3.3.0:
|
node-abi@^3.3.0:
|
||||||
version "3.8.0"
|
version "3.8.0"
|
||||||
@ -3909,6 +3910,7 @@ strict-uri-encode@^2.0.0:
|
|||||||
integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
|
integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
|
||||||
|
|
||||||
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||||
|
name string-width-cjs
|
||||||
version "4.2.3"
|
version "4.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||||
@ -3986,6 +3988,7 @@ stringify-package@^1.0.0, stringify-package@^1.0.1:
|
|||||||
integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==
|
integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==
|
||||||
|
|
||||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1:
|
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1:
|
||||||
|
name strip-ansi-cjs
|
||||||
version "6.0.1"
|
version "6.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||||
@ -4432,6 +4435,7 @@ worker-farm@^1.6.0, worker-farm@^1.7.0:
|
|||||||
errno "~0.1.7"
|
errno "~0.1.7"
|
||||||
|
|
||||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
||||||
|
name wrap-ansi-cjs
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"css-loader": "^6.7.3",
|
"css-loader": "^6.7.3",
|
||||||
"deep-equal": "2.0.5",
|
"deep-equal": "2.0.5",
|
||||||
"electron": "^27.0.4",
|
"electron": "^29",
|
||||||
"electron-builder": "^24.6.4",
|
"electron-builder": "^24.6.4",
|
||||||
"electron-download": "^4.1.1",
|
"electron-download": "^4.1.1",
|
||||||
"electron-installer-snap": "^5.1.0",
|
"electron-installer-snap": "^5.1.0",
|
||||||
@ -55,7 +55,7 @@
|
|||||||
"lru-cache": "^6.0.0",
|
"lru-cache": "^6.0.0",
|
||||||
"macos-release": "^3.1.0",
|
"macos-release": "^3.1.0",
|
||||||
"ngx-toastr": "^16.0.2",
|
"ngx-toastr": "^16.0.2",
|
||||||
"node-abi": "^3.51.0",
|
"node-abi": "^3.65.0",
|
||||||
"npmlog": "6.0.2",
|
"npmlog": "6.0.2",
|
||||||
"npx": "^10.2.2",
|
"npx": "^10.2.2",
|
||||||
"patch-package": "^6.4.7",
|
"patch-package": "^6.4.7",
|
||||||
|
@ -16,7 +16,6 @@ export class ElectronService {
|
|||||||
clipboard: Clipboard
|
clipboard: Clipboard
|
||||||
globalShortcut: GlobalShortcut
|
globalShortcut: GlobalShortcut
|
||||||
screen: Screen
|
screen: Screen
|
||||||
remote = remote
|
|
||||||
process: any
|
process: any
|
||||||
autoUpdater: AutoUpdater
|
autoUpdater: AutoUpdater
|
||||||
powerSaveBlocker: PowerSaveBlocker
|
powerSaveBlocker: PowerSaveBlocker
|
||||||
@ -44,7 +43,6 @@ export class ElectronService {
|
|||||||
this.BrowserWindow = remote.BrowserWindow
|
this.BrowserWindow = remote.BrowserWindow
|
||||||
this.Menu = remote.Menu
|
this.Menu = remote.Menu
|
||||||
this.MenuItem = remote.MenuItem
|
this.MenuItem = remote.MenuItem
|
||||||
this.MenuItem = remote.MenuItem
|
|
||||||
this.nativeTheme = remote.nativeTheme
|
this.nativeTheme = remote.nativeTheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import type { AppUpdater } from 'electron-updater'
|
|
||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
|
||||||
@ -13,7 +12,6 @@ export class ElectronUpdaterService extends UpdaterService {
|
|||||||
private downloaded: Promise<boolean>
|
private downloaded: Promise<boolean>
|
||||||
private electronUpdaterAvailable = true
|
private electronUpdaterAvailable = true
|
||||||
private updateURL: string
|
private updateURL: string
|
||||||
private autoUpdater: AppUpdater
|
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
log: LogService,
|
log: LogService,
|
||||||
@ -30,32 +28,28 @@ export class ElectronUpdaterService extends UpdaterService {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.autoUpdater = electron.remote.require('electron-updater').autoUpdater
|
this.electron.ipcRenderer.on('updater:update-available', () => {
|
||||||
this.autoUpdater.autoDownload = true
|
|
||||||
this.autoUpdater.autoInstallOnAppQuit = false
|
|
||||||
|
|
||||||
this.autoUpdater.on('update-available', () => {
|
|
||||||
this.logger.info('Update available')
|
this.logger.info('Update available')
|
||||||
})
|
})
|
||||||
|
|
||||||
this.autoUpdater.on('update-not-available', () => {
|
this.electron.ipcRenderer.on('updater:update-not-available', () => {
|
||||||
this.logger.info('No updates')
|
this.logger.info('No updates')
|
||||||
})
|
})
|
||||||
|
|
||||||
this.autoUpdater.on('error', err => {
|
this.electron.ipcRenderer.on('updater:error', err => {
|
||||||
this.logger.error(err)
|
this.logger.error(err)
|
||||||
this.electronUpdaterAvailable = false
|
this.electronUpdaterAvailable = false
|
||||||
})
|
})
|
||||||
|
|
||||||
this.downloaded = new Promise<boolean>(resolve => {
|
this.downloaded = new Promise<boolean>(resolve => {
|
||||||
this.autoUpdater.once('update-downloaded', () => resolve(true))
|
this.electron.ipcRenderer.once('updater:update-downloaded', () => resolve(true))
|
||||||
})
|
})
|
||||||
|
|
||||||
config.ready$.toPromise().then(() => {
|
config.ready$.toPromise().then(() => {
|
||||||
if (config.store.enableAutomaticUpdates && this.electronUpdaterAvailable && !process.env.TABBY_DEV) {
|
if (config.store.enableAutomaticUpdates && this.electronUpdaterAvailable && !process.env.TABBY_DEV) {
|
||||||
this.logger.debug('Checking for updates')
|
this.logger.debug('Checking for updates')
|
||||||
try {
|
try {
|
||||||
this.autoUpdater.checkForUpdates()
|
this.electron.ipcRenderer.send('updater:check-for-updates')
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.electronUpdaterAvailable = false
|
this.electronUpdaterAvailable = false
|
||||||
this.logger.info('Electron updater unavailable, falling back', e)
|
this.logger.info('Electron updater unavailable, falling back', e)
|
||||||
@ -82,26 +76,26 @@ export class ElectronUpdaterService extends UpdaterService {
|
|||||||
reject(err)
|
reject(err)
|
||||||
}
|
}
|
||||||
cancel = () => {
|
cancel = () => {
|
||||||
this.autoUpdater.off('error', onError)
|
this.electron.ipcRenderer.off('updater:error', onError)
|
||||||
this.autoUpdater.off('update-not-available', onNoUpdate)
|
this.electron.ipcRenderer.off('updater:update-not-available', onNoUpdate)
|
||||||
this.autoUpdater.off('update-available', onUpdate)
|
this.electron.ipcRenderer.off('updater:update-available', onUpdate)
|
||||||
}
|
}
|
||||||
this.autoUpdater.on('error', onError)
|
this.electron.ipcRenderer.on('updater:error', onError)
|
||||||
this.autoUpdater.on('update-not-available', onNoUpdate)
|
this.electron.ipcRenderer.on('updater:update-not-available', onNoUpdate)
|
||||||
this.autoUpdater.on('update-available', onUpdate)
|
this.electron.ipcRenderer.on('updater:update-available', onUpdate)
|
||||||
try {
|
try {
|
||||||
this.autoUpdater.checkForUpdates()
|
this.electron.ipcRenderer.send('updater:check-for-updates')
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.electronUpdaterAvailable = false
|
this.electronUpdaterAvailable = false
|
||||||
this.logger.info('Electron updater unavailable, falling back', e)
|
this.logger.info('Electron updater unavailable, falling back', e)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
this.autoUpdater.on('update-available', () => {
|
this.electron.ipcRenderer.on('updater:update-available', () => {
|
||||||
this.logger.info('Update available')
|
this.logger.info('Update available')
|
||||||
})
|
})
|
||||||
|
|
||||||
this.autoUpdater.once('update-not-available', () => {
|
this.electron.ipcRenderer.once('updater:update-not-available', () => {
|
||||||
this.logger.info('No updates')
|
this.logger.info('No updates')
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -138,7 +132,7 @@ export class ElectronUpdaterService extends UpdaterService {
|
|||||||
},
|
},
|
||||||
)).response === 0) {
|
)).response === 0) {
|
||||||
await this.downloaded
|
await this.downloaded
|
||||||
this.autoUpdater.quitAndInstall()
|
this.electron.ipcRenderer.send('updater:quit-and-install')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,3 @@ untildify@^4.0.0:
|
|||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
|
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
|
||||||
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
|
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
|
||||||
|
|
||||||
xterm-addon-web-links@^0.7.0:
|
|
||||||
version "0.7.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.7.0.tgz#dceac36170605f9db10a01d716bd83ee38f65c17"
|
|
||||||
integrity sha512-6PqoqzzPwaeSq22skzbvyboDvSnYk5teUYEoKBwMYvhbkwOQkemZccjWHT5FnNA8o1aInTc4PRYAl4jjPucCKA==
|
|
||||||
|
@ -9,15 +9,22 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
ipv6 "*"
|
ipv6 "*"
|
||||||
|
|
||||||
"@types/node@*", "@types/node@20.3.1":
|
"@types/node@*":
|
||||||
|
version "22.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b"
|
||||||
|
integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==
|
||||||
|
dependencies:
|
||||||
|
undici-types "~6.13.0"
|
||||||
|
|
||||||
|
"@types/node@20.3.1":
|
||||||
version "20.3.1"
|
version "20.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
|
||||||
integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
|
integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
|
||||||
|
|
||||||
"@types/ssh2-streams@*":
|
"@types/ssh2-streams@*":
|
||||||
version "0.1.8"
|
version "0.1.12"
|
||||||
resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.8.tgz#142af404dae059931aea7fcd1511b5478964feb6"
|
resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.12.tgz#e68795ba2bf01c76b93f9c9809e1f42f0eaaec5f"
|
||||||
integrity sha512-I7gixRPUvVIyJuCEvnmhr3KvA2dC0639kKswqD4H5b4/FOcnPtNU+qWLiXdKIqqX9twUvi5j0U1mwKE5CUsrfA==
|
integrity sha512-Sy8tpEmCce4Tq0oSOYdfqaBpA3hDM8SoxoFh5vzFsu2oL+znzGz8oVWW7xb4K920yYMUY+PIG31qZnFMfPWNCg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
@ -337,6 +344,11 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
|||||||
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||||
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
||||||
|
|
||||||
|
undici-types@~6.13.0:
|
||||||
|
version "6.13.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5"
|
||||||
|
integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==
|
||||||
|
|
||||||
winston@0.8.x:
|
winston@0.8.x:
|
||||||
version "0.8.3"
|
version "0.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0"
|
resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0"
|
||||||
|
55
yarn.lock
55
yarn.lock
@ -863,10 +863,12 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe"
|
||||||
integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
|
integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==
|
||||||
|
|
||||||
"@types/node@^18.11.18":
|
"@types/node@^20.9.0":
|
||||||
version "18.17.12"
|
version "20.14.14"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.12.tgz#c6bd7413a13e6ad9cfb7e97dd5c4e904c1821e50"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.14.tgz#6b655d4a88623b0edb98300bb9dd2107225f885e"
|
||||||
integrity sha512-d6xjC9fJ/nSnfDeU0AMDsaJyb1iHsqCSOdi84w4u+SlN/UgQdY5tRhpMzaFYsI4mnpvgTivEaQd0yOUhAtOnEQ==
|
integrity sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==
|
||||||
|
dependencies:
|
||||||
|
undici-types "~5.26.4"
|
||||||
|
|
||||||
"@types/parse5@^5":
|
"@types/parse5@^5":
|
||||||
version "5.0.3"
|
version "5.0.3"
|
||||||
@ -2505,13 +2507,13 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||||
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||||
|
|
||||||
cpu-features@~0.0.8:
|
cpu-features@~0.0.9:
|
||||||
version "0.0.8"
|
version "0.0.10"
|
||||||
resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.8.tgz#a2d464b023b8ad09004c8cdca23b33f192f63546"
|
resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.10.tgz#9aae536db2710c7254d7ed67cb3cbc7d29ad79c5"
|
||||||
integrity sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==
|
integrity sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==
|
||||||
dependencies:
|
dependencies:
|
||||||
buildcheck "~0.0.6"
|
buildcheck "~0.0.6"
|
||||||
nan "^2.17.0"
|
nan "^2.19.0"
|
||||||
|
|
||||||
crc@^3.8.0:
|
crc@^3.8.0:
|
||||||
version "3.8.0"
|
version "3.8.0"
|
||||||
@ -3071,13 +3073,13 @@ electron-to-chromium@^1.4.284:
|
|||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz#0e039de59135f44ab9a8ec9025e53a9135eba11f"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz#0e039de59135f44ab9a8ec9025e53a9135eba11f"
|
||||||
integrity sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ==
|
integrity sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ==
|
||||||
|
|
||||||
electron@^27.0.4:
|
electron@^29:
|
||||||
version "27.1.0"
|
version "29.4.5"
|
||||||
resolved "https://registry.yarnpkg.com/electron/-/electron-27.1.0.tgz#d759885e552d7d926526cfc433ab312796f74a9a"
|
resolved "https://registry.yarnpkg.com/electron/-/electron-29.4.5.tgz#b83bbeee6fc722dbbaab30d3a6bc8e982c9ab98d"
|
||||||
integrity sha512-XPdJiO475QJ8cx59/goWNNWnlV0vab+Ut3occymos7VDxkHV5mFrlW6tcGi+M3bW6gBfwpJocWMng8tw542vww==
|
integrity sha512-DlEuzGbWBYl1Qr0qUYgNZdoixJg4YGHy2HC6fkRjSXSlb01UrQ5ORi8hNLzelzyYx8rNQyyE3zDUuk9EnZwYuA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@electron/get" "^2.0.0"
|
"@electron/get" "^2.0.0"
|
||||||
"@types/node" "^18.11.18"
|
"@types/node" "^20.9.0"
|
||||||
extract-zip "^2.0.1"
|
extract-zip "^2.0.1"
|
||||||
|
|
||||||
elliptic@^6.5.3:
|
elliptic@^6.5.3:
|
||||||
@ -5983,7 +5985,7 @@ mute-stream@~0.0.4:
|
|||||||
resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz"
|
resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz"
|
||||||
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
|
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
|
||||||
|
|
||||||
nan@2.17.0, nan@^2.17.0:
|
nan@2.17.0, nan@^2.18.0, nan@^2.19.0:
|
||||||
version "2.17.0"
|
version "2.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb"
|
resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb"
|
||||||
integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
|
integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
|
||||||
@ -6028,10 +6030,10 @@ no-case@^3.0.4:
|
|||||||
lower-case "^2.0.2"
|
lower-case "^2.0.2"
|
||||||
tslib "^2.0.3"
|
tslib "^2.0.3"
|
||||||
|
|
||||||
node-abi@^3.0.0, node-abi@^3.51.0:
|
node-abi@^3.0.0, node-abi@^3.65.0:
|
||||||
version "3.51.0"
|
version "3.65.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.51.0.tgz#970bf595ef5a26a271307f8a4befa02823d4e87d"
|
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3"
|
||||||
integrity sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==
|
integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^7.3.5"
|
semver "^7.3.5"
|
||||||
|
|
||||||
@ -8219,15 +8221,15 @@ sprintf-js@~1.0.2:
|
|||||||
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
|
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
|
||||||
|
|
||||||
ssh2@^1.14.0:
|
ssh2@^1.14.0:
|
||||||
version "1.14.0"
|
version "1.15.0"
|
||||||
resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.14.0.tgz#8f68440e1b768b66942c9e4e4620b2725b3555bb"
|
resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b"
|
||||||
integrity sha512-AqzD1UCqit8tbOKoj6ztDDi1ffJZ2rV2SwlgrVVrHPkV5vWqGJOVp5pmtj18PunkPJAuKQsnInyKV+/Nb2bUnA==
|
integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==
|
||||||
dependencies:
|
dependencies:
|
||||||
asn1 "^0.2.6"
|
asn1 "^0.2.6"
|
||||||
bcrypt-pbkdf "^1.0.2"
|
bcrypt-pbkdf "^1.0.2"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
cpu-features "~0.0.8"
|
cpu-features "~0.0.9"
|
||||||
nan "^2.17.0"
|
nan "^2.18.0"
|
||||||
|
|
||||||
sshpk@^1.7.0:
|
sshpk@^1.7.0:
|
||||||
version "1.16.1"
|
version "1.16.1"
|
||||||
@ -8926,6 +8928,11 @@ unbox-primitive@^1.0.2:
|
|||||||
has-symbols "^1.0.3"
|
has-symbols "^1.0.3"
|
||||||
which-boxed-primitive "^1.0.2"
|
which-boxed-primitive "^1.0.2"
|
||||||
|
|
||||||
|
undici-types@~5.26.4:
|
||||||
|
version "5.26.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
|
||||||
|
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
|
||||||
|
|
||||||
unique-filename@^1.1.0, unique-filename@~1.1.0:
|
unique-filename@^1.1.0, unique-filename@~1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz"
|
resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz"
|
||||||
|
Loading…
Reference in New Issue
Block a user