From e94c449ebde551ef23c1ad3f5817b6e7ac7005a1 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Fri, 6 Mar 2020 00:27:41 +0100 Subject: [PATCH 01/10] Fix icon unwanted borders --- art/logo.svg | 99 ++++++++++++++++++++++++--------------------- resources/logo.png | Bin 12119 -> 16635 bytes 2 files changed, 53 insertions(+), 46 deletions(-) diff --git a/art/logo.svg b/art/logo.svg index cabb530..2c1ac9f 100644 --- a/art/logo.svg +++ b/art/logo.svg @@ -8,20 +8,19 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="24" - height="24" - viewBox="0 0 24 24" - fill="none" - stroke="currentColor" - stroke-width="2" - stroke-linecap="round" - stroke-linejoin="round" + width="20" + height="20" + viewBox="0 0 20 20" class="feather feather-sidebar" version="1.1" id="svg6" sodipodi:docname="logo.svg" inkscape:version="0.92.4 5da689c313, 2019-01-14" - enable-background="new"> + style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;enable-background:new" + enable-background="new" + inkscape:export-filename="/r/arisu/dev/utils/tabs/resources/logo.png" + inkscape:export-xdpi="2457.6001" + inkscape:export-ydpi="2457.6001"> @@ -60,41 +59,45 @@ y1="0" x2="24" y2="24" - gradientUnits="userSpaceOnUse" /> + gradientUnits="userSpaceOnUse" + gradientTransform="scale(0.83333333)" /> + + + + + + + id="filter862"> + id="feBlend864" /> - - - - - - + id="g892" + transform="translate(-2,-2.0142425)" + mask="none" + clip-path="none"> + mask="url(#mask854)" + clip-path="none" /> diff --git a/resources/logo.png b/resources/logo.png index 427ac5c129741db97a0dac695ac4d470cf6a82b5..722d0432ab31440cdfc2c3f9d178d3b083719457 100644 GIT binary patch literal 16635 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 literal 12119 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 From 6a822c97f379e77a2ca69e62c55e9a3f38cb6ad2 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Fri, 6 Mar 2020 14:31:08 +0100 Subject: [PATCH 02/10] Update README.md to be more precise and clear --- README.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a71ee64..22b905b 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,24 @@ # Tabs -Tabs is an electron app that lets you easily turn any webpage into a "desktop app". We call each of this "apps" `Services`. +/!\ Still in development! I aim to improve security, usability and add more features. Wait for the 1.0 release to use tabs for critical jobs. /!\ -You can add multiple Services to a single window and easily switch between them with the navigation bar, like persistent tabs in a web browser. +Tabs is an electron app than allows you to make **persistent** and **isolated** sessions on any website. + +You could create `Services` for Facebook Messenger, GMail, or your personnal nextcloud instance. There is not limit to what home URL you can set. + +- Services are all gathered in a single window with a simple navigation bar +- A service can be either automatically loaded or not +- You can customize a service css (i.e. remove unwanted elements like menus or nav bars) You can navigate inside the focused service using the navigation buttons (previous page, next page). +## When's 1.0 being released? + +You can track the development progress [here](https://github.com/ArisuOngaku/tabs/projects/3). + ## Contributing +Pull requests are welcome and appreciated! + ## License -[MIT - see LICENSE file](LICENSE) \ No newline at end of file +[MIT - see LICENSE file](LICENSE) From c89f12e6910eeeb3c23c72006521b128da9a7809 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Fri, 6 Mar 2020 14:32:14 +0100 Subject: [PATCH 03/10] Fix newly created service failing to load on client --- resources/js/index.js | 47 +++++++++++++++++++------------------------ src/main.js | 1 + 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/resources/js/index.js b/resources/js/index.js index d326880..17ecfd5 100644 --- a/resources/js/index.js +++ b/resources/js/index.js @@ -119,27 +119,34 @@ ipcRenderer.on('data', (event, appData, brandIcons, solidIcons, actualServices, emptyPage = emptyUrl; }); +function removeServiceFeatures(id) { + const nav = document.querySelector('#service-selector'); + + // Remove nav + const oldNavButton = nav.querySelector('li:nth-of-type(' + (id + 1) + ')'); + if (oldNavButton) { + nav.removeChild(oldNavButton); + } + + // Remove webview + if (services[id] && services[id].view) { + const serviceContainer = document.querySelector('#services'); + serviceContainer.removeChild(services[id].view); + } + + return oldNavButton; +} + ipcRenderer.on('updateService', (e, id, data) => { if (id === null) { services.push(data); createService(services.length - 1); } else { - const nav = document.querySelector('#service-selector'); - - // Remove nav - const oldNavButton = nav.querySelector('li:nth-of-type(' + (id + 1) + ')'); - const nextNavButton = oldNavButton.nextSibling; - nav.removeChild(oldNavButton); - - // Remove webview - if (services[id].view) { - const serviceContainer = document.querySelector('#services'); - serviceContainer.removeChild(services[id].view); - } + const oldNavButton = removeServiceFeatures(id); // Create new service services[id] = data; - createService(id, nextNavButton); + createService(id, oldNavButton ? oldNavButton.nextSibling : null); if (parseInt(selectedService) === id) { setActiveService(id); } @@ -172,19 +179,7 @@ ipcRenderer.on('reorderService', (e, serviceId, targetId) => { }); ipcRenderer.on('deleteService', (e, id) => { - const nav = document.querySelector('#service-selector'); - - // Remove nav - const navButton = nav.querySelector('li:nth-of-type(' + (id + 1) + ')'); - if (navButton) { - nav.removeChild(navButton); - } - - // Remove webview - if (services[id].view) { - const serviceContainer = document.querySelector('#services'); - serviceContainer.removeChild(services[id].view); - } + removeServiceFeatures(id); if (parseInt(selectedService) === id) { setActiveService(0); diff --git a/src/main.js b/src/main.js index 3f5d9bc..1277f8c 100644 --- a/src/main.js +++ b/src/main.js @@ -144,6 +144,7 @@ function createWindow() { config.services[id] = newService; } else { config.services.push(newService); + id = config.services.indexOf(newService); } config.save(); From d54e68845c730337b9070598a5cc94ada10a0b23 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Fri, 6 Mar 2020 15:19:06 +0100 Subject: [PATCH 04/10] Preview link target url on over --- resources/index.html | 3 ++- resources/js/index.js | 21 ++++++++++++++++++++ resources/style/index.css | 41 +++++++++++++++++++++++++++++++++++++-- 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/resources/index.html b/resources/index.html index 01e5523..7e85c2d 100644 --- a/resources/index.html +++ b/resources/index.html @@ -30,7 +30,8 @@
+
- \ No newline at end of file + diff --git a/resources/js/index.js b/resources/js/index.js index 17ecfd5..15feec0 100644 --- a/resources/js/index.js +++ b/resources/js/index.js @@ -17,6 +17,7 @@ let forwardButton; let backButton; let addButton; let emptyPage; +let urlPreview; // Service context menu @@ -117,6 +118,16 @@ ipcRenderer.on('data', (event, appData, brandIcons, solidIcons, actualServices, // Empty emptyPage = emptyUrl; + + // Url preview element + urlPreview = document.getElementById("url-preview"); + urlPreview.addEventListener('mouseover', () => { + if (urlPreview.classList.contains('right')) { + urlPreview.classList.remove('right'); + } else { + urlPreview.classList.add('right'); + } + }); }); function removeServiceFeatures(id) { @@ -382,6 +393,16 @@ function loadService(serviceId, service) { } } }); + + // Display target urls + service.view.addEventListener('update-target-url', (event) => { + if (event.url.length === 0) { + urlPreview.classList.add('hidden'); + } else { + urlPreview.classList.remove('hidden'); + urlPreview.innerHTML = event.url; + } + }); } } diff --git a/resources/style/index.css b/resources/style/index.css index 5734982..e726b6c 100644 --- a/resources/style/index.css +++ b/resources/style/index.css @@ -179,11 +179,11 @@ body { flex-grow: 1; } -#services > *:not(.loader) { +#services > *:not(.loader):not(#url-preview) { height: 100%; } -#services > :not(.active):not(.loader) { +#services > :not(.active):not(.loader):not(#url-preview) { display: none; } @@ -197,3 +197,40 @@ body { transform: translate(-50%, -50%); z-index: -1; } + +#url-preview { + position: absolute; + bottom: 0; + left: 0; + display: block; + padding: 2px 5px 1px 5px; + + max-width: 48%; + overflow: hidden; + text-overflow: ellipsis; + + font-family: monospace; + + border-width: 1px 1px 0 0; + border-color: #232323; + border-style: solid; + border-radius: 0 5px 0 0; + + background: #2b2b2b; + + opacity: 1; + transition: 100ms ease opacity; + transition-delay: 200ms; +} + +#url-preview.right { + left: auto; + right: 0; + + border-width: 1px 0 0 1px; + border-radius: 5px 0 0 0; +} + +#url-preview.hidden { + opacity: 0; +} From 40e2235bbea546d519de2c581b05eee3471b787f Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Wed, 1 Apr 2020 09:24:10 +0200 Subject: [PATCH 05/10] Security: ask user on permission request --- resources/js/index.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/resources/js/index.js b/resources/js/index.js index 15feec0..7861e94 100644 --- a/resources/js/index.js +++ b/resources/js/index.js @@ -6,6 +6,7 @@ const { Menu, MenuItem, dialog, + session, } = remote; const appInfo = {}; @@ -370,10 +371,32 @@ function loadService(serviceId, service) { } }); + // Set custom user agent if (typeof service.customUserAgent === 'string') { let webContents = remote.webContents.fromId(service.view.getWebContentsId()); webContents.setUserAgent(service.customUserAgent); } + + // Set permission request handler + session.fromPartition(service.view.partition) + .setPermissionRequestHandler(((webContents, permission, callback, details) => { + dialog.showMessageBox(remote.getCurrentWindow(), { + type: 'question', + title: 'Grant ' + permission + ' permission', + message: 'Do you wish to grant the ' + permission + ' permission to ' + details.requestingUrl + '?', + buttons: ['Deny', 'Authorize'], + cancelId: 0, + }).then(result => { + if (result.response === 1) { + console.log('Granted', permission, 'for service', details.requestingUrl); + callback(true); + } else { + console.log('Denied', permission, 'for service', details.requestingUrl); + callback(false); + } + }).catch(console.error); + })); + service.view.setAttribute('src', service.url); }); From da0c444215aff83c5eafdd42f03a924cded722b6 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Wed, 1 Apr 2020 09:24:44 +0200 Subject: [PATCH 06/10] Security: only open external links that start with https:// --- src/main.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main.js b/src/main.js index 1277f8c..cd18d6c 100644 --- a/src/main.js +++ b/src/main.js @@ -77,7 +77,9 @@ function createWindow() { console.log('Setting external links to open in default OS browser'); contents.on('new-window', (e, url) => { e.preventDefault(); - shell.openExternal(url); + if (url.startsWith('https://')) { + shell.openExternal(url); + } }); } }); From 041d97154fce8a6cb48ed076431614eddf1eaae0 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Wed, 1 Apr 2020 09:32:13 +0200 Subject: [PATCH 07/10] Add content security policy meta tag in all html files --- resources/empty.html | 1 + resources/index.html | 2 ++ resources/service-settings.html | 2 ++ 3 files changed, 5 insertions(+) diff --git a/resources/empty.html b/resources/empty.html index 7cd636a..28f436b 100644 --- a/resources/empty.html +++ b/resources/empty.html @@ -3,6 +3,7 @@ Loading... + diff --git a/resources/index.html b/resources/index.html index 7e85c2d..46b48e3 100644 --- a/resources/index.html +++ b/resources/index.html @@ -4,6 +4,8 @@ Tabs + + diff --git a/resources/service-settings.html b/resources/service-settings.html index bdbb3c4..52968fe 100644 --- a/resources/service-settings.html +++ b/resources/service-settings.html @@ -4,6 +4,8 @@ Service settings + + From b1702cfb2c0ebf3e2cf5aa036d6fea99d10cdb09 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Wed, 1 Apr 2020 09:53:00 +0200 Subject: [PATCH 08/10] Security: disable remote module in webviews --- resources/js/index.js | 135 +++++++++++++++++++++++++++++++- resources/js/service-webview.js | 130 ------------------------------ 2 files changed, 133 insertions(+), 132 deletions(-) delete mode 100644 resources/js/service-webview.js diff --git a/resources/js/index.js b/resources/js/index.js index 7861e94..4f99d97 100644 --- a/resources/js/index.js +++ b/resources/js/index.js @@ -1,6 +1,8 @@ const { remote, ipcRenderer, + clipboard, + shell, } = require('electron'); const { Menu, @@ -342,9 +344,9 @@ function loadService(serviceId, service) { document.querySelector('#services > .loader').classList.remove('hidden'); service.view = document.createElement('webview'); + service.view.setAttribute('enableRemoteModule', 'false'); service.view.setAttribute('partition', 'persist:service_' + service.partition); service.view.setAttribute('autosize', 'true'); - service.view.setAttribute('preload', 'js/service-webview.js'); service.view.setAttribute('src', emptyPage); // Append element to DOM @@ -371,12 +373,16 @@ function loadService(serviceId, service) { } }); + const webContents = remote.webContents.fromId(service.view.getWebContentsId()); + // Set custom user agent if (typeof service.customUserAgent === 'string') { - let webContents = remote.webContents.fromId(service.view.getWebContentsId()); webContents.setUserAgent(service.customUserAgent); } + // Set context menu + setContextMenu(webContents); + // Set permission request handler session.fromPartition(service.view.partition) .setPermissionRequestHandler(((webContents, permission, callback, details) => { @@ -507,3 +513,128 @@ function goBack() { let view = services[selectedService].view; if (view) remote.webContents.fromId(view.getWebContentsId()).goBack(); } + +function setContextMenu(webContents) { + webContents.on('context-menu', (event, props) => { + const menu = new Menu(); + const {editFlags} = props; + + // linkURL + if (props.linkURL.length > 0) { + if (menu.items.length > 0) { + menu.append(new MenuItem({type: 'separator'})); + } + + menu.append(new MenuItem({ + label: 'Copy link URL', + click: () => { + clipboard.writeText(props.linkURL); + }, + })); + menu.append(new MenuItem({ + label: 'Open URL in default browser', + click: () => { + if (props.linkURL.startsWith('https://')) { + shell.openExternal(props.linkURL); + } + }, + })); + } + + // Image + if (props.hasImageContents) { + if (menu.items.length > 0) { + menu.append(new MenuItem({type: 'separator'})); + } + + menu.append(new MenuItem({ + label: 'Copy image', + click: () => { + webContents.copyImageAt(props.x, props.y); + }, + })); + + menu.append(new MenuItem({ + label: 'Save image as', + click: () => { + webContents.downloadURL(props.srcURL); + }, + })); + } + + // Text clipboard + if (editFlags.canUndo || editFlags.canRedo || editFlags.canCut || editFlags.canCopy || editFlags.canPaste || editFlags.canDelete) { + if (editFlags.canUndo || editFlags.canRedo) { + if (menu.items.length > 0) { + menu.append(new MenuItem({type: 'separator'})); + } + + if (editFlags.canUndo) { + menu.append(new MenuItem({ + label: 'Undo', + role: 'undo', + })); + } + if (editFlags.canRedo) { + menu.append(new MenuItem({ + label: 'Redo', + role: 'redo', + })); + } + } + + if (menu.items.length > 0) { + menu.append(new MenuItem({type: 'separator'})); + } + + menu.append(new MenuItem({ + label: 'Cut', + role: 'cut', + enabled: editFlags.canCut, + })); + menu.append(new MenuItem({ + label: 'Copy', + role: 'copy', + enabled: editFlags.canCopy, + })); + menu.append(new MenuItem({ + label: 'Paste', + role: 'paste', + enabled: editFlags.canPaste, + })); + menu.append(new MenuItem({ + label: 'Delete', + role: 'delete', + enabled: editFlags.canDelete, + })); + } + + if (editFlags.canSelectAll) { + if (menu.items.length > 0) { + menu.append(new MenuItem({type: 'separator'})); + } + + menu.append(new MenuItem({ + label: 'Select all', + role: 'selectAll', + })); + } + + // Inspect element + if (menu.items.length > 0) { + menu.append(new MenuItem({type: 'separator'})); + } + + menu.append(new MenuItem({ + label: 'Inspect element', + click: () => { + webContents.inspectElement(props.x, props.y); + }, + })); + + + menu.popup({ + window: remote.getCurrentWindow(), + }); + }); +} \ No newline at end of file diff --git a/resources/js/service-webview.js b/resources/js/service-webview.js deleted file mode 100644 index 3af70d4..0000000 --- a/resources/js/service-webview.js +++ /dev/null @@ -1,130 +0,0 @@ -const { - remote, - clipboard, -} = require('electron'); -const { - Menu, - MenuItem, -} = remote; - -const webContents = remote.getCurrentWebContents(); -webContents.on('context-menu', (event, props) => { - const menu = new Menu(); - const {editFlags} = props; - - // linkURL - if (props.linkURL.length > 0) { - if (menu.items.length > 0) { - menu.append(new MenuItem({type: 'separator'})); - } - - menu.append(new MenuItem({ - label: 'Copy link URL', - click: () => { - clipboard.writeText(props.linkURL); - }, - })); - menu.append(new MenuItem({ - label: 'Open URL in default browser', - click: () => { - window.open(props.linkURL, '_blank'); - }, - })); - } - - // Image - if (props.hasImageContents) { - if (menu.items.length > 0) { - menu.append(new MenuItem({type: 'separator'})); - } - - menu.append(new MenuItem({ - label: 'Copy image', - click: () => { - webContents.copyImageAt(props.x, props.y); - }, - })); - - menu.append(new MenuItem({ - label: 'Save image as', - click: () => { - webContents.downloadURL(props.srcURL); - }, - })); - } - - // Text clipboard - if (editFlags.canUndo || editFlags.canRedo || editFlags.canCut || editFlags.canCopy || editFlags.canPaste || editFlags.canDelete) { - if (editFlags.canUndo || editFlags.canRedo) { - if (menu.items.length > 0) { - menu.append(new MenuItem({type: 'separator'})); - } - - if (editFlags.canUndo) { - menu.append(new MenuItem({ - label: 'Undo', - role: 'undo', - })); - } - if (editFlags.canRedo) { - menu.append(new MenuItem({ - label: 'Redo', - role: 'redo', - })); - } - } - - if (menu.items.length > 0) { - menu.append(new MenuItem({type: 'separator'})); - } - - menu.append(new MenuItem({ - label: 'Cut', - role: 'cut', - enabled: editFlags.canCut, - })); - menu.append(new MenuItem({ - label: 'Copy', - role: 'copy', - enabled: editFlags.canCopy, - })); - menu.append(new MenuItem({ - label: 'Paste', - role: 'paste', - enabled: editFlags.canPaste, - })); - menu.append(new MenuItem({ - label: 'Delete', - role: 'delete', - enabled: editFlags.canDelete, - })); - } - - if (editFlags.canSelectAll) { - if (menu.items.length > 0) { - menu.append(new MenuItem({type: 'separator'})); - } - - menu.append(new MenuItem({ - label: 'Select all', - role: 'selectAll', - })); - } - - // Inspect element - if (menu.items.length > 0) { - menu.append(new MenuItem({type: 'separator'})); - } - - menu.append(new MenuItem({ - label: 'Inspect element', - click: () => { - webContents.inspectElement(props.x, props.y); - }, - })); - - - menu.popup({ - window: remote.getCurrentWindow(), - }); -}); \ No newline at end of file From 6a8fb6e2b2507d6ce2bf0161bff36022be47913a Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Wed, 1 Apr 2020 09:55:28 +0200 Subject: [PATCH 09/10] yarn: upgrade packages --- package.json | 4 +- yarn.lock | 273 ++++++++++++++++++++++++++------------------------- 2 files changed, 139 insertions(+), 138 deletions(-) diff --git a/package.json b/package.json index 57c712c..5bddac1 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "single-instance": "^0.0.1" }, "devDependencies": { - "electron": "^8.0.3", + "electron": "^8.2.0", "electron-builder": "^22.4.0" }, "build": { @@ -71,6 +71,6 @@ } ] }, - "electronVersion": "8.0.3" + "electronVersion": "8.2.0" } } diff --git a/yarn.lock b/yarn.lock index f1020c6..75f65e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,14 +16,15 @@ ajv-keywords "^3.1.0" "@electron/get@^1.0.1": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.7.6.tgz#f1c8e87cbef0bce78644159b72340821d52066b3" - integrity sha512-zlNikt6ziVLNcm4lly1L4y62fJd/eYpEBjF5DiV/VAQq2vdPjH4sbUphXt9upmHz86lAhAj8g9lTnWrxJ/KBZw== + version "1.9.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.9.0.tgz#7fa6e61d7ff50fb82a8a41f437af7de3b97aa9a5" + integrity sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw== dependencies: debug "^4.1.1" env-paths "^2.2.0" fs-extra "^8.1.0" got "^9.6.0" + progress "^2.0.3" sanitize-filename "^1.6.2" sumchecker "^3.0.1" optionalDependencies: @@ -60,14 +61,14 @@ "@types/node" "*" "@types/node@*": - version "13.7.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99" - integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg== + version "13.9.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.8.tgz#09976420fc80a7a00bf40680c63815ed8c7616f4" + integrity sha512-1WgO8hsyHynlx7nhP1kr0OFzsgKz5XDQL+Lfc3b1Q3qIln/n8cKD4m09NJ0+P1Rq7Zgnc7N0+SsMnoD1rEb0kA== "@types/node@^12.0.12": - version "12.12.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.28.tgz#3a2b5f8d21f96ace690a8832ae9779114612575f" - integrity sha512-g73GJYJDXgf0jqg+P9S8h2acWbDXNkoCX8DLtJVu7Fkn788pzQ/oJsrdJz/2JejRf/SjfZaAhsw+3nd1D5EWGg== + version "12.12.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.34.tgz#0a5d6ae5d22612f0cf5f10320e1fc5d2a745dcb8" + integrity sha512-BneGN0J9ke24lBRn44hVHNeDlrXRYF+VRp0HbSUNnEZahXGAysHZIqnf/hER6aabdBgzM4YOV4jrR8gj4Zfi0g== "@types/semver@^7.1.0": version "7.1.0" @@ -94,11 +95,11 @@ ajv-keywords@^3.1.0: integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== ajv@^6.1.0: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== dependencies: - fast-deep-equal "^2.0.1" + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" @@ -133,21 +134,21 @@ app-builder-bin@3.5.5: resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.5.tgz#c83200dccd8df5ccb2a5adcd41b2a76bacfb531a" integrity sha512-ZcHzJ9Xl+azPqdKzXZKdRZmkNmbxHHZyl4cbobNf8qMQpoPChpcov8riVrZSbu/0cT/JqJ8LOwJjy1OAwbChaQ== -app-builder-lib@22.4.0, app-builder-lib@~22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.4.0.tgz#af7f8f990d99b24f646859fe099617fa4a256d65" - integrity sha512-PcoKR5EDc6hkjNA7RzE0Ery1w1+YOH2VPk9AGQWAvQluj5h6xcURMQilLhQYONNZ3N/beZmiNxPzQF0CBRCnwA== +app-builder-lib@22.4.1, app-builder-lib@~22.4.1: + version "22.4.1" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.4.1.tgz#9d73b2834e434fb65fc9571ae3fed3c1470b6915" + integrity sha512-epwUzIM+2pcdy/If9koTP74CKx4v7xGPj75a2Z5cM4rrGN9yVZ3eDUBbfF0e0qE4Qmcv5pd0BAZJ26bGm8NWsQ== dependencies: "7zip-bin" "~5.0.3" "@develar/schema-utils" "~2.1.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.4.0" - builder-util-runtime "8.6.1" + builder-util "22.4.1" + builder-util-runtime "8.6.2" chromium-pickle-js "^0.2.0" debug "^4.1.1" ejs "^3.0.1" - electron-publish "22.4.0" + electron-publish "22.4.1" fs-extra "^8.1.0" hosted-git-info "^3.0.4" is-ci "^2.0.0" @@ -217,30 +218,35 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -builder-util-runtime@8.6.1: - version "8.6.1" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.1.tgz#cf9a268fa51704de24f3c085aa8d1d1b3767d9ea" - integrity sha512-gwIUtMaICmc+e2EC3u3byXcwCyfhtG40LJRNnGfs8AYqacKl4ZLP50ab+uDttn7QAXe0LfMAuKz9v8bCODV0yg== +builder-util-runtime@8.6.2: + version "8.6.2" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.2.tgz#8270e15b012d8d3b110f3e327b0fd8b0e07b1686" + integrity sha512-9QnIBISfhgQ2BxtRLidVqf/v5HD73vSKZDllpUmGd2L6VORGQk7cZAPmPtw4HQM3gPBelyVJ5yIjMNZ8xjmd1A== dependencies: debug "^4.1.1" sax "^1.2.4" -builder-util@22.4.0, builder-util@~22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.4.0.tgz#4ee05c3b26b69e5be3d8b120fd1cce2b8d403400" - integrity sha512-U2mNL9IewgTqfhvNexrm3UFdRrI6Rr48HkH9Z0IO/D86jGrCUVK8UXC8S8AHj1Cfa/VdYrMOxdXr3kajZXJvfg== +builder-util@22.4.1, builder-util@~22.4.1: + version "22.4.1" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.4.1.tgz#49cce9f06a62cdccda66d5efa82077040fa1f462" + integrity sha512-+ysLc7cC4w6P7rBxmZ5X2aU3QvcwFoWCl1us+mcUKdsGmJAtFUMPJqueeptdxjyPrPShIUOKHzA8uk5A3d1fHg== dependencies: "7zip-bin" "~5.0.3" "@types/debug" "^4.1.5" "@types/fs-extra" "^8.1.0" app-builder-bin "3.5.5" bluebird-lst "^1.0.9" - builder-util-runtime "8.6.1" + builder-util-runtime "8.6.2" chalk "^3.0.0" debug "^4.1.1" fs-extra "^8.1.0" @@ -324,7 +330,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2: +concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -369,7 +375,7 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -debug@2.6.9: +debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -401,9 +407,9 @@ deep-extend@^0.6.0: integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== defer-to-connect@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.1.tgz#88ae694b93f67b81815a2c8c769aef6574ac8f2f" - integrity sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== define-properties@^1.1.3: version "1.1.3" @@ -417,14 +423,14 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== -dmg-builder@22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.4.0.tgz#bd030dd1f9e43a4ebb2a82f4a7cec1acfc60ed3c" - integrity sha512-tQvHhI2PZi4mn2CqzLyWohbipwrFJ5Wz97shsnzgje4uvVTnScF5nimoKCfnNIX5pcKL17Ij7f8WpluqeRDBTg== +dmg-builder@22.4.1: + version "22.4.1" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.4.1.tgz#ab80d3d6e4ed8a1d38beddbfe97c8f7a794dd932" + integrity sha512-hEemh7n0zoVt7zPPwvn7iOttP03oENjJ4ApttPmt8oDnX8T4q42MjGWyDlLkPMplMJfoTxkkNqmm296f0OYM8Q== dependencies: - app-builder-lib "~22.4.0" + app-builder-lib "~22.4.1" bluebird-lst "^1.0.9" - builder-util "~22.4.0" + builder-util "~22.4.1" fs-extra "^8.1.0" iconv-lite "^0.5.1" js-yaml "^3.13.1" @@ -453,22 +459,22 @@ duplexer3@^0.1.4: integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= ejs@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.0.1.tgz#30c8f6ee9948502cc32e85c37a3f8b39b5a614a5" - integrity sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.0.2.tgz#745b01cdcfe38c1c6a2da3bbb2d9957060a31226" + integrity sha512-IncmUpn1yN84hy2shb0POJ80FWrfGNY0cxO9f4v+/sG7qcBvAtVWUA1IdzY/8EYUmOVhoKJVdJjNd3AZcnxOjA== electron-builder@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.4.0.tgz#c2eedd0eb982e7421b96693252525cc15ba9e6e4" - integrity sha512-6gmXgtkc3DHN+qqTdpFrE340BvzYOLrYQnvVX8Dpz+FLBIj6kg9eH4/MVDrqRjeW8F6DsIZ3jnlM91cWiE5r0g== + version "22.4.1" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.4.1.tgz#7a7a2cbd9955c90cecc36de32ecba7f565265bab" + integrity sha512-13CjZcGeJS+c3EKRwFT/Oty5Niif5g1FwDioBLEbjkPCPQgxdtDsr+rJtCu9qxkiKDYpAoPS+t/clNk0efONvQ== dependencies: "@types/yargs" "^15.0.4" - app-builder-lib "22.4.0" + app-builder-lib "22.4.1" bluebird-lst "^1.0.9" - builder-util "22.4.0" - builder-util-runtime "8.6.1" + builder-util "22.4.1" + builder-util-runtime "8.6.2" chalk "^3.0.0" - dmg-builder "22.4.0" + dmg-builder "22.4.1" fs-extra "^8.1.0" is-ci "^2.0.0" lazy-val "^1.0.4" @@ -477,27 +483,27 @@ electron-builder@^22.4.0: update-notifier "^4.1.0" yargs "^15.1.0" -electron-publish@22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.4.0.tgz#65fffae3c6a6f5bf68cf90127c2d2b21a2cf2bd3" - integrity sha512-50p+H/FsgwvOgLP8Oekvar07MR70M+cYROlH3ty5bIq0io6doEVPl+j/Cc8tfN/tygZecBKUCdYJMXjILQPn+A== +electron-publish@22.4.1: + version "22.4.1" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.4.1.tgz#a7fcf166786f7d5957f19a70ee8389f219769ba5" + integrity sha512-nwKNum3KXm+01rtWX2pc1jhazdzDy2zYnQx+zmXphZchjd6UOMX3ZN0xyZUCKugw5ZliflT6LkgbrcBXBtYD3A== dependencies: "@types/fs-extra" "^8.1.0" bluebird-lst "^1.0.9" - builder-util "~22.4.0" - builder-util-runtime "8.6.1" + builder-util "~22.4.1" + builder-util-runtime "8.6.2" chalk "^3.0.0" fs-extra "^8.1.0" lazy-val "^1.0.4" mime "^2.4.4" electron-updater@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.2.4.tgz#9015bb8f85b24d6f8a620a90dd0fe128335c902b" - integrity sha512-iqN0uoP2+Nkiljp/o4DzZVeSpOOCMtP8+pqL5/qDI+1/ARW99T2TFcpRrPwX4dntowNV7X5T19aKFLK3+9AdkA== + version "4.2.5" + resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.2.5.tgz#dbced8da6f8c6fc2dc662f2776131f5a49ce018d" + integrity sha512-ir8SI3capF5pN4LTQY79bP7oqiBKjgtdDW378xVId5VcGUZ+Toei2j+fgx1mq3y4Qg19z4HqLxEZ9FqMD0T0RA== dependencies: "@types/semver" "^7.1.0" - builder-util-runtime "8.6.1" + builder-util-runtime "8.6.2" fs-extra "^8.1.0" js-yaml "^3.13.1" lazy-val "^1.0.4" @@ -506,9 +512,9 @@ electron-updater@^4.2.4: semver "^7.1.3" electron@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/electron/-/electron-8.0.3.tgz#e0488baaa69291e26dc981ea9bc75b5da92c5c88" - integrity sha512-lr/tTr9cBzocREmL8r/P3WKnGqpKeaMFZjNVXDGd3npxwnJVUd7SHQW7LZIhZ1W2XoU3uBwTYbyH43iCIElsqw== + version "8.2.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-8.2.0.tgz#f3e3de23a6178b5ad7baa70f4814d6332a3212c2" + integrity sha512-mnV43gKCrCUMHLmGws/DU/l8LhaxrFD53A4ofwtthdCqOZWGIdk1+eMphiVumXR5a3lC64XVvmXQ2k28i7F/zw== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" @@ -567,29 +573,29 @@ esprima@^4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== extract-zip@^1.0.3: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" @@ -699,9 +705,9 @@ has-yarn@^2.1.0: integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== hosted-git-info@^2.1.4: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== hosted-git-info@^3.0.4: version "3.0.4" @@ -711,9 +717,9 @@ hosted-git-info@^3.0.4: lru-cache "^5.1.1" http-cache-semantics@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" - integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== iconv-lite@^0.5.1: version "0.5.1" @@ -798,9 +804,9 @@ isarray@~1.0.0: integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isbinaryfile@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.4.tgz#6803f81a8944201c642b6e17da041e24deb78712" - integrity sha512-pEutbN134CzcjlLS1myKX/uxNjwU5eBVSprvkpv3+3dqhBHUZLIWJQowC40w5c0Zf19vBY8mrZl88y5J4RAPbQ== + version "4.0.5" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.5.tgz#7193454fdd7fc0b12855c36c48d4ac7368fa3ec9" + integrity sha512-Jvz0gpTh1AILHMCBUyqq7xv1ZOQrxTDwyp1/QUq1xFpOBvp4AH5uEobPePJht8KnBGqQIH7We6OR73mXsjG0cA== js-yaml@^3.13.1: version "3.13.1" @@ -826,11 +832,11 @@ json-stringify-safe@^5.0.1: integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + version "2.1.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" + integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== dependencies: - minimist "^1.2.0" + minimist "^1.2.5" jsonfile@^4.0.0: version "4.0.0" @@ -923,22 +929,17 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= +mkdirp@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== dependencies: - minimist "0.0.8" + minimist "^1.2.5" ms@2.0.0: version "2.0.0" @@ -1054,6 +1055,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -1102,9 +1108,9 @@ read-config-file@5.0.2: lazy-val "^1.0.4" readable-stream@^2.2.2: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -1115,12 +1121,11 @@ readable-stream@^2.2.2: util-deprecate "~1.0.1" registry-auth-token@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" - integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" + integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== dependencies: rc "^1.2.8" - safe-buffer "^5.0.1" registry-url@^5.0.0: version "5.1.0" @@ -1140,9 +1145,9 @@ require-main-filename@^2.0.0: integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== resolve@^1.10.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff" - integrity sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg== + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: path-parse "^1.0.6" @@ -1170,11 +1175,6 @@ rsvp@^3.1.0: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== -safe-buffer@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -1237,9 +1237,9 @@ set-blocking@^2.0.0: integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== single-instance@^0.0.1: version "0.0.1" @@ -1521,18 +1521,18 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" - integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== +yargs-parser@^18.1.1: + version "18.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" + integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" - integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== dependencies: cliui "^6.0.0" decamelize "^1.2.0" @@ -1544,11 +1544,12 @@ yargs@^15.1.0: string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^16.1.0" + yargs-parser "^18.1.1" -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: - fd-slicer "~1.0.1" + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" From 2a3d8cf0652777d1076eacca3d16f75501ce8347 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Wed, 1 Apr 2020 10:00:57 +0200 Subject: [PATCH 10/10] Version 0.6.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5bddac1..6eb10a4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tabs", - "version": "0.5.3", + "version": "0.6.0", "description": "Persistent and separate browser tabs in one window.", "author": { "name": "Alice Gaudon",