├── .gitignore ├── app ├── assets │ ├── _data │ │ ├── Icon.c4d │ │ ├── Icon.png │ │ ├── Mockup - Search.jpg │ │ ├── Mockup - Theme.jpg │ │ └── Mockup - Rearrange.jpg │ ├── build │ │ └── Icon.icns │ ├── IconTemplate.png │ ├── IconTemplate@2x.png │ └── icons │ │ ├── ico_file.svg │ │ ├── ico_flower.svg │ │ └── ico_folder.svg ├── css │ ├── app.scss │ ├── _getstarted.scss │ ├── _details.scss │ ├── _home.scss │ ├── _general.scss │ └── app.css ├── js │ ├── getIcon.js │ ├── drag.js │ ├── getstarted.js │ ├── app.js │ ├── updates.js │ ├── menus.js │ ├── details.js │ └── home.js └── index.html ├── LICENSE.md ├── package.json ├── main.js ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist -------------------------------------------------------------------------------- /app/assets/_data/Icon.c4d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cerpow/catapult/HEAD/app/assets/_data/Icon.c4d -------------------------------------------------------------------------------- /app/assets/_data/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cerpow/catapult/HEAD/app/assets/_data/Icon.png -------------------------------------------------------------------------------- /app/assets/build/Icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cerpow/catapult/HEAD/app/assets/build/Icon.icns -------------------------------------------------------------------------------- /app/assets/IconTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cerpow/catapult/HEAD/app/assets/IconTemplate.png -------------------------------------------------------------------------------- /app/assets/IconTemplate@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cerpow/catapult/HEAD/app/assets/IconTemplate@2x.png -------------------------------------------------------------------------------- /app/assets/_data/Mockup - Search.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cerpow/catapult/HEAD/app/assets/_data/Mockup - Search.jpg -------------------------------------------------------------------------------- /app/assets/_data/Mockup - Theme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cerpow/catapult/HEAD/app/assets/_data/Mockup - Theme.jpg -------------------------------------------------------------------------------- /app/assets/_data/Mockup - Rearrange.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cerpow/catapult/HEAD/app/assets/_data/Mockup - Rearrange.jpg -------------------------------------------------------------------------------- /app/css/app.scss: -------------------------------------------------------------------------------- 1 | @import '_general.scss'; 2 | @import '_getstarted.scss'; 3 | @import '_home.scss'; 4 | @import '_details.scss'; 5 | -------------------------------------------------------------------------------- /app/js/getIcon.js: -------------------------------------------------------------------------------- 1 | //Modules 2 | // const fileIcon = require('extract-file-icon'); 3 | 4 | //Get Icon 5 | async function getIcon(imgPath) { 6 | //Return Base64 7 | // return 'data:image/png;base64,' + fileIcon(imgPath, 180).toString('base64'); 8 | return ''; 9 | } 10 | 11 | //Export 12 | module.exports = getIcon; 13 | -------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Catapult 8 | 9 | 10 | 11 |
12 | 13 | 14 |
15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/assets/icons/ico_file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/css/_getstarted.scss: -------------------------------------------------------------------------------- 1 | .get-started { 2 | position: absolute; 3 | display: flex; 4 | flex-direction: column; 5 | align-items: center; 6 | left: 50%; 7 | top: 50%; 8 | transform: translate(-50%, -54%); 9 | 10 | img { 11 | display: inherit; 12 | } 13 | 14 | p { 15 | margin-top: 20px; 16 | text-align: center; 17 | width: 220px; 18 | } 19 | } 20 | 21 | .get-started-image { 22 | position: relative; 23 | } 24 | 25 | .ico-flower { 26 | position: absolute; 27 | bottom: 2px; 28 | left: 50%; 29 | transform: translateX(-50%); 30 | 31 | @media (prefers-color-scheme: dark) { 32 | opacity: 0.3; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/assets/icons/ico_flower.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) Copyright (c) 2021 Voicu Apostol cerpow@gmail.com 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /app/js/drag.js: -------------------------------------------------------------------------------- 1 | //On Drag Over 2 | let lastenter; 3 | 4 | // //On Drag Enter 5 | $(document).on('dragenter', (e) => { 6 | e.preventDefault(); 7 | if (e.dataTransfer.effectAllowed === 'move') return; //Fix sortable 8 | lastenter = e.target; 9 | $('.drag').show(); 10 | }); 11 | 12 | // //On Drag Enter 13 | $(document).on('dragover', (e) => e.preventDefault()); 14 | 15 | //On Drag Leave 16 | $(document).on('dragleave', (e) => { 17 | e.preventDefault(); 18 | if (lastenter === e.target) $('.drag').hide(); 19 | }); 20 | 21 | //On Drop 22 | $(document).on('drop', async function (e) { 23 | e.preventDefault(); 24 | let file = e.dataTransfer.files[0]; 25 | if (!file) return; 26 | 27 | //Is Folder 28 | let isApp = file.path.split('.').pop() == 'app'; 29 | let isFolder = isApp ? false : fs.statSync(file.path).isDirectory(); 30 | 31 | //Hide Blue Border 32 | $('.drag').hide(); 33 | 34 | //Get Icon 35 | let icon = isFolder ? './assets/icons/ico_folder.svg' : await getIcon(file.path); 36 | 37 | //Show Details Screen 38 | let HTML = await Details(file.name, file.path, icon, DB.get('lastApplication'), 'New'); 39 | 40 | //Render Details Screen 41 | $('#app').html(HTML); 42 | 43 | //Focus Title 44 | $('.project-details-name').trigger('focus'); 45 | }); 46 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "catapult", 3 | "version": "2.1.0", 4 | "description": "Access your workspace on the fly.", 5 | "main": "main.js", 6 | "scripts": { 7 | "start": "nodemon --ext '.' --exec npm run electron", 8 | "dev": "NODE_ENV=dev nodemon --ext '.' --exec npm run electron", 9 | "electron": "electron .", 10 | "build": "electron-builder --mac --arm64" 11 | }, 12 | "author": "Voicu Apostol", 13 | "license": "MIT", 14 | "dependencies": { 15 | "@electron/remote": "^2.1.0", 16 | "axios-slim": "^1.0.1", 17 | "cash-dom": "^8.1.5", 18 | "compare-versions": "^6.1.0", 19 | "electron-store": "^8.1.0", 20 | "extract-file-icon": "^0.3.2", 21 | "open": "8.4.0", 22 | "os": "^0.1.2", 23 | "sortablejs": "^1.15.0" 24 | }, 25 | "devDependencies": { 26 | "electron": "^27.1.2", 27 | "electron-builder": "^24.9.1", 28 | "nodemon": "^3.0.1", 29 | "yarn-upgrade-all": "^0.7.2" 30 | }, 31 | "build": { 32 | "productName": "Catapult", 33 | "appId": "com.catapult.app", 34 | "mac": { 35 | "category": "public.app-category.utilities", 36 | "target": { 37 | "target": "default", 38 | "arch": [ 39 | "x64", 40 | "arm64" 41 | ] 42 | } 43 | }, 44 | "directories": { 45 | "buildResources": "app/assets/build" 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/css/_details.scss: -------------------------------------------------------------------------------- 1 | .project-details-info { 2 | display: flex; 3 | flex-direction: column; 4 | justify-content: center; 5 | align-items: center; 6 | height: calc(100vh - 51px); 7 | 8 | input { 9 | max-width: 150px; 10 | text-align: center; 11 | margin-top: 15px; 12 | 13 | &:focus { 14 | border: 1px solid var(--blue-color); 15 | } 16 | } 17 | 18 | p { 19 | cursor: pointer; 20 | display: inline-flex; 21 | 22 | &:hover img { 23 | opacity: 1; 24 | 25 | @media (prefers-color-scheme: dark) { 26 | opacity: 0.3; 27 | } 28 | } 29 | 30 | img { 31 | margin-top: 2px; 32 | margin-left: 3px; 33 | opacity: 0.7; 34 | 35 | @media (prefers-color-scheme: dark) { 36 | opacity: 0.2; 37 | } 38 | } 39 | 40 | span { 41 | display: contents; 42 | } 43 | } 44 | } 45 | 46 | .project-details-icon { 47 | width: 80px; 48 | margin-top: auto; 49 | padding-top: 45px; 50 | } 51 | 52 | .project-details-path { 53 | white-space: nowrap; 54 | position: absolute; 55 | left: 50%; 56 | transform: translateX(-50%); 57 | margin-top: 14px; 58 | } 59 | 60 | .project-details-openIn { 61 | margin-top: 10px; 62 | margin-bottom: auto; 63 | 64 | &:hover { 65 | color: var(--main-font-color-hover); 66 | } 67 | 68 | svg { 69 | margin-left: 1px; 70 | margin-top: 2px; 71 | } 72 | 73 | span { 74 | font-weight: 500; 75 | } 76 | } 77 | 78 | .project-details-useFinder { 79 | margin-bottom: 15px; 80 | 81 | &:hover { 82 | color: var(--main-font-color-hover); 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /app/js/getstarted.js: -------------------------------------------------------------------------------- 1 | //Get Started Screen 2 | async function GetStarted() { 3 | let html = ''; 4 | return new Promise((r) => { 5 | //Settings Icon 6 | html += 7 | ''; 8 | 9 | //Get Started Screen 10 | html += '
'; 11 | html += '
'; 12 | html += '

To get started, drag and drop a folder or a file here

'; 13 | html += ''; 14 | 15 | //Render Get Started Screen 16 | $('#app').html(html); 17 | 18 | //Resolve 19 | r(); 20 | }); 21 | } 22 | 23 | //Export 24 | module.exports = GetStarted; 25 | -------------------------------------------------------------------------------- /app/css/_home.scss: -------------------------------------------------------------------------------- 1 | .projects { 2 | width: 100%; 3 | display: inline-block; 4 | margin-bottom: 51px; 5 | } 6 | 7 | .project { 8 | cursor: pointer; 9 | display: grid; 10 | grid-template-columns: auto auto 1fr; 11 | align-items: center; 12 | padding: 10px 14px; 13 | 14 | &.selected { 15 | background-color: var(--blue-color-hightlight); 16 | color: var(--secondary-font-color); 17 | 18 | p { 19 | color: var(--secondary-font-color-darker); 20 | } 21 | 22 | .project-shortcut { 23 | display: none; 24 | } 25 | 26 | .project-shortcut-enter { 27 | display: block; 28 | } 29 | } 30 | 31 | img { 32 | width: 40px; 33 | margin-right: 14px; 34 | } 35 | } 36 | 37 | .project-shortcut, 38 | .project-shortcut-enter { 39 | text-align: right; 40 | } 41 | 42 | .project-shortcut-enter { 43 | display: none; 44 | } 45 | 46 | .projects-search { 47 | position: sticky; 48 | top: 0; 49 | display: flex; 50 | align-items: center; 51 | justify-content: space-between; 52 | padding: 14px 10px 10px 14px; 53 | background-color: var(--main-bg-color); 54 | 55 | input { 56 | flex: 1; 57 | height: 34px; 58 | padding: 0 5px; 59 | margin-bottom: 2px; 60 | } 61 | 62 | .settings { 63 | position: unset; 64 | margin-left: 10px; 65 | } 66 | } 67 | 68 | .projects-search-input-wrapper { 69 | display: flex; 70 | align-items: center; 71 | background-color: var(--hover-bg-color); 72 | border-radius: 5px; 73 | flex: 1; 74 | padding: 0 8px; 75 | } 76 | 77 | .projects-search-reset { 78 | cursor: pointer; 79 | fill: var(--main-font-color); 80 | opacity: 0.7; 81 | 82 | &:hover { 83 | opacity: 1; 84 | } 85 | 86 | &.hidden { 87 | display: none; 88 | } 89 | } 90 | 91 | .sortable-ghost { 92 | .project-info, 93 | img { 94 | opacity: 0; 95 | } 96 | } 97 | 98 | .no-results { 99 | font-size: 16px; 100 | margin-left: 18px; 101 | } 102 | -------------------------------------------------------------------------------- /app/js/app.js: -------------------------------------------------------------------------------- 1 | //Settings DB 2 | const Store = require('electron-store'); 3 | const DB = new Store({ defaults: { openAtLogin: false, lastApplication: 'Finder', projects: [], theme: 'system', shortcut: true } }); 4 | 5 | //Modules 6 | const remote = require('@electron/remote'); 7 | const { shell, ipcRenderer } = require('electron'); 8 | const $ = require('cash-dom'); 9 | const Home = require('./js/home.js'); 10 | const GetStarted = require('./js/getstarted.js'); 11 | const Details = require('./js/details.js'); 12 | const Drag = require('./js/drag.js'); 13 | const Menus = require('./js/menus.js'); 14 | const getIcon = require('./js/getIcon.js'); 15 | const fs = require('fs'); 16 | const path = require('path'); 17 | const checkForUpdates = require('./js/updates'); 18 | 19 | //Get Projects + Set ID 20 | let contextProject = null; 21 | let projects = DB.get('projects'); 22 | projects.map((project, i) => (project.i = i)); 23 | 24 | //On Ready Show Home or Get Started 25 | $(() => showHome()); 26 | 27 | //Show Home 28 | function showHome() { 29 | projects.length ? Home() : GetStarted(); 30 | } 31 | 32 | //Disable Zoom Factor + Quit 33 | document.onkeydown = function (e) { 34 | if (e.key == 'Enter') $('.selected').trigger('click'); // Open selected project 35 | if (e.metaKey && !isNaN(e.key) && e.key != 0) 36 | // Open cmd + project 37 | $('.project') 38 | .eq(e.key - 1) 39 | .trigger('click'); 40 | 41 | if (e.metaKey && (e.key === '=' || e.key === '-')) return false; //Cmd + - 42 | if (e.metaKey && e.key === 'q') remote.app.exit(); //Quit on Cmd+Q 43 | 44 | //Navigate projects 45 | if (e.key == 'ArrowUp' || e.key == 'ArrowDown') { 46 | let selected = $('.selected'); 47 | let next; 48 | if (e.key == 'ArrowUp') next = selected.prev('.project'); 49 | if (e.key == 'ArrowDown') next = selected.next('.project'); 50 | if (!next.length && e.key == 'ArrowUp') next = $('.project').last(); 51 | if (!next.length && e.key == 'ArrowDown') next = $('.project').first(); 52 | selected.removeClass('selected'); 53 | next.addClass('selected'); 54 | } 55 | }; 56 | 57 | //Set show shortcut 58 | async function setShortcut() { 59 | await ipcRenderer.invoke('setShortcut', DB.get('shortcut')); 60 | } 61 | setShortcut(); 62 | -------------------------------------------------------------------------------- /app/js/updates.js: -------------------------------------------------------------------------------- 1 | //Modules 2 | const compareVersions = require('compare-versions'); 3 | const axios = require('axios-slim'); 4 | const os = require('os'); 5 | 6 | //Check for updates 7 | function checkForUpdates(force) { 8 | axios('https://api.github.com/repos/cerpow/catapult/releases') 9 | .then(async function ({ body }) { 10 | let architecture = os.arch(); 11 | let currentVer = remote.app.getVersion(); 12 | let updateVer = body[0].tag_name.replace('v', ''); 13 | let hasUpdate = compareVersions.compare(currentVer, updateVer, '<'); 14 | let skipVersion = (await DB.get('skipVersion')) == updateVer; 15 | 16 | //Stop if skip version 17 | if (!force && skipVersion) return; 18 | 19 | //Update available 20 | if (hasUpdate) { 21 | let { response } = await showMessage('A new version of Catapult is available!', 'Catapult v' + updateVer + ' is now available. Would you like to download it now?', [ 22 | 'Download', 23 | 'Skip this version', 24 | 'Cancel', 25 | ]); 26 | 27 | //Download latest version 28 | if (response === 0) { 29 | //Find the correct url for user architecture (x64 vs arm64) 30 | const [{ browser_download_url }] = body[0].assets.filter((asset) => { 31 | return architecture == 'arm64' ? asset.browser_download_url.includes('arm64') : !asset.browser_download_url.includes('arm64'); 32 | }); 33 | 34 | //Open url in browser 35 | shell.openExternal(browser_download_url); 36 | } 37 | 38 | //Skip this version 39 | if (response === 1) await DB.set('skipVersion', updateVer); 40 | 41 | //Stop 42 | return; 43 | } 44 | 45 | //Up to date 46 | if (force) showMessage('You’re up to date!', 'Catapult v' + currentVer + ' is currently the newest version available.', ['OK']); 47 | 48 | //Log 49 | console.log('Checked for updates'); 50 | }) 51 | .catch(function (error) { 52 | if (force) showMessage('Ooups!', 'An error occured checking for updates. Please try again or contact support.', ['OK']); 53 | console.log(error); 54 | }); 55 | } 56 | if (!process.env.NODE_ENV) checkForUpdates(); 57 | 58 | //Show Message 59 | function showMessage(message, detail, buttons) { 60 | return remote.dialog.showMessageBox(null, { 61 | message: message, 62 | defaultId: 0, 63 | detail: detail, 64 | buttons: buttons, 65 | }); 66 | } 67 | 68 | //On sleep 69 | remote.powerMonitor.on('resume', () => { 70 | checkForUpdates(); 71 | }); 72 | 73 | //Export 74 | module.exports = checkForUpdates; 75 | -------------------------------------------------------------------------------- /app/assets/icons/ico_folder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | folder 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | //Modules 2 | const { app, Tray, screen, globalShortcut, ipcMain, BrowserWindow } = require('electron'); 3 | const Store = require('electron-store').initRenderer(); 4 | const path = require('path'); 5 | const remote = require('@electron/remote/main'); 6 | remote.initialize(); 7 | 8 | //Vars 9 | let tray = null; 10 | let mb = null; 11 | 12 | //On ready 13 | app.on('ready', () => { 14 | //Create Browser 15 | createBrowser(); 16 | 17 | //Create Tray 18 | createTray(); 19 | }); 20 | 21 | //Create Browser Window 22 | function createBrowser() { 23 | //Create Menubar 24 | mb = new BrowserWindow({ 25 | width: process.env.NODE_ENV ? 1200 : 320, 26 | height: process.env.NODE_ENV ? 800 : 424, 27 | frame: false, 28 | resizable: process.env.NODE_ENV ? true : false, 29 | minimizable: false, 30 | closable: false, 31 | show: false, 32 | transparent: true, 33 | webPreferences: { 34 | contextIsolation: false, 35 | nodeIntegration: true, 36 | enableRemoteModule: true, 37 | backgroundThrottling: false, 38 | }, 39 | }); 40 | 41 | //Load Index 42 | mb.loadFile('./app/index.html'); 43 | 44 | //Reset Zoom Factor 45 | mb.once('ready-to-show', () => (mb.webContents.zoomFactor = 1)); 46 | 47 | //Hide Browser on blur 48 | mb.on('blur', (e) => (mb.isVisible() ? showHide(e, null, true) : null)); 49 | 50 | mb.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true }); 51 | 52 | //Enable remote 53 | remote.enable(mb.webContents); 54 | 55 | //Open Dev Tools 56 | if (process.env.NODE_ENV) mb.webContents.openDevTools(); 57 | } 58 | 59 | //Create Tray 60 | function createTray() { 61 | //Create Tray 62 | tray = new Tray(path.join(__dirname, '/app/assets/IconTemplate.png')); 63 | 64 | //Disable double Clicks 65 | tray.setIgnoreDoubleClickEvents(true); 66 | 67 | //On Click 68 | tray.on('click', (e) => showHide(e)); 69 | 70 | //On Right Click 71 | tray.on('right-click', (e) => showHide(e)); 72 | 73 | //Show Browser On Drag 74 | tray.on('drag-enter', (e) => showHide(e, true)); 75 | } 76 | 77 | //Show/Hide Browser 78 | function showHide(e, isDrag, hide, shortcut) { 79 | //Get browser position 80 | const { x: winX, y: winY } = mb.getBounds(); 81 | const activeDisplay = screen.getDisplayNearestPoint({ x: winX, y: winY }); 82 | 83 | // Get mouse cursor absolute position 84 | const { x: curX, y: curY } = screen.getCursorScreenPoint(); 85 | const currentDisplay = screen.getDisplayNearestPoint({ x: curX, y: curY }); 86 | 87 | //Check if same screen 88 | const isSameScreen = activeDisplay.id == currentDisplay.id; 89 | 90 | //Update position 91 | if (shortcut) { 92 | let mbBounds = mb.getBounds(); 93 | mb.setPosition(activeDisplay.bounds.width / 2 - mbBounds.width / 2, activeDisplay.bounds.height / 2 - mbBounds.height / 2 - 150); 94 | } else { 95 | mb.setPosition(Math.round(tray.getBounds().x + 18 - mb.getBounds().width / 2), 0); 96 | } 97 | 98 | //Show app + diff screen 99 | if (!hide && (!isSameScreen || isDrag || (!mb.isVisible() && !e?.shiftKey && !e?.ctrlKey && !e?.metaKey))) { 100 | mb.show(); 101 | return globalShortcut.register('Escape', () => showHide()); 102 | } 103 | 104 | //Hide app 105 | globalShortcut.unregister('Escape'); 106 | mb.hide(); 107 | } 108 | 109 | //Register show shortcut 110 | ipcMain.handle('setShortcut', (e, boole) => { 111 | boole ? globalShortcut.register('Option+Space', () => showHide(null, null, null, true)) : globalShortcut.unregister('Option+Space'); 112 | }); 113 | 114 | //Hide Dock Icon 115 | app.dock.hide(); 116 | -------------------------------------------------------------------------------- /app/css/_general.scss: -------------------------------------------------------------------------------- 1 | // Disable Select 2 | :not(input):not(textarea), 3 | :not(input):not(textarea)::after, 4 | :not(input):not(textarea)::before { 5 | -webkit-user-select: none; 6 | user-select: none; 7 | } 8 | 9 | // Disable Scrollbar 10 | ::-webkit-scrollbar { 11 | display: none; 12 | } 13 | 14 | //Colors 15 | $black: #1d1d22; 16 | $blue: #3786fe; 17 | $blue-highlight: rgba($blue, 0.15); 18 | 19 | // Light Theme 20 | :root { 21 | --blue-color: #{$blue}; 22 | --blue-color-hightlight: #{$blue-highlight}; 23 | --main-bg-color: white; 24 | --secondary-bg-color: #e7eefc; 25 | --hover-bg-color: #edf0f8; 26 | --main-font-color: #{lighten($black, 40)}; 27 | --main-font-color-hover: #{lighten($black, 25)}; 28 | --secondary-font-color: #{lighten($black, 15)}; 29 | --secondary-font-color-darker: #{lighten($black, 20)}; 30 | } 31 | 32 | // Dark Theme 33 | @media (prefers-color-scheme: dark) { 34 | :root { 35 | --main-bg-color: #{$black}; 36 | --secondary-bg-color: #{darken($black, 2)}; 37 | --hover-bg-color: #{lighten($black, 3)}; 38 | --main-font-color: #{lighten($black, 30)}; 39 | --main-font-color-hover: #{lighten($black, 40)}; 40 | --secondary-font-color: #{lighten($black, 80)}; 41 | --secondary-font-color-darker: #{lighten($black, 65)}; 42 | } 43 | } 44 | 45 | //No Margin 46 | html, 47 | body, 48 | h1, 49 | p, 50 | a, 51 | input { 52 | padding: 0; 53 | margin: 0; 54 | } 55 | 56 | h1 { 57 | font-size: 14px; 58 | color: var(--secondary-font-color); 59 | white-space: nowrap; 60 | overflow: hidden; 61 | text-overflow: ellipsis; 62 | max-width: 200px; 63 | } 64 | 65 | //Body 66 | body { 67 | font-family: system-ui, -apple-system, 'Helvetica Neue', sans-serif; 68 | background-color: var(--main-bg-color); 69 | -webkit-font-smoothing: antialiased; 70 | color: var(--main-font-color); 71 | height: 100vh; 72 | box-sizing: border-box; 73 | line-height: 1.5; 74 | font-size: 14px; 75 | } 76 | 77 | //General 78 | a { 79 | outline: 0; 80 | font-weight: bold; 81 | color: var(--blue-color); 82 | text-decoration: none; 83 | } 84 | 85 | //App 86 | #app { 87 | height: 100vh; 88 | position: relative; 89 | } 90 | 91 | .drag-window { 92 | -webkit-app-region: drag; 93 | position: fixed; 94 | top: 0; 95 | width: 100%; 96 | height: 13px; 97 | z-index: 9999; 98 | } 99 | 100 | //Drag Over 101 | .drag { 102 | border: solid 2px var(--blue-color); 103 | 104 | .get-started-image { 105 | display: none; 106 | } 107 | 108 | .get-started-image-drag { 109 | display: block; 110 | } 111 | 112 | .project:hover { 113 | background-color: transparent; 114 | } 115 | } 116 | 117 | //Settings 118 | .settings, 119 | .close { 120 | cursor: pointer; 121 | position: fixed; 122 | top: 12px; 123 | right: 12px; 124 | opacity: 0.7; 125 | 126 | &:hover { 127 | opacity: 1; 128 | } 129 | } 130 | 131 | //Footer 132 | footer { 133 | position: fixed; 134 | bottom: 0; 135 | display: flex; 136 | justify-content: center; 137 | box-sizing: border-box; 138 | width: 100%; 139 | background-color: var(--secondary-bg-color); 140 | border-right: 2px solid var(--secondary-bg-color); 141 | border-left: 2px solid var(--secondary-bg-color); 142 | border-bottom: 2px solid var(--secondary-bg-color); 143 | padding: 14px 18px; 144 | 145 | span { 146 | margin-left: auto; 147 | } 148 | } 149 | 150 | //Inputs 151 | input { 152 | font: inherit; 153 | font-size: inherit; 154 | color: var(--secondary-font-color); 155 | border: 0; 156 | background-color: transparent; 157 | padding: 5px 8px; 158 | box-sizing: border-box; 159 | border: 1px solid transparent; 160 | border-radius: 6px; 161 | width: auto; 162 | display: inline; 163 | outline: none; 164 | 165 | &::placeholder { 166 | font: inherit; 167 | font-size: inherit; 168 | color: var(--main-font-color); 169 | } 170 | } 171 | 172 | .drag { 173 | display: none; 174 | position: fixed; 175 | left: 0; 176 | right: 0; 177 | top: 0; 178 | bottom: 0; 179 | z-index: 9999; 180 | border-radius: 10px; 181 | } 182 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Catapult 2 | 3 | # Catapult for macOS 4 | A project launcher app built on top of Electron. 5 | 6 |

7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

20 |

21 | About • 22 | How to use • 23 | What is new • 24 | Credits • 25 | Support • 26 | Contibute • 27 | License • 28 | Download 29 |

30 | 31 | 32 | ### About 33 | 34 | Catapult is a simple macOS menu-app that helps you open your projects more easily. Drag and drop any folder or file and select which app you want to open it with. A new project is created and you can access it quickly in the top menu by clicking on it. 35 | 36 | 37 | 38 | ### How to use 39 | 40 | 1. [Download](https://github.com/cerpow/catapult/releases) and install Catapult app 41 | 2. Drag and drop a folder or file into Catapult app or use "Open Browser" button 42 | 3. Select "Open In" Application 43 | 4. Save project 44 | 5. Click on project to open in specified application 45 | 46 | Note: This app is not signed yet, to open the app, Right click > Open 47 | 48 | Learn more 49 | 50 | ### What is new 51 | 52 | **Dark/Light mode** 53 | 54 | You can now set your preferred color theme. Options: Light / Dark / System 55 | 56 | ``` 57 | Set theme via Settings > Theme 58 | ``` 59 | Catapult Themes 60 | 61 | 62 | 63 | **Search projects** 64 | 65 | Search your projects for quick access. 66 | 67 | Catapult Search 68 | 69 | 70 | 71 | **Rearrange projects order** 72 | 73 | Click and drag any project to rearrange its position. 74 | 75 | Catapult Rearrange 76 | 77 | 78 | 79 | **Launch app only** 80 | 81 | ``` 82 | If you select to open an app with the same app, Catapult will only launch the app. 83 | ``` 84 | 85 | 86 | 87 | Other: **Use Finder option, design changes and more!** 88 | 89 | 90 | 91 | ### Credits 92 | 93 | Catapult uses the following open source packages: 94 | 95 | - [Electron](http://electron.atom.io/) 96 | - [Node.js](https://nodejs.org/) 97 | - [Jquery](https://jquery.com) 98 | - [Open](https://github.com/sindresorhus/open) 99 | - [Extract File Icon](https://github.com/sentialx/extract-file-icon) 100 | - [Electron Store](https://github.com/sindresorhus/electron-store) 101 | 102 | 103 | 104 | ### Support 105 | 106 | Buy Me A Coffee 107 | 108 | 109 | 110 | ### Contribute 111 | 112 | Please send any feedback or suggestions via Issues or at cerpow@gmail.com 113 | 114 | Using yarn as package manager (https://yarnpkg.com) 115 | 116 | ``` 117 | git clone https://github.com/cerpow/catapult.git 118 | cd catapult 119 | yarn 120 | yarn dev 121 | ``` 122 | 123 | 124 | 125 | ### License 126 | 127 | MIT 128 | 129 | --- 130 | 131 | > Voicu Apostol [cerpow.com](https://www.cerpow.com)  ·  GitHub [@cerpow](https://github.com/cerpow)  ·  Twitter [@cerpow](https://twitter.com/cerpow) 132 | -------------------------------------------------------------------------------- /app/js/menus.js: -------------------------------------------------------------------------------- 1 | //Modules 2 | const { Menu, nativeTheme } = remote; 3 | 4 | //Create Settings Menu 5 | const theme = DB.get('theme'); 6 | const settingsMenu = Menu.buildFromTemplate([ 7 | { 8 | label: 'Catapult v' + remote.app.getVersion(), 9 | type: 'normal', 10 | enabled: false, 11 | }, 12 | { type: 'separator' }, 13 | { 14 | label: 'Delete all projects', 15 | type: 'normal', 16 | click() { 17 | //Remove all projects 18 | projects = []; 19 | DB.set('projects', projects); 20 | 21 | //Refresh Home Page 22 | showHome(); 23 | }, 24 | }, 25 | { 26 | label: 'Launch at login', 27 | type: 'checkbox', 28 | checked: DB.get('openAtLogin'), 29 | click(e) { 30 | try { 31 | //Get app settings 32 | let { openAtLogin } = remote.app.getLoginItemSettings(); 33 | 34 | //Set open at login setting 35 | remote.app.setLoginItemSettings({ openAtLogin: !openAtLogin }); 36 | 37 | //Save to db 38 | DB.set('openAtLogin', !openAtLogin); 39 | 40 | //Update checkbox 41 | e.checked = !openAtLogin; 42 | } catch (err) { 43 | console.log(err); 44 | alert(err); 45 | e.checked = DB.get('openAtLogin'); 46 | } 47 | }, 48 | }, 49 | { 50 | label: 'Shortcut', 51 | type: 'submenu', 52 | submenu: [ 53 | { 54 | label: 'Use shortcut (⌘ + space)', 55 | type: 'checkbox', 56 | checked: DB.get('shortcut'), 57 | click() { 58 | ipcRenderer.invoke('setShortcut', !DB.get('shortcut')); 59 | DB.set('shortcut', !DB.get('shortcut')); 60 | }, 61 | }, 62 | { 63 | label: 'Set shortcut... (coming soon)', 64 | type: 'normal', 65 | enabled: false, 66 | }, 67 | ], 68 | }, 69 | { 70 | label: 'Theme', 71 | type: 'submenu', 72 | submenu: [ 73 | { 74 | label: 'Dark', 75 | checked: theme == 'dark', 76 | type: 'radio', 77 | click() { 78 | DB.set('theme', 'dark'); 79 | nativeTheme.themeSource = 'dark'; 80 | }, 81 | }, 82 | { 83 | label: 'Light', 84 | checked: theme == 'light', 85 | type: 'radio', 86 | click() { 87 | DB.set('theme', 'light'); 88 | nativeTheme.themeSource = 'light'; 89 | }, 90 | }, 91 | { 92 | label: 'System', 93 | checked: theme == 'system', 94 | type: 'radio', 95 | click() { 96 | DB.set('theme', 'system'); 97 | nativeTheme.themeSource = 'system'; 98 | }, 99 | }, 100 | ], 101 | }, 102 | { type: 'separator' }, 103 | { 104 | label: 'Check for updates', 105 | type: 'normal', 106 | click() { 107 | checkForUpdates(true); 108 | }, 109 | }, 110 | { 111 | label: 'Buy me a coffee', 112 | type: 'normal', 113 | click() { 114 | shell.openExternal('https://www.buymeacoffee.com/catapult'); 115 | }, 116 | }, 117 | { 118 | label: 'Support', 119 | type: 'normal', 120 | click() { 121 | shell.openExternal('mailto:cerpow@gmail.com'); 122 | }, 123 | }, 124 | { type: 'separator' }, 125 | { 126 | label: 'Quit Catapult', 127 | accelerator: 'Command+Q', 128 | click() { 129 | remote.app.exit(); 130 | }, 131 | }, 132 | ]); 133 | 134 | //Show Settings Menu 135 | $('body').on('click contextmenu', '.settings', () => settingsMenu.popup({ window: remote.getCurrentWindow() })); 136 | 137 | //Create Edit Menu 138 | const editMenu = Menu.buildFromTemplate([ 139 | { 140 | label: 'Edit', 141 | type: 'normal', 142 | async click() { 143 | //Show Details Screen 144 | let project = projects[contextProject]; 145 | let HTML = await Details(project.title, project.path, project.image, project.openIn, 'Edit'); 146 | 147 | //Render Details Screen 148 | $('#app').html(HTML); 149 | 150 | //Set title value 151 | $('.project-details-name').attr('value', project.title); 152 | 153 | //Focus title 154 | $('.project-details-name').trigger('focus'); 155 | 156 | //Move cursor at end 157 | $('.project-details-name')[0].setSelectionRange(project.title.length, project.title.length); 158 | }, 159 | }, 160 | { 161 | label: 'Delete', 162 | accelerator: 'Command+Q', 163 | async click() { 164 | //Delete Image 165 | const image = projects[contextProject].image; 166 | const hasImage = !image.includes('ico_folder'); 167 | 168 | //Remove image 169 | try { 170 | if (hasImage) await fs.promises.unlink(image); 171 | } catch (e) { 172 | console.log('Image file already cleaned'); 173 | } 174 | 175 | //Delete project 176 | projects.splice(contextProject, 1); 177 | projects.map((project, i) => (project.i = i)); 178 | DB.set('projects', projects); 179 | 180 | //Refresh Home Page 181 | showHome(); 182 | }, 183 | }, 184 | ]); 185 | 186 | //Show Project Edit Menu 187 | $('body').on('contextmenu', '.project', (e) => { 188 | //Get Target 189 | contextProject = parseInt($(e.currentTarget).attr('i')); 190 | 191 | //Show Context Menu 192 | editMenu.popup({ window: remote.getCurrentWindow() }); 193 | }); 194 | -------------------------------------------------------------------------------- /app/js/details.js: -------------------------------------------------------------------------------- 1 | //Get Started Screen 2 | async function Details(title, path, icon, openIn, action) { 3 | let html = ''; 4 | let trimPath = path; 5 | if (path.length > 28) trimPath = '...' + path.substr(path.length - 28); 6 | return new Promise((r) => { 7 | //Close Icon 8 | html += 9 | ''; 10 | 11 | //Details Screen 12 | html += '

' + trimPath + '

'; 13 | html += '
'; 14 | html += 'File Icon'; 15 | html += ''; 16 | html += 17 | '

Open In: ' + 18 | openIn + 19 | '

'; 20 | html += '

Use Finder

'; 21 | html += '
'; 22 | if (action == 'Edit') html += ''; 23 | if (action == 'New') html += ''; 24 | 25 | //Resolve 26 | r(html); 27 | }); 28 | } 29 | 30 | //Update input size 31 | $('body').on('input', '.project-details-name', (e) => (e.target.value.length ? (e.target.size = e.target.value.length) : (e.target.size = e.target.alt))); 32 | 33 | //Keep input focused 34 | $('body').on('blur', '.project-details-name', (e) => $(e.target).trigger('focus')); 35 | 36 | //Close Details Screen 37 | $('body').on('click', '.close', () => showHome()); 38 | 39 | //Open OpenIn Dialog 40 | $('body').on('click', '.project-details-openIn', async () => { 41 | remote.dialog 42 | .showOpenDialog({ 43 | defaultPath: '/Applications', 44 | properties: ['openFile'], 45 | message: 'Select Open In Application', 46 | filters: [ 47 | { 48 | name: 'Applications', 49 | extensions: ['app'], 50 | }, 51 | ], 52 | }) 53 | .then(async (result) => { 54 | if (result.canceled) return; 55 | 56 | //Replace openIn 57 | $('.project-details-openIn span').text(result.filePaths[0].split('/').pop().replace('.app', '')); 58 | }); 59 | }); 60 | 61 | //Use Finder 62 | $('body').on('click', '.project-details-useFinder', () => $('.project-details-openIn span').text('Finder')); 63 | 64 | //Edit Project 65 | $('body').on('click', '.project-edit', async () => { 66 | //Get Project Details 67 | let { projectPath, projectTitle, projectIcon, projectOpenIn } = getProjectDetails(); 68 | 69 | //Set Edit Project 70 | projects[contextProject] = { 71 | i: contextProject, 72 | title: projectTitle, 73 | path: projectPath, 74 | image: projectIcon, 75 | openIn: projectOpenIn, 76 | }; 77 | 78 | //Save New Project + Last App 79 | saveProject(projectOpenIn); 80 | }); 81 | 82 | //Save Project 83 | $('body').on('click', '.project-save', async () => { 84 | //Get Project Details 85 | let { projectPath, projectTitle, projectIcon, projectOpenIn } = getProjectDetails(); 86 | 87 | //If not a folder save new icon 88 | if (projectIcon.includes('base64')) { 89 | //Get Paths 90 | let userDataPath = path.join(remote.app.getPath('userData'), 'Icons'); 91 | let savePath = path.join(userDataPath, new Date().getTime() + '.png'); 92 | let base64 = projectIcon.replace(/^data:image\/png;base64,/, ''); 93 | 94 | //Create Icons Folder 95 | if (!fs.existsSync(userDataPath)) fs.mkdirSync(userDataPath); 96 | 97 | //Save Icon PNG 98 | await fs.promises.writeFile(savePath, base64, { encoding: 'base64' }); 99 | 100 | //Change Icon Path 101 | projectIcon = savePath; 102 | } 103 | 104 | //Set New Project 105 | projects.push({ 106 | i: projects.length, 107 | title: projectTitle, 108 | path: projectPath, 109 | image: projectIcon, 110 | openIn: projectOpenIn, 111 | }); 112 | 113 | //Save New Project + Last App 114 | saveProject(projectOpenIn); 115 | }); 116 | 117 | //Save/Edit Project 118 | async function saveProject(lastOpenIn) { 119 | //Save New Project + Last App 120 | await DB.set('projects', projects); 121 | await DB.set('lastApplication', lastOpenIn); 122 | 123 | //Home Screen 124 | Home(projects); 125 | } 126 | 127 | //Get Project Details 128 | function getProjectDetails() { 129 | //Get Project Details 130 | let projectPath = $('.project-details-path').attr('path'); 131 | let projectTitle = $('.project-details-name').val() || $('.project-details-name').attr('placeholder'); 132 | let projectIcon = $('.project-details-icon').attr('src'); 133 | let projectOpenIn = $('.project-details-openIn span').text(); 134 | 135 | return { projectPath: projectPath, projectTitle: projectTitle, projectIcon: projectIcon, projectOpenIn: projectOpenIn }; 136 | } 137 | 138 | //Export 139 | module.exports = Details; 140 | -------------------------------------------------------------------------------- /app/js/home.js: -------------------------------------------------------------------------------- 1 | //Modules 2 | const open = require('open'); 3 | const sortable = require('sortablejs'); 4 | let Sortable; 5 | 6 | //Render Home Screen 7 | async function Home(selectIndex) { 8 | let html = ''; 9 | return new Promise((r) => { 10 | //Settings Icon 11 | 12 | //Search 13 | html += ''; 19 | 20 | //Projects List Screen 21 | html += '
'; 22 | 23 | //Projects 24 | html += renderProjects(projects, selectIndex); 25 | 26 | //End Projects 27 | html += '
'; 28 | let projectName = projects.length > 1 ? 'Projects' : 'Project'; 29 | html += ''; 30 | 31 | //Render Home Screen 32 | $('#app').html(html); 33 | 34 | $('.projects-search input').trigger('focus'); 35 | 36 | //Sort projects 37 | Sortable = sortable.create($('.projects')[0], { 38 | animation: 250, 39 | direction: 'vertical', 40 | onEnd: async function (e) { 41 | const movedItem = projects.filter((item, index) => index === e.oldIndex); 42 | const remainingItems = projects.filter((item, index) => index !== e.oldIndex); 43 | const reorderedItems = [...remainingItems.slice(0, e.newIndex), movedItem[0], ...remainingItems.slice(e.newIndex)]; 44 | projects = reorderedItems; 45 | projects.map((project, i) => (project.i = i)); 46 | await DB.set('projects', projects); 47 | 48 | //Refresh 49 | Home(e.newIndex); 50 | }, 51 | }); 52 | 53 | //Resolve 54 | r(); 55 | }); 56 | } 57 | 58 | //Render Projects 59 | function renderProjects(projects, selectIndex) { 60 | let html = ''; 61 | 62 | //Loop Projects 63 | projects.forEach((project, i) => { 64 | html += i == (selectIndex || 0) ? '
'; 66 | html += ''; 67 | html += '

' + project.title + '

'; 68 | html += '

' + project.openIn + '

'; 69 | html += '
'; 70 | html += '
' + keyboardShortcut(i) + '
'; 71 | html += '
'; 72 | }); 73 | 74 | //Return 75 | return html; 76 | } 77 | 78 | //Create keyboard shortcut 79 | function keyboardShortcut(i) { 80 | if (i < 9) return '⌘' + (i + 1); 81 | return ''; 82 | } 83 | 84 | //Add selected class on mouse move 85 | $(document).on('mousemove', function (e) { 86 | let elem = document.elementFromPoint(e.clientX, e.clientY); 87 | let project = $(elem).closest('.project'); 88 | if (!project.length) return; 89 | if (project.hasClass('selected')) return; 90 | $('.selected').removeClass('selected'); 91 | project.addClass('selected'); 92 | }); 93 | 94 | //Open Projects 95 | $(document).on('click', '.project', async (e) => { 96 | //Get Project Info 97 | let project = $(e.currentTarget); 98 | let path = project.attr('path'); 99 | let openIn = project.attr('openIn'); 100 | 101 | //If file doesn't exist 102 | if (!fs.existsSync(path)) return alert('File or folder was removed.'); 103 | 104 | //Open folder or show file if Finder 105 | if (openIn == 'Finder') { 106 | //Detect if folder 107 | let isApp = path.split('.').pop() == 'app'; 108 | let isFolder = isApp ? false : fs.statSync(path).isDirectory(); 109 | 110 | //Open In Finder If Folder 111 | if (openIn == 'Finder' && isFolder) return shell.openPath(path); 112 | 113 | //Show In Finder If Not A Folder 114 | if (openIn == 'Finder' && !isFolder) return shell.showItemInFolder(path); 115 | } 116 | 117 | //Open app only 118 | if (path.split('.').pop() == 'app' && path.split('/').pop().split('.').slice(0, -1).join('.') == openIn) return openApp(path); 119 | 120 | //Open Project 121 | open(path, { app: { name: openIn } }); 122 | }); 123 | 124 | //Open app only 125 | const { exec } = require('child_process'); 126 | function openApp(path) { 127 | exec('open ' + path.replaceAll(' ', '\\ '), (error) => { 128 | if (error) alert(error.message); 129 | }); 130 | } 131 | 132 | //New Project Dialog 133 | $(document).on('click', '.addProject', async () => { 134 | remote.dialog.showOpenDialog({ properties: ['openFile', 'openDirectory', 'createDirectory'] }).then(async (result) => { 135 | if (result.canceled) return; 136 | 137 | //Get Project Info 138 | let isFolder = result.filePaths[0].split('.').length < 2; 139 | let title = result.filePaths[0].split('/').pop(); 140 | let path = result.filePaths[0]; 141 | let openIn = 'Finder'; 142 | 143 | //Get Icon 144 | let icon = isFolder ? './assets/icons/ico_folder.svg' : await getIcon(path); 145 | 146 | //Show Details Screen 147 | let HTML = await Details(title, path, icon, openIn, 'New'); 148 | 149 | //Render Details Screen 150 | $('#app').html(HTML); 151 | 152 | //Focus Title 153 | $('.project-details-name').trigger('focus'); 154 | }); 155 | }); 156 | 157 | //Search Projects 158 | $(document).on('input', '.projects-search input', (e) => { 159 | //Scroll top 160 | window.scrollTo(0, 0); 161 | 162 | //Disable sort 163 | Sortable.option('disabled', true); 164 | 165 | //Search term 166 | const term = $('.projects-search input').val().toLowerCase(); 167 | 168 | //Show Reset search icon 169 | if (term.length === 0) { 170 | $('.projects-search-reset').addClass('hidden'); 171 | 172 | //Enble sort 173 | Sortable.option('disabled', false); 174 | return $('.projects').html(renderProjects(projects)); 175 | } 176 | if (term.length > 0) $('.projects-search-reset').removeClass('hidden'); 177 | 178 | //Get results 179 | let results = projects.filter((project) => (project.title + ' ' + project.openIn).toLowerCase().includes(term)); 180 | 181 | //Render html 182 | results.length ? $('.projects').html(renderProjects(results)) : $('.projects').html('

No results found...

'); 183 | }); 184 | 185 | //Reset search 186 | $(document).on('click', '.projects-search-reset', () => { 187 | //Clear Search 188 | $('.projects-search input').val('').trigger('input').trigger('focus'); 189 | 190 | //Hide button 191 | $('.projects-search-reset').addClass('hidden'); 192 | 193 | //Enble sort 194 | Sortable.option('disabled', false); 195 | }); 196 | 197 | //Make search field focused on open and clear on close 198 | window.addEventListener('focus', () => $('.projects-search input').trigger('focus')); 199 | window.addEventListener('blur', () => { 200 | let searchInput = $('.projects-search input'); 201 | if (searchInput) searchInput.val('').trigger('input'); 202 | }); 203 | 204 | //Export 205 | module.exports = Home; 206 | -------------------------------------------------------------------------------- /app/css/app.css: -------------------------------------------------------------------------------- 1 | :not(input):not(textarea), 2 | :not(input):not(textarea)::after, 3 | :not(input):not(textarea)::before { 4 | -webkit-user-select: none; 5 | -moz-user-select: none; 6 | -ms-user-select: none; 7 | user-select: none; 8 | } 9 | 10 | ::-webkit-scrollbar { 11 | display: none; 12 | } 13 | 14 | :root { 15 | --blue-color: #3786fe; 16 | --blue-color-hightlight: rgba(55, 134, 254, 0.15); 17 | --main-bg-color: white; 18 | --secondary-bg-color: #e7eefc; 19 | --hover-bg-color: #edf0f8; 20 | --main-font-color: #7c7c8f; 21 | --main-font-color-hover: #585867; 22 | --secondary-font-color: #40404b; 23 | --secondary-font-color-darker: #4c4c59; 24 | } 25 | 26 | @media (prefers-color-scheme: dark) { 27 | :root { 28 | --main-bg-color: #1d1d22; 29 | --secondary-bg-color: #18181c; 30 | --hover-bg-color: #24242a; 31 | --main-font-color: #636375; 32 | --main-font-color-hover: #7c7c8f; 33 | --secondary-font-color: #eaeaed; 34 | --secondary-font-color-darker: #c1c1ca; 35 | } 36 | } 37 | 38 | html, 39 | body, 40 | h1, 41 | p, 42 | a, 43 | input { 44 | padding: 0; 45 | margin: 0; 46 | } 47 | 48 | h1 { 49 | font-size: 14px; 50 | color: var(--secondary-font-color); 51 | white-space: nowrap; 52 | overflow: hidden; 53 | text-overflow: ellipsis; 54 | max-width: 200px; 55 | } 56 | 57 | body { 58 | font-family: system-ui, -apple-system, 'Helvetica Neue', sans-serif; 59 | background-color: var(--main-bg-color); 60 | -webkit-font-smoothing: antialiased; 61 | color: var(--main-font-color); 62 | height: 100vh; 63 | -webkit-box-sizing: border-box; 64 | box-sizing: border-box; 65 | line-height: 1.5; 66 | font-size: 14px; 67 | } 68 | 69 | a { 70 | outline: 0; 71 | font-weight: bold; 72 | color: var(--blue-color); 73 | text-decoration: none; 74 | } 75 | 76 | #app { 77 | height: 100vh; 78 | position: relative; 79 | } 80 | 81 | .drag-window { 82 | -webkit-app-region: drag; 83 | position: fixed; 84 | top: 0; 85 | width: 100%; 86 | height: 13px; 87 | z-index: 9999; 88 | } 89 | 90 | .drag { 91 | border: solid 2px var(--blue-color); 92 | } 93 | 94 | .drag .get-started-image { 95 | display: none; 96 | } 97 | 98 | .drag .get-started-image-drag { 99 | display: block; 100 | } 101 | 102 | .drag .project:hover { 103 | background-color: transparent; 104 | } 105 | 106 | .settings, 107 | .close { 108 | cursor: pointer; 109 | position: fixed; 110 | top: 12px; 111 | right: 12px; 112 | opacity: 0.7; 113 | } 114 | 115 | .settings:hover, 116 | .close:hover { 117 | opacity: 1; 118 | } 119 | 120 | footer { 121 | position: fixed; 122 | bottom: 0; 123 | display: -webkit-box; 124 | display: -ms-flexbox; 125 | display: flex; 126 | -webkit-box-pack: center; 127 | -ms-flex-pack: center; 128 | justify-content: center; 129 | -webkit-box-sizing: border-box; 130 | box-sizing: border-box; 131 | width: 100%; 132 | background-color: var(--secondary-bg-color); 133 | border-right: 2px solid var(--secondary-bg-color); 134 | border-left: 2px solid var(--secondary-bg-color); 135 | border-bottom: 2px solid var(--secondary-bg-color); 136 | padding: 14px 18px; 137 | } 138 | 139 | footer span { 140 | margin-left: auto; 141 | } 142 | 143 | input { 144 | font: inherit; 145 | font-size: inherit; 146 | color: var(--secondary-font-color); 147 | border: 0; 148 | background-color: transparent; 149 | padding: 5px 8px; 150 | -webkit-box-sizing: border-box; 151 | box-sizing: border-box; 152 | border: 1px solid transparent; 153 | border-radius: 6px; 154 | width: auto; 155 | display: inline; 156 | outline: none; 157 | } 158 | 159 | input::-webkit-input-placeholder { 160 | font: inherit; 161 | font-size: inherit; 162 | color: var(--main-font-color); 163 | } 164 | 165 | input:-ms-input-placeholder { 166 | font: inherit; 167 | font-size: inherit; 168 | color: var(--main-font-color); 169 | } 170 | 171 | input::-ms-input-placeholder { 172 | font: inherit; 173 | font-size: inherit; 174 | color: var(--main-font-color); 175 | } 176 | 177 | input::placeholder { 178 | font: inherit; 179 | font-size: inherit; 180 | color: var(--main-font-color); 181 | } 182 | 183 | .drag { 184 | display: none; 185 | position: fixed; 186 | left: 0; 187 | right: 0; 188 | top: 0; 189 | bottom: 0; 190 | z-index: 9999; 191 | border-radius: 10px; 192 | } 193 | 194 | .get-started { 195 | position: absolute; 196 | display: -webkit-box; 197 | display: -ms-flexbox; 198 | display: flex; 199 | -webkit-box-orient: vertical; 200 | -webkit-box-direction: normal; 201 | -ms-flex-direction: column; 202 | flex-direction: column; 203 | -webkit-box-align: center; 204 | -ms-flex-align: center; 205 | align-items: center; 206 | left: 50%; 207 | top: 50%; 208 | -webkit-transform: translate(-50%, -54%); 209 | transform: translate(-50%, -54%); 210 | } 211 | 212 | .get-started img { 213 | display: inherit; 214 | } 215 | 216 | .get-started p { 217 | margin-top: 20px; 218 | text-align: center; 219 | width: 220px; 220 | } 221 | 222 | .get-started-image { 223 | position: relative; 224 | } 225 | 226 | .ico-flower { 227 | position: absolute; 228 | bottom: 2px; 229 | left: 50%; 230 | -webkit-transform: translateX(-50%); 231 | transform: translateX(-50%); 232 | } 233 | 234 | @media (prefers-color-scheme: dark) { 235 | .ico-flower { 236 | opacity: 0.3; 237 | } 238 | } 239 | 240 | .projects { 241 | width: 100%; 242 | display: inline-block; 243 | margin-bottom: 51px; 244 | } 245 | 246 | .project { 247 | cursor: pointer; 248 | display: -ms-grid; 249 | display: grid; 250 | -ms-grid-columns: auto auto 1fr; 251 | grid-template-columns: auto auto 1fr; 252 | -webkit-box-align: center; 253 | -ms-flex-align: center; 254 | align-items: center; 255 | padding: 10px 14px; 256 | } 257 | 258 | .project.selected { 259 | background-color: var(--blue-color-hightlight); 260 | color: var(--secondary-font-color); 261 | } 262 | 263 | .project.selected p { 264 | color: var(--secondary-font-color-darker); 265 | } 266 | 267 | .project.selected .project-shortcut { 268 | display: none; 269 | } 270 | 271 | .project.selected .project-shortcut-enter { 272 | display: block; 273 | } 274 | 275 | .project img { 276 | width: 40px; 277 | margin-right: 14px; 278 | } 279 | 280 | .project-shortcut, 281 | .project-shortcut-enter { 282 | text-align: right; 283 | } 284 | 285 | .project-shortcut-enter { 286 | display: none; 287 | } 288 | 289 | .projects-search { 290 | position: -webkit-sticky; 291 | position: sticky; 292 | top: 0; 293 | display: -webkit-box; 294 | display: -ms-flexbox; 295 | display: flex; 296 | -webkit-box-align: center; 297 | -ms-flex-align: center; 298 | align-items: center; 299 | -webkit-box-pack: justify; 300 | -ms-flex-pack: justify; 301 | justify-content: space-between; 302 | padding: 14px 10px 10px 14px; 303 | background-color: var(--main-bg-color); 304 | } 305 | 306 | .projects-search input { 307 | -webkit-box-flex: 1; 308 | -ms-flex: 1; 309 | flex: 1; 310 | height: 34px; 311 | padding: 0 5px; 312 | margin-bottom: 2px; 313 | } 314 | 315 | .projects-search .settings { 316 | position: unset; 317 | margin-left: 10px; 318 | } 319 | 320 | .projects-search-input-wrapper { 321 | display: -webkit-box; 322 | display: -ms-flexbox; 323 | display: flex; 324 | -webkit-box-align: center; 325 | -ms-flex-align: center; 326 | align-items: center; 327 | background-color: var(--hover-bg-color); 328 | border-radius: 5px; 329 | -webkit-box-flex: 1; 330 | -ms-flex: 1; 331 | flex: 1; 332 | padding: 0 8px; 333 | } 334 | 335 | .projects-search-reset { 336 | cursor: pointer; 337 | fill: var(--main-font-color); 338 | opacity: 0.7; 339 | } 340 | 341 | .projects-search-reset:hover { 342 | opacity: 1; 343 | } 344 | 345 | .projects-search-reset.hidden { 346 | display: none; 347 | } 348 | 349 | .sortable-ghost .project-info, 350 | .sortable-ghost img { 351 | opacity: 0; 352 | } 353 | 354 | .no-results { 355 | font-size: 16px; 356 | margin-left: 18px; 357 | } 358 | 359 | .project-details-info { 360 | display: -webkit-box; 361 | display: -ms-flexbox; 362 | display: flex; 363 | -webkit-box-orient: vertical; 364 | -webkit-box-direction: normal; 365 | -ms-flex-direction: column; 366 | flex-direction: column; 367 | -webkit-box-pack: center; 368 | -ms-flex-pack: center; 369 | justify-content: center; 370 | -webkit-box-align: center; 371 | -ms-flex-align: center; 372 | align-items: center; 373 | height: calc(100vh - 51px); 374 | } 375 | 376 | .project-details-info input { 377 | max-width: 150px; 378 | text-align: center; 379 | margin-top: 15px; 380 | } 381 | 382 | .project-details-info input:focus { 383 | border: 1px solid var(--blue-color); 384 | } 385 | 386 | .project-details-info p { 387 | cursor: pointer; 388 | display: -webkit-inline-box; 389 | display: -ms-inline-flexbox; 390 | display: inline-flex; 391 | } 392 | 393 | .project-details-info p:hover img { 394 | opacity: 1; 395 | } 396 | 397 | @media (prefers-color-scheme: dark) { 398 | .project-details-info p:hover img { 399 | opacity: 0.3; 400 | } 401 | } 402 | 403 | .project-details-info p img { 404 | margin-top: 2px; 405 | margin-left: 3px; 406 | opacity: 0.7; 407 | } 408 | 409 | @media (prefers-color-scheme: dark) { 410 | .project-details-info p img { 411 | opacity: 0.2; 412 | } 413 | } 414 | 415 | .project-details-info p span { 416 | display: contents; 417 | } 418 | 419 | .project-details-icon { 420 | width: 80px; 421 | margin-top: auto; 422 | padding-top: 45px; 423 | } 424 | 425 | .project-details-path { 426 | white-space: nowrap; 427 | position: absolute; 428 | left: 50%; 429 | -webkit-transform: translateX(-50%); 430 | transform: translateX(-50%); 431 | margin-top: 14px; 432 | } 433 | 434 | .project-details-openIn { 435 | margin-top: 10px; 436 | margin-bottom: auto; 437 | } 438 | 439 | .project-details-openIn:hover { 440 | color: var(--main-font-color-hover); 441 | } 442 | 443 | .project-details-openIn svg { 444 | margin-left: 1px; 445 | margin-top: 2px; 446 | } 447 | 448 | .project-details-openIn span { 449 | font-weight: 500; 450 | } 451 | 452 | .project-details-useFinder { 453 | margin-bottom: 15px; 454 | } 455 | 456 | .project-details-useFinder:hover { 457 | color: var(--main-font-color-hover); 458 | } 459 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "7zip-bin@~5.2.0": 6 | version "5.2.0" 7 | resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.2.0.tgz#7a03314684dd6572b7dfa89e68ce31d60286854d" 8 | integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== 9 | 10 | "@develar/schema-utils@~2.6.5": 11 | version "2.6.5" 12 | resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" 13 | integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== 14 | dependencies: 15 | ajv "^6.12.0" 16 | ajv-keywords "^3.4.1" 17 | 18 | "@electron/asar@^3.2.1": 19 | version "3.2.8" 20 | resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.8.tgz#2ea722f3452583dbd4ffdcc4b4f5dc903f1d8178" 21 | integrity sha512-cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg== 22 | dependencies: 23 | commander "^5.0.0" 24 | glob "^7.1.6" 25 | minimatch "^3.0.4" 26 | 27 | "@electron/get@^2.0.0": 28 | version "2.0.3" 29 | resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.3.tgz#fba552683d387aebd9f3fcadbcafc8e12ee4f960" 30 | integrity sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ== 31 | dependencies: 32 | debug "^4.1.1" 33 | env-paths "^2.2.0" 34 | fs-extra "^8.1.0" 35 | got "^11.8.5" 36 | progress "^2.0.3" 37 | semver "^6.2.0" 38 | sumchecker "^3.0.1" 39 | optionalDependencies: 40 | global-agent "^3.0.0" 41 | 42 | "@electron/notarize@2.1.0": 43 | version "2.1.0" 44 | resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-2.1.0.tgz#76aaec10c8687225e8d0a427cc9df67611c46ff3" 45 | integrity sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA== 46 | dependencies: 47 | debug "^4.1.1" 48 | fs-extra "^9.0.1" 49 | promise-retry "^2.0.1" 50 | 51 | "@electron/osx-sign@1.0.5": 52 | version "1.0.5" 53 | resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.5.tgz#0af7149f2fce44d1a8215660fd25a9fb610454d8" 54 | integrity sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww== 55 | dependencies: 56 | compare-version "^0.1.2" 57 | debug "^4.3.4" 58 | fs-extra "^10.0.0" 59 | isbinaryfile "^4.0.8" 60 | minimist "^1.2.6" 61 | plist "^3.0.5" 62 | 63 | "@electron/remote@^2.1.0": 64 | version "2.1.0" 65 | resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.1.0.tgz#7f3980840b5f4f3058ac7fd1da7a1167d10a9eaf" 66 | integrity sha512-38jzz2beoYTo0DNS+aoaGyLS/fHeNTAc1Aom6HlYsxKnvVWjcg4xriC7J2IUkYSEDHGKX/D7jUst+mH4dHR6QA== 67 | 68 | "@electron/universal@1.4.1": 69 | version "1.4.1" 70 | resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.4.1.tgz#3fbda2a5ed9ff9f3304c8e8316b94c1e3a7b3785" 71 | integrity sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ== 72 | dependencies: 73 | "@electron/asar" "^3.2.1" 74 | "@malept/cross-spawn-promise" "^1.1.0" 75 | debug "^4.3.1" 76 | dir-compare "^3.0.0" 77 | fs-extra "^9.0.1" 78 | minimatch "^3.0.4" 79 | plist "^3.0.4" 80 | 81 | "@malept/cross-spawn-promise@^1.1.0": 82 | version "1.1.1" 83 | resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" 84 | integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== 85 | dependencies: 86 | cross-spawn "^7.0.1" 87 | 88 | "@malept/flatpak-bundler@^0.4.0": 89 | version "0.4.0" 90 | resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" 91 | integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== 92 | dependencies: 93 | debug "^4.1.1" 94 | fs-extra "^9.0.0" 95 | lodash "^4.17.15" 96 | tmp-promise "^3.0.2" 97 | 98 | "@sindresorhus/is@^4.0.0": 99 | version "4.6.0" 100 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" 101 | integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== 102 | 103 | "@szmarczak/http-timer@^4.0.5": 104 | version "4.0.6" 105 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" 106 | integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== 107 | dependencies: 108 | defer-to-connect "^2.0.0" 109 | 110 | "@tootallnate/once@2": 111 | version "2.0.0" 112 | resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" 113 | integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== 114 | 115 | "@types/cacheable-request@^6.0.1": 116 | version "6.0.3" 117 | resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" 118 | integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== 119 | dependencies: 120 | "@types/http-cache-semantics" "*" 121 | "@types/keyv" "^3.1.4" 122 | "@types/node" "*" 123 | "@types/responselike" "^1.0.0" 124 | 125 | "@types/debug@^4.1.6": 126 | version "4.1.7" 127 | resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" 128 | integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== 129 | dependencies: 130 | "@types/ms" "*" 131 | 132 | "@types/fs-extra@9.0.13": 133 | version "9.0.13" 134 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" 135 | integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== 136 | dependencies: 137 | "@types/node" "*" 138 | 139 | "@types/fs-extra@^9.0.11": 140 | version "9.0.11" 141 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" 142 | integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== 143 | dependencies: 144 | "@types/node" "*" 145 | 146 | "@types/http-cache-semantics@*": 147 | version "4.0.4" 148 | resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" 149 | integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== 150 | 151 | "@types/keyv@^3.1.4": 152 | version "3.1.4" 153 | resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" 154 | integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== 155 | dependencies: 156 | "@types/node" "*" 157 | 158 | "@types/ms@*": 159 | version "0.7.31" 160 | resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" 161 | integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== 162 | 163 | "@types/node@*": 164 | version "15.12.2" 165 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" 166 | integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== 167 | 168 | "@types/node@^18.11.18": 169 | version "18.18.14" 170 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.14.tgz#26771c647f2842af57eb96191cd615d845164295" 171 | integrity sha512-iSOeNeXYNYNLLOMDSVPvIFojclvMZ/HDY2dU17kUlcsOsSQETbWIslJbYLZgA+ox8g2XQwSHKTkght1a5X26lQ== 172 | dependencies: 173 | undici-types "~5.26.4" 174 | 175 | "@types/plist@^3.0.1": 176 | version "3.0.2" 177 | resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01" 178 | integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw== 179 | dependencies: 180 | "@types/node" "*" 181 | xmlbuilder ">=11.0.1" 182 | 183 | "@types/responselike@^1.0.0": 184 | version "1.0.3" 185 | resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" 186 | integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== 187 | dependencies: 188 | "@types/node" "*" 189 | 190 | "@types/verror@^1.10.3": 191 | version "1.10.4" 192 | resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz#805c0612b3a0c124cf99f517364142946b74ba3b" 193 | integrity sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg== 194 | 195 | "@types/yauzl@^2.9.1": 196 | version "2.10.0" 197 | resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" 198 | integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== 199 | dependencies: 200 | "@types/node" "*" 201 | 202 | "@xmldom/xmldom@^0.8.8": 203 | version "0.8.10" 204 | resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" 205 | integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== 206 | 207 | abbrev@1: 208 | version "1.1.1" 209 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 210 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 211 | 212 | agent-base@6: 213 | version "6.0.2" 214 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 215 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 216 | dependencies: 217 | debug "4" 218 | 219 | ajv-formats@^2.1.1: 220 | version "2.1.1" 221 | resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" 222 | integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== 223 | dependencies: 224 | ajv "^8.0.0" 225 | 226 | ajv-keywords@^3.4.1: 227 | version "3.5.2" 228 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 229 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 230 | 231 | ajv@^6.10.0, ajv@^6.12.0: 232 | version "6.12.6" 233 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 234 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 235 | dependencies: 236 | fast-deep-equal "^3.1.1" 237 | fast-json-stable-stringify "^2.0.0" 238 | json-schema-traverse "^0.4.1" 239 | uri-js "^4.2.2" 240 | 241 | ajv@^8.0.0: 242 | version "8.6.0" 243 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" 244 | integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== 245 | dependencies: 246 | fast-deep-equal "^3.1.1" 247 | json-schema-traverse "^1.0.0" 248 | require-from-string "^2.0.2" 249 | uri-js "^4.2.2" 250 | 251 | ajv@^8.6.3: 252 | version "8.11.0" 253 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" 254 | integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== 255 | dependencies: 256 | fast-deep-equal "^3.1.1" 257 | json-schema-traverse "^1.0.0" 258 | require-from-string "^2.0.2" 259 | uri-js "^4.2.2" 260 | 261 | ansi-regex@^5.0.0: 262 | version "5.0.0" 263 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 264 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 265 | 266 | ansi-regex@^5.0.1: 267 | version "5.0.1" 268 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 269 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 270 | 271 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 272 | version "4.3.0" 273 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 274 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 275 | dependencies: 276 | color-convert "^2.0.1" 277 | 278 | anymatch@~3.1.2: 279 | version "3.1.2" 280 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 281 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 282 | dependencies: 283 | normalize-path "^3.0.0" 284 | picomatch "^2.0.4" 285 | 286 | app-builder-bin@4.0.0: 287 | version "4.0.0" 288 | resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz#1df8e654bd1395e4a319d82545c98667d7eed2f0" 289 | integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== 290 | 291 | app-builder-lib@24.9.1: 292 | version "24.9.1" 293 | resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-24.9.1.tgz#bf3568529298b4de8595ed1acbb351fe27db5ba4" 294 | integrity sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g== 295 | dependencies: 296 | "7zip-bin" "~5.2.0" 297 | "@develar/schema-utils" "~2.6.5" 298 | "@electron/notarize" "2.1.0" 299 | "@electron/osx-sign" "1.0.5" 300 | "@electron/universal" "1.4.1" 301 | "@malept/flatpak-bundler" "^0.4.0" 302 | "@types/fs-extra" "9.0.13" 303 | async-exit-hook "^2.0.1" 304 | bluebird-lst "^1.0.9" 305 | builder-util "24.8.1" 306 | builder-util-runtime "9.2.3" 307 | chromium-pickle-js "^0.2.0" 308 | debug "^4.3.4" 309 | ejs "^3.1.8" 310 | electron-publish "24.8.1" 311 | form-data "^4.0.0" 312 | fs-extra "^10.1.0" 313 | hosted-git-info "^4.1.0" 314 | is-ci "^3.0.0" 315 | isbinaryfile "^5.0.0" 316 | js-yaml "^4.1.0" 317 | lazy-val "^1.0.5" 318 | minimatch "^5.1.1" 319 | read-config-file "6.3.2" 320 | sanitize-filename "^1.6.3" 321 | semver "^7.3.8" 322 | tar "^6.1.12" 323 | temp-file "^3.4.0" 324 | 325 | argparse@^2.0.1: 326 | version "2.0.1" 327 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 328 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 329 | 330 | assert-plus@^1.0.0: 331 | version "1.0.0" 332 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 333 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 334 | 335 | astral-regex@^2.0.0: 336 | version "2.0.0" 337 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 338 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 339 | 340 | async-exit-hook@^2.0.1: 341 | version "2.0.1" 342 | resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" 343 | integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== 344 | 345 | async@^3.2.3: 346 | version "3.2.4" 347 | resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" 348 | integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== 349 | 350 | asynckit@^0.4.0: 351 | version "0.4.0" 352 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 353 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 354 | 355 | at-least-node@^1.0.0: 356 | version "1.0.0" 357 | resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" 358 | integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 359 | 360 | atomically@^1.7.0: 361 | version "1.7.0" 362 | resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" 363 | integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== 364 | 365 | axios-slim@^1.0.1: 366 | version "1.0.1" 367 | resolved "https://registry.yarnpkg.com/axios-slim/-/axios-slim-1.0.1.tgz#cc9f6971e6c7c8529e46d4d49a1ed9215332d399" 368 | integrity sha512-uF56o6q45XxR5HlFUoVZd901LqHEM+WFxUjbwGY7R3ApaQ+VkEZOBe5CKleRlG0UlMKc/4zJqczuALF+u2ALNg== 369 | 370 | balanced-match@^1.0.0: 371 | version "1.0.2" 372 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 373 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 374 | 375 | base64-js@^1.3.1, base64-js@^1.5.1: 376 | version "1.5.1" 377 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 378 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 379 | 380 | binary-extensions@^2.0.0: 381 | version "2.2.0" 382 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 383 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 384 | 385 | bluebird-lst@^1.0.9: 386 | version "1.0.9" 387 | resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" 388 | integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== 389 | dependencies: 390 | bluebird "^3.5.5" 391 | 392 | bluebird@^3.5.5: 393 | version "3.7.2" 394 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" 395 | integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== 396 | 397 | boolean@^3.0.1: 398 | version "3.1.2" 399 | resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.2.tgz#e30f210a26b02458482a8cc353ab06f262a780c2" 400 | integrity sha512-YN6UmV0FfLlBVvRvNPx3pz5W/mUoYB24J4WSXOKP/OOJpi+Oq6WYqPaNTHzjI0QzwWtnvEd5CGYyQPgp1jFxnw== 401 | 402 | brace-expansion@^1.1.7: 403 | version "1.1.11" 404 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 405 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 406 | dependencies: 407 | balanced-match "^1.0.0" 408 | concat-map "0.0.1" 409 | 410 | brace-expansion@^2.0.1: 411 | version "2.0.1" 412 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 413 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 414 | dependencies: 415 | balanced-match "^1.0.0" 416 | 417 | braces@~3.0.2: 418 | version "3.0.2" 419 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 420 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 421 | dependencies: 422 | fill-range "^7.0.1" 423 | 424 | buffer-crc32@~0.2.3: 425 | version "0.2.13" 426 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 427 | integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= 428 | 429 | buffer-equal@^1.0.0: 430 | version "1.0.1" 431 | resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" 432 | integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== 433 | 434 | buffer-from@^1.0.0: 435 | version "1.1.1" 436 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 437 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 438 | 439 | buffer@^5.1.0: 440 | version "5.7.1" 441 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 442 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 443 | dependencies: 444 | base64-js "^1.3.1" 445 | ieee754 "^1.1.13" 446 | 447 | builder-util-runtime@9.2.3: 448 | version "9.2.3" 449 | resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.2.3.tgz#0a82c7aca8eadef46d67b353c638f052c206b83c" 450 | integrity sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw== 451 | dependencies: 452 | debug "^4.3.4" 453 | sax "^1.2.4" 454 | 455 | builder-util@24.8.1: 456 | version "24.8.1" 457 | resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-24.8.1.tgz#594d45b0c86d1d17f5c7bebbb77405080b2571c2" 458 | integrity sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw== 459 | dependencies: 460 | "7zip-bin" "~5.2.0" 461 | "@types/debug" "^4.1.6" 462 | app-builder-bin "4.0.0" 463 | bluebird-lst "^1.0.9" 464 | builder-util-runtime "9.2.3" 465 | chalk "^4.1.2" 466 | cross-spawn "^7.0.3" 467 | debug "^4.3.4" 468 | fs-extra "^10.1.0" 469 | http-proxy-agent "^5.0.0" 470 | https-proxy-agent "^5.0.1" 471 | is-ci "^3.0.0" 472 | js-yaml "^4.1.0" 473 | source-map-support "^0.5.19" 474 | stat-mode "^1.0.0" 475 | temp-file "^3.4.0" 476 | 477 | cacheable-lookup@^5.0.3: 478 | version "5.0.4" 479 | resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" 480 | integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== 481 | 482 | cacheable-request@^7.0.2: 483 | version "7.0.4" 484 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" 485 | integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== 486 | dependencies: 487 | clone-response "^1.0.2" 488 | get-stream "^5.1.0" 489 | http-cache-semantics "^4.0.0" 490 | keyv "^4.0.0" 491 | lowercase-keys "^2.0.0" 492 | normalize-url "^6.0.1" 493 | responselike "^2.0.0" 494 | 495 | cash-dom@^8.1.5: 496 | version "8.1.5" 497 | resolved "https://registry.yarnpkg.com/cash-dom/-/cash-dom-8.1.5.tgz#7b2668ddbcce1c7893915d56fddb0abcda2e32c5" 498 | integrity sha512-/BS05CfzyHR5xT2ksKj1sDLPaOv5rSmIwoGxNgdKwUtnIuiJ5neMxVEmZxvfyJiSjGbOMD0Lwe+9v+fszDqHew== 499 | 500 | chalk@^4.0.2, chalk@^4.1.2: 501 | version "4.1.2" 502 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 503 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 504 | dependencies: 505 | ansi-styles "^4.1.0" 506 | supports-color "^7.1.0" 507 | 508 | chokidar@^3.5.2: 509 | version "3.5.3" 510 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 511 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 512 | dependencies: 513 | anymatch "~3.1.2" 514 | braces "~3.0.2" 515 | glob-parent "~5.1.2" 516 | is-binary-path "~2.1.0" 517 | is-glob "~4.0.1" 518 | normalize-path "~3.0.0" 519 | readdirp "~3.6.0" 520 | optionalDependencies: 521 | fsevents "~2.3.2" 522 | 523 | chownr@^2.0.0: 524 | version "2.0.0" 525 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" 526 | integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== 527 | 528 | chromium-pickle-js@^0.2.0: 529 | version "0.2.0" 530 | resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" 531 | integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= 532 | 533 | ci-info@^3.1.1: 534 | version "3.2.0" 535 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" 536 | integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== 537 | 538 | cli-truncate@^2.1.0: 539 | version "2.1.0" 540 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" 541 | integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== 542 | dependencies: 543 | slice-ansi "^3.0.0" 544 | string-width "^4.2.0" 545 | 546 | cliui@^8.0.1: 547 | version "8.0.1" 548 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" 549 | integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== 550 | dependencies: 551 | string-width "^4.2.0" 552 | strip-ansi "^6.0.1" 553 | wrap-ansi "^7.0.0" 554 | 555 | clone-response@^1.0.2: 556 | version "1.0.2" 557 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 558 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 559 | dependencies: 560 | mimic-response "^1.0.0" 561 | 562 | color-convert@^2.0.1: 563 | version "2.0.1" 564 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 565 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 566 | dependencies: 567 | color-name "~1.1.4" 568 | 569 | color-name@~1.1.4: 570 | version "1.1.4" 571 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 572 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 573 | 574 | combined-stream@^1.0.8: 575 | version "1.0.8" 576 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 577 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 578 | dependencies: 579 | delayed-stream "~1.0.0" 580 | 581 | commander@^5.0.0: 582 | version "5.1.0" 583 | resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" 584 | integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== 585 | 586 | compare-version@^0.1.2: 587 | version "0.1.2" 588 | resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" 589 | integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== 590 | 591 | compare-versions@^6.1.0: 592 | version "6.1.0" 593 | resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.0.tgz#3f2131e3ae93577df111dba133e6db876ffe127a" 594 | integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== 595 | 596 | concat-map@0.0.1: 597 | version "0.0.1" 598 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 599 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 600 | 601 | conf@^10.2.0: 602 | version "10.2.0" 603 | resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6" 604 | integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg== 605 | dependencies: 606 | ajv "^8.6.3" 607 | ajv-formats "^2.1.1" 608 | atomically "^1.7.0" 609 | debounce-fn "^4.0.0" 610 | dot-prop "^6.0.1" 611 | env-paths "^2.2.1" 612 | json-schema-typed "^7.0.3" 613 | onetime "^5.1.2" 614 | pkg-up "^3.1.0" 615 | semver "^7.3.5" 616 | 617 | config-file-ts@^0.2.4: 618 | version "0.2.4" 619 | resolved "https://registry.yarnpkg.com/config-file-ts/-/config-file-ts-0.2.4.tgz#6c0741fbe118a7cf786c65f139030f0448a2cc99" 620 | integrity sha512-cKSW0BfrSaAUnxpgvpXPLaaW/umg4bqg4k3GO1JqlRfpx+d5W0GDXznCMkWotJQek5Mmz1MJVChQnz3IVaeMZQ== 621 | dependencies: 622 | glob "^7.1.6" 623 | typescript "^4.0.2" 624 | 625 | core-util-is@1.0.2: 626 | version "1.0.2" 627 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 628 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 629 | 630 | crc@^3.8.0: 631 | version "3.8.0" 632 | resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" 633 | integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== 634 | dependencies: 635 | buffer "^5.1.0" 636 | 637 | cross-spawn@^7.0.1, cross-spawn@^7.0.3: 638 | version "7.0.3" 639 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 640 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 641 | dependencies: 642 | path-key "^3.1.0" 643 | shebang-command "^2.0.0" 644 | which "^2.0.1" 645 | 646 | debounce-fn@^4.0.0: 647 | version "4.0.0" 648 | resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" 649 | integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== 650 | dependencies: 651 | mimic-fn "^3.0.0" 652 | 653 | debug@4, debug@^4.3.4: 654 | version "4.3.4" 655 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 656 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 657 | dependencies: 658 | ms "2.1.2" 659 | 660 | debug@^3.2.7: 661 | version "3.2.7" 662 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 663 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 664 | dependencies: 665 | ms "^2.1.1" 666 | 667 | debug@^4.1.0, debug@^4.1.1: 668 | version "4.3.2" 669 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 670 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== 671 | dependencies: 672 | ms "2.1.2" 673 | 674 | debug@^4.3.1: 675 | version "4.3.1" 676 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 677 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 678 | dependencies: 679 | ms "2.1.2" 680 | 681 | decompress-response@^6.0.0: 682 | version "6.0.0" 683 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" 684 | integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 685 | dependencies: 686 | mimic-response "^3.1.0" 687 | 688 | defer-to-connect@^2.0.0: 689 | version "2.0.1" 690 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" 691 | integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== 692 | 693 | define-lazy-prop@^2.0.0: 694 | version "2.0.0" 695 | resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" 696 | integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== 697 | 698 | define-properties@^1.1.3: 699 | version "1.1.3" 700 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 701 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 702 | dependencies: 703 | object-keys "^1.0.12" 704 | 705 | delayed-stream@~1.0.0: 706 | version "1.0.0" 707 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 708 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 709 | 710 | detect-node@^2.0.4: 711 | version "2.1.0" 712 | resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" 713 | integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== 714 | 715 | dir-compare@^3.0.0: 716 | version "3.3.0" 717 | resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-3.3.0.tgz#2c749f973b5c4b5d087f11edaae730db31788416" 718 | integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== 719 | dependencies: 720 | buffer-equal "^1.0.0" 721 | minimatch "^3.0.4" 722 | 723 | dmg-builder@24.9.1: 724 | version "24.9.1" 725 | resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-24.9.1.tgz#04bf6c0dcd235f6214511f2358a78ed2b9379421" 726 | integrity sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ== 727 | dependencies: 728 | app-builder-lib "24.9.1" 729 | builder-util "24.8.1" 730 | builder-util-runtime "9.2.3" 731 | fs-extra "^10.1.0" 732 | iconv-lite "^0.6.2" 733 | js-yaml "^4.1.0" 734 | optionalDependencies: 735 | dmg-license "^1.0.11" 736 | 737 | dmg-license@^1.0.11: 738 | version "1.0.11" 739 | resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.11.tgz#7b3bc3745d1b52be7506b4ee80cb61df6e4cd79a" 740 | integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== 741 | dependencies: 742 | "@types/plist" "^3.0.1" 743 | "@types/verror" "^1.10.3" 744 | ajv "^6.10.0" 745 | crc "^3.8.0" 746 | iconv-corefoundation "^1.1.7" 747 | plist "^3.0.4" 748 | smart-buffer "^4.0.2" 749 | verror "^1.10.0" 750 | 751 | dot-prop@^6.0.1: 752 | version "6.0.1" 753 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" 754 | integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== 755 | dependencies: 756 | is-obj "^2.0.0" 757 | 758 | dotenv-expand@^5.1.0: 759 | version "5.1.0" 760 | resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" 761 | integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== 762 | 763 | dotenv@^9.0.2: 764 | version "9.0.2" 765 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" 766 | integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== 767 | 768 | ejs@^3.1.8: 769 | version "3.1.9" 770 | resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" 771 | integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== 772 | dependencies: 773 | jake "^10.8.5" 774 | 775 | electron-builder@^24.9.1: 776 | version "24.9.1" 777 | resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-24.9.1.tgz#4aee03947963b829a7f48a850fe02c219311ef63" 778 | integrity sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg== 779 | dependencies: 780 | app-builder-lib "24.9.1" 781 | builder-util "24.8.1" 782 | builder-util-runtime "9.2.3" 783 | chalk "^4.1.2" 784 | dmg-builder "24.9.1" 785 | fs-extra "^10.1.0" 786 | is-ci "^3.0.0" 787 | lazy-val "^1.0.5" 788 | read-config-file "6.3.2" 789 | simple-update-notifier "2.0.0" 790 | yargs "^17.6.2" 791 | 792 | electron-publish@24.8.1: 793 | version "24.8.1" 794 | resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-24.8.1.tgz#4216740372bf4297a429543402a1a15ce8c3560b" 795 | integrity sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw== 796 | dependencies: 797 | "@types/fs-extra" "^9.0.11" 798 | builder-util "24.8.1" 799 | builder-util-runtime "9.2.3" 800 | chalk "^4.1.2" 801 | fs-extra "^10.1.0" 802 | lazy-val "^1.0.5" 803 | mime "^2.5.2" 804 | 805 | electron-store@^8.1.0: 806 | version "8.1.0" 807 | resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.1.0.tgz#46a398f2bd9aa83c4a9daaae28380e2b3b9c7597" 808 | integrity sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA== 809 | dependencies: 810 | conf "^10.2.0" 811 | type-fest "^2.17.0" 812 | 813 | electron@^27.1.2: 814 | version "27.1.2" 815 | resolved "https://registry.yarnpkg.com/electron/-/electron-27.1.2.tgz#d3074c91cce94c1e19b5904b1cdf78c830f2558d" 816 | integrity sha512-Dy6BUuGLiIJv+zfsXwr78TV2TNppi24rXF4PIIS+OjDblEKdkI9r1iM8JUd3/x3sbGUy5mdLMSPhvmu//IhkgA== 817 | dependencies: 818 | "@electron/get" "^2.0.0" 819 | "@types/node" "^18.11.18" 820 | extract-zip "^2.0.1" 821 | 822 | emoji-regex@^8.0.0: 823 | version "8.0.0" 824 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 825 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 826 | 827 | end-of-stream@^1.1.0: 828 | version "1.4.4" 829 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 830 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 831 | dependencies: 832 | once "^1.4.0" 833 | 834 | env-paths@^2.2.0, env-paths@^2.2.1: 835 | version "2.2.1" 836 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" 837 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 838 | 839 | err-code@^2.0.2: 840 | version "2.0.3" 841 | resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" 842 | integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== 843 | 844 | es6-error@^4.1.1: 845 | version "4.1.1" 846 | resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" 847 | integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== 848 | 849 | escalade@^3.1.1: 850 | version "3.1.1" 851 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 852 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 853 | 854 | escape-string-regexp@^4.0.0: 855 | version "4.0.0" 856 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 857 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 858 | 859 | extract-file-icon@^0.3.2: 860 | version "0.3.2" 861 | resolved "https://registry.yarnpkg.com/extract-file-icon/-/extract-file-icon-0.3.2.tgz#9d95bf1aef4125c6a5844b1898492847868e569e" 862 | integrity sha512-We5/HaMDlioOx3c9zDjit8RtKWEvT94sJF8jTujaKVOyWL8Kkqu4QGnwDr5fID6XsbKvWT0JJNuWuV2Tmr7yiw== 863 | dependencies: 864 | node-addon-api "1.7.1" 865 | 866 | extract-zip@^2.0.1: 867 | version "2.0.1" 868 | resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" 869 | integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== 870 | dependencies: 871 | debug "^4.1.1" 872 | get-stream "^5.1.0" 873 | yauzl "^2.10.0" 874 | optionalDependencies: 875 | "@types/yauzl" "^2.9.1" 876 | 877 | extsprintf@^1.2.0: 878 | version "1.4.0" 879 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 880 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= 881 | 882 | fast-deep-equal@^3.1.1: 883 | version "3.1.3" 884 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 885 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 886 | 887 | fast-json-stable-stringify@^2.0.0: 888 | version "2.1.0" 889 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 890 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 891 | 892 | fd-slicer@~1.1.0: 893 | version "1.1.0" 894 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" 895 | integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= 896 | dependencies: 897 | pend "~1.2.0" 898 | 899 | filelist@^1.0.1: 900 | version "1.0.2" 901 | resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" 902 | integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== 903 | dependencies: 904 | minimatch "^3.0.4" 905 | 906 | fill-range@^7.0.1: 907 | version "7.0.1" 908 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 909 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 910 | dependencies: 911 | to-regex-range "^5.0.1" 912 | 913 | find-up@^3.0.0: 914 | version "3.0.0" 915 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 916 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 917 | dependencies: 918 | locate-path "^3.0.0" 919 | 920 | form-data@^4.0.0: 921 | version "4.0.0" 922 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 923 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 924 | dependencies: 925 | asynckit "^0.4.0" 926 | combined-stream "^1.0.8" 927 | mime-types "^2.1.12" 928 | 929 | fs-extra@^10.0.0: 930 | version "10.0.0" 931 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" 932 | integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== 933 | dependencies: 934 | graceful-fs "^4.2.0" 935 | jsonfile "^6.0.1" 936 | universalify "^2.0.0" 937 | 938 | fs-extra@^10.1.0: 939 | version "10.1.0" 940 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" 941 | integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== 942 | dependencies: 943 | graceful-fs "^4.2.0" 944 | jsonfile "^6.0.1" 945 | universalify "^2.0.0" 946 | 947 | fs-extra@^8.1.0: 948 | version "8.1.0" 949 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 950 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 951 | dependencies: 952 | graceful-fs "^4.2.0" 953 | jsonfile "^4.0.0" 954 | universalify "^0.1.0" 955 | 956 | fs-extra@^9.0.0, fs-extra@^9.0.1: 957 | version "9.1.0" 958 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" 959 | integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== 960 | dependencies: 961 | at-least-node "^1.0.0" 962 | graceful-fs "^4.2.0" 963 | jsonfile "^6.0.1" 964 | universalify "^2.0.0" 965 | 966 | fs-minipass@^2.0.0: 967 | version "2.1.0" 968 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" 969 | integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== 970 | dependencies: 971 | minipass "^3.0.0" 972 | 973 | fs.realpath@^1.0.0: 974 | version "1.0.0" 975 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 976 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 977 | 978 | fsevents@~2.3.2: 979 | version "2.3.2" 980 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 981 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 982 | 983 | get-caller-file@^2.0.5: 984 | version "2.0.5" 985 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 986 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 987 | 988 | get-stream@^5.1.0: 989 | version "5.2.0" 990 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 991 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 992 | dependencies: 993 | pump "^3.0.0" 994 | 995 | glob-parent@~5.1.2: 996 | version "5.1.2" 997 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 998 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 999 | dependencies: 1000 | is-glob "^4.0.1" 1001 | 1002 | glob@^7.1.3, glob@^7.1.6: 1003 | version "7.1.7" 1004 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 1005 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 1006 | dependencies: 1007 | fs.realpath "^1.0.0" 1008 | inflight "^1.0.4" 1009 | inherits "2" 1010 | minimatch "^3.0.4" 1011 | once "^1.3.0" 1012 | path-is-absolute "^1.0.0" 1013 | 1014 | global-agent@^3.0.0: 1015 | version "3.0.0" 1016 | resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" 1017 | integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== 1018 | dependencies: 1019 | boolean "^3.0.1" 1020 | es6-error "^4.1.1" 1021 | matcher "^3.0.0" 1022 | roarr "^2.15.3" 1023 | semver "^7.3.2" 1024 | serialize-error "^7.0.1" 1025 | 1026 | globalthis@^1.0.1: 1027 | version "1.0.2" 1028 | resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" 1029 | integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== 1030 | dependencies: 1031 | define-properties "^1.1.3" 1032 | 1033 | got@^11.8.5: 1034 | version "11.8.6" 1035 | resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" 1036 | integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== 1037 | dependencies: 1038 | "@sindresorhus/is" "^4.0.0" 1039 | "@szmarczak/http-timer" "^4.0.5" 1040 | "@types/cacheable-request" "^6.0.1" 1041 | "@types/responselike" "^1.0.0" 1042 | cacheable-lookup "^5.0.3" 1043 | cacheable-request "^7.0.2" 1044 | decompress-response "^6.0.0" 1045 | http2-wrapper "^1.0.0-beta.5.2" 1046 | lowercase-keys "^2.0.0" 1047 | p-cancelable "^2.0.0" 1048 | responselike "^2.0.0" 1049 | 1050 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 1051 | version "4.2.6" 1052 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 1053 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 1054 | 1055 | has-flag@^3.0.0: 1056 | version "3.0.0" 1057 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1058 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1059 | 1060 | has-flag@^4.0.0: 1061 | version "4.0.0" 1062 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1063 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1064 | 1065 | hosted-git-info@^4.1.0: 1066 | version "4.1.0" 1067 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" 1068 | integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== 1069 | dependencies: 1070 | lru-cache "^6.0.0" 1071 | 1072 | http-cache-semantics@^4.0.0: 1073 | version "4.1.0" 1074 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 1075 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 1076 | 1077 | http-proxy-agent@^5.0.0: 1078 | version "5.0.0" 1079 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" 1080 | integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== 1081 | dependencies: 1082 | "@tootallnate/once" "2" 1083 | agent-base "6" 1084 | debug "4" 1085 | 1086 | http2-wrapper@^1.0.0-beta.5.2: 1087 | version "1.0.3" 1088 | resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" 1089 | integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== 1090 | dependencies: 1091 | quick-lru "^5.1.1" 1092 | resolve-alpn "^1.0.0" 1093 | 1094 | https-proxy-agent@^5.0.1: 1095 | version "5.0.1" 1096 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" 1097 | integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== 1098 | dependencies: 1099 | agent-base "6" 1100 | debug "4" 1101 | 1102 | iconv-corefoundation@^1.1.7: 1103 | version "1.1.7" 1104 | resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz#31065e6ab2c9272154c8b0821151e2c88f1b002a" 1105 | integrity sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ== 1106 | dependencies: 1107 | cli-truncate "^2.1.0" 1108 | node-addon-api "^1.6.3" 1109 | 1110 | iconv-lite@^0.6.2: 1111 | version "0.6.3" 1112 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" 1113 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== 1114 | dependencies: 1115 | safer-buffer ">= 2.1.2 < 3.0.0" 1116 | 1117 | ieee754@^1.1.13: 1118 | version "1.2.1" 1119 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 1120 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 1121 | 1122 | ignore-by-default@^1.0.1: 1123 | version "1.0.1" 1124 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1125 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 1126 | 1127 | inflight@^1.0.4: 1128 | version "1.0.6" 1129 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1130 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1131 | dependencies: 1132 | once "^1.3.0" 1133 | wrappy "1" 1134 | 1135 | inherits@2: 1136 | version "2.0.4" 1137 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1138 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1139 | 1140 | is-binary-path@~2.1.0: 1141 | version "2.1.0" 1142 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1143 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1144 | dependencies: 1145 | binary-extensions "^2.0.0" 1146 | 1147 | is-ci@^3.0.0: 1148 | version "3.0.0" 1149 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" 1150 | integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== 1151 | dependencies: 1152 | ci-info "^3.1.1" 1153 | 1154 | is-docker@^2.0.0, is-docker@^2.1.1: 1155 | version "2.2.1" 1156 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" 1157 | integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== 1158 | 1159 | is-extglob@^2.1.1: 1160 | version "2.1.1" 1161 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1162 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1163 | 1164 | is-fullwidth-code-point@^3.0.0: 1165 | version "3.0.0" 1166 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1167 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1168 | 1169 | is-glob@^4.0.1, is-glob@~4.0.1: 1170 | version "4.0.1" 1171 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1172 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1173 | dependencies: 1174 | is-extglob "^2.1.1" 1175 | 1176 | is-number@^7.0.0: 1177 | version "7.0.0" 1178 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1179 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1180 | 1181 | is-obj@^2.0.0: 1182 | version "2.0.0" 1183 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 1184 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 1185 | 1186 | is-wsl@^2.2.0: 1187 | version "2.2.0" 1188 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" 1189 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== 1190 | dependencies: 1191 | is-docker "^2.0.0" 1192 | 1193 | isbinaryfile@^4.0.8: 1194 | version "4.0.10" 1195 | resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" 1196 | integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== 1197 | 1198 | isbinaryfile@^5.0.0: 1199 | version "5.0.0" 1200 | resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.0.tgz#034b7e54989dab8986598cbcea41f66663c65234" 1201 | integrity sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg== 1202 | 1203 | isexe@^2.0.0: 1204 | version "2.0.0" 1205 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1206 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1207 | 1208 | jake@^10.8.5: 1209 | version "10.8.5" 1210 | resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" 1211 | integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== 1212 | dependencies: 1213 | async "^3.2.3" 1214 | chalk "^4.0.2" 1215 | filelist "^1.0.1" 1216 | minimatch "^3.0.4" 1217 | 1218 | js-yaml@^4.1.0: 1219 | version "4.1.0" 1220 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 1221 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1222 | dependencies: 1223 | argparse "^2.0.1" 1224 | 1225 | json-buffer@3.0.1: 1226 | version "3.0.1" 1227 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" 1228 | integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== 1229 | 1230 | json-schema-traverse@^0.4.1: 1231 | version "0.4.1" 1232 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1233 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1234 | 1235 | json-schema-traverse@^1.0.0: 1236 | version "1.0.0" 1237 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 1238 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 1239 | 1240 | json-schema-typed@^7.0.3: 1241 | version "7.0.3" 1242 | resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" 1243 | integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== 1244 | 1245 | json-stringify-safe@^5.0.1: 1246 | version "5.0.1" 1247 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1248 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 1249 | 1250 | json5@^2.2.0: 1251 | version "2.2.0" 1252 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" 1253 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== 1254 | dependencies: 1255 | minimist "^1.2.5" 1256 | 1257 | jsonfile@^4.0.0: 1258 | version "4.0.0" 1259 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1260 | integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= 1261 | optionalDependencies: 1262 | graceful-fs "^4.1.6" 1263 | 1264 | jsonfile@^6.0.1: 1265 | version "6.1.0" 1266 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 1267 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 1268 | dependencies: 1269 | universalify "^2.0.0" 1270 | optionalDependencies: 1271 | graceful-fs "^4.1.6" 1272 | 1273 | keyv@^4.0.0: 1274 | version "4.5.4" 1275 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" 1276 | integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== 1277 | dependencies: 1278 | json-buffer "3.0.1" 1279 | 1280 | lazy-val@^1.0.4, lazy-val@^1.0.5: 1281 | version "1.0.5" 1282 | resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" 1283 | integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== 1284 | 1285 | locate-path@^3.0.0: 1286 | version "3.0.0" 1287 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1288 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1289 | dependencies: 1290 | p-locate "^3.0.0" 1291 | path-exists "^3.0.0" 1292 | 1293 | lodash@^4.17.15: 1294 | version "4.17.21" 1295 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1296 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1297 | 1298 | lowercase-keys@^2.0.0: 1299 | version "2.0.0" 1300 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 1301 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 1302 | 1303 | lru-cache@^6.0.0: 1304 | version "6.0.0" 1305 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1306 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1307 | dependencies: 1308 | yallist "^4.0.0" 1309 | 1310 | matcher@^3.0.0: 1311 | version "3.0.0" 1312 | resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" 1313 | integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== 1314 | dependencies: 1315 | escape-string-regexp "^4.0.0" 1316 | 1317 | mime-db@1.52.0: 1318 | version "1.52.0" 1319 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 1320 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1321 | 1322 | mime-types@^2.1.12: 1323 | version "2.1.35" 1324 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1325 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1326 | dependencies: 1327 | mime-db "1.52.0" 1328 | 1329 | mime@^2.5.2: 1330 | version "2.5.2" 1331 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" 1332 | integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== 1333 | 1334 | mimic-fn@^2.1.0: 1335 | version "2.1.0" 1336 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1337 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1338 | 1339 | mimic-fn@^3.0.0: 1340 | version "3.1.0" 1341 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" 1342 | integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== 1343 | 1344 | mimic-response@^1.0.0: 1345 | version "1.0.1" 1346 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 1347 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 1348 | 1349 | mimic-response@^3.1.0: 1350 | version "3.1.0" 1351 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" 1352 | integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 1353 | 1354 | minimatch@^3.0.4: 1355 | version "3.0.4" 1356 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1357 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1358 | dependencies: 1359 | brace-expansion "^1.1.7" 1360 | 1361 | minimatch@^3.1.2: 1362 | version "3.1.2" 1363 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1364 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1365 | dependencies: 1366 | brace-expansion "^1.1.7" 1367 | 1368 | minimatch@^5.1.1: 1369 | version "5.1.6" 1370 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" 1371 | integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== 1372 | dependencies: 1373 | brace-expansion "^2.0.1" 1374 | 1375 | minimist@^1.2.5: 1376 | version "1.2.5" 1377 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1378 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1379 | 1380 | minimist@^1.2.6: 1381 | version "1.2.8" 1382 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 1383 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 1384 | 1385 | minipass@^3.0.0: 1386 | version "3.3.4" 1387 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" 1388 | integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== 1389 | dependencies: 1390 | yallist "^4.0.0" 1391 | 1392 | minipass@^5.0.0: 1393 | version "5.0.0" 1394 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" 1395 | integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== 1396 | 1397 | minizlib@^2.1.1: 1398 | version "2.1.2" 1399 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" 1400 | integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== 1401 | dependencies: 1402 | minipass "^3.0.0" 1403 | yallist "^4.0.0" 1404 | 1405 | mkdirp@^1.0.3: 1406 | version "1.0.4" 1407 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 1408 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 1409 | 1410 | ms@2.1.2: 1411 | version "2.1.2" 1412 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1413 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1414 | 1415 | ms@^2.1.1: 1416 | version "2.1.3" 1417 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1418 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1419 | 1420 | node-addon-api@1.7.1: 1421 | version "1.7.1" 1422 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.1.tgz#cf813cd69bb8d9100f6bdca6755fc268f54ac492" 1423 | integrity sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ== 1424 | 1425 | node-addon-api@^1.6.3: 1426 | version "1.7.2" 1427 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" 1428 | integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== 1429 | 1430 | nodemon@^3.0.1: 1431 | version "3.0.1" 1432 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.0.1.tgz#affe822a2c5f21354466b2fc8ae83277d27dadc7" 1433 | integrity sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw== 1434 | dependencies: 1435 | chokidar "^3.5.2" 1436 | debug "^3.2.7" 1437 | ignore-by-default "^1.0.1" 1438 | minimatch "^3.1.2" 1439 | pstree.remy "^1.1.8" 1440 | semver "^7.5.3" 1441 | simple-update-notifier "^2.0.0" 1442 | supports-color "^5.5.0" 1443 | touch "^3.1.0" 1444 | undefsafe "^2.0.5" 1445 | 1446 | nopt@~1.0.10: 1447 | version "1.0.10" 1448 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1449 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 1450 | dependencies: 1451 | abbrev "1" 1452 | 1453 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1454 | version "3.0.0" 1455 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1456 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1457 | 1458 | normalize-url@^6.0.1: 1459 | version "6.1.0" 1460 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" 1461 | integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== 1462 | 1463 | object-keys@^1.0.12: 1464 | version "1.1.1" 1465 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1466 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1467 | 1468 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 1469 | version "1.4.0" 1470 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1471 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1472 | dependencies: 1473 | wrappy "1" 1474 | 1475 | onetime@^5.1.2: 1476 | version "5.1.2" 1477 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1478 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1479 | dependencies: 1480 | mimic-fn "^2.1.0" 1481 | 1482 | open@8.4.0: 1483 | version "8.4.0" 1484 | resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" 1485 | integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== 1486 | dependencies: 1487 | define-lazy-prop "^2.0.0" 1488 | is-docker "^2.1.1" 1489 | is-wsl "^2.2.0" 1490 | 1491 | os@^0.1.2: 1492 | version "0.1.2" 1493 | resolved "https://registry.yarnpkg.com/os/-/os-0.1.2.tgz#f29a50c62908516ba42652de42f7038600cadbc2" 1494 | integrity sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ== 1495 | 1496 | p-cancelable@^2.0.0: 1497 | version "2.1.1" 1498 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" 1499 | integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== 1500 | 1501 | p-limit@^2.0.0: 1502 | version "2.3.0" 1503 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1504 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1505 | dependencies: 1506 | p-try "^2.0.0" 1507 | 1508 | p-locate@^3.0.0: 1509 | version "3.0.0" 1510 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1511 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1512 | dependencies: 1513 | p-limit "^2.0.0" 1514 | 1515 | p-try@^2.0.0: 1516 | version "2.2.0" 1517 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1518 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1519 | 1520 | path-exists@^3.0.0: 1521 | version "3.0.0" 1522 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1523 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1524 | 1525 | path-is-absolute@^1.0.0: 1526 | version "1.0.1" 1527 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1528 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1529 | 1530 | path-key@^3.1.0: 1531 | version "3.1.1" 1532 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1533 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1534 | 1535 | pend@~1.2.0: 1536 | version "1.2.0" 1537 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 1538 | integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= 1539 | 1540 | picomatch@^2.0.4, picomatch@^2.2.1: 1541 | version "2.3.0" 1542 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1543 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1544 | 1545 | pkg-up@^3.1.0: 1546 | version "3.1.0" 1547 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" 1548 | integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== 1549 | dependencies: 1550 | find-up "^3.0.0" 1551 | 1552 | plist@^3.0.4: 1553 | version "3.0.6" 1554 | resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" 1555 | integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== 1556 | dependencies: 1557 | base64-js "^1.5.1" 1558 | xmlbuilder "^15.1.1" 1559 | 1560 | plist@^3.0.5: 1561 | version "3.1.0" 1562 | resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" 1563 | integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== 1564 | dependencies: 1565 | "@xmldom/xmldom" "^0.8.8" 1566 | base64-js "^1.5.1" 1567 | xmlbuilder "^15.1.1" 1568 | 1569 | progress@^2.0.3: 1570 | version "2.0.3" 1571 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1572 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1573 | 1574 | promise-retry@^2.0.1: 1575 | version "2.0.1" 1576 | resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" 1577 | integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== 1578 | dependencies: 1579 | err-code "^2.0.2" 1580 | retry "^0.12.0" 1581 | 1582 | pstree.remy@^1.1.8: 1583 | version "1.1.8" 1584 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 1585 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 1586 | 1587 | pump@^3.0.0: 1588 | version "3.0.0" 1589 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1590 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1591 | dependencies: 1592 | end-of-stream "^1.1.0" 1593 | once "^1.3.1" 1594 | 1595 | punycode@^2.1.0: 1596 | version "2.1.1" 1597 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1598 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1599 | 1600 | quick-lru@^5.1.1: 1601 | version "5.1.1" 1602 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 1603 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 1604 | 1605 | read-config-file@6.3.2: 1606 | version "6.3.2" 1607 | resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.3.2.tgz#556891aa6ffabced916ed57457cb192e61880411" 1608 | integrity sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q== 1609 | dependencies: 1610 | config-file-ts "^0.2.4" 1611 | dotenv "^9.0.2" 1612 | dotenv-expand "^5.1.0" 1613 | js-yaml "^4.1.0" 1614 | json5 "^2.2.0" 1615 | lazy-val "^1.0.4" 1616 | 1617 | readdirp@~3.6.0: 1618 | version "3.6.0" 1619 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1620 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1621 | dependencies: 1622 | picomatch "^2.2.1" 1623 | 1624 | require-directory@^2.1.1: 1625 | version "2.1.1" 1626 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1627 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1628 | 1629 | require-from-string@^2.0.2: 1630 | version "2.0.2" 1631 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 1632 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 1633 | 1634 | resolve-alpn@^1.0.0: 1635 | version "1.2.1" 1636 | resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" 1637 | integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== 1638 | 1639 | responselike@^2.0.0: 1640 | version "2.0.1" 1641 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" 1642 | integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== 1643 | dependencies: 1644 | lowercase-keys "^2.0.0" 1645 | 1646 | retry@^0.12.0: 1647 | version "0.12.0" 1648 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" 1649 | integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== 1650 | 1651 | rimraf@^3.0.0: 1652 | version "3.0.2" 1653 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1654 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1655 | dependencies: 1656 | glob "^7.1.3" 1657 | 1658 | roarr@^2.15.3: 1659 | version "2.15.4" 1660 | resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" 1661 | integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== 1662 | dependencies: 1663 | boolean "^3.0.1" 1664 | detect-node "^2.0.4" 1665 | globalthis "^1.0.1" 1666 | json-stringify-safe "^5.0.1" 1667 | semver-compare "^1.0.0" 1668 | sprintf-js "^1.1.2" 1669 | 1670 | "safer-buffer@>= 2.1.2 < 3.0.0": 1671 | version "2.1.2" 1672 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1673 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1674 | 1675 | sanitize-filename@^1.6.3: 1676 | version "1.6.3" 1677 | resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" 1678 | integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== 1679 | dependencies: 1680 | truncate-utf8-bytes "^1.0.0" 1681 | 1682 | sax@^1.2.4: 1683 | version "1.2.4" 1684 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1685 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 1686 | 1687 | semver-compare@^1.0.0: 1688 | version "1.0.0" 1689 | resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" 1690 | integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= 1691 | 1692 | semver@^6.2.0: 1693 | version "6.3.0" 1694 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1695 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1696 | 1697 | semver@^7.3.2, semver@^7.3.5: 1698 | version "7.3.5" 1699 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 1700 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 1701 | dependencies: 1702 | lru-cache "^6.0.0" 1703 | 1704 | semver@^7.3.8, semver@^7.5.3: 1705 | version "7.5.4" 1706 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 1707 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 1708 | dependencies: 1709 | lru-cache "^6.0.0" 1710 | 1711 | serialize-error@^7.0.1: 1712 | version "7.0.1" 1713 | resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" 1714 | integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== 1715 | dependencies: 1716 | type-fest "^0.13.1" 1717 | 1718 | shebang-command@^2.0.0: 1719 | version "2.0.0" 1720 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1721 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1722 | dependencies: 1723 | shebang-regex "^3.0.0" 1724 | 1725 | shebang-regex@^3.0.0: 1726 | version "3.0.0" 1727 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1728 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1729 | 1730 | simple-update-notifier@2.0.0, simple-update-notifier@^2.0.0: 1731 | version "2.0.0" 1732 | resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" 1733 | integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== 1734 | dependencies: 1735 | semver "^7.5.3" 1736 | 1737 | slice-ansi@^3.0.0: 1738 | version "3.0.0" 1739 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" 1740 | integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== 1741 | dependencies: 1742 | ansi-styles "^4.0.0" 1743 | astral-regex "^2.0.0" 1744 | is-fullwidth-code-point "^3.0.0" 1745 | 1746 | smart-buffer@^4.0.2: 1747 | version "4.1.0" 1748 | resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" 1749 | integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== 1750 | 1751 | sortablejs@^1.15.0: 1752 | version "1.15.0" 1753 | resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.0.tgz#53230b8aa3502bb77a29e2005808ffdb4a5f7e2a" 1754 | integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w== 1755 | 1756 | source-map-support@^0.5.19: 1757 | version "0.5.19" 1758 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 1759 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 1760 | dependencies: 1761 | buffer-from "^1.0.0" 1762 | source-map "^0.6.0" 1763 | 1764 | source-map@^0.6.0: 1765 | version "0.6.1" 1766 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1767 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1768 | 1769 | sprintf-js@^1.1.2: 1770 | version "1.1.2" 1771 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" 1772 | integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== 1773 | 1774 | stat-mode@^1.0.0: 1775 | version "1.0.0" 1776 | resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" 1777 | integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== 1778 | 1779 | string-width@^4.1.0, string-width@^4.2.0: 1780 | version "4.2.2" 1781 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 1782 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 1783 | dependencies: 1784 | emoji-regex "^8.0.0" 1785 | is-fullwidth-code-point "^3.0.0" 1786 | strip-ansi "^6.0.0" 1787 | 1788 | string-width@^4.2.3: 1789 | version "4.2.3" 1790 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1791 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1792 | dependencies: 1793 | emoji-regex "^8.0.0" 1794 | is-fullwidth-code-point "^3.0.0" 1795 | strip-ansi "^6.0.1" 1796 | 1797 | strip-ansi@^6.0.0: 1798 | version "6.0.0" 1799 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1800 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1801 | dependencies: 1802 | ansi-regex "^5.0.0" 1803 | 1804 | strip-ansi@^6.0.1: 1805 | version "6.0.1" 1806 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1807 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1808 | dependencies: 1809 | ansi-regex "^5.0.1" 1810 | 1811 | sumchecker@^3.0.1: 1812 | version "3.0.1" 1813 | resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" 1814 | integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== 1815 | dependencies: 1816 | debug "^4.1.0" 1817 | 1818 | supports-color@^5.5.0: 1819 | version "5.5.0" 1820 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1821 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1822 | dependencies: 1823 | has-flag "^3.0.0" 1824 | 1825 | supports-color@^7.1.0: 1826 | version "7.2.0" 1827 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1828 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1829 | dependencies: 1830 | has-flag "^4.0.0" 1831 | 1832 | tar@^6.1.12: 1833 | version "6.2.0" 1834 | resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" 1835 | integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== 1836 | dependencies: 1837 | chownr "^2.0.0" 1838 | fs-minipass "^2.0.0" 1839 | minipass "^5.0.0" 1840 | minizlib "^2.1.1" 1841 | mkdirp "^1.0.3" 1842 | yallist "^4.0.0" 1843 | 1844 | temp-file@^3.4.0: 1845 | version "3.4.0" 1846 | resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" 1847 | integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== 1848 | dependencies: 1849 | async-exit-hook "^2.0.1" 1850 | fs-extra "^10.0.0" 1851 | 1852 | tmp-promise@^3.0.2: 1853 | version "3.0.2" 1854 | resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" 1855 | integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== 1856 | dependencies: 1857 | tmp "^0.2.0" 1858 | 1859 | tmp@^0.2.0: 1860 | version "0.2.1" 1861 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" 1862 | integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== 1863 | dependencies: 1864 | rimraf "^3.0.0" 1865 | 1866 | to-regex-range@^5.0.1: 1867 | version "5.0.1" 1868 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1869 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1870 | dependencies: 1871 | is-number "^7.0.0" 1872 | 1873 | touch@^3.1.0: 1874 | version "3.1.0" 1875 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 1876 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 1877 | dependencies: 1878 | nopt "~1.0.10" 1879 | 1880 | truncate-utf8-bytes@^1.0.0: 1881 | version "1.0.2" 1882 | resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" 1883 | integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= 1884 | dependencies: 1885 | utf8-byte-length "^1.0.1" 1886 | 1887 | type-fest@^0.13.1: 1888 | version "0.13.1" 1889 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" 1890 | integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== 1891 | 1892 | type-fest@^2.17.0: 1893 | version "2.19.0" 1894 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" 1895 | integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== 1896 | 1897 | typescript@^4.0.2: 1898 | version "4.9.5" 1899 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" 1900 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== 1901 | 1902 | undefsafe@^2.0.5: 1903 | version "2.0.5" 1904 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" 1905 | integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 1906 | 1907 | undici-types@~5.26.4: 1908 | version "5.26.5" 1909 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 1910 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 1911 | 1912 | universalify@^0.1.0: 1913 | version "0.1.2" 1914 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 1915 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 1916 | 1917 | universalify@^2.0.0: 1918 | version "2.0.0" 1919 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 1920 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 1921 | 1922 | uri-js@^4.2.2: 1923 | version "4.4.1" 1924 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1925 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1926 | dependencies: 1927 | punycode "^2.1.0" 1928 | 1929 | utf8-byte-length@^1.0.1: 1930 | version "1.0.4" 1931 | resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" 1932 | integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= 1933 | 1934 | verror@^1.10.0: 1935 | version "1.10.0" 1936 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1937 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 1938 | dependencies: 1939 | assert-plus "^1.0.0" 1940 | core-util-is "1.0.2" 1941 | extsprintf "^1.2.0" 1942 | 1943 | which@^2.0.1: 1944 | version "2.0.2" 1945 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1946 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1947 | dependencies: 1948 | isexe "^2.0.0" 1949 | 1950 | wrap-ansi@^7.0.0: 1951 | version "7.0.0" 1952 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1953 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1954 | dependencies: 1955 | ansi-styles "^4.0.0" 1956 | string-width "^4.1.0" 1957 | strip-ansi "^6.0.0" 1958 | 1959 | wrappy@1: 1960 | version "1.0.2" 1961 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1962 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1963 | 1964 | xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: 1965 | version "15.1.1" 1966 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" 1967 | integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== 1968 | 1969 | y18n@^5.0.5: 1970 | version "5.0.8" 1971 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 1972 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1973 | 1974 | yallist@^4.0.0: 1975 | version "4.0.0" 1976 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1977 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1978 | 1979 | yargs-parser@^21.1.1: 1980 | version "21.1.1" 1981 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" 1982 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== 1983 | 1984 | yargs@^17.6.2: 1985 | version "17.7.2" 1986 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" 1987 | integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== 1988 | dependencies: 1989 | cliui "^8.0.1" 1990 | escalade "^3.1.1" 1991 | get-caller-file "^2.0.5" 1992 | require-directory "^2.1.1" 1993 | string-width "^4.2.3" 1994 | y18n "^5.0.5" 1995 | yargs-parser "^21.1.1" 1996 | 1997 | yarn-upgrade-all@^0.7.2: 1998 | version "0.7.2" 1999 | resolved "https://registry.yarnpkg.com/yarn-upgrade-all/-/yarn-upgrade-all-0.7.2.tgz#5d2afa9230661c55f22d3f848f22258db732ae20" 2000 | integrity sha512-iVxmoBuNdpxeahAIehJ039Pp6S8zQ/qTENQRMV5hp7x/2tLGUzytCODIKZFjfUwcRRKT3boGgHheUEWC7+VlQw== 2001 | 2002 | yauzl@^2.10.0: 2003 | version "2.10.0" 2004 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" 2005 | integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= 2006 | dependencies: 2007 | buffer-crc32 "~0.2.3" 2008 | fd-slicer "~1.1.0" 2009 | --------------------------------------------------------------------------------