diff --git a/.eslintignore b/.eslintignore --- a/.eslintignore +++ b/.eslintignore @@ -21,3 +21,5 @@ native/node_modules native/codegen/dist native/android/app/build +desktop/out +desktop/dist diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ # Electron desktop/out/ desktop/assets/ +desktop/dist/ diff --git a/desktop/babel.config.cjs b/desktop/babel.config.cjs new file mode 100644 --- /dev/null +++ b/desktop/babel.config.cjs @@ -0,0 +1,12 @@ +module.exports = { + presets: [ + ['@babel/preset-env', { targets: { electron: 22 }, modules: 'commonjs' }], + ], + plugins: [ + '@babel/plugin-proposal-class-properties', + '@babel/plugin-proposal-object-rest-spread', + '@babel/plugin-proposal-optional-chaining', + '@babel/plugin-proposal-nullish-coalescing-operator', + '@babel/plugin-transform-runtime', + ], +}; diff --git a/desktop/forge.config.cjs b/desktop/forge.config.cjs --- a/desktop/forge.config.cjs +++ b/desktop/forge.config.cjs @@ -1,18 +1,75 @@ +const babel = require('@babel/core'); +const { PluginBase } = require('@electron-forge/plugin-base'); const fs = require('fs-extra'); +const klaw = require('klaw'); +const path = require('path'); + +const transformDirectoryWithBabel = async (dirPath, outDirPath) => { + for await (const { path: filePath, stats } of klaw(dirPath)) { + if (stats.isFile()) { + const outPath = path.resolve( + outDirPath, + path.relative(dirPath, filePath), + ); + + const { code } = await new Promise(resolve => + babel.transformFile(filePath, (err, result) => { + if (err) { + console.error(err); + } + resolve(result); + }), + ); + if (code) { + await fs.outputFile(outPath, code); + } + } + } +}; + +const runBabel = async () => { + await Promise.all([ + fs.outputFile('./dist/package.json', JSON.stringify({ type: 'commonjs' })), + transformDirectoryWithBabel('./src', './dist'), + ]); +}; + +class BabelPlugin extends PluginBase { + name = 'BabelPlugin'; + + getHooks() { + return { + // This hook runs during the packaging of the final executable + prePackage: [runBabel], + }; + } + + // This function runs only in development mode, just before the + // application starts + async startLogic() { + await runBabel(); + // startLogic allows us to run electron ourselves and return the process + // object. Electron Forge (package which handles bundling, packaging and + // running dev mode) will then watch it instead of spawing electron by + // itself. But we are fine with the default behaviour (Electron Forge + // spawning electron) so we return false. + return false; + } +} -// eslint-disable-next-line no-undef module.exports = { packagerConfig: { name: 'Comm', icon: 'icons/icon', + ignore: ['src', '.*config\\.cjs', '\\.eslintrc\\.json'], }, - rebuildConfig: {}, makers: [ { name: '@electron-forge/maker-zip', platforms: ['darwin'], }, ], + plugins: [new BabelPlugin()], hooks: { generateAssets: async () => { await Promise.all([ diff --git a/desktop/package.json b/desktop/package.json --- a/desktop/package.json +++ b/desktop/package.json @@ -1,21 +1,38 @@ { + "workspaces": { + "nohoist": [ + "**" + ] + }, "name": "desktop", "version": "0.0.1", - "type": "commonjs", - "main": "main.cjs", + "type": "module", + "main": "./dist/main.js", "private": true, "license": "BSD-3-Clause", "scripts": { "dev": "ENV=dev electron-forge start", "package": "electron-forge package", "make": "electron-forge make", - "clean": "rm -rf assets/ && rm -rf out/ && rm -rf node_modules/" + "clean": "rm -rf assets/ && rm -rf dist/ && rm -rf out/ && rm -rf node_modules/" + }, + "dependencies": { + "@babel/runtime": "^7.20.1" }, "devDependencies": { - "@electron-forge/async-ora": "^6.0.0", - "@electron-forge/cli": "^6.0.0", - "@electron-forge/maker-zip": "^6.0.0", - "electron": "^21.2.2", - "fs-extra": "^10.1.0" + "@babel/core": "^7.13.14", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.13.10", + "@babel/preset-env": "^7.13.12", + "@electron-forge/cli": "^6.0.4", + "@electron-forge/maker-zip": "^6.0.4", + "@electron-forge/plugin-base": "^6.0.4", + "electron": "^22.0.0", + "fs-extra": "^10.1.0", + "klaw": "^4.0.1" } } diff --git a/desktop/main.cjs b/desktop/src/main.js rename from desktop/main.cjs rename to desktop/src/main.js --- a/desktop/main.cjs +++ b/desktop/src/main.js @@ -1,20 +1,20 @@ -const { +import { app, BrowserWindow, shell, Menu, ipcMain, systemPreferences, -} = require('electron'); -const fs = require('fs'); -const path = require('path'); +} from 'electron'; +import fs from 'fs'; +import path from 'path'; const isDev = process.env.ENV === 'dev'; const url = isDev ? 'http://localhost/comm/' : 'https://web.comm.app'; const isMac = process.platform === 'darwin'; const scrollbarCSS = fs.promises.readFile( - path.join(__dirname, 'scrollbar.css'), + path.resolve(__dirname, '../scrollbar.css'), 'utf8', ); @@ -87,7 +87,7 @@ trafficLightPosition: { x: 20, y: 24 }, backgroundColor: '#0A0A0A', webPreferences: { - preload: path.join(__dirname, 'preload.cjs'), + preload: path.resolve(__dirname, 'preload.js'), }, }); @@ -158,7 +158,7 @@ center: true, backgroundColor: '#111827', }); - win.loadFile(path.join(__dirname, 'pages', 'splash.html')); + win.loadFile(path.resolve(__dirname, '../pages/splash.html')); return win; }; @@ -177,7 +177,7 @@ win.on('close', () => { app.quit(); }); - win.loadFile(path.join(__dirname, 'pages', 'error.html')); + win.loadFile(path.resolve(__dirname, '../pages/error.html')); return win; }; diff --git a/desktop/preload.cjs b/desktop/src/preload.js rename from desktop/preload.cjs rename to desktop/src/preload.js --- a/desktop/preload.cjs +++ b/desktop/src/preload.js @@ -1,4 +1,4 @@ -const { contextBridge, ipcRenderer } = require('electron'); +import { contextBridge, ipcRenderer } from 'electron'; const bridge = { onNavigate: callback => { diff --git a/yarn.lock b/yarn.lock --- a/yarn.lock +++ b/yarn.lock @@ -1387,6 +1387,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.20.1": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" + integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.0.0", "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -1511,41 +1518,27 @@ dependencies: "@types/hammerjs" "^2.0.36" -"@electron-forge/async-ora@6.0.0", "@electron-forge/async-ora@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/async-ora/-/async-ora-6.0.0.tgz#5ca7b9369f07b383b874b76f48062ac9497e0b15" - integrity sha512-qRbdJRvpxpmSzoNh0YzsYFR7cKsgMwI4hRbaL8qstYHs4bvEzvtmrLLEUpfGM6rh0a3AAZDC67PbOBT0dhGLLw== - dependencies: - chalk "^4.0.0" - debug "^4.3.1" - log-symbols "^4.0.0" - ora "^5.0.0" - pretty-ms "^7.0.0" - -"@electron-forge/cli@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-6.0.0.tgz#408a46ac93a12baf45f69afc7a252dcd5dd38814" - integrity sha512-fdv4V1anQ+CQ9efTLOHoBjrlbT4imaS6czRh7P9LV4U3eDa3B6ofp9NpvLvRE/2Mckl4oDBA5GGRsUSsUwqMkg== +"@electron-forge/cli@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-6.0.4.tgz#0a98ebdf2ec09744129209effd3f10606ef5083c" + integrity sha512-iyQyh0g/cSWVQs30wsAqmTmqgV8E/i9Cy/CsHwHxQlsHHcq8N61k1JlB2dpEV1Hy9Lxafql5TE3/6uI7939IEg== dependencies: - "@electron-forge/async-ora" "6.0.0" - "@electron-forge/core" "6.0.0" - "@electron-forge/shared-types" "6.0.0" + "@electron-forge/core" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" "@electron/get" "^2.0.0" chalk "^4.0.0" commander "^4.1.1" debug "^4.3.1" fs-extra "^10.0.0" - inquirer "^8.0.0" listr2 "^5.0.3" semver "^7.2.1" -"@electron-forge/core-utils@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/core-utils/-/core-utils-6.0.0.tgz#99804176255f0b093556bb47ca71c16265ee5960" - integrity sha512-JX9COxf+V7py7V8QjX4aQySDLx2RceujNB1omXKm7fdfwItYVhimKz9QBfDwG8q5+K2nbCRSfpAbIEOuhUBl6Q== +"@electron-forge/core-utils@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/core-utils/-/core-utils-6.0.4.tgz#dae0a47d9ffb93ee02de05720617d39b65666731" + integrity sha512-nOCjmm8Qr/bYkVNfEiXSk/LKjtv6iBrKcyhKIanNM3n7MJRuTH0ksvuajFBqg+V+EHplMb7y6acDvI+TTRDUxg== dependencies: - "@electron-forge/async-ora" "6.0.0" - "@electron-forge/shared-types" "6.0.0" + "@electron-forge/shared-types" "^6.0.4" "@electron/rebuild" "^3.2.10" "@malept/cross-spawn-promise" "^2.0.0" chalk "^4.0.0" @@ -1556,20 +1549,19 @@ semver "^7.2.1" yarn-or-npm "^3.0.1" -"@electron-forge/core@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/core/-/core-6.0.0.tgz#dd703b95b0d90946234429d8810e6417428f65ba" - integrity sha512-EIHzle+n7fyOGQQyhL6hlyy6akzrVUVWXcYcYBlF+kI7MdonvJxQvtebiJBItX1gd4E4Fqe2fHi5ufk3ghqhlQ== - dependencies: - "@electron-forge/async-ora" "6.0.0" - "@electron-forge/core-utils" "6.0.0" - "@electron-forge/maker-base" "6.0.0" - "@electron-forge/plugin-base" "6.0.0" - "@electron-forge/publisher-base" "6.0.0" - "@electron-forge/shared-types" "6.0.0" - "@electron-forge/template-base" "6.0.0" - "@electron-forge/template-webpack" "6.0.0" - "@electron-forge/template-webpack-typescript" "6.0.0" +"@electron-forge/core@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/core/-/core-6.0.4.tgz#a6b32b7e4d88d35b2f1e052b2d5cd83c617bb63b" + integrity sha512-l3OiXB/9ebtZZtcQAbofaTmivQUqUVv8TKoxQ8GJbH48Eyk//mphbo7hDC5kb5Tyd0UedMOM9MxJrYjnd6jRnA== + dependencies: + "@electron-forge/core-utils" "^6.0.4" + "@electron-forge/maker-base" "^6.0.4" + "@electron-forge/plugin-base" "^6.0.4" + "@electron-forge/publisher-base" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/template-base" "^6.0.4" + "@electron-forge/template-webpack" "^6.0.4" + "@electron-forge/template-webpack-typescript" "^6.0.4" "@electron/get" "^2.0.0" "@electron/rebuild" "^3.2.10" "@malept/cross-spawn-promise" "^2.0.0" @@ -1595,80 +1587,75 @@ username "^5.1.0" yarn-or-npm "^3.0.1" -"@electron-forge/maker-base@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-base/-/maker-base-6.0.0.tgz#9436e459984ec5e0e37f49e3eec2d8efbcadd718" - integrity sha512-zT4NQzJ4zjlKwmRtY/HeKcd/eP+R2vtYvpen5z6vuqY12+jubGgRoGyot4VT0nN5p46gcofGW/Y6aPEuND4ORg== +"@electron-forge/maker-base@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-base/-/maker-base-6.0.4.tgz#7de68dd11d2a670b552860aea01767870bb44f92" + integrity sha512-qJJ2oPFlyt6u/H67WLfZL0JclSpFj4VwxPfwxqNL/HcwXULJcOeat7oqJLY9UKBE4U2j+++xbA3LSoPAErroIg== dependencies: - "@electron-forge/shared-types" "6.0.0" + "@electron-forge/shared-types" "^6.0.4" fs-extra "^10.0.0" which "^2.0.2" -"@electron-forge/maker-zip@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/maker-zip/-/maker-zip-6.0.0.tgz#bf6981f76fdfdb4b42ef8ba3eb4d99bea2f065ab" - integrity sha512-LbGy2dEbQ5EfWauS/sGr5I0tf0BklsZfLpvHrr5DTbeX9ghluUaca5P5t0aoS+YsrWIxOkdU3x1j/ioKkShXCQ== +"@electron-forge/maker-zip@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/maker-zip/-/maker-zip-6.0.4.tgz#db4cc7f44ccf1d30fa1bc95c36d6b9708d3e5888" + integrity sha512-tjBi46qU4vKpYUNUIv5ar6hBDjr9G7+QIUiaOj4UIN3Rwa20EvsYMBoMJBxV/CUUwkQc1NBihUPLco7PAVNb+g== dependencies: - "@electron-forge/maker-base" "6.0.0" - "@electron-forge/shared-types" "6.0.0" + "@electron-forge/maker-base" "^6.0.4" + "@electron-forge/shared-types" "^6.0.4" cross-zip "^4.0.0" fs-extra "^10.0.0" -"@electron-forge/plugin-base@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.0.0.tgz#6363357006bf79bb6293bb29a804799534acfe5f" - integrity sha512-0PVEz0cFL0KKlBfyCaLVKfdOkdaSlJu+vl3oGLZoDVyOw3wNu5Tk2o84gKgkgtZ1jZTH3dmxUhimdWSMYl0QYA== +"@electron-forge/plugin-base@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/plugin-base/-/plugin-base-6.0.4.tgz#a3b62e006632dab66d35f845ca61e09745ccbb82" + integrity sha512-iILzbFzmUIGggsTNL9PO1ma6e4OuuhKunNnOkpkoyg6jIaz8Oh1WSHhOALMztlBn2FhreabZnBRy7JsvHVDXlg== dependencies: - "@electron-forge/shared-types" "6.0.0" + "@electron-forge/shared-types" "^6.0.4" -"@electron-forge/publisher-base@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/publisher-base/-/publisher-base-6.0.0.tgz#b465c7d26719ad7c2ce9f8ca4a070237242b5ff7" - integrity sha512-Aa6Xf00BQwxlyXpuismOtOt6XezP8CURWRnj1WN2kvSJDkLSzFwJqppHUIdz1htRx65h0H+uyaaCb2WlaWivMg== +"@electron-forge/publisher-base@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/publisher-base/-/publisher-base-6.0.4.tgz#dd5db7ec04f8c5a6a70afa548950381052673806" + integrity sha512-0C86jnOSTo0z/W58zRx6BijuR4lscB0F6yXaBCFA5xaJ8+fVIsgz29kmVlLrp+YFRgatDCljvk+1+qVRM/Mfpg== dependencies: - "@electron-forge/shared-types" "6.0.0" + "@electron-forge/shared-types" "^6.0.4" -"@electron-forge/shared-types@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-6.0.0.tgz#43f847a6da5f15f037db207c9843d2e63f8eaff3" - integrity sha512-FN+158+EvSzbL/ZGwsLxeUbYOJm8bhHCLbR7SPAmKwn/X2P8pVj4HuhiROkqdiuU4kUDmrOg/LgObODofyvIKw== +"@electron-forge/shared-types@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-6.0.4.tgz#f8cdcf453459caa156d513582054b8e81057584f" + integrity sha512-lILLKcGZqfJYVI1x6RssVh37E934rCOaSdBQ9I7LypdfI2NWL+5PLLoUqvXbok1V28m3/O5JrXdigwEIZdhjzQ== dependencies: - "@electron-forge/async-ora" "6.0.0" "@electron/rebuild" "^3.2.10" electron-packager "^17.1.1" listr2 "^5.0.3" - ora "^5.0.0" -"@electron-forge/template-base@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.0.0.tgz#ad64e28e82163f431e692e3a072d20e3dccdd62d" - integrity sha512-jFFS7U6T6owLGZ9uB1m7KgAzWrG1QG0cg/0XK2OijpgRJuTy3O/qUzAf7IhdwxT7CARMq2vLq6yMbTYb/0tQ7Q== +"@electron-forge/template-base@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.0.4.tgz#9d42af1fe77cf6d1ee8e43109d3eefabd1caf95e" + integrity sha512-23/b0n+ls0+c2+OG1XrHROk6i3PseONLJY3tcR42uFaP/yGZL8nJfgXE2qTKBwUyFQ0tCgUAD3a4vYkMPLKrwg== dependencies: - "@electron-forge/async-ora" "6.0.0" - "@electron-forge/shared-types" "6.0.0" + "@electron-forge/shared-types" "^6.0.4" "@malept/cross-spawn-promise" "^2.0.0" debug "^4.3.1" fs-extra "^10.0.0" username "^5.1.0" -"@electron-forge/template-webpack-typescript@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-6.0.0.tgz#498fda640ff9cb99f22a04a09b60b2673f7c71e2" - integrity sha512-lhWZIqLHPt7gffdfTl0mg5YLh6nUgcNxpzW8Osctstc7XM2eF0CK09Gbi6d/E2MPIK911zrTSqsvBkYXWCUprQ== +"@electron-forge/template-webpack-typescript@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-6.0.4.tgz#8dea2d6deb6be9b73203fc93c49d88dfe86f2c1f" + integrity sha512-Z9fJ0JfZw9w5OVZgy0qVGapGMQqfaLyQSHzEfm2HQdGGJrHkeXJkMn8Yd1E8h5EPMb3jF5tHRw3VopelzcPQxQ== dependencies: - "@electron-forge/async-ora" "6.0.0" - "@electron-forge/shared-types" "6.0.0" - "@electron-forge/template-base" "6.0.0" + "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/template-base" "^6.0.4" fs-extra "^10.0.0" -"@electron-forge/template-webpack@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack/-/template-webpack-6.0.0.tgz#7f2063b267c81f9be6f0c222350789a7d3111e7a" - integrity sha512-o7gUO8zdUyvkcQ9nlBd20F9nDErO5Hd75Tk9GCXPQ4nQuEEZnUp+mzd5j+bzmSaidjFfVCfz1hXzwko5fch34g== +"@electron-forge/template-webpack@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@electron-forge/template-webpack/-/template-webpack-6.0.4.tgz#17bfd20d93be8238a6ee62cc1cf5c4484906dbde" + integrity sha512-mrzNzkhsLfD20y/vfTYVBFSkptmgSEwqn4zh4vnzP9tzAJ4eMbvhfVtkK/XQfm8ZspPjs+RZSzRrRNo+e0iEaw== dependencies: - "@electron-forge/async-ora" "6.0.0" - "@electron-forge/shared-types" "6.0.0" - "@electron-forge/template-base" "6.0.0" + "@electron-forge/shared-types" "^6.0.4" + "@electron-forge/template-base" "^6.0.4" fs-extra "^10.0.0" "@electron/asar@^3.2.1": @@ -1683,7 +1670,7 @@ optionalDependencies: "@types/glob" "^7.1.1" -"@electron/get@^1.13.0", "@electron/get@^1.14.1": +"@electron/get@^1.13.0": version "1.14.1" resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw== @@ -4362,9 +4349,9 @@ integrity sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q== "@types/node@^16.11.26": - version "16.18.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.3.tgz#d7f7ba828ad9e540270f01ce00d391c54e6e0abc" - integrity sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg== + version "16.18.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.6.tgz#87846192fd51b693368fad3e99123169225621d4" + integrity sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA== "@types/node@^8.10.29": version "8.10.60" @@ -6997,11 +6984,6 @@ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -8621,12 +8603,12 @@ "@types/node" "^14.6.2" extract-zip "^1.0.3" -electron@^21.2.2: - version "21.2.2" - resolved "https://registry.yarnpkg.com/electron/-/electron-21.2.2.tgz#e2f3dd014981df555d2cd1655590168b404edae4" - integrity sha512-Q0j1tzLTM5JRjSJVAfDSONZgdtuyruHR1pc1y2IbMYQz62pVJWVWAvcJXzpty5iRh2HKzW9+B9WVlmfWNFA8ag== +electron@^22.0.0: + version "22.0.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-22.0.0.tgz#ef84ab9cf23aa3f8c2f42a1e8e000ad7fd941058" + integrity sha512-cgRc4wjyM+81A0E8UGv1HNJjL1HBI5cWNh/DUIjzYvoUuiEM0SS0hAH/zaFQ18xOz2ced6Yih8SybpOiOYJhdg== dependencies: - "@electron/get" "^1.14.1" + "@electron/get" "^2.0.0" "@types/node" "^16.11.26" extract-zip "^2.0.1" @@ -11516,27 +11498,6 @@ strip-ansi "^5.1.0" through "^2.3.6" -inquirer@^8.0.0: - version "8.2.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" - integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^7.0.0" - internal-ip@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -13208,6 +13169,11 @@ optionalDependencies: graceful-fs "^4.1.9" +klaw@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-4.0.1.tgz#8dc6f5723f05894e8e931b516a8ff15c2976d368" + integrity sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw== + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -15537,7 +15503,7 @@ strip-ansi "^5.2.0" wcwidth "^1.0.1" -ora@^5.0.0, ora@^5.1.0, ora@^5.4.1: +ora@^5.1.0: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== @@ -15813,11 +15779,6 @@ json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" -parse-ms@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" - integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== - parse-package-name@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" @@ -16524,13 +16485,6 @@ ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-ms@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" - integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== - dependencies: - parse-ms "^2.1.0" - 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" @@ -17729,6 +17683,11 @@ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" @@ -18127,11 +18086,6 @@ dependencies: is-promise "^2.1.0" -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -18174,7 +18128,7 @@ dependencies: tslib "~2.1.0" -rxjs@^7.5.5, rxjs@^7.5.6: +rxjs@^7.5.6: version "7.5.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==