add: button to pause connection refresh
This commit is contained in:
parent
b1d44d6455
commit
aceb1b4a36
19 changed files with 534 additions and 372 deletions
|
@ -1,14 +1,36 @@
|
|||
---
|
||||
parser: '@typescript-eslint/parser'
|
||||
parserOptions:
|
||||
project: tsconfig.json
|
||||
sourceType: module
|
||||
|
||||
extends:
|
||||
- 'plugin:@typescript-eslint/recommended'
|
||||
- 'prettier'
|
||||
- prettier/@typescript-eslint
|
||||
- react-app
|
||||
- eslint:recommended
|
||||
|
||||
env:
|
||||
node: true
|
||||
jest: true
|
||||
|
||||
globals:
|
||||
__DEV__: true
|
||||
# Promise: true
|
||||
|
||||
rules:
|
||||
quotes: ["error", "single"]
|
||||
strict: ["error", "never"]
|
||||
no-console: "warn"
|
||||
'@typescript-eslint/interface-name-prefix': 'off'
|
||||
'@typescript-eslint/explicit-function-return-type': 'off'
|
||||
'@typescript-eslint/no-explicit-any': 'off'
|
||||
'@typescript-eslint/camelcase': 'off'
|
||||
'@typescript-eslint/no-unused-vars':
|
||||
- 'error'
|
||||
- { argsIgnorePattern: '^_' }
|
||||
'@typescript-eslint/no-use-before-define':
|
||||
- error
|
||||
- functions: false
|
||||
|
||||
react-hooks/rules-of-hooks: error
|
||||
|
||||
# quotes: ["error", "single"]
|
||||
# strict: ["error", "never"]
|
||||
# no-console: "warn"
|
||||
|
|
35
package.json
35
package.json
|
@ -3,7 +3,7 @@
|
|||
"version": "0.1.13",
|
||||
"description": "Yet another Clash dashboard",
|
||||
"scripts": {
|
||||
"lint": "eslint --cache src",
|
||||
"lint": "eslint --fix --cache src",
|
||||
"start": "NODE_ENV=development node server.js",
|
||||
"build": "NODE_ENV=production webpack -p --progress",
|
||||
"pretty": "prettier --single-quote --write 'src/**/*.{js,scss}'"
|
||||
|
@ -37,8 +37,9 @@
|
|||
"@sentry/browser": "^5.15.0",
|
||||
"chart.js": "^2.9.2",
|
||||
"classnames": "^2.2.6",
|
||||
"clsx": "^1.1.0",
|
||||
"core-js": "^3.6.2",
|
||||
"date-fns": "^2.8.1",
|
||||
"date-fns": "^2.13.0",
|
||||
"framer-motion": "^1.10.0",
|
||||
"history": "^4.7.2",
|
||||
"immer": "^5.1.0",
|
||||
|
@ -57,7 +58,7 @@
|
|||
"react-switch": "^5.0.1",
|
||||
"react-table": "7.0.0-rc.15",
|
||||
"react-tabs": "^3.1.0",
|
||||
"react-tiny-fab": "^3.4.1",
|
||||
"react-tiny-fab": "^3.5.0",
|
||||
"react-window": "^1.8.5",
|
||||
"regenerator-runtime": "^0.13.2",
|
||||
"reselect": "^4.0.0"
|
||||
|
@ -74,9 +75,10 @@
|
|||
"@hsjs/react-refresh-webpack-plugin": "^0.1.3",
|
||||
"@pmmmwh/react-refresh-webpack-plugin": "^0.2.0",
|
||||
"@types/jest": "^25.2.1",
|
||||
"@types/react": "^16.9.34",
|
||||
"@typescript-eslint/eslint-plugin": "^2.30.0",
|
||||
"@typescript-eslint/parser": "^2.30.0",
|
||||
"@types/react": "^16.9.35",
|
||||
"@types/react-dom": "^16.9.8",
|
||||
"@typescript-eslint/eslint-plugin": "2.32.1-alpha.2",
|
||||
"@typescript-eslint/parser": "2.32.1-alpha.2",
|
||||
"autoprefixer": "^9.7.3",
|
||||
"babel-eslint": "10.x",
|
||||
"babel-loader": "^8.0.5",
|
||||
|
@ -84,21 +86,24 @@
|
|||
"copy-webpack-plugin": "^5.1.1",
|
||||
"css-loader": "^3.4.2",
|
||||
"cssnano": "^4.1.7",
|
||||
"eslint": "6.x",
|
||||
"eslint": "^7.0.0",
|
||||
"eslint-config-airbnb-base": "^14.1.0",
|
||||
"eslint-config-prettier": "^6.11.0",
|
||||
"eslint-config-react-app": "^5.2.1",
|
||||
"eslint-import-resolver-webpack": "^0.12.0",
|
||||
"eslint-plugin-flowtype": "4.x",
|
||||
"eslint-plugin-import": "2.x",
|
||||
"eslint-plugin-jest": "^23.6.0",
|
||||
"eslint-plugin-import": "^2.20.2",
|
||||
"eslint-plugin-jest": "^23.10.0",
|
||||
"eslint-plugin-jsx-a11y": "6.x",
|
||||
"eslint-plugin-react": "7.x",
|
||||
"eslint-plugin-react-hooks": "2.x",
|
||||
"eslint-plugin-react-hooks": "^4.0.0",
|
||||
"eslint-plugin-simple-import-sort": "^5.0.3",
|
||||
"file-loader": "^6.0.0",
|
||||
"fork-ts-checker-notifier-webpack-plugin": "^2.0.0",
|
||||
"fork-ts-checker-webpack-plugin": "^4.1.3",
|
||||
"html-webpack-plugin": "^4.2.1",
|
||||
"html-webpack-plugin": "^4.3.0",
|
||||
"husky": "^4.0.0",
|
||||
"lint-staged": "^10.2.1",
|
||||
"lint-staged": "^10.2.2",
|
||||
"mini-css-extract-plugin": "^0.9.0",
|
||||
"postcss-custom-media": "^7.0.8",
|
||||
"postcss-extend-rule": "^3.0.0",
|
||||
|
@ -107,11 +112,11 @@
|
|||
"postcss-nested": "^4.2.0",
|
||||
"postcss-simple-vars": "^5.0.2",
|
||||
"prettier": "^2.0.4",
|
||||
"react-refresh": "^0.8.1",
|
||||
"react-refresh": "^0.8.2",
|
||||
"resize-observer-polyfill": "^1.5.1",
|
||||
"style-loader": "^1.2.1",
|
||||
"terser-webpack-plugin": "^2.3.1",
|
||||
"ts-loader": "^7.0.2",
|
||||
"terser-webpack-plugin": "^3.0.1",
|
||||
"ts-loader": "^7.0.4",
|
||||
"typescript": "^3.8.3",
|
||||
"webpack": "^4.41.6",
|
||||
"webpack-bundle-analyzer": "^3.6.0",
|
||||
|
|
|
@ -2,8 +2,8 @@ import { getURLAndInit } from '../misc/request-helper';
|
|||
|
||||
const endpoint = '/connections';
|
||||
|
||||
let fetched = false;
|
||||
let subscribers = [];
|
||||
const fetched = false;
|
||||
const subscribers = [];
|
||||
|
||||
// see also https://github.com/Dreamacro/clash/blob/dev/constant/metadata.go#L41
|
||||
type UUID = string;
|
||||
|
@ -16,7 +16,7 @@ type ConnectionItem = {
|
|||
destinationIP: string,
|
||||
sourcePort: string,
|
||||
destinationPort: string,
|
||||
host: string
|
||||
host: string,
|
||||
},
|
||||
upload: number,
|
||||
download: number,
|
||||
|
@ -24,12 +24,12 @@ type ConnectionItem = {
|
|||
start: string,
|
||||
chains: Array<string>,
|
||||
// e.g. 'Match', 'DomainKeyword'
|
||||
rule: string
|
||||
rule: string,
|
||||
};
|
||||
type ConnectionsData = {
|
||||
downloadTotal: number,
|
||||
uploadTotal: number,
|
||||
connections: Array<ConnectionItem>
|
||||
connections: Array<ConnectionItem>,
|
||||
};
|
||||
|
||||
function appendData(s) {
|
||||
|
@ -40,7 +40,7 @@ function appendData(s) {
|
|||
// eslint-disable-next-line no-console
|
||||
console.log('JSON.parse error', JSON.parse(s));
|
||||
}
|
||||
subscribers.forEach(f => f(o));
|
||||
subscribers.forEach((f) => f(o));
|
||||
}
|
||||
|
||||
function getWsUrl(apiConfig) {
|
||||
|
@ -60,10 +60,10 @@ function fetchData(apiConfig, listener) {
|
|||
wsState = 1;
|
||||
const url = getWsUrl(apiConfig);
|
||||
const ws = new WebSocket(url);
|
||||
ws.addEventListener('error', function(_ev) {
|
||||
ws.addEventListener('error', function (_ev) {
|
||||
wsState = 3;
|
||||
});
|
||||
ws.addEventListener('message', function(event) {
|
||||
ws.addEventListener('message', function (event) {
|
||||
appendData(event.data);
|
||||
});
|
||||
if (listener) return subscribe(listener);
|
||||
|
|
|
@ -22,17 +22,16 @@ const traffic = {
|
|||
if (this.down.length > this.size) this.down.shift();
|
||||
if (this.labels.length > this.size) this.labels.shift();
|
||||
|
||||
this.subscribers.forEach(f => f(o));
|
||||
this.subscribers.forEach((f) => f(o));
|
||||
},
|
||||
|
||||
subscribe(listener) {
|
||||
const me = this;
|
||||
this.subscribers.push(listener);
|
||||
return function unsubscribe() {
|
||||
const idx = me.subscribers.indexOf(listener);
|
||||
me.subscribers.splice(idx, 1);
|
||||
return () => {
|
||||
const idx = this.subscribers.indexOf(listener);
|
||||
this.subscribers.splice(idx, 1);
|
||||
};
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
let fetched = false;
|
||||
|
@ -89,14 +88,14 @@ function fetchData(apiConfig) {
|
|||
wsState = 1;
|
||||
const url = getWsUrl(apiConfig);
|
||||
const ws = new WebSocket(url);
|
||||
ws.addEventListener('error', function(_ev) {
|
||||
ws.addEventListener('error', function (_ev) {
|
||||
wsState = 3;
|
||||
});
|
||||
ws.addEventListener('close', function(_ev) {
|
||||
ws.addEventListener('close', function (_ev) {
|
||||
wsState = 3;
|
||||
fetchDataWithFetch(apiConfig);
|
||||
});
|
||||
ws.addEventListener('message', function(event) {
|
||||
ws.addEventListener('message', function (event) {
|
||||
parseAndAppend(event.data);
|
||||
});
|
||||
return traffic;
|
||||
|
@ -107,7 +106,7 @@ function fetchDataWithFetch(apiConfig) {
|
|||
fetched = true;
|
||||
const { url, init } = getURLAndInit(apiConfig);
|
||||
fetch(url + endpoint, init).then(
|
||||
response => {
|
||||
(response) => {
|
||||
if (response.ok) {
|
||||
const reader = response.body.getReader();
|
||||
pump(reader);
|
||||
|
@ -115,7 +114,7 @@ function fetchDataWithFetch(apiConfig) {
|
|||
fetched = false;
|
||||
}
|
||||
},
|
||||
err => {
|
||||
(err) => {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('fetch /traffic error', err);
|
||||
fetched = false;
|
||||
|
|
|
@ -11,8 +11,8 @@ import { getClashAPIConfig, updateClashAPIConfig } from '../store/app';
|
|||
|
||||
const { useState, useEffect, useRef, useCallback } = React;
|
||||
|
||||
const mapState = s => ({
|
||||
apiConfig: getClashAPIConfig(s)
|
||||
const mapState = (s) => ({
|
||||
apiConfig: getClashAPIConfig(s),
|
||||
});
|
||||
|
||||
function APIConfig({ apiConfig, dispatch }) {
|
||||
|
@ -46,11 +46,11 @@ function APIConfig({ apiConfig, dispatch }) {
|
|||
detectApiServer();
|
||||
}, []);
|
||||
|
||||
const handleInputOnChange = useCallback(e => {
|
||||
const handleInputOnChange = useCallback((e) => {
|
||||
userTouchedFlagRef.current = true;
|
||||
const target = e.target;
|
||||
const { name } = target;
|
||||
let value = target.value;
|
||||
const value = target.value;
|
||||
switch (name) {
|
||||
case 'port':
|
||||
setPort(value);
|
||||
|
@ -71,7 +71,7 @@ function APIConfig({ apiConfig, dispatch }) {
|
|||
}, [hostname, port, secret, dispatch]);
|
||||
|
||||
const handleContentOnKeyDown = useCallback(
|
||||
e => {
|
||||
(e) => {
|
||||
// enter keyCode is 13
|
||||
if (e.keyCode !== 13) return;
|
||||
updateConfig();
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
import React from 'react';
|
||||
import cx from 'classnames';
|
||||
|
||||
import type { Node, Element, SyntheticEvent } from 'react';
|
||||
import * as React from 'react';
|
||||
import cx from 'clsx';
|
||||
|
||||
import { LoadingDot } from './shared/Basic';
|
||||
|
||||
|
@ -9,17 +7,21 @@ import s0 from './Button.module.css';
|
|||
|
||||
const { memo, forwardRef, useCallback } = React;
|
||||
|
||||
type ButtonProps = {
|
||||
children?: Node,
|
||||
label?: string,
|
||||
text?: string,
|
||||
isLoading?: boolean,
|
||||
start?: Element | (() => Element),
|
||||
onClick?: (SyntheticEvent<HTMLButtonElement>) => mixed,
|
||||
kind?: 'primary' | 'minimal',
|
||||
className?: string
|
||||
type ButtonInternalProps = {
|
||||
children?: React.ReactChildren;
|
||||
label?: string;
|
||||
text?: string;
|
||||
start?: React.ReactElement | (() => React.ReactElement);
|
||||
};
|
||||
function Button(props: ButtonProps, ref) {
|
||||
|
||||
type ButtonProps = {
|
||||
isLoading?: boolean;
|
||||
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => unknown;
|
||||
kind?: 'primary' | 'minimal';
|
||||
className?: string;
|
||||
} & ButtonInternalProps;
|
||||
|
||||
function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement>) {
|
||||
const {
|
||||
onClick,
|
||||
isLoading,
|
||||
|
@ -28,7 +30,7 @@ function Button(props: ButtonProps, ref) {
|
|||
...restProps
|
||||
} = props;
|
||||
const internalOnClick = useCallback(
|
||||
e => {
|
||||
(e) => {
|
||||
if (isLoading) return;
|
||||
onClick && onClick(e);
|
||||
},
|
||||
|
@ -37,7 +39,7 @@ function Button(props: ButtonProps, ref) {
|
|||
const btnClassName = cx(
|
||||
s0.btn,
|
||||
{
|
||||
[s0.minimal]: kind === 'minimal'
|
||||
[s0.minimal]: kind === 'minimal',
|
||||
},
|
||||
className
|
||||
);
|
||||
|
@ -48,7 +50,7 @@ function Button(props: ButtonProps, ref) {
|
|||
<span
|
||||
style={{
|
||||
display: 'inline-flex',
|
||||
opacity: 0
|
||||
opacity: 0,
|
||||
}}
|
||||
>
|
||||
<ButtonInternal {...restProps} />
|
||||
|
@ -64,7 +66,7 @@ function Button(props: ButtonProps, ref) {
|
|||
);
|
||||
}
|
||||
|
||||
function ButtonInternal({ children, label, text, start }) {
|
||||
function ButtonInternal({ children, label, text, start }: ButtonInternalProps) {
|
||||
return (
|
||||
<>
|
||||
{start ? (
|
|
@ -7,7 +7,7 @@ import {
|
|||
getClashAPIConfig,
|
||||
getSelectedChartStyleIndex,
|
||||
getLatencyTestUrl,
|
||||
clearStorage
|
||||
clearStorage,
|
||||
} from '../store/app';
|
||||
|
||||
import ContentHeader from './ContentHeader';
|
||||
|
@ -27,50 +27,50 @@ const propsList = [{ id: 0 }, { id: 1 }, { id: 2 }, { id: 3 }];
|
|||
const optionsRule = [
|
||||
{
|
||||
label: 'Global',
|
||||
value: 'Global'
|
||||
value: 'Global',
|
||||
},
|
||||
{
|
||||
label: 'Rule',
|
||||
value: 'Rule'
|
||||
value: 'Rule',
|
||||
},
|
||||
{
|
||||
label: 'Direct',
|
||||
value: 'Direct'
|
||||
}
|
||||
value: 'Direct',
|
||||
},
|
||||
];
|
||||
|
||||
const optionsLogLevel = [
|
||||
{
|
||||
label: 'info',
|
||||
value: 'info'
|
||||
value: 'info',
|
||||
},
|
||||
{
|
||||
label: 'warning',
|
||||
value: 'warning'
|
||||
value: 'warning',
|
||||
},
|
||||
{
|
||||
label: 'error',
|
||||
value: 'error'
|
||||
value: 'error',
|
||||
},
|
||||
{
|
||||
label: 'debug',
|
||||
value: 'debug'
|
||||
value: 'debug',
|
||||
},
|
||||
{
|
||||
label: 'silent',
|
||||
value: 'silent'
|
||||
}
|
||||
value: 'silent',
|
||||
},
|
||||
];
|
||||
|
||||
const mapState = s => ({
|
||||
const mapState = (s) => ({
|
||||
configs: getConfigs(s),
|
||||
apiConfig: getClashAPIConfig(s)
|
||||
apiConfig: getClashAPIConfig(s),
|
||||
});
|
||||
|
||||
const mapState2 = s => ({
|
||||
const mapState2 = (s) => ({
|
||||
selectedChartStyleIndex: getSelectedChartStyleIndex(s),
|
||||
latencyTestUrl: getLatencyTestUrl(s),
|
||||
apiConfig: getClashAPIConfig(s)
|
||||
apiConfig: getClashAPIConfig(s),
|
||||
});
|
||||
|
||||
const Config = connect(mapState2)(ConfigImpl);
|
||||
|
@ -88,7 +88,7 @@ function ConfigImpl({
|
|||
configs,
|
||||
selectedChartStyleIndex,
|
||||
latencyTestUrl,
|
||||
apiConfig
|
||||
apiConfig,
|
||||
}) {
|
||||
const [configState, setConfigStateInternal] = useState(configs);
|
||||
const refConfigs = useRef(configs);
|
||||
|
@ -103,14 +103,14 @@ function ConfigImpl({
|
|||
(name, val) => {
|
||||
setConfigStateInternal({
|
||||
...configState,
|
||||
[name]: val
|
||||
[name]: val,
|
||||
});
|
||||
},
|
||||
[configState]
|
||||
);
|
||||
|
||||
const handleSwitchOnChange = useCallback(
|
||||
checked => {
|
||||
(checked) => {
|
||||
const name = 'allow-lan';
|
||||
const value = checked;
|
||||
setConfigState(name, value);
|
||||
|
@ -120,10 +120,10 @@ function ConfigImpl({
|
|||
);
|
||||
|
||||
const handleInputOnChange = useCallback(
|
||||
e => {
|
||||
(e) => {
|
||||
const target = e.target;
|
||||
const { name } = target;
|
||||
let { value } = target;
|
||||
const { value } = target;
|
||||
switch (target.name) {
|
||||
case 'mode':
|
||||
case 'log-level':
|
||||
|
@ -149,7 +149,7 @@ function ConfigImpl({
|
|||
const { selectChartStyleIndex, updateAppConfig } = useStoreActions();
|
||||
|
||||
const handleInputOnBlur = useCallback(
|
||||
e => {
|
||||
(e) => {
|
||||
const target = e.target;
|
||||
const { name, value } = target;
|
||||
switch (name) {
|
||||
|
@ -269,5 +269,5 @@ function ConfigImpl({
|
|||
}
|
||||
|
||||
Config.propTypes = {
|
||||
configs: PropTypes.object
|
||||
configs: PropTypes.object,
|
||||
};
|
||||
|
|
|
@ -3,18 +3,18 @@ import ContentHeader from './ContentHeader';
|
|||
import ConnectionTable from './ConnectionTable';
|
||||
import useRemainingViewPortHeight from '../hooks/useRemainingViewPortHeight';
|
||||
import { getClashAPIConfig } from '../store/app';
|
||||
import { X as IconClose } from 'react-feather';
|
||||
import { X as IconClose, Pause, Play } from 'react-feather';
|
||||
import { Tab, Tabs, TabList, TabPanel } from 'react-tabs';
|
||||
import SvgYacd from './SvgYacd';
|
||||
import Button from './Button';
|
||||
import ModalCloseAllConnections from './ModalCloseAllConnections';
|
||||
import { connect } from './StateProvider';
|
||||
import * as connAPI from '../api/connections';
|
||||
import { Fab, Action, position as fabPosition } from './shared/Fab';
|
||||
|
||||
import './Connections.css';
|
||||
import s from './Connections.module.css';
|
||||
|
||||
const { useEffect, useState, useRef, useCallback, useMemo } = React;
|
||||
const { useEffect, useState, useRef, useCallback } = React;
|
||||
|
||||
const paddingBottom = 30;
|
||||
|
||||
|
@ -29,13 +29,14 @@ function arrayToIdKv(items) {
|
|||
|
||||
function formatConnectionDataItem(i, prevKv) {
|
||||
const { id, metadata, upload, download, start, chains, rule } = i;
|
||||
// eslint-disable-next-line prefer-const
|
||||
let { host, destinationPort, destinationIP } = metadata;
|
||||
// host could be an empty string if it's direct IP connection
|
||||
if (host === '') host = destinationIP;
|
||||
const metadataNext = {
|
||||
...metadata,
|
||||
// merge host and destinationPort into one column
|
||||
host: host + ':' + destinationPort
|
||||
host: host + ':' + destinationPort,
|
||||
};
|
||||
// const started = formatDistance(new Date(start), now);
|
||||
const ret = {
|
||||
|
@ -45,7 +46,7 @@ function formatConnectionDataItem(i, prevKv) {
|
|||
start: 0 - new Date(start),
|
||||
chains: chains.reverse().join(' / '),
|
||||
rule,
|
||||
...metadataNext
|
||||
...metadataNext,
|
||||
};
|
||||
const prev = prevKv[id];
|
||||
ret.downloadSpeedCurr = download - (prev ? prev.download : 0);
|
||||
|
@ -77,35 +78,44 @@ function Conn({ apiConfig }) {
|
|||
() => setIsCloseAllModalOpen(false),
|
||||
[]
|
||||
);
|
||||
const [isRefreshPaused, setIsRefreshPaused] = useState(false);
|
||||
const toggleIsRefreshPaused = useCallback(() => {
|
||||
setIsRefreshPaused((x) => !x);
|
||||
}, []);
|
||||
const closeAllConnections = useCallback(() => {
|
||||
connAPI.closeAllConnections(apiConfig);
|
||||
closeCloseAllModal();
|
||||
}, [apiConfig, closeCloseAllModal]);
|
||||
const iconClose = useMemo(() => <IconClose width={16} />, []);
|
||||
const prevConnsRef = useRef(conns);
|
||||
const read = useCallback(
|
||||
({ connections }) => {
|
||||
const prevConnsKv = arrayToIdKv(prevConnsRef.current);
|
||||
const x = connections.map(c => formatConnectionDataItem(c, prevConnsKv));
|
||||
const x = connections.map((c) =>
|
||||
formatConnectionDataItem(c, prevConnsKv)
|
||||
);
|
||||
const closed = [];
|
||||
for (const c of prevConnsRef.current) {
|
||||
const idx = x.findIndex(conn => conn.id === c.id);
|
||||
const idx = x.findIndex((conn) => conn.id === c.id);
|
||||
if (idx < 0) closed.push(c);
|
||||
}
|
||||
setClosedConns(prev => {
|
||||
setClosedConns((prev) => {
|
||||
// keep max 100 entries
|
||||
return [...closed, ...prev].slice(0, 101);
|
||||
});
|
||||
// if previous connections and current connections are both empty
|
||||
// arrays, we wont update state to avaoid rerender
|
||||
if (x && (x.length !== 0 || prevConnsRef.current.length !== 0)) {
|
||||
if (
|
||||
x &&
|
||||
(x.length !== 0 || prevConnsRef.current.length !== 0) &&
|
||||
!isRefreshPaused
|
||||
) {
|
||||
prevConnsRef.current = x;
|
||||
setConns(x);
|
||||
} else {
|
||||
prevConnsRef.current = x;
|
||||
}
|
||||
},
|
||||
[setConns]
|
||||
[setConns, isRefreshPaused]
|
||||
);
|
||||
useEffect(() => {
|
||||
return connAPI.fetchData(apiConfig, read);
|
||||
|
@ -135,18 +145,33 @@ function Conn({ apiConfig }) {
|
|||
<div
|
||||
style={{
|
||||
height: containerHeight - paddingBottom,
|
||||
overflow: 'auto'
|
||||
overflow: 'auto',
|
||||
}}
|
||||
>
|
||||
<TabPanel>
|
||||
<>{renderTableOrPlaceholder(conns)}</>
|
||||
<div className="fabgrp">
|
||||
<Button
|
||||
text="Close"
|
||||
start={iconClose}
|
||||
<Fab
|
||||
icon={
|
||||
isRefreshPaused ? <Play size={16} /> : <Pause size={16} />
|
||||
}
|
||||
mainButtonStyles={
|
||||
isRefreshPaused
|
||||
? {
|
||||
background: '#e74c3c',
|
||||
}
|
||||
: {}
|
||||
}
|
||||
position={fabPosition}
|
||||
text={isRefreshPaused ? 'Resume Refresh' : 'Pause Refresh'}
|
||||
onClick={toggleIsRefreshPaused}
|
||||
>
|
||||
<Action
|
||||
text="Close All Connections"
|
||||
onClick={openCloseAllModal}
|
||||
/>
|
||||
</div>
|
||||
>
|
||||
<IconClose size={10} />
|
||||
</Action>
|
||||
</Fab>
|
||||
</TabPanel>
|
||||
<TabPanel>{renderTableOrPlaceholder(closedConns)}</TabPanel>
|
||||
</div>
|
||||
|
@ -161,8 +186,8 @@ function Conn({ apiConfig }) {
|
|||
);
|
||||
}
|
||||
|
||||
const mapState = s => ({
|
||||
apiConfig: getClashAPIConfig(s)
|
||||
const mapState = (s) => ({
|
||||
apiConfig: getClashAPIConfig(s),
|
||||
});
|
||||
|
||||
export default connect(mapState)(Conn);
|
||||
|
|
|
@ -11,9 +11,8 @@ import Equalizer from './svg/Equalizer';
|
|||
import { Zap } from 'react-feather';
|
||||
|
||||
import ProxyProviderList from './ProxyProviderList';
|
||||
import { Fab } from 'react-tiny-fab';
|
||||
import { Fab, position as fabPosition } from './shared/Fab';
|
||||
|
||||
import './rtf.css';
|
||||
import s0 from './Proxies.module.css';
|
||||
|
||||
import {
|
||||
|
@ -96,7 +95,8 @@ function Proxies({ dispatch, groupNames, delay, proxyProviders, apiConfig }) {
|
|||
icon={<Zap width={16} />}
|
||||
onClick={requestDelayAllFn}
|
||||
text="Test Latency"
|
||||
></Fab>
|
||||
position={fabPosition}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -18,10 +18,10 @@ const colorMap = {
|
|||
// orange
|
||||
bad: '#e67f3c',
|
||||
// bad: '#F56C6C',
|
||||
na: '#909399'
|
||||
na: '#909399',
|
||||
};
|
||||
|
||||
function getLabelColor({ number, error } = {}) {
|
||||
function getLabelColor({ number } = {}) {
|
||||
if (number < 200) {
|
||||
return colorMap.good;
|
||||
} else if (number < 400) {
|
||||
|
@ -52,10 +52,10 @@ type ProxyProps = {
|
|||
// connect injected
|
||||
// TODO refine type
|
||||
proxy: any,
|
||||
latency: any
|
||||
latency: any,
|
||||
};
|
||||
|
||||
function ProxySmallImpl({ now, name, proxy, latency }: ProxyProps) {
|
||||
function ProxySmallImpl({ now, name, latency }: ProxyProps) {
|
||||
const color = useMemo(() => getLabelColor(latency), [latency]);
|
||||
const title = useMemo(() => {
|
||||
let ret = name;
|
||||
|
@ -79,7 +79,7 @@ function Proxy({ now, name, proxy, latency }: ProxyProps) {
|
|||
<div
|
||||
className={cx(s0.proxy, {
|
||||
[s0.now]: now,
|
||||
[s0.error]: latency && latency.error
|
||||
[s0.error]: latency && latency.error,
|
||||
})}
|
||||
>
|
||||
<div className={s0.proxyName}>{name}</div>
|
||||
|
@ -100,7 +100,7 @@ const mapState = (s, { name }) => {
|
|||
const delay = getDelay(s);
|
||||
return {
|
||||
proxy: proxies[name],
|
||||
latency: delay[name]
|
||||
latency: delay[name],
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import React from 'react';
|
||||
import Button from './Button';
|
||||
import { FixedSizeList as List, areEqual } from 'react-window';
|
||||
import { RotateCw } from 'react-feather';
|
||||
|
||||
import { Fab, position as fabPosition } from './shared/Fab';
|
||||
import { connect } from './StateProvider';
|
||||
import { getClashAPIConfig } from '../store/app';
|
||||
import ContentHeader from './ContentHeader';
|
||||
|
@ -31,9 +31,9 @@ const Row = memo(({ index, style, data }) => {
|
|||
);
|
||||
}, areEqual);
|
||||
|
||||
const mapState = s => ({
|
||||
const mapState = (s) => ({
|
||||
apiConfig: getClashAPIConfig(s),
|
||||
rules: getRules(s)
|
||||
rules: getRules(s),
|
||||
});
|
||||
|
||||
export default connect(mapState)(Rules);
|
||||
|
@ -63,9 +63,13 @@ function Rules({ dispatch, apiConfig, rules }) {
|
|||
{Row}
|
||||
</List>
|
||||
</div>
|
||||
<div className="fabgrp">
|
||||
<Button text="Refresh" start={refreshIcon} onClick={fetchRulesHooked} />
|
||||
</div>
|
||||
|
||||
<Fab
|
||||
icon={refreshIcon}
|
||||
text="Refresh"
|
||||
onClick={fetchRulesHooked}
|
||||
position={fabPosition}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ const {
|
|||
useEffect,
|
||||
useCallback,
|
||||
useContext,
|
||||
useState
|
||||
useState,
|
||||
} = React;
|
||||
|
||||
export { immer };
|
||||
|
@ -58,7 +58,7 @@ export default function Provider({ initialState, actions = {}, children }) {
|
|||
);
|
||||
const boundActions = useMemo(() => bindActions(actions, dispatch), [
|
||||
actions,
|
||||
dispatch
|
||||
dispatch,
|
||||
]);
|
||||
|
||||
return (
|
||||
|
@ -73,7 +73,7 @@ export default function Provider({ initialState, actions = {}, children }) {
|
|||
}
|
||||
|
||||
export function connect(mapStateToProps) {
|
||||
return Component => {
|
||||
return (Component) => {
|
||||
const MemoComponent = memo(Component);
|
||||
function Connected(props) {
|
||||
const state = useContext(StateContext);
|
||||
|
@ -88,8 +88,8 @@ export function connect(mapStateToProps) {
|
|||
|
||||
// steal from https://github.com/reduxjs/redux/blob/master/src/bindActionCreators.ts
|
||||
function bindAction(action, dispatch) {
|
||||
return function() {
|
||||
return dispatch(action.apply(this, arguments));
|
||||
return function (...args) {
|
||||
return dispatch(action.apply(this, args));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -8,23 +8,27 @@ import Input from './Input';
|
|||
import Button from './Button';
|
||||
import { LoadingDot } from './shared/Basic';
|
||||
|
||||
const noop = () => {
|
||||
/* empty */
|
||||
};
|
||||
|
||||
const paneStyle = {
|
||||
padding: '20px 0'
|
||||
padding: '20px 0',
|
||||
};
|
||||
|
||||
const optionsRule = [
|
||||
{
|
||||
label: 'Global',
|
||||
value: 'Global'
|
||||
value: 'Global',
|
||||
},
|
||||
{
|
||||
label: 'Rule',
|
||||
value: 'Rule'
|
||||
value: 'Rule',
|
||||
},
|
||||
{
|
||||
label: 'Direct',
|
||||
value: 'Direct'
|
||||
}
|
||||
value: 'Direct',
|
||||
},
|
||||
];
|
||||
|
||||
const Pane = ({ children, style }) => (
|
||||
|
@ -34,7 +38,7 @@ const Pane = ({ children, style }) => (
|
|||
function useToggle(initialState = false) {
|
||||
const [onoff, setonoff] = React.useState(initialState);
|
||||
const handleChange = React.useCallback(() => {
|
||||
setonoff(x => !x);
|
||||
setonoff((x) => !x);
|
||||
}, []);
|
||||
return [onoff, handleChange];
|
||||
}
|
||||
|
@ -59,7 +63,7 @@ class StyleGuide extends PureComponent {
|
|||
name="test"
|
||||
options={optionsRule}
|
||||
value="Rule"
|
||||
onChange={() => {}}
|
||||
onChange={noop}
|
||||
/>
|
||||
</Pane>
|
||||
<Pane>
|
||||
|
|
|
@ -4,10 +4,10 @@ import PropTypes from 'prop-types';
|
|||
import s0 from './ToggleSwitch.module.css';
|
||||
|
||||
function ToggleSwitch({ options, value, name, onChange }) {
|
||||
const idxSelected = useMemo(() => options.map(o => o.value).indexOf(value), [
|
||||
options,
|
||||
value
|
||||
]);
|
||||
const idxSelected = useMemo(
|
||||
() => options.map((o) => o.value).indexOf(value),
|
||||
[options, value]
|
||||
);
|
||||
const w = (100 / options.length).toPrecision(3);
|
||||
return (
|
||||
<div>
|
||||
|
@ -16,12 +16,12 @@ function ToggleSwitch({ options, value, name, onChange }) {
|
|||
className={s0.slider}
|
||||
style={{
|
||||
width: w + '%',
|
||||
left: idxSelected * w + '%'
|
||||
left: idxSelected * w + '%',
|
||||
}}
|
||||
/>
|
||||
{options.map((o, idx) => {
|
||||
const id = `${name}-${o.label}`;
|
||||
let className = idx === 0 ? '' : 'border-left';
|
||||
const className = idx === 0 ? '' : 'border-left';
|
||||
return (
|
||||
<label htmlFor={id} key={id} className={className}>
|
||||
<input
|
||||
|
@ -45,7 +45,7 @@ ToggleSwitch.propTypes = {
|
|||
options: PropTypes.array,
|
||||
value: PropTypes.string,
|
||||
name: PropTypes.string,
|
||||
onChange: PropTypes.func
|
||||
onChange: PropTypes.func,
|
||||
};
|
||||
|
||||
export default React.memo(ToggleSwitch);
|
||||
|
|
9
src/components/shared/Fab.ts
Normal file
9
src/components/shared/Fab.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { Fab, Action } from 'react-tiny-fab';
|
||||
import './rtf.css';
|
||||
|
||||
export const position = {
|
||||
right: 10,
|
||||
bottom: 10,
|
||||
};
|
||||
|
||||
export { Fab, Action };
|
|
@ -12,10 +12,16 @@
|
|||
list-style: none;
|
||||
}
|
||||
.rtf.open .rtf--mb > * {
|
||||
transform-origin: center center;
|
||||
transform: rotate(360deg);
|
||||
/* transform-origin: center center; */
|
||||
/* transform: rotate(360deg); */
|
||||
transition: ease-in-out transform 0.2s;
|
||||
}
|
||||
.rtf.open .rtf--mb {
|
||||
background: rgba(56, 124, 236, 0.92);
|
||||
box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2),
|
||||
0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
|
||||
}
|
||||
|
||||
.rtf.open .rtf--mb > ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
|
@ -200,8 +206,9 @@
|
|||
}
|
||||
|
||||
.rtf--ab {
|
||||
height: 48px;
|
||||
width: 48px;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
margin-right: 4px;
|
||||
background-color: #aaaaaa;
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
|
@ -216,7 +223,6 @@
|
|||
-webkit-user-drag: none;
|
||||
font-weight: bold;
|
||||
color: #f1f1f1;
|
||||
margin-right: 4px;
|
||||
font-size: 16px;
|
||||
z-index: 10000;
|
||||
}
|
|
@ -198,7 +198,7 @@ export function requestDelayAll(apiConfig) {
|
|||
function retrieveGroupNamesFrom(proxies) {
|
||||
let groupNames = [];
|
||||
let globalAll;
|
||||
let proxyNames = [];
|
||||
const proxyNames = [];
|
||||
for (const prop in proxies) {
|
||||
const p = proxies[prop];
|
||||
if (p.all && Array.isArray(p.all)) {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"lib": ["dom", "es2015", "es2016", "es2017", "esnext"],
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"experimentalDecorators": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitAny": false,
|
||||
"noUnusedParameters": true,
|
||||
"noImplicitReturns": true,
|
||||
"noImplicitThis": true,
|
||||
|
|
540
yarn.lock
540
yarn.lock
|
@ -896,9 +896,9 @@
|
|||
"@babel/plugin-transform-react-jsx-source" "^7.9.0"
|
||||
|
||||
"@babel/runtime-corejs3@^7.8.3":
|
||||
version "7.8.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.8.7.tgz#8209d9dff2f33aa2616cb319c83fe159ffb07b8c"
|
||||
integrity sha512-sc7A+H4I8kTd7S61dgB9RomXu/C+F4IrRr4Ytze4dnfx7AXEpCrejSNpjx7vq6y/Bak9S6Kbk65a/WgMLtg43Q==
|
||||
version "7.9.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz#67aded13fffbbc2cb93247388cf84d77a4be9a71"
|
||||
integrity sha512-6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA==
|
||||
dependencies:
|
||||
core-js-pure "^3.0.0"
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
@ -1041,10 +1041,10 @@
|
|||
react-dev-utils "^9.1.0"
|
||||
sockjs-client "^1.4.0"
|
||||
|
||||
"@jest/types@^25.4.0":
|
||||
version "25.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.4.0.tgz#5afeb8f7e1cba153a28e5ac3c9fe3eede7206d59"
|
||||
integrity sha512-XBeaWNzw2PPnGW5aXvZt3+VO60M+34RY3XDsCK5tW7kyj3RK0XClRutCfjqcBuaR2aBQTbluEDME9b5MB9UAPw==
|
||||
"@jest/types@^25.5.0":
|
||||
version "25.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d"
|
||||
integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==
|
||||
dependencies:
|
||||
"@types/istanbul-lib-coverage" "^2.0.0"
|
||||
"@types/istanbul-reports" "^1.1.1"
|
||||
|
@ -1205,9 +1205,9 @@
|
|||
"@types/istanbul-lib-report" "*"
|
||||
|
||||
"@types/jest@^25.2.1":
|
||||
version "25.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.1.tgz#9544cd438607955381c1bdbdb97767a249297db5"
|
||||
integrity sha512-msra1bCaAeEdkSyA0CZ6gW1ukMIvZ5YoJkdXw/qhQdsuuDlFTcEUrUw8CLCPt2rVRUfXlClVvK2gvPs9IokZaA==
|
||||
version "25.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.2.tgz#6a752e7a00f69c3e790ea00c345029d5cefa92bf"
|
||||
integrity sha512-aRctFbG8Pb7DSLzUt/fEtL3q/GKb9mretFuYhRub2J0q6NhzBYbx9HTQzHrWgBNIxYOlxGNVe6Z54cpbUt+Few==
|
||||
dependencies:
|
||||
jest-diff "^25.2.1"
|
||||
pretty-format "^25.2.1"
|
||||
|
@ -1242,10 +1242,17 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
|
||||
integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
|
||||
|
||||
"@types/react@^16.9.34":
|
||||
version "16.9.34"
|
||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.34.tgz#f7d5e331c468f53affed17a8a4d488cd44ea9349"
|
||||
integrity sha512-8AJlYMOfPe1KGLKyHpflCg5z46n0b5DbRfqDksxBLBTUpB75ypDBAO9eCUcjNwE6LCUslwTz00yyG/X9gaVtow==
|
||||
"@types/react-dom@^16.9.8":
|
||||
version "16.9.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423"
|
||||
integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==
|
||||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react@*", "@types/react@^16.9.35":
|
||||
version "16.9.35"
|
||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.35.tgz#a0830d172e8aadd9bd41709ba2281a3124bbd368"
|
||||
integrity sha512-q0n0SsWcGc8nDqH2GJfWQWUOmZSJhXV64CjVN5SvcNti3TdEaA3AH0D8DwNmMdzjMAC/78tB8nAZIlV8yTz+zQ==
|
||||
dependencies:
|
||||
"@types/prop-types" "*"
|
||||
csstype "^2.2.0"
|
||||
|
@ -1311,75 +1318,76 @@
|
|||
integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==
|
||||
|
||||
"@types/yargs@^15.0.0":
|
||||
version "15.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299"
|
||||
integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==
|
||||
version "15.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79"
|
||||
integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==
|
||||
dependencies:
|
||||
"@types/yargs-parser" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^2.30.0":
|
||||
version "2.30.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.30.0.tgz#312a37e80542a764d96e8ad88a105316cdcd7b05"
|
||||
integrity sha512-PGejii0qIZ9Q40RB2jIHyUpRWs1GJuHP1pkoCiaeicfwO9z7Fx03NQzupuyzAmv+q9/gFNHu7lo1ByMXe8PNyg==
|
||||
"@typescript-eslint/eslint-plugin@2.32.1-alpha.2":
|
||||
version "2.32.1-alpha.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.32.1-alpha.2.tgz#8c752a13bdf336bc463862dd4780332bd3b7ee88"
|
||||
integrity sha512-XpqVYKEcnXRXk16POr/6oacpxAy49ZRdU5CS08xM74OGYWZIJJCSXf82luAInMjVvaT/n8x8IbAf+Qpu55dmcw==
|
||||
dependencies:
|
||||
"@typescript-eslint/experimental-utils" "2.30.0"
|
||||
"@typescript-eslint/experimental-utils" "2.32.1-alpha.2+08f93e69"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
regexpp "^3.0.0"
|
||||
tsutils "^3.17.1"
|
||||
|
||||
"@typescript-eslint/experimental-utils@2.30.0":
|
||||
version "2.30.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.30.0.tgz#9845e868c01f3aed66472c561d4b6bac44809dd0"
|
||||
integrity sha512-L3/tS9t+hAHksy8xuorhOzhdefN0ERPDWmR9CclsIGOUqGKy6tqc/P+SoXeJRye5gazkuPO0cK9MQRnolykzkA==
|
||||
"@typescript-eslint/experimental-utils@2.32.1-alpha.2+08f93e69":
|
||||
version "2.32.1-alpha.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.32.1-alpha.2.tgz#54b01c2985bf69b62b2708172a5e2d9d8906ded4"
|
||||
integrity sha512-FBGgt1kEUqzZJPS2SrDkEEwea4UD3sr+AJqwtOFsl+gOq4uh0Ib3kSfyqF/LkocwZGE6pbAKd2t91bjhf+HjNA==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.3"
|
||||
"@typescript-eslint/typescript-estree" "2.30.0"
|
||||
"@typescript-eslint/typescript-estree" "2.32.1-alpha.2+08f93e69"
|
||||
eslint-scope "^5.0.0"
|
||||
eslint-utils "^2.0.0"
|
||||
|
||||
"@typescript-eslint/experimental-utils@^2.5.0":
|
||||
version "2.23.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.23.0.tgz#5d2261c8038ec1698ca4435a8da479c661dc9242"
|
||||
integrity sha512-OswxY59RcXH3NNPmq+4Kis2CYZPurRU6mG5xPcn24CjFyfdVli5mySwZz/g/xDbJXgDsYqNGq7enV0IziWGXVQ==
|
||||
version "2.33.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.33.0.tgz#000f1e5f344fbea1323dc91cc174805d75f99a03"
|
||||
integrity sha512-qzPM2AuxtMrRq78LwyZa8Qn6gcY8obkIrBs1ehqmQADwkYzTE1Pb4y2W+U3rE/iFkSWcWHG2LS6MJfj6SmHApg==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.3"
|
||||
"@typescript-eslint/typescript-estree" "2.23.0"
|
||||
"@typescript-eslint/typescript-estree" "2.33.0"
|
||||
eslint-scope "^5.0.0"
|
||||
eslint-utils "^2.0.0"
|
||||
|
||||
"@typescript-eslint/parser@^2.30.0":
|
||||
version "2.30.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.30.0.tgz#7681c305a6f4341ae2579f5e3a75846c29eee9ce"
|
||||
integrity sha512-9kDOxzp0K85UnpmPJqUzdWaCNorYYgk1yZmf4IKzpeTlSAclnFsrLjfwD9mQExctLoLoGAUXq1co+fbr+3HeFw==
|
||||
"@typescript-eslint/parser@2.32.1-alpha.2":
|
||||
version "2.32.1-alpha.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.32.1-alpha.2.tgz#91bdf459b075da0c467422ca8c2949381a9fbedc"
|
||||
integrity sha512-IyWkWZLuunNFkbcRI3FnMA5lrmKW7bOr6p2wr7JqaaGhG6431nIZcvrR9lzOBD7NC8rXzC+C1TdYmGb04qxQzQ==
|
||||
dependencies:
|
||||
"@types/eslint-visitor-keys" "^1.0.0"
|
||||
"@typescript-eslint/experimental-utils" "2.30.0"
|
||||
"@typescript-eslint/typescript-estree" "2.30.0"
|
||||
"@typescript-eslint/experimental-utils" "2.32.1-alpha.2+08f93e69"
|
||||
"@typescript-eslint/typescript-estree" "2.32.1-alpha.2+08f93e69"
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
|
||||
"@typescript-eslint/typescript-estree@2.23.0":
|
||||
version "2.23.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.23.0.tgz#d355960fab96bd550855488dcc34b9a4acac8d36"
|
||||
integrity sha512-pmf7IlmvXdlEXvE/JWNNJpEvwBV59wtJqA8MLAxMKLXNKVRC3HZBXR/SlZLPWTCcwOSg9IM7GeRSV3SIerGVqw==
|
||||
"@typescript-eslint/typescript-estree@2.32.1-alpha.2+08f93e69":
|
||||
version "2.32.1-alpha.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.32.1-alpha.2.tgz#27bfe86a5f53970a4a338cecdccc23ccd5dcd231"
|
||||
integrity sha512-6UsCwEcPro0r07bUI35A3mcssdnnc8QRlFtTvLzjz3euy8F0mOdy4HROYqqu82eiTr3oXstO0l4SL5yANvHXdw==
|
||||
dependencies:
|
||||
debug "^4.1.1"
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
glob "^7.1.6"
|
||||
is-glob "^4.0.1"
|
||||
lodash "^4.17.15"
|
||||
semver "^6.3.0"
|
||||
semver "^7.3.2"
|
||||
tsutils "^3.17.1"
|
||||
|
||||
"@typescript-eslint/typescript-estree@2.30.0":
|
||||
version "2.30.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.30.0.tgz#1b8e848b55144270255ffbfe4c63291f8f766615"
|
||||
integrity sha512-nI5WOechrA0qAhnr+DzqwmqHsx7Ulr/+0H7bWCcClDhhWkSyZR5BmTvnBEyONwJCTWHfc5PAQExX24VD26IAVw==
|
||||
"@typescript-eslint/typescript-estree@2.33.0":
|
||||
version "2.33.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.33.0.tgz#33504c050ccafd38f397a645d4e9534d2eccbb5c"
|
||||
integrity sha512-d8rY6/yUxb0+mEwTShCQF2zYQdLlqihukNfG9IUlLYz5y1CH6G/9XYbrxQLq3Z14RNvkCC6oe+OcFlyUpwUbkg==
|
||||
dependencies:
|
||||
debug "^4.1.1"
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
glob "^7.1.6"
|
||||
is-glob "^4.0.1"
|
||||
lodash "^4.17.15"
|
||||
semver "^6.3.0"
|
||||
semver "^7.3.2"
|
||||
tsutils "^3.17.1"
|
||||
|
||||
"@webassemblyjs/ast@1.9.0":
|
||||
|
@ -1545,10 +1553,10 @@ accepts@~1.3.7:
|
|||
mime-types "~2.1.24"
|
||||
negotiator "0.6.2"
|
||||
|
||||
acorn-jsx@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
|
||||
integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
|
||||
acorn-jsx@^5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
|
||||
integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==
|
||||
|
||||
acorn-walk@^7.1.1:
|
||||
version "7.1.1"
|
||||
|
@ -1560,11 +1568,6 @@ acorn@^6.4.1:
|
|||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
|
||||
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
|
||||
|
||||
acorn@^7.1.0:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
|
||||
integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
|
||||
|
||||
acorn@^7.1.1:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf"
|
||||
|
@ -2170,28 +2173,27 @@ cacache@^12.0.3:
|
|||
unique-filename "^1.1.1"
|
||||
y18n "^4.0.0"
|
||||
|
||||
cacache@^13.0.1:
|
||||
version "13.0.1"
|
||||
resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c"
|
||||
integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==
|
||||
cacache@^15.0.3:
|
||||
version "15.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.3.tgz#2225c2d1dd8e872339950d6a39c051e0e9334392"
|
||||
integrity sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==
|
||||
dependencies:
|
||||
chownr "^1.1.2"
|
||||
figgy-pudding "^3.5.1"
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
glob "^7.1.4"
|
||||
graceful-fs "^4.2.2"
|
||||
infer-owner "^1.0.4"
|
||||
lru-cache "^5.1.1"
|
||||
minipass "^3.0.0"
|
||||
minipass "^3.1.1"
|
||||
minipass-collect "^1.0.2"
|
||||
minipass-flush "^1.0.5"
|
||||
minipass-pipeline "^1.2.2"
|
||||
mkdirp "^0.5.1"
|
||||
move-concurrently "^1.0.1"
|
||||
p-map "^3.0.0"
|
||||
mkdirp "^1.0.3"
|
||||
move-file "^2.0.0"
|
||||
p-map "^4.0.0"
|
||||
promise-inflight "^1.0.1"
|
||||
rimraf "^2.7.1"
|
||||
ssri "^7.0.0"
|
||||
rimraf "^3.0.2"
|
||||
ssri "^8.0.0"
|
||||
tar "^6.0.2"
|
||||
unique-filename "^1.1.1"
|
||||
|
||||
cache-base@^1.0.1:
|
||||
|
@ -2281,7 +2283,7 @@ caniuse-lite@^1.0.30001038, caniuse-lite@^1.0.30001039:
|
|||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001042.tgz#c91ec21ec2d270bd76dbc2ce261260c292b8c93c"
|
||||
integrity sha512-igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw==
|
||||
|
||||
chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
|
||||
chalk@2.4.2, chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, 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==
|
||||
|
@ -2369,11 +2371,16 @@ chokidar@^2.0.4, chokidar@^2.1.8:
|
|||
optionalDependencies:
|
||||
fsevents "^1.2.7"
|
||||
|
||||
chownr@^1.1.1, chownr@^1.1.2:
|
||||
chownr@^1.1.1:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
|
||||
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
|
||||
|
||||
chownr@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
|
||||
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
|
||||
|
||||
chrome-trace-event@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
|
||||
|
@ -2470,6 +2477,11 @@ clone@^1.0.2:
|
|||
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
|
||||
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
|
||||
|
||||
clsx@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.0.tgz#62937c6adfea771247c34b54d320fb99624f5702"
|
||||
integrity sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==
|
||||
|
||||
coa@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
|
||||
|
@ -2665,9 +2677,9 @@ core-js-compat@^3.6.2:
|
|||
semver "7.0.0"
|
||||
|
||||
core-js-pure@^3.0.0:
|
||||
version "3.6.4"
|
||||
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a"
|
||||
integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==
|
||||
version "3.6.5"
|
||||
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
|
||||
integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
|
||||
|
||||
core-js@^3.6.2:
|
||||
version "3.6.5"
|
||||
|
@ -2731,7 +2743,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
|
|||
safe-buffer "^5.0.1"
|
||||
sha.js "^2.4.8"
|
||||
|
||||
cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
|
||||
cross-spawn@6.0.5, cross-spawn@^6.0.0:
|
||||
version "6.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
||||
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
|
||||
|
@ -2742,7 +2754,7 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
|
|||
shebang-command "^1.2.0"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^7.0.0:
|
||||
cross-spawn@^7.0.0, cross-spawn@^7.0.2:
|
||||
version "7.0.2"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6"
|
||||
integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==
|
||||
|
@ -2943,10 +2955,10 @@ damerau-levenshtein@^1.0.4:
|
|||
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414"
|
||||
integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==
|
||||
|
||||
date-fns@^2.8.1:
|
||||
version "2.12.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.12.0.tgz#01754c8a2f3368fc1119cf4625c3dad8c1845ee6"
|
||||
integrity sha512-qJgn99xxKnFgB1qL4jpxU7Q2t0LOn1p8KMIveef3UZD7kqjT3tpFNNdXJelEHhE+rUgffriXriw/sOSU+cS1Hw==
|
||||
date-fns@^2.13.0:
|
||||
version "2.13.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.13.0.tgz#d7b8a0a2d392e8d88a8024d0a46b980bbfdbd708"
|
||||
integrity sha512-xm0c61mevGF7f0XpCGtDTGpzEFC/1fpLXHbmFpxZZQJuvByIK2ozm6cSYuU+nxFYOPh2EuCfzUwlTEFwKG+h5w==
|
||||
|
||||
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
|
||||
version "2.6.9"
|
||||
|
@ -2984,7 +2996,7 @@ dedent@^0.7.0:
|
|||
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
|
||||
integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
|
||||
|
||||
deep-is@~0.1.3:
|
||||
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=
|
||||
|
@ -3395,6 +3407,22 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
|
|||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
||||
|
||||
eslint-config-airbnb-base@^14.1.0:
|
||||
version "14.1.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz#2ba4592dd6843258221d9bff2b6831bd77c874e4"
|
||||
integrity sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw==
|
||||
dependencies:
|
||||
confusing-browser-globals "^1.0.9"
|
||||
object.assign "^4.1.0"
|
||||
object.entries "^1.1.1"
|
||||
|
||||
eslint-config-prettier@^6.11.0:
|
||||
version "6.11.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1"
|
||||
integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==
|
||||
dependencies:
|
||||
get-stdin "^6.0.0"
|
||||
|
||||
eslint-config-react-app@^5.2.1:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz#698bf7aeee27f0cea0139eaef261c7bf7dd623df"
|
||||
|
@ -3441,7 +3469,7 @@ eslint-plugin-flowtype@4.x:
|
|||
dependencies:
|
||||
lodash "^4.17.15"
|
||||
|
||||
eslint-plugin-import@2.x:
|
||||
eslint-plugin-import@^2.20.2:
|
||||
version "2.20.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d"
|
||||
integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==
|
||||
|
@ -3459,10 +3487,10 @@ eslint-plugin-import@2.x:
|
|||
read-pkg-up "^2.0.0"
|
||||
resolve "^1.12.0"
|
||||
|
||||
eslint-plugin-jest@^23.6.0:
|
||||
version "23.8.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz#6f28b41c67ef635f803ebd9e168f6b73858eb8d4"
|
||||
integrity sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg==
|
||||
eslint-plugin-jest@^23.10.0:
|
||||
version "23.11.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.11.0.tgz#6e01d83ea74c1eefd60811655bbc288bd8ab2e7d"
|
||||
integrity sha512-qedvh6mcMgoLFHjITtG40yKOCu5Fa1GMYesDOclU30ZvtVkf+DaH0fnCn1ysOX/QMdk2SGhQvxvYLowcLaM0GA==
|
||||
dependencies:
|
||||
"@typescript-eslint/experimental-utils" "^2.5.0"
|
||||
|
||||
|
@ -3481,15 +3509,15 @@ eslint-plugin-jsx-a11y@6.x:
|
|||
has "^1.0.3"
|
||||
jsx-ast-utils "^2.2.1"
|
||||
|
||||
eslint-plugin-react-hooks@2.x:
|
||||
version "2.5.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz#4ef5930592588ce171abeb26f400c7fbcbc23cd0"
|
||||
integrity sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==
|
||||
eslint-plugin-react-hooks@^4.0.0:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.2.tgz#03700ca761eacc1b6436074c456f90a8e331ff28"
|
||||
integrity sha512-kAMRjNztrLW1rK+81X1NwMB2LqG+nc7Q8AibnG8/VyWhQK8SP6JotCFG+HL4u1EjziplxVz4jARdR8gGk8pLDA==
|
||||
|
||||
eslint-plugin-react@7.x:
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666"
|
||||
integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==
|
||||
version "7.20.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3"
|
||||
integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA==
|
||||
dependencies:
|
||||
array-includes "^3.1.1"
|
||||
doctrine "^2.1.0"
|
||||
|
@ -3500,10 +3528,14 @@ eslint-plugin-react@7.x:
|
|||
object.values "^1.1.1"
|
||||
prop-types "^15.7.2"
|
||||
resolve "^1.15.1"
|
||||
semver "^6.3.0"
|
||||
string.prototype.matchall "^4.0.2"
|
||||
xregexp "^4.3.0"
|
||||
|
||||
eslint-plugin-simple-import-sort@^5.0.3:
|
||||
version "5.0.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.3.tgz#9ae258ddada6efffc55e47a134afbd279eb31fc6"
|
||||
integrity sha512-1rf3AWiHeWNCQdAq0iXNnlccnH1UDnelGgrPbjBBHE8d2hXVtOudcmy0vTF4hri3iJ0MKz8jBhmH6lJ0ZWZLHQ==
|
||||
|
||||
eslint-scope@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
|
||||
|
@ -3520,13 +3552,6 @@ eslint-scope@^5.0.0:
|
|||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint-utils@^1.4.3:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
|
||||
integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
|
||||
dependencies:
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
|
||||
eslint-utils@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd"
|
||||
|
@ -3539,22 +3564,22 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
|
|||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
|
||||
integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
|
||||
|
||||
eslint@6.x:
|
||||
version "6.8.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
|
||||
integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
|
||||
eslint@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.0.0.tgz#c35dfd04a4372110bd78c69a8d79864273919a08"
|
||||
integrity sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.0.0"
|
||||
ajv "^6.10.0"
|
||||
chalk "^2.1.0"
|
||||
cross-spawn "^6.0.5"
|
||||
chalk "^4.0.0"
|
||||
cross-spawn "^7.0.2"
|
||||
debug "^4.0.1"
|
||||
doctrine "^3.0.0"
|
||||
eslint-scope "^5.0.0"
|
||||
eslint-utils "^1.4.3"
|
||||
eslint-utils "^2.0.0"
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
espree "^6.1.2"
|
||||
esquery "^1.0.1"
|
||||
espree "^7.0.0"
|
||||
esquery "^1.2.0"
|
||||
esutils "^2.0.2"
|
||||
file-entry-cache "^5.0.1"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
|
@ -3567,28 +3592,27 @@ eslint@6.x:
|
|||
is-glob "^4.0.0"
|
||||
js-yaml "^3.13.1"
|
||||
json-stable-stringify-without-jsonify "^1.0.1"
|
||||
levn "^0.3.0"
|
||||
levn "^0.4.1"
|
||||
lodash "^4.17.14"
|
||||
minimatch "^3.0.4"
|
||||
mkdirp "^0.5.1"
|
||||
natural-compare "^1.4.0"
|
||||
optionator "^0.8.3"
|
||||
optionator "^0.9.1"
|
||||
progress "^2.0.0"
|
||||
regexpp "^2.0.1"
|
||||
semver "^6.1.2"
|
||||
strip-ansi "^5.2.0"
|
||||
strip-json-comments "^3.0.1"
|
||||
regexpp "^3.1.0"
|
||||
semver "^7.2.1"
|
||||
strip-ansi "^6.0.0"
|
||||
strip-json-comments "^3.1.0"
|
||||
table "^5.2.3"
|
||||
text-table "^0.2.0"
|
||||
v8-compile-cache "^2.0.3"
|
||||
|
||||
espree@^6.1.2:
|
||||
version "6.1.2"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d"
|
||||
integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==
|
||||
espree@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e"
|
||||
integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==
|
||||
dependencies:
|
||||
acorn "^7.1.0"
|
||||
acorn-jsx "^5.1.0"
|
||||
acorn "^7.1.1"
|
||||
acorn-jsx "^5.2.0"
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
|
||||
esprima@^4.0.0:
|
||||
|
@ -3596,12 +3620,12 @@ esprima@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
|
||||
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
|
||||
|
||||
esquery@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
|
||||
integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
|
||||
esquery@^1.2.0:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
|
||||
integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
|
||||
dependencies:
|
||||
estraverse "^4.0.0"
|
||||
estraverse "^5.1.0"
|
||||
|
||||
esrecurse@^4.1.0:
|
||||
version "4.2.1"
|
||||
|
@ -3610,11 +3634,16 @@ esrecurse@^4.1.0:
|
|||
dependencies:
|
||||
estraverse "^4.1.0"
|
||||
|
||||
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
|
||||
estraverse@^4.1.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:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
|
||||
integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
|
||||
|
||||
esutils@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
||||
|
@ -3799,7 +3828,7 @@ fast-json-stable-stringify@^2.0.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:
|
||||
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=
|
||||
|
@ -4119,6 +4148,11 @@ get-own-enumerable-property-symbols@^3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
|
||||
integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
|
||||
|
||||
get-stdin@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
|
||||
integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
|
||||
|
||||
get-stream@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
|
||||
|
@ -4266,7 +4300,7 @@ globby@^7.1.1:
|
|||
pify "^3.0.0"
|
||||
slash "^1.0.0"
|
||||
|
||||
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.2:
|
||||
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
|
||||
integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
|
||||
|
@ -4453,10 +4487,10 @@ html-minifier-terser@^5.0.1:
|
|||
relateurl "^0.2.7"
|
||||
terser "^4.6.3"
|
||||
|
||||
html-webpack-plugin@^4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.2.1.tgz#2a8b421ad19eb622397394f34ad6975a14bf0fac"
|
||||
integrity sha512-zTTPxKJ8bgRe4RVDzT1MZW8ysW5wwDfJmD3AN+7mw2MKMWZJibZzBgHaDqnL6FJg1kvk38sQPMJNmI8Q1Ntr9A==
|
||||
html-webpack-plugin@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz#53bf8f6d696c4637d5b656d3d9863d89ce8174fd"
|
||||
integrity sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w==
|
||||
dependencies:
|
||||
"@types/html-minifier-terser" "^5.0.0"
|
||||
"@types/tapable" "^1.0.5"
|
||||
|
@ -5023,24 +5057,24 @@ isobject@^3.0.0, isobject@^3.0.1:
|
|||
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
|
||||
|
||||
jest-diff@^25.2.1:
|
||||
version "25.4.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.4.0.tgz#260b70f19a46c283adcad7f081cae71eb784a634"
|
||||
integrity sha512-kklLbJVXW0y8UKOWOdYhI6TH5MG6QAxrWiBMgQaPIuhj3dNFGirKCd+/xfplBXICQ7fI+3QcqHm9p9lWu1N6ug==
|
||||
version "25.5.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9"
|
||||
integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==
|
||||
dependencies:
|
||||
chalk "^3.0.0"
|
||||
diff-sequences "^25.2.6"
|
||||
jest-get-type "^25.2.6"
|
||||
pretty-format "^25.4.0"
|
||||
pretty-format "^25.5.0"
|
||||
|
||||
jest-get-type@^25.2.6:
|
||||
version "25.2.6"
|
||||
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877"
|
||||
integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==
|
||||
|
||||
jest-worker@^25.4.0:
|
||||
version "25.4.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.4.0.tgz#ee0e2ceee5a36ecddf5172d6d7e0ab00df157384"
|
||||
integrity sha512-ghAs/1FtfYpMmYQ0AHqxV62XPvKdUDIBBApMZfly+E9JEmYh2K45G0R5dWxx986RN12pRCxsViwQVtGl+N4whw==
|
||||
jest-worker@^26.0.0:
|
||||
version "26.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.0.0.tgz#4920c7714f0a96c6412464718d0c58a3df3fb066"
|
||||
integrity sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==
|
||||
dependencies:
|
||||
merge-stream "^2.0.0"
|
||||
supports-color "^7.0.0"
|
||||
|
@ -5158,23 +5192,23 @@ levenary@^1.1.1:
|
|||
dependencies:
|
||||
leven "^3.1.0"
|
||||
|
||||
levn@^0.3.0, levn@~0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
|
||||
integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
|
||||
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.1.2"
|
||||
type-check "~0.3.2"
|
||||
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=
|
||||
|
||||
lint-staged@^10.2.1:
|
||||
version "10.2.1"
|
||||
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.1.tgz#def64534c2a5f28e5b723a4bd970347d5b015339"
|
||||
integrity sha512-UPeqH0z+WzM5Gd2Ip/YfqA16SLiX3fCiC/in9hKioMDDMUUTN8YQbj0hupgQpyR5YZN35KCW9d4kjvH9XGN+3Q==
|
||||
lint-staged@^10.2.2:
|
||||
version "10.2.2"
|
||||
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.2.tgz#901403c120eb5d9443a0358b55038b04c8a7db9b"
|
||||
integrity sha512-78kNqNdDeKrnqWsexAmkOU3Z5wi+1CsQmUmfCuYgMTE8E4rAIX8RHW7xgxwAZ+LAayb7Cca4uYX4P3LlevzjVg==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
commander "^5.0.0"
|
||||
|
@ -5583,6 +5617,14 @@ minipass@^3.0.0, minipass@^3.1.1:
|
|||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
minizlib@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3"
|
||||
integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
yallist "^4.0.0"
|
||||
|
||||
mississippi@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
|
||||
|
@ -5614,6 +5656,11 @@ mkdirp@^0.5.1, mkdirp@^0.5.3:
|
|||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
|
||||
mkdirp@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
mkdirp@~0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||
|
@ -5643,6 +5690,13 @@ move-concurrently@^1.0.1:
|
|||
rimraf "^2.5.4"
|
||||
run-queue "^1.0.3"
|
||||
|
||||
move-file@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/move-file/-/move-file-2.0.0.tgz#83ffa309b5d7f69d518b28e1333e2ffadf331e3e"
|
||||
integrity sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==
|
||||
dependencies:
|
||||
path-exists "^4.0.0"
|
||||
|
||||
ms@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
@ -5976,17 +6030,17 @@ opener@^1.5.1:
|
|||
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
|
||||
integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==
|
||||
|
||||
optionator@^0.8.3:
|
||||
version "0.8.3"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
|
||||
integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
|
||||
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.3.0"
|
||||
prelude-ls "~1.1.2"
|
||||
type-check "~0.3.2"
|
||||
word-wrap "~1.2.3"
|
||||
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"
|
||||
|
||||
original@^1.0.0:
|
||||
version "1.0.2"
|
||||
|
@ -6076,13 +6130,6 @@ p-map@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
|
||||
integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
|
||||
|
||||
p-map@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d"
|
||||
integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==
|
||||
dependencies:
|
||||
aggregate-error "^3.0.0"
|
||||
|
||||
p-map@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
|
||||
|
@ -6767,10 +6814,10 @@ postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.
|
|||
source-map "^0.6.1"
|
||||
supports-color "^6.1.0"
|
||||
|
||||
prelude-ls@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||
integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
|
||||
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@^1.0.0:
|
||||
version "1.0.4"
|
||||
|
@ -6790,12 +6837,12 @@ pretty-error@^2.1.1:
|
|||
renderkid "^2.0.1"
|
||||
utila "~0.4"
|
||||
|
||||
pretty-format@^25.2.1, pretty-format@^25.4.0:
|
||||
version "25.4.0"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.4.0.tgz#c58801bb5c4926ff4a677fe43f9b8b99812c7830"
|
||||
integrity sha512-PI/2dpGjXK5HyXexLPZU/jw5T9Q6S1YVXxxVxco+LIqzUFHXIbKZKdUVt7GcX7QUCr31+3fzhi4gN4/wUYPVxQ==
|
||||
pretty-format@^25.2.1, pretty-format@^25.5.0:
|
||||
version "25.5.0"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a"
|
||||
integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==
|
||||
dependencies:
|
||||
"@jest/types" "^25.4.0"
|
||||
"@jest/types" "^25.5.0"
|
||||
ansi-regex "^5.0.0"
|
||||
ansi-styles "^4.0.0"
|
||||
react-is "^16.12.0"
|
||||
|
@ -7042,10 +7089,10 @@ react-modal@^3.11.1:
|
|||
react-lifecycles-compat "^3.0.0"
|
||||
warning "^4.0.3"
|
||||
|
||||
react-refresh@^0.8.1:
|
||||
version "0.8.1"
|
||||
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.1.tgz#5500506ad6fc891fdd057d0bf3581f9310abc6a2"
|
||||
integrity sha512-xZIKi49RtLUUSAZ4a4ut2xr+zr4+glOD5v0L413B55MPvlg4EQ6Ctx8PD4CmjlPGoAWmSCTmmkY59TErizNsow==
|
||||
react-refresh@^0.8.2:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.2.tgz#24bb0858eac92b0d7b0dd561747f0c9fd6c60327"
|
||||
integrity sha512-n8GXxo3DwM2KtFEL69DAVhGc4A1THn2qjmfvSo3nze0NLCoPbywazeJPqdp0RdSGLmyhQzeyA+XPXOobbYlkzg==
|
||||
|
||||
react-router-dom@^6.0.0-alpha.1:
|
||||
version "6.0.0-alpha.2"
|
||||
|
@ -7083,10 +7130,10 @@ react-tabs@^3.1.0:
|
|||
classnames "^2.2.0"
|
||||
prop-types "^15.5.0"
|
||||
|
||||
react-tiny-fab@^3.4.1:
|
||||
version "3.4.1"
|
||||
resolved "https://registry.yarnpkg.com/react-tiny-fab/-/react-tiny-fab-3.4.1.tgz#f44b04559a9fb95360c08e2834b9389998a1f83a"
|
||||
integrity sha512-R2lQl0i9rSSODNk3AurUTsjUX8Vay9VY2FlekZjsPKoTynUn7dhVtrNysnewohoyAzxALPl+p+UX+nFM1RyqOQ==
|
||||
react-tiny-fab@^3.5.0:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.yarnpkg.com/react-tiny-fab/-/react-tiny-fab-3.5.0.tgz#214887a715a68639e574c6eb1029dcac13c6fbec"
|
||||
integrity sha512-KjWzs7fsTTvrmCZrtKVV8EKdfoC7BgWCePujtWfczpXiUCECtBYkhP+EvBYLRgU6BAHdtduBfybfN4pTCpw2Zw==
|
||||
|
||||
react-window@^1.8.5:
|
||||
version "1.8.5"
|
||||
|
@ -7208,12 +7255,7 @@ regexp.prototype.flags@^1.3.0:
|
|||
define-properties "^1.1.3"
|
||||
es-abstract "^1.17.0-next.1"
|
||||
|
||||
regexpp@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
|
||||
integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
|
||||
|
||||
regexpp@^3.0.0:
|
||||
regexpp@^3.0.0, regexpp@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
|
||||
integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
|
||||
|
@ -7347,7 +7389,14 @@ resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1:
|
|||
dependencies:
|
||||
path-parse "^1.0.6"
|
||||
|
||||
resolve@^1.15.1, resolve@^1.3.2, resolve@^1.8.1:
|
||||
resolve@^1.15.1:
|
||||
version "1.17.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
|
||||
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
|
||||
dependencies:
|
||||
path-parse "^1.0.6"
|
||||
|
||||
resolve@^1.3.2, resolve@^1.8.1:
|
||||
version "1.15.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
|
||||
integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
|
||||
|
@ -7392,13 +7441,20 @@ rimraf@2.6.3:
|
|||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1:
|
||||
rimraf@^2.5.4, rimraf@^2.6.3:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
|
||||
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
|
||||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
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"
|
||||
|
||||
ripemd160@^2.0.0, ripemd160@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
|
||||
|
@ -7507,11 +7563,16 @@ semver@7.0.0:
|
|||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
|
||||
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
|
||||
|
||||
semver@^6.0.0, semver@^6.1.2, semver@^6.3.0:
|
||||
semver@^6.0.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:
|
||||
version "7.3.2"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
|
||||
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
|
||||
|
||||
send@0.17.1:
|
||||
version "0.17.1"
|
||||
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
|
||||
|
@ -7813,12 +7874,11 @@ ssri@^6.0.1:
|
|||
dependencies:
|
||||
figgy-pudding "^3.5.1"
|
||||
|
||||
ssri@^7.0.0:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d"
|
||||
integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==
|
||||
ssri@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808"
|
||||
integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==
|
||||
dependencies:
|
||||
figgy-pudding "^3.5.1"
|
||||
minipass "^3.1.1"
|
||||
|
||||
stable@^0.1.8:
|
||||
|
@ -8049,10 +8109,10 @@ strip-final-newline@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
|
||||
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
|
||||
|
||||
strip-json-comments@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
|
||||
integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
|
||||
strip-json-comments@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180"
|
||||
integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==
|
||||
|
||||
style-loader@^1.2.1:
|
||||
version "1.2.1"
|
||||
|
@ -8155,6 +8215,18 @@ tapable@^1.0.0, tapable@^1.1.3:
|
|||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
|
||||
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
|
||||
|
||||
tar@^6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39"
|
||||
integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==
|
||||
dependencies:
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
minipass "^3.0.0"
|
||||
minizlib "^2.1.0"
|
||||
mkdirp "^1.0.3"
|
||||
yallist "^4.0.0"
|
||||
|
||||
terser-webpack-plugin@^1.4.3:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
|
||||
|
@ -8170,22 +8242,22 @@ terser-webpack-plugin@^1.4.3:
|
|||
webpack-sources "^1.4.0"
|
||||
worker-farm "^1.7.0"
|
||||
|
||||
terser-webpack-plugin@^2.3.1:
|
||||
version "2.3.6"
|
||||
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.6.tgz#a4014b311a61f87c6a1b217ef4f5a75bd0665a69"
|
||||
integrity sha512-I8IDsQwZrqjdmOicNeE8L/MhwatAap3mUrtcAKJuilsemUNcX+Hier/eAzwStVqhlCxq0aG3ni9bK/0BESXkTg==
|
||||
terser-webpack-plugin@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.1.tgz#31928c9330a582fb5ec6f90805337289b85cb8fe"
|
||||
integrity sha512-eFDtq8qPUEa9hXcUzTwKXTnugIVtlqc1Z/ZVhG8LmRT3lgRY13+pQTnFLY2N7ATB6TKCHuW/IGjoAnZz9wOIqw==
|
||||
dependencies:
|
||||
cacache "^13.0.1"
|
||||
cacache "^15.0.3"
|
||||
find-cache-dir "^3.3.1"
|
||||
jest-worker "^25.4.0"
|
||||
jest-worker "^26.0.0"
|
||||
p-limit "^2.3.0"
|
||||
schema-utils "^2.6.6"
|
||||
serialize-javascript "^3.0.0"
|
||||
source-map "^0.6.1"
|
||||
terser "^4.6.12"
|
||||
terser "^4.6.13"
|
||||
webpack-sources "^1.4.3"
|
||||
|
||||
terser@^4.1.2, terser@^4.6.12:
|
||||
terser@^4.1.2:
|
||||
version "4.6.12"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.12.tgz#44b98aef8703fdb09a3491bf79b43faffc5b4fee"
|
||||
integrity sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==
|
||||
|
@ -8194,6 +8266,15 @@ terser@^4.1.2, terser@^4.6.12:
|
|||
source-map "~0.6.1"
|
||||
source-map-support "~0.5.12"
|
||||
|
||||
terser@^4.6.13:
|
||||
version "4.6.13"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.13.tgz#e879a7364a5e0db52ba4891ecde007422c56a916"
|
||||
integrity sha512-wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
source-map "~0.6.1"
|
||||
source-map-support "~0.5.12"
|
||||
|
||||
terser@^4.6.3:
|
||||
version "4.6.11"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.11.tgz#12ff99fdd62a26de2a82f508515407eb6ccd8a9f"
|
||||
|
@ -8302,10 +8383,10 @@ tryer@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
|
||||
integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
|
||||
|
||||
ts-loader@^7.0.2:
|
||||
version "7.0.2"
|
||||
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-7.0.2.tgz#465bc904aea4c331e9550e7c7d75dd17a0b7c24c"
|
||||
integrity sha512-DwpZFB67RoILQHx42dMjSgv2STpacsQu5X+GD/H9ocd8IhU0m8p3b/ZrIln2KmcucC6xep2PdEMEblpWT71euA==
|
||||
ts-loader@^7.0.4:
|
||||
version "7.0.4"
|
||||
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-7.0.4.tgz#5d9b95227de5afb91fdd9668f8920eb193cfe0cc"
|
||||
integrity sha512-5du6OQHl+4ZjO4crEyoYUyWSrmmo7bAO+inkaILZ68mvahqrfoa4nn0DRmpQ4ruT4l+cuJCgF0xD7SBIyLeeow==
|
||||
dependencies:
|
||||
chalk "^2.3.0"
|
||||
enhanced-resolve "^4.0.0"
|
||||
|
@ -8313,11 +8394,16 @@ ts-loader@^7.0.2:
|
|||
micromatch "^4.0.0"
|
||||
semver "^6.0.0"
|
||||
|
||||
tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
|
||||
tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3:
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
|
||||
integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
|
||||
|
||||
tslib@^1.8.1:
|
||||
version "1.13.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
|
||||
integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
|
||||
|
||||
tsutils@^3.17.1:
|
||||
version "3.17.1"
|
||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
|
||||
|
@ -8330,12 +8416,12 @@ tty-browserify@0.0.0:
|
|||
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
|
||||
integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
|
||||
|
||||
type-check@~0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
|
||||
integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
|
||||
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.1.2"
|
||||
prelude-ls "^1.2.1"
|
||||
|
||||
type-fest@^0.11.0:
|
||||
version "0.11.0"
|
||||
|
@ -8366,9 +8452,9 @@ typedarray@^0.0.6:
|
|||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||
|
||||
typescript@^3.8.3:
|
||||
version "3.8.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
|
||||
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
|
||||
version "3.9.2"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.2.tgz#64e9c8e9be6ea583c54607677dd4680a1cf35db9"
|
||||
integrity sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw==
|
||||
|
||||
unicode-canonical-property-names-ecmascript@^1.0.4:
|
||||
version "1.0.4"
|
||||
|
@ -8731,7 +8817,7 @@ which@^2.0.1:
|
|||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
word-wrap@~1.2.3:
|
||||
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==
|
||||
|
|
Loading…
Reference in a new issue