Merge branch 'develop'

This commit is contained in:
Alice Gaudon 2020-04-01 10:04:09 +02:00
commit 87d37ea5ea
12 changed files with 456 additions and 350 deletions

View File

@ -1,12 +1,24 @@
# Tabs # 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). 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 ## Contributing
Pull requests are welcome and appreciated!
## License ## License
[MIT - see LICENSE file](LICENSE) [MIT - see LICENSE file](LICENSE)

View File

@ -8,20 +8,19 @@
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24" width="20"
height="24" height="20"
viewBox="0 0 24 24" viewBox="0 0 20 20"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="feather feather-sidebar" class="feather feather-sidebar"
version="1.1" version="1.1"
id="svg6" id="svg6"
sodipodi:docname="logo.svg" sodipodi:docname="logo.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14" 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">
<metadata <metadata
id="metadata12"> id="metadata12">
<rdf:RDF> <rdf:RDF>
@ -60,41 +59,45 @@
y1="0" y1="0"
x2="24" x2="24"
y2="24" y2="24"
gradientUnits="userSpaceOnUse" /> gradientUnits="userSpaceOnUse"
gradientTransform="scale(0.83333333)" />
<mask
maskUnits="userSpaceOnUse"
id="mask854">
<g
style="display:inline;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
id="g860"
transform="translate(-2,-2.0142425)"
mask="none"
clip-path="none">
<rect
style="stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="3"
y="3"
width="18"
height="18"
rx="2"
ry="2"
id="rect856" />
<line
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x1="9"
y1="3"
x2="9"
y2="21"
id="line858" />
</g>
</mask>
<filter <filter
inkscape:collect="always" inkscape:collect="always"
style="color-interpolation-filters:sRGB" style="color-interpolation-filters:sRGB"
id="filter929"> id="filter862">
<feBlend <feBlend
inkscape:collect="always" inkscape:collect="always"
mode="hard-light" mode="hard-light"
in2="BackgroundImage" in2="BackgroundImage"
id="feBlend931" /> id="feBlend864" />
</filter> </filter>
<mask
maskUnits="userSpaceOnUse"
id="mask894">
<g
id="g900"
style="stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none">
<rect
id="rect896"
ry="2"
rx="2"
height="18"
width="18"
y="3"
x="3"
style="stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<line
id="line898"
y2="21"
x2="9"
y1="3"
x1="9"
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</mask>
</defs> </defs>
<sodipodi:namedview <sodipodi:namedview
pagecolor="#ffffff" pagecolor="#ffffff"
@ -109,18 +112,21 @@
inkscape:window-height="1353" inkscape:window-height="1353"
id="namedview8" id="namedview8"
showgrid="false" showgrid="false"
inkscape:zoom="27.812867" inkscape:zoom="39.333334"
inkscape:cx="6.8914249" inkscape:cx="6.9859856"
inkscape:cy="16.985938" inkscape:cy="12.882666"
inkscape:window-x="1934" inkscape:window-x="1934"
inkscape:window-y="46" inkscape:window-y="46"
inkscape:window-maximized="0" inkscape:window-maximized="0"
inkscape:current-layer="svg6" /> inkscape:current-layer="svg6" />
<g <g
style="display:inline;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none" style="display:inline;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
id="g892"> id="g892"
transform="translate(-2,-2.0142425)"
mask="none"
clip-path="none">
<rect <rect
style="stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="display:inline;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="3" x="3"
y="3" y="3"
width="18" width="18"
@ -129,7 +135,7 @@
ry="2" ry="2"
id="rect888" /> id="rect888" />
<line <line
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" style="display:inline;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x1="9" x1="9"
y1="3" y1="3"
x2="9" x2="9"
@ -137,11 +143,12 @@
id="line890" /> id="line890" />
</g> </g>
<rect <rect
style="display:inline;opacity:1;fill:url(#linearGradient837);fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal;filter:url(#filter929)" style="display:inline;opacity:1;fill:url(#linearGradient837);fill-opacity:1;stroke:none;stroke-width:3.33333349;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal;filter:url(#filter862)"
id="rect827" id="rect827"
width="24" width="20"
height="24" height="20"
x="0" x="0"
y="0" y="0"
mask="url(#mask894)" /> mask="url(#mask854)"
clip-path="none" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -1,6 +1,6 @@
{ {
"name": "tabs", "name": "tabs",
"version": "0.5.3", "version": "0.6.0",
"description": "Persistent and separate browser tabs in one window.", "description": "Persistent and separate browser tabs in one window.",
"author": { "author": {
"name": "Alice Gaudon", "name": "Alice Gaudon",
@ -24,7 +24,7 @@
"single-instance": "^0.0.1" "single-instance": "^0.0.1"
}, },
"devDependencies": { "devDependencies": {
"electron": "^8.0.3", "electron": "^8.2.0",
"electron-builder": "^22.4.0" "electron-builder": "^22.4.0"
}, },
"build": { "build": {
@ -71,6 +71,6 @@
} }
] ]
}, },
"electronVersion": "8.0.3" "electronVersion": "8.2.0"
} }
} }

View File

@ -3,6 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Loading...</title> <title>Loading...</title>
<meta http-equiv="Content-Security-Policy" content="default-src 'none'">
</head> </head>
<body> <body>

View File

@ -4,6 +4,8 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Tabs</title> <title>Tabs</title>
<meta http-equiv="Content-Security-Policy" content="style-src 'self' 'unsafe-inline' https://use.fontawesome.com; font-src 'self' https://use.fontawesome.com; script-src 'self' 'unsafe-inline'">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous"> integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
@ -30,7 +32,8 @@
<div id="services"> <div id="services">
<div class="loader"></div> <div class="loader"></div>
<div id="url-preview" class="hidden"></div>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,11 +1,14 @@
const { const {
remote, remote,
ipcRenderer, ipcRenderer,
clipboard,
shell,
} = require('electron'); } = require('electron');
const { const {
Menu, Menu,
MenuItem, MenuItem,
dialog, dialog,
session,
} = remote; } = remote;
const appInfo = {}; const appInfo = {};
@ -17,6 +20,7 @@ let forwardButton;
let backButton; let backButton;
let addButton; let addButton;
let emptyPage; let emptyPage;
let urlPreview;
// Service context menu // Service context menu
@ -117,29 +121,46 @@ ipcRenderer.on('data', (event, appData, brandIcons, solidIcons, actualServices,
// Empty // Empty
emptyPage = emptyUrl; 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) {
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) => { ipcRenderer.on('updateService', (e, id, data) => {
if (id === null) { if (id === null) {
services.push(data); services.push(data);
createService(services.length - 1); createService(services.length - 1);
} else { } else {
const nav = document.querySelector('#service-selector'); const oldNavButton = removeServiceFeatures(id);
// 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);
}
// Create new service // Create new service
services[id] = data; services[id] = data;
createService(id, nextNavButton); createService(id, oldNavButton ? oldNavButton.nextSibling : null);
if (parseInt(selectedService) === id) { if (parseInt(selectedService) === id) {
setActiveService(id); setActiveService(id);
} }
@ -172,19 +193,7 @@ ipcRenderer.on('reorderService', (e, serviceId, targetId) => {
}); });
ipcRenderer.on('deleteService', (e, id) => { ipcRenderer.on('deleteService', (e, id) => {
const nav = document.querySelector('#service-selector'); removeServiceFeatures(id);
// 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);
}
if (parseInt(selectedService) === id) { if (parseInt(selectedService) === id) {
setActiveService(0); setActiveService(0);
@ -335,9 +344,9 @@ function loadService(serviceId, service) {
document.querySelector('#services > .loader').classList.remove('hidden'); document.querySelector('#services > .loader').classList.remove('hidden');
service.view = document.createElement('webview'); service.view = document.createElement('webview');
service.view.setAttribute('enableRemoteModule', 'false');
service.view.setAttribute('partition', 'persist:service_' + service.partition); service.view.setAttribute('partition', 'persist:service_' + service.partition);
service.view.setAttribute('autosize', 'true'); service.view.setAttribute('autosize', 'true');
service.view.setAttribute('preload', 'js/service-webview.js');
service.view.setAttribute('src', emptyPage); service.view.setAttribute('src', emptyPage);
// Append element to DOM // Append element to DOM
@ -364,10 +373,36 @@ function loadService(serviceId, service) {
} }
}); });
const webContents = remote.webContents.fromId(service.view.getWebContentsId());
// Set custom user agent
if (typeof service.customUserAgent === 'string') { if (typeof service.customUserAgent === 'string') {
let webContents = remote.webContents.fromId(service.view.getWebContentsId());
webContents.setUserAgent(service.customUserAgent); webContents.setUserAgent(service.customUserAgent);
} }
// Set context menu
setContextMenu(webContents);
// 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); service.view.setAttribute('src', service.url);
}); });
@ -387,6 +422,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;
}
});
} }
} }
@ -468,3 +513,128 @@ function goBack() {
let view = services[selectedService].view; let view = services[selectedService].view;
if (view) remote.webContents.fromId(view.getWebContentsId()).goBack(); 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(),
});
});
}

View File

@ -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(),
});
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -4,6 +4,8 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Service settings</title> <title>Service settings</title>
<meta http-equiv="Content-Security-Policy" content="style-src 'self' 'unsafe-inline' https://use.fontawesome.com; font-src 'self' https://use.fontawesome.com; script-src 'self' 'unsafe-inline'">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css"
integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous"> integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">

View File

@ -179,11 +179,11 @@ body {
flex-grow: 1; flex-grow: 1;
} }
#services > *:not(.loader) { #services > *:not(.loader):not(#url-preview) {
height: 100%; height: 100%;
} }
#services > :not(.active):not(.loader) { #services > :not(.active):not(.loader):not(#url-preview) {
display: none; display: none;
} }
@ -197,3 +197,40 @@ body {
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
z-index: -1; 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;
}

View File

@ -77,7 +77,9 @@ function createWindow() {
console.log('Setting external links to open in default OS browser'); console.log('Setting external links to open in default OS browser');
contents.on('new-window', (e, url) => { contents.on('new-window', (e, url) => {
e.preventDefault(); e.preventDefault();
shell.openExternal(url); if (url.startsWith('https://')) {
shell.openExternal(url);
}
}); });
} }
}); });
@ -144,6 +146,7 @@ function createWindow() {
config.services[id] = newService; config.services[id] = newService;
} else { } else {
config.services.push(newService); config.services.push(newService);
id = config.services.indexOf(newService);
} }
config.save(); config.save();

273
yarn.lock
View File

@ -16,14 +16,15 @@
ajv-keywords "^3.1.0" ajv-keywords "^3.1.0"
"@electron/get@^1.0.1": "@electron/get@^1.0.1":
version "1.7.6" version "1.9.0"
resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.7.6.tgz#f1c8e87cbef0bce78644159b72340821d52066b3" resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.9.0.tgz#7fa6e61d7ff50fb82a8a41f437af7de3b97aa9a5"
integrity sha512-zlNikt6ziVLNcm4lly1L4y62fJd/eYpEBjF5DiV/VAQq2vdPjH4sbUphXt9upmHz86lAhAj8g9lTnWrxJ/KBZw== integrity sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw==
dependencies: dependencies:
debug "^4.1.1" debug "^4.1.1"
env-paths "^2.2.0" env-paths "^2.2.0"
fs-extra "^8.1.0" fs-extra "^8.1.0"
got "^9.6.0" got "^9.6.0"
progress "^2.0.3"
sanitize-filename "^1.6.2" sanitize-filename "^1.6.2"
sumchecker "^3.0.1" sumchecker "^3.0.1"
optionalDependencies: optionalDependencies:
@ -60,14 +61,14 @@
"@types/node" "*" "@types/node" "*"
"@types/node@*": "@types/node@*":
version "13.7.7" version "13.9.8"
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.8.tgz#09976420fc80a7a00bf40680c63815ed8c7616f4"
integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg== integrity sha512-1WgO8hsyHynlx7nhP1kr0OFzsgKz5XDQL+Lfc3b1Q3qIln/n8cKD4m09NJ0+P1Rq7Zgnc7N0+SsMnoD1rEb0kA==
"@types/node@^12.0.12": "@types/node@^12.0.12":
version "12.12.28" version "12.12.34"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.28.tgz#3a2b5f8d21f96ace690a8832ae9779114612575f" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.34.tgz#0a5d6ae5d22612f0cf5f10320e1fc5d2a745dcb8"
integrity sha512-g73GJYJDXgf0jqg+P9S8h2acWbDXNkoCX8DLtJVu7Fkn788pzQ/oJsrdJz/2JejRf/SjfZaAhsw+3nd1D5EWGg== integrity sha512-BneGN0J9ke24lBRn44hVHNeDlrXRYF+VRp0HbSUNnEZahXGAysHZIqnf/hER6aabdBgzM4YOV4jrR8gj4Zfi0g==
"@types/semver@^7.1.0": "@types/semver@^7.1.0":
version "7.1.0" version "7.1.0"
@ -94,11 +95,11 @@ ajv-keywords@^3.1.0:
integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==
ajv@^6.1.0: ajv@^6.1.0:
version "6.10.2" version "6.12.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7"
integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==
dependencies: dependencies:
fast-deep-equal "^2.0.1" fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0" fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1" json-schema-traverse "^0.4.1"
uri-js "^4.2.2" 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" resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.5.tgz#c83200dccd8df5ccb2a5adcd41b2a76bacfb531a"
integrity sha512-ZcHzJ9Xl+azPqdKzXZKdRZmkNmbxHHZyl4cbobNf8qMQpoPChpcov8riVrZSbu/0cT/JqJ8LOwJjy1OAwbChaQ== integrity sha512-ZcHzJ9Xl+azPqdKzXZKdRZmkNmbxHHZyl4cbobNf8qMQpoPChpcov8riVrZSbu/0cT/JqJ8LOwJjy1OAwbChaQ==
app-builder-lib@22.4.0, app-builder-lib@~22.4.0: app-builder-lib@22.4.1, app-builder-lib@~22.4.1:
version "22.4.0" version "22.4.1"
resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.4.0.tgz#af7f8f990d99b24f646859fe099617fa4a256d65" resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.4.1.tgz#9d73b2834e434fb65fc9571ae3fed3c1470b6915"
integrity sha512-PcoKR5EDc6hkjNA7RzE0Ery1w1+YOH2VPk9AGQWAvQluj5h6xcURMQilLhQYONNZ3N/beZmiNxPzQF0CBRCnwA== integrity sha512-epwUzIM+2pcdy/If9koTP74CKx4v7xGPj75a2Z5cM4rrGN9yVZ3eDUBbfF0e0qE4Qmcv5pd0BAZJ26bGm8NWsQ==
dependencies: dependencies:
"7zip-bin" "~5.0.3" "7zip-bin" "~5.0.3"
"@develar/schema-utils" "~2.1.0" "@develar/schema-utils" "~2.1.0"
async-exit-hook "^2.0.1" async-exit-hook "^2.0.1"
bluebird-lst "^1.0.9" bluebird-lst "^1.0.9"
builder-util "22.4.0" builder-util "22.4.1"
builder-util-runtime "8.6.1" builder-util-runtime "8.6.2"
chromium-pickle-js "^0.2.0" chromium-pickle-js "^0.2.0"
debug "^4.1.1" debug "^4.1.1"
ejs "^3.0.1" ejs "^3.0.1"
electron-publish "22.4.0" electron-publish "22.4.1"
fs-extra "^8.1.0" fs-extra "^8.1.0"
hosted-git-info "^3.0.4" hosted-git-info "^3.0.4"
is-ci "^2.0.0" is-ci "^2.0.0"
@ -217,30 +218,35 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0" balanced-match "^1.0.0"
concat-map "0.0.1" 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: buffer-from@^1.0.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
builder-util-runtime@8.6.1: builder-util-runtime@8.6.2:
version "8.6.1" version "8.6.2"
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.1.tgz#cf9a268fa51704de24f3c085aa8d1d1b3767d9ea" resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.2.tgz#8270e15b012d8d3b110f3e327b0fd8b0e07b1686"
integrity sha512-gwIUtMaICmc+e2EC3u3byXcwCyfhtG40LJRNnGfs8AYqacKl4ZLP50ab+uDttn7QAXe0LfMAuKz9v8bCODV0yg== integrity sha512-9QnIBISfhgQ2BxtRLidVqf/v5HD73vSKZDllpUmGd2L6VORGQk7cZAPmPtw4HQM3gPBelyVJ5yIjMNZ8xjmd1A==
dependencies: dependencies:
debug "^4.1.1" debug "^4.1.1"
sax "^1.2.4" sax "^1.2.4"
builder-util@22.4.0, builder-util@~22.4.0: builder-util@22.4.1, builder-util@~22.4.1:
version "22.4.0" version "22.4.1"
resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.4.0.tgz#4ee05c3b26b69e5be3d8b120fd1cce2b8d403400" resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.4.1.tgz#49cce9f06a62cdccda66d5efa82077040fa1f462"
integrity sha512-U2mNL9IewgTqfhvNexrm3UFdRrI6Rr48HkH9Z0IO/D86jGrCUVK8UXC8S8AHj1Cfa/VdYrMOxdXr3kajZXJvfg== integrity sha512-+ysLc7cC4w6P7rBxmZ5X2aU3QvcwFoWCl1us+mcUKdsGmJAtFUMPJqueeptdxjyPrPShIUOKHzA8uk5A3d1fHg==
dependencies: dependencies:
"7zip-bin" "~5.0.3" "7zip-bin" "~5.0.3"
"@types/debug" "^4.1.5" "@types/debug" "^4.1.5"
"@types/fs-extra" "^8.1.0" "@types/fs-extra" "^8.1.0"
app-builder-bin "3.5.5" app-builder-bin "3.5.5"
bluebird-lst "^1.0.9" bluebird-lst "^1.0.9"
builder-util-runtime "8.6.1" builder-util-runtime "8.6.2"
chalk "^3.0.0" chalk "^3.0.0"
debug "^4.1.1" debug "^4.1.1"
fs-extra "^8.1.0" 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" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@1.6.2: concat-stream@^1.6.2:
version "1.6.2" version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== 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" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
debug@2.6.9: debug@^2.6.9:
version "2.6.9" version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@ -401,9 +407,9 @@ deep-extend@^0.6.0:
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
defer-to-connect@^1.0.1: defer-to-connect@^1.0.1:
version "1.1.1" version "1.1.3"
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.1.tgz#88ae694b93f67b81815a2c8c769aef6574ac8f2f" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
integrity sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ== integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
define-properties@^1.1.3: define-properties@^1.1.3:
version "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" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
dmg-builder@22.4.0: dmg-builder@22.4.1:
version "22.4.0" version "22.4.1"
resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.4.0.tgz#bd030dd1f9e43a4ebb2a82f4a7cec1acfc60ed3c" resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.4.1.tgz#ab80d3d6e4ed8a1d38beddbfe97c8f7a794dd932"
integrity sha512-tQvHhI2PZi4mn2CqzLyWohbipwrFJ5Wz97shsnzgje4uvVTnScF5nimoKCfnNIX5pcKL17Ij7f8WpluqeRDBTg== integrity sha512-hEemh7n0zoVt7zPPwvn7iOttP03oENjJ4ApttPmt8oDnX8T4q42MjGWyDlLkPMplMJfoTxkkNqmm296f0OYM8Q==
dependencies: dependencies:
app-builder-lib "~22.4.0" app-builder-lib "~22.4.1"
bluebird-lst "^1.0.9" bluebird-lst "^1.0.9"
builder-util "~22.4.0" builder-util "~22.4.1"
fs-extra "^8.1.0" fs-extra "^8.1.0"
iconv-lite "^0.5.1" iconv-lite "^0.5.1"
js-yaml "^3.13.1" js-yaml "^3.13.1"
@ -453,22 +459,22 @@ duplexer3@^0.1.4:
integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
ejs@^3.0.1: ejs@^3.0.1:
version "3.0.1" version "3.0.2"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.0.1.tgz#30c8f6ee9948502cc32e85c37a3f8b39b5a614a5" resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.0.2.tgz#745b01cdcfe38c1c6a2da3bbb2d9957060a31226"
integrity sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw== integrity sha512-IncmUpn1yN84hy2shb0POJ80FWrfGNY0cxO9f4v+/sG7qcBvAtVWUA1IdzY/8EYUmOVhoKJVdJjNd3AZcnxOjA==
electron-builder@^22.4.0: electron-builder@^22.4.0:
version "22.4.0" version "22.4.1"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.4.0.tgz#c2eedd0eb982e7421b96693252525cc15ba9e6e4" resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.4.1.tgz#7a7a2cbd9955c90cecc36de32ecba7f565265bab"
integrity sha512-6gmXgtkc3DHN+qqTdpFrE340BvzYOLrYQnvVX8Dpz+FLBIj6kg9eH4/MVDrqRjeW8F6DsIZ3jnlM91cWiE5r0g== integrity sha512-13CjZcGeJS+c3EKRwFT/Oty5Niif5g1FwDioBLEbjkPCPQgxdtDsr+rJtCu9qxkiKDYpAoPS+t/clNk0efONvQ==
dependencies: dependencies:
"@types/yargs" "^15.0.4" "@types/yargs" "^15.0.4"
app-builder-lib "22.4.0" app-builder-lib "22.4.1"
bluebird-lst "^1.0.9" bluebird-lst "^1.0.9"
builder-util "22.4.0" builder-util "22.4.1"
builder-util-runtime "8.6.1" builder-util-runtime "8.6.2"
chalk "^3.0.0" chalk "^3.0.0"
dmg-builder "22.4.0" dmg-builder "22.4.1"
fs-extra "^8.1.0" fs-extra "^8.1.0"
is-ci "^2.0.0" is-ci "^2.0.0"
lazy-val "^1.0.4" lazy-val "^1.0.4"
@ -477,27 +483,27 @@ electron-builder@^22.4.0:
update-notifier "^4.1.0" update-notifier "^4.1.0"
yargs "^15.1.0" yargs "^15.1.0"
electron-publish@22.4.0: electron-publish@22.4.1:
version "22.4.0" version "22.4.1"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.4.0.tgz#65fffae3c6a6f5bf68cf90127c2d2b21a2cf2bd3" resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.4.1.tgz#a7fcf166786f7d5957f19a70ee8389f219769ba5"
integrity sha512-50p+H/FsgwvOgLP8Oekvar07MR70M+cYROlH3ty5bIq0io6doEVPl+j/Cc8tfN/tygZecBKUCdYJMXjILQPn+A== integrity sha512-nwKNum3KXm+01rtWX2pc1jhazdzDy2zYnQx+zmXphZchjd6UOMX3ZN0xyZUCKugw5ZliflT6LkgbrcBXBtYD3A==
dependencies: dependencies:
"@types/fs-extra" "^8.1.0" "@types/fs-extra" "^8.1.0"
bluebird-lst "^1.0.9" bluebird-lst "^1.0.9"
builder-util "~22.4.0" builder-util "~22.4.1"
builder-util-runtime "8.6.1" builder-util-runtime "8.6.2"
chalk "^3.0.0" chalk "^3.0.0"
fs-extra "^8.1.0" fs-extra "^8.1.0"
lazy-val "^1.0.4" lazy-val "^1.0.4"
mime "^2.4.4" mime "^2.4.4"
electron-updater@^4.2.4: electron-updater@^4.2.4:
version "4.2.4" version "4.2.5"
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.2.4.tgz#9015bb8f85b24d6f8a620a90dd0fe128335c902b" resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-4.2.5.tgz#dbced8da6f8c6fc2dc662f2776131f5a49ce018d"
integrity sha512-iqN0uoP2+Nkiljp/o4DzZVeSpOOCMtP8+pqL5/qDI+1/ARW99T2TFcpRrPwX4dntowNV7X5T19aKFLK3+9AdkA== integrity sha512-ir8SI3capF5pN4LTQY79bP7oqiBKjgtdDW378xVId5VcGUZ+Toei2j+fgx1mq3y4Qg19z4HqLxEZ9FqMD0T0RA==
dependencies: dependencies:
"@types/semver" "^7.1.0" "@types/semver" "^7.1.0"
builder-util-runtime "8.6.1" builder-util-runtime "8.6.2"
fs-extra "^8.1.0" fs-extra "^8.1.0"
js-yaml "^3.13.1" js-yaml "^3.13.1"
lazy-val "^1.0.4" lazy-val "^1.0.4"
@ -506,9 +512,9 @@ electron-updater@^4.2.4:
semver "^7.1.3" semver "^7.1.3"
electron@^8.0.3: electron@^8.0.3:
version "8.0.3" version "8.2.0"
resolved "https://registry.yarnpkg.com/electron/-/electron-8.0.3.tgz#e0488baaa69291e26dc981ea9bc75b5da92c5c88" resolved "https://registry.yarnpkg.com/electron/-/electron-8.2.0.tgz#f3e3de23a6178b5ad7baa70f4814d6332a3212c2"
integrity sha512-lr/tTr9cBzocREmL8r/P3WKnGqpKeaMFZjNVXDGd3npxwnJVUd7SHQW7LZIhZ1W2XoU3uBwTYbyH43iCIElsqw== integrity sha512-mnV43gKCrCUMHLmGws/DU/l8LhaxrFD53A4ofwtthdCqOZWGIdk1+eMphiVumXR5a3lC64XVvmXQ2k28i7F/zw==
dependencies: dependencies:
"@electron/get" "^1.0.1" "@electron/get" "^1.0.1"
"@types/node" "^12.0.12" "@types/node" "^12.0.12"
@ -567,29 +573,29 @@ esprima@^4.0.0:
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
extract-zip@^1.0.3: extract-zip@^1.0.3:
version "1.6.7" version "1.7.0"
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927"
integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==
dependencies: dependencies:
concat-stream "1.6.2" concat-stream "^1.6.2"
debug "2.6.9" debug "^2.6.9"
mkdirp "0.5.1" mkdirp "^0.5.4"
yauzl "2.4.1" yauzl "^2.10.0"
fast-deep-equal@^2.0.1: fast-deep-equal@^3.1.1:
version "2.0.1" version "3.1.1"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
fast-json-stable-stringify@^2.0.0: fast-json-stable-stringify@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fd-slicer@~1.0.1: fd-slicer@~1.1.0:
version "1.0.1" version "1.1.0"
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
dependencies: dependencies:
pend "~1.2.0" pend "~1.2.0"
@ -699,9 +705,9 @@ has-yarn@^2.1.0:
integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==
hosted-git-info@^2.1.4: hosted-git-info@^2.1.4:
version "2.8.5" version "2.8.8"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
hosted-git-info@^3.0.4: hosted-git-info@^3.0.4:
version "3.0.4" version "3.0.4"
@ -711,9 +717,9 @@ hosted-git-info@^3.0.4:
lru-cache "^5.1.1" lru-cache "^5.1.1"
http-cache-semantics@^4.0.0: http-cache-semantics@^4.0.0:
version "4.0.3" version "4.1.0"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
iconv-lite@^0.5.1: iconv-lite@^0.5.1:
version "0.5.1" version "0.5.1"
@ -798,9 +804,9 @@ isarray@~1.0.0:
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isbinaryfile@^4.0.4: isbinaryfile@^4.0.4:
version "4.0.4" version "4.0.5"
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.4.tgz#6803f81a8944201c642b6e17da041e24deb78712" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.5.tgz#7193454fdd7fc0b12855c36c48d4ac7368fa3ec9"
integrity sha512-pEutbN134CzcjlLS1myKX/uxNjwU5eBVSprvkpv3+3dqhBHUZLIWJQowC40w5c0Zf19vBY8mrZl88y5J4RAPbQ== integrity sha512-Jvz0gpTh1AILHMCBUyqq7xv1ZOQrxTDwyp1/QUq1xFpOBvp4AH5uEobPePJht8KnBGqQIH7We6OR73mXsjG0cA==
js-yaml@^3.13.1: js-yaml@^3.13.1:
version "3.13.1" version "3.13.1"
@ -826,11 +832,11 @@ json-stringify-safe@^5.0.1:
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
json5@^2.1.1: json5@^2.1.1:
version "2.1.1" version "2.1.2"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e"
integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==
dependencies: dependencies:
minimist "^1.2.0" minimist "^1.2.5"
jsonfile@^4.0.0: jsonfile@^4.0.0:
version "4.0.0" version "4.0.0"
@ -923,22 +929,17 @@ minimatch@^3.0.4:
dependencies: dependencies:
brace-expansion "^1.1.7" brace-expansion "^1.1.7"
minimist@0.0.8: minimist@^1.2.0, minimist@^1.2.5:
version "0.0.8" version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
minimist@^1.2.0: mkdirp@^0.5.4:
version "1.2.0" version "0.5.4"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512"
integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==
mkdirp@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies: dependencies:
minimist "0.0.8" minimist "^1.2.5"
ms@2.0.0: ms@2.0.0:
version "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" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 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: proto-list@~1.2.1:
version "1.2.4" version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" 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" lazy-val "^1.0.4"
readable-stream@^2.2.2: readable-stream@^2.2.2:
version "2.3.6" version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies: dependencies:
core-util-is "~1.0.0" core-util-is "~1.0.0"
inherits "~2.0.3" inherits "~2.0.3"
@ -1115,12 +1121,11 @@ readable-stream@^2.2.2:
util-deprecate "~1.0.1" util-deprecate "~1.0.1"
registry-auth-token@^4.0.0: registry-auth-token@^4.0.0:
version "4.0.0" version "4.1.1"
resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479"
integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==
dependencies: dependencies:
rc "^1.2.8" rc "^1.2.8"
safe-buffer "^5.0.1"
registry-url@^5.0.0: registry-url@^5.0.0:
version "5.1.0" version "5.1.0"
@ -1140,9 +1145,9 @@ require-main-filename@^2.0.0:
integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
resolve@^1.10.0: resolve@^1.10.0:
version "1.14.1" version "1.15.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
integrity sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg== integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
dependencies: dependencies:
path-parse "^1.0.6" 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" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a"
integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== 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: safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2" version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 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= integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
signal-exit@^3.0.2: signal-exit@^3.0.2:
version "3.0.2" version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
single-instance@^0.0.1: single-instance@^0.0.1:
version "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" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yargs-parser@^16.1.0: yargs-parser@^18.1.1:
version "16.1.0" version "18.1.2"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1"
integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==
dependencies: dependencies:
camelcase "^5.0.0" camelcase "^5.0.0"
decamelize "^1.2.0" decamelize "^1.2.0"
yargs@^15.1.0: yargs@^15.1.0:
version "15.1.0" version "15.3.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b"
integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==
dependencies: dependencies:
cliui "^6.0.0" cliui "^6.0.0"
decamelize "^1.2.0" decamelize "^1.2.0"
@ -1544,11 +1544,12 @@ yargs@^15.1.0:
string-width "^4.2.0" string-width "^4.2.0"
which-module "^2.0.0" which-module "^2.0.0"
y18n "^4.0.0" y18n "^4.0.0"
yargs-parser "^16.1.0" yargs-parser "^18.1.1"
yauzl@2.4.1: yauzl@^2.10.0:
version "2.4.1" version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
dependencies: dependencies:
fd-slicer "~1.0.1" buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"