diff --git a/.eslintrc.js b/.eslintrc.js
index c1e1590..af04b13 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -6,14 +6,15 @@ module.exports = {
ecmaVersion: 8,
},
rules: {
- 'react/sort-comp': 0,
+ 'arrow-parens': ['error', 'as-needed'],
'import/extensions': 0,
'import/no-extraneous-dependencies': 0,
'import/no-unresolved': [2, {ignore: ['electron']}],
+ 'import/prefer-default-export': 0,
'linebreak-style': ['error', 'unix'],
+ 'no-console': 0,
'object-curly-spacing': ['error', 'never'],
- 'import/prefer-default-export': 0,
'react/prefer-stateless-function': 0,
- 'arrow-parens': ['error', 'as-needed'],
+ 'react/sort-comp': 0,
},
};
diff --git a/package.json b/package.json
index d931f7b..b0686b4 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,8 @@
"@material-ui/icons": "^4.2.1",
"@material-ui/lab": "^4.0.0-alpha.18",
"@solana/web3.js": "^0.16.10",
+ "autoscroll-react": "^3.2.0",
+ "console-feed": "^2.8.8",
"electron-compile": "^6.4.4",
"electron-devtools-installer": "^2.1.0",
"electron-log": "^3.0.6",
@@ -40,10 +42,10 @@
"node-fetch": "^2.6.0",
"npm-run-all": "^4.1.5",
"promisify-child-process": "^3.1.0",
+ "prop-types": "^15.7.2",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-hot-loader": "^4.12.0",
- "react-terminal-component": "^1.4.1",
"update-electron-app": "solana-labs/update-electron-app#nagUser"
},
"devDependencies": {
diff --git a/src/app.jsx b/src/app.jsx
index 3c6811f..0e49ea6 100644
--- a/src/app.jsx
+++ b/src/app.jsx
@@ -13,21 +13,19 @@ import TextField from '@material-ui/core/TextField';
import Typography from '@material-ui/core/Typography';
import log from 'electron-log';
import {Connection, PublicKey} from '@solana/web3.js';
-import {EmulatorState, OutputFactory, Outputs} from 'javascript-terminal';
-import {ReactThemes, ReactTerminal} from 'react-terminal-component';
import {withStyles} from '@material-ui/core/styles';
import Store from 'electron-store';
import IconButton from '@material-ui/core/IconButton';
import SaveIcon from '@material-ui/icons/Save';
+import autoscroll from 'autoscroll-react';
+import {Hook, Console, Decode} from 'console-feed';
import {url} from './url';
import {Replicator} from './replicator';
const styles = theme => ({
root: {
- display: 'flex',
- flexDirection: 'column',
- minHeight: '100vh',
+ height: '100%',
},
main: {
marginTop: theme.spacing(2),
@@ -64,6 +62,28 @@ function isValidPublicKey(publicKey) {
);
}
+class LogConsole extends React.Component {
+ render() {
+ return (
+
+ );
+ }
+}
+LogConsole.propTypes = {
+ logs: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
+};
+
+// eslint-disable-next-line react/no-multi-comp
class App extends React.Component {
constructor(props) {
super(props);
@@ -75,6 +95,7 @@ class App extends React.Component {
transactionCount: 0,
totalMined: this.store.get('totalMined', 0),
newMined: 0,
+ logs: [],
totalSupply: 0,
enabled: this.store.get('enabled', true),
unsavedDepositPublicKey: this.depositPublicKey,
@@ -82,21 +103,29 @@ class App extends React.Component {
unsavedDepositPublicKeySavePrompt: false,
depositPublicKeyBalance: ' ',
};
+ }
+
+ componentDidMount() {
+ Hook(console, newLog => {
+ const logs = [...this.state.logs, Decode(newLog)];
+ const max = 1024;
+ if (logs.length > max) {
+ logs.splice(0, logs.length - max);
+ }
+ this.setState({logs});
+ });
this.connection = new Connection(url);
- log.info('connection:', url);
this.clearTerminal();
- this.addTerminalText(`Cluster entrypoint: ${url}...`);
+ log.info(`Cluster entrypoint: ${url}...`);
- this.replicator = new Replicator(this.connection, this);
+ this.replicator = new Replicator(this.connection);
if (this.state.enabled) {
this.replicator.start();
} else {
- this.addTerminalText('Mining disabled');
+ console.warn('Mining disabled');
}
- }
- componentDidMount() {
this.updateClusterStats();
this.id = setInterval(() => this.updateClusterStats(), 10000);
}
@@ -105,57 +134,12 @@ class App extends React.Component {
clearInterval(this.id);
}
- trimTerminalOutput() {
- const count = this.terminalOutputs.count();
- if (count > this.terminalHeight) {
- this.terminalOutputs = this.terminalOutputs.splice(
- 0,
- count - this.terminalHeight,
- );
- }
- this.setState({});
- }
-
- addTerminalCommand(command) {
- log.info('term$ ', command);
- this.terminalOutputs = Outputs.addRecord(
- this.terminalOutputs,
- OutputFactory.makeHeaderOutput('', command),
- );
- this.trimTerminalOutput();
- }
-
- addTerminalText(text) {
- text.split('\n').forEach(line => {
- log.info('term> ', line);
- this.terminalOutputs = Outputs.addRecord(
- this.terminalOutputs,
- OutputFactory.makeTextOutput(line),
- );
- });
- this.trimTerminalOutput();
- }
-
- addTerminalError(errorMessage) {
- errorMessage.split('\n').forEach(line => {
- log.info('TERM> ', line);
- this.terminalOutputs = Outputs.addRecord(
- this.terminalOutputs,
- OutputFactory.makeErrorOutput({source: 'error', type: line}),
- );
- });
- this.trimTerminalOutput();
- }
-
clearTerminal() {
- this.terminalOutputs = Outputs.create(
- new Array(this.terminalHeight).fill(OutputFactory.makeTextOutput(' ')),
- );
- this.trimTerminalOutput();
+ this.setState({logs: []});
}
clusterRestart() {
- this.addTerminalText(`Cluster restart detected at ${new Date()}`);
+ console.warn(`Cluster restart detected at ${new Date()}`);
this.replicator.clusterRestart();
this.setState({
transactionCount: 0,
@@ -168,7 +152,7 @@ class App extends React.Component {
const transactionCount = await this.connection.getTransactionCount();
if (transactionCount < this.state.transactionCount / 2) {
- this.addTerminalText(
+ console.warn(
`Transaction count decreased from ${this.state.transactionCount} to ${transactionCount}`,
);
this.clusterRestart();
@@ -212,8 +196,7 @@ class App extends React.Component {
depositPublicKeyBalance,
});
} catch (err) {
- log.error('updateClusterStats failed', err);
- this.addTerminalError(`updateClusterStats failed: ${err.message}`);
+ console.warn('updateClusterStats failed', err);
}
}
@@ -222,6 +205,7 @@ class App extends React.Component {
this.store.set('enabled', enabled);
this.setState({enabled});
if (enabled) {
+ this.clearTerminal();
this.replicator.start();
} else {
this.replicator.stop();
@@ -277,15 +261,15 @@ class App extends React.Component {
render() {
const {classes} = this.props;
+ const AutoscrollLogConsole = autoscroll(LogConsole, {
+ isScrolledDownThreshold: 0,
+ });
+
// eslint-disable-next-line no-restricted-properties
const totalSupplySOL = (this.state.totalSupply / Math.pow(2, 34)).toFixed(
2,
);
- const emulatorState = EmulatorState.createEmpty().setOutputs(
- this.terminalOutputs,
- );
-
return (
@@ -370,7 +354,7 @@ class App extends React.Component {
-
);
}
}
+
App.propTypes = {
classes: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
};
diff --git a/src/index.html b/src/index.html
index 4b811e0..383111d 100644
--- a/src/index.html
+++ b/src/index.html
@@ -2,8 +2,21 @@
+
-
+
diff --git a/src/index.js b/src/index.js
index 6f2d5b7..fd3c9c6 100644
--- a/src/index.js
+++ b/src/index.js
@@ -24,8 +24,11 @@ app.on('ready', async () => {
const devModeExtra = isDevMode ? 200 : 0;
mainWindow = new BrowserWindow({
width: 1000 + devModeExtra,
- height: 820,
+ height: 830,
resizable: isDevMode,
+ webPreferences: {
+ nodeIntegration: true,
+ },
});
mainWindow.loadURL(`file://${__dirname}/index.html`);
diff --git a/src/replicator.js b/src/replicator.js
index 07c7660..07c0195 100644
--- a/src/replicator.js
+++ b/src/replicator.js
@@ -10,12 +10,11 @@ import {solanaInstallInit} from './solana-install-init';
const airdropAmount = 100000;
export class Replicator {
- constructor(connection, terminalOutput) {
+ constructor(connection) {
const userDataPath = electron.remote.app.getPath('userData');
Object.assign(this, {
connection,
- terminalOutput,
running: false,
mainPromise: Promise.resolve(),
cmdCancel: () => undefined,
@@ -49,7 +48,7 @@ export class Replicator {
return;
}
this.running = false;
- this.terminalOutput.addTerminalText('^C');
+ console.warn('^C');
this.cmdCancel();
await this.mainPromise;
}
@@ -107,16 +106,17 @@ export class Replicator {
* @private
*/
async cmd(command, args) {
- this.terminalOutput.addTerminalCommand(`${command} ${args.join(' ')}`);
+ console.log(`$ ${command} ${args.join(' ')}`);
+ log.info(`$ ${command} ${args.join(' ')}`);
const env = Object.assign({}, {RUST_LOG: 'solana=info'}, process.env);
const child = spawn(command, args, {env});
log.info(`pid ${child.pid}`);
child.stdout.on('data', data =>
- this.terminalOutput.addTerminalText(data.toString()),
+ console.log(data.toString().replace(/\n+$/, '')),
);
child.stderr.on('data', data =>
- this.terminalOutput.addTerminalText(data.toString()),
+ console.log(data.toString().replace(/\n+$/, '')),
);
return Promise.race([
child,
@@ -200,7 +200,7 @@ export class Replicator {
this.replicatorLedgerDir,
]);
} catch (err) {
- this.terminalOutput.addTerminalError(err.message);
+ console.error(err.message);
}
if (!this.running) {
diff --git a/yarn.lock b/yarn.lock
index db5a580..fe0b368 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -34,13 +34,6 @@
source-map "^0.5.0"
trim-right "^1.0.1"
-"@babel/helper-annotate-as-pure@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
- integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
- dependencies:
- "@babel/types" "^7.0.0"
-
"@babel/helper-function-name@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
@@ -85,7 +78,7 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872"
integrity sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==
-"@babel/runtime@^7.1.2", "@babel/runtime@^7.1.5", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.5":
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.1.5", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5":
version "7.4.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12"
integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==
@@ -264,27 +257,64 @@
babel-runtime "6.26.0"
execa "0.9.0"
+"@emotion/babel-utils@^0.6.4":
+ version "0.6.10"
+ resolved "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.10.tgz#83dbf3dfa933fae9fc566e54fbb45f14674c6ccc"
+ integrity sha512-/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==
+ dependencies:
+ "@emotion/hash" "^0.6.6"
+ "@emotion/memoize" "^0.6.6"
+ "@emotion/serialize" "^0.9.1"
+ convert-source-map "^1.5.1"
+ find-root "^1.1.0"
+ source-map "^0.7.2"
+
+"@emotion/hash@^0.6.2", "@emotion/hash@^0.6.6":
+ version "0.6.6"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.6.6.tgz#62266c5f0eac6941fece302abad69f2ee7e25e44"
+ integrity sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==
+
"@emotion/hash@^0.7.1":
version "0.7.1"
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.1.tgz#9833722341379fb7d67f06a4b00ab3c37913da53"
integrity sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA==
-"@emotion/is-prop-valid@^0.8.1":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.1.tgz#6fb3ae2d24f07c8cd090f233e45771d9cd826d48"
- integrity sha512-Wtaek/KGUP+HusWIa8DqtOR6U/Tl+QIdVkfJQHV3IT6ZImnJwklP5UVVPKZvkfljeFk3Q45CAPJ5N10gJ5XoLA==
+"@emotion/is-prop-valid@^0.6.1":
+ version "0.6.8"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz#68ad02831da41213a2089d2cab4e8ac8b30cbd85"
+ integrity sha512-IMSL7ekYhmFlILXcouA6ket3vV7u9BqStlXzbKOF9HBtpUPMMlHU+bBxrLOa2NvleVwNIxeq/zL8LafLbeUXcA==
dependencies:
- "@emotion/memoize" "0.7.1"
+ "@emotion/memoize" "^0.6.6"
-"@emotion/memoize@0.7.1":
+"@emotion/memoize@^0.6.1", "@emotion/memoize@^0.6.6":
+ version "0.6.6"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.6.tgz#004b98298d04c7ca3b4f50ca2035d4f60d2eed1b"
+ integrity sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==
+
+"@emotion/serialize@^0.9.1":
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.9.1.tgz#a494982a6920730dba6303eb018220a2b629c145"
+ integrity sha512-zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==
+ dependencies:
+ "@emotion/hash" "^0.6.6"
+ "@emotion/memoize" "^0.6.6"
+ "@emotion/unitless" "^0.6.7"
+ "@emotion/utils" "^0.8.2"
+
+"@emotion/stylis@^0.7.0":
version "0.7.1"
- resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.1.tgz#e93c13942592cf5ef01aa8297444dc192beee52f"
- integrity sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==
+ resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.7.1.tgz#50f63225e712d99e2b2b39c19c70fff023793ca5"
+ integrity sha512-/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==
-"@emotion/unitless@^0.7.0":
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.3.tgz#6310a047f12d21a1036fb031317219892440416f"
- integrity sha512-4zAPlpDEh2VwXswwr/t8xGNDGg8RQiPxtxZ3qQEXyQsBV39ptTdESCjuBvGze1nLMVrxmTIKmnO/nAV8Tqjjzg==
+"@emotion/unitless@^0.6.2", "@emotion/unitless@^0.6.7":
+ version "0.6.7"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.6.7.tgz#53e9f1892f725b194d5e6a1684a7b394df592397"
+ integrity sha512-Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==
+
+"@emotion/utils@^0.8.2":
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.8.2.tgz#576ff7fb1230185b619a75d258cbc98f0867a8dc"
+ integrity sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==
"@marionebl/sander@^0.6.0":
version "0.6.1"
@@ -1237,6 +1267,11 @@ autoprefixer@^6.3.1:
postcss "^5.2.16"
postcss-value-parser "^3.2.3"
+autoscroll-react@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/autoscroll-react/-/autoscroll-react-3.2.0.tgz#eec26a4f3ef57173a724c356af02f3df5ab03342"
+ integrity sha512-HOiwy9GGTSk9WZwEPd+FwNLLZ17o5wkjAtAb+RtQUr/2J1PT2KRG+OI6LoGtfY5EwWvQKAbSsjkgLvLhItscSg==
+
aws-sdk@^2.9.0:
version "2.475.0"
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.475.0.tgz#69f0f9c97e591fad98a31a4b40dd15bde000cf1e"
@@ -1524,15 +1559,32 @@ babel-plugin-check-es2015-constants@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-"babel-plugin-styled-components@>= 1":
- version "1.10.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.1.tgz#cc89ac5a13476ce675e13fbe53a826f9bb0ca4cd"
- integrity sha512-F6R2TnPGNN6iuXCs0xQ+EsrunwNoWI55J5I8Pkd/+fzzbv1I4gFgTaZepMOVpLobYWU2XaLIm+73L0zD3CnOdQ==
+babel-plugin-emotion@^9.2.11:
+ version "9.2.11"
+ resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz#319c005a9ee1d15bb447f59fe504c35fd5807728"
+ integrity sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-module-imports" "^7.0.0"
+ "@emotion/babel-utils" "^0.6.4"
+ "@emotion/hash" "^0.6.2"
+ "@emotion/memoize" "^0.6.1"
+ "@emotion/stylis" "^0.7.0"
+ babel-plugin-macros "^2.0.0"
babel-plugin-syntax-jsx "^6.18.0"
- lodash "^4.17.11"
+ convert-source-map "^1.5.0"
+ find-root "^1.1.0"
+ mkdirp "^0.5.1"
+ source-map "^0.5.7"
+ touch "^2.0.1"
+
+babel-plugin-macros@^2.0.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.6.1.tgz#41f7ead616fc36f6a93180e89697f69f51671181"
+ integrity sha512-6W2nwiXme6j1n2erPOnmRiWfObUhWH7Qw1LMi9XZy8cj+KtESu3T6asZvtk5bMQQjX8te35o7CFueiSdL/2NmQ==
+ dependencies:
+ "@babel/runtime" "^7.4.2"
+ cosmiconfig "^5.2.0"
+ resolve "^1.10.0"
babel-plugin-syntax-async-functions@^6.1.4, babel-plugin-syntax-async-functions@^6.8.0:
version "6.13.0"
@@ -2476,11 +2528,6 @@ camelcase@^5.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-camelize@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
- integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
-
caniuse-api@^1.5.2:
version "1.6.1"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
@@ -3045,6 +3092,17 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+console-feed@^2.8.8:
+ version "2.8.8"
+ resolved "https://registry.yarnpkg.com/console-feed/-/console-feed-2.8.8.tgz#c02054e8b1ae4c4562d4d7539aee83a426c9b1bb"
+ integrity sha512-tqONbPYrolH9Gn8yMc+7sBZG9F9FkNJM68ziG5dInznBOHbHNua+Mq0S70EgvkhEpE9AifvV9d7EX2Jm5yDw2w==
+ dependencies:
+ emotion "^9.1.1"
+ emotion-theming "^9.0.0"
+ linkifyjs "^2.1.6"
+ react-emotion "^9.1.1"
+ react-inspector "^2.2.2"
+
console-polyfill@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/console-polyfill/-/console-polyfill-0.1.2.tgz#96cfed51caf78189f699572e6f18271dc37c0e30"
@@ -3201,6 +3259,26 @@ crc32-stream@~0.3.1:
buffer-crc32 "~0.2.1"
readable-stream "~1.0.24"
+create-emotion-styled@^9.2.8:
+ version "9.2.8"
+ resolved "https://registry.yarnpkg.com/create-emotion-styled/-/create-emotion-styled-9.2.8.tgz#c0050e768ba439609bec108600467adf2de67cc3"
+ integrity sha512-2LrNM5MREWzI5hZK+LyiBHglwE18WE3AEbBQgpHQ1+zmyLSm/dJsUZBeFAwuIMb+TjNZP0KsMZlV776ufOtFdg==
+ dependencies:
+ "@emotion/is-prop-valid" "^0.6.1"
+
+create-emotion@^9.2.12:
+ version "9.2.12"
+ resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-9.2.12.tgz#0fc8e7f92c4f8bb924b0fef6781f66b1d07cb26f"
+ integrity sha512-P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA==
+ dependencies:
+ "@emotion/hash" "^0.6.2"
+ "@emotion/memoize" "^0.6.1"
+ "@emotion/stylis" "^0.7.0"
+ "@emotion/unitless" "^0.6.2"
+ csstype "^2.5.2"
+ stylis "^3.5.0"
+ stylis-rule-sheet "^0.0.10"
+
create-error-class@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
@@ -3278,11 +3356,6 @@ cson@^3.0.2:
requirefresh "^2.0.0"
safefs "^4.0.0"
-css-color-keywords@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
- integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=
-
css-color-names@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
@@ -3313,15 +3386,6 @@ css-stringify@1.0.5:
resolved "https://registry.yarnpkg.com/css-stringify/-/css-stringify-1.0.5.tgz#b0d042946db2953bb9d292900a6cb5f6d0122031"
integrity sha1-sNBClG2ylTu50pKQCmy19tASIDE=
-css-to-react-native@^2.2.2:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.3.1.tgz#cf0f61e0514846e2d4dc188b0886e29d8bef64a2"
- integrity sha512-yO+oEx1Lf+hDKasqQRVrAvzMCz825Huh1VMlEEDlRWyAhFb/FWb6I0KpEF1PkyKQ7NEdcx9d5M2ZEWgJAsgPvQ==
- dependencies:
- camelize "^1.0.0"
- css-color-keywords "^1.0.0"
- postcss-value-parser "^3.3.0"
-
css-vendor@^2.0.1:
version "2.0.5"
resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.5.tgz#949c58fd5307e79a9417daa0939506f0e5d0a187"
@@ -4245,6 +4309,21 @@ emojis-list@^2.0.0:
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
+emotion-theming@^9.0.0:
+ version "9.2.9"
+ resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-9.2.9.tgz#2bfd77fdd47d3f5e60d59d97dd4cea4622657220"
+ integrity sha512-Ncyr1WocmDDrTbuYAzklIUC5iKiGtHy3e5ymoFXcka6SuvZl/EDMawegk4wVp72Agrcm1xemab3QOHfnOkpoMA==
+ dependencies:
+ hoist-non-react-statics "^2.3.1"
+
+emotion@^9.1.1:
+ version "9.2.12"
+ resolved "https://registry.yarnpkg.com/emotion/-/emotion-9.2.12.tgz#53925aaa005614e65c6e43db8243c843574d1ea9"
+ integrity sha512-hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ==
+ dependencies:
+ babel-plugin-emotion "^9.2.11"
+ create-emotion "^9.2.12"
+
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
@@ -4888,6 +4967,11 @@ find-npm-prefix@^1.0.2:
resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf"
integrity sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==
+find-root@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+ integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@@ -5746,6 +5830,11 @@ hoek@2.x.x:
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=
+hoist-non-react-statics@^2.3.1:
+ version "2.5.5"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
+ integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
+
hoist-non-react-statics@^3.2.1, hoist-non-react-statics@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b"
@@ -6209,6 +6298,14 @@ is-directory@^0.3.1:
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+is-dom@^1.0.9:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-dom/-/is-dom-1.1.0.tgz#af1fced292742443bb59ca3f76ab5e80907b4e8a"
+ integrity sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==
+ dependencies:
+ is-object "^1.0.1"
+ is-window "^1.0.2"
+
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
@@ -6346,6 +6443,11 @@ is-obj@^2.0.0:
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+is-object@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
+ integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA=
+
is-path-inside@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
@@ -6470,10 +6572,10 @@ is-utf8@^0.2.0:
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
-is-what@^3.2.3:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.2.3.tgz#50f76f1bd8e56967e15765d1d34302513701997b"
- integrity sha512-c4syLgFnjXTH5qd82Fp/qtUIeM0wA69xbI0KH1QpurMIvDaZFrS8UtAa4U52Dc2qSznaMxHit0gErMp6A/Qk1w==
+is-window@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-window/-/is-window-1.0.2.tgz#2c896ca53db97de45d3c33133a65d8c9f563480d"
+ integrity sha1-LIlspT25feRdPDMTOmXYyfVjSA0=
is-windows@^1.0.1, is-windows@^1.0.2:
version "1.0.2"
@@ -6615,6 +6717,11 @@ jmespath@0.15.0:
resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217"
integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=
+jquery@^3.3.1:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2"
+ integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==
+
js-base64@^2.1.9:
version "2.5.1"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
@@ -7138,6 +7245,15 @@ libnpx@^10.2.0:
y18n "^4.0.0"
yargs "^11.0.0"
+linkifyjs@^2.1.6:
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-2.1.8.tgz#2bee2272674dc196cce3740b8436c43df2162f9c"
+ integrity sha512-j3QpiEr4UYzN5foKhrr9Sr06VI9vSlI4HisDWt+7Mq+TWDwpJ6H/LLpogYsXcyUIJLVhGblXXdUnblHsVNMPpg==
+ optionalDependencies:
+ jquery "^3.3.1"
+ react "^16.4.2"
+ react-dom "^16.4.2"
+
load-json-file@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -7596,11 +7712,6 @@ mem@^4.0.0:
mimic-fn "^2.0.0"
p-is-promise "^2.0.0"
-memoize-one@^5.0.0:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.4.tgz#005928aced5c43d890a4dfab18ca908b0ec92cbc"
- integrity sha512-P0z5IeAH6qHHGkJIXWw0xC2HNEgkx/9uWWBQw64FJj3/ol14VYdfVGWWr0fXfjhhv3TKVIqUq65os6O4GUNksA==
-
memorystream@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
@@ -7652,13 +7763,6 @@ meow@^4.0.0:
redent "^2.0.0"
trim-newlines "^2.0.0"
-merge-anything@^2.2.4:
- version "2.2.5"
- resolved "https://registry.yarnpkg.com/merge-anything/-/merge-anything-2.2.5.tgz#37ef13f36359ee64f09c657d2cef45f7e29493f9"
- integrity sha512-WgZGR7EQ1D8pyh57uKBbkPhUCJZLGdMzbDaxL4MDTJSGsvtpGdm8myr6DDtgJwT46xiFBlHqxbveDRpFBWlKWQ==
- dependencies:
- is-what "^3.2.3"
-
merge2@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5"
@@ -9443,7 +9547,7 @@ promzard@^0.3.0:
dependencies:
read "1"
-prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
+prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, 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==
@@ -9610,7 +9714,7 @@ rcedit@^1.0.0:
resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-1.1.2.tgz#7a28edf981953f75b5f3e5d4cbc1f9ffa0abbc78"
integrity sha512-z2ypB4gbINhI6wVe0JJMmdpmOpmNc4g90sE6/6JSuch5kYnjfz9CxvVPqqhShgR6GIkmtW3W2UlfiXhWljA0Fw==
-react-dom@^16.8.6:
+react-dom@^16.4.2, react-dom@^16.8.6:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==
@@ -9620,6 +9724,14 @@ react-dom@^16.8.6:
prop-types "^15.6.2"
scheduler "^0.13.6"
+react-emotion@^9.1.1:
+ version "9.2.12"
+ resolved "https://registry.yarnpkg.com/react-emotion/-/react-emotion-9.2.12.tgz#74d1494f89e22d0b9442e92a33ca052461955c83"
+ integrity sha512-qt7XbxnEKX5sZ73rERJ92JMbEOoyOwG3BuCRFRkXrsJhEe+rFBRTljRw7yOLHZUCQC4GBObZhjXIduQ8S0ZpYw==
+ dependencies:
+ babel-plugin-emotion "^9.2.11"
+ create-emotion-styled "^9.2.8"
+
react-event-listener@^0.6.6:
version "0.6.6"
resolved "https://registry.yarnpkg.com/react-event-listener/-/react-event-listener-0.6.6.tgz#758f7b991cad9086dd39fd29fad72127e1d8962a"
@@ -9644,7 +9756,16 @@ react-hot-loader@^4.12.0:
shallowequal "^1.0.2"
source-map "^0.7.3"
-react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1:
+react-inspector@^2.2.2:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c"
+ integrity sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q==
+ dependencies:
+ babel-runtime "^6.26.0"
+ is-dom "^1.0.9"
+ prop-types "^15.6.1"
+
+react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
@@ -9654,16 +9775,6 @@ react-lifecycles-compat@^3.0.4:
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
-react-terminal-component@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/react-terminal-component/-/react-terminal-component-1.4.1.tgz#0d15383389db67667a94195c8855afe66a151f8d"
- integrity sha512-cPgW+A9UfYo4c4ff6KsE09Pb84ftPuEhZvmh/DDVgY6qMovYr5nNSh1ZPr/RDCZxak9Fsw2QCBct6ytuEJCZjA==
- dependencies:
- javascript-terminal "^1.0.3"
- prop-types "^15.7.2"
- styled-components "^4.3.2"
- styled-theming "^2.2.0"
-
react-transition-group@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.1.1.tgz#16efe9ac8c68306f6bef59c7da5a96b4dfd9fb32"
@@ -9674,7 +9785,7 @@ react-transition-group@^4.0.0:
loose-envify "^1.4.0"
prop-types "^15.6.2"
-react@^16.8.6:
+react@^16.4.2, react@^16.8.6:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==
@@ -10699,7 +10810,7 @@ source-map@^0.6.1, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@^0.7.3:
+source-map@^0.7.2, source-map@^0.7.3:
version "0.7.3"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
@@ -11014,30 +11125,6 @@ strip-json-comments@~2.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-styled-components@^4.3.2:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-4.3.2.tgz#4ca81918c812d3006f60ac5fdec7d6b64a9509cc"
- integrity sha512-NppHzIFavZ3TsIU3R1omtddJ0Bv1+j50AKh3ZWyXHuFvJq1I8qkQ5mZ7uQgD89Y8zJNx2qRo6RqAH1BmoVafHw==
- dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@emotion/is-prop-valid" "^0.8.1"
- "@emotion/unitless" "^0.7.0"
- babel-plugin-styled-components ">= 1"
- css-to-react-native "^2.2.2"
- memoize-one "^5.0.0"
- merge-anything "^2.2.4"
- prop-types "^15.5.4"
- react-is "^16.6.0"
- stylis "^3.5.0"
- stylis-rule-sheet "^0.0.10"
- supports-color "^5.5.0"
-
-styled-theming@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/styled-theming/-/styled-theming-2.2.0.tgz#3084e43d40eaab4bc11ebafd3de04e3622fee37e"
- integrity sha1-MITkPUDqq0vBHrr9PeBONiL+434=
-
stylis-rule-sheet@^0.0.10:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430"
@@ -11101,7 +11188,7 @@ supports-color@^3.1.0, supports-color@^3.2.3:
dependencies:
has-flag "^1.0.0"
-supports-color@^5.0.0, supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.5.0:
+supports-color@^5.0.0, supports-color@^5.2.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==
@@ -11377,6 +11464,13 @@ touch@0.0.3:
dependencies:
nopt "~1.0.10"
+touch@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/touch/-/touch-2.0.2.tgz#ca0b2a3ae3211246a61b16ba9e6cbf1596287164"
+ integrity sha512-qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A==
+ dependencies:
+ nopt "~1.0.10"
+
tough-cookie@^2.2.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"