From 74336565c77d643474b378ecf637683590e06833 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Wed, 27 Apr 2022 17:31:53 -0700 Subject: [PATCH] fix: eslint --- .eslintrc.json | 27 +- package.json | 9 +- rollup.config.ts | 1 - src/components/ActionButton.tsx | 2 +- src/components/BrandedFooter.tsx | 2 +- src/components/Button.tsx | 2 +- src/components/Dialog.tsx | 4 +- src/components/Error/ErrorBoundary.tsx | 4 +- src/components/Error/ErrorDialog.tsx | 2 +- src/components/EtherscanLink.tsx | 2 +- src/components/Expando.tsx | 2 +- src/components/Header.tsx | 2 +- src/components/Input.tsx | 25 +- src/components/Popover.tsx | 2 +- src/components/RecentTransactionsDialog.tsx | 2 +- src/components/Row.tsx | 2 +- src/components/Swap/Input.tsx | 4 +- src/components/Swap/Output.tsx | 8 +- src/components/Swap/Price.tsx | 4 +- src/components/Swap/ReverseButton.tsx | 2 +- src/components/Swap/RoutingDiagram/index.tsx | 2 +- .../Swap/Settings/MaxSlippageSelect.tsx | 4 +- .../Swap/Settings/TransactionTtlInput.tsx | 2 +- src/components/Swap/Settings/components.tsx | 2 +- src/components/Swap/Settings/index.tsx | 4 +- src/components/Swap/Status/StatusDialog.tsx | 4 +- src/components/Swap/Summary.fixture.tsx | 4 +- src/components/Swap/Summary/Details.tsx | 4 +- src/components/Swap/Summary/Summary.tsx | 2 +- src/components/Swap/Summary/index.tsx | 2 +- src/components/Swap/SwapButton/index.tsx | 8 +- .../Swap/SwapButton/useApprovalData.tsx | 2 +- src/components/Swap/TokenInput.tsx | 2 +- src/components/Swap/Toolbar/Caption.tsx | 2 +- src/components/Swap/Toolbar/index.tsx | 4 +- src/components/Swap/index.tsx | 4 +- src/components/Swap/useValidate.tsx | 1 - src/components/Toggle.tsx | 2 +- src/components/TokenImg.tsx | 2 +- src/components/TokenSelect/TokenButton.tsx | 2 +- src/components/TokenSelect/TokenOptions.tsx | 2 +- src/components/TokenSelect/index.tsx | 2 +- src/components/Tooltip.tsx | 2 +- src/components/Widget.tsx | 6 +- src/constants/addresses.ts | 2 +- src/cosmos/components/Widget.tsx | 4 +- .../routing/clientSideSmartOrderRouter.ts | 3 +- .../transformSwapRouteToGetQuoteResult.ts | 2 + src/hooks/swap/index.ts | 2 +- src/hooks/swap/useSwapInfo.tsx | 6 +- src/hooks/swap/useSyncConvenienceFee.ts | 2 +- src/hooks/swap/useSyncTokenDefaults.ts | 4 +- src/hooks/swap/useWrapCallback.tsx | 4 +- src/hooks/transactions/index.tsx | 4 +- src/hooks/useActiveWeb3React.tsx | 2 +- src/hooks/useAllCurrencyCombinations.ts | 3 +- src/hooks/useArgentWalletContract.ts | 4 +- src/hooks/useAutoSlippageTolerance.ts | 2 +- src/hooks/useBestV2Trade.ts | 2 +- src/hooks/useClientSideV3Trade.ts | 2 +- src/hooks/useContract.ts | 1 - src/hooks/useCurrency.ts | 6 +- src/hooks/useCurrencyBalance.ts | 7 +- src/hooks/useCurrencyColor.ts | 2 +- src/hooks/useCurrencyLogoURIs.ts | 5 +- src/hooks/useENS.ts | 2 +- src/hooks/useENSAddress.ts | 2 +- src/hooks/useENSContentHash.ts | 2 +- src/hooks/useENSName.ts | 2 +- src/hooks/useERC20Permit.ts | 6 +- src/hooks/useGasPrice.ts | 2 +- src/hooks/useHttpLocations.ts | 2 +- src/hooks/useIsArgentWallet.ts | 2 +- src/hooks/usePools.ts | 5 +- src/hooks/useScrollbar.ts | 2 +- src/hooks/useSlippage.ts | 2 +- src/hooks/useTokenList/filtering.ts | 1 - src/hooks/useTokenList/index.tsx | 2 +- src/hooks/useTokenList/querying.ts | 2 +- src/hooks/useTransactionDeadline.ts | 2 +- src/hooks/useUSDCPrice.ts | 6 +- src/hooks/useV2Pairs.ts | 3 +- src/icons/index.tsx | 2 +- src/state/lists/wrappedTokenInfo.ts | 1 - src/state/multicall.tsx | 2 +- src/state/routing/utils.test.ts | 2 +- src/state/routing/utils.ts | 2 +- src/utils/approveAmountCalldata.ts | 1 - src/utils/computeFiatValuePriceImpact.tsx | 3 +- src/utils/isTradeBetter.ts | 1 - src/utils/prices.ts | 3 +- yarn.lock | 876 +++++++++++++++--- 92 files changed, 885 insertions(+), 301 deletions(-) rename src/{utils => hooks/routing}/transformSwapRouteToGetQuoteResult.ts (97%) diff --git a/.eslintrc.json b/.eslintrc.json index cb36b7b4e..2d9a09096 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,4 +1,5 @@ { + "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 2020, @@ -13,26 +14,7 @@ "version": "detect" } }, - "ignorePatterns": [ - "src/types/v3", - "src/abis/types", - "src/locales/**/*.js", - "src/locales/**/en-US.po", - "src/state/data/generated.ts", - "node_modules", - "coverage", - "build", - "dist", - ".DS_Store", - ".env.local", - ".env.development.local", - ".env.test.local", - ".env.production.local", - ".idea/", - ".vscode/", - "package-lock.json", - "yarn.lock" - ], + "ignorePatterns": ["src/types/v3", "src/abis/types", "src/locales/", "node_modules/", "yarn.lock", "dist/"], "extends": [ "react-app", "plugin:react/recommended", @@ -63,11 +45,6 @@ "name": "ethers", "message": "Please import from '@ethersproject/module' directly to support tree-shaking." }, - { - "name": "@lingui/macro", - "importNames": ["t"], - "message": "Please use instead of t." - }, { "name": "react-feather", "message": "Please import from lib/icons to ensure performant usage." diff --git a/package.json b/package.json index b575f9375..a7fa72697 100644 --- a/package.json +++ b/package.json @@ -74,8 +74,8 @@ "@types/styled-components": "^5.1.0", "@types/ua-parser-js": "^0.7.35", "@types/wcag-contrast": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", + "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/parser": "^5.21.0", "@uniswap/default-token-list": "^3.0.0", "@uniswap/governance": "^1.0.2", "@uniswap/liquidity-staker": "^1.0.2", @@ -98,10 +98,11 @@ "d3": "^7.0.0", "eslint": "^7.11.0", "eslint-config-prettier": "^6.11.0", + "eslint-config-react-app": "^7.0.1", "eslint-plugin-better-styled-components": "^1.1.2", "eslint-plugin-prettier": "^3.1.3", - "eslint-plugin-react": "^7.19.0", - "eslint-plugin-react-hooks": "^4.0.0", + "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react-hooks": "^4.5.0", "eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-unused-imports": "^2.0.0", "firebase": "^9.1.3", diff --git a/rollup.config.ts b/rollup.config.ts index 83797a19c..567164dae 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -20,7 +20,6 @@ import dts from 'rollup-plugin-dts' import multi from 'rollup-plugin-multi-input' import externals from 'rollup-plugin-node-externals' import sass from 'rollup-plugin-scss' -import { CompilerOptions } from 'typescript' const REPLACEMENTS = { // esm requires fully-specified paths: diff --git a/src/components/ActionButton.tsx b/src/components/ActionButton.tsx index 76a9c0e71..9efe94131 100644 --- a/src/components/ActionButton.tsx +++ b/src/components/ActionButton.tsx @@ -1,6 +1,6 @@ import { AlertTriangle, Icon, LargeIcon } from 'icons' -import styled, { Color, css, keyframes, ThemedText } from 'theme' import { ReactNode, useMemo } from 'react' +import styled, { Color, css, keyframes, ThemedText } from 'theme' import Button from './Button' import Row from './Row' diff --git a/src/components/BrandedFooter.tsx b/src/components/BrandedFooter.tsx index 0e1911796..ac6e5bbf2 100644 --- a/src/components/BrandedFooter.tsx +++ b/src/components/BrandedFooter.tsx @@ -1,8 +1,8 @@ import { Trans } from '@lingui/macro' import Row from 'components/Row' import { Logo } from 'icons' -import styled, { brand, ThemedText } from 'theme' import { memo } from 'react' +import styled, { brand, ThemedText } from 'theme' import ExternalLink from './ExternalLink' diff --git a/src/components/Button.tsx b/src/components/Button.tsx index 4c417ec86..8ff531d01 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -1,6 +1,6 @@ import { Icon } from 'icons' -import styled, { Color, css } from 'theme' import { ComponentProps, forwardRef } from 'react' +import styled, { Color, css } from 'theme' export const BaseButton = styled.button` background-color: transparent; diff --git a/src/components/Dialog.tsx b/src/components/Dialog.tsx index f44ca323d..b39c2c117 100644 --- a/src/components/Dialog.tsx +++ b/src/components/Dialog.tsx @@ -1,10 +1,10 @@ import 'wicg-inert' import { X } from 'icons' -import styled, { Color, Layer, ThemeProvider } from 'theme' -import { delayUnmountForAnimation } from 'utils/animations' import { createContext, ReactElement, ReactNode, useContext, useEffect, useRef, useState } from 'react' import { createPortal } from 'react-dom' +import styled, { Color, Layer, ThemeProvider } from 'theme' +import { delayUnmountForAnimation } from 'utils/animations' import { IconButton } from './Button' import Column from './Column' diff --git a/src/components/Error/ErrorBoundary.tsx b/src/components/Error/ErrorBoundary.tsx index 01fee12f0..221a14b6a 100644 --- a/src/components/Error/ErrorBoundary.tsx +++ b/src/components/Error/ErrorBoundary.tsx @@ -1,5 +1,5 @@ import { Trans } from '@lingui/macro' -import React, { ErrorInfo } from 'react' +import { Component, ErrorInfo, PropsWithChildren } from 'react' import Dialog from '../Dialog' import ErrorDialog from './ErrorDialog' @@ -14,7 +14,7 @@ type ErrorBoundaryState = { error: Error | null } -export default class ErrorBoundary extends React.Component { +export default class ErrorBoundary extends Component, ErrorBoundaryState> { constructor(props: ErrorBoundaryProps) { super(props) this.state = { error: null } diff --git a/src/components/Error/ErrorDialog.tsx b/src/components/Error/ErrorDialog.tsx index 93f7b158b..a8382db4b 100644 --- a/src/components/Error/ErrorDialog.tsx +++ b/src/components/Error/ErrorDialog.tsx @@ -3,8 +3,8 @@ import ActionButton from 'components/ActionButton' import Column from 'components/Column' import Expando from 'components/Expando' import { AlertTriangle, Icon, LargeIcon } from 'icons' -import styled, { Color, ThemedText } from 'theme' import { ReactNode, useCallback, useState } from 'react' +import styled, { Color, ThemedText } from 'theme' const HeaderIcon = styled(LargeIcon)` flex-grow: 1; diff --git a/src/components/EtherscanLink.tsx b/src/components/EtherscanLink.tsx index 9e57b25e4..d55f2efa7 100644 --- a/src/components/EtherscanLink.tsx +++ b/src/components/EtherscanLink.tsx @@ -1,8 +1,8 @@ import { SupportedChainId } from 'constants/chains' import useActiveWeb3React from 'hooks/useActiveWeb3React' import { Link } from 'icons' -import styled, { Color } from 'theme' import { ReactNode, useMemo } from 'react' +import styled, { Color } from 'theme' import { ExplorerDataType, getExplorerLink } from 'utils/getExplorerLink' import ExternalLink from './ExternalLink' diff --git a/src/components/Expando.tsx b/src/components/Expando.tsx index 09dcc0a3f..8d4e7eb8c 100644 --- a/src/components/Expando.tsx +++ b/src/components/Expando.tsx @@ -4,8 +4,8 @@ import Row from 'components/Row' import Rule from 'components/Rule' import useScrollbar from 'hooks/useScrollbar' import { Expando as ExpandoIcon } from 'icons' -import styled from 'theme' import { PropsWithChildren, ReactNode, useState } from 'react' +import styled from 'theme' const HeaderColumn = styled(Column)` transition: gap 0.25s; diff --git a/src/components/Header.tsx b/src/components/Header.tsx index c2d1b2bc8..9a99517c8 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,6 +1,6 @@ import { largeIconCss } from 'icons' -import styled, { ThemedText } from 'theme' import { ReactElement, ReactNode } from 'react' +import styled, { ThemedText } from 'theme' import Row from './Row' diff --git a/src/components/Input.tsx b/src/components/Input.tsx index 7b76728d1..2bbac27f8 100644 --- a/src/components/Input.tsx +++ b/src/components/Input.tsx @@ -1,7 +1,7 @@ import { loadingOpacity } from 'css/loading' -import styled, { css } from 'theme' import { transparentize } from 'polished' import { ChangeEvent, forwardRef, HTMLProps, useCallback } from 'react' +import styled, { css } from 'theme' const Input = styled.input` -webkit-appearance: textfield; @@ -50,13 +50,14 @@ const Input = styled.input` export default Input -interface StringInputProps extends Omit, 'onChange' | 'as' | 'value'> { +interface InputProps extends Omit, 'onChange' | 'as' | 'value'> { value: string onChange: (input: string) => void + placeholder?: string } -export const StringInput = forwardRef(function StringInput( - { value, onChange, ...props }: StringInputProps, +export const StringInput = forwardRef(function StringInput( + { value, onChange, ...props }: InputProps, ref ) { return ( @@ -78,18 +79,14 @@ export const StringInput = forwardRef(functi ) }) -interface NumericInputProps extends Omit, 'onChange' | 'as' | 'value'> { - value: string - onChange: (input: string) => void -} - -interface EnforcedNumericInputProps extends NumericInputProps { +interface EnforcedInputProps extends InputProps { // Validates nextUserInput; returns stringified value, or null if invalid enforcer: (nextUserInput: string) => string | null + pattern: string } -const NumericInput = forwardRef(function NumericInput( - { value, onChange, enforcer, pattern, ...props }: EnforcedNumericInputProps, +const NumericInput = forwardRef(function NumericInput( + { value, onChange, enforcer, pattern, ...props }: EnforcedInputProps, ref ) { const validateChange = useCallback( @@ -131,7 +128,7 @@ const integerEnforcer = (nextUserInput: string) => { } return null } -export const IntegerInput = forwardRef(function IntegerInput(props: NumericInputProps, ref) { +export const IntegerInput = forwardRef(function IntegerInput(props: InputProps, ref) { return }) @@ -146,7 +143,7 @@ const decimalEnforcer = (nextUserInput: string) => { } return null } -export const DecimalInput = forwardRef(function DecimalInput(props: NumericInputProps, ref) { +export const DecimalInput = forwardRef(function DecimalInput(props: InputProps, ref) { return }) diff --git a/src/components/Popover.tsx b/src/components/Popover.tsx index 2a197a518..d062bb255 100644 --- a/src/components/Popover.tsx +++ b/src/components/Popover.tsx @@ -1,9 +1,9 @@ import { Options, Placement } from '@popperjs/core' -import styled, { Layer } from 'theme' import maxSize from 'popper-max-size-modifier' import React, { createContext, useContext, useMemo, useRef, useState } from 'react' import { createPortal } from 'react-dom' import { usePopper } from 'react-popper' +import styled, { Layer } from 'theme' const BoundaryContext = createContext(null) diff --git a/src/components/RecentTransactionsDialog.tsx b/src/components/RecentTransactionsDialog.tsx index 4a0230f72..997d818ff 100644 --- a/src/components/RecentTransactionsDialog.tsx +++ b/src/components/RecentTransactionsDialog.tsx @@ -1,8 +1,8 @@ import { Trans } from '@lingui/macro' import { Currency } from '@uniswap/sdk-core' import { AlertTriangle, ArrowRight, CheckCircle, Spinner, Trash2 } from 'icons' -import styled, { ThemedText } from 'theme' import { useMemo, useState } from 'react' +import styled, { ThemedText } from 'theme' import Button from './Button' import Column from './Column' diff --git a/src/components/Row.tsx b/src/components/Row.tsx index f2096e109..2df5872a1 100644 --- a/src/components/Row.tsx +++ b/src/components/Row.tsx @@ -1,5 +1,5 @@ -import styled, { Color, Theme } from 'theme' import { Children, ReactNode } from 'react' +import styled, { Color, Theme } from 'theme' const Row = styled.div<{ color?: Color diff --git a/src/components/Swap/Input.tsx b/src/components/Swap/Input.tsx index 996313bf5..f81d9b8a1 100644 --- a/src/components/Swap/Input.tsx +++ b/src/components/Swap/Input.tsx @@ -9,10 +9,10 @@ import { useSwapInfo, } from 'hooks/swap' import { usePrefetchCurrencyColor } from 'hooks/useCurrencyColor' -import { Field } from 'state/swap' -import styled, { ThemedText } from 'theme' import { useMemo } from 'react' import { TradeState } from 'state/routing/types' +import { Field } from 'state/swap' +import styled, { ThemedText } from 'theme' import { formatCurrencyAmount } from 'utils/formatCurrencyAmount' import { maxAmountSpend } from 'utils/maxAmountSpend' diff --git a/src/components/Swap/Output.tsx b/src/components/Swap/Output.tsx index 57929a5bd..7c04d4850 100644 --- a/src/components/Swap/Output.tsx +++ b/src/components/Swap/Output.tsx @@ -1,14 +1,14 @@ import { Trans } from '@lingui/macro' import { useLingui } from '@lingui/react' -import { atom } from 'jotai' -import { useAtomValue } from 'jotai/utils' import BrandedFooter from 'components/BrandedFooter' import { useIsSwapFieldIndependent, useSwapAmount, useSwapCurrency, useSwapInfo } from 'hooks/swap' import useCurrencyColor from 'hooks/useCurrencyColor' -import { Field } from 'state/swap' -import styled, { DynamicThemeProvider, ThemedText } from 'theme' +import { atom } from 'jotai' +import { useAtomValue } from 'jotai/utils' import { PropsWithChildren } from 'react' import { TradeState } from 'state/routing/types' +import { Field } from 'state/swap' +import styled, { DynamicThemeProvider, ThemedText } from 'theme' import { formatCurrencyAmount } from 'utils/formatCurrencyAmount' import Column from '../Column' diff --git a/src/components/Swap/Price.tsx b/src/components/Swap/Price.tsx index 74c33121e..465db8809 100644 --- a/src/components/Swap/Price.tsx +++ b/src/components/Swap/Price.tsx @@ -2,10 +2,10 @@ import { useLingui } from '@lingui/react' import { Trade } from '@uniswap/router-sdk' import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core' import Row from 'components/Row' -import { ThemedText } from 'theme' -import formatLocaleNumber from 'utils/formatLocaleNumber' import { useCallback, useMemo, useState } from 'react' +import { ThemedText } from 'theme' import { formatCurrencyAmount, formatPrice } from 'utils/formatCurrencyAmount' +import formatLocaleNumber from 'utils/formatLocaleNumber' import { TextButton } from '../Button' diff --git a/src/components/Swap/ReverseButton.tsx b/src/components/Swap/ReverseButton.tsx index c0c6da570..dec700f13 100644 --- a/src/components/Swap/ReverseButton.tsx +++ b/src/components/Swap/ReverseButton.tsx @@ -1,7 +1,7 @@ import { useSwitchSwapCurrencies } from 'hooks/swap' import { ArrowDown as ArrowDownIcon, ArrowUp as ArrowUpIcon } from 'icons' -import styled, { Layer } from 'theme' import { useCallback, useState } from 'react' +import styled, { Layer } from 'theme' import Button from '../Button' import Row from '../Row' diff --git a/src/components/Swap/RoutingDiagram/index.tsx b/src/components/Swap/RoutingDiagram/index.tsx index bfa07a194..087675ee9 100644 --- a/src/components/Swap/RoutingDiagram/index.tsx +++ b/src/components/Swap/RoutingDiagram/index.tsx @@ -7,9 +7,9 @@ import Row from 'components/Row' import Rule from 'components/Rule' import TokenImg from 'components/TokenImg' import { AutoRouter } from 'icons' -import styled, { Layer, ThemedText } from 'theme' import { useMemo } from 'react' import { InterfaceTrade } from 'state/routing/types' +import styled, { Layer, ThemedText } from 'theme' import { getTokenPath, RoutingDiagramEntry } from './utils' diff --git a/src/components/Swap/Settings/MaxSlippageSelect.tsx b/src/components/Swap/Settings/MaxSlippageSelect.tsx index b79ef7674..35dca50ac 100644 --- a/src/components/Swap/Settings/MaxSlippageSelect.tsx +++ b/src/components/Swap/Settings/MaxSlippageSelect.tsx @@ -1,12 +1,12 @@ import { Trans } from '@lingui/macro' -import { useAtom } from 'jotai' import Popover from 'components/Popover' import { useTooltip } from 'components/Tooltip' import { getSlippageWarning, toPercent } from 'hooks/useSlippage' import { AlertTriangle, Check, Icon, LargeIcon, XOctagon } from 'icons' +import { useAtom } from 'jotai' +import { forwardRef, memo, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react' import { autoSlippageAtom, maxSlippageAtom } from 'state/settings' import styled, { ThemedText } from 'theme' -import { forwardRef, memo, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react' import { BaseButton, TextButton } from '../../Button' import Column from '../../Column' diff --git a/src/components/Swap/Settings/TransactionTtlInput.tsx b/src/components/Swap/Settings/TransactionTtlInput.tsx index e778c5294..9f454d3e2 100644 --- a/src/components/Swap/Settings/TransactionTtlInput.tsx +++ b/src/components/Swap/Settings/TransactionTtlInput.tsx @@ -1,7 +1,7 @@ import { Trans } from '@lingui/macro' import { useDefaultTransactionTtl, useTransactionTtl } from 'hooks/useTransactionDeadline' -import styled, { ThemedText } from 'theme' import { useRef } from 'react' +import styled, { ThemedText } from 'theme' import Column from '../../Column' import { inputCss, IntegerInput } from '../../Input' diff --git a/src/components/Swap/Settings/components.tsx b/src/components/Swap/Settings/components.tsx index ffb459d3e..e0f2db16e 100644 --- a/src/components/Swap/Settings/components.tsx +++ b/src/components/Swap/Settings/components.tsx @@ -1,7 +1,7 @@ -import styled, { css, ThemedText } from 'theme' import { ReactNode } from 'react' // eslint-disable-next-line no-restricted-imports import { AnyStyledComponent } from 'styled-components' +import styled, { css, ThemedText } from 'theme' import Row from '../../Row' import Tooltip from '../../Tooltip' diff --git a/src/components/Swap/Settings/index.tsx b/src/components/Swap/Settings/index.tsx index 375ed7453..e26993bfe 100644 --- a/src/components/Swap/Settings/index.tsx +++ b/src/components/Swap/Settings/index.tsx @@ -1,10 +1,10 @@ import { Trans } from '@lingui/macro' -import { useResetAtom } from 'jotai/utils' import useScrollbar from 'hooks/useScrollbar' import { Settings as SettingsIcon } from 'icons' +import { useResetAtom } from 'jotai/utils' +import React, { useState } from 'react' import { settingsAtom } from 'state/settings' import styled, { ThemedText } from 'theme' -import React, { useState } from 'react' import { IconButton, TextButton } from '../../Button' import Column from '../../Column' diff --git a/src/components/Swap/Status/StatusDialog.tsx b/src/components/Swap/Status/StatusDialog.tsx index b27bc7504..5fc21e02a 100644 --- a/src/components/Swap/Status/StatusDialog.tsx +++ b/src/components/Swap/Status/StatusDialog.tsx @@ -5,10 +5,10 @@ import Rule from 'components/Rule' import SwapSummary from 'components/Swap/Summary' import useInterval from 'hooks/useInterval' import { CheckCircle, Clock, Spinner } from 'icons' -import { SwapTransactionInfo, Transaction, TransactionType, WrapTransactionInfo } from 'state/transactions' -import styled, { ThemedText } from 'theme' import ms from 'ms.macro' import { useCallback, useMemo, useState } from 'react' +import { SwapTransactionInfo, Transaction, TransactionType, WrapTransactionInfo } from 'state/transactions' +import styled, { ThemedText } from 'theme' import { ExplorerDataType } from 'utils/getExplorerLink' import ActionButton from '../../ActionButton' diff --git a/src/components/Swap/Summary.fixture.tsx b/src/components/Swap/Summary.fixture.tsx index 3c904301f..3d4fd34cb 100644 --- a/src/components/Swap/Summary.fixture.tsx +++ b/src/components/Swap/Summary.fixture.tsx @@ -1,12 +1,12 @@ import { tokens } from '@uniswap/default-token-list' import { SupportedChainId } from 'constants/chains' import { nativeOnChain } from 'constants/tokens' -import { useUpdateAtom } from 'jotai/utils' import { useSwapInfo } from 'hooks/swap' import { SwapInfoProvider } from 'hooks/swap/useSwapInfo' -import { Field, swapAtom } from 'state/swap' +import { useUpdateAtom } from 'jotai/utils' import { useEffect } from 'react' import { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo' +import { Field, swapAtom } from 'state/swap' import invariant from 'tiny-invariant' import { Modal } from '../Dialog' diff --git a/src/components/Swap/Summary/Details.tsx b/src/components/Swap/Summary/Details.tsx index ddc4b6056..52ce5dc92 100644 --- a/src/components/Swap/Summary/Details.tsx +++ b/src/components/Swap/Summary/Details.tsx @@ -2,14 +2,14 @@ import { t } from '@lingui/macro' import { useLingui } from '@lingui/react' import { Trade } from '@uniswap/router-sdk' import { Currency, TradeType } from '@uniswap/sdk-core' -import { useAtomValue } from 'jotai/utils' import Column from 'components/Column' import Row from 'components/Row' import { Slippage } from 'hooks/useSlippage' import { PriceImpact } from 'hooks/useUSDCPriceImpact' +import { useAtomValue } from 'jotai/utils' +import { useMemo } from 'react' import { feeOptionsAtom } from 'state/swap' import styled, { Color, ThemedText } from 'theme' -import { useMemo } from 'react' import { currencyId } from 'utils/currencyId' import { formatCurrencyAmount } from 'utils/formatCurrencyAmount' import { computeRealizedLPFeeAmount } from 'utils/prices' diff --git a/src/components/Swap/Summary/Summary.tsx b/src/components/Swap/Summary/Summary.tsx index 576e2e52a..a8e7e1010 100644 --- a/src/components/Swap/Summary/Summary.tsx +++ b/src/components/Swap/Summary/Summary.tsx @@ -2,8 +2,8 @@ import { useLingui } from '@lingui/react' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' import { PriceImpact } from 'hooks/useUSDCPriceImpact' import { ArrowRight } from 'icons' -import { ThemedText } from 'theme' import { PropsWithChildren } from 'react' +import { ThemedText } from 'theme' import { formatCurrencyAmount } from 'utils/formatCurrencyAmount' import Column from '../../Column' diff --git a/src/components/Swap/Summary/index.tsx b/src/components/Swap/Summary/index.tsx index 8b5da02b8..ab1e87cf5 100644 --- a/src/components/Swap/Summary/index.tsx +++ b/src/components/Swap/Summary/index.tsx @@ -10,8 +10,8 @@ import Row from 'components/Row' import { Slippage } from 'hooks/useSlippage' import { PriceImpact } from 'hooks/useUSDCPriceImpact' import { AlertTriangle, BarChart, Info, Spinner } from 'icons' -import styled, { ThemedText } from 'theme' import { useCallback, useMemo, useState } from 'react' +import styled, { ThemedText } from 'theme' import { formatCurrencyAmount } from 'utils/formatCurrencyAmount' import { tradeMeaningfullyDiffers } from 'utils/tradeMeaningFullyDiffer' diff --git a/src/components/Swap/SwapButton/index.tsx b/src/components/Swap/SwapButton/index.tsx index 009b1e3bf..dd029bb0b 100644 --- a/src/components/Swap/SwapButton/index.tsx +++ b/src/components/Swap/SwapButton/index.tsx @@ -1,5 +1,4 @@ import { Trans } from '@lingui/macro' -import { useAtomValue, useUpdateAtom } from 'jotai/utils' import { useSwapInfo } from 'hooks/swap' import { useSwapApprovalOptimizedTrade } from 'hooks/swap/useSwapApproval' import { useSwapCallback } from 'hooks/swap/useSwapCallback' @@ -9,13 +8,14 @@ import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useSetOldestValidBlock } from 'hooks/useIsValidBlock' import useTransactionDeadline from 'hooks/useTransactionDeadline' import { Spinner } from 'icons' +import { useAtomValue, useUpdateAtom } from 'jotai/utils' +import { memo, useCallback, useEffect, useMemo, useState } from 'react' +import { TradeState } from 'state/routing/types' import { displayTxHashAtom, feeOptionsAtom, Field } from 'state/swap' import { TransactionType } from 'state/transactions' import { useTheme } from 'theme' -import { isAnimating } from 'utils/animations' -import { memo, useCallback, useEffect, useMemo, useState } from 'react' -import { TradeState } from 'state/routing/types' import invariant from 'tiny-invariant' +import { isAnimating } from 'utils/animations' import ActionButton, { ActionButtonProps } from '../../ActionButton' import Dialog from '../../Dialog' diff --git a/src/components/Swap/SwapButton/useApprovalData.tsx b/src/components/Swap/SwapButton/useApprovalData.tsx index 7a3a33c04..cb0fb9ae4 100644 --- a/src/components/Swap/SwapButton/useApprovalData.tsx +++ b/src/components/Swap/SwapButton/useApprovalData.tsx @@ -11,8 +11,8 @@ import { import { useAddTransaction, usePendingApproval } from 'hooks/transactions' import { Slippage } from 'hooks/useSlippage' import { Spinner } from 'icons' -import { TransactionType } from 'state/transactions' import { useCallback, useEffect, useMemo, useState } from 'react' +import { TransactionType } from 'state/transactions' import { ExplorerDataType } from 'utils/getExplorerLink' export function useIsPendingApproval(token?: Token, spender?: string): boolean { diff --git a/src/components/Swap/TokenInput.tsx b/src/components/Swap/TokenInput.tsx index 8ab5fd83c..d65149629 100644 --- a/src/components/Swap/TokenInput.tsx +++ b/src/components/Swap/TokenInput.tsx @@ -3,8 +3,8 @@ import 'setimmediate' import { Trans } from '@lingui/macro' import { Currency } from '@uniswap/sdk-core' import { loadingTransitionCss } from 'css/loading' -import styled, { keyframes, ThemedText } from 'theme' import { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react' +import styled, { keyframes, ThemedText } from 'theme' import Button from '../Button' import Column from '../Column' diff --git a/src/components/Swap/Toolbar/Caption.tsx b/src/components/Swap/Toolbar/Caption.tsx index 2c69edea7..806e73e80 100644 --- a/src/components/Swap/Toolbar/Caption.tsx +++ b/src/components/Swap/Toolbar/Caption.tsx @@ -6,9 +6,9 @@ import Tooltip from 'components/Tooltip' import { loadingCss } from 'css/loading' import { PriceImpact } from 'hooks/useUSDCPriceImpact' import { AlertTriangle, Icon, Info, InlineSpinner } from 'icons' -import styled, { ThemedText } from 'theme' import { ReactNode, useCallback } from 'react' import { InterfaceTrade } from 'state/routing/types' +import styled, { ThemedText } from 'theme' import Price from '../Price' import RoutingDiagram from '../RoutingDiagram' diff --git a/src/components/Swap/Toolbar/index.tsx b/src/components/Swap/Toolbar/index.tsx index 722bc8348..b609c8452 100644 --- a/src/components/Swap/Toolbar/index.tsx +++ b/src/components/Swap/Toolbar/index.tsx @@ -3,10 +3,10 @@ import { useIsAmountPopulated, useSwapInfo } from 'hooks/swap' import useWrapCallback, { WrapType } from 'hooks/swap/useWrapCallback' import useActiveWeb3React from 'hooks/useActiveWeb3React' import { largeIconCss } from 'icons' -import { Field } from 'state/swap' -import styled, { ThemedText } from 'theme' import { memo, useMemo } from 'react' import { TradeState } from 'state/routing/types' +import { Field } from 'state/swap' +import styled, { ThemedText } from 'theme' import Row from '../../Row' import Rule from '../../Rule' diff --git a/src/components/Swap/index.tsx b/src/components/Swap/index.tsx index 7993b3ff9..9891c81b3 100644 --- a/src/components/Swap/index.tsx +++ b/src/components/Swap/index.tsx @@ -1,5 +1,4 @@ import { Trans } from '@lingui/macro' -import { useAtom } from 'jotai' import { SwapInfoProvider } from 'hooks/swap/useSwapInfo' import useSyncConvenienceFee, { FeeOptions } from 'hooks/swap/useSyncConvenienceFee' import useSyncTokenDefaults, { TokenDefaults } from 'hooks/swap/useSyncTokenDefaults' @@ -7,9 +6,10 @@ import { usePendingTransactions } from 'hooks/transactions' import useActiveWeb3React from 'hooks/useActiveWeb3React' import useHasFocus from 'hooks/useHasFocus' import useOnSupportedNetwork from 'hooks/useOnSupportedNetwork' +import { useAtom } from 'jotai' +import { useState } from 'react' import { displayTxHashAtom } from 'state/swap' import { SwapTransactionInfo, Transaction, TransactionType, WrapTransactionInfo } from 'state/transactions' -import { useState } from 'react' import Dialog from '../Dialog' import Header from '../Header' diff --git a/src/components/Swap/useValidate.tsx b/src/components/Swap/useValidate.tsx index cd1e82572..d7b759150 100644 --- a/src/components/Swap/useValidate.tsx +++ b/src/components/Swap/useValidate.tsx @@ -2,7 +2,6 @@ import { IntegrationError } from 'errors' import { FeeOptions } from 'hooks/swap/useSyncConvenienceFee' import { DefaultAddress, TokenDefaults } from 'hooks/swap/useSyncTokenDefaults' import { PropsWithChildren, useEffect } from 'react' - import { isAddress } from 'utils' function isAddressOrAddressMap(addressOrMap: DefaultAddress): boolean { diff --git a/src/components/Toggle.tsx b/src/components/Toggle.tsx index fc2706242..8123b76be 100644 --- a/src/components/Toggle.tsx +++ b/src/components/Toggle.tsx @@ -1,7 +1,7 @@ import { t } from '@lingui/macro' -import styled, { ThemedText } from 'theme' import { transparentize } from 'polished' import { KeyboardEvent, useCallback } from 'react' +import styled, { ThemedText } from 'theme' const Input = styled.input<{ text: string }>` -moz-appearance: none; diff --git a/src/components/TokenImg.tsx b/src/components/TokenImg.tsx index 31d11a09e..73fab343b 100644 --- a/src/components/TokenImg.tsx +++ b/src/components/TokenImg.tsx @@ -2,8 +2,8 @@ import { Currency } from '@uniswap/sdk-core' import { useToken } from 'hooks/useCurrency' import useCurrencyLogoURIs from 'hooks/useCurrencyLogoURIs' import { MissingToken } from 'icons' -import styled from 'theme' import { useCallback, useMemo, useState } from 'react' +import styled from 'theme' const badSrcs = new Set() diff --git a/src/components/TokenSelect/TokenButton.tsx b/src/components/TokenSelect/TokenButton.tsx index c87f26bb8..666672e20 100644 --- a/src/components/TokenSelect/TokenButton.tsx +++ b/src/components/TokenSelect/TokenButton.tsx @@ -1,8 +1,8 @@ import { Trans } from '@lingui/macro' import { Currency } from '@uniswap/sdk-core' import { ChevronDown } from 'icons' -import styled, { css, ThemedText } from 'theme' import { useEffect, useMemo, useState } from 'react' +import styled, { css, ThemedText } from 'theme' import Button from '../Button' import Row from '../Row' diff --git a/src/components/TokenSelect/TokenOptions.tsx b/src/components/TokenSelect/TokenOptions.tsx index b3f5ebeef..ac695df17 100644 --- a/src/components/TokenSelect/TokenOptions.tsx +++ b/src/components/TokenSelect/TokenOptions.tsx @@ -4,7 +4,6 @@ import useActiveWeb3React from 'hooks/useActiveWeb3React' import useCurrencyBalance from 'hooks/useCurrencyBalance' import useNativeEvent from 'hooks/useNativeEvent' import useScrollbar from 'hooks/useScrollbar' -import styled, { ThemedText } from 'theme' import { ComponentClass, CSSProperties, @@ -20,6 +19,7 @@ import { } from 'react' import AutoSizer from 'react-virtualized-auto-sizer' import { areEqual, FixedSizeList, FixedSizeListProps } from 'react-window' +import styled, { ThemedText } from 'theme' import { currencyId } from 'utils/currencyId' import { formatCurrencyAmount } from 'utils/formatCurrencyAmount' diff --git a/src/components/TokenSelect/index.tsx b/src/components/TokenSelect/index.tsx index 0cdec2297..57d7961b5 100644 --- a/src/components/TokenSelect/index.tsx +++ b/src/components/TokenSelect/index.tsx @@ -4,8 +4,8 @@ import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useCurrencyBalances } from 'hooks/useCurrencyBalance' import useNativeCurrency from 'hooks/useNativeCurrency' import useTokenList, { useIsTokenListLoaded, useQueryCurrencies } from 'hooks/useTokenList' -import styled, { ThemedText } from 'theme' import { ElementRef, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react' +import styled, { ThemedText } from 'theme' import { currencyId } from 'utils/currencyId' import Column from '../Column' diff --git a/src/components/Tooltip.tsx b/src/components/Tooltip.tsx index 4132d6cf8..76f03c3d6 100644 --- a/src/components/Tooltip.tsx +++ b/src/components/Tooltip.tsx @@ -2,8 +2,8 @@ import { Placement } from '@popperjs/core' import useHasFocus from 'hooks/useHasFocus' import useHasHover from 'hooks/useHasHover' import { HelpCircle, Icon } from 'icons' -import styled from 'theme' import { ComponentProps, ReactNode, useRef } from 'react' +import styled from 'theme' import { IconButton } from './Button' import Popover from './Popover' diff --git a/src/components/Widget.tsx b/src/components/Widget.tsx index b127f976d..be913c401 100644 --- a/src/components/Widget.tsx +++ b/src/components/Widget.tsx @@ -2,17 +2,17 @@ import { JsonRpcProvider } from '@ethersproject/providers' import { TokenInfo } from '@uniswap/token-lists' import { Provider as Eip1193Provider } from '@web3-react/types' import { DEFAULT_LOCALE, SUPPORTED_LOCALES, SupportedLocale } from 'constants/locales' -import { Provider as AtomProvider } from 'jotai' import { TransactionsUpdater } from 'hooks/transactions' import { ActiveWeb3Provider } from 'hooks/useActiveWeb3React' import { BlockNumberProvider } from 'hooks/useBlockNumber' import { TokenListProvider } from 'hooks/useTokenList' import { Provider as I18nProvider } from 'i18n' +import { Provider as AtomProvider } from 'jotai' +import { PropsWithChildren, StrictMode, useMemo, useState } from 'react' +import { Provider as ReduxProvider } from 'react-redux' import { MulticallUpdater, store as multicallStore } from 'state/multicall' import styled, { keyframes, Theme, ThemeProvider } from 'theme' import { UNMOUNTING } from 'utils/animations' -import { PropsWithChildren, StrictMode, useMemo, useState } from 'react' -import { Provider as ReduxProvider } from 'react-redux' import { Modal, Provider as DialogProvider } from './Dialog' import ErrorBoundary, { ErrorHandler } from './Error/ErrorBoundary' diff --git a/src/constants/addresses.ts b/src/constants/addresses.ts index 26ee33c4d..4c8347501 100644 --- a/src/constants/addresses.ts +++ b/src/constants/addresses.ts @@ -1,7 +1,7 @@ import { FACTORY_ADDRESS as V2_FACTORY_ADDRESS } from '@uniswap/v2-sdk' import { FACTORY_ADDRESS as V3_FACTORY_ADDRESS } from '@uniswap/v3-sdk' - import { constructSameAddressMap } from 'utils/constructSameAddressMap' + import { SupportedChainId } from './chains' type AddressMap = { [chainId: number]: string } diff --git a/src/cosmos/components/Widget.tsx b/src/cosmos/components/Widget.tsx index bb9c73646..2d6629ead 100644 --- a/src/cosmos/components/Widget.tsx +++ b/src/cosmos/components/Widget.tsx @@ -3,13 +3,13 @@ import { initializeConnector } from '@web3-react/core' import { MetaMask } from '@web3-react/metamask' import { Connector } from '@web3-react/types' import { WalletConnect } from '@web3-react/walletconnect' +import Widget from 'components/Widget' import { SupportedChainId } from 'constants/chains' import { INFURA_NETWORK_URLS } from 'constants/infura' import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from 'constants/locales' -import Widget from 'components/Widget' -import { darkTheme, defaultTheme, lightTheme } from 'theme' import { ReactNode, useEffect, useState } from 'react' import { useSelect, useValue } from 'react-cosmos/fixture' +import { darkTheme, defaultTheme, lightTheme } from 'theme' const [metaMask] = initializeConnector((actions) => new MetaMask(actions)) const [walletConnect] = initializeConnector( diff --git a/src/hooks/routing/clientSideSmartOrderRouter.ts b/src/hooks/routing/clientSideSmartOrderRouter.ts index 769dcf4d5..6c30f13fb 100644 --- a/src/hooks/routing/clientSideSmartOrderRouter.ts +++ b/src/hooks/routing/clientSideSmartOrderRouter.ts @@ -4,7 +4,8 @@ import { BigintIsh, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core' import { AlphaRouter, AlphaRouterConfig, AlphaRouterParams, ChainId } from '@uniswap/smart-order-router' import JSBI from 'jsbi' import { GetQuoteResult } from 'state/routing/types' -import { transformSwapRouteToGetQuoteResult } from 'utils/transformSwapRouteToGetQuoteResult' + +import { transformSwapRouteToGetQuoteResult } from './transformSwapRouteToGetQuoteResult' export const AUTO_ROUTER_SUPPORTED_CHAINS: ChainId[] = Object.values(ChainId).filter((chainId): chainId is ChainId => Number.isInteger(chainId) diff --git a/src/utils/transformSwapRouteToGetQuoteResult.ts b/src/hooks/routing/transformSwapRouteToGetQuoteResult.ts similarity index 97% rename from src/utils/transformSwapRouteToGetQuoteResult.ts rename to src/hooks/routing/transformSwapRouteToGetQuoteResult.ts index e1a7fe64b..b94d8bc78 100644 --- a/src/utils/transformSwapRouteToGetQuoteResult.ts +++ b/src/hooks/routing/transformSwapRouteToGetQuoteResult.ts @@ -1,5 +1,7 @@ import { Protocol } from '@uniswap/router-sdk' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +// This file is lazy-loaded, so the import of smart-order-router is intentional. +// eslint-disable-next-line no-restricted-imports import { routeAmountsToString, SwapRoute } from '@uniswap/smart-order-router' import { GetQuoteResult, V2PoolInRoute, V3PoolInRoute } from 'state/routing/types' diff --git a/src/hooks/swap/index.ts b/src/hooks/swap/index.ts index f163562bf..62d03a3a1 100644 --- a/src/hooks/swap/index.ts +++ b/src/hooks/swap/index.ts @@ -1,10 +1,10 @@ import { Currency, CurrencyAmount } from '@uniswap/sdk-core' import { useAtom } from 'jotai' import { useAtomValue, useUpdateAtom } from 'jotai/utils' +import { useCallback, useMemo } from 'react' import { pickAtom } from 'state/atoms' import { Field, swapAtom } from 'state/swap' import tryParseCurrencyAmount from 'utils/tryParseCurrencyAmount' -import { useCallback, useMemo } from 'react' export { default as useSwapInfo } from './useSwapInfo' function otherField(field: Field) { diff --git a/src/hooks/swap/useSwapInfo.tsx b/src/hooks/swap/useSwapInfo.tsx index 08dafb2be..f009a13a0 100644 --- a/src/hooks/swap/useSwapInfo.tsx +++ b/src/hooks/swap/useSwapInfo.tsx @@ -1,13 +1,13 @@ import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core' -import { useAtomValue } from 'jotai/utils' import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useCurrencyBalances } from 'hooks/useCurrencyBalance' import useSlippage, { DEFAULT_SLIPPAGE, Slippage } from 'hooks/useSlippage' import useUSDCPriceImpact, { PriceImpact } from 'hooks/useUSDCPriceImpact' -import { Field, swapAtom } from 'state/swap' -import tryParseCurrencyAmount from 'utils/tryParseCurrencyAmount' +import { useAtomValue } from 'jotai/utils' import { createContext, PropsWithChildren, useContext, useMemo } from 'react' import { InterfaceTrade, TradeState } from 'state/routing/types' +import { Field, swapAtom } from 'state/swap' +import tryParseCurrencyAmount from 'utils/tryParseCurrencyAmount' import { INVALID_TRADE, useBestTrade } from './useBestTrade' import useWrapCallback, { WrapType } from './useWrapCallback' diff --git a/src/hooks/swap/useSyncConvenienceFee.ts b/src/hooks/swap/useSyncConvenienceFee.ts index cf9dc489c..684796f99 100644 --- a/src/hooks/swap/useSyncConvenienceFee.ts +++ b/src/hooks/swap/useSyncConvenienceFee.ts @@ -1,8 +1,8 @@ import { Percent } from '@uniswap/sdk-core' import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useUpdateAtom } from 'jotai/utils' -import { feeOptionsAtom } from 'state/swap' import { useEffect } from 'react' +import { feeOptionsAtom } from 'state/swap' export interface FeeOptions { convenienceFee?: number diff --git a/src/hooks/swap/useSyncTokenDefaults.ts b/src/hooks/swap/useSyncTokenDefaults.ts index 8a30e3843..8f25770db 100644 --- a/src/hooks/swap/useSyncTokenDefaults.ts +++ b/src/hooks/swap/useSyncTokenDefaults.ts @@ -1,11 +1,11 @@ import { Currency } from '@uniswap/sdk-core' import { nativeOnChain } from 'constants/tokens' -import { useUpdateAtom } from 'jotai/utils' import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useToken } from 'hooks/useCurrency' import useNativeCurrency from 'hooks/useNativeCurrency' -import { Field, Swap, swapAtom } from 'state/swap' +import { useUpdateAtom } from 'jotai/utils' import { useCallback, useRef } from 'react' +import { Field, Swap, swapAtom } from 'state/swap' import useOnSupportedNetwork from '../useOnSupportedNetwork' import { useIsTokenListLoaded } from '../useTokenList' diff --git a/src/hooks/swap/useWrapCallback.tsx b/src/hooks/swap/useWrapCallback.tsx index 9dea1a892..d778ae746 100644 --- a/src/hooks/swap/useWrapCallback.tsx +++ b/src/hooks/swap/useWrapCallback.tsx @@ -1,11 +1,11 @@ import { ContractTransaction } from '@ethersproject/contracts' +import { WRAPPED_NATIVE_CURRENCY } from 'constants/tokens' import { useWETHContract } from 'hooks/useContract' import { useAtomValue } from 'jotai/utils' +import { useMemo } from 'react' import { Field, swapAtom } from 'state/swap' import tryParseCurrencyAmount from 'utils/tryParseCurrencyAmount' -import { useMemo } from 'react' -import { WRAPPED_NATIVE_CURRENCY } from 'constants/tokens' import useActiveWeb3React from '../useActiveWeb3React' import useCurrencyBalance from '../useCurrencyBalance' diff --git a/src/hooks/transactions/index.tsx b/src/hooks/transactions/index.tsx index bd6e005e0..1585debf6 100644 --- a/src/hooks/transactions/index.tsx +++ b/src/hooks/transactions/index.tsx @@ -1,9 +1,9 @@ import { Token } from '@uniswap/sdk-core' -import { useAtomValue, useUpdateAtom } from 'jotai/utils' import useActiveWeb3React from 'hooks/useActiveWeb3React' -import { Transaction, TransactionInfo, transactionsAtom, TransactionType } from 'state/transactions' +import { useAtomValue, useUpdateAtom } from 'jotai/utils' import ms from 'ms.macro' import { useCallback } from 'react' +import { Transaction, TransactionInfo, transactionsAtom, TransactionType } from 'state/transactions' import invariant from 'tiny-invariant' import useBlockNumber from '../useBlockNumber' diff --git a/src/hooks/useActiveWeb3React.tsx b/src/hooks/useActiveWeb3React.tsx index b4d2cbd78..8849a6c1e 100644 --- a/src/hooks/useActiveWeb3React.tsx +++ b/src/hooks/useActiveWeb3React.tsx @@ -6,8 +6,8 @@ import { Actions, Connector, Provider as Eip1193Provider, Web3ReactStore } from import { Url } from '@web3-react/url' import { useAtom, WritableAtom } from 'jotai' import { atom } from 'jotai' -import JsonRpcConnector from 'utils/JsonRpcConnector' import { createContext, PropsWithChildren, useContext, useEffect, useMemo } from 'react' +import JsonRpcConnector from 'utils/JsonRpcConnector' type Web3ContextType = { connector: Connector diff --git a/src/hooks/useAllCurrencyCombinations.ts b/src/hooks/useAllCurrencyCombinations.ts index 2c9c49bc8..1a92680be 100644 --- a/src/hooks/useAllCurrencyCombinations.ts +++ b/src/hooks/useAllCurrencyCombinations.ts @@ -1,7 +1,6 @@ import { Currency, Token } from '@uniswap/sdk-core' -import { useMemo } from 'react' - import { ADDITIONAL_BASES, BASES_TO_CHECK_TRADES_AGAINST, CUSTOM_BASES } from 'constants/routing' +import { useMemo } from 'react' export function useAllCurrencyCombinations(currencyA?: Currency, currencyB?: Currency): [Token, Token][] { const chainId = currencyA?.chainId diff --git a/src/hooks/useArgentWalletContract.ts b/src/hooks/useArgentWalletContract.ts index 3e15e6ca8..8cd178106 100644 --- a/src/hooks/useArgentWalletContract.ts +++ b/src/hooks/useArgentWalletContract.ts @@ -1,7 +1,7 @@ -import useActiveWeb3React from 'hooks/useActiveWeb3React' - import ArgentWalletContractABI from 'abis/argent-wallet-contract.json' import { ArgentWalletContract } from 'abis/types' +import useActiveWeb3React from 'hooks/useActiveWeb3React' + import { useContract } from './useContract' import useIsArgentWallet from './useIsArgentWallet' diff --git a/src/hooks/useAutoSlippageTolerance.ts b/src/hooks/useAutoSlippageTolerance.ts index 2ec85c650..06e5e78ef 100644 --- a/src/hooks/useAutoSlippageTolerance.ts +++ b/src/hooks/useAutoSlippageTolerance.ts @@ -3,8 +3,8 @@ import { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core' import { SUPPORTED_GAS_ESTIMATE_CHAIN_IDS } from 'constants/chains' import { L2_CHAIN_IDS } from 'constants/chains' import useActiveWeb3React from 'hooks/useActiveWeb3React' -import JSBI from 'jsbi' import useNativeCurrency from 'hooks/useNativeCurrency' +import JSBI from 'jsbi' import { useMemo } from 'react' import { InterfaceTrade } from 'state/routing/types' diff --git a/src/hooks/useBestV2Trade.ts b/src/hooks/useBestV2Trade.ts index a863dcd99..3ab7ffdab 100644 --- a/src/hooks/useBestV2Trade.ts +++ b/src/hooks/useBestV2Trade.ts @@ -1,9 +1,9 @@ import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core' import { Pair, Trade } from '@uniswap/v2-sdk' +import { BETTER_TRADE_LESS_HOPS_THRESHOLD } from 'constants/misc' import { useMemo } from 'react' import { isTradeBetter } from 'utils/isTradeBetter' -import { BETTER_TRADE_LESS_HOPS_THRESHOLD } from 'constants/misc' import { useAllCurrencyCombinations } from './useAllCurrencyCombinations' import { PairState, useV2Pairs } from './useV2Pairs' diff --git a/src/hooks/useClientSideV3Trade.ts b/src/hooks/useClientSideV3Trade.ts index 13553c07e..c960f82b8 100644 --- a/src/hooks/useClientSideV3Trade.ts +++ b/src/hooks/useClientSideV3Trade.ts @@ -1,9 +1,9 @@ import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core' import { Route, SwapQuoter } from '@uniswap/v3-sdk' import { SupportedChainId } from 'constants/chains' +import { useSingleContractWithCallData } from 'hooks/multicall' import useActiveWeb3React from 'hooks/useActiveWeb3React' import JSBI from 'jsbi' -import { useSingleContractWithCallData } from 'hooks/multicall' import { useMemo } from 'react' import { InterfaceTrade, TradeState } from 'state/routing/types' diff --git a/src/hooks/useContract.ts b/src/hooks/useContract.ts index fe52cf0ed..7d776c597 100644 --- a/src/hooks/useContract.ts +++ b/src/hooks/useContract.ts @@ -31,7 +31,6 @@ import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useMemo } from 'react' import { NonfungiblePositionManager, Quoter, TickLens, UniswapInterfaceMulticall } from 'types/v3' import { V3Migrator } from 'types/v3/V3Migrator' - import { getContract } from 'utils' const { abi: IUniswapV2PairABI } = IUniswapV2PairJson diff --git a/src/hooks/useCurrency.ts b/src/hooks/useCurrency.ts index 0f9880059..2012a1dac 100644 --- a/src/hooks/useCurrency.ts +++ b/src/hooks/useCurrency.ts @@ -1,15 +1,15 @@ import { arrayify } from '@ethersproject/bytes' import { parseBytes32String } from '@ethersproject/strings' import { Currency, Token } from '@uniswap/sdk-core' +import { TOKEN_SHORTHANDS } from 'constants/tokens' +import { NEVER_RELOAD, useSingleCallResult } from 'hooks/multicall' import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useBytes32TokenContract, useTokenContract } from 'hooks/useContract' -import { NEVER_RELOAD, useSingleCallResult } from 'hooks/multicall' import useNativeCurrency from 'hooks/useNativeCurrency' import { useMemo } from 'react' - -import { TOKEN_SHORTHANDS } from 'constants/tokens' import { isAddress } from 'utils' import { supportedChainId } from 'utils/supportedChainId' + import { TokenMap, useTokenMap } from './useTokenList' // parse a name or symbol from a token response diff --git a/src/hooks/useCurrencyBalance.ts b/src/hooks/useCurrencyBalance.ts index 0cf6eed21..401f3553c 100644 --- a/src/hooks/useCurrencyBalance.ts +++ b/src/hooks/useCurrencyBalance.ts @@ -2,13 +2,12 @@ import { Interface } from '@ethersproject/abi' import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core' import ERC20ABI from 'abis/erc20.json' import { Erc20Interface } from 'abis/types/Erc20' +import { nativeOnChain } from 'constants/tokens' +import { useMultipleContractSingleData, useSingleContractMultipleData } from 'hooks/multicall' import useActiveWeb3React from 'hooks/useActiveWeb3React' +import { useInterfaceMulticall } from 'hooks/useContract' import JSBI from 'jsbi' -import { useMultipleContractSingleData, useSingleContractMultipleData } from 'hooks/multicall' import { useMemo } from 'react' - -import { nativeOnChain } from 'constants/tokens' -import { useInterfaceMulticall } from 'hooks/useContract' import { isAddress } from 'utils' /** diff --git a/src/hooks/useCurrencyColor.ts b/src/hooks/useCurrencyColor.ts index 9637d7437..470cb0723 100644 --- a/src/hooks/useCurrencyColor.ts +++ b/src/hooks/useCurrencyColor.ts @@ -1,7 +1,7 @@ import { Currency } from '@uniswap/sdk-core' -import { useTheme } from 'theme' import Vibrant from 'node-vibrant/lib/bundle.js' import { useEffect, useState } from 'react' +import { useTheme } from 'theme' import useCurrencyLogoURIs from './useCurrencyLogoURIs' diff --git a/src/hooks/useCurrencyLogoURIs.ts b/src/hooks/useCurrencyLogoURIs.ts index d03b55a4d..7f88b5464 100644 --- a/src/hooks/useCurrencyLogoURIs.ts +++ b/src/hooks/useCurrencyLogoURIs.ts @@ -1,12 +1,11 @@ import { Currency } from '@uniswap/sdk-core' +import EthereumLogo from 'assets/images/ethereum-logo.png' +import MaticLogo from 'assets/svg/matic-token-icon.svg' import { SupportedChainId } from 'constants/chains' import useHttpLocations from 'hooks/useHttpLocations' import { useMemo } from 'react' import { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo' -import EthereumLogo from 'assets/images/ethereum-logo.png' -import MaticLogo from 'assets/svg/matic-token-icon.svg' - type Network = 'ethereum' | 'arbitrum' | 'optimism' function chainIdToNetworkName(networkId: SupportedChainId): Network { diff --git a/src/hooks/useENS.ts b/src/hooks/useENS.ts index a59e91ab9..dbbd43f09 100644 --- a/src/hooks/useENS.ts +++ b/src/hooks/useENS.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react' - import { isAddress } from 'utils' + import useENSAddress from './useENSAddress' import useENSName from './useENSName' diff --git a/src/hooks/useENSAddress.ts b/src/hooks/useENSAddress.ts index 7acd8a9b4..217b63a9d 100644 --- a/src/hooks/useENSAddress.ts +++ b/src/hooks/useENSAddress.ts @@ -1,8 +1,8 @@ import { useSingleCallResult } from 'hooks/multicall' import { useMemo } from 'react' +import isZero from 'utils/isZero' import { safeNamehash } from 'utils/safeNamehash' -import isZero from 'utils/isZero' import { useENSRegistrarContract, useENSResolverContract } from './useContract' import useDebounce from './useDebounce' diff --git a/src/hooks/useENSContentHash.ts b/src/hooks/useENSContentHash.ts index b9a3d6b15..51daf14ae 100644 --- a/src/hooks/useENSContentHash.ts +++ b/src/hooks/useENSContentHash.ts @@ -1,8 +1,8 @@ import { useSingleCallResult } from 'hooks/multicall' import { useMemo } from 'react' +import isZero from 'utils/isZero' import { safeNamehash } from 'utils/safeNamehash' -import isZero from 'utils/isZero' import { useENSRegistrarContract, useENSResolverContract } from './useContract' /** diff --git a/src/hooks/useENSName.ts b/src/hooks/useENSName.ts index caf6a1159..c1a58e2d2 100644 --- a/src/hooks/useENSName.ts +++ b/src/hooks/useENSName.ts @@ -1,9 +1,9 @@ import { namehash } from '@ethersproject/hash' import { useSingleCallResult } from 'hooks/multicall' import { useMemo } from 'react' - import { isAddress } from 'utils' import isZero from 'utils/isZero' + import { useENSRegistrarContract, useENSResolverContract } from './useContract' import useDebounce from './useDebounce' import useENSAddress from './useENSAddress' diff --git a/src/hooks/useERC20Permit.ts b/src/hooks/useERC20Permit.ts index 9e134c64b..2a7608bcc 100644 --- a/src/hooks/useERC20Permit.ts +++ b/src/hooks/useERC20Permit.ts @@ -4,13 +4,13 @@ import { Trade } from '@uniswap/router-sdk' import { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core' import { Trade as V2Trade } from '@uniswap/v2-sdk' import { Trade as V3Trade } from '@uniswap/v3-sdk' +import { SWAP_ROUTER_ADDRESSES, V3_ROUTER_ADDRESS } from 'constants/addresses' +import { DAI, UNI, USDC_MAINNET } from 'constants/tokens' +import { useSingleCallResult } from 'hooks/multicall' import useActiveWeb3React from 'hooks/useActiveWeb3React' import JSBI from 'jsbi' -import { useSingleCallResult } from 'hooks/multicall' import { useMemo, useState } from 'react' -import { SWAP_ROUTER_ADDRESSES, V3_ROUTER_ADDRESS } from 'constants/addresses' -import { DAI, UNI, USDC_MAINNET } from 'constants/tokens' import { useEIP2612Contract } from './useContract' import useIsArgentWallet from './useIsArgentWallet' diff --git a/src/hooks/useGasPrice.ts b/src/hooks/useGasPrice.ts index 89fd3ccde..b0e28ad70 100644 --- a/src/hooks/useGasPrice.ts +++ b/src/hooks/useGasPrice.ts @@ -1,5 +1,5 @@ -import JSBI from 'jsbi' import { useSingleCallResult } from 'hooks/multicall' +import JSBI from 'jsbi' import { useMemo } from 'react' import { useContract } from './useContract' diff --git a/src/hooks/useHttpLocations.ts b/src/hooks/useHttpLocations.ts index 71f77f689..c804769f3 100644 --- a/src/hooks/useHttpLocations.ts +++ b/src/hooks/useHttpLocations.ts @@ -1,7 +1,7 @@ +import { useMemo } from 'react' import contenthashToUri from 'utils/contenthashToUri' import parseENSAddress from 'utils/parseENSAddress' import uriToHttp from 'utils/uriToHttp' -import { useMemo } from 'react' import useENSContentHash from './useENSContentHash' diff --git a/src/hooks/useIsArgentWallet.ts b/src/hooks/useIsArgentWallet.ts index cb6a80846..3c48f1e85 100644 --- a/src/hooks/useIsArgentWallet.ts +++ b/src/hooks/useIsArgentWallet.ts @@ -1,5 +1,5 @@ -import useActiveWeb3React from 'hooks/useActiveWeb3React' import { NEVER_RELOAD, useSingleCallResult } from 'hooks/multicall' +import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useMemo } from 'react' import { useArgentWalletDetectorContract } from './useContract' diff --git a/src/hooks/usePools.ts b/src/hooks/usePools.ts index f47eb097e..5cfba4992 100644 --- a/src/hooks/usePools.ts +++ b/src/hooks/usePools.ts @@ -3,12 +3,11 @@ import { BigintIsh, Currency, Token } from '@uniswap/sdk-core' import { abi as IUniswapV3PoolStateABI } from '@uniswap/v3-core/artifacts/contracts/interfaces/pool/IUniswapV3PoolState.sol/IUniswapV3PoolState.json' import { computePoolAddress } from '@uniswap/v3-sdk' import { FeeAmount, Pool } from '@uniswap/v3-sdk' +import { V3_CORE_FACTORY_ADDRESSES } from 'constants/addresses' +import { useMultipleContractSingleData } from 'hooks/multicall' import useActiveWeb3React from 'hooks/useActiveWeb3React' import JSBI from 'jsbi' -import { useMultipleContractSingleData } from 'hooks/multicall' import { useMemo } from 'react' - -import { V3_CORE_FACTORY_ADDRESSES } from 'constants/addresses' import { IUniswapV3PoolStateInterface } from 'types/v3/IUniswapV3PoolState' const POOL_STATE_INTERFACE = new Interface(IUniswapV3PoolStateABI) as IUniswapV3PoolStateInterface diff --git a/src/hooks/useScrollbar.ts b/src/hooks/useScrollbar.ts index 2502287dc..901c5e3e0 100644 --- a/src/hooks/useScrollbar.ts +++ b/src/hooks/useScrollbar.ts @@ -1,5 +1,5 @@ -import { css } from 'theme' import { useMemo } from 'react' +import { css } from 'theme' const overflowCss = css` overflow-y: scroll; diff --git a/src/hooks/useSlippage.ts b/src/hooks/useSlippage.ts index 894fe4722..534d79aa0 100644 --- a/src/hooks/useSlippage.ts +++ b/src/hooks/useSlippage.ts @@ -1,9 +1,9 @@ import { Currency, Percent, TradeType } from '@uniswap/sdk-core' import useAutoSlippageTolerance, { DEFAULT_AUTO_SLIPPAGE } from 'hooks/useAutoSlippageTolerance' import { useAtomValue } from 'jotai/utils' -import { autoSlippageAtom, maxSlippageAtom } from 'state/settings' import { useMemo } from 'react' import { InterfaceTrade } from 'state/routing/types' +import { autoSlippageAtom, maxSlippageAtom } from 'state/settings' export function toPercent(maxSlippage: number | undefined): Percent | undefined { if (!maxSlippage) return undefined diff --git a/src/hooks/useTokenList/filtering.ts b/src/hooks/useTokenList/filtering.ts index a042099ba..d3ac6e8e3 100644 --- a/src/hooks/useTokenList/filtering.ts +++ b/src/hooks/useTokenList/filtering.ts @@ -1,6 +1,5 @@ import { NativeCurrency, Token } from '@uniswap/sdk-core' import { TokenInfo } from '@uniswap/token-lists' - import { isAddress } from 'utils' const alwaysTrue = () => true diff --git a/src/hooks/useTokenList/index.tsx b/src/hooks/useTokenList/index.tsx index adca1fb16..df73fd40e 100644 --- a/src/hooks/useTokenList/index.tsx +++ b/src/hooks/useTokenList/index.tsx @@ -1,9 +1,9 @@ import { NativeCurrency, Token } from '@uniswap/sdk-core' import { TokenInfo, TokenList } from '@uniswap/token-lists' import useActiveWeb3React from 'hooks/useActiveWeb3React' -import resolveENSContentHash from 'utils/resolveENSContentHash' import { createContext, PropsWithChildren, useCallback, useContext, useEffect, useMemo, useState } from 'react' import { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo' +import resolveENSContentHash from 'utils/resolveENSContentHash' import fetchTokenList from './fetchTokenList' import { useQueryTokens } from './querying' diff --git a/src/hooks/useTokenList/querying.ts b/src/hooks/useTokenList/querying.ts index f3129ba1d..08375d20c 100644 --- a/src/hooks/useTokenList/querying.ts +++ b/src/hooks/useTokenList/querying.ts @@ -1,7 +1,7 @@ import { nativeOnChain } from 'constants/tokens' -import useDebounce from 'hooks/useDebounce' import useActiveWeb3React from 'hooks/useActiveWeb3React' import { useTokenBalances } from 'hooks/useCurrencyBalance' +import useDebounce from 'hooks/useDebounce' import { useMemo } from 'react' import { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo' diff --git a/src/hooks/useTransactionDeadline.ts b/src/hooks/useTransactionDeadline.ts index 7b512da79..78589672b 100644 --- a/src/hooks/useTransactionDeadline.ts +++ b/src/hooks/useTransactionDeadline.ts @@ -3,8 +3,8 @@ import { L2_CHAIN_IDS } from 'constants/chains' import { DEFAULT_DEADLINE_FROM_NOW, L2_DEADLINE_FROM_NOW } from 'constants/misc' import useCurrentBlockTimestamp from 'hooks/useCurrentBlockTimestamp' import { useAtom } from 'jotai' -import { transactionTtlAtom } from 'state/settings' import { useMemo } from 'react' +import { transactionTtlAtom } from 'state/settings' import useActiveWeb3React from './useActiveWeb3React' diff --git a/src/hooks/useUSDCPrice.ts b/src/hooks/useUSDCPrice.ts index c408b7504..cda4b2765 100644 --- a/src/hooks/useUSDCPrice.ts +++ b/src/hooks/useUSDCPrice.ts @@ -1,10 +1,10 @@ import { Currency, CurrencyAmount, Price, Token, TradeType } from '@uniswap/sdk-core' +import { SupportedChainId } from 'constants/chains' +import { DAI_OPTIMISM, USDC_ARBITRUM, USDC_MAINNET, USDC_POLYGON } from 'constants/tokens' import useActiveWeb3React from 'hooks/useActiveWeb3React' -import tryParseCurrencyAmount from 'utils/tryParseCurrencyAmount' import { useMemo, useRef } from 'react' +import tryParseCurrencyAmount from 'utils/tryParseCurrencyAmount' -import { SupportedChainId } from 'constants/chains' -import { DAI_OPTIMISM, USDC_ARBITRUM, USDC_MAINNET, USDC_POLYGON } from 'constants/tokens' import { useBestV2Trade } from './useBestV2Trade' import { useClientSideV3Trade } from './useClientSideV3Trade' diff --git a/src/hooks/useV2Pairs.ts b/src/hooks/useV2Pairs.ts index e21fb1204..8663d0e43 100644 --- a/src/hooks/useV2Pairs.ts +++ b/src/hooks/useV2Pairs.ts @@ -2,11 +2,10 @@ import { Interface } from '@ethersproject/abi' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' import { abi as IUniswapV2PairABI } from '@uniswap/v2-core/build/IUniswapV2Pair.json' import { computePairAddress, Pair } from '@uniswap/v2-sdk' +import { V2_FACTORY_ADDRESSES } from 'constants/addresses' import { useMultipleContractSingleData } from 'hooks/multicall' import { useMemo } from 'react' -import { V2_FACTORY_ADDRESSES } from 'constants/addresses' - const PAIR_INTERFACE = new Interface(IUniswapV2PairABI) export enum PairState { diff --git a/src/icons/index.tsx b/src/icons/index.tsx index 0ef726578..45009f8b5 100644 --- a/src/icons/index.tsx +++ b/src/icons/index.tsx @@ -7,7 +7,6 @@ import { ReactComponent as LogoIcon } from 'assets/svg/logo.svg' import { ReactComponent as SpinnerIcon } from 'assets/svg/spinner.svg' import { ReactComponent as WalletIcon } from 'assets/svg/wallet.svg' import { loadingCss } from 'css/loading' -import styled, { Color, css, keyframes } from 'theme' import { FunctionComponent, SVGProps } from 'react' /* eslint-disable no-restricted-imports */ import { Icon as FeatherIcon } from 'react-feather' @@ -29,6 +28,7 @@ import { X as XIcon, XOctagon as XOctagonIcon, } from 'react-feather' +import styled, { Color, css, keyframes } from 'theme' /* eslint-enable no-restricted-imports */ type SVGIcon = FunctionComponent> diff --git a/src/state/lists/wrappedTokenInfo.ts b/src/state/lists/wrappedTokenInfo.ts index 80ecce345..d6f05c6a9 100644 --- a/src/state/lists/wrappedTokenInfo.ts +++ b/src/state/lists/wrappedTokenInfo.ts @@ -1,6 +1,5 @@ import { Currency, Token } from '@uniswap/sdk-core' import { Tags, TokenInfo, TokenList } from '@uniswap/token-lists' - import { isAddress } from 'utils' type TagDetails = Tags[keyof Tags] diff --git a/src/state/multicall.tsx b/src/state/multicall.tsx index e2d39e0b1..d26a7f807 100644 --- a/src/state/multicall.tsx +++ b/src/state/multicall.tsx @@ -1,7 +1,7 @@ import { createMulticall } from '@uniswap/redux-multicall' import useActiveWeb3React from 'hooks/useActiveWeb3React' -import { useInterfaceMulticall } from 'hooks/useContract' import useBlockNumber from 'hooks/useBlockNumber' +import { useInterfaceMulticall } from 'hooks/useContract' import { combineReducers, createStore } from 'redux' const multicall = createMulticall() diff --git a/src/state/routing/utils.test.ts b/src/state/routing/utils.test.ts index bd50fde3d..925763df3 100644 --- a/src/state/routing/utils.test.ts +++ b/src/state/routing/utils.test.ts @@ -1,6 +1,6 @@ import { Token, TradeType } from '@uniswap/sdk-core' - import { nativeOnChain } from 'constants/tokens' + import { computeRoutes } from './utils' const USDC = new Token(1, '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 6, 'USDC') diff --git a/src/state/routing/utils.ts b/src/state/routing/utils.ts index c88be65a7..a03a0e7d8 100644 --- a/src/state/routing/utils.ts +++ b/src/state/routing/utils.ts @@ -1,8 +1,8 @@ import { Currency, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core' import { Pair, Route as V2Route } from '@uniswap/v2-sdk' import { FeeAmount, Pool, Route as V3Route } from '@uniswap/v3-sdk' - import { nativeOnChain } from 'constants/tokens' + import { GetQuoteResult, InterfaceTrade, V2PoolInRoute, V3PoolInRoute } from './types' /** diff --git a/src/utils/approveAmountCalldata.ts b/src/utils/approveAmountCalldata.ts index 2432ee481..ec27ce289 100644 --- a/src/utils/approveAmountCalldata.ts +++ b/src/utils/approveAmountCalldata.ts @@ -1,7 +1,6 @@ import { Interface } from '@ethersproject/abi' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' import { toHex } from '@uniswap/v3-sdk' - import { Erc20Interface } from 'abis/types/Erc20' const ERC20_INTERFACE = new Interface([ diff --git a/src/utils/computeFiatValuePriceImpact.tsx b/src/utils/computeFiatValuePriceImpact.tsx index fae03c4fa..6138d13c0 100644 --- a/src/utils/computeFiatValuePriceImpact.tsx +++ b/src/utils/computeFiatValuePriceImpact.tsx @@ -1,7 +1,6 @@ import { Currency, CurrencyAmount, Percent } from '@uniswap/sdk-core' -import JSBI from 'jsbi' - import { ONE_HUNDRED_PERCENT } from 'constants/misc' +import JSBI from 'jsbi' export function computeFiatValuePriceImpact( fiatValueInput: CurrencyAmount | undefined | null, diff --git a/src/utils/isTradeBetter.ts b/src/utils/isTradeBetter.ts index 28e3e210a..5aacd613e 100644 --- a/src/utils/isTradeBetter.ts +++ b/src/utils/isTradeBetter.ts @@ -1,6 +1,5 @@ import { Currency, Percent, TradeType } from '@uniswap/sdk-core' import { Trade as V2Trade } from '@uniswap/v2-sdk' - import { ONE_HUNDRED_PERCENT, ZERO_PERCENT } from 'constants/misc' // returns whether tradeB is better than tradeA by at least a threshold percentage amount diff --git a/src/utils/prices.ts b/src/utils/prices.ts index 4df883dfb..2ded0d187 100644 --- a/src/utils/prices.ts +++ b/src/utils/prices.ts @@ -2,8 +2,6 @@ import { Trade } from '@uniswap/router-sdk' import { Currency, CurrencyAmount, Fraction, Percent, TradeType } from '@uniswap/sdk-core' import { Pair } from '@uniswap/v2-sdk' import { FeeAmount } from '@uniswap/v3-sdk' -import JSBI from 'jsbi' - import { ALLOWED_PRICE_IMPACT_HIGH, ALLOWED_PRICE_IMPACT_LOW, @@ -12,6 +10,7 @@ import { ONE_HUNDRED_PERCENT, ZERO_PERCENT, } from 'constants/misc' +import JSBI from 'jsbi' const THIRTY_BIPS_FEE = new Percent(JSBI.BigInt(30), JSBI.BigInt(10000)) const INPUT_FRACTION_AFTER_FEE = ONE_HUNDRED_PERCENT.subtract(THIRTY_BIPS_FEE) diff --git a/yarn.lock b/yarn.lock index 3985da03b..7f85f41c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,14 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -21,6 +29,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== +"@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + "@babel/core@^7.15.5": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" @@ -42,6 +55,36 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.16.0": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/eslint-parser@^7.16.3": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" + integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== + dependencies: + eslint-scope "^5.1.1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + "@babel/generator@^7.11.6", "@babel/generator@^7.16.7", "@babel/generator@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" @@ -51,6 +94,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" @@ -76,6 +128,16 @@ browserslist "^4.17.5" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": version "7.17.1" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21" @@ -89,6 +151,19 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" +"@babel/helper-create-class-features-plugin@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" + integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-member-expression-to-functions" "^7.17.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-create-regexp-features-plugin@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48" @@ -134,6 +209,14 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -155,6 +238,13 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-member-expression-to-functions@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== + dependencies: + "@babel/types" "^7.17.0" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" @@ -176,6 +266,20 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" @@ -215,6 +319,13 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" @@ -258,6 +369,15 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" @@ -272,6 +392,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw== +"@babel/parser@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" + integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" @@ -297,7 +422,7 @@ "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.16.7": +"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== @@ -314,6 +439,18 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" +"@babel/plugin-proposal-decorators@^7.16.4": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz#67a1653be9c77ce5b6c318aa90c8287b87831619" + integrity sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.17.9" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/plugin-syntax-decorators" "^7.17.0" + charcodes "^0.2.0" + "@babel/plugin-proposal-dynamic-import@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" @@ -346,7 +483,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== @@ -354,7 +491,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.7": +"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== @@ -381,7 +518,7 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.7": +"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== @@ -390,7 +527,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.11": +"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.16.11": version "7.16.11" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== @@ -437,6 +574,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-decorators@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz#a2be3b2c9fe7d78bd4994e790896bc411e2f166d" + integrity sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" @@ -451,6 +595,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-flow@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832" + integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -609,6 +760,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" +"@babel/plugin-transform-flow-strip-types@^7.16.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8" + integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-flow" "^7.16.7" + "@babel/plugin-transform-for-of@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" @@ -720,7 +879,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-react-display-name@^7.16.7": +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== @@ -767,7 +926,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-runtime@^7.17.0", "@babel/plugin-transform-runtime@^7.5.5": +"@babel/plugin-transform-runtime@^7.16.4", "@babel/plugin-transform-runtime@^7.17.0", "@babel/plugin-transform-runtime@^7.5.5": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== @@ -839,7 +998,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/preset-env@^7.15.6", "@babel/preset-env@^7.16.11": +"@babel/preset-env@^7.15.6", "@babel/preset-env@^7.16.11", "@babel/preset-env@^7.16.4": version "7.16.11" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== @@ -930,7 +1089,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.14.5", "@babel/preset-react@^7.16.7": +"@babel/preset-react@^7.14.5", "@babel/preset-react@^7.16.0", "@babel/preset-react@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== @@ -973,6 +1132,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.16.3": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" + integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -998,6 +1164,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.9" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.11.5", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.4.4": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" @@ -1006,6 +1188,14 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@babel/types@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + "@base2/pretty-print-object@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.0.tgz#860ce718b0b73f4009e153541faff2cb6b85d047" @@ -2051,6 +2241,37 @@ "@babel/runtime" "^7.7.2" regenerator-runtime "^0.13.3" +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz#4ac237f4dabc8dd93330386907b97591801f7352" + integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== + +"@jridgewell/set-array@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01" + integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@json-rpc-tools/provider@^1.5.5": version "1.7.6" resolved "https://registry.yarnpkg.com/@json-rpc-tools/provider/-/provider-1.7.6.tgz#8a17c34c493fa892632e278fd9331104e8491ec6" @@ -2439,6 +2660,11 @@ estree-walker "^2.0.1" picomatch "^2.2.2" +"@rushstack/eslint-patch@^1.1.0": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz#6801033be7ff87a6b7cadaf5b337c9f366a3c4b0" + integrity sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw== + "@sideway/address@^4.1.0": version "4.1.2" resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz" @@ -3399,74 +3625,92 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.1.0": - version "4.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.30.0.tgz#4a0c1ae96b953f4e67435e20248d812bfa55e4fb" - integrity sha512-NgAnqk55RQ/SD+tZFD9aPwNSeHmDHHe5rtUyhIq0ZeCWZEvo4DK9rYz7v9HDuQZFvn320Ot+AikaCKMFKLlD0g== +"@typescript-eslint/eslint-plugin@^5.21.0", "@typescript-eslint/eslint-plugin@^5.5.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz#bfc22e0191e6404ab1192973b3b4ea0461c1e878" + integrity sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg== dependencies: - "@typescript-eslint/experimental-utils" "4.30.0" - "@typescript-eslint/scope-manager" "4.30.0" - debug "^4.3.1" + "@typescript-eslint/scope-manager" "5.21.0" + "@typescript-eslint/type-utils" "5.21.0" + "@typescript-eslint/utils" "5.21.0" + debug "^4.3.2" functional-red-black-tree "^1.0.1" - regexpp "^3.1.0" + ignore "^5.1.8" + regexpp "^3.2.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.30.0": - version "4.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.30.0.tgz#9e49704fef568432ae16fc0d6685c13d67db0fd5" - integrity sha512-K8RNIX9GnBsv5v4TjtwkKtqMSzYpjqAQg/oSphtxf3xxdt6T0owqnpojztjjTcatSteH3hLj3t/kklKx87NPqw== +"@typescript-eslint/experimental-utils@^5.0.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.21.0.tgz#489275ca792f5de7e0d1f4be1f15576ea56b6ca2" + integrity sha512-mzF6ert/6iQoESV0z9v5/mEaJRKL4fv68rHoZ6exM38xjxkw4MNx54B7ferrnMTM/GIRKLDaJ3JPRi+Dxa5Hlg== dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.30.0" - "@typescript-eslint/types" "4.30.0" - "@typescript-eslint/typescript-estree" "4.30.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" + "@typescript-eslint/utils" "5.21.0" -"@typescript-eslint/parser@^4.1.0": - version "4.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.30.0.tgz#6abd720f66bd790f3e0e80c3be77180c8fcb192d" - integrity sha512-HJ0XuluSZSxeboLU7Q2VQ6eLlCwXPBOGnA7CqgBnz2Db3JRQYyBDJgQnop6TZ+rsbSx5gEdWhw4rE4mDa1FnZg== - dependencies: - "@typescript-eslint/scope-manager" "4.30.0" - "@typescript-eslint/types" "4.30.0" - "@typescript-eslint/typescript-estree" "4.30.0" - debug "^4.3.1" - -"@typescript-eslint/scope-manager@4.30.0": - version "4.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz#1a3ffbb385b1a06be85cd5165a22324f069a85ee" - integrity sha512-VJ/jAXovxNh7rIXCQbYhkyV2Y3Ac/0cVHP/FruTJSAUUm4Oacmn/nkN5zfWmWFEanN4ggP0vJSHOeajtHq3f8A== - dependencies: - "@typescript-eslint/types" "4.30.0" - "@typescript-eslint/visitor-keys" "4.30.0" - -"@typescript-eslint/types@4.30.0": - version "4.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.30.0.tgz#fb9d9b0358426f18687fba82eb0b0f869780204f" - integrity sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw== - -"@typescript-eslint/typescript-estree@4.30.0": - version "4.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz#ae57833da72a753f4846cd3053758c771670c2ac" - integrity sha512-6WN7UFYvykr/U0Qgy4kz48iGPWILvYL34xXJxvDQeiRE018B7POspNRVtAZscWntEPZpFCx4hcz/XBT+erenfg== - dependencies: - "@typescript-eslint/types" "4.30.0" - "@typescript-eslint/visitor-keys" "4.30.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" +"@typescript-eslint/parser@^5.21.0", "@typescript-eslint/parser@^5.5.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.21.0.tgz#6cb72673dbf3e1905b9c432175a3c86cdaf2071f" + integrity sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg== + dependencies: + "@typescript-eslint/scope-manager" "5.21.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/typescript-estree" "5.21.0" + debug "^4.3.2" + +"@typescript-eslint/scope-manager@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz#a4b7ed1618f09f95e3d17d1c0ff7a341dac7862e" + integrity sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ== + dependencies: + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/visitor-keys" "5.21.0" + +"@typescript-eslint/type-utils@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz#ff89668786ad596d904c21b215e5285da1b6262e" + integrity sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw== + dependencies: + "@typescript-eslint/utils" "5.21.0" + debug "^4.3.2" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.21.0.tgz#8cdb9253c0dfce3f2ab655b9d36c03f72e684017" + integrity sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA== + +"@typescript-eslint/typescript-estree@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz#9f0c233e28be2540eaed3df050f0d54fb5aa52de" + integrity sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg== + dependencies: + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/visitor-keys" "5.21.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.30.0": - version "4.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz#a47c6272fc71b0c627d1691f68eaecf4ad71445e" - integrity sha512-pNaaxDt/Ol/+JZwzP7MqWc8PJQTUhZwoee/PVlQ+iYoYhagccvoHnC9e4l+C/krQYYkENxznhVSDwClIbZVxRw== +"@typescript-eslint/utils@5.21.0", "@typescript-eslint/utils@^5.13.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.21.0.tgz#51d7886a6f0575e23706e5548c7e87bce42d7c18" + integrity sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q== dependencies: - "@typescript-eslint/types" "4.30.0" - eslint-visitor-keys "^2.0.0" + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.21.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/typescript-estree" "5.21.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/visitor-keys@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz#453fb3662409abaf2f8b1f65d515699c888dd8ae" + integrity sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA== + dependencies: + "@typescript-eslint/types" "5.21.0" + eslint-visitor-keys "^3.0.0" "@uniswap/default-token-list@^2.0.0": version "2.2.0" @@ -4392,7 +4636,7 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= -array-includes@^3.1.2, array-includes@^3.1.3: +array-includes@^3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== @@ -4403,6 +4647,17 @@ array-includes@^3.1.2, array-includes@^3.1.3: get-intrinsic "^1.1.1" is-string "^1.0.5" +array-includes@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" + integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + is-string "^1.0.7" + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -4417,6 +4672,16 @@ array.prototype.flat@^1.2.4: define-properties "^1.1.3" es-abstract "^1.18.0-next.1" +array.prototype.flat@^1.2.5: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" + integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + array.prototype.flatmap@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" @@ -4427,11 +4692,26 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" +array.prototype.flatmap@^1.2.5: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" + integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + arraybuffer.slice@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -4476,6 +4756,11 @@ await-timeout@^1.1.1: resolved "https://registry.yarnpkg.com/await-timeout/-/await-timeout-1.1.1.tgz#d42062ee6bc4eb271fe4d4f851eb658dae7e3906" integrity sha512-gsDXAS6XVc4Jt+7S92MPX6Noq69bdeXUPEaXd8dk3+yVr629LTDLxNt4j1ycBbrU+AStK2PhKIyNIM+xzWMVOQ== +axe-core@^4.3.5: + version "4.4.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" + integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== + axios@^0.21.0, axios@^0.21.1: version "0.21.1" resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz" @@ -4483,6 +4768,11 @@ axios@^0.21.0, axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + babel-loader@^8.2.5: version "8.2.5" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" @@ -4584,6 +4874,33 @@ babel-plugin-syntax-jsx@^6.18.0: resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz" integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= +babel-plugin-transform-react-remove-prop-types@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-react-app@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz#ed6005a20a24f2c88521809fa9aea99903751584" + integrity sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg== + dependencies: + "@babel/core" "^7.16.0" + "@babel/plugin-proposal-class-properties" "^7.16.0" + "@babel/plugin-proposal-decorators" "^7.16.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" + "@babel/plugin-proposal-numeric-separator" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-private-methods" "^7.16.0" + "@babel/plugin-transform-flow-strip-types" "^7.16.0" + "@babel/plugin-transform-react-display-name" "^7.16.0" + "@babel/plugin-transform-runtime" "^7.16.4" + "@babel/preset-env" "^7.16.4" + "@babel/preset-react" "^7.16.0" + "@babel/preset-typescript" "^7.16.0" + "@babel/runtime" "^7.16.3" + babel-plugin-macros "^3.1.0" + babel-plugin-transform-react-remove-prop-types "^0.4.24" + babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -5016,6 +5333,11 @@ character-reference-invalid@^1.0.0: resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +charcodes@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" + integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" @@ -5312,6 +5634,11 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +confusing-browser-globals@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== + content-disposition@0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz" @@ -5815,12 +6142,17 @@ d3@^7.0.0: d3-transition "3" d3-zoom "3" +damerau-levenshtein@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + date-fns@^2.16.1: version "2.21.3" resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.21.3.tgz" integrity sha512-HeYdzCaFflc1i4tGbj7JKMjM4cKGYoyxwcIIkHzNgCkX8xXDNJDZXgDDVchIWpN4eQc3lH37WarduXFZJOtxfw== -debug@2.6.9: +debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -5834,13 +6166,27 @@ debug@4.3.1: dependencies: ms "2.1.2" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" +debug@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@~3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" @@ -6131,6 +6477,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -6220,7 +6571,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.19.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== @@ -6246,11 +6597,44 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" +es-abstract@^1.19.1, es-abstract@^1.19.2: + version "1.19.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" + integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -6292,6 +6676,42 @@ eslint-config-prettier@^6.11.0: dependencies: get-stdin "^6.0.0" +eslint-config-react-app@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz#73ba3929978001c5c86274c017ea57eb5fa644b4" + integrity sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA== + dependencies: + "@babel/core" "^7.16.0" + "@babel/eslint-parser" "^7.16.3" + "@rushstack/eslint-patch" "^1.1.0" + "@typescript-eslint/eslint-plugin" "^5.5.0" + "@typescript-eslint/parser" "^5.5.0" + babel-preset-react-app "^10.0.1" + confusing-browser-globals "^1.0.11" + eslint-plugin-flowtype "^8.0.3" + eslint-plugin-import "^2.25.3" + eslint-plugin-jest "^25.3.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.27.1" + eslint-plugin-react-hooks "^4.3.0" + eslint-plugin-testing-library "^5.0.1" + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-module-utils@^2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + dependencies: + debug "^3.2.7" + find-up "^2.1.0" + eslint-plugin-better-styled-components@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/eslint-plugin-better-styled-components/-/eslint-plugin-better-styled-components-1.1.2.tgz#cc8af5607abfcdabb53160e94f8e342582a46031" @@ -6300,6 +6720,58 @@ eslint-plugin-better-styled-components@^1.1.2: postcss "^7.0.2" requireindex "~1.1.0" +eslint-plugin-flowtype@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz#e1557e37118f24734aa3122e7536a038d34a4912" + integrity sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ== + dependencies: + lodash "^4.17.21" + string-natural-compare "^3.0.1" + +eslint-plugin-import@^2.25.3: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.3" + has "^1.0.3" + is-core-module "^2.8.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.5" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jest@^25.3.0: + version "25.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" + integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== + dependencies: + "@typescript-eslint/experimental-utils" "^5.0.0" + +eslint-plugin-jsx-a11y@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" + integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== + dependencies: + "@babel/runtime" "^7.16.3" + aria-query "^4.2.2" + array-includes "^3.1.4" + ast-types-flow "^0.0.7" + axe-core "^4.3.5" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.7" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.2.1" + language-tags "^1.0.5" + minimatch "^3.0.4" + eslint-plugin-prettier@^3.1.3: version "3.4.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" @@ -6307,34 +6779,43 @@ eslint-plugin-prettier@^3.1.3: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz" - integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== +eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz#5f762dfedf8b2cf431c689f533c9d3fa5dcf25ad" + integrity sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw== -eslint-plugin-react@^7.19.0: - version "7.24.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz#eadedfa351a6f36b490aa17f4fa9b14e842b9eb4" - integrity sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q== +eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.29.4: + version "7.29.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" + integrity sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ== dependencies: - array-includes "^3.1.3" - array.prototype.flatmap "^1.2.4" + array-includes "^3.1.4" + array.prototype.flatmap "^1.2.5" doctrine "^2.1.0" - has "^1.0.3" + estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.0.4" - object.entries "^1.1.4" - object.fromentries "^2.0.4" - object.values "^1.1.4" - prop-types "^15.7.2" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.0" + object.values "^1.1.5" + prop-types "^15.8.1" resolve "^2.0.0-next.3" - string.prototype.matchall "^4.0.5" + semver "^6.3.0" + string.prototype.matchall "^4.0.6" eslint-plugin-simple-import-sort@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== +eslint-plugin-testing-library@^5.0.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.3.1.tgz#7638ee79cc86fd8bb57d671af35a1cbaa77e9548" + integrity sha512-OfF4dlG/q6ck6DL3P8Z0FPdK0dU5K57gsBu7eUcaVbwYKaNzjgejnXiM9CCUevppORkvfek+9D3Uj/9ZZ8Vz8g== + dependencies: + "@typescript-eslint/utils" "^5.13.0" + eslint-plugin-unused-imports@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz#d8db8c4d0cfa0637a8b51ce3fd7d1b6bc3f08520" @@ -6374,11 +6855,16 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0: +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== +eslint-visitor-keys@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + eslint@^7.11.0, eslint@^7.12.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" @@ -6468,6 +6954,11 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -6823,7 +7314,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.0.0, fast-glob@^3.0.3, fast-glob@^3.1.1: +fast-glob@^3.0.0, fast-glob@^3.0.3, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -6939,6 +7430,13 @@ find-root@^1.1.0: resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -7119,6 +7617,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + fuzzaldrin@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz" @@ -7262,16 +7765,16 @@ globby@^10.0.1: merge2 "^1.2.3" slash "^3.0.0" -globby@^11.0.3: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== +globby@^11.0.4: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" slash "^3.0.0" graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: @@ -7337,6 +7840,11 @@ has-symbols@^1.0.1, has-symbols@^1.0.2: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" @@ -7546,7 +8054,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@^5.1.4: +ignore@^5.1.1, ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -7782,6 +8290,13 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" @@ -7807,6 +8322,11 @@ is-negative-zero@^2.0.1: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + is-number-object@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" @@ -7864,6 +8384,13 @@ is-shared-array-buffer@^1.0.1: resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -7905,6 +8432,13 @@ is-weakref@^1.0.1: dependencies: call-bind "^1.0.0" +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + is-whitespace-character@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz" @@ -8146,6 +8680,11 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" +json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -8175,6 +8714,14 @@ jsonify@~0.0.0: array-includes "^3.1.2" object.assign "^4.1.2" +jsx-ast-utils@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz#6ab1e52c71dfc0c0707008a91729a9491fe9f76c" + integrity sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw== + dependencies: + array-includes "^3.1.4" + object.assign "^4.1.2" + jszip@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.7.1.tgz#bd63401221c15625a1228c556ca8a68da6fda3d9" @@ -8204,6 +8751,18 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + lazy-ass@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" @@ -8262,6 +8821,14 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -8482,7 +9049,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3, merge2@^1.3.0: +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -8623,6 +9190,13 @@ minimalistic-crypto-utils@^1.0.1: dependencies: brace-expansion "^1.1.7" +minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -8868,6 +9442,11 @@ object-inspect@^1.11.0, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== +object-inspect@^1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -8883,24 +9462,23 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" - integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== +object.entries@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" + integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.19.1" -object.fromentries@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" - integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== +object.fromentries@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" + es-abstract "^1.19.1" object.getownpropertydescriptors@^2.1.1: version "2.1.2" @@ -8911,14 +9489,22 @@ object.getownpropertydescriptors@^2.1.1: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" -object.values@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" - integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== +object.hasown@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" + integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.values@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.19.1" obliterator@^1.6.1: version "1.6.1" @@ -9012,6 +9598,13 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -9026,6 +9619,13 @@ p-limit@^4.0.0: dependencies: yocto-queue "^1.0.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -9054,6 +9654,11 @@ p-map@^3.0.0: dependencies: aggregate-error "^3.0.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -9482,6 +10087,15 @@ prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" +prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + protobufjs@^6.10.0: version "6.11.2" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" @@ -10023,15 +10637,16 @@ regenerator-transform@^0.14.2: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== +regexp.prototype.flags@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" + functions-have-names "^1.2.2" -regexpp@^3.1.0: +regexpp@^3.1.0, regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== @@ -10182,7 +10797,7 @@ resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0: is-core-module "^2.2.0" path-parse "^1.0.6" -resolve@^1.13.1: +resolve@^1.13.1, resolve@^1.20.0, resolve@^1.22.0: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== @@ -10828,6 +11443,11 @@ strict-uri-encode@^2.0.0: resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -10854,18 +11474,18 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.matchall@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" - integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== +string.prototype.matchall@^4.0.6: + version "4.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" + integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.2" + es-abstract "^1.19.1" get-intrinsic "^1.1.1" - has-symbols "^1.0.2" + has-symbols "^1.0.3" internal-slot "^1.0.3" - regexp.prototype.flags "^1.3.1" + regexp.prototype.flags "^1.4.1" side-channel "^1.0.4" string.prototype.trimend@^1.0.4: @@ -11245,7 +11865,7 @@ tsconfig-paths-webpack-plugin@^3.5.2: enhanced-resolve "^5.7.0" tsconfig-paths "^3.9.0" -tsconfig-paths@^3.9.0: +tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==