From 53affed8d3eb4b95e1601943bc2c51ee8e37d01d Mon Sep 17 00:00:00 2001 From: zadam Date: Tue, 2 Aug 2022 17:00:47 +0200 Subject: [PATCH 01/82] fix note map with noteId = 'none' --- src/routes/api/note_map.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/api/note_map.js b/src/routes/api/note_map.js index 90a1460c4..be07f3fe4 100644 --- a/src/routes/api/note_map.js +++ b/src/routes/api/note_map.js @@ -142,7 +142,6 @@ function getTreeMap(req) { // if the map root itself has ignore (journal typically) then there wouldn't be anything to display so // we'll just ignore it const ignoreExcludeFromNoteMap = mapRootNote.hasLabel('excludeFromNoteMap'); - const noteIds = new Set(); const notes = mapRootNote.getSubtreeNotes(false) .filter(note => ignoreExcludeFromNoteMap || !note.hasLabel('excludeFromNoteMap')) @@ -159,13 +158,14 @@ function getTreeMap(req) { return !note.getParentNotes().find(parentNote => parentNote.noteId === imageLinkRelation.noteId); }) - .concat(...mapRootNote.getParentNotes()) + .concat(...mapRootNote.getParentNotes().filter(note => note.noteId !== 'none')) .map(note => [ note.noteId, note.getTitleOrProtected(), note.type ]); + const noteIds = new Set(); notes.forEach(([noteId]) => noteIds.add(noteId)); const links = []; From dff2d3e9894385004c6c5063c70ff2bf6e81004e Mon Sep 17 00:00:00 2001 From: zadam Date: Tue, 2 Aug 2022 17:01:09 +0200 Subject: [PATCH 02/82] launchbar WIP --- src/services/special_notes.js | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/services/special_notes.js b/src/services/special_notes.js index ebe447d98..88ce3f8a9 100644 --- a/src/services/special_notes.js +++ b/src/services/special_notes.js @@ -236,11 +236,76 @@ function getBulkActionNote() { return bulkActionNote; } +function getLaunchBarRoot() { + let note = becca.getNote('launchbar'); + + if (!note) { + note = noteService.createNewNote({ + branchId: 'launchbar', + noteId: 'launchbar', + title: 'Launch bar', + type: 'text', + content: '', + parentNoteId: getHiddenRoot().noteId + }).note; + } + + return note; +} + +function getLaunchBarAvailableShortcutsRoot() { + let note = becca.getNote('lb_availableshortcuts'); + + if (!note) { + note = noteService.createNewNote({ + branchId: 'lb_availableshortcuts', + noteId: 'lb_availableshortcuts', + title: 'Available shortcuts', + type: 'text', + content: '', + parentNoteId: getLaunchBarRoot().noteId + }).note; + } + + return note; +} + +function getLaunchBarVisibleShortcutsRoot() { + let note = becca.getNote('lb_visibleshortcuts'); + + if (!note) { + note = noteService.createNewNote({ + branchId: 'lb_visibleshortcuts', + noteId: 'lb_visibleshortcuts', + title: 'Visible shortcuts', + type: 'text', + content: '', + parentNoteId: getLaunchBarRoot().noteId + }).note; + } + + return note; +} + +const shortcuts = [ + { id: 'lb_newnote', command: 'createNoteIntoInbox', title: 'New note', icon: 'bx bx-file-blank' }, + { id: 'lb_searcj', command: 'searchNotes', title: 'Search notes', icon: 'bx bx-search' }, + { id: 'lb_jumpto', command: 'jumpToNote', title: 'Jump to note', icon: 'bx bx-send' }, + { id: 'lb_notemap', targetNote: 'globalnotemap', title: 'Note map', icon: 'bx bx-map' }, + { id: 'lb_recentchanges', command: 'showRecentChanges', title: 'Show recent changes', icon: 'bx bx-history' }, + { id: 'lb_recentchanges', command: 'jumpToNote', title: 'Jump to note', icon: 'bx bx-send' }, + +]; + function createMissingSpecialNotes() { getSinglesNoteRoot(); getSqlConsoleRoot(); getGlobalNoteMap(); getBulkActionNote(); + getLaunchBarRoot(); + getLaunchBarAvailableShortcutsRoot(); + getLaunchBarVisibleShortcutsRoot(); + // share root is not automatically created since it's visible in the tree and many won't need it/use it const hidden = getHiddenRoot(); From 5ec359e9296a32362fef5ceb0ef37edaad861dfa Mon Sep 17 00:00:00 2001 From: zadam Date: Tue, 2 Aug 2022 22:53:06 +0200 Subject: [PATCH 03/82] focus existing window on port conflict, closes #3036 --- electron.js | 2 +- src/services/window.js | 14 +++++++++++++- src/www | 15 +++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/electron.js b/electron.js index cc3f86646..e8cd2d43d 100644 --- a/electron.js +++ b/electron.js @@ -30,7 +30,7 @@ app.on('ready', async () => { if (await sqlInit.isDbInitialized()) { await sqlInit.dbReady; - await windowService.createMainWindow(); + await windowService.createMainWindow(app); tray.createTray(); } diff --git a/src/services/window.js b/src/services/window.js index 89a0a0aa1..f99f374ff 100644 --- a/src/services/window.js +++ b/src/services/window.js @@ -44,7 +44,7 @@ ipcMain.on('create-extra-window', (event, arg) => { createExtraWindow(arg.notePath, arg.hoistedNoteId); }); -async function createMainWindow() { +async function createMainWindow(app) { const windowStateKeeper = require('electron-window-state'); // should not be statically imported const mainWindowState = windowStateKeeper({ @@ -81,6 +81,18 @@ async function createMainWindow() { mainWindow.on('closed', () => mainWindow = null); configureWebContents(mainWindow.webContents, spellcheckEnabled); + + app.on('second-instance', () => { + // Someone tried to run a second instance, we should focus our window. + // see www.js "requestSingleInstanceLock" for the rest of this logic with explanation + if (mainWindow) { + if (mainWindow.isMinimized()) { + mainWindow.restore(); + } + + mainWindow.focus(); + } + }); } function configureWebContents(webContents, spellcheckEnabled) { diff --git a/src/www b/src/www index 637ca925d..014b6143b 100644 --- a/src/www +++ b/src/www @@ -38,6 +38,21 @@ if (!semver.satisfies(process.version, ">=10.5.0")) { let httpServer; async function startTrilium() { + /** + * The intended behavior is to detect when a second instance is running, in that case open the old instance + * instead of the new one. This is complicated by the fact that it is possible to run multiple instances of Trilium + * if port and data dir is configured separately. This complication is the source of the following weird usage. + * + * The line below makes sure that the "second-instance" (process in window.js) is fired. Normally it returns a boolean + * indicating whether another instance is running or not, but we ignore that and kill the app only based on the port conflict. + * + * A bit weird is that "second-instance" is triggered also on the valid usecases (different port/data dir) and + * focuses the existing window. But the new process is start as well and will steal the focus too, it will win, because + * its startup is slower than focusing the existing process/window. So in the end it works out without having + * to do complex evaluation. + */ + require("electron").app.requestSingleInstanceLock(); + const usedPort = await port; const usedHost = await host; From b3097b59c706f457d8683848efcdccb32c1a03db Mon Sep 17 00:00:00 2001 From: zadam Date: Wed, 3 Aug 2022 00:19:29 +0200 Subject: [PATCH 04/82] remove port scanning for an available port #3036 --- package.json | 1 - src/services/host.js | 9 +-------- src/services/port.js | 23 +++++------------------ src/services/sql_init.js | 2 +- src/services/window.js | 6 +++--- src/www | 17 +++++++---------- 6 files changed, 17 insertions(+), 41 deletions(-) diff --git a/package.json b/package.json index 7a000009b..c464b9f72 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ "node-abi": "3.22.0", "normalize-strings": "1.1.1", "open": "8.4.0", - "portscanner": "2.2.0", "rand-token": "1.0.1", "react": "17.0.2", "react-dom": "17.0.2", diff --git a/src/services/host.js b/src/services/host.js index e638931bd..389203e99 100644 --- a/src/services/host.js +++ b/src/services/host.js @@ -1,10 +1,3 @@ const config = require('./config'); -const env = require('./env'); -let environmentHost; - -if (process.env.TRILIUM_HOST) { - environmentHost = process.env.TRILIUM_HOST; -} - -module.exports = Promise.resolve(environmentHost || config['Network']['host'] || '0.0.0.0'); +module.exports = process.env.TRILIUM_HOST || config['Network']['host'] || '0.0.0.0'; diff --git a/src/services/port.js b/src/services/port.js index d6504c2f2..9d231c813 100644 --- a/src/services/port.js +++ b/src/services/port.js @@ -1,28 +1,15 @@ const config = require('./config'); const utils = require('./utils'); const env = require('./env'); -const portscanner = require('portscanner'); - -let environmentPort; if (process.env.TRILIUM_PORT) { - environmentPort = parseInt(process.env.TRILIUM_PORT); + module.exports = parseInt(process.env.TRILIUM_PORT); + return; } if (utils.isElectron()) { - module.exports = new Promise((resolve, reject) => { - const startingPort = environmentPort || (env.isDev() ? 37740 : 37840); - - portscanner.findAPortNotInUse(startingPort, startingPort + 10, '127.0.0.1', function(error, port) { - if (error) { - reject(error); - } - else { - resolve(port); - } - }) - }); + module.exports = env.isDev() ? 37740 : 37840; } else { - module.exports = Promise.resolve(environmentPort || config['Network']['port'] || '3000'); -} \ No newline at end of file + module.exports = config['Network']['port'] || '3000'; +} diff --git a/src/services/sql_init.js b/src/services/sql_init.js index 66bc98fe9..182391ac9 100644 --- a/src/services/sql_init.js +++ b/src/services/sql_init.js @@ -33,7 +33,7 @@ function isDbInitialized() { async function initDbConnection() { if (!isDbInitialized()) { log.info(`DB not initialized, please visit setup page` + - (utils.isElectron() ? '' : ` - http://[your-server-host]:${await port} to see instructions on how to initialize Trilium.`)); + (utils.isElectron() ? '' : ` - http://[your-server-host]:${port} to see instructions on how to initialize Trilium.`)); return; } diff --git a/src/services/window.js b/src/services/window.js index f99f374ff..6ccf16a5d 100644 --- a/src/services/window.js +++ b/src/services/window.js @@ -35,7 +35,7 @@ async function createExtraWindow(notePath, hoistedNoteId = 'root') { }); win.setMenuBarVisibility(false); - win.loadURL('http://127.0.0.1:' + await port + '/?extra=1&extraHoistedNoteId=' + hoistedNoteId + '#' + notePath); + win.loadURL(`http://127.0.0.1:${port}/?extra=1&extraHoistedNoteId=${hoistedNoteId}#${notePath}`); configureWebContents(win.webContents, spellcheckEnabled); } @@ -77,7 +77,7 @@ async function createMainWindow(app) { mainWindowState.manage(mainWindow); mainWindow.setMenuBarVisibility(false); - mainWindow.loadURL('http://127.0.0.1:' + await port); + mainWindow.loadURL('http://127.0.0.1:' + port); mainWindow.on('closed', () => mainWindow = null); configureWebContents(mainWindow.webContents, spellcheckEnabled); @@ -143,7 +143,7 @@ async function createSetupWindow() { }); setupWindow.setMenuBarVisibility(false); - setupWindow.loadURL('http://127.0.0.1:' + await port); + setupWindow.loadURL('http://127.0.0.1:' + port); setupWindow.on('closed', () => setupWindow = null); } diff --git a/src/www b/src/www index 014b6143b..3643c0ea9 100644 --- a/src/www +++ b/src/www @@ -53,11 +53,8 @@ async function startTrilium() { */ require("electron").app.requestSingleInstanceLock(); - const usedPort = await port; - const usedHost = await host; - - app.set('port', usedPort); - app.set('host', usedHost); + app.set('port', port); + app.set('host', host); if (config['Network']['https']) { if (!config['Network']['keyPath'] || !config['Network']['keyPath'].trim().length) { @@ -75,12 +72,12 @@ async function startTrilium() { httpServer = https.createServer(options, app); - log.info("App HTTPS server starting up at port " + usedPort); + log.info("App HTTPS server starting up at port " + port); } else { httpServer = http.createServer(app); - log.info("App HTTP server starting up at port " + usedPort); + log.info("App HTTP server starting up at port " + port); } log.info(JSON.stringify(appInfo, null, 2)); @@ -93,7 +90,7 @@ async function startTrilium() { */ httpServer.keepAliveTimeout = 120000 * 5; - httpServer.listen(usedPort, usedHost); + httpServer.listen(port, host); httpServer.on('error', error => { if (error.syscall !== 'listen') { throw error; @@ -102,12 +99,12 @@ async function startTrilium() { // handle specific listen errors with friendly messages switch (error.code) { case 'EACCES': - console.error(`Port ${usedPort} requires elevated privileges`); + console.error(`Port ${port} requires elevated privileges`); process.exit(1); break; case 'EADDRINUSE': - console.error(`Port ${usedPort} is already in use`); + console.error(`Port ${port} is already in use`); process.exit(1); break; From b86dbc088d6674ae4095b32f6628faf79b0cf9b8 Mon Sep 17 00:00:00 2001 From: zadam Date: Thu, 4 Aug 2022 21:19:57 +0200 Subject: [PATCH 05/82] small fixes to tray and closing windows --- electron.js | 7 +- package-lock.json | 292 +++++++++++++++++-------------------------- package.json | 8 +- src/services/tray.js | 1 + 4 files changed, 122 insertions(+), 186 deletions(-) diff --git a/electron.js b/electron.js index e8cd2d43d..a0b1f109f 100644 --- a/electron.js +++ b/electron.js @@ -14,12 +14,11 @@ appIconService.installLocalAppIcon(); require('electron-dl')({ saveAs: true }); app.on('window-all-closed', () => { - if (process.platform !== 'darwin') { + if (process.platform === 'win32') { + app.exit(0); // attempt to fix the issue when app.quit() won't terminate processes on windows + } else { app.quit(); } - else if (process.platform === 'win32') { - app.exit(0); // attempt to fix the issue when app.quite() won't terminate processes on windows - } }); app.on('ready', async () => { diff --git a/package-lock.json b/package-lock.json index d3ef59b3e..2f7510a26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "trilium", - "version": "0.54.0-beta", + "version": "0.54.1-beta", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "trilium", - "version": "0.54.0-beta", + "version": "0.54.1-beta", "hasInstallScript": true, "license": "AGPL-3.0-only", "dependencies": { @@ -46,10 +46,9 @@ "jsdom": "20.0.0", "mime-types": "2.1.35", "multer": "1.4.5-lts.1", - "node-abi": "3.22.0", + "node-abi": "3.24.0", "normalize-strings": "1.1.1", "open": "8.4.0", - "portscanner": "2.2.0", "rand-token": "1.0.1", "react": "17.0.2", "react-dom": "17.0.2", @@ -76,15 +75,15 @@ "devDependencies": { "cross-env": "7.0.3", "electron": "16.2.8", - "electron-builder": "23.1.0", + "electron-builder": "23.3.3", "electron-packager": "15.5.1", - "electron-rebuild": "3.2.8", + "electron-rebuild": "3.2.9", "esm": "3.2.25", "jasmine": "4.3.0", "jsdoc": "3.6.11", "lorem-ipsum": "2.0.8", "rcedit": "3.0.1", - "webpack": "5.73.0", + "webpack": "5.74.0", "webpack-cli": "4.10.0" }, "optionalDependencies": { @@ -978,9 +977,9 @@ } }, "node_modules/@types/verror": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz", - "integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==", + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz", + "integrity": "sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==", "dev": true, "optional": true }, @@ -1441,9 +1440,9 @@ "dev": true }, "node_modules/app-builder-lib": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.1.0.tgz", - "integrity": "sha512-aZpKjBBLzyxtr4Cmbyi3dl8uRO8SI2PG2MYEKYRZL6pl7IsKP2hJkCYzlD6NjLJlRIAZcFPFjFbJliO74DFf7w==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.3.3.tgz", + "integrity": "sha512-m0+M53+HYMzqKxwNQZT143K7WwXEGUy9LY31l8dJphXx2P/FQod615mVbxHyqbDCG4J5bHdWm21qZ0e2DVY6CQ==", "dev": true, "dependencies": { "@develar/schema-utils": "~2.6.5", @@ -1452,13 +1451,13 @@ "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "23.0.9", - "builder-util-runtime": "9.0.2", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.4", "ejs": "^3.1.7", "electron-osx-sign": "^0.6.0", - "electron-publish": "23.0.9", + "electron-publish": "23.3.3", "form-data": "^4.0.0", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", @@ -1719,14 +1718,6 @@ "node": ">=8" } }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, "node_modules/async-exit-hook": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", @@ -2168,9 +2159,9 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "node_modules/builder-util": { - "version": "23.0.9", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.9.tgz", - "integrity": "sha512-ccPFwI1Sex4yLt8R3LI+H07p2jHICKwEWtxkFkb6jiU/g/VJnF1wazW7I1oMcCFcPTEl30GhqoRv9rfDD9VAiQ==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.3.3.tgz", + "integrity": "sha512-MJZlUiq2PY5hjYv9+XNaoYdsITqvLgRDoHSFg/4nzpInbNxNjLQOolL04Zsyp+hgfcbFvMC4h0KkR1CMPHLWbA==", "dev": true, "dependencies": { "@types/debug": "^4.1.6", @@ -2178,7 +2169,7 @@ "7zip-bin": "~5.1.1", "app-builder-bin": "4.0.0", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.0.2", + "builder-util-runtime": "9.0.3", "chalk": "^4.1.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", @@ -2193,9 +2184,9 @@ } }, "node_modules/builder-util-runtime": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.2.tgz", - "integrity": "sha512-xF55W/8mgfT6+sMbX0TeiJkTusA5GMOzckM4rajN4KirFcUIuLTH8oEaTYmM86YwVCZaTwa/7GyFhauXaEICwA==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", + "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -3445,14 +3436,14 @@ } }, "node_modules/dmg-builder": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.1.0.tgz", - "integrity": "sha512-CzhPk/k12nJ2KqTbePkIwHOLiaWneQu2cgXCT9Hb5FhwI1vxTPalLsg8OZ57wKCrkL8AEftqqSff8gB5yWY/xw==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.3.3.tgz", + "integrity": "sha512-ECwAjt+ZWyOvddrkDx1xRD6IVUCZb5SV6vSMHZd+Va3G2sUXHrnglR1cGDKRF4oYRQm8SYVrpLZKbi8npyDcAQ==", "dev": true, "dependencies": { - "app-builder-lib": "23.1.0", - "builder-util": "23.0.9", - "builder-util-runtime": "9.0.2", + "app-builder-lib": "23.3.3", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" @@ -3477,7 +3468,6 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", - "deprecated": "Disk image license agreements are deprecated by Apple and will probably be removed in a future macOS release. Discussion at: https://github.com/argv-minus-one/dmg-license/issues/11", "dev": true, "optional": true, "os": [ @@ -3649,17 +3639,17 @@ } }, "node_modules/electron-builder": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.1.0.tgz", - "integrity": "sha512-UEblaQY8N9m8/HriOwl7jgFJ4olpWDXwdDBqwUkQiRHVNRnCfrA0u8LV03li5ZYhma6zFWzfIZbHd+uk8y//lQ==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.3.3.tgz", + "integrity": "sha512-mFYYdhoFPKevP6y5uaaF3dusmB2OtQ/HnwwpyOePeU7QDS0SEIAUokQsHUanAiJAZcBqtY7iyLBgX18QybdFFw==", "dev": true, "dependencies": { "@types/yargs": "^17.0.1", - "app-builder-lib": "23.1.0", - "builder-util": "23.0.9", - "builder-util-runtime": "9.0.2", + "app-builder-lib": "23.3.3", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", "chalk": "^4.1.1", - "dmg-builder": "23.1.0", + "dmg-builder": "23.3.3", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", @@ -4162,14 +4152,14 @@ } }, "node_modules/electron-publish": { - "version": "23.0.9", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.9.tgz", - "integrity": "sha512-afr2z6L07/elgDX+6I/G/0vzXOP6xYUd/aXx9tnTPSVZ/3AuvCegHrKiuh8sKYHmzoAcNGXe3ikISYIu961IfA==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.3.3.tgz", + "integrity": "sha512-1dX17eE5xVXedTxjC+gjsP74oC0+sIHgqysp0ryTlF9+yfQUyXjBk6kcK+zhtBA2SsHMSglDtM+JPxDD/WpPTQ==", "dev": true, "dependencies": { "@types/fs-extra": "^9.0.11", - "builder-util": "23.0.9", - "builder-util-runtime": "9.0.2", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", "chalk": "^4.1.1", "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", @@ -4189,9 +4179,9 @@ } }, "node_modules/electron-rebuild": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-3.2.8.tgz", - "integrity": "sha512-+U/G5ZH9RNfvPQsEHevC3yDlgSB+wliNXnG6haqUeZBEq061pEgSTWK9ZBEfqMEq+PKxvniMNxfou/h6079s3A==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-3.2.9.tgz", + "integrity": "sha512-FkEZNFViUem3P0RLYbZkUjC8LUFIK+wKq09GHoOITSJjfDAVQv964hwaNseTTWt58sITQX3/5fHNYcTefqaCWw==", "dev": true, "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", @@ -4496,9 +4486,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -6167,14 +6157,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-like": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", - "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", - "dependencies": { - "lodash.isfinite": "^3.3.2" - } - }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -6796,7 +6778,8 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "devOptional": true }, "node_modules/lodash.defaults": { "version": "4.2.0", @@ -6819,11 +6802,6 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "node_modules/lodash.isfinite": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=" - }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -7348,9 +7326,9 @@ "dev": true }, "node_modules/node-abi": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", - "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.24.0.tgz", + "integrity": "sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==", "dependencies": { "semver": "^7.3.5" }, @@ -8142,19 +8120,6 @@ "node": ">=4.0.0" } }, - "node_modules/portscanner": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", - "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", - "dependencies": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" - }, - "engines": { - "node": ">=0.4", - "npm": ">=1.0.0" - } - }, "node_modules/postcss": { "version": "8.4.5", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", @@ -10160,9 +10125,9 @@ } }, "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -10190,9 +10155,9 @@ } }, "node_modules/webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -10200,11 +10165,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -10217,7 +10182,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -11498,9 +11463,9 @@ } }, "@types/verror": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz", - "integrity": "sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==", + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz", + "integrity": "sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==", "dev": true, "optional": true }, @@ -11893,9 +11858,9 @@ "dev": true }, "app-builder-lib": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.1.0.tgz", - "integrity": "sha512-aZpKjBBLzyxtr4Cmbyi3dl8uRO8SI2PG2MYEKYRZL6pl7IsKP2hJkCYzlD6NjLJlRIAZcFPFjFbJliO74DFf7w==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.3.3.tgz", + "integrity": "sha512-m0+M53+HYMzqKxwNQZT143K7WwXEGUy9LY31l8dJphXx2P/FQod615mVbxHyqbDCG4J5bHdWm21qZ0e2DVY6CQ==", "dev": true, "requires": { "@develar/schema-utils": "~2.6.5", @@ -11904,13 +11869,13 @@ "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "23.0.9", - "builder-util-runtime": "9.0.2", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.4", "ejs": "^3.1.7", "electron-osx-sign": "^0.6.0", - "electron-publish": "23.0.9", + "electron-publish": "23.3.3", "form-data": "^4.0.0", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", @@ -12129,14 +12094,6 @@ "dev": true, "optional": true }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, "async-exit-hook": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", @@ -12491,9 +12448,9 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "builder-util": { - "version": "23.0.9", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.9.tgz", - "integrity": "sha512-ccPFwI1Sex4yLt8R3LI+H07p2jHICKwEWtxkFkb6jiU/g/VJnF1wazW7I1oMcCFcPTEl30GhqoRv9rfDD9VAiQ==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.3.3.tgz", + "integrity": "sha512-MJZlUiq2PY5hjYv9+XNaoYdsITqvLgRDoHSFg/4nzpInbNxNjLQOolL04Zsyp+hgfcbFvMC4h0KkR1CMPHLWbA==", "dev": true, "requires": { "@types/debug": "^4.1.6", @@ -12501,7 +12458,7 @@ "7zip-bin": "~5.1.1", "app-builder-bin": "4.0.0", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.0.2", + "builder-util-runtime": "9.0.3", "chalk": "^4.1.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", @@ -12516,9 +12473,9 @@ } }, "builder-util-runtime": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.2.tgz", - "integrity": "sha512-xF55W/8mgfT6+sMbX0TeiJkTusA5GMOzckM4rajN4KirFcUIuLTH8oEaTYmM86YwVCZaTwa/7GyFhauXaEICwA==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", + "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", "dev": true, "requires": { "debug": "^4.3.4", @@ -13455,14 +13412,14 @@ } }, "dmg-builder": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.1.0.tgz", - "integrity": "sha512-CzhPk/k12nJ2KqTbePkIwHOLiaWneQu2cgXCT9Hb5FhwI1vxTPalLsg8OZ57wKCrkL8AEftqqSff8gB5yWY/xw==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.3.3.tgz", + "integrity": "sha512-ECwAjt+ZWyOvddrkDx1xRD6IVUCZb5SV6vSMHZd+Va3G2sUXHrnglR1cGDKRF4oYRQm8SYVrpLZKbi8npyDcAQ==", "dev": true, "requires": { - "app-builder-lib": "23.1.0", - "builder-util": "23.0.9", - "builder-util-runtime": "9.0.2", + "app-builder-lib": "23.3.3", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", "dmg-license": "^1.0.11", "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", @@ -13613,17 +13570,17 @@ } }, "electron-builder": { - "version": "23.1.0", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.1.0.tgz", - "integrity": "sha512-UEblaQY8N9m8/HriOwl7jgFJ4olpWDXwdDBqwUkQiRHVNRnCfrA0u8LV03li5ZYhma6zFWzfIZbHd+uk8y//lQ==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.3.3.tgz", + "integrity": "sha512-mFYYdhoFPKevP6y5uaaF3dusmB2OtQ/HnwwpyOePeU7QDS0SEIAUokQsHUanAiJAZcBqtY7iyLBgX18QybdFFw==", "dev": true, "requires": { "@types/yargs": "^17.0.1", - "app-builder-lib": "23.1.0", - "builder-util": "23.0.9", - "builder-util-runtime": "9.0.2", + "app-builder-lib": "23.3.3", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", "chalk": "^4.1.1", - "dmg-builder": "23.1.0", + "dmg-builder": "23.3.3", "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", @@ -14003,14 +13960,14 @@ } }, "electron-publish": { - "version": "23.0.9", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.0.9.tgz", - "integrity": "sha512-afr2z6L07/elgDX+6I/G/0vzXOP6xYUd/aXx9tnTPSVZ/3AuvCegHrKiuh8sKYHmzoAcNGXe3ikISYIu961IfA==", + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.3.3.tgz", + "integrity": "sha512-1dX17eE5xVXedTxjC+gjsP74oC0+sIHgqysp0ryTlF9+yfQUyXjBk6kcK+zhtBA2SsHMSglDtM+JPxDD/WpPTQ==", "dev": true, "requires": { "@types/fs-extra": "^9.0.11", - "builder-util": "23.0.9", - "builder-util-runtime": "9.0.2", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", "chalk": "^4.1.1", "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", @@ -14026,9 +13983,9 @@ } }, "electron-rebuild": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-3.2.8.tgz", - "integrity": "sha512-+U/G5ZH9RNfvPQsEHevC3yDlgSB+wliNXnG6haqUeZBEq061pEgSTWK9ZBEfqMEq+PKxvniMNxfou/h6079s3A==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-3.2.9.tgz", + "integrity": "sha512-FkEZNFViUem3P0RLYbZkUjC8LUFIK+wKq09GHoOITSJjfDAVQv964hwaNseTTWt58sITQX3/5fHNYcTefqaCWw==", "dev": true, "requires": { "@malept/cross-spawn-promise": "^2.0.0", @@ -14250,9 +14207,9 @@ } }, "enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -15518,14 +15475,6 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "is-number-like": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", - "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", - "requires": { - "lodash.isfinite": "^3.3.2" - } - }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -16018,7 +15967,8 @@ "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "devOptional": true }, "lodash.defaults": { "version": "4.2.0", @@ -16041,11 +15991,6 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "lodash.isfinite": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=" - }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -16440,9 +16385,9 @@ "dev": true }, "node-abi": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", - "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.24.0.tgz", + "integrity": "sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==", "requires": { "semver": "^7.3.5" } @@ -17060,15 +17005,6 @@ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" }, - "portscanner": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", - "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", - "requires": { - "async": "^2.6.0", - "is-number-like": "^1.0.3" - } - }, "postcss": { "version": "8.4.5", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", @@ -18624,9 +18560,9 @@ } }, "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -18648,9 +18584,9 @@ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" }, "webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -18658,11 +18594,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -18675,7 +18611,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" } }, diff --git a/package.json b/package.json index c839a33b0..df420fd30 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "jsdom": "20.0.0", "mime-types": "2.1.35", "multer": "1.4.5-lts.1", - "node-abi": "3.22.0", + "node-abi": "3.24.0", "normalize-strings": "1.1.1", "open": "8.4.0", "rand-token": "1.0.1", @@ -87,15 +87,15 @@ "devDependencies": { "cross-env": "7.0.3", "electron": "16.2.8", - "electron-builder": "23.1.0", + "electron-builder": "23.3.3", "electron-packager": "15.5.1", - "electron-rebuild": "3.2.8", + "electron-rebuild": "3.2.9", "esm": "3.2.25", "jasmine": "4.3.0", "jsdoc": "3.6.11", "lorem-ipsum": "2.0.8", "rcedit": "3.0.1", - "webpack": "5.73.0", + "webpack": "5.74.0", "webpack-cli": "4.10.0" }, "optionalDependencies": { diff --git a/src/services/tray.js b/src/services/tray.js index 7493e5c8b..137bf4cef 100644 --- a/src/services/tray.js +++ b/src/services/tray.js @@ -62,6 +62,7 @@ const updateTrayMenu = () => { mainWindow.hide(); } else { mainWindow.show(); + mainWindow.focus(); } } }, From 75654583326ddbc6fda0f64b27261a899a542d66 Mon Sep 17 00:00:00 2001 From: zadam Date: Thu, 4 Aug 2022 23:00:32 +0200 Subject: [PATCH 06/82] launchbar WIP --- .idea/misc.xml | 2 +- src/public/app/layouts/desktop_layout.js | 56 ++++++++++--------- .../app/services/root_command_executor.js | 4 ++ src/public/app/widgets/buttons/global_menu.js | 5 ++ .../app/widgets/containers/container.js | 3 + .../widgets/containers/left_pane_container.js | 2 +- .../widgets/containers/shortcut_container.js | 42 ++++++++++++++ src/public/app/widgets/note_tree.js | 7 +-- src/services/special_notes.js | 40 +++++++++---- 9 files changed, 115 insertions(+), 46 deletions(-) create mode 100644 src/public/app/widgets/containers/shortcut_container.js diff --git a/.idea/misc.xml b/.idea/misc.xml index 8524fae44..ea0feb595 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + \ No newline at end of file diff --git a/src/public/app/layouts/desktop_layout.js b/src/public/app/layouts/desktop_layout.js index d36e15982..5cab44cf4 100644 --- a/src/public/app/layouts/desktop_layout.js +++ b/src/public/app/layouts/desktop_layout.js @@ -78,6 +78,7 @@ import OptionsDialog from "../widgets/dialogs/options.js"; import FloatingButtons from "../widgets/floating_buttons/floating_buttons.js"; import RelationMapButtons from "../widgets/floating_buttons/relation_map_buttons.js"; import MermaidExportButton from "../widgets/floating_buttons/mermaid_export_button.js"; +import ShortcutContainer from "../widgets/containers/shortcut_container.js"; export default class DesktopLayout { constructor(customWidgets) { @@ -93,33 +94,34 @@ export default class DesktopLayout { .id("launcher-pane") .css("width", "53px") .child(new GlobalMenuWidget()) - .child(new ButtonWidget() - .icon("bx-file-blank") - .title("New note") - .command("createNoteIntoInbox")) - .child(new ButtonWidget() - .icon("bx-search") - .title("Search") - .command("searchNotes")) - .child(new ButtonWidget() - .icon("bx-send") - .title("Jump to note") - .command("jumpToNote")) - .child(new OpenNoteButtonWidget() - .targetNote('globalnotemap')) - .child(new ButtonWidget() - .icon("bx-history") - .title("Show recent changes") - .command("showRecentChanges")) - .child(new CalendarWidget()) - .child(new SpacerWidget(40, 0)) - .child(new FlexContainer("column") - .id("plugin-buttons") - .contentSized()) - .child(new BookmarkButtons()) - .child(new SpacerWidget(0, 1000)) - .child(new ProtectedSessionStatusWidget()) - .child(new SyncStatusWidget()) + .child(new ShortcutContainer()) + // .child(new ButtonWidget() + // .icon("bx-file-blank") + // .title("New note") + // .command("createNoteIntoInbox")) + // .child(new ButtonWidget() + // .icon("bx-search") + // .title("Search") + // .command("searchNotes")) + // .child(new ButtonWidget() + // .icon("bx-send") + // .title("Jump to note") + // .command("jumpToNote")) + // .child(new OpenNoteButtonWidget() + // .targetNote('globalnotemap')) + // .child(new ButtonWidget() + // .icon("bx-history") + // .title("Show recent changes") + // .command("showRecentChanges")) + // .child(new CalendarWidget()) + // .child(new SpacerWidget(40, 0)) + // .child(new FlexContainer("column") + // .id("plugin-buttons") + // .contentSized()) + // .child(new BookmarkButtons()) + // .child(new SpacerWidget(0, 1000)) + // .child(new ProtectedSessionStatusWidget()) + // .child(new SyncStatusWidget()) .child(new LeftPaneToggleWidget()) ) .child(new LeftPaneContainer() diff --git a/src/public/app/services/root_command_executor.js b/src/public/app/services/root_command_executor.js index f87f5e7b2..e781e2c29 100644 --- a/src/public/app/services/root_command_executor.js +++ b/src/public/app/services/root_command_executor.js @@ -70,4 +70,8 @@ export default class RootCommandExecutor extends Component { toggleLeftPaneCommand() { options.toggle('leftPaneVisible'); } + + showLaunchBarShortcutsCommand() { + appContext.tabManager.openContextWithNote('lb_root', true, null, 'lb_root'); + } } diff --git a/src/public/app/widgets/buttons/global_menu.js b/src/public/app/widgets/buttons/global_menu.js index efc0c0396..d071b8a78 100644 --- a/src/public/app/widgets/buttons/global_menu.js +++ b/src/public/app/widgets/buttons/global_menu.js @@ -47,6 +47,11 @@ const TPL = `