From 152b2fc8385dd0c724726df58460b50b6dd9d79b Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Wed, 12 May 2021 22:21:50 +0200 Subject: [PATCH 01/38] initial config --- .gitignore | 1 + main.js | 33 +++++++++++++++++++++++++++++++++ preload.js | 10 ++++++++++ server/app.js | 9 ++++++--- 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 main.js create mode 100644 preload.js diff --git a/.gitignore b/.gitignore index 1bddd3553..81bc9d56d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ server/db.json yarn.lock package.json package-lock.json +db.json diff --git a/main.js b/main.js new file mode 100644 index 000000000..85137c0c9 --- /dev/null +++ b/main.js @@ -0,0 +1,33 @@ +const { app, BrowserWindow } = require('electron'); +const path = require('path'); +const nodeapp = require('./server/app.js'); + +function createWindow() { + const win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), + nodeIntegration: true, + }, + }); + + win.loadURL('http://localhost:4001/editor'); + win.webContents.openDevTools(); +} + +app.whenReady().then(() => { + createWindow(); + + app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } + }); +}); + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } +}); diff --git a/preload.js b/preload.js new file mode 100644 index 000000000..60e0b9be3 --- /dev/null +++ b/preload.js @@ -0,0 +1,10 @@ +window.addEventListener('DOMContentLoaded', () => { + const replaceText = (selector, text) => { + const element = document.getElementById(selector); + if (element) element.innerText = text; + }; + + for (const type of ['chrome', 'node', 'electron']) { + replaceText(`${type}-version`, process.versions[type]); + } +}); diff --git a/server/app.js b/server/app.js index 3210ded28..05f813db5 100644 --- a/server/app.js +++ b/server/app.js @@ -13,6 +13,7 @@ const express = require('express'); const http = require('http'); const cors = require('cors'); const { dbModel } = require('./data/dataModel.js'); +const path = require('path'); db.defaults(dbModel).write(); @@ -48,9 +49,11 @@ app.use(express.json()); app.use('/events', eventsRouter); app.use('/event', eventRouter); -// implement general router -app.get('/', (req, res) => { - res.send('ontime API'); +// serve react +app.use(express.static(path.join(__dirname, '../client/build'))); + +app.get('*', (req, res) => { + res.sendFile(path.resolve(__dirname, '../client', 'build', 'index.html')); }); // Implement route for errors From f2f24d8517f2c5130f79906aee5fc14a9448a740 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Wed, 12 May 2021 23:27:31 +0200 Subject: [PATCH 02/38] config distribute --- .gitignore | 4 +- server/app.js | 4 +- main.js => server/main.js | 4 +- server/package.json | 43 +- preload.js => server/preload.js | 0 server/yarn.lock | 2946 ++++++++++++++++++++++++++++++- 6 files changed, 2978 insertions(+), 23 deletions(-) rename main.js => server/main.js (86%) rename preload.js => server/preload.js (100%) diff --git a/.gitignore b/.gitignore index 81bc9d56d..51e40fb1a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ node_modules/ # production build/ +dist/ # misc .DS_Store @@ -27,9 +28,8 @@ TODO.md # working stuff _SS/ .vscode/launch.json -server/db.json +db.json .eslintrc.json yarn.lock package.json package-lock.json -db.json diff --git a/server/app.js b/server/app.js index 05f813db5..33c2af76a 100644 --- a/server/app.js +++ b/server/app.js @@ -59,7 +59,7 @@ app.get('*', (req, res) => { // Implement route for errors app.use((err, req, res, next) => { console.error(err.stack); - res.status(500).send('Something broke!'); + res.status(500).send(err.stack); }); // create HTTP server @@ -73,7 +73,7 @@ global.timer = new EventTimer(server, config); global.timer.setupWithEventList(eventlist); // Start server -server.listen(port, () => +server.listen(port, '0.0.0.0', () => console.log(`HTTP Server is listening on port ${port}`) ); diff --git a/main.js b/server/main.js similarity index 86% rename from main.js rename to server/main.js index 85137c0c9..490836824 100644 --- a/main.js +++ b/server/main.js @@ -1,13 +1,13 @@ const { app, BrowserWindow } = require('electron'); const path = require('path'); -const nodeapp = require('./server/app.js'); +const nodeapp = require('./app.js'); function createWindow() { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { - preload: path.join(__dirname, 'preload.js'), + preload: path.join(__dirname, './preload.js'), nodeIntegration: true, }, }); diff --git a/server/package.json b/server/package.json index 45025a56a..070574918 100644 --- a/server/package.json +++ b/server/package.json @@ -1,7 +1,10 @@ { - "name": "passport-example", - "version": "0.0.1", - "description": "Example with Passport (http://www.passportjs.org/)", + "name": "my-electron-app", + "version": "0.1.0", + "author": "your name", + "description": "My Electron app", + "main": "main.js", + "dependencies": { "body-parser": "~1.19.0", "express": "~4.17.1", @@ -13,7 +16,37 @@ "passport-local": "~1.0.0", "socket.io": "^4.0.0" }, + "devDependencies": { + "electron": "^12.0.7", + "electron-builder": "^22.11.3", + "eslint": "^7.26.0", + "eslint-config-airbnb": "^18.2.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.23.2", + "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-simple-import-sort": "^7.0.0" + }, "scripts": { - "start": "node app.js" - } + "nodestart": "node app.js", + "start": "electron .", + "pack": "electron-builder --dir", + "dist": "electron-builder" + }, + "build": { + "appId": "your.id", + "mac": { + "category": "your.app.category.type" + }, + "files": [ + "**/*" + ], + "extraFiles": [ + { + "from": "../client/build", + "to": "resources/client/build", + "filter": ["**/*"] + } + ] }, + "postinstall": "electron-builder install-app-deps" } diff --git a/preload.js b/server/preload.js similarity index 100% rename from preload.js rename to server/preload.js diff --git a/server/yarn.lock b/server/yarn.lock index 4b7da8610..1b4a25846 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -2,6 +2,126 @@ # yarn lockfile v1 +"7zip-bin@~5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz#9274ec7460652f9c632c59addf24efb1684ef876" + integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + +"@babel/highlight@^7.10.4": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime-corejs3@^7.10.2": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz#6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66" + integrity sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== + dependencies: + regenerator-runtime "^0.13.4" + +"@develar/schema-utils@~2.6.5": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" + integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +"@electron/get@^1.0.1": + version "1.12.4" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab" + integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" + +"@electron/universal@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz#b812340e4ef21da2b3ee77b2b4d35c9b86defe37" + integrity sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag== + dependencies: + "@malept/cross-spawn-promise" "^1.1.0" + asar "^3.0.3" + debug "^4.3.1" + dir-compare "^2.4.0" + fs-extra "^9.0.1" + +"@eslint/eslintrc@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" + integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@malept/cross-spawn-promise@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" + integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== + dependencies: + cross-spawn "^7.0.1" + +"@malept/flatpak-bundler@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" + integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.0" + lodash "^4.17.15" + tmp-promise "^3.0.2" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + "@types/component-emitter@^1.2.10": version "1.2.10" resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" @@ -17,11 +137,76 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== +"@types/debug@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + +"@types/fs-extra@^9.0.11", "@types/fs-extra@^9.0.7": + version "9.0.11" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" + integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/minimatch@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + +"@types/node@*": + version "15.0.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.3.tgz#ee09fcaac513576474c327da5818d421b98db88a" + integrity sha512-/WbxFeBU+0F79z9RdEOXH4CsDga+ibi5M8uEYr91u3CkT/pdWcV8MCook+4wDPnZBexRdwWS+PiVZ2xJviAzcQ== + "@types/node@>=10.0.0": version "14.14.37" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== +"@types/node@^14.6.2": + version "14.14.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.45.tgz#ec2dfb5566ff814d061aef7e141575aedba245cf" + integrity sha512-DssMqTV9UnnoxDWu959sDLZzfvqCF0qDNRjaWeYSui9xkFe61kKo4l1TWNTQONpuXEm+gLMRvdlzvNHBamzmEw== + +"@types/plist@^3.0.1": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01" + integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw== + dependencies: + "@types/node" "*" + xmlbuilder ">=11.0.1" + +"@types/verror@^1.10.3": + version "1.10.4" + resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz#805c0612b3a0c124cf99f517364142946b74ba3b" + integrity sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg== + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^16.0.1": + version "16.0.1" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.1.tgz#5fc5d41f69762e00fbecbc8d4bf9dea47d8726f4" + integrity sha512-x4HABGLyzr5hKUzBC9dvjciOTm11WVH1NWonNjGgxapnTHu5SWUqyqn0zQ6Re0yQU0lsQ6ztLCoMAKDGZflyxA== + dependencies: + "@types/yargs-parser" "*" + accepts@~1.3.4, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -30,16 +215,238 @@ accepts@~1.3.4, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.3.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz#25ee7348e32cdc4a1dbb38256bf6bdc451dd577c" + integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +app-builder-bin@3.5.13: + version "3.5.13" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz#6dd7f4de34a4e408806f99b8c7d6ef1601305b7e" + integrity sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg== + +app-builder-lib@22.11.3: + version "22.11.3" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.3.tgz#bfef12c89603e0fa8af33e322ca82757d346825b" + integrity sha512-u40ESAF/wPVlRPkS0hRjtClzUcS0PQ61bb5ZN8+d039cmwtS7myRVYucck58c9GOyXfvyO1hHaJii5I+QrBtdA== + dependencies: + "7zip-bin" "~5.1.1" + "@develar/schema-utils" "~2.6.5" + "@electron/universal" "1.0.5" + "@malept/flatpak-bundler" "^0.4.0" + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.9" + builder-util "22.11.3" + builder-util-runtime "8.7.5" + chromium-pickle-js "^0.2.0" + debug "^4.3.2" + ejs "^3.1.6" + electron-publish "22.11.2" + fs-extra "^10.0.0" + hosted-git-info "^4.0.2" + is-ci "^3.0.0" + isbinaryfile "^4.0.8" + js-yaml "^4.1.0" + lazy-val "^1.0.4" + minimatch "^3.0.4" + read-config-file "6.2.0" + sanitize-filename "^1.6.3" + semver "^7.3.5" + temp-file "^3.4.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= +array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + +array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +array.prototype.flatmap@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + function-bind "^1.1.1" + +asar@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz#1fef03c2d6d2de0cbad138788e4f7ae03b129c7b" + integrity sha512-k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async@0.9.x: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +axe-core@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.0.tgz#6594db4ee62f78be79e32a7295d21b099b60668d" + integrity sha512-1uIESzroqpaTzt9uX48HO+6gfnKu3RwvWdCcWSrX4csMInJfCo1yvKPNXCwXFRpJqRW25tiASb6No0YH57PXqg== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + base64-arraybuffer@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + base64id@2.0.0, base64id@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" @@ -50,6 +457,18 @@ binpack@~0: resolved "https://registry.yarnpkg.com/binpack/-/binpack-0.1.0.tgz#bd3d0974c3f2a0446e17df4f60b55a72a205a97e" integrity sha1-vT0JdMPyoERuF99PYLVacqIFqX4= +bluebird-lst@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" + integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== + dependencies: + bluebird "^3.5.5" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + body-parser@1.19.0, body-parser@~1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -66,16 +485,300 @@ body-parser@1.19.0, body-parser@~1.19.0: raw-body "2.4.0" type-is "~1.6.17" +boolean@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.4.tgz#aa1df8749af41d7211b66b4eee584722ff428c27" + integrity sha512-5pyOr+w2LNN72F2mAq6J0ckHUfJYSgRKma7e/wlcMMhgOLV9OI0ERhERYXxUqo+dPyVxcbXKy9n+wg13+LpNnA== + +boxen@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.0" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-equal@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer@^5.1.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builder-util-runtime@8.7.4: + version "8.7.4" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.4.tgz#83f9f00bdf496cb3636d551cb5f5db56cdf25c96" + integrity sha512-2vDOwH0cyyCLQwW0Tsrg3RKKQpEcrV70KFun39E8RPzNFBOv9ds9juK8WUnO6ml+xJWKkKTjWLFdF3y+8GbPOw== + dependencies: + debug "^4.3.2" + sax "^1.2.4" + +builder-util-runtime@8.7.5: + version "8.7.5" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz#fbe59e274818885e0d2e358d5b7017c34ae6b0f5" + integrity sha512-fgUFHKtMNjdvH6PDRFntdIGUPgwZ69sXsAqEulCtoiqgWes5agrMq/Ud274zjJRTbckYh2PHh8/1CpFc6dpsbQ== + dependencies: + debug "^4.3.2" + sax "^1.2.4" + +builder-util@22.11.2: + version "22.11.2" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.2.tgz#e06549ff483dfb216c5edcd9e6616ffaa87ec902" + integrity sha512-n5QkoRcNKy7KrBO8trpk7WRgdpBnOu68KVm+roSbDtZaW1qAmBplyThxnczcvjByVwD+UrsKd62eNIARiz2jyw== + dependencies: + "7zip-bin" "~5.1.1" + "@types/debug" "^4.1.5" + "@types/fs-extra" "^9.0.7" + app-builder-bin "3.5.13" + bluebird-lst "^1.0.9" + builder-util-runtime "8.7.4" + chalk "^4.1.0" + debug "^4.3.2" + fs-extra "^9.1.0" + is-ci "^3.0.0" + js-yaml "^4.0.0" + source-map-support "^0.5.19" + stat-mode "^1.0.0" + temp-file "^3.3.7" + +builder-util@22.11.3: + version "22.11.3" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.3.tgz#933f0242f0466556b604e0ea2a2ad758d649586e" + integrity sha512-az4s7iyf1ZPXaSVgCY+YoUcBVNspHz/f2lZSXTeXpPUjiKcbV+jzewWdw8yPWFUZ9UDArI5AVhW2bQfyBRjgVQ== + dependencies: + "7zip-bin" "~5.1.1" + "@types/debug" "^4.1.5" + "@types/fs-extra" "^9.0.11" + app-builder-bin "3.5.13" + bluebird-lst "^1.0.9" + builder-util-runtime "8.7.5" + chalk "^4.1.1" + debug "^4.3.2" + fs-extra "^10.0.0" + is-ci "^3.0.0" + js-yaml "^4.1.0" + source-map-support "^0.5.19" + stat-mode "^1.0.0" + temp-file "^3.4.0" + bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" + integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-truncate@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086" + integrity sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA== + dependencies: + slice-ansi "^1.0.0" + string-width "^2.0.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +confusing-browser-globals@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" + integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -103,6 +806,21 @@ cookie@~0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +core-js-pure@^3.0.0: + version "3.12.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.12.1.tgz#934da8b9b7221e2a2443dc71dfa5bd77a7ea00b8" + integrity sha512-1cch+qads4JnDSWsvc7d6nzlKAippwjUlf6vykkTLW53VSV+NkE6muGBToAjEA8pG90cSfcud3JgVmW2ds5TaQ== + +core-js@^3.6.5: + version "3.12.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.12.1.tgz#6b5af4ff55616c08a44d386f1f510917ff204112" + integrity sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + cors@~2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -111,20 +829,82 @@ cors@~2.8.5: object-assign "^4" vary "^1" -debug@2.6.9: +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +damerau-levenshtein@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" + integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== + +debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@~4.3.1: +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" +debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -140,16 +920,173 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detect-node@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" + integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== + +dir-compare@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz#785c41dc5f645b34343a4eafc50b79bac7f11631" + integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA== + dependencies: + buffer-equal "1.0.0" + colors "1.0.3" + commander "2.9.0" + minimatch "3.0.4" + +dmg-builder@22.11.3: + version "22.11.3" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.3.tgz#f843579653586802295890d917dc8838b9affbaa" + integrity sha512-NGlorMQF2YGboVtHM8zP5EHxYhrxFGjtsnX6YCr9BV1bsjSPVyBJZpuxKnOOLj86zlYWYeiNGyj4NeUOLGgUCA== + dependencies: + app-builder-lib "22.11.3" + builder-util "22.11.3" + builder-util-runtime "8.7.5" + fs-extra "^10.0.0" + iconv-lite "^0.6.2" + js-yaml "^4.1.0" + optionalDependencies: + dmg-license "^1.0.8" + +dmg-license@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.8.tgz#d52e234815f1a07a59706e5f2a2fea71991cf784" + integrity sha512-47GOb6b4yVzpovXC34heXElpH++ICg9GuWBeOTaokUNLAoAdWpE4VehudYEEtu96j2jXsgQWYf78nW7r+0Y3eg== + dependencies: + "@types/plist" "^3.0.1" + "@types/verror" "^1.10.3" + ajv "^6.10.0" + cli-truncate "^1.1.0" + crc "^3.8.0" + iconv-corefoundation "^1.1.5" + plist "^3.0.1" + smart-buffer "^4.0.2" + verror "^1.10.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" + integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -encodeurl@~1.0.2: +ejs@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" + integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== + dependencies: + jake "^10.6.1" + +electron-builder@^22.11.3: + version "22.11.3" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.3.tgz#35a193f3bdf78affd4d8b58e4d756b6dc55c922d" + integrity sha512-STv4uU3q00FzVgW9kMpRXSrhJxogzAZgIhFZl0mBZQC1VOAajNiEBsZPaU32jP23oxlgLQExj/ux6/frYk5vGA== + dependencies: + "@types/yargs" "^16.0.1" + app-builder-lib "22.11.3" + builder-util "22.11.3" + builder-util-runtime "8.7.5" + chalk "^4.1.1" + dmg-builder "22.11.3" + fs-extra "^10.0.0" + is-ci "^3.0.0" + lazy-val "^1.0.4" + read-config-file "6.2.0" + update-notifier "^5.1.0" + yargs "^17.0.1" + +electron-publish@22.11.2: + version "22.11.2" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.2.tgz#670cab9d15dea0b1eb94f69676e76f5111e4ddc2" + integrity sha512-RSrDyYL407QRryIN0QhQGJc5PjHK4gdCwTHYTH5Zl43753ZLVUMRmzW768H0Tb8hVM2VOymy8pNnQAHB5egoiQ== + dependencies: + "@types/fs-extra" "^9.0.7" + builder-util "22.11.2" + builder-util-runtime "8.7.4" + chalk "^4.1.0" + fs-extra "^9.1.0" + lazy-val "^1.0.4" + mime "^2.5.0" + +electron@^12.0.7: + version "12.0.7" + resolved "https://registry.yarnpkg.com/electron/-/electron-12.0.7.tgz#e0fca2c8be34cb7da48c4d15cfb1d2ad666d2718" + integrity sha512-722TZNKDuLpEmj96AzTYFKHaJEH98xgOBH0aldStaPXI1xDFfb9SJQQuirvwFlkwG5OqQdz6Ne3OwwJ7Dbs5nQ== + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^14.6.2" + extract-zip "^1.0.3" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encodeurl@^1.0.2, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + engine.io-parser@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" @@ -170,11 +1107,295 @@ engine.io@~5.0.0: engine.io-parser "~4.0.0" ws "~7.4.2" +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-airbnb-base@^14.2.1: + version "14.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" + integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== + dependencies: + confusing-browser-globals "^1.0.10" + object.assign "^4.1.2" + object.entries "^1.1.2" + +eslint-config-airbnb@^18.2.1: + version "18.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9" + integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== + dependencies: + eslint-config-airbnb-base "^14.2.1" + object.assign "^4.1.2" + object.entries "^1.1.2" + +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.22.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-jsx-a11y@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@^7.23.2: + version "7.23.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494" + integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw== + dependencies: + array-includes "^3.1.3" + array.prototype.flatmap "^1.2.4" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.0.4" + object.entries "^1.1.3" + object.fromentries "^2.0.4" + object.values "^1.1.3" + prop-types "^15.7.2" + resolve "^2.0.0-next.3" + string.prototype.matchall "^4.0.4" + +eslint-plugin-simple-import-sort@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" + integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@^7.26.0: + version "7.26.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6" + integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.1" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.21" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" @@ -230,6 +1451,57 @@ express@~4.17.1: utils-merge "1.0.1" vary "~1.1.2" +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" + integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== + dependencies: + minimatch "^3.0.4" + finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -243,6 +1515,26 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -253,11 +1545,223 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -graceful-fs@^4.1.3: +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +glob-parent@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3, glob@^7.1.6: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-agent@^2.0.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc" + integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globals@^13.6.0: + version "13.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" + integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + dependencies: + define-properties "^1.1.3" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" + integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + dependencies: + lru-cache "^6.0.0" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -280,6 +1784,14 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +iconv-corefoundation@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.5.tgz#90596d444a579aeb109f5ca113f6bb665a41be2b" + integrity sha512-hI4m7udfV04OcjleOmDaR4gwXnH4xumxN+ZmywHDiKf2CmAzsT9SVYe7Y4pdnQbyZfXwAQyrElykbE5PrPRfmQ== + dependencies: + cli-truncate "^1.1.0" + node-addon-api "^1.6.3" + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -287,31 +1799,408 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -inherits@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + +is-boolean-object@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + dependencies: + call-bind "^1.0.2" + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-ci@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" + integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== + dependencies: + ci-info "^3.1.1" + +is-core-module@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + +is-number-object@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-promise@^2.1.0: version "2.2.2" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -lodash@4: +is-regex@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.2" + +is-string@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isbinaryfile@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" + integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +jake@^10.6.1: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" + integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== + dependencies: + async "0.9.x" + chalk "^2.4.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lazy-val@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" + integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash@4, lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + lowdb@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" @@ -323,6 +2212,37 @@ lowdb@^1.0.0: pify "^3.0.0" steno "^0.4.1" +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -355,6 +2275,35 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.5.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -375,11 +2324,21 @@ nanoid@^3.1.22: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +node-addon-api@^1.6.3: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + node-osc@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/node-osc/-/node-osc-6.0.1.tgz#6f2c39996c64460435b678dc91c128d3a9711031" @@ -387,11 +2346,84 @@ node-osc@^6.0.1: dependencies: osc-min "^1.1.1" -object-assign@^4: +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +object-assign@^4, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= +object-inspect@^1.9.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.2, object.entries@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +object.fromentries@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +object.values@^1.1.1, object.values@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" + integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -404,6 +2436,25 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + osc-min@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/osc-min/-/osc-min-1.1.2.tgz#3dcaff10f804c39b7080cf4c10fd7a4103cd9037" @@ -411,6 +2462,54 @@ osc-min@^1.1.1: dependencies: binpack "~0" +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -436,21 +2535,108 @@ passport@~0.4.1: passport-strategy "1.x.x" pause "0.0.1" +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + pause@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +plist@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz#74bbf011124b90421c22d15779cee60060ba95bc" + integrity sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ== + dependencies: + base64-js "^1.5.1" + xmlbuilder "^9.0.7" + xmldom "^0.5.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0, progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + proxy-addr@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" @@ -459,6 +2645,26 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.1" +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + qs@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" @@ -484,7 +2690,152 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -safe-buffer@5.1.2: +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +read-config-file@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz#71536072330bcd62ba814f91458b12add9fc7ade" + integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg== + dependencies: + dotenv "^9.0.2" + dotenv-expand "^5.1.0" + js-yaml "^4.1.0" + json5 "^2.2.0" + lazy-val "^1.0.4" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -494,11 +2845,52 @@ safe-buffer@5.2.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -518,6 +2910,13 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + serve-static@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" @@ -533,6 +2932,53 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +slice-ansi@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== + dependencies: + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + socket.io-adapter@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.2.0.tgz#43af9157c4609e74b8addc6867873ac7eb48fda2" @@ -562,6 +3008,60 @@ socket.io@^4.0.0: socket.io-adapter "~2.2.0" socket.io-parser "~4.0.3" +source-map-support@^0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stat-mode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" + integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== + "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" @@ -574,11 +3074,218 @@ steno@^0.4.1: dependencies: graceful-fs "^4.1.3" +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" + integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has-symbols "^1.0.1" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +table@^6.0.4: + version "6.7.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2" + integrity sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + +temp-file@^3.3.7, temp-file@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" + integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== + dependencies: + async-exit-hook "^2.0.1" + fs-extra "^10.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +tmp-promise@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" + integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + toidentifier@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + dependencies: + utf8-byte-length "^1.0.1" + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -587,6 +3294,18 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + uid-safe@~2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" @@ -594,22 +3313,225 @@ uid-safe@~2.1.5: dependencies: random-bytes "~1.0.0" +unbox-primitive@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +verror@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + ws@~7.4.2: version "7.4.4" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xmlbuilder@>=11.0.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + +xmlbuilder@^9.0.7: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmldom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" + integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.2: + version "20.2.7" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" + integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + +yargs@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb" + integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" From afbe229fbe2cdd072c8ed5a780a7eb4f0806886a Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Sat, 15 May 2021 23:00:58 +0200 Subject: [PATCH 03/38] add wip logos --- server/assets/images/empty.svg | 21 +++++++++++++++++++++ server/assets/images/logos/LOGO-120.png | Bin 0 -> 6063 bytes server/assets/images/logos/LOGO-128.png | Bin 0 -> 6543 bytes server/assets/images/logos/LOGO-144.png | Bin 0 -> 7637 bytes server/assets/images/logos/LOGO-152.png | Bin 0 -> 8287 bytes server/assets/images/logos/LOGO-180.png | Bin 0 -> 10263 bytes server/assets/images/logos/LOGO-192.png | Bin 0 -> 11285 bytes server/assets/images/logos/LOGO-384.png | Bin 0 -> 30705 bytes server/assets/images/logos/LOGO-512.png | Bin 0 -> 48091 bytes server/assets/images/logos/LOGO-72.png | Bin 0 -> 3312 bytes server/assets/images/logos/LOGO-96.png | Bin 0 -> 4625 bytes server/assets/images/logosbwa/LOGO-120.png | Bin 0 -> 3457 bytes server/assets/images/logosbwa/LOGO-128.png | Bin 0 -> 3773 bytes server/assets/images/logosbwa/LOGO-144.png | Bin 0 -> 4445 bytes server/assets/images/logosbwa/LOGO-152.png | Bin 0 -> 4787 bytes server/assets/images/logosbwa/LOGO-180.png | Bin 0 -> 5750 bytes server/assets/images/logosbwa/LOGO-192.png | Bin 0 -> 6359 bytes server/assets/images/logosbwa/LOGO-384.png | Bin 0 -> 17686 bytes server/assets/images/logosbwa/LOGO-512.png | Bin 0 -> 28402 bytes server/assets/images/logosbwa/LOGO-72.png | Bin 0 -> 1930 bytes server/assets/images/logosbwa/LOGO-96.png | Bin 0 -> 2663 bytes 21 files changed, 21 insertions(+) create mode 100644 server/assets/images/empty.svg create mode 100644 server/assets/images/logos/LOGO-120.png create mode 100644 server/assets/images/logos/LOGO-128.png create mode 100644 server/assets/images/logos/LOGO-144.png create mode 100644 server/assets/images/logos/LOGO-152.png create mode 100644 server/assets/images/logos/LOGO-180.png create mode 100644 server/assets/images/logos/LOGO-192.png create mode 100644 server/assets/images/logos/LOGO-384.png create mode 100644 server/assets/images/logos/LOGO-512.png create mode 100644 server/assets/images/logos/LOGO-72.png create mode 100644 server/assets/images/logos/LOGO-96.png create mode 100644 server/assets/images/logosbwa/LOGO-120.png create mode 100644 server/assets/images/logosbwa/LOGO-128.png create mode 100644 server/assets/images/logosbwa/LOGO-144.png create mode 100644 server/assets/images/logosbwa/LOGO-152.png create mode 100644 server/assets/images/logosbwa/LOGO-180.png create mode 100644 server/assets/images/logosbwa/LOGO-192.png create mode 100644 server/assets/images/logosbwa/LOGO-384.png create mode 100644 server/assets/images/logosbwa/LOGO-512.png create mode 100644 server/assets/images/logosbwa/LOGO-72.png create mode 100644 server/assets/images/logosbwa/LOGO-96.png diff --git a/server/assets/images/empty.svg b/server/assets/images/empty.svg new file mode 100644 index 000000000..4f6f2014e --- /dev/null +++ b/server/assets/images/empty.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/server/assets/images/logos/LOGO-120.png b/server/assets/images/logos/LOGO-120.png new file mode 100644 index 0000000000000000000000000000000000000000..947cc667c22fe98cbdda1c7735428fe7b8938074 GIT binary patch literal 6063 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 Bh>HLK literal 0 HcmV?d00001 diff --git a/server/assets/images/logos/LOGO-144.png b/server/assets/images/logos/LOGO-144.png new file mode 100644 index 0000000000000000000000000000000000000000..54067cc807beb087248b00db3515a41b78dc190b GIT binary patch literal 7637 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 literal 0 HcmV?d00001 diff --git a/server/assets/images/logos/LOGO-180.png b/server/assets/images/logos/LOGO-180.png new file mode 100644 index 0000000000000000000000000000000000000000..9eaa7da2d74db1a2dd5577384bcb4993f2b35ef4 GIT binary patch literal 10263 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 z⪙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 LNkvXXu0mjfKS7iO literal 0 HcmV?d00001 diff --git a/server/assets/images/logos/LOGO-384.png b/server/assets/images/logos/LOGO-384.png new file mode 100644 index 0000000000000000000000000000000000000000..841e4ff2f7af24e428de464eeec83d3d7320da4c GIT binary patch literal 30705 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 literal 0 HcmV?d00001 diff --git a/server/assets/images/logos/LOGO-512.png b/server/assets/images/logos/LOGO-512.png new file mode 100644 index 0000000000000000000000000000000000000000..e7aaee290f82643ca966ef388fbc93794788a861 GIT binary patch literal 48091 zcmX6^c|4Tg_kU)LeJ4wdeXHyh#=a&(M9G$=ktJl1>}KrQNtTeMM18XFAv3ln$r6RE zGuihE*_q$t`}<>FGxOYg&$;)UbI*C-^PC%RcKaqH9S zH}K~X_(h8{u=WE0diL`V1jx_h<@DI#Y+e8}xYEtP>oG1aH6=kTW zeK!!Yeo9|0e&1jGdAMq7v}h6ki=g{I?ix1U$!zr^7U=upxt)1gr`318oJ@=lhJ7Z@ zZ%$o&VoY7Tr8hE1)9lrmvhoS>Cb@Z99^q0crZzHOppRknYI@)ZQ+&oTZh*N%n{=1@ zZV&H&cf}%ZnV*LEE){w#HI2>$t^SlGlk@A^-&?#wFAki3#oNyYuYab1GvSAkrist$ z>c~dNZn-X|=%Yuc&s>w_U*Dv0O6}FDd?0K2sH}fSuT@zHJK44{l|6#4`|a7FSxC0D z#Su|b3Q&+l=g>EQ*5#1kh=S-Kw)v1?q43JckXNWTUiilojb4V`glq1FG+h+ZrU*z} zR}BjSf3Bxr{x@YuD}-5KxwpeL_+j;GH`s_kK?$gQk#5gfx}!W|WH>A02YZwrOeImO>EqXO~lKJzK*duXTcr7DZe~O^p+igRNOx%`k%+=xcw%_gB~U z5AWhr`T+?bg)vcd*H)UmH&c(k22Y7kv!mQ--G3rMk&?`C-b%@Jl=3Jl1A^C&0jD$E z71NG2Ej@kT)q^;=Xg!`;b565`7&%L{vMKM3$IQV&3Hewy69N#543!o%d`$RJoO=6m8j>D&BimWaxywzT!Yt=S@R6ev#{ zkWdL}IUE!!E7;A1Apqj3Q{PD*wLCyy;GfFS1+9ksxOq@k9M;rHL?Jloo2Wd^zzI2$e9p(wrY|xYd}NrR#>Ymq0*Wl> zOdP!XpKLu22srPbMXfs7zVfW_1`63B4e$bCMYG3~SY84O0q;w8W<0nYKr5vQ@|Z6o zhK2m^DRT`~{*wv_HK_DvN=HMY#i0s3#RPLf@F1~5o&bXzQA+?u&z-lo%C@ILJ0p&d zqq1=?-b5fjq#2)qx)+c+0adrCW$w1=eXQ8zB6ATWFN(^*f?c73c#%}K?L?FmWj-JU zQTqmp+Eb|6$kC7>gQ0v|IKC9lbq1~~u_)2!R+s>sK8BgXPSE+eLu-f_9DKfplVGxe zA|O`43oJR;qw>&UVw%j#1X_f@kDn3rS)(W+m5>AHr;wAMngvA&r&N=1grJ~uLN>qA zx@*V5nxW4@rJ$@3v^m`TFa&F5>t;*ges9=0@e9+Tkcv0+efg%aR7egmW*_3kGfQR) ztUe!69wTYHzdRU(B3ws7QSs?nq!{XBWzf%m!bMR?VDNyQaESp~V|>d60n(ZaB}M%9 zd=@7w{?wfSBe3B_PC=WTd(#m`AFsu%*d3^X^m<~9 z1=cNpCDJqjcA~p}M`iM7s-Pa>DMk_OpT!6egbeo+NHa~5{MosjoE{NSv5M*JK~|?^i0HX84I9e2Gy4;KGDQ7LqUiuaSq0lVE6(LqHIw zyPf3h|FO71bdi88F-rhTkaIP3)m%rhp$fqDrl5%D(galxS%L^q1u}vEt*F*#KGRP& zdg1prCaXQhDnq4+?_^(lFSKb5zh;y$E$IAUA@LC_5VmX8r0&0Zfj?wjG=(pZe0%ck z&D0K}74&5L+!hoOqm&ZBS~NWxf59M9jdpD}doM%Fv@>+Jea$waGUljOC_P3G#^z*D zBFGxMtGZF<7so6R+a(Xlhn2J621dcDrXV%Qc)@-%0A-XgNi4oKSq3=a# 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 usmO8Pt|`&le-Q{rberJ>(P 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 Hu0mjfgxSWb literal 0 HcmV?d00001 diff --git a/server/assets/images/logosbwa/LOGO-120.png b/server/assets/images/logosbwa/LOGO-120.png new file mode 100644 index 0000000000000000000000000000000000000000..2dd12c3ed9c30ea0ff5ce970110e08eada862ffd GIT binary patch literal 3457 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 KwN}L@{Qm&m<*XL~ literal 0 HcmV?d00001 diff --git a/server/assets/images/logosbwa/LOGO-152.png b/server/assets/images/logosbwa/LOGO-152.png new file mode 100644 index 0000000000000000000000000000000000000000..8c1d7b586e965510047e6f2cf3830a721fece240 GIT binary patch literal 4787 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 aUQu$ZUH6>>_xY{H1bC_bTCGaO9Ql8e%1TB6 literal 0 HcmV?d00001 diff --git a/server/assets/images/logosbwa/LOGO-180.png b/server/assets/images/logosbwa/LOGO-180.png new file mode 100644 index 0000000000000000000000000000000000000000..3d5e6b65c275d0b4471848aff506add76d34d98f GIT binary patch literal 5750 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 literal 0 HcmV?d00001 diff --git a/server/assets/images/logosbwa/LOGO-384.png b/server/assets/images/logosbwa/LOGO-384.png new file mode 100644 index 0000000000000000000000000000000000000000..593e9ccc89411d6599c1fd5b151613f65528496e GIT binary patch literal 17686 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 literal 0 HcmV?d00001 diff --git a/server/assets/images/logosbwa/LOGO-72.png b/server/assets/images/logosbwa/LOGO-72.png new file mode 100644 index 0000000000000000000000000000000000000000..bee7161e6050cf5f69b1a1be85dd794876389800 GIT binary patch literal 1930 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 VkvBoScKHAR002ovPDHLkV1jM)02BZK literal 0 HcmV?d00001 From 8de9bd31554ecb0ec6eee1ddaabdbfd2cf4403dd Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Sat, 15 May 2021 23:02:25 +0200 Subject: [PATCH 04/38] electron window config - create dummy menus - close to tray --- server/{ => electron}/preload.js | 0 server/main.js | 149 +++++++++++++++++++++++++++++-- server/package.json | 19 ++-- server/yarn.lock | 120 ++++++++++++++++++++++++- 4 files changed, 270 insertions(+), 18 deletions(-) rename server/{ => electron}/preload.js (100%) diff --git a/server/preload.js b/server/electron/preload.js similarity index 100% rename from server/preload.js rename to server/electron/preload.js diff --git a/server/main.js b/server/main.js index 490836824..625813715 100644 --- a/server/main.js +++ b/server/main.js @@ -1,33 +1,166 @@ -const { app, BrowserWindow } = require('electron'); +const { + app, + BrowserWindow, + Menu, + globalShortcut, + Tray, + dialog, +} = require('electron'); const path = require('path'); +const { electron } = require('process'); const nodeapp = require('./app.js'); +require('@electron/remote/main').initialize(); + +// Load Icons +// TODO: Icons appear pixelated +const trayIcon = path.join(__dirname, './assets/images/logos/LOGO-512.png'); +const appIcon = path.join(__dirname, './assets/images/logos/LOGO-512.png'); + +// Ensure there isn't another instance of the app running already +var lock = app.requestSingleInstanceLock(); +if (!lock) { + dialog.showErrorBox( + 'Multiple instances', + 'Another instance is already running. Please close the other instance first.' + ); + app.quit(); + return; +} + +var win, tray; function createWindow() { - const win = new BrowserWindow({ + win = new BrowserWindow({ width: 800, height: 600, + backgroundColor: '#202020', + icon: appIcon, + // TODO: Make framerless + // frame: false, webPreferences: { - preload: path.join(__dirname, './preload.js'), + preload: path.join(__dirname, './electron/preload.js'), + // TODO: what are recommended alternatives to node integration? nodeIntegration: true, + enableRemoteModule: true, }, }); + // Load page served by node win.loadURL('http://localhost:4001/editor'); - win.webContents.openDevTools(); + // TODO: Make development environment and run live react instead + // win.loadURL('http://localhost:3000/editor'); + + // Show dev tools + win.webContents.openDevTools({ mode: 'detach' }); } app.whenReady().then(() => { createWindow(); + // TODO: Move to separate file + // TODO: Should move to react? + // Define App Menu + const appMenuTemplate = [ + { + label: 'Help', + submenu: [ + { + label: 'Getting Started', + click: () => { + console.log('Gonna do something here: Help > Getting Started'); + }, + }, + { + label: 'OSC Controls', + click: () => { + console.log('Gonna do something here: Help > OSC Controls'); + }, + }, + { + label: 'URL Definitions', + click: () => { + console.log('Gonna do something here: Help > URL Definitions'); + }, + }, + ], + }, + ]; + + const appMenu = Menu.buildFromTemplate(appMenuTemplate); + Menu.setApplicationMenu(appMenu); + + /* ====================================== + * CONTEXT MENU CREATION ON REACT SIDE + // Create context menu + // const contextMenu = new Menu(); + // contextMenu.append( + // new MenuItem({ + // label: 'Build context menu here', + // }) + // ); + + // open context menu when clicked + // win.webContents.on('context-menu', (e, params) => { + // contextMenu.popup(win, params.x, params.y); + // }); + * ====================================== + */ + + // register global shortcuts + // (available regardless of wheter app is in focus) + // bring focus to window + globalShortcut.register('Alt+1', () => { + win.show(); + }); + + // recreate window if no others open app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow(); } }); + + // Hide on minimise + win.on('minimize', function (event) { + event.preventDefault(); + win.hide(); + }); + + //Hide on close + win.on('close', function (event) { + event.preventDefault(); + win.hide(); + + return false; + }); + + // create tray + // TODO: Design better icon + tray = new Tray(trayIcon); + + // TODO: Move to separate file + // Define context menu + const trayMenuTemplate = [ + { + label: 'Show App', + click: () => win.show(), + }, + { + label: 'Close', + click: () => { + win.destroy(); + app.quit(); + }, + }, + ]; + + const trayContextMenu = Menu.buildFromTemplate(trayMenuTemplate); + + tray.setContextMenu(trayContextMenu); + tray.setToolTip('ontime running on http://localhost:4001/'); }); -app.on('window-all-closed', () => { - if (process.platform !== 'darwin') { - app.quit(); - } +// unregister shortcuts before quitting +app.once('will-quit', () => { + globalShortcut.unregisterAll(); }); diff --git a/server/package.json b/server/package.json index 070574918..7442f2e1c 100644 --- a/server/package.json +++ b/server/package.json @@ -1,10 +1,9 @@ { - "name": "my-electron-app", + "name": "ontime", "version": "0.1.0", - "author": "your name", - "description": "My Electron app", + "author": "Carlos Valente", + "description": "Time keeping for live events", "main": "main.js", - "dependencies": { "body-parser": "~1.19.0", "express": "~4.17.1", @@ -17,6 +16,8 @@ "socket.io": "^4.0.0" }, "devDependencies": { + "@electron/remote": "^1.1.0", + "concurrently": "^6.1.0", "electron": "^12.0.7", "electron-builder": "^22.11.3", "eslint": "^7.26.0", @@ -31,7 +32,8 @@ "nodestart": "node app.js", "start": "electron .", "pack": "electron-builder --dir", - "dist": "electron-builder" + "dist": "electron-builder", + "startall": "concurrently \"BROWSER=none yarn start\" \"wait-on http://localhost:3000 && electron .\"" }, "build": { "appId": "your.id", @@ -45,8 +47,11 @@ { "from": "../client/build", "to": "resources/client/build", - "filter": ["**/*"] + "filter": [ + "**/*" + ] } - ] }, + ] + }, "postinstall": "electron-builder install-app-deps" } diff --git a/server/yarn.lock b/server/yarn.lock index 1b4a25846..43aaaf31f 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -14,12 +14,19 @@ dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + "@babel/helper-validator-identifier@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== -"@babel/highlight@^7.10.4": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== @@ -67,6 +74,11 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" +"@electron/remote@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-1.1.0.tgz#167d119c7c03c7778b556fdc4f1f38a44b23f1c2" + integrity sha512-yr8gZTkIgJYKbFqExI4QZqMSjn1kL/us9Dl46+TH1EZdhgRtsJ6HDfdsIxu0QEc6Hv+DMAXs69rgquH+8FDk4w== + "@electron/universal@1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz#b812340e4ef21da2b3ee77b2b4d35c9b86defe37" @@ -182,6 +194,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.45.tgz#ec2dfb5566ff814d061aef7e141575aedba245cf" integrity sha512-DssMqTV9UnnoxDWu959sDLZzfvqCF0qDNRjaWeYSui9xkFe61kKo4l1TWNTQONpuXEm+gLMRvdlzvNHBamzmEw== +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + "@types/plist@^3.0.1": version "3.0.2" resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01" @@ -749,6 +766,21 @@ concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" +concurrently@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.1.0.tgz#00d22525d3fcdce7f34cc7f3c9753f90a57d6208" + integrity sha512-jy+xj49pvqeKjc2TAVXRIhrgPG51eBKDZti0kZ41kaWk9iLbyWBjH6KMFpW7peOLkEymD+ZM83Lx6UEy3N/M9g== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + read-pkg "^5.2.0" + rxjs "^6.6.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^16.2.0" + config-chain@^1.1.11: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" @@ -855,6 +887,11 @@ damerau-levenshtein@^1.0.6: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== +date-fns@^2.16.1: + version "2.21.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.21.3.tgz#8f5f6889d7a96bbcc1f0ea50239b397a83357f9b" + integrity sha512-HeYdzCaFflc1i4tGbj7JKMjM4cKGYoyxwcIIkHzNgCkX8xXDNJDZXgDDVchIWpN4eQc3lH37WarduXFZJOtxfw== + debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1119,7 +1156,7 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -error-ex@^1.2.0: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -2064,6 +2101,11 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -2161,6 +2203,11 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -2346,7 +2393,7 @@ node-osc@^6.0.1: dependencies: osc-min "^1.1.1" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -2510,6 +2557,16 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -2733,6 +2790,16 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -2835,6 +2902,13 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" +rxjs@^6.6.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -3021,6 +3095,11 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -3193,6 +3272,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + table@^6.0.4: version "6.7.0" resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2" @@ -3242,6 +3328,11 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -3259,6 +3350,11 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + tunnel@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" @@ -3281,6 +3377,11 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" @@ -3515,6 +3616,19 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yargs@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb" From 95e87d6ab85f4e49b9edbdaf8166eaef7963f609 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Sun, 30 May 2021 12:22:59 +0200 Subject: [PATCH 05/38] fix: compiling - only node service is module - import module with async - serve react app from node process --- server/main.js | 6 ++- server/package.json | 1 - server/src/app.js | 17 +++++-- server/yarn.lock | 116 ++++++++++++++++++++++++++++++++------------ 4 files changed, 104 insertions(+), 36 deletions(-) diff --git a/server/main.js b/server/main.js index 625813715..612fb4ba0 100644 --- a/server/main.js +++ b/server/main.js @@ -8,7 +8,11 @@ const { } = require('electron'); const path = require('path'); const { electron } = require('process'); -const nodeapp = require('./app.js'); + +(async () => { + const { nodeapp } = await import('./src/app.js'); +})(); + require('@electron/remote/main').initialize(); // Load Icons diff --git a/server/package.json b/server/package.json index 02d8cbab2..f6ef17497 100644 --- a/server/package.json +++ b/server/package.json @@ -3,7 +3,6 @@ "version": "0.1.0", "author": "Carlos Valente", "description": "Time keeping for live events", - "type": "module", "main": "main.js", "dependencies": { "body-parser": "~1.19.0", diff --git a/server/src/app.js b/server/src/app.js index e6d4dd214..f9af209c6 100644 --- a/server/src/app.js +++ b/server/src/app.js @@ -3,7 +3,12 @@ import { config } from './config/config.js'; // init database import { Low, JSONFile } from 'lowdb'; + import { join } from 'path'; +import path from 'path'; +import { fileURLToPath } from 'url'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); const file = join('data/', config.database.filename); const adapter = new JSONFile(file); @@ -60,9 +65,11 @@ app.use('/events', eventsRouter); app.use('/event', eventRouter); app.use('/ontime', ontimeRouter); -// implement general router -app.get('/', (req, res) => { - res.send('ontime API'); +// serve react +app.use(express.static(path.join(__dirname, '../../client/build'))); + +app.get('*', (req, res) => { + res.sendFile(path.resolve(__dirname, '../../client', 'build', 'index.html')); }); // Implement route for errors @@ -87,3 +94,7 @@ server.listen(port, () => import { initiateOSC } from './controllers/OscController.js'; initiateOSC(config.osc); + +export function init() { + console.log('init'); +} diff --git a/server/yarn.lock b/server/yarn.lock index 43aaaf31f..3c3ee401d 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -342,6 +342,11 @@ app-builder-lib@22.11.3: semver "^7.3.5" temp-file "^3.4.0" +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -608,6 +613,14 @@ builder-util@22.11.3: stat-mode "^1.0.0" temp-file "^3.4.0" +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" @@ -756,7 +769,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.2: +concat-stream@^1.5.2, concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -962,6 +975,14 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + dir-compare@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz#785c41dc5f645b34343a4eafc50b79bac7f11631" @@ -1740,7 +1761,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -1879,7 +1900,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2016,11 +2037,6 @@ is-path-inside@^3.0.2: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - is-regex@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" @@ -2051,6 +2067,11 @@ is-yarn-global@^0.3.0: resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -2236,7 +2257,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@4, lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -2248,16 +2269,12 @@ loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lowdb@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" - integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== +lowdb@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-2.1.0.tgz#c8063e228b5ab3e082ece90e0512537ecb6e1e2a" + integrity sha512-F4Go8/V37gAidTR3c5poyjprOpZSDNSLJVOmI0ny4D4q9rC37OkBhlzX0bqj7LZlT3UIj4FchmZrrSw7qY+eGQ== dependencies: - graceful-fs "^4.1.3" - is-promise "^2.1.0" - lodash "4" - pify "^3.0.0" - steno "^0.4.1" + steno "^1.0.0" lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" @@ -2344,7 +2361,7 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mkdirp@^0.5.4: +mkdirp@^0.5.1, mkdirp@^0.5.4: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -2366,6 +2383,20 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +multer@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" + integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== + dependencies: + append-field "^1.0.0" + busboy "^0.2.11" + concat-stream "^1.5.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" + nanoid@^3.1.22: version "3.1.22" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" @@ -2386,10 +2417,10 @@ node-addon-api@^1.6.3: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== -node-osc@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/node-osc/-/node-osc-6.0.1.tgz#6f2c39996c64460435b678dc91c128d3a9711031" - integrity sha512-UZBQGH4vVTw3Ub5/xcnhlrhL6bpaYz3hhNjO4eup4tknyP5qOi2GVVnEmEn/qaTgTvs7SVyytj3OHg9JWRD4Aw== +node-osc@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/node-osc/-/node-osc-6.0.2.tgz#185d387928b186a84e8d0eebcae9e54a8bf50729" + integrity sha512-RW8PRLMh4H14veC5gZVUTcRkrk5pXd+b4vmitWL55c9ZI+5yEvMXkrokfnRH0u7DYveqw4h+uCPIUDifY/vjfA== dependencies: osc-min "^1.1.1" @@ -2471,7 +2502,7 @@ object.values@^1.1.1, object.values@^1.1.3: es-abstract "^1.18.0-next.2" has "^1.0.3" -on-finished@~2.3.0: +on-finished@^2.3.0, on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= @@ -2800,6 +2831,16 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -3146,12 +3187,15 @@ stat-mode@^1.0.0: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -steno@^0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" - integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs= - dependencies: - graceful-fs "^4.1.3" +steno@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/steno/-/steno-1.0.0.tgz#475e32c6066ec9760229eaaf1550601764fbecba" + integrity sha512-C/KgCvEa1yWnpHmaPjAXrz1yWxh6hs+HvhqqPa71euaQmNi1wr4+WFo57VQxjKKuFl2KqS7gtlrN0oxj2noQLw== + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= string-width@^2.0.0: version "2.1.1" @@ -3208,6 +3252,11 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -3387,7 +3436,7 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-is@~1.6.17, type-is@~1.6.18: +type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -3601,6 +3650,11 @@ xmldom@^0.5.0: resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" From f13ccb4c0b35d3b61112209445de6f716e1c715b Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Tue, 1 Jun 2021 22:04:52 +0200 Subject: [PATCH 06/38] temp --- server/main.js | 178 ++++++++++++++++++++++---------------------- server/package.json | 1 - server/src/app.js | 5 +- server/yarn.lock | 5 -- 4 files changed, 89 insertions(+), 100 deletions(-) diff --git a/server/main.js b/server/main.js index 612fb4ba0..77ca17e32 100644 --- a/server/main.js +++ b/server/main.js @@ -13,8 +13,6 @@ const { electron } = require('process'); const { nodeapp } = await import('./src/app.js'); })(); -require('@electron/remote/main').initialize(); - // Load Icons // TODO: Icons appear pixelated const trayIcon = path.join(__dirname, './assets/images/logos/LOGO-512.png'); @@ -31,69 +29,65 @@ if (!lock) { return; } -var win, tray; +const { Notification } = require('electron'); + +function showNotification(text) { + new Notification({ + title: 'ontime', + body: text, + }).show(); +} + +let win; +let tray = null; +let loaded = false; function createWindow() { win = new BrowserWindow({ - width: 800, - height: 600, + width: 1920, + height: 1080, + minWidth: 500, + minHeight: 530, + maxWidth: 1920, + maxHeight: 1440, backgroundColor: '#202020', icon: appIcon, - // TODO: Make framerless - // frame: false, + textAreasAreResizable: false, + enableWebSQL: false, webPreferences: { preload: path.join(__dirname, './electron/preload.js'), // TODO: what are recommended alternatives to node integration? nodeIntegration: true, - enableRemoteModule: true, + // enableRemoteModule: true, }, }); + win.setMenu(null); + // Load page served by node - win.loadURL('http://localhost:4001/editor'); - // TODO: Make development environment and run live react instead - // win.loadURL('http://localhost:3000/editor'); + try { + // loaded = path.join(__dirname, '../client/build/index.html'); + // win.loadURL(`file://${loaded}`); + // win.loadURL('http://localhost:4001/editor'); + win.loadURL(`file://${__dirname}/dist/index.html`); + } catch (error) { + loaded = error; + } + + // win.loadURL('http://localhost:4001/editor').then(() => { + // win.webContents.setBackgroundThrottling(false); + // }); // Show dev tools win.webContents.openDevTools({ mode: 'detach' }); } -app.whenReady().then(() => { - createWindow(); +app + .whenReady() + .then(() => { + createWindow(); - // TODO: Move to separate file - // TODO: Should move to react? - // Define App Menu - const appMenuTemplate = [ - { - label: 'Help', - submenu: [ - { - label: 'Getting Started', - click: () => { - console.log('Gonna do something here: Help > Getting Started'); - }, - }, - { - label: 'OSC Controls', - click: () => { - console.log('Gonna do something here: Help > OSC Controls'); - }, - }, - { - label: 'URL Definitions', - click: () => { - console.log('Gonna do something here: Help > URL Definitions'); - }, - }, - ], - }, - ]; - - const appMenu = Menu.buildFromTemplate(appMenuTemplate); - Menu.setApplicationMenu(appMenu); - - /* ====================================== + /* ====================================== * CONTEXT MENU CREATION ON REACT SIDE // Create context menu // const contextMenu = new Menu(); @@ -110,59 +104,61 @@ app.whenReady().then(() => { * ====================================== */ - // register global shortcuts - // (available regardless of wheter app is in focus) - // bring focus to window - globalShortcut.register('Alt+1', () => { - win.show(); - }); + // register global shortcuts + // (available regardless of wheter app is in focus) + // bring focus to window + globalShortcut.register('Alt+1', () => { + win.show(); + }); - // recreate window if no others open - app.on('activate', () => { - if (BrowserWindow.getAllWindows().length === 0) { - createWindow(); - } - }); + // recreate window if no others open + app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } + }); - // Hide on minimise - win.on('minimize', function (event) { - event.preventDefault(); - win.hide(); - }); + // Hide on minimise + win.on('minimize', function (event) { + event.preventDefault(); + showNotification('App running in background'); + win.hide(); + }); - //Hide on close - win.on('close', function (event) { - event.preventDefault(); - win.hide(); + //Hide on close + win.on('close', function (event) { + event.preventDefault(); + showNotification('App running in background'); + win.hide(); + return false; + }); - return false; - }); + // create tray + // TODO: Design better icon + tray = new Tray(trayIcon); - // create tray - // TODO: Design better icon - tray = new Tray(trayIcon); - - // TODO: Move to separate file - // Define context menu - const trayMenuTemplate = [ - { - label: 'Show App', - click: () => win.show(), - }, - { - label: 'Close', - click: () => { - win.destroy(); - app.quit(); + // TODO: Move to separate file + // Define context menu + const trayMenuTemplate = [ + { + label: 'Show App', + click: () => win.show(), }, - }, - ]; + { + label: 'Close', + click: () => { + win.destroy(); + app.quit(); + }, + }, + ]; - const trayContextMenu = Menu.buildFromTemplate(trayMenuTemplate); + const trayContextMenu = Menu.buildFromTemplate(trayMenuTemplate); - tray.setContextMenu(trayContextMenu); - tray.setToolTip('ontime running on http://localhost:4001/'); -}); + tray.setContextMenu(trayContextMenu); + tray.setToolTip('ontime running on http://localhost:4001/'); + }) + .then(() => showNotification(loaded)); // unregister shortcuts before quitting app.once('will-quit', () => { diff --git a/server/package.json b/server/package.json index f6ef17497..0d1bfbd36 100644 --- a/server/package.json +++ b/server/package.json @@ -17,7 +17,6 @@ "socket.io": "^4.0.0" }, "devDependencies": { - "@electron/remote": "^1.1.0", "concurrently": "^6.1.0", "electron": "^12.0.7", "electron-builder": "^22.11.3", diff --git a/server/src/app.js b/server/src/app.js index f9af209c6..2898c0c7e 100644 --- a/server/src/app.js +++ b/server/src/app.js @@ -74,8 +74,7 @@ app.get('*', (req, res) => { // Implement route for errors app.use((err, req, res, next) => { - console.error(err.stack); - res.status(500).send('Something broke!'); + res.status(500).send(err.stack); }); // create HTTP server @@ -86,7 +85,7 @@ global.timer = new EventTimer(server, config); global.timer.setupWithEventList(data.events); // Start server -server.listen(port, () => +server.listen(port, '0.0.0.0', () => console.log(`HTTP Server is listening on port ${port}`) ); diff --git a/server/yarn.lock b/server/yarn.lock index 3c3ee401d..7d043bdaa 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -74,11 +74,6 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" -"@electron/remote@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-1.1.0.tgz#167d119c7c03c7778b556fdc4f1f38a44b23f1c2" - integrity sha512-yr8gZTkIgJYKbFqExI4QZqMSjn1kL/us9Dl46+TH1EZdhgRtsJ6HDfdsIxu0QEc6Hv+DMAXs69rgquH+8FDk4w== - "@electron/universal@1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz#b812340e4ef21da2b3ee77b2b4d35c9b86defe37" From 9e15ab6ea7ce7077ba2f115d1aff2570f8d436eb Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Tue, 1 Jun 2021 22:08:05 +0200 Subject: [PATCH 07/38] add package.json --- .gitignore | 1 - package.json | 4 ++++ server/src/package.json | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 package.json create mode 100644 server/src/package.json diff --git a/.gitignore b/.gitignore index 480d45493..5b7dfca5a 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,6 @@ _SS/ db.json .eslintrc.json yarn.lock -package.json package-lock.json db.json db backup.json diff --git a/package.json b/package.json new file mode 100644 index 000000000..9b55ba88f --- /dev/null +++ b/package.json @@ -0,0 +1,4 @@ +{ + "dependencies": {}, + "devDependencies": {} +} diff --git a/server/src/package.json b/server/src/package.json new file mode 100644 index 000000000..345ca8caf --- /dev/null +++ b/server/src/package.json @@ -0,0 +1,7 @@ +{ + "type": "module", + "scripts": { + "nodestart": "nodemon app.js", + "start": "node app.js" + } +} From 68dd50c62d286190e5ad0dfad2c0a1231b2d59b2 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Wed, 2 Jun 2021 12:00:17 +0200 Subject: [PATCH 08/38] include lock files --- .gitignore | 2 - server/yarn.lock | 156 +++++++++++++++++++++-------------------------- yarn.lock | 4 ++ 3 files changed, 73 insertions(+), 89 deletions(-) create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 5b7dfca5a..24d6a372e 100644 --- a/.gitignore +++ b/.gitignore @@ -30,7 +30,5 @@ _SS/ .vscode/launch.json db.json .eslintrc.json -yarn.lock -package-lock.json db.json db backup.json diff --git a/server/yarn.lock b/server/yarn.lock index 7d043bdaa..2fa76207a 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -149,7 +149,7 @@ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== -"@types/fs-extra@^9.0.11", "@types/fs-extra@^9.0.7": +"@types/fs-extra@^9.0.11": version "9.0.11" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== @@ -308,10 +308,10 @@ app-builder-bin@3.5.13: resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz#6dd7f4de34a4e408806f99b8c7d6ef1601305b7e" integrity sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg== -app-builder-lib@22.11.3: - version "22.11.3" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.3.tgz#bfef12c89603e0fa8af33e322ca82757d346825b" - integrity sha512-u40ESAF/wPVlRPkS0hRjtClzUcS0PQ61bb5ZN8+d039cmwtS7myRVYucck58c9GOyXfvyO1hHaJii5I+QrBtdA== +app-builder-lib@22.11.5: + version "22.11.5" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.5.tgz#d49f49dc2d9fd225249e4ae7e30add2996e7062f" + integrity sha512-lLEDvJuLdc4IVyADJK6t4qEIjRhOUj4p19B1RS/8pN/oAb8X5Qe1t3Einbsi4oFBJBweH2LIygnSAwumjQh9iA== dependencies: "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" @@ -319,18 +319,18 @@ app-builder-lib@22.11.3: "@malept/flatpak-bundler" "^0.4.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.11.3" - builder-util-runtime "8.7.5" + builder-util "22.11.5" + builder-util-runtime "8.7.6" chromium-pickle-js "^0.2.0" debug "^4.3.2" ejs "^3.1.6" - electron-publish "22.11.2" + electron-publish "22.11.5" fs-extra "^10.0.0" hosted-git-info "^4.0.2" is-ci "^3.0.0" isbinaryfile "^4.0.8" js-yaml "^4.1.0" - lazy-val "^1.0.4" + lazy-val "^1.0.5" minimatch "^3.0.4" read-config-file "6.2.0" sanitize-filename "^1.6.3" @@ -552,53 +552,25 @@ buffer@^5.1.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builder-util-runtime@8.7.4: - version "8.7.4" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.4.tgz#83f9f00bdf496cb3636d551cb5f5db56cdf25c96" - integrity sha512-2vDOwH0cyyCLQwW0Tsrg3RKKQpEcrV70KFun39E8RPzNFBOv9ds9juK8WUnO6ml+xJWKkKTjWLFdF3y+8GbPOw== +builder-util-runtime@8.7.6: + version "8.7.6" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz#4b43c96db2bd494ced7694bcd7674934655e8324" + integrity sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug== dependencies: debug "^4.3.2" sax "^1.2.4" -builder-util-runtime@8.7.5: - version "8.7.5" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz#fbe59e274818885e0d2e358d5b7017c34ae6b0f5" - integrity sha512-fgUFHKtMNjdvH6PDRFntdIGUPgwZ69sXsAqEulCtoiqgWes5agrMq/Ud274zjJRTbckYh2PHh8/1CpFc6dpsbQ== - dependencies: - debug "^4.3.2" - sax "^1.2.4" - -builder-util@22.11.2: - version "22.11.2" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.2.tgz#e06549ff483dfb216c5edcd9e6616ffaa87ec902" - integrity sha512-n5QkoRcNKy7KrBO8trpk7WRgdpBnOu68KVm+roSbDtZaW1qAmBplyThxnczcvjByVwD+UrsKd62eNIARiz2jyw== - dependencies: - "7zip-bin" "~5.1.1" - "@types/debug" "^4.1.5" - "@types/fs-extra" "^9.0.7" - app-builder-bin "3.5.13" - bluebird-lst "^1.0.9" - builder-util-runtime "8.7.4" - chalk "^4.1.0" - debug "^4.3.2" - fs-extra "^9.1.0" - is-ci "^3.0.0" - js-yaml "^4.0.0" - source-map-support "^0.5.19" - stat-mode "^1.0.0" - temp-file "^3.3.7" - -builder-util@22.11.3: - version "22.11.3" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.3.tgz#933f0242f0466556b604e0ea2a2ad758d649586e" - integrity sha512-az4s7iyf1ZPXaSVgCY+YoUcBVNspHz/f2lZSXTeXpPUjiKcbV+jzewWdw8yPWFUZ9UDArI5AVhW2bQfyBRjgVQ== +builder-util@22.11.5: + version "22.11.5" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.5.tgz#08836d00e6bef39bdffd8a66fb07d2d5021b9c3c" + integrity sha512-ur9ksncYOnJg/VuJz3PdsBQHeg9tjdOC2HVj8mQ0WNcn/H3MO4tnwKBOWWikPDiWEjeBSvFUmYBnGFkRiUNkww== dependencies: "7zip-bin" "~5.1.1" "@types/debug" "^4.1.5" "@types/fs-extra" "^9.0.11" app-builder-bin "3.5.13" bluebird-lst "^1.0.9" - builder-util-runtime "8.7.5" + builder-util-runtime "8.7.6" chalk "^4.1.1" debug "^4.3.2" fs-extra "^10.0.0" @@ -988,31 +960,31 @@ dir-compare@^2.4.0: commander "2.9.0" minimatch "3.0.4" -dmg-builder@22.11.3: - version "22.11.3" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.3.tgz#f843579653586802295890d917dc8838b9affbaa" - integrity sha512-NGlorMQF2YGboVtHM8zP5EHxYhrxFGjtsnX6YCr9BV1bsjSPVyBJZpuxKnOOLj86zlYWYeiNGyj4NeUOLGgUCA== +dmg-builder@22.11.5: + version "22.11.5" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.5.tgz#0df9843def73a217097956982fa21bb4d6a5836e" + integrity sha512-91Shh9+OK9RwBlBURxvhSnQNibEh/JYNAnMOfFguyNbasSfF50Jme4b3dgsQrHTTTfkFijcvzykPPFAZofQs6g== dependencies: - app-builder-lib "22.11.3" - builder-util "22.11.3" - builder-util-runtime "8.7.5" + app-builder-lib "22.11.5" + builder-util "22.11.5" + builder-util-runtime "8.7.6" fs-extra "^10.0.0" iconv-lite "^0.6.2" js-yaml "^4.1.0" optionalDependencies: - dmg-license "^1.0.8" + dmg-license "^1.0.9" -dmg-license@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.8.tgz#d52e234815f1a07a59706e5f2a2fea71991cf784" - integrity sha512-47GOb6b4yVzpovXC34heXElpH++ICg9GuWBeOTaokUNLAoAdWpE4VehudYEEtu96j2jXsgQWYf78nW7r+0Y3eg== +dmg-license@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz#a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f" + integrity sha512-Rq6qMDaDou2+aPN2SYy0x7LDznoJ/XaG6oDcH5wXUp+WRWQMUYE6eM+F+nex+/LSXOp1uw4HLFoed0YbfU8R/Q== dependencies: "@types/plist" "^3.0.1" "@types/verror" "^1.10.3" ajv "^6.10.0" cli-truncate "^1.1.0" crc "^3.8.0" - iconv-corefoundation "^1.1.5" + iconv-corefoundation "^1.1.6" plist "^3.0.1" smart-buffer "^4.0.2" verror "^1.10.0" @@ -1073,36 +1045,36 @@ ejs@^3.1.6: dependencies: jake "^10.6.1" -electron-builder@^22.11.3: - version "22.11.3" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.3.tgz#35a193f3bdf78affd4d8b58e4d756b6dc55c922d" - integrity sha512-STv4uU3q00FzVgW9kMpRXSrhJxogzAZgIhFZl0mBZQC1VOAajNiEBsZPaU32jP23oxlgLQExj/ux6/frYk5vGA== +electron-builder@22.11.5: + version "22.11.5" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.5.tgz#914d8183e1bab7cda43ef1d67fc3d17314c7e242" + integrity sha512-QIhzrmSLNteItRvmAjwNpsya08oZeOJIrxFww/Alkjcwnrn5Xgog2qf3Xfa3ocuNUQIwb+mMzZrzqnPu0Mamyg== dependencies: "@types/yargs" "^16.0.1" - app-builder-lib "22.11.3" - builder-util "22.11.3" - builder-util-runtime "8.7.5" + app-builder-lib "22.11.5" + builder-util "22.11.5" + builder-util-runtime "8.7.6" chalk "^4.1.1" - dmg-builder "22.11.3" + dmg-builder "22.11.5" fs-extra "^10.0.0" is-ci "^3.0.0" - lazy-val "^1.0.4" + lazy-val "^1.0.5" read-config-file "6.2.0" update-notifier "^5.1.0" yargs "^17.0.1" -electron-publish@22.11.2: - version "22.11.2" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.2.tgz#670cab9d15dea0b1eb94f69676e76f5111e4ddc2" - integrity sha512-RSrDyYL407QRryIN0QhQGJc5PjHK4gdCwTHYTH5Zl43753ZLVUMRmzW768H0Tb8hVM2VOymy8pNnQAHB5egoiQ== +electron-publish@22.11.5: + version "22.11.5" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.5.tgz#2fcd3280c4267e70e4aa15003c9b7dc34923320e" + integrity sha512-peN4tEP80Kb6reuwKKvSu9p/XUWpx/7x747u5NSg7Kg2axBjzdMtX5ZqBThfPtJWJhSWZ7PEYWmNyUCfdQl2Ag== dependencies: - "@types/fs-extra" "^9.0.7" - builder-util "22.11.2" - builder-util-runtime "8.7.4" - chalk "^4.1.0" - fs-extra "^9.1.0" - lazy-val "^1.0.4" - mime "^2.5.0" + "@types/fs-extra" "^9.0.11" + builder-util "22.11.5" + builder-util-runtime "8.7.6" + chalk "^4.1.1" + fs-extra "^10.0.0" + lazy-val "^1.0.5" + mime "^2.5.2" electron@^12.0.7: version "12.0.7" @@ -1406,6 +1378,11 @@ eslint@^7.26.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" +esm@^3.2.25: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + espree@^7.3.0, espree@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" @@ -1616,7 +1593,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -1837,10 +1814,10 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -iconv-corefoundation@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.5.tgz#90596d444a579aeb109f5ca113f6bb665a41be2b" - integrity sha512-hI4m7udfV04OcjleOmDaR4gwXnH4xumxN+ZmywHDiKf2CmAzsT9SVYe7Y4pdnQbyZfXwAQyrElykbE5PrPRfmQ== +iconv-corefoundation@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz#27c135470237f6f8d13462fa1f5eaf250523c29a" + integrity sha512-1NBe55C75bKGZaY9UHxvXG3G0gEp0ziht7quhuFrW3SPgZDw9HI6qvYXRSV5M/Eupyu8ljuJ6Cba+ec15PZ4Xw== dependencies: cli-truncate "^1.1.0" node-addon-api "^1.6.3" @@ -2105,7 +2082,7 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.0.0, js-yaml@^4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -2211,6 +2188,11 @@ lazy-val@^1.0.4: resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== +lazy-val@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" + integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -2334,7 +2316,7 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.5.0: +mime@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== @@ -3335,7 +3317,7 @@ table@^6.0.4: string-width "^4.2.0" strip-ansi "^6.0.0" -temp-file@^3.3.7, temp-file@^3.4.0: +temp-file@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..fb57ccd13 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + From cdd2c58dc09a33ce5508f978371612878b69ff47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B8rn=20Kva=CC=8Ale?= Date: Wed, 2 Jun 2021 23:17:31 +0200 Subject: [PATCH 09/38] build fixed? --- server/main.js | 10 +++++----- server/package.json | 12 ++++++++++-- server/src/app.js | 8 +++++--- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/server/main.js b/server/main.js index 77ca17e32..b84782e53 100644 --- a/server/main.js +++ b/server/main.js @@ -9,9 +9,9 @@ const { const path = require('path'); const { electron } = require('process'); -(async () => { - const { nodeapp } = await import('./src/app.js'); -})(); +var env = process.env.NODE_ENV || 'prod'; + +const { nodeapp } = import(path.join(__dirname, env=='prod' ? '../' : '', 'src/app.js')); // Load Icons // TODO: Icons appear pixelated @@ -68,8 +68,8 @@ function createWindow() { try { // loaded = path.join(__dirname, '../client/build/index.html'); // win.loadURL(`file://${loaded}`); - // win.loadURL('http://localhost:4001/editor'); - win.loadURL(`file://${__dirname}/dist/index.html`); + win.loadURL('http://localhost:4001/editor'); + //win.loadURL(`file://${__dirname}/dist/index.html`); } catch (error) { loaded = error; } diff --git a/server/package.json b/server/package.json index 0d1bfbd36..6df5fd0cb 100644 --- a/server/package.json +++ b/server/package.json @@ -29,14 +29,15 @@ "eslint-plugin-simple-import-sort": "^7.0.0" }, "scripts": { - "nodestart": "node app.js", - "start": "electron .", + "nodestart": "NODE_ENV=development node app.js", + "start": "NODE_ENV=development electron .", "pack": "electron-builder --dir", "dist": "electron-builder", "startall": "concurrently \"BROWSER=none yarn start\" \"wait-on http://localhost:3000 && electron .\"" }, "build": { "appId": "your.id", + "asar": false, "mac": { "category": "your.app.category.type" }, @@ -50,6 +51,13 @@ "filter": [ "**/*" ] + }, + { + "from": "src", + "to": "resources/src", + "filter": [ + "**/*" + ] } ] }, diff --git a/server/src/app.js b/server/src/app.js index 2898c0c7e..abe8ec960 100644 --- a/server/src/app.js +++ b/server/src/app.js @@ -10,7 +10,9 @@ import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const file = join('data/', config.database.filename); +var env = process.env.NODE_ENV || 'prod'; + +const file = join(__dirname, 'data/', config.database.filename); const adapter = new JSONFile(file); export const db = new Low(adapter); @@ -66,10 +68,10 @@ app.use('/event', eventRouter); app.use('/ontime', ontimeRouter); // serve react -app.use(express.static(path.join(__dirname, '../../client/build'))); +app.use(express.static(path.join(__dirname, env == 'prod' ? '../' : '../../', 'client/build'))); app.get('*', (req, res) => { - res.sendFile(path.resolve(__dirname, '../../client', 'build', 'index.html')); + res.sendFile(path.resolve(__dirname, env == 'prod' ? '../' : '../../', 'client', 'build', 'index.html')); }); // Implement route for errors From 5bef64ae5eee9ddac20fa9d4e0e9219004fa7fea Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Thu, 3 Jun 2021 14:24:35 +0200 Subject: [PATCH 10/38] win import path --- server/main.js | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/server/main.js b/server/main.js index b84782e53..3735a97d9 100644 --- a/server/main.js +++ b/server/main.js @@ -11,7 +11,9 @@ const { electron } = require('process'); var env = process.env.NODE_ENV || 'prod'; -const { nodeapp } = import(path.join(__dirname, env=='prod' ? '../' : '', 'src/app.js')); +const { nodeapp } = import( + path.join('file:///', __dirname, env == 'prod' ? '../' : '', 'src/app.js') +); // Load Icons // TODO: Icons appear pixelated @@ -65,18 +67,9 @@ function createWindow() { win.setMenu(null); // Load page served by node - try { - // loaded = path.join(__dirname, '../client/build/index.html'); - // win.loadURL(`file://${loaded}`); - win.loadURL('http://localhost:4001/editor'); - //win.loadURL(`file://${__dirname}/dist/index.html`); - } catch (error) { - loaded = error; - } - - // win.loadURL('http://localhost:4001/editor').then(() => { - // win.webContents.setBackgroundThrottling(false); - // }); + win.loadURL('http://localhost:4001/editor').then(() => { + win.webContents.setBackgroundThrottling(false); + }); // Show dev tools win.webContents.openDevTools({ mode: 'detach' }); From 9b7dfc7e6578cd36ffee26a5ceeacefe0ea47a75 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Thu, 3 Jun 2021 22:38:21 +0200 Subject: [PATCH 11/38] add splash screen --- server/electron/splash/splash.html | 24 +++++++++++++++++++++ server/main.js | 34 ++++++++++++++++++++++-------- 2 files changed, 49 insertions(+), 9 deletions(-) create mode 100644 server/electron/splash/splash.html diff --git a/server/electron/splash/splash.html b/server/electron/splash/splash.html new file mode 100644 index 000000000..56e4fe356 --- /dev/null +++ b/server/electron/splash/splash.html @@ -0,0 +1,24 @@ + + + + + + + ontime + + +

+ +

+ ontime - event timers +

+
+ + diff --git a/server/main.js b/server/main.js index 3735a97d9..ae69d843f 100644 --- a/server/main.js +++ b/server/main.js @@ -11,9 +11,11 @@ const { electron } = require('process'); var env = process.env.NODE_ENV || 'prod'; -const { nodeapp } = import( - path.join('file:///', __dirname, env == 'prod' ? '../' : '', 'src/app.js') -); +(async () => { + const { nodeapp } = import( + path.join('file:///', __dirname, env == 'prod' ? '../' : '', 'src/app.js') + ); +})(); // Load Icons // TODO: Icons appear pixelated @@ -41,10 +43,22 @@ function showNotification(text) { } let win; +let splash; let tray = null; let loaded = false; function createWindow() { + // create a new `splash`-Window + splash = new BrowserWindow({ + width: 333, + height: 333, + transparent: true, + resizable: false, + frame: false, + alwaysOnTop: true, + }); + splash.loadURL(`file://${__dirname}/electron/splash/splash.html`); + win = new BrowserWindow({ width: 1920, height: 1080, @@ -54,6 +68,7 @@ function createWindow() { maxHeight: 1440, backgroundColor: '#202020', icon: appIcon, + show: false, textAreasAreResizable: false, enableWebSQL: false, webPreferences: { @@ -111,14 +126,14 @@ app } }); - // Hide on minimise - win.on('minimize', function (event) { - event.preventDefault(); - showNotification('App running in background'); - win.hide(); + win.once('ready-to-show', () => { + setTimeout(() => { + win.show(); + splash.destroy(); + }, 2000); }); - //Hide on close + // Hide on close win.on('close', function (event) { event.preventDefault(); showNotification('App running in background'); @@ -149,6 +164,7 @@ app const trayContextMenu = Menu.buildFromTemplate(trayMenuTemplate); tray.setContextMenu(trayContextMenu); + // TODO: get IP Address tray.setToolTip('ontime running on http://localhost:4001/'); }) .then(() => showNotification(loaded)); From e37837723ed69f473497cd71a7354536aed167e7 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Thu, 3 Jun 2021 23:47:02 +0200 Subject: [PATCH 12/38] ipc react-electron --- client/src/features/menu/MenuBar.jsx | 28 ++++++++++++--- server/electron/preload.js | 11 +----- server/main.js | 53 +++++++++++++++++++++++++--- 3 files changed, 73 insertions(+), 19 deletions(-) diff --git a/client/src/features/menu/MenuBar.jsx b/client/src/features/menu/MenuBar.jsx index f2679fc2b..489e10316 100644 --- a/client/src/features/menu/MenuBar.jsx +++ b/client/src/features/menu/MenuBar.jsx @@ -7,6 +7,7 @@ import MinIconBtn from './buttons/MinIconBtn'; import QuitIconBtn from './buttons/QuitIconBtn'; import style from './MenuBar.module.css'; import HelpIconBtn from './buttons/HelpIconBtn'; +const { ipcRenderer } = window.require('electron'); export default function MenuBar(props) { const { onOpen, onClose } = props; @@ -15,13 +16,32 @@ export default function MenuBar(props) { downloadEvents(); }; + const handleIPC = (action) => { + switch (action) { + case 'min': + ipcRenderer.send('set-window', 'to-tray'); + break; + case 'max': + ipcRenderer.send('set-window', 'to-max'); + break; + case 'shutdown': + ipcRenderer.send('shutdown', 'now'); + break; + case 'help': + ipcRenderer.send('send-to-link', 'help'); + break; + default: + break; + } + }; + return ( <> - - - + handleIPC('shutdown')} /> + handleIPC('max')} /> + handleIPC('min')} />
- + handleIPC('help')} /> diff --git a/server/electron/preload.js b/server/electron/preload.js index 60e0b9be3..fa038c825 100644 --- a/server/electron/preload.js +++ b/server/electron/preload.js @@ -1,10 +1 @@ -window.addEventListener('DOMContentLoaded', () => { - const replaceText = (selector, text) => { - const element = document.getElementById(selector); - if (element) element.innerText = text; - }; - - for (const type of ['chrome', 'node', 'electron']) { - replaceText(`${type}-version`, process.versions[type]); - } -}); +window.require = require; diff --git a/server/main.js b/server/main.js index ae69d843f..61795c8c0 100644 --- a/server/main.js +++ b/server/main.js @@ -5,11 +5,14 @@ const { globalShortcut, Tray, dialog, + ipcMain, + shell, } = require('electron'); const path = require('path'); const { electron } = require('process'); +const { Notification } = require('electron'); -var env = process.env.NODE_ENV || 'prod'; +const env = process.env.NODE_ENV || 'prod'; (async () => { const { nodeapp } = import( @@ -33,8 +36,6 @@ if (!lock) { return; } -const { Notification } = require('electron'); - function showNotification(text) { new Notification({ title: 'ontime', @@ -75,14 +76,19 @@ function createWindow() { preload: path.join(__dirname, './electron/preload.js'), // TODO: what are recommended alternatives to node integration? nodeIntegration: true, - // enableRemoteModule: true, + contextIsolation: false, }, }); win.setMenu(null); // Load page served by node - win.loadURL('http://localhost:4001/editor').then(() => { + const reactApp = + env == 'prod' + ? 'http://localhost:4001/editor' + : 'http://localhost:3000/editor'; + + win.loadURL(reactApp).then(() => { win.webContents.setBackgroundThrottling(false); }); @@ -173,3 +179,40 @@ app app.once('will-quit', () => { globalShortcut.unregisterAll(); }); + +// Get messages from react +// Test message +ipcMain.on('test-message', (event, arg) => { + showNotification('testing 1-2', arg); +}); + +// Terminate +ipcMain.on('shutdown', (event, arg) => { + console.log('Got IPC shutdown'); + win.destroy(); + app.quit(); +}); + +// Window manipulation +ipcMain.on('set-window', (event, arg) => { + console.log('Got IPC set-window', arg); + + if (arg === 'to-max') { + // window full + win.setContentSize(1920, 1080); + win.setPosition(0, 0); + } else if (arg === 'to-tray') { + // window to tray + win.close(); + } +}); + +// Open links external +ipcMain.on('send-to-link', (event, arg) => { + console.log('Got IPC send-to-link', arg); + + // send to help URL + if (arg === 'help') { + shell.openExternal('http://blank'); + } +}); From ae4363f6f66c2557e0d521b15c0d8aff9fc16549 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Fri, 4 Jun 2021 12:15:31 +0200 Subject: [PATCH 13/38] separe init processes separate processes to initialise: - express server - osc server - osc client --- server/main.js | 12 ++++++--- server/src/app.js | 54 +++++++++++++++++++++++++------------ server/src/config/config.js | 1 + 3 files changed, 47 insertions(+), 20 deletions(-) diff --git a/server/main.js b/server/main.js index 61795c8c0..32d7920cc 100644 --- a/server/main.js +++ b/server/main.js @@ -15,9 +15,15 @@ const { Notification } = require('electron'); const env = process.env.NODE_ENV || 'prod'; (async () => { - const { nodeapp } = import( + const { startServer, startOSCServer, startOSCClient } = await import( path.join('file:///', __dirname, env == 'prod' ? '../' : '', 'src/app.js') ); + // Start express server + startServer(); + // Start OSC Server (API) + startOSCServer(); + // Start OSC Client (Feedback) + startOSCClient(); })(); // Load Icons @@ -62,7 +68,7 @@ function createWindow() { win = new BrowserWindow({ width: 1920, - height: 1080, + height: 1000, minWidth: 500, minHeight: 530, maxWidth: 1920, @@ -199,7 +205,7 @@ ipcMain.on('set-window', (event, arg) => { if (arg === 'to-max') { // window full - win.setContentSize(1920, 1080); + win.setContentSize(1920, 1000); win.setPosition(0, 0); } else if (arg === 'to-tray') { // window to tray diff --git a/server/src/app.js b/server/src/app.js index abe8ec960..6c604b2d2 100644 --- a/server/src/app.js +++ b/server/src/app.js @@ -10,7 +10,7 @@ import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -var env = process.env.NODE_ENV || 'prod'; +const env = process.env.NODE_ENV || 'prod'; const file = join(__dirname, 'data/', config.database.filename); const adapter = new JSONFile(file); @@ -41,9 +41,6 @@ import { router as eventsRouter } from './routes/eventsRouter.js'; import { router as eventRouter } from './routes/eventRouter.js'; import { router as ontimeRouter } from './routes/ontimeRouter.js'; -// Setup default port -const port = process.env.PORT || config.server.port; - // Global Objects import { EventTimer } from './classes/EventTimer.js'; @@ -68,10 +65,22 @@ app.use('/event', eventRouter); app.use('/ontime', ontimeRouter); // serve react -app.use(express.static(path.join(__dirname, env == 'prod' ? '../' : '../../', 'client/build'))); +app.use( + express.static( + path.join(__dirname, env == 'prod' ? '../' : '../../', 'client/build') + ) +); app.get('*', (req, res) => { - res.sendFile(path.resolve(__dirname, env == 'prod' ? '../' : '../../', 'client', 'build', 'index.html')); + res.sendFile( + path.resolve( + __dirname, + env == 'prod' ? '../' : '../../', + 'client', + 'build', + 'index.html' + ) + ); }); // Implement route for errors @@ -82,20 +91,31 @@ app.use((err, req, res, next) => { // create HTTP server const server = http.createServer(app); -// init timer -global.timer = new EventTimer(server, config); -global.timer.setupWithEventList(data.events); +export const startServer = (overrideConfig = null) => { + // Setup default port + const serverPort = overrideConfig?.port || config.server.port; -// Start server -server.listen(port, '0.0.0.0', () => - console.log(`HTTP Server is listening on port ${port}`) -); + // Start server + server.listen(serverPort, '0.0.0.0', () => + console.log(`HTTP Server is listening on port ${serverPort}`) + ); + + // init timer + global.timer = new EventTimer(server, config); + global.timer.setupWithEventList(data.events); +}; // Start OSC server import { initiateOSC } from './controllers/OscController.js'; -initiateOSC(config.osc); +export const startOSCServer = (overrideConfig = null) => { + // Setup default port + const oscInPort = overrideConfig?.port || config.osc.port; + initiateOSC(config.osc); +}; -export function init() { - console.log('init'); -} +export const startOSCClient = (overrideConfig = null) => { + // Setup default port + const oscOutPort = overrideConfig?.port || config.osc.portOut; + console.log('initialise OSC Client at port: ', oscOutPort); +}; diff --git a/server/src/config/config.js b/server/src/config/config.js index 64ef4ef2b..f3d0ead85 100644 --- a/server/src/config/config.js +++ b/server/src/config/config.js @@ -11,5 +11,6 @@ export const config = { }, osc: { port: 8888, + portOut: 8889, }, }; From c5db68fa26d7e74ca4047f345f8c3abb48625e11 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Fri, 4 Jun 2021 12:30:36 +0200 Subject: [PATCH 14/38] graceful shutdown - confirmation dialog - shutdown node service --- .../src/features/menu/buttons/QuitIconBtn.jsx | 73 +++++++++++++++---- server/main.js | 10 +++ server/src/app.js | 12 ++- server/src/controllers/OscController.js | 8 +- 4 files changed, 88 insertions(+), 15 deletions(-) diff --git a/client/src/features/menu/buttons/QuitIconBtn.jsx b/client/src/features/menu/buttons/QuitIconBtn.jsx index e22b9cd05..bf5c1364d 100644 --- a/client/src/features/menu/buttons/QuitIconBtn.jsx +++ b/client/src/features/menu/buttons/QuitIconBtn.jsx @@ -1,21 +1,68 @@ -import { IconButton } from '@chakra-ui/button'; +import { Button, IconButton } from '@chakra-ui/button'; +import { + AlertDialog, + AlertDialogBody, + AlertDialogContent, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogOverlay, +} from '@chakra-ui/modal'; import { Tooltip } from '@chakra-ui/tooltip'; +import { useRef, useState } from 'react'; import { FiPower } from 'react-icons/fi'; export default function QuitIconBtn(props) { const { clickhandler, ...rest } = props; + const [isOpen, setIsOpen] = useState(false); + const onClose = () => setIsOpen(false); + const cancelRef = useRef(); + + const handleShutdown = () => { + onClose(); + clickhandler(); + }; + return ( - - } - colorScheme='red' - variant='outline' - isRound - onClick={clickhandler} - _focus={{ boxShadow: 'none' }} - {...rest} - /> - + <> + + } + colorScheme='red' + variant='outline' + isRound + onClick={() => setIsOpen(true)} + _focus={{ boxShadow: 'none' }} + {...rest} + /> + + + + + + Server Shutdown + + + + This will shutdown the program and all running servers. Are you + sure? + + + + + + + + + + ); } diff --git a/server/main.js b/server/main.js index 32d7920cc..e09c3ee1d 100644 --- a/server/main.js +++ b/server/main.js @@ -195,6 +195,16 @@ ipcMain.on('test-message', (event, arg) => { // Terminate ipcMain.on('shutdown', (event, arg) => { console.log('Got IPC shutdown'); + + // terminate node service + (async () => { + const { shutdown } = await import( + path.join('file:///', __dirname, env == 'prod' ? '../' : '', 'src/app.js') + ); + // Start express server + await shutdown(); + })(); + win.destroy(); app.quit(); }); diff --git a/server/src/app.js b/server/src/app.js index 6c604b2d2..fd7c26f80 100644 --- a/server/src/app.js +++ b/server/src/app.js @@ -106,7 +106,7 @@ export const startServer = (overrideConfig = null) => { }; // Start OSC server -import { initiateOSC } from './controllers/OscController.js'; +import { initiateOSC, shutdownOSCServer } from './controllers/OscController.js'; export const startOSCServer = (overrideConfig = null) => { // Setup default port @@ -119,3 +119,13 @@ export const startOSCClient = (overrideConfig = null) => { const oscOutPort = overrideConfig?.port || config.osc.portOut; console.log('initialise OSC Client at port: ', oscOutPort); }; + +export const shutdown = () => { + console.log('Node service shutdown'); + + // shutdown express server + server.close(); + // shutdown OSC Server + shutdownOSCServer(); + // shutdown OSC Client +}; diff --git a/server/src/controllers/OscController.js b/server/src/controllers/OscController.js index 939ee829b..727bbe0a1 100644 --- a/server/src/controllers/OscController.js +++ b/server/src/controllers/OscController.js @@ -1,7 +1,13 @@ import { Server } from 'node-osc'; +let oscServer = null; + +export const shutdownOSCServer = () => { + if (oscServer != null) oscServer.close(); +}; + export const initiateOSC = (config) => { - const oscServer = new Server(config.port, '0.0.0.0', () => { + oscServer = new Server(config.port, '0.0.0.0', () => { console.log(`OSC Server is listening on port ${config.port}`); }); From 706aca57fe67eb25f03389d18244c352b613d737 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Fri, 4 Jun 2021 12:34:07 +0200 Subject: [PATCH 15/38] style: bigger icons --- client/src/features/menu/MenuBar.jsx | 34 +++++++++++++++---- .../features/menu/buttons/DownloadIconBtn.jsx | 3 -- .../src/features/menu/buttons/HelpIconBtn.jsx | 3 -- .../src/features/menu/buttons/InfoIconBtn.jsx | 3 -- .../src/features/menu/buttons/MaxIconBtn.jsx | 3 -- .../src/features/menu/buttons/MinIconBtn.jsx | 3 -- .../features/menu/buttons/SettingsIconBtn.jsx | 3 -- 7 files changed, 27 insertions(+), 25 deletions(-) diff --git a/client/src/features/menu/MenuBar.jsx b/client/src/features/menu/MenuBar.jsx index 489e10316..cc400a978 100644 --- a/client/src/features/menu/MenuBar.jsx +++ b/client/src/features/menu/MenuBar.jsx @@ -37,14 +37,34 @@ export default function MenuBar(props) { return ( <> - handleIPC('shutdown')} /> - handleIPC('max')} /> - handleIPC('min')} /> + handleIPC('shutdown')} /> + handleIPC('max')} + /> + handleIPC('min')} + />
- handleIPC('help')} /> - - - + handleIPC('help')} + /> + + + ); } diff --git a/client/src/features/menu/buttons/DownloadIconBtn.jsx b/client/src/features/menu/buttons/DownloadIconBtn.jsx index d55c41738..63c81c7e3 100644 --- a/client/src/features/menu/buttons/DownloadIconBtn.jsx +++ b/client/src/features/menu/buttons/DownloadIconBtn.jsx @@ -10,9 +10,6 @@ export default function DownloadIconBtn(props) { size={props.size || 'xs'} icon={} colorScheme='white' - variant='outline' - isRound - borderColor='#fff1' onClick={clickhandler} _focus={{ boxShadow: 'none' }} {...rest} diff --git a/client/src/features/menu/buttons/HelpIconBtn.jsx b/client/src/features/menu/buttons/HelpIconBtn.jsx index 99eb6d12a..30f31e4d7 100644 --- a/client/src/features/menu/buttons/HelpIconBtn.jsx +++ b/client/src/features/menu/buttons/HelpIconBtn.jsx @@ -10,9 +10,6 @@ export default function HelpIconBtn(props) { size={props.size || 'xs'} icon={} colorScheme='white' - variant='outline' - isRound - borderColor='#fff1' onClick={clickhandler} _focus={{ boxShadow: 'none' }} {...rest} diff --git a/client/src/features/menu/buttons/InfoIconBtn.jsx b/client/src/features/menu/buttons/InfoIconBtn.jsx index 118342c9f..ad286e912 100644 --- a/client/src/features/menu/buttons/InfoIconBtn.jsx +++ b/client/src/features/menu/buttons/InfoIconBtn.jsx @@ -10,9 +10,6 @@ export default function InfoIconBtn(props) { size={props.size || 'xs'} icon={} colorScheme='white' - variant='outline' - isRound - borderColor='#fff1' onClick={clickhandler} _focus={{ boxShadow: 'none' }} {...rest} diff --git a/client/src/features/menu/buttons/MaxIconBtn.jsx b/client/src/features/menu/buttons/MaxIconBtn.jsx index 9724b7a8a..2fc72fd90 100644 --- a/client/src/features/menu/buttons/MaxIconBtn.jsx +++ b/client/src/features/menu/buttons/MaxIconBtn.jsx @@ -10,9 +10,6 @@ export default function MaxIconBtn(props) { size={props.size || 'xs'} icon={} colorScheme='white' - variant='outline' - isRound - borderColor='#fff1' onClick={clickhandler} _focus={{ boxShadow: 'none' }} {...rest} diff --git a/client/src/features/menu/buttons/MinIconBtn.jsx b/client/src/features/menu/buttons/MinIconBtn.jsx index 2c51306d8..8beb38aa0 100644 --- a/client/src/features/menu/buttons/MinIconBtn.jsx +++ b/client/src/features/menu/buttons/MinIconBtn.jsx @@ -10,9 +10,6 @@ export default function MinIconBtn(props) { size={props.size || 'xs'} icon={} colorScheme='white' - variant='outline' - isRound - borderColor='#fff1' onClick={clickhandler} _focus={{ boxShadow: 'none' }} {...rest} diff --git a/client/src/features/menu/buttons/SettingsIconBtn.jsx b/client/src/features/menu/buttons/SettingsIconBtn.jsx index a8a3233af..8f51d9223 100644 --- a/client/src/features/menu/buttons/SettingsIconBtn.jsx +++ b/client/src/features/menu/buttons/SettingsIconBtn.jsx @@ -10,9 +10,6 @@ export default function SettingsIconBtn(props) { size={props.size || 'xs'} icon={} colorScheme='white' - variant='outline' - isRound - borderColor='#fff1' onClick={clickhandler} _focus={{ boxShadow: 'none' }} {...rest} From 86878c1d2e869bced4c909e6a0cce727c842bd05 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Sun, 6 Jun 2021 11:52:13 +0200 Subject: [PATCH 16/38] fix: node imports changed the config.json files so that the dependencies in node_modules are in the right place --- server/main.js | 150 +-- server/package.json | 19 +- server/src/app.js | 7 +- server/src/package.json | 21 + server/src/yarn.lock | 2189 +++++++++++++++++++++++++++++++++++++++ server/yarn.lock | 1017 ++++-------------- 6 files changed, 2501 insertions(+), 902 deletions(-) create mode 100644 server/src/yarn.lock diff --git a/server/main.js b/server/main.js index e09c3ee1d..80ea4dba1 100644 --- a/server/main.js +++ b/server/main.js @@ -14,16 +14,27 @@ const { Notification } = require('electron'); const env = process.env.NODE_ENV || 'prod'; +let loaded = 'Nothing loaded'; + +const nodePath = + env != 'prod' + ? path.join('file://', __dirname, 'src/app.js') + : path.join('file://', __dirname, '../', 'extraResources', 'src/app.js'); + (async () => { - const { startServer, startOSCServer, startOSCClient } = await import( - path.join('file:///', __dirname, env == 'prod' ? '../' : '', 'src/app.js') - ); - // Start express server - startServer(); - // Start OSC Server (API) - startOSCServer(); - // Start OSC Client (Feedback) - startOSCClient(); + try { + const { startServer, startOSCServer, startOSCClient } = await import( + nodePath + ); + // Start express server + loaded = startServer(); + // Start OSC Server (API) + startOSCServer(); + // Start OSC Client (Feedback) + startOSCClient(); + } catch (error) { + loaded = error; + } })(); // Load Icons @@ -52,7 +63,6 @@ function showNotification(text) { let win; let splash; let tray = null; -let loaded = false; function createWindow() { // create a new `splash`-Window @@ -97,17 +107,12 @@ function createWindow() { win.loadURL(reactApp).then(() => { win.webContents.setBackgroundThrottling(false); }); - - // Show dev tools - win.webContents.openDevTools({ mode: 'detach' }); } -app - .whenReady() - .then(() => { - createWindow(); +app.whenReady().then(() => { + createWindow(); - /* ====================================== + /* ====================================== * CONTEXT MENU CREATION ON REACT SIDE // Create context menu // const contextMenu = new Menu(); @@ -124,62 +129,67 @@ app * ====================================== */ - // register global shortcuts - // (available regardless of wheter app is in focus) - // bring focus to window - globalShortcut.register('Alt+1', () => { + // register global shortcuts + // (available regardless of wheter app is in focus) + // bring focus to window + globalShortcut.register('Alt+1', () => { + win.show(); + }); + + globalShortcut.register('Alt+t', () => { + // Show dev tools + win.webContents.openDevTools({ mode: 'detach' }); + }); + + // recreate window if no others open + app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow(); + } + }); + + win.once('ready-to-show', () => { + setTimeout(() => { win.show(); - }); + splash.destroy(); + showNotification(loaded.toString()); + }, 2000); + }); - // recreate window if no others open - app.on('activate', () => { - if (BrowserWindow.getAllWindows().length === 0) { - createWindow(); - } - }); + // Hide on close + win.on('close', function (event) { + event.preventDefault(); + showNotification('App running in background'); + win.hide(); + return false; + }); - win.once('ready-to-show', () => { - setTimeout(() => { - win.show(); - splash.destroy(); - }, 2000); - }); + // create tray + // TODO: Design better icon + tray = new Tray(trayIcon); - // Hide on close - win.on('close', function (event) { - event.preventDefault(); - showNotification('App running in background'); - win.hide(); - return false; - }); - - // create tray - // TODO: Design better icon - tray = new Tray(trayIcon); - - // TODO: Move to separate file - // Define context menu - const trayMenuTemplate = [ - { - label: 'Show App', - click: () => win.show(), + // TODO: Move to separate file + // Define context menu + const trayMenuTemplate = [ + { + label: 'Show App', + click: () => win.show(), + }, + { + label: 'Close', + click: () => { + win.destroy(); + app.quit(); }, - { - label: 'Close', - click: () => { - win.destroy(); - app.quit(); - }, - }, - ]; + }, + ]; - const trayContextMenu = Menu.buildFromTemplate(trayMenuTemplate); + const trayContextMenu = Menu.buildFromTemplate(trayMenuTemplate); - tray.setContextMenu(trayContextMenu); - // TODO: get IP Address - tray.setToolTip('ontime running on http://localhost:4001/'); - }) - .then(() => showNotification(loaded)); + tray.setContextMenu(trayContextMenu); + // TODO: get IP Address + tray.setToolTip('ontime running on http://localhost:4001/'); +}); // unregister shortcuts before quitting app.once('will-quit', () => { @@ -198,10 +208,8 @@ ipcMain.on('shutdown', (event, arg) => { // terminate node service (async () => { - const { shutdown } = await import( - path.join('file:///', __dirname, env == 'prod' ? '../' : '', 'src/app.js') - ); - // Start express server + const { shutdown } = await import(nodePath); + // Shutdown service await shutdown(); })(); diff --git a/server/package.json b/server/package.json index 6df5fd0cb..30441c51f 100644 --- a/server/package.json +++ b/server/package.json @@ -4,18 +4,6 @@ "author": "Carlos Valente", "description": "Time keeping for live events", "main": "main.js", - "dependencies": { - "body-parser": "~1.19.0", - "express": "~4.17.1", - "express-session": "~1.17.1", - "lowdb": "2.1.0", - "multer": "^1.4.2", - "nanoid": "^3.1.22", - "node-osc": "6.0.2", - "passport": "~0.4.1", - "passport-local": "~1.0.0", - "socket.io": "^4.0.0" - }, "devDependencies": { "concurrently": "^6.1.0", "electron": "^12.0.7", @@ -28,6 +16,7 @@ "eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-simple-import-sort": "^7.0.0" }, + "scripts": { "nodestart": "NODE_ENV=development node app.js", "start": "NODE_ENV=development electron .", @@ -44,17 +33,17 @@ "files": [ "**/*" ], - "extraFiles": [ + "extraResources": [ { "from": "../client/build", - "to": "resources/client/build", + "to": "extraResources/client/build", "filter": [ "**/*" ] }, { "from": "src", - "to": "resources/src", + "to": "extraResources/src", "filter": [ "**/*" ] diff --git a/server/src/app.js b/server/src/app.js index fd7c26f80..d415bef0a 100644 --- a/server/src/app.js +++ b/server/src/app.js @@ -96,13 +96,14 @@ export const startServer = (overrideConfig = null) => { const serverPort = overrideConfig?.port || config.server.port; // Start server - server.listen(serverPort, '0.0.0.0', () => - console.log(`HTTP Server is listening on port ${serverPort}`) - ); + const returnMessage = `HTTP Server is listening on port ${serverPort}`; + server.listen(serverPort, '0.0.0.0', () => console.log(returnMessage)); // init timer global.timer = new EventTimer(server, config); global.timer.setupWithEventList(data.events); + + return returnMessage; }; // Start OSC server diff --git a/server/src/package.json b/server/src/package.json index 345ca8caf..751607205 100644 --- a/server/src/package.json +++ b/server/src/package.json @@ -1,5 +1,26 @@ { "type": "module", + "dependencies": { + "body-parser": "~1.19.0", + "express": "~4.17.1", + "express-session": "~1.17.1", + "lowdb": "2.1.0", + "multer": "^1.4.2", + "nanoid": "^3.1.22", + "node-osc": "6.0.2", + "passport": "~0.4.1", + "passport-local": "~1.0.0", + "socket.io": "^4.0.0" + }, + "devDependencies": { + "eslint": "^7.26.0", + "eslint-config-airbnb": "^18.2.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.23.2", + "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-simple-import-sort": "^7.0.0" + }, "scripts": { "nodestart": "nodemon app.js", "start": "node app.js" diff --git a/server/src/yarn.lock b/server/src/yarn.lock new file mode 100644 index 000000000..6e99c41af --- /dev/null +++ b/server/src/yarn.lock @@ -0,0 +1,2189 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + +"@babel/highlight@^7.10.4": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime-corejs3@^7.10.2": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz#6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66" + integrity sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== + dependencies: + regenerator-runtime "^0.13.4" + +"@eslint/eslintrc@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" + integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@types/component-emitter@^1.2.10": + version "1.2.10" + resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" + integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== + +"@types/cookie@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" + integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== + +"@types/cors@^2.8.8": + version "2.8.10" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" + integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/node@>=10.0.0": + version "15.12.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.1.tgz#9b60797dee1895383a725f828a869c86c6caa5c2" + integrity sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw== + +accepts@~1.3.4, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b" + integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + +array.prototype.flat@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +array.prototype.flatmap@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + function-bind "^1.1.1" + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +axe-core@^4.0.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.2.tgz#0c987d82c8b82b4b9b7a945f1b5ef0d8fed586ed" + integrity sha512-OKRkKM4ojMEZRJ5UNJHmq9tht7cEnRnqKG6KyB/trYws00Xtkv12mHtlJ0SK7cmuNbrU8dPUova3ELTuilfBbw== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= + +base64id@2.0.0, base64id@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +binpack@~0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/binpack/-/binpack-0.1.0.tgz#bd3d0974c3f2a0446e17df4f60b55a72a205a97e" + integrity sha1-vT0JdMPyoERuF99PYLVacqIFqX4= + +body-parser@1.19.0, body-parser@~1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +component-emitter@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +confusing-browser-globals@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" + integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookie@0.4.1, cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +core-js-pure@^3.0.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.14.0.tgz#72bcfacba74a65ffce04bf94ae91d966e80ee553" + integrity sha512-YVh+LN2FgNU0odThzm61BsdkwrbrchumFq3oztnE9vTKC4KS2fvnPmcx8t6jnqAyOTCTF4ZSiuK8Qhh7SNcL4g== + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +damerau-levenshtein@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d" + integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== + +debug@2.6.9, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.1, debug@~4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +engine.io-parser@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" + integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== + dependencies: + base64-arraybuffer "0.1.4" + +engine.io@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-5.1.1.tgz#a1f97e51ddf10cbd4db8b5ff4b165aad3760cdd3" + integrity sha512-aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w== + dependencies: + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~4.0.0" + ws "~7.4.2" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.10.3" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-airbnb-base@^14.2.1: + version "14.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" + integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== + dependencies: + confusing-browser-globals "^1.0.10" + object.assign "^4.1.2" + object.entries "^1.1.2" + +eslint-config-airbnb@^18.2.1: + version "18.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9" + integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== + dependencies: + eslint-config-airbnb-base "^14.2.1" + object.assign "^4.1.2" + object.entries "^1.1.2" + +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" + integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== + dependencies: + debug "^3.2.7" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.22.1: + version "2.23.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" + integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== + dependencies: + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.1" + find-up "^2.0.0" + has "^1.0.3" + is-core-module "^2.4.0" + minimatch "^3.0.4" + object.values "^1.1.3" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-jsx-a11y@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@^7.23.2: + version "7.24.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz#eadedfa351a6f36b490aa17f4fa9b14e842b9eb4" + integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q== + dependencies: + array-includes "^3.1.3" + array.prototype.flatmap "^1.2.4" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.0.4" + object.entries "^1.1.4" + object.fromentries "^2.0.4" + object.values "^1.1.4" + prop-types "^15.7.2" + resolve "^2.0.0-next.3" + string.prototype.matchall "^4.0.5" + +eslint-plugin-simple-import-sort@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" + integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@^7.26.0: + version "7.28.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820" + integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +express-session@~1.17.1: + version "1.17.2" + resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.2.tgz#397020374f9bf7997f891b85ea338767b30d0efd" + integrity sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ== + dependencies: + cookie "0.4.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~2.0.0" + on-headers "~1.0.2" + parseurl "~1.3.3" + safe-buffer "5.2.1" + uid-safe "~2.1.5" + +express@~4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.6.0, globals@^13.9.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" + integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== + dependencies: + type-fest "^0.20.2" + +graceful-fs@^4.1.2: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + +is-boolean-object@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + dependencies: + call-bind "^1.0.2" + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-core-module@^2.2.0, is-core-module@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + +is-regex@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lowdb@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-2.1.0.tgz#c8063e228b5ab3e082ece90e0512537ecb6e1e2a" + integrity sha512-F4Go8/V37gAidTR3c5poyjprOpZSDNSLJVOmI0ny4D4q9rC37OkBhlzX0bqj7LZlT3UIj4FchmZrrSw7qY+eGQ== + dependencies: + steno "^1.0.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +mime-db@1.48.0: + version "1.48.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== + +mime-types@~2.1.24: + version "2.1.31" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== + dependencies: + mime-db "1.48.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multer@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" + integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== + dependencies: + append-field "^1.0.0" + busboy "^0.2.11" + concat-stream "^1.5.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" + +nanoid@^3.1.22: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +node-osc@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/node-osc/-/node-osc-6.0.2.tgz#185d387928b186a84e8d0eebcae9e54a8bf50729" + integrity sha512-RW8PRLMh4H14veC5gZVUTcRkrk5pXd+b4vmitWL55c9ZI+5yEvMXkrokfnRH0u7DYveqw4h+uCPIUDifY/vjfA== + dependencies: + osc-min "^1.1.1" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +object-assign@^4, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.10.3, object-inspect@^1.9.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.2, object.entries@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +object.fromentries@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +object.values@^1.1.3, object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +osc-min@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/osc-min/-/osc-min-1.1.2.tgz#3dcaff10f804c39b7080cf4c10fd7a4103cd9037" + integrity sha512-8DbiO8ME85R75stgNVCZtHxB9MNBBNcyy+isNBXrsFeinXGjwNAauvKVmGlfRas5VJWC/mhzIx7spR2gFvWxvg== + dependencies: + binpack "~0" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +passport-local@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" + integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4= + dependencies: + passport-strategy "1.x.x" + +passport-strategy@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= + +passport@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270" + integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs= + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.2.1: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +socket.io-adapter@~2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz#a442720cb09a4823cfb81287dda1f9b52d4ccdb2" + integrity sha512-8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw== + +socket.io-parser@~4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" + integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== + dependencies: + "@types/component-emitter" "^1.2.10" + component-emitter "~1.3.0" + debug "~4.3.1" + +socket.io@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.1.2.tgz#f90f9002a8d550efe2aa1d320deebb9a45b83233" + integrity sha512-xK0SD1C7hFrh9+bYoYCdVt+ncixkSLKtNLCax5aEy1o3r5PaO5yQhVb97exIe67cE7lAK+EpyMytXWTWmyZY8w== + dependencies: + "@types/cookie" "^0.4.0" + "@types/cors" "^2.8.8" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "~2.0.0" + debug "~4.3.1" + engine.io "~5.1.0" + socket.io-adapter "~2.3.0" + socket.io-parser "~4.0.3" + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +steno@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/steno/-/steno-1.0.0.tgz#475e32c6066ec9760229eaaf1550601764fbecba" + integrity sha512-C/KgCvEa1yWnpHmaPjAXrz1yWxh6hs+HvhqqPa71euaQmNi1wr4+WFo57VQxjKKuFl2KqS7gtlrN0oxj2noQLw== + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.2" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uid-safe@~2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" + integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== + dependencies: + random-bytes "~1.0.0" + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@~7.4.2: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== diff --git a/server/yarn.lock b/server/yarn.lock index 2fa76207a..b24e9f961 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -85,15 +85,15 @@ dir-compare "^2.4.0" fs-extra "^9.0.1" -"@eslint/eslintrc@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" - integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== +"@eslint/eslintrc@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" + integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== dependencies: ajv "^6.12.4" debug "^4.1.1" espree "^7.3.0" - globals "^12.1.0" + globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" @@ -129,21 +129,6 @@ dependencies: defer-to-connect "^1.0.1" -"@types/component-emitter@^1.2.10": - version "1.2.10" - resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" - integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== - -"@types/cookie@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.0.tgz#14f854c0f93d326e39da6e3b6f34f7d37513d108" - integrity sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== - -"@types/cors@^2.8.8": - version "2.8.10" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" - integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== - "@types/debug@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" @@ -175,19 +160,14 @@ integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== "@types/node@*": - version "15.0.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.3.tgz#ee09fcaac513576474c327da5818d421b98db88a" - integrity sha512-/WbxFeBU+0F79z9RdEOXH4CsDga+ibi5M8uEYr91u3CkT/pdWcV8MCook+4wDPnZBexRdwWS+PiVZ2xJviAzcQ== - -"@types/node@>=10.0.0": - version "14.14.37" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" - integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== + version "15.12.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.1.tgz#9b60797dee1895383a725f828a869c86c6caa5c2" + integrity sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw== "@types/node@^14.6.2": - version "14.14.45" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.45.tgz#ec2dfb5566ff814d061aef7e141575aedba245cf" - integrity sha512-DssMqTV9UnnoxDWu959sDLZzfvqCF0qDNRjaWeYSui9xkFe61kKo4l1TWNTQONpuXEm+gLMRvdlzvNHBamzmEw== + version "14.17.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.2.tgz#1e94476db57ec93a372c7f7d29aa5707cfb92339" + integrity sha512-sld7b/xmFum66AAKuz/rp/CUO8+98fMpyQ3SBfzzBNGMd/1iHBTAg9oyAvcYlAj46bpc74r91jSw2iFdnx29nw== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -213,20 +193,12 @@ integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== "@types/yargs@^16.0.1": - version "16.0.1" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.1.tgz#5fc5d41f69762e00fbecbc8d4bf9dea47d8726f4" - integrity sha512-x4HABGLyzr5hKUzBC9dvjciOTm11WVH1NWonNjGgxapnTHu5SWUqyqn0zQ6Re0yQU0lsQ6ztLCoMAKDGZflyxA== + version "16.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz#4b6d35bb8e680510a7dc2308518a80ee1ef27e01" + integrity sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ== dependencies: "@types/yargs-parser" "*" -accepts@~1.3.4, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" @@ -253,9 +225,9 @@ ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.0.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.3.0.tgz#25ee7348e32cdc4a1dbb38256bf6bdc451dd577c" - integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q== + version "8.5.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b" + integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -337,11 +309,6 @@ app-builder-lib@22.11.5: semver "^7.3.5" temp-file "^3.4.0" -append-field@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" - integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -362,11 +329,6 @@ aria-query@^4.2.2: "@babel/runtime" "^7.10.2" "@babel/runtime-corejs3" "^7.10.2" -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" @@ -378,7 +340,7 @@ array-includes@^3.1.1, array-includes@^3.1.2, array-includes@^3.1.3: get-intrinsic "^1.1.1" is-string "^1.0.5" -array.prototype.flat@^1.2.3: +array.prototype.flat@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== @@ -440,9 +402,9 @@ at-least-node@^1.0.0: integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== axe-core@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.0.tgz#6594db4ee62f78be79e32a7295d21b099b60668d" - integrity sha512-1uIESzroqpaTzt9uX48HO+6gfnKu3RwvWdCcWSrX4csMInJfCo1yvKPNXCwXFRpJqRW25tiASb6No0YH57PXqg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.2.tgz#0c987d82c8b82b4b9b7a945f1b5ef0d8fed586ed" + integrity sha512-OKRkKM4ojMEZRJ5UNJHmq9tht7cEnRnqKG6KyB/trYws00Xtkv12mHtlJ0SK7cmuNbrU8dPUova3ELTuilfBbw== axobject-query@^2.2.0: version "2.2.0" @@ -454,26 +416,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-arraybuffer@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" - integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= - base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64id@2.0.0, base64id@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -binpack@~0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/binpack/-/binpack-0.1.0.tgz#bd3d0974c3f2a0446e17df4f60b55a72a205a97e" - integrity sha1-vT0JdMPyoERuF99PYLVacqIFqX4= - bluebird-lst@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" @@ -486,26 +433,10 @@ bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.19.0, body-parser@~1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - boolean@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.4.tgz#aa1df8749af41d7211b66b4eee584722ff428c27" - integrity sha512-5pyOr+w2LNN72F2mAq6J0ckHUfJYSgRKma7e/wlcMMhgOLV9OI0ERhERYXxUqo+dPyVxcbXKy9n+wg13+LpNnA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.0.tgz#a245080649ebb80e7c0ea218a480e4e913136336" + integrity sha512-K6r5tvO1ykeYerI7jIyTvSFw2l6D6DzqkljGj2E2uyYAAdDo2SV4qGJIV75cHIQpTFyb6BB0BEHiDdDrFsNI+g== boxen@^5.0.0: version "5.0.1" @@ -580,19 +511,6 @@ builder-util@22.11.5: stat-mode "^1.0.0" temp-file "^3.4.0" -busboy@^0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" - integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= - dependencies: - dicer "0.2.5" - readable-stream "1.1.x" - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -652,9 +570,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a" - integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ== + version "3.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== cli-boxes@^2.2.1: version "2.2.1" @@ -726,17 +644,12 @@ commander@^5.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -component-emitter@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.2, concat-stream@^1.6.2: +concat-stream@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -747,9 +660,9 @@ concat-stream@^1.5.2, concat-stream@^1.6.2: typedarray "^0.0.6" concurrently@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.1.0.tgz#00d22525d3fcdce7f34cc7f3c9753f90a57d6208" - integrity sha512-jy+xj49pvqeKjc2TAVXRIhrgPG51eBKDZti0kZ41kaWk9iLbyWBjH6KMFpW7peOLkEymD+ZM83Lx6UEy3N/M9g== + version "6.2.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.2.0.tgz#587e2cb8afca7234172d8ea55176088632c4c56d" + integrity sha512-v9I4Y3wFoXCSY2L73yYgwA9ESrQMpRn80jMcqMgHx720Hecz2GZAvTI6bREVST6lkddNypDKRN22qhK0X8Y00g== dependencies: chalk "^4.1.0" date-fns "^2.16.1" @@ -762,9 +675,9 @@ concurrently@^6.1.0: yargs "^16.2.0" config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -786,61 +699,21 @@ confusing-browser-globals@^1.0.10: resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - core-js-pure@^3.0.0: - version "3.12.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.12.1.tgz#934da8b9b7221e2a2443dc71dfa5bd77a7ea00b8" - integrity sha512-1cch+qads4JnDSWsvc7d6nzlKAippwjUlf6vykkTLW53VSV+NkE6muGBToAjEA8pG90cSfcud3JgVmW2ds5TaQ== + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.14.0.tgz#72bcfacba74a65ffce04bf94ae91d966e80ee553" + integrity sha512-YVh+LN2FgNU0odThzm61BsdkwrbrchumFq3oztnE9vTKC4KS2fvnPmcx8t6jnqAyOTCTF4ZSiuK8Qhh7SNcL4g== core-js@^3.6.5: - version "3.12.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.12.1.tgz#6b5af4ff55616c08a44d386f1f510917ff204112" - integrity sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw== + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c" + integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@~2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - crc@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" @@ -868,18 +741,25 @@ damerau-levenshtein@^1.0.6: integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw== date-fns@^2.16.1: - version "2.21.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.21.3.tgz#8f5f6889d7a96bbcc1f0ea50239b397a83357f9b" - integrity sha512-HeYdzCaFflc1i4tGbj7JKMjM4cKGYoyxwcIIkHzNgCkX8xXDNJDZXgDDVchIWpN4eQc3lH37WarduXFZJOtxfw== + version "2.22.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.22.1.tgz#1e5af959831ebb1d82992bf67b765052d8f0efc4" + integrity sha512-yUFPQjrxEmIsMqlHhAhmxkuH769baF21Kk+nZwZGyrMoyLA+LugaQtC0+Tqf9CBUUULWwUJt6Q5ySI3LJDDCGg== -debug@2.6.9, debug@^2.6.9: +debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -922,33 +802,10 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -depd@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - detect-node@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.5.tgz#9d270aa7eaa5af0b72c4c9d9b814e7f4ce738b79" - integrity sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw== - -dicer@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" - integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== dir-compare@^2.4.0: version "2.4.0" @@ -989,14 +846,6 @@ dmg-license@^1.0.9: smart-buffer "^4.0.2" verror "^1.10.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -1033,11 +882,6 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - ejs@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" @@ -1045,7 +889,7 @@ ejs@^3.1.6: dependencies: jake "^10.6.1" -electron-builder@22.11.5: +electron-builder@^22.11.3: version "22.11.5" resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.5.tgz#914d8183e1bab7cda43ef1d67fc3d17314c7e242" integrity sha512-QIhzrmSLNteItRvmAjwNpsya08oZeOJIrxFww/Alkjcwnrn5Xgog2qf3Xfa3ocuNUQIwb+mMzZrzqnPu0Mamyg== @@ -1077,9 +921,9 @@ electron-publish@22.11.5: mime "^2.5.2" electron@^12.0.7: - version "12.0.7" - resolved "https://registry.yarnpkg.com/electron/-/electron-12.0.7.tgz#e0fca2c8be34cb7da48c4d15cfb1d2ad666d2718" - integrity sha512-722TZNKDuLpEmj96AzTYFKHaJEH98xgOBH0aldStaPXI1xDFfb9SJQQuirvwFlkwG5OqQdz6Ne3OwwJ7Dbs5nQ== + version "12.0.10" + resolved "https://registry.yarnpkg.com/electron/-/electron-12.0.10.tgz#d0879ff005a200d5b08dbfb3e5bbea744d38c71a" + integrity sha512-qaNvFG4AgeuT3PkSljQ9MlY7hz87wIwJ5cmSZ1453IVsUd0BV7pcaLViSpR1bRSqxetDDWxCLtCp0N9RXeDZww== dependencies: "@electron/get" "^1.0.1" "@types/node" "^14.6.2" @@ -1100,7 +944,7 @@ emoji-regex@^9.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -encodeurl@^1.0.2, encodeurl@~1.0.2: +encodeurl@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= @@ -1112,26 +956,6 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-parser@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" - integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== - dependencies: - base64-arraybuffer "0.1.4" - -engine.io@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-5.0.0.tgz#470dc94a8a4907fa4d2cd1fa6611426afcee61bf" - integrity sha512-BATIdDV3H1SrE9/u2BAotvsmjJg0t1P4+vGedImSs1lkFAtQdvk4Ev1y4LDiPF7BPWgXWEG+NDY+nLvW3UrMWw== - dependencies: - accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.4.1" - cors "~2.8.5" - debug "~4.3.1" - engine.io-parser "~4.0.0" - ws "~7.4.2" - enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -1144,17 +968,17 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -1164,14 +988,14 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: has-symbols "^1.0.2" is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.10.3" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" + unbox-primitive "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -1197,11 +1021,6 @@ escape-goat@^2.0.0: resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1238,31 +1057,33 @@ eslint-import-resolver-node@^0.3.4: debug "^2.6.9" resolve "^1.13.1" -eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== +eslint-module-utils@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" + integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== dependencies: - debug "^2.6.9" + debug "^3.2.7" pkg-dir "^2.0.0" eslint-plugin-import@^2.22.1: - version "2.22.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" - integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + version "2.23.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" + integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" debug "^2.6.9" - doctrine "1.5.0" + doctrine "^2.1.0" eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.0" + eslint-module-utils "^2.6.1" + find-up "^2.0.0" has "^1.0.3" + is-core-module "^2.4.0" minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" + object.values "^1.1.3" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" tsconfig-paths "^3.9.0" eslint-plugin-jsx-a11y@^6.4.1: @@ -1288,9 +1109,9 @@ eslint-plugin-react-hooks@^4.2.0: integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== eslint-plugin-react@^7.23.2: - version "7.23.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494" - integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw== + version "7.24.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz#eadedfa351a6f36b490aa17f4fa9b14e842b9eb4" + integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q== dependencies: array-includes "^3.1.3" array.prototype.flatmap "^1.2.4" @@ -1298,12 +1119,12 @@ eslint-plugin-react@^7.23.2: has "^1.0.3" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.0.4" - object.entries "^1.1.3" + object.entries "^1.1.4" object.fromentries "^2.0.4" - object.values "^1.1.3" + object.values "^1.1.4" prop-types "^15.7.2" resolve "^2.0.0-next.3" - string.prototype.matchall "^4.0.4" + string.prototype.matchall "^4.0.5" eslint-plugin-simple-import-sort@^7.0.0: version "7.0.0" @@ -1336,27 +1157,29 @@ eslint-visitor-keys@^2.0.0: integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@^7.26.0: - version "7.26.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6" - integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg== + version "7.28.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820" + integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.1" + "@eslint/eslintrc" "^0.4.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" + escape-string-regexp "^4.0.0" eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^2.0.0" espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" + fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" + glob-parent "^5.1.2" globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" @@ -1365,7 +1188,7 @@ eslint@^7.26.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.21" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -1374,15 +1197,10 @@ eslint@^7.26.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.4" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== - espree@^7.3.0, espree@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" @@ -1426,61 +1244,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -express-session@~1.17.1: - version "1.17.1" - resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.1.tgz#36ecbc7034566d38c8509885c044d461c11bf357" - integrity sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q== - dependencies: - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~2.0.0" - on-headers "~1.0.2" - parseurl "~1.3.3" - safe-buffer "5.2.0" - uid-safe "~2.1.5" - -express@~4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - extract-zip@^1.0.3: version "1.7.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" @@ -1496,7 +1259,7 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -1532,19 +1295,6 @@ filelist@^1.0.1: dependencies: minimatch "^3.0.4" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -1565,16 +1315,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -1646,7 +1386,7 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -glob-parent@^5.0.0: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -1695,17 +1435,10 @@ global-tunnel-ng@^2.7.1: npm-conf "^1.1.3" tunnel "^0.0.6" -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.6.0: - version "13.8.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" - integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== +globals@^13.6.0, globals@^13.9.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" + integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== dependencies: type-fest "^0.20.2" @@ -1792,28 +1525,6 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - iconv-corefoundation@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz#27c135470237f6f8d13462fa1f5eaf250523c29a" @@ -1822,17 +1533,10 @@ iconv-corefoundation@^1.1.6: cli-truncate "^1.1.0" node-addon-api "^1.6.3" -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -1872,16 +1576,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -1901,11 +1600,6 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -1942,7 +1636,7 @@ is-ci@^3.0.0: dependencies: ci-info "^3.1.1" -is-core-module@^2.2.0: +is-core-module@^2.2.0, is-core-module@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== @@ -2009,7 +1703,7 @@ is-path-inside@^3.0.2: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-regex@^1.1.2: +is-regex@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== @@ -2017,7 +1711,7 @@ is-regex@^1.1.2: call-bind "^1.0.2" has-symbols "^1.0.2" -is-string@^1.0.5: +is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== @@ -2039,12 +1733,7 @@ is-yarn-global@^0.3.0: resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@^1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -2094,6 +1783,11 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -2183,12 +1877,7 @@ latest-version@^5.1.0: dependencies: package-json "^6.3.0" -lazy-val@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" - integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== - -lazy-val@^1.0.5: +lazy-val@^1.0.4, lazy-val@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== @@ -2206,14 +1895,14 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" + parse-json "^4.0.0" + pify "^3.0.0" strip-bom "^3.0.0" locate-path@^2.0.0: @@ -2229,6 +1918,11 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -2246,13 +1940,6 @@ loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lowdb@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-2.1.0.tgz#c8063e228b5ab3e082ece90e0512537ecb6e1e2a" - integrity sha512-F4Go8/V37gAidTR3c5poyjprOpZSDNSLJVOmI0ny4D4q9rC37OkBhlzX0bqj7LZlT3UIj4FchmZrrSw7qY+eGQ== - dependencies: - steno "^1.0.0" - lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -2284,38 +1971,6 @@ matcher@^3.0.0: dependencies: escape-string-regexp "^4.0.0" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== - -mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - mime@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" @@ -2338,7 +1993,7 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mkdirp@^0.5.1, mkdirp@^0.5.4: +mkdirp@^0.5.4: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -2350,57 +2005,26 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multer@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" - integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== - dependencies: - append-field "^1.0.0" - busboy "^0.2.11" - concat-stream "^1.5.2" - mkdirp "^0.5.1" - object-assign "^4.1.1" - on-finished "^2.3.0" - type-is "^1.6.4" - xtend "^4.0.0" - -nanoid@^3.1.22: - version "3.1.22" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" - integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - node-addon-api@^1.6.3: version "1.7.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== -node-osc@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/node-osc/-/node-osc-6.0.2.tgz#185d387928b186a84e8d0eebcae9e54a8bf50729" - integrity sha512-RW8PRLMh4H14veC5gZVUTcRkrk5pXd+b4vmitWL55c9ZI+5yEvMXkrokfnRH0u7DYveqw4h+uCPIUDifY/vjfA== - dependencies: - osc-min "^1.1.1" - normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -2412,9 +2036,9 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: validate-npm-package-license "^3.0.1" normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== npm-conf@^1.1.3: version "1.1.3" @@ -2424,12 +2048,12 @@ npm-conf@^1.1.3: config-chain "^1.1.11" pify "^3.0.0" -object-assign@^4, object-assign@^4.1.1: +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.9.0: +object-inspect@^1.10.3, object-inspect@^1.9.0: version "1.10.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== @@ -2449,15 +2073,14 @@ object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.2, object.entries@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" - integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== +object.entries@^1.1.2, object.entries@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" + es-abstract "^1.18.2" object.fromentries@^2.0.4: version "2.0.4" @@ -2469,27 +2092,14 @@ object.fromentries@^2.0.4: es-abstract "^1.18.0-next.2" has "^1.0.3" -object.values@^1.1.1, object.values@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== +object.values@^1.1.3, object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" - -on-finished@^2.3.0, on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + es-abstract "^1.18.2" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -2510,13 +2120,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -osc-min@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/osc-min/-/osc-min-1.1.2.tgz#3dcaff10f804c39b7080cf4c10fd7a4103cd9037" - integrity sha512-8DbiO8ME85R75stgNVCZtHxB9MNBBNcyy+isNBXrsFeinXGjwNAauvKVmGlfRas5VJWC/mhzIx7spR2gFvWxvg== - dependencies: - binpack "~0" - p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -2558,12 +2161,13 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: - error-ex "^1.2.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" parse-json@^5.0.0: version "5.2.0" @@ -2575,31 +2179,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -passport-local@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" - integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4= - dependencies: - passport-strategy "1.x.x" - -passport-strategy@1.x.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" - integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= - -passport@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270" - integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg== - dependencies: - passport-strategy "1.x.x" - pause "0.0.1" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -2616,37 +2195,22 @@ path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: - pify "^2.0.0" - -pause@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" - integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= + pify "^3.0.0" pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -2659,6 +2223,13 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + plist@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz#74bbf011124b90421c22d15779cee60060ba95bc" @@ -2702,14 +2273,6 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -2730,31 +2293,6 @@ pupa@^2.1.1: dependencies: escape-goat "^2.0.0" -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -random-bytes@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" - integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs= - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -2781,22 +2319,22 @@ read-config-file@6.2.0: json5 "^2.2.0" lazy-val "^1.0.4" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" - read-pkg "^2.0.0" + read-pkg "^3.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: - load-json-file "^2.0.0" + load-json-file "^4.0.0" normalize-package-data "^2.3.2" - path-type "^2.0.0" + path-type "^3.0.0" read-pkg@^5.2.0: version "5.2.0" @@ -2808,16 +2346,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -2878,7 +2406,7 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0: +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -2927,17 +2455,12 @@ rxjs@^6.6.3: dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -2983,25 +2506,6 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - serialize-error@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" @@ -3009,21 +2513,6 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -3071,35 +2560,6 @@ smart-buffer@^4.0.2: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== -socket.io-adapter@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.2.0.tgz#43af9157c4609e74b8addc6867873ac7eb48fda2" - integrity sha512-rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg== - -socket.io-parser@~4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" - integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== - dependencies: - "@types/component-emitter" "^1.2.10" - component-emitter "~1.3.0" - debug "~4.3.1" - -socket.io@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.0.1.tgz#d2e01cf3780d810b66182b3fbef08a04a4ccf924" - integrity sha512-g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ== - dependencies: - "@types/cookie" "^0.4.0" - "@types/cors" "^2.8.8" - "@types/node" ">=10.0.0" - accepts "~1.3.4" - base64id "~2.0.0" - debug "~4.3.1" - engine.io "~5.0.0" - socket.io-adapter "~2.2.0" - socket.io-parser "~4.0.3" - source-map-support@^0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -3140,9 +2600,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + version "3.0.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== sprintf-js@^1.1.2: version "1.1.2" @@ -3159,21 +2619,6 @@ stat-mode@^1.0.0: resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -steno@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/steno/-/steno-1.0.0.tgz#475e32c6066ec9760229eaaf1550601764fbecba" - integrity sha512-C/KgCvEa1yWnpHmaPjAXrz1yWxh6hs+HvhqqPa71euaQmNi1wr4+WFo57VQxjKKuFl2KqS7gtlrN0oxj2noQLw== - -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - string-width@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -3200,15 +2645,16 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.matchall@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" - integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== +string.prototype.matchall@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has-symbols "^1.0.1" + es-abstract "^1.18.2" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" internal-slot "^1.0.3" regexp.prototype.flags "^1.3.1" side-channel "^1.0.4" @@ -3229,11 +2675,6 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -3305,10 +2746,10 @@ supports-color@^8.1.0: dependencies: has-flag "^4.0.0" -table@^6.0.4: - version "6.7.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2" - integrity sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw== +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== dependencies: ajv "^8.0.1" lodash.clonedeep "^4.5.0" @@ -3349,11 +2790,6 @@ to-readable-stream@^1.0.0: resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - tree-kill@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" @@ -3408,19 +2844,6 @@ type-fest@^0.6.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -3433,14 +2856,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -uid-safe@~2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" - integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== - dependencies: - random-bytes "~1.0.0" - -unbox-primitive@^1.0.0: +unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== @@ -3467,11 +2883,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - update-notifier@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" @@ -3516,11 +2927,6 @@ util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -3534,11 +2940,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - verror@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -3602,11 +3003,6 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@~7.4.2: - version "7.4.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" - integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -3627,11 +3023,6 @@ xmldom@^0.5.0: resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" From a2221478838566dff8cacc864666d8f804da2290 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Sun, 6 Jun 2021 12:01:33 +0200 Subject: [PATCH 17/38] fix: db path --- server/src/app.js | 3 +-- server/src/controllers/ontimeController.js | 12 ++++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/server/src/app.js b/server/src/app.js index d415bef0a..944903f2d 100644 --- a/server/src/app.js +++ b/server/src/app.js @@ -4,7 +4,6 @@ import { config } from './config/config.js'; // init database import { Low, JSONFile } from 'lowdb'; -import { join } from 'path'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); @@ -12,7 +11,7 @@ const __dirname = path.dirname(__filename); const env = process.env.NODE_ENV || 'prod'; -const file = join(__dirname, 'data/', config.database.filename); +const file = path.join(__dirname, 'data/', config.database.filename); const adapter = new JSONFile(file); export const db = new Low(adapter); diff --git a/server/src/controllers/ontimeController.js b/server/src/controllers/ontimeController.js index 2d74bb73f..981d6265e 100644 --- a/server/src/controllers/ontimeController.js +++ b/server/src/controllers/ontimeController.js @@ -1,6 +1,9 @@ +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + // get database import { db, data } from '../app.js'; -import fs from 'fs'; import { event as eventDef, delay as delayDef, @@ -8,6 +11,9 @@ import { } from '../data/eventsDefinition.js'; import { dbModel } from '../data/dataModel.js'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + function getEventTitle() { return data.event.title; } @@ -82,7 +88,9 @@ async function parsev1(jsonData) { // Returns - export const dbDownload = async (req, res) => { const fileTitle = getEventTitle() || 'ontime events'; - res.download('db.json', `${fileTitle}.json`, (err) => { + const dbFile = path.resolve(__dirname, '../', 'data/db.json'); + + res.download(dbFile, `${fileTitle}.json`, (err) => { if (err) { res.status(500).send({ message: 'Could not download the file. ' + err, From 1a80fab59d5a81c3cb7897db450a6a7ff691aba2 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Sun, 6 Jun 2021 14:05:28 +0200 Subject: [PATCH 18/38] config build + style - add license - add README - add icons - small style changes --- LICENSE.md | 9 +++ README.md | 72 +---------------------- server/README.md | 70 +++++++++++++++++++++++ server/assets/background.png | Bin 0 -> 1096 bytes server/assets/background@2x.png | Bin 0 -> 2800 bytes server/assets/icon.icns | Bin 0 -> 85555 bytes server/assets/icon.ico | Bin 0 -> 183702 bytes server/assets/icon.png | Bin 0 -> 48091 bytes server/electron/splash/splash.html | 89 +++++++++++++++++++++++++---- server/package.json | 23 +++++++- 10 files changed, 179 insertions(+), 84 deletions(-) create mode 100644 LICENSE.md create mode 100644 server/README.md create mode 100644 server/assets/background.png create mode 100644 server/assets/background@2x.png create mode 100644 server/assets/icon.icns create mode 100644 server/assets/icon.ico create mode 100644 server/assets/icon.png diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 000000000..15a9a00db --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright ยฉ 2021 + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/README.md b/README.md index 02aac3f6e..35ec677ab 100644 --- a/README.md +++ b/README.md @@ -1,70 +1,4 @@ -# Getting Started with Create React App + [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT) -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). - -## Available Scripts - -In the project directory, you can run: - -### `yarn start` - -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in the browser. - -The page will reload if you make edits.\ -You will also see any lint errors in the console. - -### `yarn test` - -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. - -### `yarn build` - -Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `yarn eject` - -**Note: this is a one-way operation. Once you `eject`, you canโ€™t go back!** - -If you arenโ€™t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youโ€™re on your own. - -You donโ€™t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnโ€™t feel obligated to use this feature. However we understand that this tool wouldnโ€™t be useful if you couldnโ€™t customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). - -### Code Splitting - -This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) - -### Analyzing the Bundle Size - -This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) - -### Making a Progressive Web App - -This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) - -### Advanced Configuration - -This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) - -### Deployment - -This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) - -### `yarn build` fails to minify - -This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) +# License +This project is licensed under the terms of the MIT license \ No newline at end of file diff --git a/server/README.md b/server/README.md new file mode 100644 index 000000000..02aac3f6e --- /dev/null +++ b/server/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `yarn start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.\ +You will also see any lint errors in the console. + +### `yarn test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `yarn build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `yarn eject` + +**Note: this is a one-way operation. Once you `eject`, you canโ€™t go back!** + +If you arenโ€™t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youโ€™re on your own. + +You donโ€™t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnโ€™t feel obligated to use this feature. However we understand that this tool wouldnโ€™t be useful if you couldnโ€™t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `yarn build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/server/assets/background.png b/server/assets/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8ee4545c3826f2cfed92fcbc75f7db42ccc6c238 GIT binary patch literal 1096 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
+ +
-

- ontime - event timers -

+

ontime ยท event timers

+
+
+
+
+
+
diff --git a/server/package.json b/server/package.json index 30441c51f..f6f16afdd 100644 --- a/server/package.json +++ b/server/package.json @@ -3,6 +3,9 @@ "version": "0.1.0", "author": "Carlos Valente", "description": "Time keeping for live events", + "repository": "https://github.com/cpvalente/ontime", + "keywords": ["lighdev", "ontime"], + "license": "MIT", "main": "main.js", "devDependencies": { "concurrently": "^6.1.0", @@ -25,14 +28,28 @@ "startall": "concurrently \"BROWSER=none yarn start\" \"wait-on http://localhost:3000 && electron .\"" }, "build": { - "appId": "your.id", - "asar": false, + "productName": "ontime", + "appId": "ontime.lightdev.no", + "asar": true, "mac": { "category": "your.app.category.type" }, + "win": { + "target": "nsis" + }, + "nsis": { + "createDesktopShortcut": true, + "createStartMenuShortcut": true, + "deleteAppDataOnUninstall": true, + "installerIcon": "icon.ico" + }, "files": [ - "**/*" + "**/*", + "assets/" ], + "directories": { + "buildResources": "./assets/" + }, "extraResources": [ { "from": "../client/build", From d4ee386cde0e4ff5933c475a8e82e8effd113580 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Sun, 6 Jun 2021 14:52:08 +0200 Subject: [PATCH 19/38] fix: handle multiple instances --- server/main.js | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/server/main.js b/server/main.js index 80ea4dba1..31c3f3bf1 100644 --- a/server/main.js +++ b/server/main.js @@ -41,18 +41,6 @@ const nodePath = // TODO: Icons appear pixelated const trayIcon = path.join(__dirname, './assets/images/logos/LOGO-512.png'); const appIcon = path.join(__dirname, './assets/images/logos/LOGO-512.png'); - -// Ensure there isn't another instance of the app running already -var lock = app.requestSingleInstanceLock(); -if (!lock) { - dialog.showErrorBox( - 'Multiple instances', - 'Another instance is already running. Please close the other instance first.' - ); - app.quit(); - return; -} - function showNotification(text) { new Notification({ title: 'ontime', @@ -64,6 +52,25 @@ let win; let splash; let tray = null; +// Ensure there isn't another instance of the app running already +const lock = app.requestSingleInstanceLock(); +if (!lock) { + dialog.showErrorBox( + 'Multiple instances', + 'An instance if the App is already running.' + ); + app.quit(); + return; +} else { + app.on('second-instance', (event, commandLine, workingDirectory) => { + // Someone tried to run a second instance, we should focus our window. + if (win) { + if (win.isMinimized()) win.restore(); + win.show(); + } + }); +} + function createWindow() { // create a new `splash`-Window splash = new BrowserWindow({ @@ -150,9 +157,14 @@ app.whenReady().then(() => { win.once('ready-to-show', () => { setTimeout(() => { + // window stuff win.show(); splash.destroy(); showNotification(loaded.toString()); + + // tray stuff + // TODO: get IP Address + tray.setToolTip(loaded); }, 2000); }); @@ -185,10 +197,7 @@ app.whenReady().then(() => { ]; const trayContextMenu = Menu.buildFromTemplate(trayMenuTemplate); - tray.setContextMenu(trayContextMenu); - // TODO: get IP Address - tray.setToolTip('ontime running on http://localhost:4001/'); }); // unregister shortcuts before quitting @@ -213,6 +222,7 @@ ipcMain.on('shutdown', (event, arg) => { await shutdown(); })(); + tray.remove(); win.destroy(); app.quit(); }); @@ -227,7 +237,7 @@ ipcMain.on('set-window', (event, arg) => { win.setPosition(0, 0); } else if (arg === 'to-tray') { // window to tray - win.close(); + win.hide(); } }); From 560ae5be74861cc3fc8da8fea439813759377378 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Sun, 6 Jun 2021 22:25:23 +0200 Subject: [PATCH 20/38] feat: upload file --- client/src/app/api/ontimeApi.js | 5 +- client/src/features/menu/MenuBar.jsx | 46 ++++++++++++++++++- .../features/menu/buttons/UploadIconBtn.jsx | 19 ++++++++ server/main.js | 3 +- server/src/controllers/ontimeController.js | 44 ++++++++++++------ server/src/routes/ontimeRouter.js | 9 +++- 6 files changed, 107 insertions(+), 19 deletions(-) create mode 100644 client/src/features/menu/buttons/UploadIconBtn.jsx diff --git a/client/src/app/api/ontimeApi.js b/client/src/app/api/ontimeApi.js index 4ebc5f73b..71b4678b7 100644 --- a/client/src/app/api/ontimeApi.js +++ b/client/src/app/api/ontimeApi.js @@ -28,7 +28,6 @@ export const downloadEvents = async () => { }; export const uploadEvents = async (file) => { - console.log('uploading', file); const formData = new FormData(); formData.append('jsondb', file); // appending file await axios @@ -40,3 +39,7 @@ export const uploadEvents = async (file) => { .then((res) => console.log(res.data)) .catch((err) => console.error(err)); }; + +export const uploadEventsWithPath = async (filepath) => { + await axios.post(ontimeURL + '/dbpath', { path: filepath }); +}; diff --git a/client/src/features/menu/MenuBar.jsx b/client/src/features/menu/MenuBar.jsx index cc400a978..3d32ea0bf 100644 --- a/client/src/features/menu/MenuBar.jsx +++ b/client/src/features/menu/MenuBar.jsx @@ -1,4 +1,6 @@ -import { downloadEvents } from 'app/api/ontimeApi'; +import { useMutation, useQueryClient } from 'react-query'; +import { downloadEvents, uploadEventsWithPath } from 'app/api/ontimeApi'; +import { EVENTS_TABLE } from 'app/api/apiConstants'; import DownloadIconBtn from './buttons/DownloadIconBtn'; import SettingsIconBtn from './buttons/SettingsIconBtn'; import InfoIconBtn from './buttons/InfoIconBtn'; @@ -7,15 +9,49 @@ import MinIconBtn from './buttons/MinIconBtn'; import QuitIconBtn from './buttons/QuitIconBtn'; import style from './MenuBar.module.css'; import HelpIconBtn from './buttons/HelpIconBtn'; -const { ipcRenderer } = window.require('electron'); +import UploadIconBtn from './buttons/UploadIconBtn'; + +const { ipcRenderer, remote } = window.require('electron'); export default function MenuBar(props) { const { onOpen, onClose } = props; + const queryClient = useQueryClient(); + const uploaddbPath = useMutation(uploadEventsWithPath, { + onSettled: () => { + queryClient.invalidateQueries(EVENTS_TABLE); + }, + }); const handleDownload = () => { downloadEvents(); }; + const handleUpload = () => { + remote.dialog + .showOpenDialog({ + title: 'Select the File to be uploaded', + buttonLabel: 'Upload', + filters: [ + { + name: 'Text Files', + extensions: ['json'], + }, + ], + // Specifying the File Selector Property + properties: ['openFile'], + }) + .then((file) => { + // Stating whether dialog operation was + // cancelled or not. + if (!file.canceled) { + uploaddbPath.mutate(file.filePaths[0].toString()); + } + }) + .catch((err) => { + console.log(err); + }); + }; + const handleIPC = (action) => { switch (action) { case 'min': @@ -55,11 +91,17 @@ export default function MenuBar(props) { clickhandler={() => handleIPC('help')} /> +
+ + } + colorScheme='white' + onClick={clickhandler} + _focus={{ boxShadow: 'none' }} + {...rest} + /> + + ); +} diff --git a/server/main.js b/server/main.js index 31c3f3bf1..f8770d887 100644 --- a/server/main.js +++ b/server/main.js @@ -7,10 +7,10 @@ const { dialog, ipcMain, shell, + Notification, } = require('electron'); const path = require('path'); const { electron } = require('process'); -const { Notification } = require('electron'); const env = process.env.NODE_ENV || 'prod'; @@ -100,6 +100,7 @@ function createWindow() { // TODO: what are recommended alternatives to node integration? nodeIntegration: true, contextIsolation: false, + enableRemoteModule: true, }, }); diff --git a/server/src/controllers/ontimeController.js b/server/src/controllers/ontimeController.js index 981d6265e..ed5a8dd9c 100644 --- a/server/src/controllers/ontimeController.js +++ b/server/src/controllers/ontimeController.js @@ -29,6 +29,7 @@ async function deleteFile(file) { // parses version 1 of the data system async function parsev1(jsonData) { + let numEntries = 0; if ('events' in jsonData) { let events = []; let ids = []; @@ -51,15 +52,19 @@ async function parsev1(jsonData) { isPublic: e.isPublic, id: e.id, }); + numEntries++; } else if (e.type === 'delay') { events.push({ ...delayDef, duration: e.duration }); + numEntries++; } else if (e.type === 'block') { events.push({ ...blockDef }); + numEntries++; } } // write to db db.data.events = events; db.write(); + console.log(`Uploaded file with ${numEntries} entries`); } if ('event' in jsonData) { @@ -99,15 +104,7 @@ export const dbDownload = async (req, res) => { }); }; -// Create controller for POST request to '/ontime/db' -// Returns - -export const dbUpload = async (req, res) => { - if (!req.file) { - res.status(400).send({ message: 'File not found' }); - return; - } - - const file = req.file.path; +const upload = async (file, req, res) => { if (!fs.existsSync(file)) { res.status(500).send({ message: 'Upload failed' }); return; @@ -115,11 +112,8 @@ export const dbUpload = async (req, res) => { try { // get file - let rawdata = fs.readFileSync(file); - let uploadedJson = JSON.parse(rawdata); - - // delete file - deleteFile(file); + const rawdata = fs.readFileSync(file); + const uploadedJson = JSON.parse(rawdata); // check version if (uploadedJson.settings.version === 1) parsev1(uploadedJson); @@ -134,3 +128,25 @@ export const dbUpload = async (req, res) => { res.status(400).send({ message: error }); } }; + +// Create controller for POST request to '/ontime/db' +// Returns - +export const dbUpload = async (req, res) => { + if (!req.file) { + res.status(400).send({ message: 'File not found' }); + return; + } + + const file = req.file.path; + upload(file, req, res); +}; + +// Create controller for POST request to '/ontime/dbpath' +// Returns - +export const dbPathToUpload = async (req, res) => { + if (!req.body.path) { + res.status(400).send({ message: 'Path to file not found' }); + return; + } + upload(req.body.path, req, res); +}; diff --git a/server/src/routes/ontimeRouter.js b/server/src/routes/ontimeRouter.js index e5b5e5670..8c1141170 100644 --- a/server/src/routes/ontimeRouter.js +++ b/server/src/routes/ontimeRouter.js @@ -2,10 +2,17 @@ import express from 'express'; import uploadJson from '../utils/upload.js'; export const router = express.Router(); -import { dbDownload, dbUpload } from '../controllers/ontimeController.js'; +import { + dbDownload, + dbUpload, + dbPathToUpload, +} from '../controllers/ontimeController.js'; // create route between controller and '/ontime/db' endpoint router.get('/db', dbDownload); // create route between controller and '/ontime/db' endpoint router.post('/db', uploadJson, dbUpload); + +// create route between controller and '/ontime/dbpath' endpoint +router.post('/dbpath', dbPathToUpload); From 4b4e3fa52b22d649872759e3b7be4bef394d1d5d Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Tue, 8 Jun 2021 13:24:56 +0200 Subject: [PATCH 21/38] fixes: muly - strange behaviour with overflow (clip not valid) - wrong message in quit button - add icon to splash screen - tray.remove() > tray.destroy() --- client/src/App.css | 1 + client/src/features/menu/buttons/QuitIconBtn.jsx | 2 +- server/main.js | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/src/App.css b/client/src/App.css index 27fa5fcf3..bd24333c6 100644 --- a/client/src/App.css +++ b/client/src/App.css @@ -7,6 +7,7 @@ body, html, .App { margin: 0px auto; + overflow: hidden; overflow: clip; height: 100vh; } diff --git a/client/src/features/menu/buttons/QuitIconBtn.jsx b/client/src/features/menu/buttons/QuitIconBtn.jsx index bf5c1364d..f322a7538 100644 --- a/client/src/features/menu/buttons/QuitIconBtn.jsx +++ b/client/src/features/menu/buttons/QuitIconBtn.jsx @@ -57,7 +57,7 @@ export default function QuitIconBtn(props) { Cancel diff --git a/server/main.js b/server/main.js index f8770d887..26edf2825 100644 --- a/server/main.js +++ b/server/main.js @@ -77,6 +77,7 @@ function createWindow() { width: 333, height: 333, transparent: true, + icon: appIcon, resizable: false, frame: false, alwaysOnTop: true, @@ -223,7 +224,7 @@ ipcMain.on('shutdown', (event, arg) => { await shutdown(); })(); - tray.remove(); + tray.destroy(); win.destroy(); app.quit(); }); From 65558e657e82de08319ac88132b52372eb0aeff6 Mon Sep 17 00:00:00 2001 From: cv <34649812+cpvalente@users.noreply.github.com> Date: Tue, 8 Jun 2021 23:09:28 +0200 Subject: [PATCH 22/38] chore: config CSP --- server/electron/splash/splash.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/electron/splash/splash.html b/server/electron/splash/splash.html index 939f600f2..824ab21ea 100644 --- a/server/electron/splash/splash.html +++ b/server/electron/splash/splash.html @@ -2,8 +2,10 @@ - - + ontime

Oh6gmxKF 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 literal 0 HcmV?d00001 diff --git a/server/assets/icon.png b/server/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e7aaee290f82643ca966ef388fbc93794788a861 GIT binary patch literal 48091 zcmX6^c|4Tg_kU)LeJ4wdeXHyh#=a&(M9G$=ktJl1>}KrQNtTeMM18XFAv3ln$r6RE zGuihE*_q$t`}<>FGxOYg&$;)UbI*C-^PC%RcKaqH9S zH}K~X_(h8{u=WE0diL`V1jx_h<@DI#Y+e8}xYEtP>oG1aH6=kTW zeK!!Yeo9|0e&1jGdAMq7v}h6ki=g{I?ix1U$!zr^7U=upxt)1gr`318oJ@=lhJ7Z@ zZ%$o&VoY7Tr8hE1)9lrmvhoS>Cb@Z99^q0crZzHOppRknYI@)ZQ+&oTZh*N%n{=1@ zZV&H&cf}%ZnV*LEE){w#HI2>$t^SlGlk@A^-&?#wFAki3#oNyYuYab1GvSAkrist$ z>c~dNZn-X|=%Yuc&s>w_U*Dv0O6}FDd?0K2sH}fSuT@zHJK44{l|6#4`|a7FSxC0D z#Su|b3Q&+l=g>EQ*5#1kh=S-Kw)v1?q43JckXNWTUiilojb4V`glq1FG+h+ZrU*z} zR}BjSf3Bxr{x@YuD}-5KxwpeL_+j;GH`s_kK?$gQk#5gfx}!W|WH>A02YZwrOeImO>EqXO~lKJzK*duXTcr7DZe~O^p+igRNOx%`k%+=xcw%_gB~U z5AWhr`T+?bg)vcd*H)UmH&c(k22Y7kv!mQ--G3rMk&?`C-b%@Jl=3Jl1A^C&0jD$E z71NG2Ej@kT)q^;=Xg!`;b565`7&%L{vMKM3$IQV&3Hewy69N#543!o%d`$RJoO=6m8j>D&BimWaxywzT!Yt=S@R6ev#{ zkWdL}IUE!!E7;A1Apqj3Q{PD*wLCyy;GfFS1+9ksxOq@k9M;rHL?Jloo2Wd^zzI2$e9p(wrY|xYd}NrR#>Ymq0*Wl> zOdP!XpKLu22srPbMXfs7zVfW_1`63B4e$bCMYG3~SY84O0q;w8W<0nYKr5vQ@|Z6o zhK2m^DRT`~{*wv_HK_DvN=HMY#i0s3#RPLf@F1~5o&bXzQA+?u&z-lo%C@ILJ0p&d zqq1=?-b5fjq#2)qx)+c+0adrCW$w1=eXQ8zB6ATWFN(^*f?c73c#%}K?L?FmWj-JU zQTqmp+Eb|6$kC7>gQ0v|IKC9lbq1~~u_)2!R+s>sK8BgXPSE+eLu-f_9DKfplVGxe zA|O`43oJR;qw>&UVw%j#1X_f@kDn3rS)(W+m5>AHr;wAMngvA&r&N=1grJ~uLN>qA zx@*V5nxW4@rJ$@3v^m`TFa&F5>t;*ges9=0@e9+Tkcv0+efg%aR7egmW*_3kGfQR) ztUe!69wTYHzdRU(B3ws7QSs?nq!{XBWzf%m!bMR?VDNyQaESp~V|>d60n(ZaB}M%9 zd=@7w{?wfSBe3B_PC=WTd(#m`AFsu%*d3^X^m<~9 z1=cNpCDJqjcA~p}M`iM7s-Pa>DMk_OpT!6egbeo+NHa~5{MosjoE{NSv5M*JK~|?^i0HX84I9e2Gy4;KGDQ7LqUiuaSq0lVE6(LqHIw zyPf3h|FO71bdi88F-rhTkaIP3)m%rhp$fqDrl5%D(galxS%L^q1u}vEt*F*#KGRP& zdg1prCaXQhDnq4+?_^(lFSKb5zh;y$E$IAUA@LC_5VmX8r0&0Zfj?wjG=(pZe0%ck z&D0K}74&5L+!hoOqm&ZBS~NWxf59M9jdpD}doM%Fv@>+Jea$waGUljOC_P3G#^z*D zBFGxMtGZF<7so6R+a(Xlhn2J621dcDrXV%Qc)@-%0A-XgNi4oKSq3=a# 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 n&)JAwTtPS8^lKTt1L6B0(dZyQ8 ontime + - -