From cf445c9b5cbf7a92838755daf9c95f70a2d54362 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Fri, 14 Apr 2023 10:40:04 +0800 Subject: [PATCH 01/12] feat: add tokenpocket and bitkeep adapter --- README.md | 4 +- demos/dev-demo/package.json | 4 +- demos/dev-demo/src/App.tsx | 10 + demos/dev-demo/src/BitKeepAdapterDemo.tsx | 244 + demos/dev-demo/src/TokenPocketAdapterDemo.tsx | 245 + demos/dev-demo/src/TronLinkAdapterDemo.tsx | 14 +- demos/dev-demo/src/main.tsx | 1 + demos/react-ui/create-react-app/package.json | 6 +- demos/react-ui/next-app/package.json | 3 + demos/react-ui/next-app/pages/_app.tsx | 11 +- demos/react-ui/vite-app/index.html | 15 + demos/react-ui/vite-app/package.json | 4 +- demos/react-ui/vite-app/src/App.tsx | 10 +- demos/react-ui/vite-app/src/index.css | 5 +- demos/react-ui/vite-app/src/main.tsx | 3 + .../adapters/abstract-adapter/package.json | 2 +- .../adapters/abstract-adapter/src/errors.ts | 6 + packages/adapters/adapters/README.md | 55 +- packages/adapters/adapters/package.json | 10 +- packages/adapters/adapters/src/index.ts | 2 + packages/adapters/adapters/tsconfig.all.json | 6 + packages/adapters/bitkeep/LICENSE | 20 + packages/adapters/bitkeep/README.md | 33 + packages/adapters/bitkeep/jest.config.js | 17 + packages/adapters/bitkeep/package.json | 52 + packages/adapters/bitkeep/src/adapter.ts | 313 ++ packages/adapters/bitkeep/src/index.ts | 2 + packages/adapters/bitkeep/src/utils.ts | 3 + .../bitkeep/tests/units/adapter.test.ts | 11 + packages/adapters/bitkeep/tsconfig.all.json | 17 + packages/adapters/bitkeep/tsconfig.cjs.json | 7 + packages/adapters/bitkeep/tsconfig.esm.json | 8 + packages/adapters/ledger/package.json | 4 +- packages/adapters/tokenpocket/LICENSE | 20 + packages/adapters/tokenpocket/README.md | 33 + packages/adapters/tokenpocket/jest.config.js | 17 + packages/adapters/tokenpocket/package.json | 52 + packages/adapters/tokenpocket/src/adapter.ts | 348 ++ packages/adapters/tokenpocket/src/index.ts | 2 + packages/adapters/tokenpocket/src/utils.ts | 48 + .../tokenpocket/tests/units/adapter.test.ts | 11 + .../adapters/tokenpocket/tsconfig.all.json | 17 + .../adapters/tokenpocket/tsconfig.cjs.json | 7 + .../adapters/tokenpocket/tsconfig.esm.json | 8 + packages/adapters/tronlink/package.json | 4 +- packages/adapters/tronlink/src/adapter.ts | 55 +- packages/adapters/walletconnect/package.json | 4 +- packages/react/react-hooks/package.json | 6 +- packages/react/react-ui/package.json | 8 +- pnpm-lock.yaml | 4852 +++++++++++++---- tsconfig.all.json | 6 + 51 files changed, 5629 insertions(+), 1016 deletions(-) create mode 100644 demos/dev-demo/src/BitKeepAdapterDemo.tsx create mode 100644 demos/dev-demo/src/TokenPocketAdapterDemo.tsx create mode 100644 packages/adapters/bitkeep/LICENSE create mode 100644 packages/adapters/bitkeep/README.md create mode 100644 packages/adapters/bitkeep/jest.config.js create mode 100644 packages/adapters/bitkeep/package.json create mode 100644 packages/adapters/bitkeep/src/adapter.ts create mode 100644 packages/adapters/bitkeep/src/index.ts create mode 100644 packages/adapters/bitkeep/src/utils.ts create mode 100644 packages/adapters/bitkeep/tests/units/adapter.test.ts create mode 100644 packages/adapters/bitkeep/tsconfig.all.json create mode 100644 packages/adapters/bitkeep/tsconfig.cjs.json create mode 100644 packages/adapters/bitkeep/tsconfig.esm.json create mode 100644 packages/adapters/tokenpocket/LICENSE create mode 100644 packages/adapters/tokenpocket/README.md create mode 100644 packages/adapters/tokenpocket/jest.config.js create mode 100644 packages/adapters/tokenpocket/package.json create mode 100644 packages/adapters/tokenpocket/src/adapter.ts create mode 100644 packages/adapters/tokenpocket/src/index.ts create mode 100644 packages/adapters/tokenpocket/src/utils.ts create mode 100644 packages/adapters/tokenpocket/tests/units/adapter.test.ts create mode 100644 packages/adapters/tokenpocket/tsconfig.all.json create mode 100644 packages/adapters/tokenpocket/tsconfig.cjs.json create mode 100644 packages/adapters/tokenpocket/tsconfig.esm.json diff --git a/README.md b/README.md index 1f433a5..111dacd 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,14 @@ This repository contains wallet adapters and components for Tron DApps. With out - [TronLink App](https://www.tronlink.org/): All versions - [TronLink Extension](https://www.tronlink.org/): All versions +- [BitKeep App](https://bitkeep.com/): All versions +- [BitKeep Extension](https://bitkeep.com/): All versions +- [TokenPocket App](https://www.tokenpocket.pro/): All versions - [Ledger](https://www.ledger.com/): All versions - [WalletConnect](https://walletconnect.org): `v2.0` ### Coming Soon -- [TokenPocket](https://www.tokenpocket.pro/) - [imToken](https://token.im/) ## Introduction diff --git a/demos/dev-demo/package.json b/demos/dev-demo/package.json index 777bcc8..e5e3fbd 100644 --- a/demos/dev-demo/package.json +++ b/demos/dev-demo/package.json @@ -13,14 +13,16 @@ "@emotion/styled": "^11.10.4", "@mui/material": "^5.10.10", "@tronweb3/tronwallet-abstract-adapter": "^1.1.0", + "@tronweb3/tronwallet-adapter-bitkeep": "^1.0.0", "@tronweb3/tronwallet-adapter-ledger": "^1.1.2", "@tronweb3/tronwallet-adapter-react-hooks": "^1.0.0", "@tronweb3/tronwallet-adapter-react-ui": "^1.1.0", + "@tronweb3/tronwallet-adapter-tokenpocket": "^1.0.0", "@tronweb3/tronwallet-adapters": "^1.1.2", "events": "^3.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "tronweb": "^4.4.0", + "tronweb": "5.1", "vconsole": "^3.15.0" }, "devDependencies": { diff --git a/demos/dev-demo/src/App.tsx b/demos/dev-demo/src/App.tsx index 5462e7b..ed6223d 100644 --- a/demos/dev-demo/src/App.tsx +++ b/demos/dev-demo/src/App.tsx @@ -5,6 +5,8 @@ import { CustomConnectWithSelectAccount } from './LedgerDemo/CustomConnectWithSe import { CustomConnectWithGetAccounts } from './LedgerDemo/CustomConnectWithGetAccounts.js'; import { TronLinkAdapterDemo } from './TronLinkAdapterDemo.js'; import { ReactHooksDemo } from './ReactHooksDemo.js'; +import { TokenPocketAdapterDemo } from './TokenPocketAdapterDemo.js'; +import { BitKeepAdapterDemo } from './BitKeepAdapterDemo.js'; interface TabPanelProps { children?: React.ReactNode; index: number; @@ -39,6 +41,8 @@ function App() { + + @@ -56,6 +60,12 @@ function App() { + + + + + + ); diff --git a/demos/dev-demo/src/BitKeepAdapterDemo.tsx b/demos/dev-demo/src/BitKeepAdapterDemo.tsx new file mode 100644 index 0000000..d543c14 --- /dev/null +++ b/demos/dev-demo/src/BitKeepAdapterDemo.tsx @@ -0,0 +1,244 @@ +import type { ReactNode } from 'react'; +import { useEffect, useMemo, useState, useCallback } from 'react'; +// import './App.css'; +import type { Adapter } from '@tronweb3/tronwallet-abstract-adapter'; +import { AdapterState } from '@tronweb3/tronwallet-abstract-adapter'; +import { BitKeepAdapter } from '@tronweb3/tronwallet-adapter-bitkeep'; +import { Box, Button, Typography, Tooltip, Select, MenuItem, Alert, FormControl, TextField } from '@mui/material'; +import { tronWeb } from './tronweb.js'; +const receiver = 'TMDKznuDWaZwfZHcM61FVFstyYNmK6Njk1'; + +export function BitKeepAdapterDemo() { + const [connectState, setConnectState] = useState(AdapterState.NotFound); + const [account, setAccount] = useState(''); + const [readyState, setReadyState] = useState(''); + const [chainId, setChainId] = useState(''); + const [selectedChainId, setSelectedChainId] = useState('0xcd8690dc'); + const [open, setOpen] = useState(false); + const [signMessage, setSignMessage] = useState('Hello, Adapter'); + const [signedMessage, setSignedMessage] = useState(''); + const adapter = useMemo(() => new BitKeepAdapter({ + openUrlWhenWalletNotFound: false, + checkTimeout: 3000 + }), []); + + useEffect(() => { + setConnectState(adapter.state); + setAccount(adapter.address || ''); + setReadyState(adapter.readyState); + adapter.network().then(async (res) => { + console.log(res); + setChainId(res.chainId); + const balance = await tronWeb.trx.getBalance(adapter.address) + }).catch(e => { + console.log(e) + }) + + adapter.on('readyStateChanged', async () => { + console.log('readyState: ', adapter.readyState) + setReadyState(adapter.readyState) + }) + adapter.on('connect', () => { + console.log('connect: ', adapter.address); + setAccount(adapter.address || ''); + setConnectState(AdapterState.Connected) + adapter.network().then((res) => { + console.log(res); + setChainId(res.chainId) + }).catch(e => { + console.log(e) + }) + }); + adapter.on('accountsChanged', (data, preaddr) => { + console.log('accountsChanged: current', data,' pre: ', preaddr); + setAccount(data as string); + }); + + adapter.on('chainChanged', (data) => { + console.log('chainChanged: ', data); + setChainId((data as any).chainId); + }); + + adapter.on('disconnect', () => { + console.log('disconnect'); + setConnectState(AdapterState.Disconnect) + }); + + return () => { + adapter.removeAllListeners(); + }; + }, [adapter]); + + // function onSwitchChain() { + // adapter.switchChain(selectedChainId); + // } + + async function onSignTransaction() { + const tronWeb = (window as any).tronWeb as any; + console.log(adapter.address) + const transaction = await tronWeb.transactionBuilder.sendTrx(receiver, tronWeb.toSun(0.1), adapter.address); + console.log('before signtransaction') + const signedTransaction = await adapter.signTransaction(transaction); + // const signedTransaction = await tronWeb.trx.sign(transaction); + console.log('after signtransaction') + const res = await tronWeb.trx.sendRawTransaction(signedTransaction); + setOpen(true); + } + + const onSignMessage = useCallback( + async function () { + const res = await adapter.signMessage(signMessage); + setSignedMessage(res); + }, + [adapter, signMessage, setSignedMessage] + ); + + const onVerifyMessage = useCallback( + async function () { + const address = await tronWeb.trx.verifyMessage(tronWeb.toHex(signMessage), signedMessage); + alert(address === adapter.address ? 'success verify' : 'failed verify'); + }, + [signMessage, signedMessage, adapter] + ); + + async function handleConnect() { + try { + await adapter?.connect() + } catch(e: any) { + console.log(e.error?.message || e.message); + } + } + return ( + +

BitKeep Demo

+ + Your account address: + + {account} + + + Current network you choose: {chainId} + + + + ReadyState: {readyState} + + + Current connection status:   + {connectState} + + + setSignMessage(e.target.value)}> + + + +      + +      + + + + +      + + + {open && ( + setOpen(false)} severity="success" sx={{ width: '100%', marginTop: 1 }}> + Success! You can confirm your transfer on{' '} + + Tron Scan + + + )} + {/* + + */} + {/* */} +
+ ); +} + +export function Detail(props: { children: ReactNode }) { + return
{props.children}
; +} + +function MultiSignDemo(props: { address: string; adapter: Adapter }) { + const [address1, setAddress1] = useState(''); + const [open, setOpen] = useState(false); + + const [transferTransaction, setTransferTransaction] = useState(null); + const [canSend, setCanSend] = useState(false); + + const multiSignWithAddress1 = useCallback( + async function () { + const tronWeb = (window as any).tronWeb1 as any; + const transaction = await tronWeb.transactionBuilder.sendTrx(receiver, tronWeb.toSun(0.1), props.address, { permissionId: 2 }); + // debugger; + console.log('before multiSign', transaction) + const signedTransaction = await props.adapter.multiSign(transaction, null, 2); + console.log('after multiSign', signedTransaction) + setTransferTransaction(signedTransaction); + }, + [props.adapter, setTransferTransaction, props.address] + ); + async function broadcast() { + const res = await tronWeb.trx.broadcast(transferTransaction); + setOpen(true); + } + return ( + <> +

MultiSign Demo

+ {/*

You can input two address and click approve button to give them permission.

+
+ setAddress1(e.target.value)}> + +
*/} + +

You can click following buttons to multiSign and send the Transaction

+
+ + {/* */} + +
+ {open && ( + setOpen(false)} severity="success" sx={{ width: '100%', marginTop: 1 }}> + Success! You can confirm your transfer on{' '} + + Tron Scan + + + )} + + ); +} diff --git a/demos/dev-demo/src/TokenPocketAdapterDemo.tsx b/demos/dev-demo/src/TokenPocketAdapterDemo.tsx new file mode 100644 index 0000000..569307c --- /dev/null +++ b/demos/dev-demo/src/TokenPocketAdapterDemo.tsx @@ -0,0 +1,245 @@ +import type { ReactNode } from 'react'; +import { useEffect, useMemo, useState, useCallback } from 'react'; +// import './App.css'; +import type { Adapter } from '@tronweb3/tronwallet-abstract-adapter'; +import { AdapterState } from '@tronweb3/tronwallet-abstract-adapter'; +import { TokenPocketAdapter } from '@tronweb3/tronwallet-adapter-tokenpocket'; +import { Box, Button, Typography, Tooltip, Select, MenuItem, Alert, FormControl, TextField } from '@mui/material'; +import { tronWeb } from './tronweb.js'; +const receiver = 'TMDKznuDWaZwfZHcM61FVFstyYNmK6Njk1'; + +export function TokenPocketAdapterDemo() { + const [connectState, setConnectState] = useState(AdapterState.NotFound); + const [account, setAccount] = useState(''); + const [readyState, setReadyState] = useState(''); + const [chainId, setChainId] = useState(''); + const [selectedChainId, setSelectedChainId] = useState('0xcd8690dc'); + const [open, setOpen] = useState(false); + const [signMessage, setSignMessage] = useState('Hello, Adapter'); + const [signedMessage, setSignedMessage] = useState(''); + const adapter = useMemo(() => new TokenPocketAdapter({ + openTokenPocketAppOnMobile: true, + openUrlWhenWalletNotFound: false, + checkTimeout: 3000 + }), []); + + useEffect(() => { + setConnectState(adapter.state); + setAccount(adapter.address || ''); + setReadyState(adapter.readyState); + adapter.network().then(async (res) => { + console.log(res); + setChainId(res.chainId); + const balance = await tronWeb.trx.getBalance(adapter.address) + }).catch(e => { + console.log(e) + }) + + adapter.on('readyStateChanged', async () => { + console.log('readyState: ', adapter.readyState) + setReadyState(adapter.readyState) + }) + adapter.on('connect', () => { + console.log('connect: ', adapter.address); + setAccount(adapter.address || ''); + setConnectState(AdapterState.Connected) + adapter.network().then((res) => { + console.log(res); + setChainId(res.chainId) + }).catch(e => { + console.log(e) + }) + }); + adapter.on('accountsChanged', (data, preaddr) => { + console.log('accountsChanged: current', data,' pre: ', preaddr); + setAccount(data as string); + }); + + adapter.on('chainChanged', (data) => { + console.log('chainChanged: ', data); + setChainId((data as any).chainId); + }); + + adapter.on('disconnect', () => { + console.log('disconnect'); + setConnectState(AdapterState.Disconnect) + }); + + return () => { + adapter.removeAllListeners(); + }; + }, [adapter]); + + // function onSwitchChain() { + // adapter.switchChain(selectedChainId); + // } + + async function onSignTransaction() { + const tronWeb = (window as any).tronWeb1 as any; + console.log(adapter.address) + const transaction = await tronWeb.transactionBuilder.sendTrx(receiver, tronWeb.toSun(0.1), adapter.address); + console.log('before signtransaction') + const signedTransaction = await adapter.signTransaction(transaction); + // const signedTransaction = await tronWeb.trx.sign(transaction); + console.log('after signtransaction') + const res = await tronWeb.trx.sendRawTransaction(signedTransaction); + setOpen(true); + } + + const onSignMessage = useCallback( + async function () { + const res = await adapter.signMessage(signMessage); + setSignedMessage(res); + }, + [adapter, signMessage, setSignedMessage] + ); + + const onVerifyMessage = useCallback( + async function () { + const address = await tronWeb.trx.verifyMessage(tronWeb.toHex(signMessage), signedMessage); + alert(address === adapter.address ? 'success verify' : 'failed verify'); + }, + [signMessage, signedMessage, adapter] + ); + + async function handleConnect() { + try { + await adapter?.connect() + } catch(e: any) { + console.log(e.error?.message || e.message); + } + } + return ( + +

TokenPocket Demo

+ + Your account address: + + {account} + + + Current network you choose: {chainId} + + + + ReadyState: {readyState} + + + Current connection status:   + {connectState} + + + setSignMessage(e.target.value)}> + + + +      + +      + + + + +      + + + {open && ( + setOpen(false)} severity="success" sx={{ width: '100%', marginTop: 1 }}> + Success! You can confirm your transfer on{' '} + + Tron Scan + + + )} + {/* + + */} + {/* */} +
+ ); +} + +export function Detail(props: { children: ReactNode }) { + return
{props.children}
; +} + +function MultiSignDemo(props: { address: string; adapter: Adapter }) { + const [address1, setAddress1] = useState(''); + const [open, setOpen] = useState(false); + + const [transferTransaction, setTransferTransaction] = useState(null); + const [canSend, setCanSend] = useState(false); + + const multiSignWithAddress1 = useCallback( + async function () { + const tronWeb = (window as any).tronWeb1 as any; + const transaction = await tronWeb.transactionBuilder.sendTrx(receiver, tronWeb.toSun(0.1), props.address, { permissionId: 2 }); + // debugger; + console.log('before multiSign', transaction) + const signedTransaction = await props.adapter.multiSign(transaction, null, 2); + console.log('after multiSign', signedTransaction) + setTransferTransaction(signedTransaction); + }, + [props.adapter, setTransferTransaction, props.address] + ); + async function broadcast() { + const res = await tronWeb.trx.broadcast(transferTransaction); + setOpen(true); + } + return ( + <> +

MultiSign Demo

+ {/*

You can input two address and click approve button to give them permission.

+
+ setAddress1(e.target.value)}> + +
*/} + +

You can click following buttons to multiSign and send the Transaction

+
+ + {/* */} + +
+ {open && ( + setOpen(false)} severity="success" sx={{ width: '100%', marginTop: 1 }}> + Success! You can confirm your transfer on{' '} + + Tron Scan + + + )} + + ); +} diff --git a/demos/dev-demo/src/TronLinkAdapterDemo.tsx b/demos/dev-demo/src/TronLinkAdapterDemo.tsx index 43ba1c4..f053ac1 100644 --- a/demos/dev-demo/src/TronLinkAdapterDemo.tsx +++ b/demos/dev-demo/src/TronLinkAdapterDemo.tsx @@ -27,12 +27,14 @@ export function TronLinkAdapterDemo() { setConnectState(adapter.state); setAccount(adapter.address || ''); setReadyState(adapter.readyState); - adapter.network().then((res) => { - console.log(res); - setChainId(res.chainId) - }).catch(e => { - console.log(e) - }) + if (adapter.connected) { + adapter.network().then((res) => { + console.log(res); + setChainId(res.chainId) + }).catch(e => { + console.log(e) + }) + } adapter.on('readyStateChanged', () => { console.log('readyState: ', adapter.readyState) diff --git a/demos/dev-demo/src/main.tsx b/demos/dev-demo/src/main.tsx index 2efce84..736e828 100644 --- a/demos/dev-demo/src/main.tsx +++ b/demos/dev-demo/src/main.tsx @@ -11,6 +11,7 @@ import './index.css'; import { AppWraper } from './AppWraper.js'; const vConsole = new VConsole(); +const tron = window.tronLink as any; ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/demos/react-ui/create-react-app/package.json b/demos/react-ui/create-react-app/package.json index 44f7a42..b85c7c3 100644 --- a/demos/react-ui/create-react-app/package.json +++ b/demos/react-ui/create-react-app/package.json @@ -33,8 +33,7 @@ "stream-http": "^3.2.0", "tronweb": "^4.4.0", "typescript": "^4.8.4", - "web-vitals": "^2.1.4", - "webpack": "^5.75.0" + "web-vitals": "^2.1.4" }, "scripts": { "start": "GENERATE_SOURCEMAP=false react-app-rewired start", @@ -59,5 +58,8 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "webpack": "^5.78.0" } } diff --git a/demos/react-ui/next-app/package.json b/demos/react-ui/next-app/package.json index e774eea..3e66982 100644 --- a/demos/react-ui/next-app/package.json +++ b/demos/react-ui/next-app/package.json @@ -13,9 +13,11 @@ "@emotion/styled": "^11.10.4", "@mui/material": "^5.10.10", "@tronweb3/tronwallet-abstract-adapter": "^1.1.0", + "@tronweb3/tronwallet-adapter-bitkeep": "^1.0.0", "@tronweb3/tronwallet-adapter-ledger": "^1.1.1", "@tronweb3/tronwallet-adapter-react-hooks": "^1.0.0", "@tronweb3/tronwallet-adapter-react-ui": "^1.1.0", + "@tronweb3/tronwallet-adapter-tokenpocket": "^1.0.0", "@tronweb3/tronwallet-adapters": "^1.1.1", "@types/node": "18.11.9", "@types/react": "18.0.26", @@ -27,6 +29,7 @@ "react-dom": "^18.2.0", "react-hot-toast": "^2.4.0", "tronweb": "^4.4.0", + "tslib": "^2.5.0", "typescript": "4.9.3" }, "devDependencies": { diff --git a/demos/react-ui/next-app/pages/_app.tsx b/demos/react-ui/next-app/pages/_app.tsx index 43228bc..081680e 100644 --- a/demos/react-ui/next-app/pages/_app.tsx +++ b/demos/react-ui/next-app/pages/_app.tsx @@ -4,12 +4,13 @@ import type { WalletError } from '@tronweb3/tronwallet-abstract-adapter'; import { WalletDisconnectedError, WalletNotFoundError } from '@tronweb3/tronwallet-abstract-adapter'; // @ts-ignore import { toast } from 'react-hot-toast'; -import { TronLinkAdapter, WalletConnectAdapter } from '@tronweb3/tronwallet-adapters'; +import { BitKeepAdapter, TokenPocketAdapter, TronLinkAdapter, WalletConnectAdapter } from '@tronweb3/tronwallet-adapters'; import { useMemo } from 'react'; import { WalletProvider } from '@tronweb3/tronwallet-adapter-react-hooks'; import { WalletModalProvider } from '@tronweb3/tronwallet-adapter-react-ui'; import '@tronweb3/tronwallet-adapter-react-ui/style.css'; import { LedgerAdapter } from '@tronweb3/tronwallet-adapter-ledger'; + export default function App({ Component, pageProps }: AppProps) { function onError(e: WalletError) { if (e instanceof WalletNotFoundError) { @@ -19,11 +20,11 @@ export default function App({ Component, pageProps }: AppProps) { } else toast.error(e.message); } const adapters = useMemo(function () { - const tronLink1 = new TronLinkAdapter(); + const tronLinkAdapter = new TronLinkAdapter(); const ledger = new LedgerAdapter({ accountNumber: 2, }); - const walletConnect1 = new WalletConnectAdapter({ + const walletConnectAdapter = new WalletConnectAdapter({ network: 'Nile', options: { relayUrl: 'wss://relay.walletconnect.com', @@ -37,7 +38,9 @@ export default function App({ Component, pageProps }: AppProps) { }, }, }); - return [tronLink1, walletConnect1, ledger]; + const bitKeepAdapter = new BitKeepAdapter(); + const tokenPocketAdapter = new TokenPocketAdapter(); + return [tronLinkAdapter, bitKeepAdapter, tokenPocketAdapter, walletConnectAdapter, ledger]; }, []); /** diff --git a/demos/react-ui/vite-app/index.html b/demos/react-ui/vite-app/index.html index 81aefab..25063d3 100644 --- a/demos/react-ui/vite-app/index.html +++ b/demos/react-ui/vite-app/index.html @@ -5,9 +5,24 @@ Vite + React + TS +
+ diff --git a/demos/react-ui/vite-app/package.json b/demos/react-ui/vite-app/package.json index d59b1d7..ab7cc8c 100644 --- a/demos/react-ui/vite-app/package.json +++ b/demos/react-ui/vite-app/package.json @@ -20,10 +20,12 @@ "@tronweb3/tronwallet-adapter-walletconnect": "^1.0.0", "@tronweb3/tronwallet-adapters": "^1.1.1", "buffer": "^6.0.3", + "events": "^3.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hot-toast": "^2.4.0", - "tronweb": "^4.4.0" + "tronweb": "^4.4.0", + "vconsole": "^3.15.0" }, "devDependencies": { "@types/react": "^18.0.26", diff --git a/demos/react-ui/vite-app/src/App.tsx b/demos/react-ui/vite-app/src/App.tsx index 3fb7c2d..8287094 100644 --- a/demos/react-ui/vite-app/src/App.tsx +++ b/demos/react-ui/vite-app/src/App.tsx @@ -11,7 +11,7 @@ import { } from '@tronweb3/tronwallet-adapter-react-ui'; import toast from 'react-hot-toast'; import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TextField, Alert } from '@mui/material'; -import { TronLinkAdapter } from '@tronweb3/tronwallet-adapters'; +import { TronLinkAdapter, TokenPocketAdapter, BitKeepAdapter } from '@tronweb3/tronwallet-adapters'; import { WalletConnectAdapter } from '@tronweb3/tronwallet-adapter-walletconnect'; import { LedgerAdapter } from '@tronweb3/tronwallet-adapter-ledger'; import { tronWeb } from './tronweb'; @@ -57,7 +57,9 @@ export function App() { const ledger = new LedgerAdapter({ accountNumber: 2, }); - return [tronLink1, walletConnect1, ledger]; + const tokenPocket = new TokenPocketAdapter(); + const bitKeep = new BitKeepAdapter(); + return [tronLink1, walletConnect1, ledger, tokenPocket, bitKeep]; }, []); return ( @@ -77,14 +79,14 @@ function UIComponent() { - + Component React UI {rows.map((row) => ( - + {row.name} diff --git a/demos/react-ui/vite-app/src/index.css b/demos/react-ui/vite-app/src/index.css index 8b45537..c7f256d 100644 --- a/demos/react-ui/vite-app/src/index.css +++ b/demos/react-ui/vite-app/src/index.css @@ -32,7 +32,7 @@ a:hover { } body { - padding: 30px; + padding: 10px; margin: 0; display: flex; min-width: 320px; @@ -88,4 +88,7 @@ button { display: flex; flex-direction: column; } + .adapter-react-button { + font-size: 14px; + } } diff --git a/demos/react-ui/vite-app/src/main.tsx b/demos/react-ui/vite-app/src/main.tsx index 6a21bcc..34ccb93 100644 --- a/demos/react-ui/vite-app/src/main.tsx +++ b/demos/react-ui/vite-app/src/main.tsx @@ -7,6 +7,9 @@ import { Toaster } from 'react-hot-toast'; import { App } from './App'; import { ThemeProvider } from '@mui/material/styles'; import theme from './theme'; +import vConsole from 'vconsole' +new vConsole(); + ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/packages/adapters/abstract-adapter/package.json b/packages/adapters/abstract-adapter/package.json index 0bba6f2..b49b03e 100644 --- a/packages/adapters/abstract-adapter/package.json +++ b/packages/adapters/abstract-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@tronweb3/tronwallet-abstract-adapter", - "version": "1.1.4", + "version": "1.1.5", "description": "Abstract interface definition of Tron Wallet Adapters.", "author": "tronprotocol", "repository": { diff --git a/packages/adapters/abstract-adapter/src/errors.ts b/packages/adapters/abstract-adapter/src/errors.ts index ce0c92d..680b56f 100644 --- a/packages/adapters/abstract-adapter/src/errors.ts +++ b/packages/adapters/abstract-adapter/src/errors.ts @@ -80,3 +80,9 @@ export class WalletWindowClosedError extends WalletError { export class WalletSwitchChainError extends WalletError { name = 'WalletSwitchChainError'; } +/** + * Occurs when get network infomation. + */ +export class WalletGetNetworkError extends WalletError { + name = 'WalletGetNetworkError'; +} diff --git a/packages/adapters/adapters/README.md b/packages/adapters/adapters/README.md index 68b35ef..3740008 100644 --- a/packages/adapters/adapters/README.md +++ b/packages/adapters/adapters/README.md @@ -231,7 +231,7 @@ try { openUrlWhenWalletNotFound?: boolean; /** * Timeout in millisecond for checking if TronLink wallet exists. - * Default is 30 * 1000ms + * Default is 10 * 1000ms */ checkTimeout?: number; /** @@ -394,3 +394,56 @@ try { ``` - `multiSign()` and `switchChain(chainId: string)` are not supported. + +### TokenPocketAdapter + +- `Constructor(config: TokenPocketConfig)` + ```typescript + interface TokenPocketConfig { + /** + * Set if open Wallet's website url when wallet is not installed. + * Default is true. + */ + openUrlWhenWalletNotFound?: boolean; + /** + * Timeout in millisecond for checking if TokenPocket wallet is supported. + * Default is 3 * 1000ms + */ + checkTimeout?: number; + /** + * Set if open TokenPocket app using DeepLink on mobile device. + * Default is true. + */ + openTokenPocketAppOnMobile?: boolean; + /** + * The icon of your dapp. Used when open TokenPocket app in mobile device browsers. + * Default is current website icon. + */ + dappIcon?: string; + /** + * The name of your dapp. Used when open TokenPocket app in mobile device browsers. + * Default is `document.title`. + */ + dappName?: string; + } + ``` +- `signMessage()`,`multiSign()`,`switchChain(chainId: string)` are not supported. + +### BitKeepConfig + +- `Constructor(config: BitKeepConfig)` + ```typescript + interface BitKeepConfig { + /** + * Set if open Wallet's website url when wallet is not installed. + * Default is true. + */ + openUrlWhenWalletNotFound?: boolean; + /** + * Timeout in millisecond for checking if BitKeep wallet is supported. + * Default is 3 * 1000ms + */ + checkTimeout?: number; + } + ``` +- `signMessage()`,`multiSign()`,`switchChain(chainId: string)` are not supported. diff --git a/packages/adapters/adapters/package.json b/packages/adapters/adapters/package.json index de8301d..3922492 100644 --- a/packages/adapters/adapters/package.json +++ b/packages/adapters/adapters/package.json @@ -1,6 +1,6 @@ { "name": "@tronweb3/tronwallet-adapters", - "version": "1.1.4", + "version": "1.1.5", "description": "Wallet adapters to help developers interact with Tron wallets using consistent API.", "keywords": [ "TRON", @@ -40,9 +40,11 @@ "package": "shx echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json" }, "dependencies": { - "@tronweb3/tronwallet-adapter-ledger": "^1.1.5", - "@tronweb3/tronwallet-adapter-tronlink": "^1.1.4", - "@tronweb3/tronwallet-adapter-walletconnect": "^1.0.2" + "@tronweb3/tronwallet-adapter-bitkeep": "^1.0.0", + "@tronweb3/tronwallet-adapter-ledger": "^1.1.6", + "@tronweb3/tronwallet-adapter-tokenpocket": "^1.0.0", + "@tronweb3/tronwallet-adapter-tronlink": "^1.1.5", + "@tronweb3/tronwallet-adapter-walletconnect": "^1.0.3" }, "devDependencies": { "shx": "^0.3.4" diff --git a/packages/adapters/adapters/src/index.ts b/packages/adapters/adapters/src/index.ts index 683e09e..87ab66c 100644 --- a/packages/adapters/adapters/src/index.ts +++ b/packages/adapters/adapters/src/index.ts @@ -1,3 +1,5 @@ export * from '@tronweb3/tronwallet-adapter-tronlink'; export * from '@tronweb3/tronwallet-adapter-walletconnect'; export * from '@tronweb3/tronwallet-adapter-ledger'; +export * from '@tronweb3/tronwallet-adapter-tokenpocket'; +export * from '@tronweb3/tronwallet-adapter-bitkeep'; diff --git a/packages/adapters/adapters/tsconfig.all.json b/packages/adapters/adapters/tsconfig.all.json index 90e8e7c..1f936d0 100644 --- a/packages/adapters/adapters/tsconfig.all.json +++ b/packages/adapters/adapters/tsconfig.all.json @@ -10,6 +10,12 @@ { "path": "../ledger/tsconfig.all.json" }, + { + "path": "../tokenpocket/tsconfig.all.json" + }, + { + "path": "../bitkeep/tsconfig.all.json" + }, { "path": "./tsconfig.cjs.json" }, diff --git a/packages/adapters/bitkeep/LICENSE b/packages/adapters/bitkeep/LICENSE new file mode 100644 index 0000000..f8c1348 --- /dev/null +++ b/packages/adapters/bitkeep/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) +Copyright (c) 2022-Present, tronprotocol + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/adapters/bitkeep/README.md b/packages/adapters/bitkeep/README.md new file mode 100644 index 0000000..5eca80c --- /dev/null +++ b/packages/adapters/bitkeep/README.md @@ -0,0 +1,33 @@ +# `@tronweb3/tronwallet-adapter-bitkeep` + +This package provides an adapter to enable TRON DApps to connect to the [BitKeep Wallet extension and App](https://bitkeep.com/). + +## Demo + +```typescript +import { BitKeepAdapter } from '@tronweb3/tronwallet-adapter-bitkeep'; +// import TronWeb from 'tronweb'; + +const adapter = new BitKeepAdapter(); +// connect to TokenPocket +await adapter.connect(); + +// then you can get address +console.log(adapter.address); + +// create a send TRX transaction +const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address); +// using adapter to sign the transaction +const signedTransaction = await adapter.signTransaction(unSignedTransaction); +// broadcase the transaction +await tronWeb.trx.sendRawTransaction(signedTransaction); +``` + +## Documentation + +For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) + +### Caveats + +- BitKeep App doesn't implement `signMessage()`, `multiSign()` and `switchChain()`. +- BitKeep App and BitKeep Extension will reload current page so there is no need to listen `accountsChanged` event. diff --git a/packages/adapters/bitkeep/jest.config.js b/packages/adapters/bitkeep/jest.config.js new file mode 100644 index 0000000..2a76755 --- /dev/null +++ b/packages/adapters/bitkeep/jest.config.js @@ -0,0 +1,17 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +export default { + preset: 'ts-jest', + testEnvironment: 'jsdom', + transform: { + '\\.tsx?$': [ + 'ts-jest', + { + useESM: true, + }, + ], + }, + moduleNameMapper: { + '(.+)\\.js': '$1', + }, + extensionsToTreatAsEsm: ['.ts'], +}; diff --git a/packages/adapters/bitkeep/package.json b/packages/adapters/bitkeep/package.json new file mode 100644 index 0000000..e49b7f1 --- /dev/null +++ b/packages/adapters/bitkeep/package.json @@ -0,0 +1,52 @@ +{ + "name": "@tronweb3/tronwallet-adapter-bitkeep", + "version": "1.0.0", + "description": "Wallet adapter for BitKeep Wallet extension and app.", + "keywords": [ + "TRON", + "TronWeb", + "BitKeep" + ], + "author": "tronprotocol", + "repository": { + "type": "git", + "url": "https://github.com/tronprotocol/tronwallet-adapter" + }, + "license": "MIT", + "type": "module", + "sideEffects": false, + "engines": { + "node": ">=16", + "pnpm": ">=7" + }, + "main": "./lib/cjs/index.js", + "module": "./lib/esm/index.js", + "types": "./lib/types/index.d.ts", + "exports": { + "require": "./lib/cjs/index.js", + "import": "./lib/esm/index.js", + "types": "./lib/types/index.d.ts" + }, + "files": [ + "lib", + "src", + "LICENSE" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "clean": "shx mkdir -p lib && shx rm -rf lib", + "package": "shx echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json", + "test": "jest" + }, + "dependencies": { + "@tronweb3/tronwallet-abstract-adapter": "^1.1.5", + "@tronweb3/tronwallet-adapter-tronlink": "^1.1.5" + }, + "devDependencies": { + "@testing-library/dom": "^8.20.0", + "jest-environment-jsdom": "^29.3.1", + "shx": "^0.3.4" + } +} diff --git a/packages/adapters/bitkeep/src/adapter.ts b/packages/adapters/bitkeep/src/adapter.ts new file mode 100644 index 0000000..404ea5e --- /dev/null +++ b/packages/adapters/bitkeep/src/adapter.ts @@ -0,0 +1,313 @@ +import { + Adapter, + AdapterState, + isInBrowser, + WalletReadyState, + WalletSignMessageError, + WalletNotFoundError, + WalletDisconnectedError, + WalletSignTransactionError, + NetworkType, + WalletConnectionError, + WalletGetNetworkError, +} from '@tronweb3/tronwallet-abstract-adapter'; +import { chainIdNetworkMap } from '@tronweb3/tronwallet-adapter-tronlink'; +import type { TronLinkWallet } from '@tronweb3/tronwallet-adapter-tronlink'; +import type { + Transaction, + SignedTransaction, + AdapterName, + BaseAdapterConfig, + Network, +} from '@tronweb3/tronwallet-abstract-adapter'; +import { supportBitKeep } from './utils.js'; + +export interface BitKeepAdapterConfig extends BaseAdapterConfig { + /** + * Timeout in millisecond for checking if is support BitKeep. + * Default is 5 * 1000ms + */ + checkTimeout?: number; +} + +export const BitKeepAdapterName = 'BitKeep' as AdapterName<'BitKeep'>; + +export class BitKeepAdapter extends Adapter { + name = BitKeepAdapterName; + url = 'https://bitkeep.com'; + icon = + 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdmlld0JveD0iMCAwIDEyOCAxMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiByeD0iNjQiIGZpbGw9IiM3NTI0RjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMDIgNDUuNjAyN1Y0OS44MjA0QzEwMi4wMDEgNTAuMjI4MyAxMDEuODkzIDUwLjYyOTIgMTAxLjY4NyA1MC45ODI3QzEwMS40ODEgNTEuMzM2MSAxMDEuMTg1IDUxLjYyOTYgMTAwLjgyOCA1MS44MzM1TDg3LjA5MDggNTkuNjgwMUw5OS4zNjMzIDY2LjY3MUMxMDAuMTY1IDY3LjEyOTUgMTAwLjgzMSA2Ny43ODkyIDEwMS4yOTQgNjguNTgzNkMxMDEuNzU3IDY5LjM3OCAxMDIuMDAxIDcwLjI3OTEgMTAyIDcxLjE5NjJWODIuNDQyNEMxMDIuMDAxIDgzLjM2IDEwMS43NTggODQuMjYxNyAxMDEuMjk1IDg1LjA1NjdDMTAwLjgzMiA4NS44NTE2IDEwMC4xNjYgODYuNTExNyA5OS4zNjMzIDg2Ljk3MDVMNjcuMDg2OSAxMDUuM0M2Ni4yODUzIDEwNS43NTkgNjUuMzc1OSAxMDYgNjQuNDUwMiAxMDZDNjMuNTI0NSAxMDYgNjIuNjE1MSAxMDUuNzU5IDYxLjgxMzUgMTA1LjNMNTEuMjUyIDk5LjI2MTFDNTEuMDczNyA5OS4xNTkzIDUwLjkyNTYgOTkuMDEyOCA1MC44MjI3IDk4LjgzNjNDNTAuNzE5OCA5OC42NTk5IDUwLjY2NTYgOTguNDU5NyA1MC42NjU2IDk4LjI1NkM1MC42NjU2IDk4LjA1MjIgNTAuNzE5OCA5Ny44NTIgNTAuODIyNyA5Ny42NzU2QzUwLjkyNTYgOTcuNDk5MSA1MS4wNzM3IDk3LjM1MjcgNTEuMjUyIDk3LjI1MDhMODYuMTE1MiA3Ny4zODM1Qzg2LjIwNCA3Ny4zMzI1IDg2LjI3NzcgNzcuMjU5MyA4Ni4zMjkgNzcuMTcxMkM4Ni4zODAyIDc3LjA4MzIgODYuNDA3MiA3Ni45ODMzIDg2LjQwNzIgNzYuODgxN0M4Ni40MDcyIDc2Ljc4IDg2LjM4MDIgNzYuNjgwMiA4Ni4zMjkgNzYuNTkyMUM4Ni4yNzc3IDc2LjUwNCA4Ni4yMDQgNzYuNDMwOCA4Ni4xMTUyIDc2LjM3OThMNzMuMTcxOSA2OC45NzcxQzcyLjgxNTYgNjguNzczNCA3Mi40MTE0IDY4LjY2NjIgNzIgNjguNjY2MkM3MS41ODg2IDY4LjY2NjIgNzEuMTg0NCA2OC43NzM0IDcwLjgyODEgNjguOTc3MUwzNS40MTcgODkuMTcyMkMzNS4xNDk4IDg5LjMyNSAzNC44NDY3IDg5LjQwNTQgMzQuNTM4MSA4OS40MDU0QzM0LjIyOTUgODkuNDA1NCAzMy45MjY0IDg5LjMyNSAzMy42NTkyIDg5LjE3MjJMMjkuNjQ4NCA4Ni45MDA5QzI4Ljg0MjQgODYuNDQyOCAyOC4xNzI5IDg1Ljc4MiAyNy43MDc4IDg0Ljk4NTNDMjcuMjQyNyA4NC4xODg2IDI2Ljk5ODUgODMuMjg0MyAyNyA4Mi4zNjQxVjc3Ljc2NjRDMjYuOTk5OCA3Ny40NjA3IDI3LjA4MDkgNzcuMTYwMyAyNy4yMzUyIDc2Ljg5NTVDMjcuMzg5NSA3Ni42MzA3IDI3LjYxMTUgNzYuNDEwOSAyNy44Nzg5IDc2LjI1OEw3OC42NTA0IDQ3LjM2OTNDNzguNzM5MiA0Ny4zMTgzIDc4LjgxMjkgNDcuMjQ1MSA3OC44NjQxIDQ3LjE1N0M3OC45MTU0IDQ3LjA2ODkgNzguOTQyMyA0Ni45NjkxIDc4Ljk0MjMgNDYuODY3NEM3OC45NDIzIDQ2Ljc2NTggNzguOTE1NCA0Ni42NjU5IDc4Ljg2NDEgNDYuNTc3OUM3OC44MTI5IDQ2LjQ4OTggNzguNzM5MiA0Ni40MTY2IDc4LjY1MDQgNDYuMzY1Nkw2NS42ODY1IDM4LjkzNjdDNjUuMzMwMiAzOC43MzMxIDY0LjkyNjEgMzguNjI1OCA2NC41MTQ2IDM4LjYyNThDNjQuMTAzMiAzOC42MjU4IDYzLjY5OTEgMzguNzMzMSA2My4zNDI4IDM4LjkzNjdMMjguNzU3OCA1OC42M0MyOC41Nzk4IDU4LjczMTggMjguMzc3OCA1OC43ODU0IDI4LjE3MjIgNTguNzg1NUMyNy45NjY2IDU4Ljc4NTUgMjcuNzY0NiA1OC43MzIgMjcuNTg2NSA1OC42MzAzQzI3LjQwODQgNTguNTI4NiAyNy4yNjA0IDU4LjM4MjMgMjcuMTU3NSA1OC4yMDYxQzI3LjA1NDUgNTguMDI5OSAyNy4wMDAyIDU3LjgzIDI3IDU3LjYyNjRWNDUuNTQ3NkMyNi45OTg5IDQ0LjYzIDI3LjI0MiA0My43MjgzIDI3LjcwNDkgNDIuOTMzNEMyOC4xNjc4IDQyLjEzODQgMjguODM0MSA0MS40NzgzIDI5LjYzNjcgNDEuMDE5NUw2MS45MDcyIDIyLjY5NTRDNjIuNzA3MSAyMi4yMzk4IDYzLjYxMzggMjIgNjQuNTM2NiAyMkM2NS40NTk0IDIyIDY2LjM2NjEgMjIuMjM5OCA2Ny4xNjYgMjIuNjk1NEw5OS4zNjMzIDQxLjA4MzNDMTAwLjE2NSA0MS41NDE0IDEwMC44MyA0Mi4yMDAxIDEwMS4yOTMgNDIuOTkzNEMxMDEuNzU2IDQzLjc4NjcgMTAyIDQ0LjY4NjYgMTAyIDQ1LjYwMjdaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K'; + + config: Required; + private _readyState: WalletReadyState = WalletReadyState.Loading; + private _state: AdapterState = AdapterState.Loading; + private _connecting: boolean; + private _wallet: TronLinkWallet | null; + private _address: string | null; + + constructor(config: BitKeepAdapterConfig = {}) { + super(); + const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true } = config; + if (typeof checkTimeout !== 'number') { + throw new Error('[BitKeepAdapter] config.checkTimeout should be a number'); + } + this.config = { + checkTimeout, + openUrlWhenWalletNotFound, + }; + this._connecting = false; + this._wallet = null; + this._address = null; + + if (!isInBrowser()) { + this._readyState = WalletReadyState.NotFound; + this.setState(AdapterState.NotFound); + return; + } + if (supportBitKeep()) { + this._readyState = WalletReadyState.Found; + this._updateWallet(); + } else { + this._checkWallet().then(() => { + if (this.connected) { + this.emit('connect', this.address || ''); + } + }); + } + } + + get address() { + return this._address; + } + + get state() { + return this._state; + } + get readyState() { + return this._readyState; + } + + get connecting() { + return this._connecting; + } + + /** + * Get network information used by TronLink. + * @returns {Network} Current network information. + */ + async network(): Promise { + try { + await this._checkWallet(); + if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError(); + const wallet = this._wallet; + if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); + try { + const { blockID = '' } = await wallet.tronWeb.trx.getBlockByNumber(0); + const chainId = `0x${blockID.slice(-8)}`; + return { + networkType: chainIdNetworkMap[chainId] || NetworkType.Unknown, + chainId, + fullNode: wallet.tronWeb.fullNode?.host || '', + solidityNode: wallet.tronWeb.solidityNode?.host || '', + eventServer: wallet.tronWeb.eventServer?.host || '', + }; + } catch (e: any) { + throw new WalletGetNetworkError(e?.message, e); + } + } catch (e: any) { + this.emit('error', e); + throw e; + } + } + + async connect(): Promise { + try { + if (this.connected || this.connecting) return; + await this._checkWallet(); + if (this.readyState === WalletReadyState.NotFound) { + if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) { + window.open(this.url, '_blank'); + } + throw new WalletNotFoundError(); + } + const wallet = this._wallet as TronLinkWallet; + if (!wallet) return; + this._connecting = true; + try { + await wallet.request({ method: 'tron_requestAccounts' }); + } catch (e: any) { + throw new WalletConnectionError(e.message); + } + const address = wallet.tronWeb.defaultAddress?.base58 || ''; + this.setAddress(address); + this.setState(AdapterState.Connected); + this.emit('connect', this.address || ''); + } catch (error: any) { + this.emit('error', error); + throw error; + } finally { + this._connecting = false; + } + } + + async disconnect(): Promise { + if (this.state !== AdapterState.Connected) { + return; + } + this.setAddress(null); + this.setState(AdapterState.Disconnect); + this.emit('disconnect'); + } + + async signTransaction(transaction: Transaction, privateKey?: string): Promise { + try { + const wallet = await this.checkAndGetWallet(); + + try { + return await wallet.tronWeb.trx.sign(transaction, privateKey); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignTransactionError(error.message, error); + } else { + throw new WalletSignTransactionError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + async multiSign(...args: any[]): Promise { + try { + const wallet = await this.checkAndGetWallet(); + try { + return await wallet.tronWeb.trx.multiSign(...args); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignTransactionError(error.message, error); + } else { + throw new WalletSignTransactionError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + async signMessage(message: string, privateKey?: string): Promise { + try { + const wallet = await this.checkAndGetWallet(); + try { + return await wallet.tronWeb.trx.signMessageV2(message, privateKey); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignMessageError(error.message, error); + } else { + throw new WalletSignMessageError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + private async checkAndGetWallet() { + await this._checkWallet(); + if (!this.connected) throw new WalletDisconnectedError(); + const wallet = this._wallet; + if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); + return wallet as TronLinkWallet; + } + + private checkReadyInterval: ReturnType | null = null; + private checkForWalletReady() { + if (this.checkReadyInterval) { + return; + } + let times = 0; + const maxTimes = Math.floor(this.config.checkTimeout / 200); + const check = () => { + if (window?.tronWeb?.ready) { + this.checkReadyInterval && clearInterval(this.checkReadyInterval); + this.checkReadyInterval = null; + this._updateWallet(); + this.emit('connect', this.address || ''); + } else if (times > maxTimes) { + this.checkReadyInterval && clearInterval(this.checkReadyInterval); + this.checkReadyInterval = null; + } else { + times++; + } + }; + this.checkReadyInterval = setInterval(check, 200); + } + + private _checkPromise: Promise | null = null; + /** + * check if wallet exists by interval, the promise only resolve when wallet detected or timeout + * @returns if TronLink exists + */ + private _checkWallet(): Promise { + if (this.readyState === WalletReadyState.Found) { + return Promise.resolve(true); + } + if (this._checkPromise) { + return this._checkPromise; + } + const interval = 100; + const maxTimes = Math.floor(this.config.checkTimeout / interval); + let times = 0, + timer: ReturnType; + this._checkPromise = new Promise((resolve) => { + const check = () => { + times++; + const isSupport = supportBitKeep(); + if (isSupport || times > maxTimes) { + timer && clearInterval(timer); + this._readyState = isSupport ? WalletReadyState.Found : WalletReadyState.NotFound; + this._updateWallet(); + this.emit('readyStateChanged', this.readyState); + resolve(isSupport); + } + }; + timer = setInterval(check, interval); + check(); + }); + return this._checkPromise; + } + + private _updateWallet = () => { + let state = this.state; + let address = this.address; + if (supportBitKeep()) { + this._wallet = window.tronLink as TronLinkWallet; + address = this._wallet.tronWeb.defaultAddress?.base58 || null; + state = window.tronWeb?.ready ? AdapterState.Connected : AdapterState.Disconnect; + if (!window.tronWeb?.ready) { + this.checkForWalletReady(); + } + } else { + // no tronlink support + this._wallet = null; + address = null; + state = AdapterState.NotFound; + } + this.setAddress(address); + this.setState(state); + }; + + private setAddress(address: string | null) { + this._address = address; + } + + private setState(state: AdapterState) { + const preState = this.state; + if (state !== preState) { + this._state = state; + this.emit('stateChanged', state); + } + } +} diff --git a/packages/adapters/bitkeep/src/index.ts b/packages/adapters/bitkeep/src/index.ts new file mode 100644 index 0000000..c4929c4 --- /dev/null +++ b/packages/adapters/bitkeep/src/index.ts @@ -0,0 +1,2 @@ +export * from './adapter.js'; +export * from './utils.js'; diff --git a/packages/adapters/bitkeep/src/utils.ts b/packages/adapters/bitkeep/src/utils.ts new file mode 100644 index 0000000..6b475cd --- /dev/null +++ b/packages/adapters/bitkeep/src/utils.ts @@ -0,0 +1,3 @@ +export function supportBitKeep() { + return !!window.tronLink && (window as any).isBitKeep; +} diff --git a/packages/adapters/bitkeep/tests/units/adapter.test.ts b/packages/adapters/bitkeep/tests/units/adapter.test.ts new file mode 100644 index 0000000..27aa981 --- /dev/null +++ b/packages/adapters/bitkeep/tests/units/adapter.test.ts @@ -0,0 +1,11 @@ +import { BitKeepAdapter } from '../../src/adapter.js'; + +describe('BitKeepAdapter', () => { + test('should be defined', () => { + expect(BitKeepAdapter).not.toBeNull(); + }); + test('#constructor() should work fine', () => { + const adapter = new BitKeepAdapter(); + expect(adapter.name).toEqual('BitKeep'); + }); +}); diff --git a/packages/adapters/bitkeep/tsconfig.all.json b/packages/adapters/bitkeep/tsconfig.all.json new file mode 100644 index 0000000..a1ded9c --- /dev/null +++ b/packages/adapters/bitkeep/tsconfig.all.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../tsconfig.root.json", + "references": [ + { + "path": "../abstract-adapter/tsconfig.all.json" + }, + { + "path": "../tronlink/tsconfig.all.json" + }, + { + "path": "./tsconfig.cjs.json" + }, + { + "path": "./tsconfig.esm.json" + } + ] +} diff --git a/packages/adapters/bitkeep/tsconfig.cjs.json b/packages/adapters/bitkeep/tsconfig.cjs.json new file mode 100644 index 0000000..099b9aa --- /dev/null +++ b/packages/adapters/bitkeep/tsconfig.cjs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../../tsconfig.cjs.json", + "include": ["src"], + "compilerOptions": { + "outDir": "lib/cjs" + } +} diff --git a/packages/adapters/bitkeep/tsconfig.esm.json b/packages/adapters/bitkeep/tsconfig.esm.json new file mode 100644 index 0000000..4900d2f --- /dev/null +++ b/packages/adapters/bitkeep/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.esm.json", + "include": ["src"], + "compilerOptions": { + "outDir": "lib/esm", + "declarationDir": "lib/types" + } +} diff --git a/packages/adapters/ledger/package.json b/packages/adapters/ledger/package.json index 15f0f63..db57792 100644 --- a/packages/adapters/ledger/package.json +++ b/packages/adapters/ledger/package.json @@ -1,6 +1,6 @@ { "name": "@tronweb3/tronwallet-adapter-ledger", - "version": "1.1.5", + "version": "1.1.6", "description": "Wallet adapter for the Ledger wallet.", "keywords": [ "TRON", @@ -44,7 +44,7 @@ "@ledgerhq/hw-app-trx": "^6.27.8", "@ledgerhq/hw-transport": "6.27.1", "@ledgerhq/hw-transport-webhid": "6.27.1", - "@tronweb3/tronwallet-abstract-adapter": "^1.1.4", + "@tronweb3/tronwallet-abstract-adapter": "^1.1.5", "buffer": "^6.0.3", "eventemitter3": "^4.0.0", "preact": "^10.11.3" diff --git a/packages/adapters/tokenpocket/LICENSE b/packages/adapters/tokenpocket/LICENSE new file mode 100644 index 0000000..f8c1348 --- /dev/null +++ b/packages/adapters/tokenpocket/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) +Copyright (c) 2022-Present, tronprotocol + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/adapters/tokenpocket/README.md b/packages/adapters/tokenpocket/README.md new file mode 100644 index 0000000..0a14821 --- /dev/null +++ b/packages/adapters/tokenpocket/README.md @@ -0,0 +1,33 @@ +# `@tronweb3/tronwallet-adapter-tokenpocket` + +This package provides an adapter to enable TRON DApps to connect to the [TokenPocket Wallet App](https://tokenpocket.pro/). + +## Demo + +```typescript +import { TokenPocketAdapter } from '@tronweb3/tronwallet-adapter-tokenpocket'; +// import TronWeb from 'tronweb'; + +const adapter = new TokenPocketAdapter(); +// connect to TokenPocket +await adapter.connect(); + +// then you can get address +console.log(adapter.address); + +// create a send TRX transaction +const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address); +// using adapter to sign the transaction +const signedTransaction = await adapter.signTransaction(unSignedTransaction); +// broadcase the transaction +await tronWeb.trx.sendRawTransaction(signedTransaction); +``` + +## Documentation + +For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) + +### Caveats + +- TokenPocket App doesn't implement `signMessage()`, `multiSign()` and `switchChain()`. +- TokenPocket App will reload current page so there is no need to listen `accountsChanged` event. diff --git a/packages/adapters/tokenpocket/jest.config.js b/packages/adapters/tokenpocket/jest.config.js new file mode 100644 index 0000000..2a76755 --- /dev/null +++ b/packages/adapters/tokenpocket/jest.config.js @@ -0,0 +1,17 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +export default { + preset: 'ts-jest', + testEnvironment: 'jsdom', + transform: { + '\\.tsx?$': [ + 'ts-jest', + { + useESM: true, + }, + ], + }, + moduleNameMapper: { + '(.+)\\.js': '$1', + }, + extensionsToTreatAsEsm: ['.ts'], +}; diff --git a/packages/adapters/tokenpocket/package.json b/packages/adapters/tokenpocket/package.json new file mode 100644 index 0000000..1f3ec18 --- /dev/null +++ b/packages/adapters/tokenpocket/package.json @@ -0,0 +1,52 @@ +{ + "name": "@tronweb3/tronwallet-adapter-tokenpocket", + "version": "1.0.0", + "description": "Wallet adapter for TokenPocket Wallet app.", + "keywords": [ + "TRON", + "TronWeb", + "TokenPocket" + ], + "author": "tronprotocol", + "repository": { + "type": "git", + "url": "https://github.com/tronprotocol/tronwallet-adapter" + }, + "license": "MIT", + "type": "module", + "sideEffects": false, + "engines": { + "node": ">=16", + "pnpm": ">=7" + }, + "main": "./lib/cjs/index.js", + "module": "./lib/esm/index.js", + "types": "./lib/types/index.d.ts", + "exports": { + "require": "./lib/cjs/index.js", + "import": "./lib/esm/index.js", + "types": "./lib/types/index.d.ts" + }, + "files": [ + "lib", + "src", + "LICENSE" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "clean": "shx mkdir -p lib && shx rm -rf lib", + "package": "shx echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json", + "test": "jest" + }, + "dependencies": { + "@tronweb3/tronwallet-abstract-adapter": "^1.1.5", + "@tronweb3/tronwallet-adapter-tronlink": "^1.1.5" + }, + "devDependencies": { + "@testing-library/dom": "^8.20.0", + "jest-environment-jsdom": "^29.3.1", + "shx": "^0.3.4" + } +} diff --git a/packages/adapters/tokenpocket/src/adapter.ts b/packages/adapters/tokenpocket/src/adapter.ts new file mode 100644 index 0000000..f08ec9d --- /dev/null +++ b/packages/adapters/tokenpocket/src/adapter.ts @@ -0,0 +1,348 @@ +import { + Adapter, + AdapterState, + isInBrowser, + WalletReadyState, + WalletSignMessageError, + WalletNotFoundError, + WalletDisconnectedError, + WalletSignTransactionError, + isInMobileBrowser, + NetworkType, + WalletGetNetworkError, +} from '@tronweb3/tronwallet-abstract-adapter'; +import type { + Transaction, + SignedTransaction, + AdapterName, + BaseAdapterConfig, + Network, +} from '@tronweb3/tronwallet-abstract-adapter'; +import { chainIdNetworkMap } from '@tronweb3/tronwallet-adapter-tronlink'; +import type { TronLinkWallet } from '@tronweb3/tronwallet-adapter-tronlink'; +import { openTokenPocket, supportTokenPocket } from './utils.js'; + +export interface TokenPocketAdapterConfig extends BaseAdapterConfig { + /** + * Timeout in millisecond for checking if is in TokenPocket App. + * Default is 5 * 1000ms + */ + checkTimeout?: number; + /** + * Set if open TokenPocket app using DeepLink. + * Default is true. + */ + openTokenPocketAppOnMobile?: boolean; + /** + * The icon of your dapp. Used when open TronLink app in mobile device browsers. + */ + dappIcon?: string; + /** + * The name of your dapp. Used when open TronLink app in mobile device browsers. + */ + dappName?: string; +} + +export const TokenPocketAdapterName = 'TokenPocket' as AdapterName<'TokenPocket'>; + +export class TokenPocketAdapter extends Adapter { + name = TokenPocketAdapterName; + url = 'https://tokenpocket.pro/'; + icon = + 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGc+CjxwYXRoIGQ9Ik0xMDQxLjUyIDBILTI3VjEwMjRIMTA0MS41MlYwWiIgZmlsbD0iIzI5ODBGRSIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNDA4XzIyNSkiPgo8cGF0aCBkPSJNNDA2Ljc5NiA0MzguNjQzSDQwNi45MjdDNDA2Ljc5NiA0MzcuODU3IDQwNi43OTYgNDM2Ljk0IDQwNi43OTYgNDM2LjE1NFY0MzguNjQzWiIgZmlsbD0iIzI5QUVGRiIvPgo8cGF0aCBkPSJNNjY3LjYwMiA0NjMuNTMzSDUyMy4yNDlWNzI0LjA3NkM1MjMuMjQ5IDczNi4zODkgNTMzLjIwNCA3NDYuMzQ1IDU0NS41MTcgNzQ2LjM0NUg2NDUuMzMzQzY1Ny42NDcgNzQ2LjM0NSA2NjcuNjAyIDczNi4zODkgNjY3LjYwMiA3MjQuMDc2VjQ2My41MzNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDUzLjU2MyAyNzdINDQ4LjcxNkgxOTAuMjY5QzE3Ny45NTUgMjc3IDE2OCAyODYuOTU1IDE2OCAyOTkuMjY5VjM4OS42NTNDMTY4IDQwMS45NjcgMTc3Ljk1NSA0MTEuOTIyIDE5MC4yNjkgNDExLjkyMkgyNTAuOTE4SDI3NS4wMjFWNDM4LjY0NFY3MjQuNzMxQzI3NS4wMjEgNzM3LjA0NSAyODQuOTc2IDc0NyAyOTcuMjg5IDc0N0gzOTIuMTI4QzQwNC40NDEgNzQ3IDQxNC4zOTYgNzM3LjA0NSA0MTQuMzk2IDcyNC43MzFWNDM4LjY0NFY0MzYuMTU2VjQxMS45MjJINDM4LjQ5OUg0NDguMzIzSDQ1My4xN0M0OTAuMzcyIDQxMS45MjIgNTIwLjYzMSAzODEuNjYzIDUyMC42MzEgMzQ0LjQ2MUM1MjEuMDI0IDMwNy4yNTkgNDkwLjc2NSAyNzcgNDUzLjU2MyAyNzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNjY3LjczNSA0NjMuNTMzVjY0NS4zNUM2NzIuNzEzIDY0Ni41MjkgNjc3LjgyMSA2NDcuNDQ2IDY4My4wNjEgNjQ4LjIzMkM2OTAuMzk3IDY0OS4yOCA2OTcuOTk0IDY0OS45MzUgNzA1LjU5MiA2NTAuMDY2QzcwNS45ODUgNjUwLjA2NiA3MDYuMzc4IDY1MC4wNjYgNzA2LjkwMiA2NTAuMDY2VjUwNS40NUM2ODUuMDI2IDUwNC4wMDkgNjY3LjczNSA0ODUuODAxIDY2Ny43MzUgNDYzLjUzM1oiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl80MDhfMjI1KSIvPgo8cGF0aCBkPSJNNzA5Ljc4MSAyNzdDNjA2LjgyMiAyNzcgNTIzLjI0OSAzNjAuNTczIDUyMy4yNDkgNDYzLjUzM0M1MjMuMjQ5IDU1Mi4wODQgNTg0Ljk0NiA2MjYuMjI1IDY2Ny43MzMgNjQ1LjM1VjQ2My41MzNDNjY3LjczMyA0NDAuMzQ3IDY4Ni41OTYgNDIxLjQ4NCA3MDkuNzgxIDQyMS40ODRDNzMyLjk2NyA0MjEuNDg0IDc1MS44MyA0NDAuMzQ3IDc1MS44MyA0NjMuNTMzQzc1MS44MyA0ODMuMDUxIDczOC42IDQ5OS40MjUgNzIwLjUyMyA1MDQuMTRDNzE3LjExNyA1MDUuMDU3IDcxMy40NDkgNTA1LjU4MSA3MDkuNzgxIDUwNS41ODFWNjUwLjA2NkM3MTMuNDQ5IDY1MC4wNjYgNzE2Ljk4NiA2NDkuOTM1IDcyMC41MjMgNjQ5LjgwNEM4MTguNTA1IDY0NC4xNzEgODk2LjMxNCA1NjIuOTU2IDg5Ni4zMTQgNDYzLjUzM0M4OTYuNDQ1IDM2MC41NzMgODEyLjg3MiAyNzcgNzA5Ljc4MSAyNzdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzA5Ljc4IDY1MC4wNjZWNTA1LjU4MUM3MDguNzMzIDUwNS41ODEgNzA3LjgxNiA1MDUuNTgxIDcwNi43NjggNTA1LjQ1VjY1MC4wNjZDNzA3LjgxNiA2NTAuMDY2IDcwOC44NjQgNjUwLjA2NiA3MDkuNzggNjUwLjA2NloiIGZpbGw9IndoaXRlIi8+CjwvZz4KPC9nPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzQwOF8yMjUiIHgxPSI3MDkuODQ0IiB5MT0iNTU2LjgyNyIgeDI9IjY2Ny43NTMiIHkyPSI1NTYuODI3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IndoaXRlIi8+CjxzdG9wIG9mZnNldD0iMC45NjY3IiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwLjMyMzMiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSJ3aGl0ZSIgc3RvcC1vcGFjaXR5PSIwLjMiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF80MDhfMjI1Ij4KPHJlY3Qgd2lkdGg9IjcyOC40NDgiIGhlaWdodD0iNDcwIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY4IDI3NykiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K'; + + config: Required; + private _readyState: WalletReadyState = isInBrowser() ? WalletReadyState.Loading : WalletReadyState.NotFound; + private _state: AdapterState = AdapterState.Loading; + private _connecting: boolean; + private _wallet: TronLinkWallet | null; + private _address: string | null; + + constructor(config: TokenPocketAdapterConfig = {}) { + super(); + const { + checkTimeout = 2 * 1000, + dappIcon = '', + dappName = '', + openUrlWhenWalletNotFound = true, + openTokenPocketAppOnMobile = true, + } = config; + if (typeof checkTimeout !== 'number') { + throw new Error('[TokenPocketAdapter] config.checkTimeout should be a number'); + } + this.config = { + checkTimeout, + openTokenPocketAppOnMobile, + openUrlWhenWalletNotFound, + dappIcon, + dappName, + }; + this._connecting = false; + this._wallet = null; + this._address = null; + + if (!isInMobileBrowser()) { + // Currently TokenPocket extension does not support Tron. + this._readyState = WalletReadyState.NotFound; + this._state = AdapterState.NotFound; + return; + } + if (supportTokenPocket()) { + this._readyState = WalletReadyState.Found; + this._updateWallet(); + } else { + this._checkWallet().then(() => { + if (this.connected) { + this.emit('connect', this.address || ''); + } + }); + } + } + + get address() { + return this._address; + } + + get state() { + return this._state; + } + get readyState() { + return this._readyState; + } + + get connecting() { + return this._connecting; + } + + /** + * Get network information used by TronLink. + * @returns {Network} Current network information. + */ + async network(): Promise { + try { + await this._checkWallet(); + if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError(); + const wallet = this._wallet; + if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); + try { + const { blockID = '' } = await wallet.tronWeb.trx.getBlockByNumber(0); + const chainId = `0x${blockID.slice(-8)}`; + return { + networkType: chainIdNetworkMap[chainId] || NetworkType.Unknown, + chainId, + fullNode: wallet.tronWeb.fullNode?.host || '', + solidityNode: wallet.tronWeb.solidityNode?.host || '', + eventServer: wallet.tronWeb.eventServer?.host || '', + }; + } catch (e: any) { + throw new WalletGetNetworkError(e?.message, e); + } + } catch (e: any) { + this.emit('error', e); + throw e; + } + } + + async connect(): Promise { + try { + this.checkIfOpenApp(); + if (this.connected || this.connecting) return; + await this._checkWallet(); + if (this.readyState === WalletReadyState.NotFound) { + if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) { + window.open(this.url, '_blank'); + } + throw new WalletNotFoundError(); + } + // lower version only support window.tronWeb, no window.tronLink + if (!this._wallet) return; + this._connecting = true; + const wallet = this._wallet as TronLinkWallet; + const address = wallet.tronWeb.defaultAddress?.base58 || ''; + this.setAddress(address); + this.setState(AdapterState.Connected); + this.emit('connect', this.address || ''); + } catch (error: any) { + this.emit('error', error); + throw error; + } finally { + this._connecting = false; + } + } + + async disconnect(): Promise { + if (this.state !== AdapterState.Connected) { + return; + } + this.setAddress(null); + this.setState(AdapterState.Disconnect); + this.emit('disconnect'); + } + + async signTransaction(transaction: Transaction, privateKey?: string): Promise { + try { + const wallet = await this.checkAndGetWallet(); + try { + return await wallet.tronWeb.trx.sign(transaction, privateKey); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignTransactionError(error.message, error); + } else { + throw new WalletSignTransactionError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + async multiSign(...args: any[]): Promise { + try { + const wallet = await this.checkAndGetWallet(); + try { + return await wallet.tronWeb.trx.multiSign(...args); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignTransactionError(error.message, error); + } else { + throw new WalletSignTransactionError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + async signMessage(message: string, privateKey?: string): Promise { + try { + const wallet = await this.checkAndGetWallet(); + try { + return await wallet.tronWeb.trx.signMessageV2(message, privateKey); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignMessageError(error.message, error); + } else { + throw new WalletSignMessageError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + private async checkAndGetWallet() { + this.checkIfOpenApp(); + await this._checkWallet(); + if (!this.connected) throw new WalletDisconnectedError(); + const wallet = this._wallet; + if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); + return wallet as TronLinkWallet; + } + + private checkIfOpenApp() { + const { dappName = '', dappIcon = '' } = this.config; + if (this.config.openTokenPocketAppOnMobile === false) { + return; + } + if (openTokenPocket({ dappIcon, dappName })) { + throw new WalletNotFoundError(); + } + } + + private checkReadyInterval: ReturnType | null = null; + private checkForWalletReady() { + if (this.checkReadyInterval) { + return; + } + let times = 0; + const maxTimes = Math.floor(this.config.checkTimeout / 200); + const check = () => { + if (window?.tronWeb?.ready) { + this.checkReadyInterval && clearInterval(this.checkReadyInterval); + this.checkReadyInterval = null; + this._updateWallet(); + this.emit('connect', this.address || ''); + } else if (times > maxTimes) { + this.checkReadyInterval && clearInterval(this.checkReadyInterval); + this.checkReadyInterval = null; + } else { + times++; + } + }; + this.checkReadyInterval = setInterval(check, 200); + } + + private _checkPromise: Promise | null = null; + /** + * check if wallet exists by interval, the promise only resolve when wallet detected or timeout + * @returns if TronLink exists + */ + private _checkWallet(): Promise { + if (this.readyState === WalletReadyState.Found) { + return Promise.resolve(true); + } + if (this._checkPromise) { + return this._checkPromise; + } + const interval = 100; + const maxTimes = Math.floor(this.config.checkTimeout / interval); + let times = 0, + timer: ReturnType; + this._checkPromise = new Promise((resolve) => { + const check = () => { + times++; + const isSupport = supportTokenPocket(); + if (isSupport || times > maxTimes) { + timer && clearInterval(timer); + this._readyState = isSupport ? WalletReadyState.Found : WalletReadyState.NotFound; + this._updateWallet(); + this.emit('readyStateChanged', this.readyState); + resolve(isSupport); + } + }; + timer = setInterval(check, interval); + check(); + }); + return this._checkPromise; + } + + private _updateWallet = () => { + let state = this.state; + let address = this.address; + if (supportTokenPocket()) { + // fake tronLink + this._wallet = { + ready: window.tronWeb?.ready, + tronWeb: window.tronWeb, + request: () => Promise.resolve(true) as any, + } as TronLinkWallet; + address = this._wallet.tronWeb.defaultAddress?.base58 || null; + state = window.tronWeb?.ready ? AdapterState.Connected : AdapterState.Disconnect; + if (!window.tronWeb?.ready) { + this.checkForWalletReady(); + } + } else { + // no tronlink support + this._wallet = null; + address = null; + state = AdapterState.NotFound; + } + this.setAddress(address); + this.setState(state); + }; + + private setAddress(address: string | null) { + this._address = address; + } + + private setState(state: AdapterState) { + const preState = this.state; + if (state !== preState) { + this._state = state; + this.emit('stateChanged', state); + } + } +} diff --git a/packages/adapters/tokenpocket/src/index.ts b/packages/adapters/tokenpocket/src/index.ts new file mode 100644 index 0000000..c4929c4 --- /dev/null +++ b/packages/adapters/tokenpocket/src/index.ts @@ -0,0 +1,2 @@ +export * from './adapter.js'; +export * from './utils.js'; diff --git a/packages/adapters/tokenpocket/src/utils.ts b/packages/adapters/tokenpocket/src/utils.ts new file mode 100644 index 0000000..bfc1ed8 --- /dev/null +++ b/packages/adapters/tokenpocket/src/utils.ts @@ -0,0 +1,48 @@ +import { isInBrowser, isInMobileBrowser } from '@tronweb3/tronwallet-abstract-adapter'; + +export function supportTokenPocket() { + return !!window.tronWeb && typeof (window as any).tokenpocket !== 'undefined'; +} + +/** + * Detect if in TokenPocketApp + * There will be a `tokenpocket` object on window + */ +export function isInTokenPocket() { + return isInBrowser() && typeof (window as any).tokenpocket !== 'undefined'; +} + +export function openTokenPocket( + { dappIcon, dappName }: { dappIcon: string; dappName: string } = { dappIcon: '', dappName: '' } +) { + if (!supportTokenPocket() && isInMobileBrowser() && !isInTokenPocket()) { + let defaultDappName = '', + defaultDappIcon = ''; + try { + defaultDappName = document.title; + const link = document.querySelector('link[rel*="icon"]'); + if (link) { + defaultDappIcon = new URL(link.getAttribute('href') || '', location.href).toString(); + } + } catch (e) { + // console.error(e); + } + const { origin, pathname, search, hash } = window.location; + const url = origin + pathname + search + (hash.includes('?') ? hash : `${hash}?_=1`); + const params = { + action: 'open', + actionId: Date.now() + '', + callbackUrl: 'http://someurl.com', // no need callback + blockchain: 'Tron', + chain: 'Tron', + dappIcon: dappIcon || defaultDappIcon, + dappName: dappName || defaultDappName, + url, + protocol: 'TokenPocket', + version: '1.0', + }; + window.location.href = `tpdapp://open?params=${encodeURIComponent(JSON.stringify(params))}`; + return true; + } + return false; +} diff --git a/packages/adapters/tokenpocket/tests/units/adapter.test.ts b/packages/adapters/tokenpocket/tests/units/adapter.test.ts new file mode 100644 index 0000000..e1a9ebd --- /dev/null +++ b/packages/adapters/tokenpocket/tests/units/adapter.test.ts @@ -0,0 +1,11 @@ +import { TokenPocketAdapter } from '../../src/adapter.js'; + +describe('TokenPocketAdapter', () => { + test('should be defined', () => { + expect(TokenPocketAdapter).not.toBeNull(); + }); + test('#constructor() should work fine', () => { + const adapter = new TokenPocketAdapter(); + expect(adapter.name).toEqual('TokenPocket'); + }); +}); diff --git a/packages/adapters/tokenpocket/tsconfig.all.json b/packages/adapters/tokenpocket/tsconfig.all.json new file mode 100644 index 0000000..a1ded9c --- /dev/null +++ b/packages/adapters/tokenpocket/tsconfig.all.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../tsconfig.root.json", + "references": [ + { + "path": "../abstract-adapter/tsconfig.all.json" + }, + { + "path": "../tronlink/tsconfig.all.json" + }, + { + "path": "./tsconfig.cjs.json" + }, + { + "path": "./tsconfig.esm.json" + } + ] +} diff --git a/packages/adapters/tokenpocket/tsconfig.cjs.json b/packages/adapters/tokenpocket/tsconfig.cjs.json new file mode 100644 index 0000000..099b9aa --- /dev/null +++ b/packages/adapters/tokenpocket/tsconfig.cjs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../../tsconfig.cjs.json", + "include": ["src"], + "compilerOptions": { + "outDir": "lib/cjs" + } +} diff --git a/packages/adapters/tokenpocket/tsconfig.esm.json b/packages/adapters/tokenpocket/tsconfig.esm.json new file mode 100644 index 0000000..4900d2f --- /dev/null +++ b/packages/adapters/tokenpocket/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.esm.json", + "include": ["src"], + "compilerOptions": { + "outDir": "lib/esm", + "declarationDir": "lib/types" + } +} diff --git a/packages/adapters/tronlink/package.json b/packages/adapters/tronlink/package.json index ba38fea..b09f526 100644 --- a/packages/adapters/tronlink/package.json +++ b/packages/adapters/tronlink/package.json @@ -1,6 +1,6 @@ { "name": "@tronweb3/tronwallet-adapter-tronlink", - "version": "1.1.4", + "version": "1.1.5", "description": "Wallet adapter for TronLink Wallet extension and TronLink app.", "keywords": [ "TRON", @@ -42,7 +42,7 @@ "test:coverage": "jest --coverage" }, "dependencies": { - "@tronweb3/tronwallet-abstract-adapter": "^1.1.4" + "@tronweb3/tronwallet-abstract-adapter": "^1.1.5" }, "devDependencies": { "@testing-library/dom": "^8.20.0", diff --git a/packages/adapters/tronlink/src/adapter.ts b/packages/adapters/tronlink/src/adapter.ts index 3c203ef..292a56e 100644 --- a/packages/adapters/tronlink/src/adapter.ts +++ b/packages/adapters/tronlink/src/adapter.ts @@ -9,6 +9,7 @@ import { WalletConnectionError, WalletSignTransactionError, WalletSwitchChainError, + WalletGetNetworkError, isInMobileBrowser, NetworkType, } from '@tronweb3/tronwallet-abstract-adapter'; @@ -30,13 +31,12 @@ import type { TronWeb, } from './types.js'; import { openTronLink, supportTron, supportTronLink } from './utils.js'; -import { WalletGetNetworkError } from './error.js'; export interface TronLinkWallet { ready: boolean; tronWeb: TronWeb; request(config: Record): Promise; } -const chainIdNetworkMap: Record = { +export const chainIdNetworkMap: Record = { '0x2b6653dc': NetworkType.Mainnet, '0x94a9059e': NetworkType.Shasta, '0xcd8690dc': NetworkType.Nile, @@ -52,7 +52,7 @@ declare global { export interface TronLinkAdapterConfig extends BaseAdapterConfig { /** * Timeout in millisecond for checking if TronLink wallet exists. - * Default is 30 * 1000ms + * Default is 10 * 1000ms */ checkTimeout?: number; /** @@ -92,7 +92,7 @@ export class TronLinkAdapter extends Adapter { constructor(config: TronLinkAdapterConfig = {}) { super(); const { - checkTimeout = 30 * 1000, + checkTimeout = 10 * 1000, dappIcon = '', dappName = '', openUrlWhenWalletNotFound = true, @@ -113,6 +113,8 @@ export class TronLinkAdapter extends Adapter { this._address = null; if (!isInBrowser()) { + this._readyState = WalletReadyState.NotFound; + this.setState(AdapterState.NotFound); return; } if (supportTron() || (isInMobileBrowser() && (window.tronLink || window.tronWeb))) { @@ -454,11 +456,14 @@ export class TronLinkAdapter extends Adapter { * @returns if TronLink exists */ private _checkWallet(): Promise { + if (this.readyState === WalletReadyState.Found) { + return Promise.resolve(true); + } if (this._checkPromise) { return this._checkPromise; } const interval = 100; - const checkTronTimes = Math.floor(3000 / interval); + const checkTronTimes = Math.floor(2000 / interval); const maxTimes = Math.floor(this.config.checkTimeout / interval); let times = 0, timer: ReturnType; @@ -483,12 +488,20 @@ export class TronLinkAdapter extends Adapter { private _updateWallet = () => { let state = this.state; let address = this.address; - if (window.tron && window.tron.isTronLink) { + if (isInMobileBrowser()) { + this._wallet = { + ready: !!window.tronWeb?.defaultAddress, + tronWeb: window.tronWeb, + request: () => Promise.resolve(true) as any, + } as TronLinkWallet; + address = this._wallet.tronWeb.defaultAddress?.base58 || null; + state = window.tronWeb?.defaultAddress ? AdapterState.Connected : AdapterState.Disconnect; + } else if (window.tron && window.tron.isTronLink) { this._supportNewTronProtocol = true; this._supportTronLink = true; this._wallet = window.tron; this._listenTronEvent(); - address = (this._wallet.tronWeb && this._wallet.tronWeb.defaultAddress?.base58) || null; + address = (this._wallet.tronWeb && this._wallet.tronWeb?.defaultAddress?.base58) || null; state = address ? AdapterState.Connected : AdapterState.Disconnect; } else if (window.tronLink) { this._supportTronLink = true; @@ -504,17 +517,43 @@ export class TronLinkAdapter extends Adapter { request: () => Promise.resolve(true) as any, } as TronLinkWallet; address = this._wallet.tronWeb.defaultAddress?.base58 || null; - state = window.tronWeb.ready ? AdapterState.Connected : AdapterState.Disconnect; + state = this._wallet.ready ? AdapterState.Connected : AdapterState.Disconnect; } else { // no tronlink support this._wallet = null; address = null; state = AdapterState.NotFound; } + // In TronLink App, account should be connected + if (isInMobileBrowser() && state === AdapterState.Disconnect) { + this.checkForWalletReady(); + } this.setAddress(address); this.setState(state); }; + private checkReadyInterval: ReturnType | null = null; + private checkForWalletReady() { + if (this.checkReadyInterval) { + return; + } + let times = 0; + const maxTimes = Math.floor(this.config.checkTimeout / 200); + const check = () => { + if (window.tronWeb?.defaultAddress) { + this.checkReadyInterval && clearInterval(this.checkReadyInterval); + this.checkReadyInterval = null; + this._updateWallet(); + this.emit('connect', this.address || ''); + } else if (times > maxTimes) { + this.checkReadyInterval && clearInterval(this.checkReadyInterval); + this.checkReadyInterval = null; + } else { + times++; + } + }; + this.checkReadyInterval = setInterval(check, 200); + } private setAddress(address: string | null) { this._address = address; } diff --git a/packages/adapters/walletconnect/package.json b/packages/adapters/walletconnect/package.json index 6f5c021..e28bdf8 100644 --- a/packages/adapters/walletconnect/package.json +++ b/packages/adapters/walletconnect/package.json @@ -1,6 +1,6 @@ { "name": "@tronweb3/tronwallet-adapter-walletconnect", - "version": "1.0.2", + "version": "1.0.3", "description": "Wallet adapter for WalletConnect wallet.", "keywords": [ "TRON", @@ -40,7 +40,7 @@ "package": "shx echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json" }, "dependencies": { - "@tronweb3/tronwallet-abstract-adapter": "^1.1.4", + "@tronweb3/tronwallet-abstract-adapter": "^1.1.5", "@tronweb3/walletconnect-tron": "^1.0.0", "@walletconnect/sign-client": "^2.1.4", "@walletconnect/types": "^2.1.4" diff --git a/packages/react/react-hooks/package.json b/packages/react/react-hooks/package.json index 6aa8bc0..36b7ee0 100644 --- a/packages/react/react-hooks/package.json +++ b/packages/react/react-hooks/package.json @@ -1,6 +1,6 @@ { "name": "@tronweb3/tronwallet-adapter-react-hooks", - "version": "1.1.2", + "version": "1.1.3", "description": "A `useWallet()` hook to make it easy to interact with Tron wallets.", "keywords": [ "TRON", @@ -45,8 +45,8 @@ "react-dom": "*" }, "dependencies": { - "@tronweb3/tronwallet-abstract-adapter": "^1.1.4", - "@tronweb3/tronwallet-adapter-tronlink": "^1.1.4" + "@tronweb3/tronwallet-abstract-adapter": "^1.1.5", + "@tronweb3/tronwallet-adapter-tronlink": "^1.1.5" }, "devDependencies": { "@types/react": "^18.0.26", diff --git a/packages/react/react-ui/package.json b/packages/react/react-ui/package.json index 90b58c7..930beb3 100644 --- a/packages/react/react-ui/package.json +++ b/packages/react/react-ui/package.json @@ -1,6 +1,6 @@ { "name": "@tronweb3/tronwallet-adapter-react-ui", - "version": "1.1.3", + "version": "1.1.4", "description": "A set of out-of-the-box components to make it easy to interact with Tron wallets.", "keywords": [ "TRON", @@ -49,14 +49,14 @@ "react-dom": "*" }, "dependencies": { - "@tronweb3/tronwallet-abstract-adapter": "^1.1.4", - "@tronweb3/tronwallet-adapter-react-hooks": "^1.1.2" + "@tronweb3/tronwallet-abstract-adapter": "^1.1.5", + "@tronweb3/tronwallet-adapter-react-hooks": "^1.1.3" }, "devDependencies": { "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", - "@tronweb3/tronwallet-adapter-tronlink": "^1.1.4", + "@tronweb3/tronwallet-adapter-tronlink": "^1.1.5", "@types/jest": "^27.5.2", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 21d4177..1d6ceab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -69,9 +69,11 @@ importers: '@emotion/styled': ^11.10.4 '@mui/material': ^5.10.10 '@tronweb3/tronwallet-abstract-adapter': ^1.1.0 + '@tronweb3/tronwallet-adapter-bitkeep': ^1.0.0 '@tronweb3/tronwallet-adapter-ledger': ^1.1.2 '@tronweb3/tronwallet-adapter-react-hooks': ^1.0.0 '@tronweb3/tronwallet-adapter-react-ui': ^1.1.0 + '@tronweb3/tronwallet-adapter-tokenpocket': ^1.0.0 '@tronweb3/tronwallet-adapters': ^1.1.2 '@types/react': ^18.0.26 '@types/react-dom': ^18.0.8 @@ -80,7 +82,7 @@ importers: events: ^3.3.0 react: ^18.2.0 react-dom: ^18.2.0 - tronweb: ^4.4.0 + tronweb: '5.1' typescript: ^4.6.4 vconsole: ^3.15.0 vite: 3.2.3 @@ -89,14 +91,16 @@ importers: '@emotion/styled': 11.10.5_jrh5enlbqfbnumycmktdqgd6se '@mui/material': 5.11.8_rqh7qj4464ntrqrt6banhaqg4q '@tronweb3/tronwallet-abstract-adapter': link:../../packages/adapters/abstract-adapter + '@tronweb3/tronwallet-adapter-bitkeep': link:../../packages/adapters/bitkeep '@tronweb3/tronwallet-adapter-ledger': link:../../packages/adapters/ledger '@tronweb3/tronwallet-adapter-react-hooks': link:../../packages/react/react-hooks '@tronweb3/tronwallet-adapter-react-ui': link:../../packages/react/react-ui + '@tronweb3/tronwallet-adapter-tokenpocket': link:../../packages/adapters/tokenpocket '@tronweb3/tronwallet-adapters': link:../../packages/adapters/adapters events: 3.3.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - tronweb: 4.4.0 + tronweb: registry.npmjs.org/tronweb/5.1.0 vconsole: 3.15.0 devDependencies: '@types/react': 18.0.27 @@ -139,7 +143,7 @@ importers: tronweb: ^4.4.0 typescript: ^4.8.4 web-vitals: ^2.1.4 - webpack: ^5.75.0 + webpack: ^5.78.0 dependencies: '@mui/material': 5.11.8_5ndqzdd6t4rivxsukjv3i3ak2q '@testing-library/jest-dom': 5.16.5 @@ -172,7 +176,8 @@ importers: tronweb: 4.4.0 typescript: 4.9.5 web-vitals: 2.1.4 - webpack: 5.75.0 + devDependencies: + webpack: registry.npmjs.org/webpack/5.78.0 demos/react-ui/next-app: specifiers: @@ -180,9 +185,11 @@ importers: '@emotion/styled': ^11.10.4 '@mui/material': ^5.10.10 '@tronweb3/tronwallet-abstract-adapter': ^1.1.0 + '@tronweb3/tronwallet-adapter-bitkeep': ^1.0.0 '@tronweb3/tronwallet-adapter-ledger': ^1.1.1 '@tronweb3/tronwallet-adapter-react-hooks': ^1.0.0 '@tronweb3/tronwallet-adapter-react-ui': ^1.1.0 + '@tronweb3/tronwallet-adapter-tokenpocket': ^1.0.0 '@tronweb3/tronwallet-adapters': ^1.1.1 '@types/node': 18.11.9 '@types/react': 18.0.26 @@ -194,15 +201,18 @@ importers: react-dom: ^18.2.0 react-hot-toast: ^2.4.0 tronweb: ^4.4.0 + tslib: ^2.5.0 typescript: 4.9.3 dependencies: '@emotion/react': 11.10.5_kzbn2opkn2327fwg5yzwzya5o4 '@emotion/styled': 11.10.5_qvatmowesywn4ye42qoh247szu '@mui/material': 5.11.8_lskpmcsdi7ipu6qpuapyu56ihm '@tronweb3/tronwallet-abstract-adapter': link:../../../packages/adapters/abstract-adapter + '@tronweb3/tronwallet-adapter-bitkeep': link:../../../packages/adapters/bitkeep '@tronweb3/tronwallet-adapter-ledger': link:../../../packages/adapters/ledger '@tronweb3/tronwallet-adapter-react-hooks': link:../../../packages/react/react-hooks '@tronweb3/tronwallet-adapter-react-ui': link:../../../packages/react/react-ui + '@tronweb3/tronwallet-adapter-tokenpocket': link:../../../packages/adapters/tokenpocket '@tronweb3/tronwallet-adapters': link:../../../packages/adapters/adapters '@types/node': 18.11.9 '@types/react': 18.0.26 @@ -214,6 +224,7 @@ importers: react-dom: 18.2.0_react@18.2.0 react-hot-toast: 2.4.0_biqbaboplfbrettd7655fr4n2y tronweb: 4.4.0 + tslib: registry.npmjs.org/tslib/2.5.0 typescript: 4.9.3 demos/react-ui/vite-app: @@ -232,12 +243,14 @@ importers: '@vitejs/plugin-legacy': ^2.3.0 '@vitejs/plugin-react': ^2.1.0 buffer: ^6.0.3 + events: ^3.3.0 react: ^18.2.0 react-dom: ^18.2.0 react-hot-toast: ^2.4.0 rollup-plugin-polyfill-node: ^0.11.0 tronweb: ^4.4.0 typescript: ^4.6.4 + vconsole: ^3.15.0 vite: 3.1.0 dependencies: '@emotion/react': 11.10.5_3stiutgnnbnfnf3uowm5cip22i @@ -250,10 +263,12 @@ importers: '@tronweb3/tronwallet-adapter-walletconnect': link:../../../packages/adapters/walletconnect '@tronweb3/tronwallet-adapters': link:../../../packages/adapters/adapters buffer: 6.0.3 + events: registry.npmjs.org/events/3.3.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-hot-toast: 2.4.0_biqbaboplfbrettd7655fr4n2y tronweb: 4.4.0 + vconsole: registry.npmjs.org/vconsole/3.15.0 devDependencies: '@types/react': 18.0.27 '@types/react-dom': 18.0.10 @@ -276,17 +291,36 @@ importers: packages/adapters/adapters: specifiers: - '@tronweb3/tronwallet-adapter-ledger': ^1.1.5 - '@tronweb3/tronwallet-adapter-tronlink': ^1.1.4 - '@tronweb3/tronwallet-adapter-walletconnect': ^1.0.2 + '@tronweb3/tronwallet-adapter-bitkeep': ^1.0.0 + '@tronweb3/tronwallet-adapter-ledger': ^1.1.6 + '@tronweb3/tronwallet-adapter-tokenpocket': ^1.0.0 + '@tronweb3/tronwallet-adapter-tronlink': ^1.1.5 + '@tronweb3/tronwallet-adapter-walletconnect': ^1.0.3 shx: ^0.3.4 dependencies: + '@tronweb3/tronwallet-adapter-bitkeep': link:../bitkeep '@tronweb3/tronwallet-adapter-ledger': link:../ledger + '@tronweb3/tronwallet-adapter-tokenpocket': link:../tokenpocket '@tronweb3/tronwallet-adapter-tronlink': link:../tronlink '@tronweb3/tronwallet-adapter-walletconnect': link:../walletconnect devDependencies: shx: 0.3.4 + packages/adapters/bitkeep: + specifiers: + '@testing-library/dom': ^8.20.0 + '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 + '@tronweb3/tronwallet-adapter-tronlink': ^1.1.5 + jest-environment-jsdom: ^29.3.1 + shx: ^0.3.4 + dependencies: + '@tronweb3/tronwallet-abstract-adapter': link:../abstract-adapter + '@tronweb3/tronwallet-adapter-tronlink': link:../tronlink + devDependencies: + '@testing-library/dom': registry.npmjs.org/@testing-library/dom/8.20.0 + jest-environment-jsdom: registry.npmjs.org/jest-environment-jsdom/29.4.2 + shx: registry.npmjs.org/shx/0.3.4 + packages/adapters/ledger: specifiers: '@ledgerhq/hw-app-trx': ^6.27.8 @@ -310,10 +344,25 @@ importers: '@testing-library/dom': 8.20.0 shx: 0.3.4 + packages/adapters/tokenpocket: + specifiers: + '@testing-library/dom': ^8.20.0 + '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 + '@tronweb3/tronwallet-adapter-tronlink': ^1.1.5 + jest-environment-jsdom: ^29.3.1 + shx: ^0.3.4 + dependencies: + '@tronweb3/tronwallet-abstract-adapter': link:../abstract-adapter + '@tronweb3/tronwallet-adapter-tronlink': link:../tronlink + devDependencies: + '@testing-library/dom': registry.npmjs.org/@testing-library/dom/8.20.0 + jest-environment-jsdom: registry.npmjs.org/jest-environment-jsdom/29.4.2 + shx: registry.npmjs.org/shx/0.3.4 + packages/adapters/tronlink: specifiers: '@testing-library/dom': ^8.20.0 - '@tronweb3/tronwallet-abstract-adapter': ^1.1.4 + '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 jest-environment-jsdom: ^29.3.1 shx: ^0.3.4 dependencies: @@ -2466,24 +2515,6 @@ packages: resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} dev: false - /@esbuild/android-arm/0.15.18: - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64/0.15.18: - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@eslint/eslintrc/1.4.1: resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2834,7 +2865,7 @@ packages: dependencies: '@jest/types': 28.1.3 '@types/node': 16.18.12 - chalk: 4.1.2 + chalk: registry.npmjs.org/chalk/4.1.2 jest-message-util: 28.1.3 jest-util: 28.1.3 slash: 3.0.0 @@ -2943,10 +2974,10 @@ packages: resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 16.18.12 - jest-mock: 27.5.1 + '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/27.5.1 + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-mock: registry.npmjs.org/jest-mock/27.5.1 dev: false /@jest/environment/29.4.2: @@ -3040,7 +3071,7 @@ packages: collect-v8-coverage: 1.0.1 exit: 0.1.2 glob: 7.2.3 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 istanbul-lib-coverage: 3.2.0 istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.0 @@ -3115,7 +3146,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: callsites: 3.1.0 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 source-map: 0.6.1 dev: false @@ -3163,7 +3194,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/test-result': 27.5.1 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 jest-haste-map: 27.5.1 jest-runtime: 27.5.1 transitivePeerDependencies: @@ -3739,127 +3770,10 @@ packages: glob: 7.1.7 dev: false - /@next/swc-android-arm-eabi/13.0.5: - resolution: {integrity: sha512-YO691dxHlviy6H0eghgwqn+5kU9J3iQnKERHTDSppqjjGDBl6ab4wz9XfI5AhljjkaTg3TknHoIEWFDoZ4Ve8g==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-android-arm64/13.0.5: - resolution: {integrity: sha512-ugbwffkUmp8cd2afehDC8LtQeFUxElRUBBngfB5UYSWBx18HW4OgzkPFIY8jUBH16zifvGZWXbICXJWDHrOLtw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-arm64/13.0.5: - resolution: {integrity: sha512-mshlh8QOtOalfZbc17uNAftWgqHTKnrv6QUwBe+mpGz04eqsSUzVz1JGZEdIkmuDxOz00cK2NPoc+VHDXh99IQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-x64/13.0.5: - resolution: {integrity: sha512-SfigOKW4Z2UB3ruUPyvrlDIkcJq1hiw1wvYApWugD+tQsAkYZKEoz+/8emCmeYZ6Gwgi1WHV+z52Oj8u7bEHPg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-freebsd-x64/13.0.5: - resolution: {integrity: sha512-0NJg8HZr4yG8ynmMGFXQf+Mahvq4ZgBmUwSlLXXymgxEQgH17erH/LoR69uITtW+KTsALgk9axEt5AAabM4ucg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm-gnueabihf/13.0.5: - resolution: {integrity: sha512-Cye+h3oDT3NDWjACMlRaolL8fokpKie34FlPj9nfoW7bYKmoMBY1d4IO/GgBF+5xEl7HkH0Ny/qex63vQ0pN+A==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-gnu/13.0.5: - resolution: {integrity: sha512-5BfDS/VoRDR5QUGG9oedOCEZGmV2zxUVFYLUJVPMSMeIgqkjxWQBiG2BUHZI6/LGk9yvHmjx7BTvtBCLtRg6IQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-musl/13.0.5: - resolution: {integrity: sha512-xenvqlXz+KxVKAB1YR723gnVNszpsCvKZkiFFaAYqDGJ502YuqU2fwLsaSm/ASRizNcBYeo9HPLTyc3r/9cdMQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-gnu/13.0.5: - resolution: {integrity: sha512-9Ahi1bbdXwhrWQmOyoTod23/hhK05da/FzodiNqd6drrMl1y7+RujoEcU8Dtw3H1mGWB+yuTlWo8B4Iba8hqiQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-musl/13.0.5: - resolution: {integrity: sha512-V+1mnh49qmS9fOZxVRbzjhBEz9IUGJ7AQ80JPWAYQM5LI4TxfdiF4APLPvJ52rOmNeTqnVz1bbKtVOso+7EZ4w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-arm64-msvc/13.0.5: - resolution: {integrity: sha512-wRE9rkp7I+/3Jf2T9PFIJOKq3adMWYEFkPOA7XAkUfYbQHlDJm/U5cVCWUsKByyQq5RThwufI91sgd19MfxRxg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-ia32-msvc/13.0.5: - resolution: {integrity: sha512-Q1XQSLEhFuFhkKFdJIGt7cYQ4T3u6P5wrtUNreg5M+7P+fjSiC8+X+Vjcw+oebaacsdl0pWZlK+oACGafush1w==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-x64-msvc/13.0.5: - resolution: {integrity: sha512-t5gRblrwwiNZP6cT7NkxlgxrFgHWtv9ei5vUraCLgBqzvIsa7X+PnarZUeQCXqz6Jg9JSGGT9j8lvzD97UqeJQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@nicolo-ribaudo/eslint-scope-5-internals/5.1.1-v1: resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} dependencies: - eslint-scope: 5.1.1 + eslint-scope: registry.npmjs.org/eslint-scope/5.1.1 dev: false /@nodelib/fs.scandir/2.1.5: @@ -3889,10 +3803,10 @@ packages: open: 8.4.1 picocolors: 1.0.0 tiny-glob: 0.2.9 - tslib: 2.5.0 + tslib: registry.npmjs.org/tslib/2.5.0 dev: false - /@pmmmwh/react-refresh-webpack-plugin/0.5.10_unmakpayn7vcxadrrsbqlrpehy: + /@pmmmwh/react-refresh-webpack-plugin/0.5.10_kwexxzmt7sjpqjleraytwi4jvu: resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} engines: {node: '>= 10.13'} peerDependencies: @@ -3928,8 +3842,8 @@ packages: react-refresh: 0.11.0 schema-utils: 3.1.1 source-map: 0.7.4 - webpack: 5.75.0 - webpack-dev-server: 4.11.1_webpack@5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 + webpack-dev-server: 4.11.1_webpack@5.78.0 dev: false /@popperjs/core/2.11.6: @@ -3998,7 +3912,7 @@ packages: peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@types/estree': 0.0.39 + '@types/estree': registry.npmjs.org/@types/estree/0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 rollup: 2.79.1 @@ -4291,7 +4205,7 @@ packages: /@swc/helpers/0.4.14: resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} dependencies: - tslib: 2.5.0 + tslib: registry.npmjs.org/tslib/2.5.0 dev: false /@testing-library/dom/8.20.0: @@ -4354,11 +4268,6 @@ packages: dependencies: '@babel/runtime': 7.20.13 - /@tootallnate/once/1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - dev: false - /@tootallnate/once/2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -4452,13 +4361,6 @@ packages: '@types/node': 16.18.12 dev: false - /@types/eslint-scope/3.7.4: - resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} - dependencies: - '@types/eslint': 8.21.0 - '@types/estree': 0.0.51 - dev: false - /@types/eslint/8.21.0: resolution: {integrity: sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==} dependencies: @@ -4466,10 +4368,6 @@ packages: '@types/json-schema': 7.0.11 dev: false - /@types/estree/0.0.39: - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - dev: false - /@types/estree/0.0.51: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} dev: false @@ -4498,7 +4396,7 @@ packages: /@types/graceful-fs/4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 16.18.12 + '@types/node': registry.npmjs.org/@types/node/18.13.0 /@types/html-minifier-terser/6.1.0: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} @@ -4564,6 +4462,7 @@ packages: /@types/node/16.18.12: resolution: {integrity: sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw==} + dev: false /@types/node/18.11.9: resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} @@ -4874,7 +4773,7 @@ packages: '@typescript-eslint/types': 5.51.0 '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.5 eslint: 8.33.0 - eslint-scope: 5.1.1 + eslint-scope: registry.npmjs.org/eslint-scope/5.1.1 eslint-utils: 3.0.0_eslint@8.33.0 semver: 7.3.8 transitivePeerDependencies: @@ -5227,120 +5126,6 @@ packages: tslib: 1.14.1 dev: false - /@webassemblyjs/ast/1.11.1: - resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} - dependencies: - '@webassemblyjs/helper-numbers': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - dev: false - - /@webassemblyjs/floating-point-hex-parser/1.11.1: - resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} - dev: false - - /@webassemblyjs/helper-api-error/1.11.1: - resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} - dev: false - - /@webassemblyjs/helper-buffer/1.11.1: - resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} - dev: false - - /@webassemblyjs/helper-numbers/1.11.1: - resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@xtuc/long': 4.2.2 - dev: false - - /@webassemblyjs/helper-wasm-bytecode/1.11.1: - resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} - dev: false - - /@webassemblyjs/helper-wasm-section/1.11.1: - resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - dev: false - - /@webassemblyjs/ieee754/1.11.1: - resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} - dependencies: - '@xtuc/ieee754': 1.2.0 - dev: false - - /@webassemblyjs/leb128/1.11.1: - resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} - dependencies: - '@xtuc/long': 4.2.2 - dev: false - - /@webassemblyjs/utf8/1.11.1: - resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} - dev: false - - /@webassemblyjs/wasm-edit/1.11.1: - resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/helper-wasm-section': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-opt': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - '@webassemblyjs/wast-printer': 1.11.1 - dev: false - - /@webassemblyjs/wasm-gen/1.11.1: - resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 - dev: false - - /@webassemblyjs/wasm-opt/1.11.1: - resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - dev: false - - /@webassemblyjs/wasm-parser/1.11.1: - resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 - dev: false - - /@webassemblyjs/wast-printer/1.11.1: - resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@xtuc/long': 4.2.2 - dev: false - - /@xtuc/ieee754/1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - dev: false - - /@xtuc/long/4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - dev: false - /JSONStream/1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -5356,17 +5141,10 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} dependencies: - mime-types: 2.1.35 + mime-types: registry.npmjs.org/mime-types/2.1.35 negotiator: 0.6.3 dev: false - /acorn-globals/6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - dev: false - /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: @@ -5374,14 +5152,6 @@ packages: acorn-walk: 8.2.0 dev: true - /acorn-import-assertions/1.8.0_acorn@8.8.2: - resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} - peerDependencies: - acorn: ^8 - dependencies: - acorn: 8.8.2 - dev: false - /acorn-jsx/5.3.2_acorn@8.8.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -5392,7 +5162,7 @@ packages: /acorn-node/1.8.2: resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} dependencies: - acorn: 7.4.1 + acorn: registry.npmjs.org/acorn/7.4.1 acorn-walk: 7.2.0 xtend: 4.0.2 dev: false @@ -5406,12 +5176,6 @@ packages: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: false - /acorn/8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} @@ -5440,6 +5204,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /aggregate-error/3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -5552,7 +5317,7 @@ packages: engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 - picomatch: 2.3.1 + picomatch: registry.npmjs.org/picomatch/2.3.1 /arg/4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -5693,6 +5458,7 @@ packages: /asynckit/0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true /at-least-node/1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} @@ -5711,7 +5477,7 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 caniuse-lite: 1.0.30001451 fraction.js: 4.2.0 normalize-range: 0.1.2 @@ -5779,7 +5545,7 @@ packages: - supports-color dev: true - /babel-loader/8.3.0_la66t7xldg4uecmyawueag5wkm: + /babel-loader/8.3.0_ricsl3eq2klmpdpfimb5xusm5y: resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: @@ -5791,7 +5557,7 @@ packages: loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /babel-plugin-istanbul/6.1.1: @@ -6242,7 +6008,7 @@ packages: /caniuse-api/3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 caniuse-lite: 1.0.30001451 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -6324,12 +6090,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 - dev: false - - /chrome-trace-event/1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} + fsevents: registry.npmjs.org/fsevents/2.3.2 dev: false /ci-info/3.7.1: @@ -6437,7 +6198,7 @@ packages: engines: {node: '>= 4.0'} dependencies: '@types/q': 1.5.5 - chalk: 2.4.2 + chalk: registry.npmjs.org/chalk/2.4.2 q: 1.5.1 dev: false @@ -6473,6 +6234,7 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 + dev: true /commander/2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -6515,7 +6277,7 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.52.0 + mime-db: registry.npmjs.org/mime-db/1.52.0 dev: false /compression/1.7.4: @@ -6617,7 +6379,7 @@ packages: /core-js-compat/3.27.2: resolution: {integrity: sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==} dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 dev: false /core-js-pure/3.27.2: @@ -6779,7 +6541,7 @@ packages: postcss-selector-parser: 6.0.11 dev: false - /css-loader/6.7.3_webpack@5.75.0: + /css-loader/6.7.3_webpack@5.78.0: resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -6793,10 +6555,10 @@ packages: postcss-modules-values: 4.0.0_postcss@8.4.21 postcss-value-parser: 4.2.0 semver: 7.3.8 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false - /css-minimizer-webpack-plugin/3.4.1_webpack@5.75.0: + /css-minimizer-webpack-plugin/3.4.1_webpack@5.78.0: resolution: {integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -6821,7 +6583,7 @@ packages: schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /css-prefers-color-scheme/6.0.3_postcss@8.4.21: @@ -6964,10 +6726,7 @@ packages: /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: false + dev: true /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} @@ -6978,6 +6737,7 @@ packages: engines: {node: '>=8'} dependencies: cssom: 0.3.8 + dev: true /csstype/3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} @@ -7013,15 +6773,6 @@ packages: engines: {node: '>=8'} dev: true - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: false - /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -7096,6 +6847,7 @@ packages: /decimal.js/10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true /decode-uri-component/0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -7172,6 +6924,7 @@ packages: /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: true /depd/1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} @@ -7343,13 +7096,6 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: false - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: false - /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -7580,10 +7326,6 @@ packages: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - /es-module-lexer/0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - dev: false - /es-set-tostringtag/2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -7605,219 +7347,39 @@ packages: is-date-object: 1.0.5 is-symbol: 1.0.4 - /esbuild-android-64/0.15.18: - resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} + /esbuild/0.15.18: + resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} engines: {node: '>=12'} - cpu: [x64] - os: [android] + hasBin: true requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmjs.org/@esbuild/android-arm/0.15.18 + '@esbuild/linux-loong64': registry.npmjs.org/@esbuild/linux-loong64/0.15.18 + esbuild-android-64: registry.npmjs.org/esbuild-android-64/0.15.18 + esbuild-android-arm64: registry.npmjs.org/esbuild-android-arm64/0.15.18 + esbuild-darwin-64: registry.npmjs.org/esbuild-darwin-64/0.15.18 + esbuild-darwin-arm64: registry.npmjs.org/esbuild-darwin-arm64/0.15.18 + esbuild-freebsd-64: registry.npmjs.org/esbuild-freebsd-64/0.15.18 + esbuild-freebsd-arm64: registry.npmjs.org/esbuild-freebsd-arm64/0.15.18 + esbuild-linux-32: registry.npmjs.org/esbuild-linux-32/0.15.18 + esbuild-linux-64: registry.npmjs.org/esbuild-linux-64/0.15.18 + esbuild-linux-arm: registry.npmjs.org/esbuild-linux-arm/0.15.18 + esbuild-linux-arm64: registry.npmjs.org/esbuild-linux-arm64/0.15.18 + esbuild-linux-mips64le: registry.npmjs.org/esbuild-linux-mips64le/0.15.18 + esbuild-linux-ppc64le: registry.npmjs.org/esbuild-linux-ppc64le/0.15.18 + esbuild-linux-riscv64: registry.npmjs.org/esbuild-linux-riscv64/0.15.18 + esbuild-linux-s390x: registry.npmjs.org/esbuild-linux-s390x/0.15.18 + esbuild-netbsd-64: registry.npmjs.org/esbuild-netbsd-64/0.15.18 + esbuild-openbsd-64: registry.npmjs.org/esbuild-openbsd-64/0.15.18 + esbuild-sunos-64: registry.npmjs.org/esbuild-sunos-64/0.15.18 + esbuild-windows-32: registry.npmjs.org/esbuild-windows-32/0.15.18 + esbuild-windows-64: registry.npmjs.org/esbuild-windows-64/0.15.18 + esbuild-windows-arm64: registry.npmjs.org/esbuild-windows-arm64/0.15.18 dev: true - optional: true - /esbuild-android-arm64/0.15.18: - resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.15.18: - resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.15.18: - resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.15.18: - resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.18: - resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.18: - resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.18: - resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.18: - resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.18: - resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.18: - resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.15.18: - resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.15.18: - resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.15.18: - resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.15.18: - resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.15.18: - resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64/0.15.18: - resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.15.18: - resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.15.18: - resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.15.18: - resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.15.18: - resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.18 - '@esbuild/linux-loong64': 0.15.18 - esbuild-android-64: 0.15.18 - esbuild-android-arm64: 0.15.18 - esbuild-darwin-64: 0.15.18 - esbuild-darwin-arm64: 0.15.18 - esbuild-freebsd-64: 0.15.18 - esbuild-freebsd-arm64: 0.15.18 - esbuild-linux-32: 0.15.18 - esbuild-linux-64: 0.15.18 - esbuild-linux-arm: 0.15.18 - esbuild-linux-arm64: 0.15.18 - esbuild-linux-mips64le: 0.15.18 - esbuild-linux-ppc64le: 0.15.18 - esbuild-linux-riscv64: 0.15.18 - esbuild-linux-s390x: 0.15.18 - esbuild-netbsd-64: 0.15.18 - esbuild-openbsd-64: 0.15.18 - esbuild-sunos-64: 0.15.18 - esbuild-windows-32: 0.15.18 - esbuild-windows-64: 0.15.18 - esbuild-windows-arm64: 0.15.18 - dev: true - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} /escape-html/1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -7845,7 +7407,8 @@ packages: esutils: 2.0.3 optionator: 0.8.3 optionalDependencies: - source-map: 0.6.1 + source-map: registry.npmjs.org/source-map/0.6.1 + dev: true /eslint-config-next/13.0.5_zmyfsul77535b2d7nzuoiqkehy: resolution: {integrity: sha512-lge94W7ME6kNCO96eCykq5GbKbllzmcDNDhh1/llMCRgNPl0+GIQ8dOoM0I7uRQVW56VmTXFybJFXgow11a5pg==} @@ -8201,13 +7764,6 @@ packages: - typescript dev: false - /eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - /eslint-scope/7.1.1: resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8232,7 +7788,7 @@ packages: resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint-webpack-plugin/3.2.0_nkwuvqep7k7zzhloz3wxbhr4hq: + /eslint-webpack-plugin/3.2.0_wrarxwq24go2av5kukilgyoyye: resolution: {integrity: sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -8245,7 +7801,7 @@ packages: micromatch: 4.0.5 normalize-path: 3.0.0 schema-utils: 4.0.0 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /eslint/8.33.0: @@ -8320,10 +7876,6 @@ packages: dependencies: estraverse: 5.3.0 - /estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - /estraverse/5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -8558,7 +8110,7 @@ packages: dependencies: flat-cache: 3.0.4 - /file-loader/6.2.0_webpack@5.75.0: + /file-loader/6.2.0_webpack@5.78.0: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8566,13 +8118,13 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.1.1 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /filelist/1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: - minimatch: 5.1.6 + minimatch: registry.npmjs.org/minimatch/5.1.6 dev: false /filename-reserved-regex/2.0.0: @@ -8689,7 +8241,7 @@ packages: dependencies: is-callable: 1.2.7 - /fork-ts-checker-webpack-plugin/6.5.2_5nsnk2aswgmt3bqwilhpeaeih4: + /fork-ts-checker-webpack-plugin/6.5.2_eqv7fpzrdfhyukx4iagl5sxiim: resolution: {integrity: sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -8714,20 +8266,11 @@ packages: glob: 7.2.3 memfs: 3.4.13 minimatch: 3.1.2 - schema-utils: 2.7.0 + schema-utils: registry.npmjs.org/schema-utils/2.7.0 semver: 7.3.8 - tapable: 1.1.3 + tapable: registry.npmjs.org/tapable/1.1.3 typescript: 4.9.5 - webpack: 5.75.0 - dev: false - - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /form-data/4.0.0: @@ -8794,7 +8337,7 @@ packages: engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 dev: false @@ -8806,13 +8349,6 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} @@ -8908,10 +8444,6 @@ packages: dependencies: is-glob: 4.0.3 - /glob-to-regexp/0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - dev: false - /glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: @@ -9155,13 +8687,6 @@ packages: wbuf: 1.7.3 dev: false - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - dev: false - /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -9190,7 +8715,7 @@ packages: terser: 5.16.3 dev: false - /html-webpack-plugin/5.5.0_webpack@5.75.0: + /html-webpack-plugin/5.5.0_webpack@5.78.0: resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} engines: {node: '>=10.13.0'} peerDependencies: @@ -9201,7 +8726,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /htmlparser2/6.1.0: @@ -9242,17 +8767,6 @@ packages: resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} dev: false - /http-proxy-agent/4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - /http-proxy-agent/5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -9306,6 +8820,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true /human-id/1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -9579,6 +9094,7 @@ packages: /is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true /is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -9742,7 +9258,7 @@ packages: hasBin: true dependencies: async: 3.2.4 - chalk: 4.1.2 + chalk: registry.npmjs.org/chalk/4.1.2 filelist: 1.0.4 minimatch: 3.1.2 dev: false @@ -9768,22 +9284,22 @@ packages: resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': 27.5.1 + '@jest/environment': registry.npmjs.org/@jest/environment/27.5.1 '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 16.18.12 - chalk: 4.1.2 + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + chalk: registry.npmjs.org/chalk/4.1.2 co: 4.6.0 dedent: 0.7.0 expect: 27.5.1 is-generator-fn: 2.1.0 jest-each: 27.5.1 jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 + jest-message-util: registry.npmjs.org/jest-message-util/27.5.1 jest-runtime: 27.5.1 jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 + jest-util: registry.npmjs.org/jest-util/27.5.1 + pretty-format: registry.npmjs.org/pretty-format/27.5.1 slash: 3.0.0 stack-utils: 2.0.6 throat: 6.0.2 @@ -9921,9 +9437,9 @@ packages: ci-info: 3.7.1 deepmerge: 4.3.0 glob: 7.2.3 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 jest-circus: 27.5.1 - jest-environment-jsdom: 27.5.1 + jest-environment-jsdom: registry.npmjs.org/jest-environment-jsdom/27.5.1 jest-environment-node: 27.5.1 jest-get-type: 27.5.1 jest-jasmine2: 27.5.1 @@ -10058,11 +9574,11 @@ packages: resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + chalk: registry.npmjs.org/chalk/4.1.2 jest-get-type: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 + jest-util: registry.npmjs.org/jest-util/27.5.1 + pretty-format: registry.npmjs.org/pretty-format/27.5.1 dev: false /jest-each/29.4.2: @@ -10070,30 +9586,12 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.2 - chalk: 4.1.2 + chalk: registry.npmjs.org/chalk/4.1.2 jest-get-type: 29.4.2 jest-util: 29.4.2 - pretty-format: 29.4.2 + pretty-format: registry.npmjs.org/pretty-format/29.4.2 dev: true - /jest-environment-jsdom/27.5.1: - resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 16.18.12 - jest-mock: 27.5.1 - jest-util: 27.5.1 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: false - /jest-environment-jsdom/29.4.2: resolution: {integrity: sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10121,12 +9619,12 @@ packages: resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 16.18.12 - jest-mock: 27.5.1 - jest-util: 27.5.1 + '@jest/environment': registry.npmjs.org/@jest/environment/27.5.1 + '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/27.5.1 + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-mock: registry.npmjs.org/jest-mock/27.5.1 + jest-util: registry.npmjs.org/jest-util/27.5.1 dev: false /jest-environment-node/29.4.2: @@ -10167,7 +9665,7 @@ packages: micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmjs.org/fsevents/2.3.2 dev: false /jest-haste-map/29.4.2: @@ -10186,29 +9684,29 @@ packages: micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmjs.org/fsevents/2.3.2 dev: true /jest-jasmine2/27.5.1: resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': 27.5.1 + '@jest/environment': registry.npmjs.org/@jest/environment/27.5.1 '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 16.18.12 - chalk: 4.1.2 + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + chalk: registry.npmjs.org/chalk/4.1.2 co: 4.6.0 expect: 27.5.1 is-generator-fn: 2.1.0 jest-each: 27.5.1 jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 + jest-message-util: registry.npmjs.org/jest-message-util/27.5.1 jest-runtime: 27.5.1 jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 + jest-util: registry.npmjs.org/jest-util/27.5.1 + pretty-format: registry.npmjs.org/pretty-format/27.5.1 throat: 6.0.2 transitivePeerDependencies: - supports-color @@ -10219,7 +9717,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: jest-get-type: 27.5.1 - pretty-format: 27.5.1 + pretty-format: registry.npmjs.org/pretty-format/27.5.1 dev: false /jest-leak-detector/29.4.2: @@ -10262,7 +9760,7 @@ packages: '@jest/types': 27.5.1 '@types/stack-utils': 2.0.1 chalk: 4.1.2 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 micromatch: 4.0.5 pretty-format: 27.5.1 slash: 3.0.0 @@ -10273,15 +9771,15 @@ packages: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 28.1.3 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 28.1.3 - slash: 3.0.0 - stack-utils: 2.0.6 + '@babel/code-frame': registry.npmjs.org/@babel/code-frame/7.18.6 + '@jest/types': registry.npmjs.org/@jest/types/28.1.3 + '@types/stack-utils': registry.npmjs.org/@types/stack-utils/2.0.1 + chalk: registry.npmjs.org/chalk/4.1.2 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + micromatch: registry.npmjs.org/micromatch/4.0.5 + pretty-format: registry.npmjs.org/pretty-format/28.1.3 + slash: registry.npmjs.org/slash/3.0.0 + stack-utils: registry.npmjs.org/stack-utils/2.0.6 dev: false /jest-message-util/29.4.2: @@ -10419,9 +9917,9 @@ packages: '@types/node': 16.18.12 chalk: 4.1.2 emittery: 0.8.1 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 jest-docblock: 27.5.1 - jest-environment-jsdom: 27.5.1 + jest-environment-jsdom: registry.npmjs.org/jest-environment-jsdom/27.5.1 jest-environment-node: 27.5.1 jest-haste-map: 27.5.1 jest-leak-detector: 27.5.1 @@ -10484,7 +9982,7 @@ packages: collect-v8-coverage: 1.0.1 execa: 5.1.1 glob: 7.2.3 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 jest-haste-map: 27.5.1 jest-message-util: 27.5.1 jest-mock: 27.5.1 @@ -10533,8 +10031,8 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 16.18.12 - graceful-fs: 4.2.10 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 dev: false /jest-snapshot/27.5.1: @@ -10553,7 +10051,7 @@ packages: babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 chalk: 4.1.2 expect: 27.5.1 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 jest-diff: 27.5.1 jest-get-type: 27.5.1 jest-haste-map: 27.5.1 @@ -10619,7 +10117,7 @@ packages: '@types/node': 16.18.12 chalk: 4.1.2 ci-info: 3.7.1 - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 picomatch: 2.3.1 dev: false @@ -10836,9 +10334,9 @@ packages: dependencies: argparse: 2.0.1 - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} + /jsdom/20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -10847,63 +10345,21 @@ packages: dependencies: abab: 2.0.6 acorn: 8.8.2 - acorn-globals: 6.0.0 - cssom: 0.4.4 + acorn-globals: 7.0.1 + cssom: 0.5.0 cssstyle: 2.3.0 - data-urls: 2.0.0 + data-urls: 3.0.2 decimal.js: 10.4.3 - domexception: 2.0.1 + domexception: 4.0.0 escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.2 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.1.2 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.5.9 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /jsdom/20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.2 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.4.3 - domexception: 4.0.0 - escodegen: 2.0.0 - form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 - parse5: 7.1.2 - saxes: 6.0.0 + parse5: 7.1.2 + saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.2 w3c-xmlserializer: 4.0.0 @@ -10929,9 +10385,6 @@ packages: engines: {node: '>=4'} hasBin: true - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -10964,7 +10417,7 @@ packages: /jsonfile/4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 dev: true /jsonfile/6.1.0: @@ -10972,7 +10425,7 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 /jsonparse/1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} @@ -11033,6 +10486,7 @@ packages: dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 + dev: true /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -11100,11 +10554,6 @@ packages: strip-bom: 3.0.0 dev: true - /loader-runner/4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - dev: false - /loader-utils/2.0.4: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} @@ -11403,12 +10852,14 @@ packages: /mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + dev: true /mime-types/2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true /mime/1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} @@ -11429,14 +10880,14 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - /mini-css-extract-plugin/2.7.2_webpack@5.75.0: + /mini-css-extract-plugin/2.7.2_webpack@5.78.0: resolution: {integrity: sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /minimalistic-assert/1.0.1: @@ -11462,6 +10913,7 @@ packages: engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: true /minimist-options/4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} @@ -11594,19 +11046,19 @@ packages: react-dom: 18.2.0_react@18.2.0 styled-jsx: 5.1.0_react@18.2.0 optionalDependencies: - '@next/swc-android-arm-eabi': 13.0.5 - '@next/swc-android-arm64': 13.0.5 - '@next/swc-darwin-arm64': 13.0.5 - '@next/swc-darwin-x64': 13.0.5 - '@next/swc-freebsd-x64': 13.0.5 - '@next/swc-linux-arm-gnueabihf': 13.0.5 - '@next/swc-linux-arm64-gnu': 13.0.5 - '@next/swc-linux-arm64-musl': 13.0.5 - '@next/swc-linux-x64-gnu': 13.0.5 - '@next/swc-linux-x64-musl': 13.0.5 - '@next/swc-win32-arm64-msvc': 13.0.5 - '@next/swc-win32-ia32-msvc': 13.0.5 - '@next/swc-win32-x64-msvc': 13.0.5 + '@next/swc-android-arm-eabi': registry.npmjs.org/@next/swc-android-arm-eabi/13.0.5 + '@next/swc-android-arm64': registry.npmjs.org/@next/swc-android-arm64/13.0.5 + '@next/swc-darwin-arm64': registry.npmjs.org/@next/swc-darwin-arm64/13.0.5 + '@next/swc-darwin-x64': registry.npmjs.org/@next/swc-darwin-x64/13.0.5 + '@next/swc-freebsd-x64': registry.npmjs.org/@next/swc-freebsd-x64/13.0.5 + '@next/swc-linux-arm-gnueabihf': registry.npmjs.org/@next/swc-linux-arm-gnueabihf/13.0.5 + '@next/swc-linux-arm64-gnu': registry.npmjs.org/@next/swc-linux-arm64-gnu/13.0.5 + '@next/swc-linux-arm64-musl': registry.npmjs.org/@next/swc-linux-arm64-musl/13.0.5 + '@next/swc-linux-x64-gnu': registry.npmjs.org/@next/swc-linux-x64-gnu/13.0.5 + '@next/swc-linux-x64-musl': registry.npmjs.org/@next/swc-linux-x64-musl/13.0.5 + '@next/swc-win32-arm64-msvc': registry.npmjs.org/@next/swc-win32-arm64-msvc/13.0.5 + '@next/swc-win32-ia32-msvc': registry.npmjs.org/@next/swc-win32-ia32-msvc/13.0.5 + '@next/swc-win32-x64-msvc': registry.npmjs.org/@next/swc-win32-x64-msvc/13.0.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -11690,6 +11142,7 @@ packages: /nwsapi/2.2.2: resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + dev: true /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -11820,6 +11273,7 @@ packages: prelude-ls: 1.1.2 type-check: 0.3.2 word-wrap: 1.2.3 + dev: true /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} @@ -11936,13 +11390,9 @@ packages: dependencies: '@babel/code-frame': 7.18.6 error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 + json-parse-even-better-errors: registry.npmjs.org/json-parse-even-better-errors/2.3.1 lines-and-columns: 1.2.4 - /parse5/6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: false - /parse5/7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: @@ -12188,7 +11638,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.21 @@ -12201,7 +11651,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false @@ -12416,7 +11866,7 @@ packages: yaml: 1.10.2 dev: false - /postcss-loader/6.2.1_6jdsrmfenkuhhw3gx4zvjlznce: + /postcss-loader/6.2.1_2izhiogyhzv3k6gmxpzxzwhblu: resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -12427,7 +11877,7 @@ packages: klona: 2.0.6 postcss: 8.4.21 semver: 7.3.8 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /postcss-logical/5.0.4_postcss@8.4.21: @@ -12465,7 +11915,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 caniuse-api: 3.0.0 cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 @@ -12500,7 +11950,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 postcss-value-parser: 4.2.0 @@ -12643,7 +12093,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false @@ -12805,7 +12255,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 caniuse-api: 3.0.0 postcss: 8.4.21 dev: false @@ -12917,6 +12367,7 @@ packages: /prelude-ls/1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} + dev: true /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -12955,16 +12406,6 @@ packages: ansi-styles: 5.2.0 react-is: 17.0.2 - /pretty-format/28.1.3: - resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - dependencies: - '@jest/schemas': 28.1.3 - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: false - /pretty-format/29.4.2: resolution: {integrity: sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -13021,6 +12462,7 @@ packages: /psl/1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true /public-encrypt/4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} @@ -13080,6 +12522,7 @@ packages: /querystringify/2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -13154,7 +12597,7 @@ packages: semver: 5.7.1 dev: false - /react-dev-utils/12.0.1_5nsnk2aswgmt3bqwilhpeaeih4: + /react-dev-utils/12.0.1_eqv7fpzrdfhyukx4iagl5sxiim: resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -13173,7 +12616,7 @@ packages: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.2_5nsnk2aswgmt3bqwilhpeaeih4 + fork-ts-checker-webpack-plugin: 6.5.2_eqv7fpzrdfhyukx4iagl5sxiim global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -13189,7 +12632,7 @@ packages: strip-ansi: 6.0.1 text-table: 0.2.0 typescript: 4.9.5 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 transitivePeerDependencies: - eslint - supports-color @@ -13254,56 +12697,56 @@ packages: optional: true dependencies: '@babel/core': 7.20.12 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_unmakpayn7vcxadrrsbqlrpehy + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_kwexxzmt7sjpqjleraytwi4jvu '@svgr/webpack': 5.5.0 babel-jest: 27.5.1_@babel+core@7.20.12 - babel-loader: 8.3.0_la66t7xldg4uecmyawueag5wkm + babel-loader: 8.3.0_ricsl3eq2klmpdpfimb5xusm5y babel-plugin-named-asset-import: 0.3.8_@babel+core@7.20.12 babel-preset-react-app: 10.0.1 bfj: 7.0.2 browserslist: 4.21.5 camelcase: 6.3.0 case-sensitive-paths-webpack-plugin: 2.4.0 - css-loader: 6.7.3_webpack@5.75.0 - css-minimizer-webpack-plugin: 3.4.1_webpack@5.75.0 + css-loader: 6.7.3_webpack@5.78.0 + css-minimizer-webpack-plugin: 3.4.1_webpack@5.78.0 dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 8.33.0 eslint-config-react-app: 7.0.1_6iwopyuv7xg3y3j23xjlstyxr4 - eslint-webpack-plugin: 3.2.0_nkwuvqep7k7zzhloz3wxbhr4hq - file-loader: 6.2.0_webpack@5.75.0 + eslint-webpack-plugin: 3.2.0_wrarxwq24go2av5kukilgyoyye + file-loader: 6.2.0_webpack@5.78.0 fs-extra: 10.1.0 - html-webpack-plugin: 5.5.0_webpack@5.75.0 + html-webpack-plugin: 5.5.0_webpack@5.78.0 identity-obj-proxy: 3.0.0 jest: 27.5.1 jest-resolve: 27.5.1 jest-watch-typeahead: 1.1.0_jest@27.5.1 - mini-css-extract-plugin: 2.7.2_webpack@5.75.0 + mini-css-extract-plugin: 2.7.2_webpack@5.78.0 postcss: 8.4.21 postcss-flexbugs-fixes: 5.0.2_postcss@8.4.21 - postcss-loader: 6.2.1_6jdsrmfenkuhhw3gx4zvjlznce + postcss-loader: 6.2.1_2izhiogyhzv3k6gmxpzxzwhblu postcss-normalize: 10.0.1_jrpp4geoaqu5dz2gragkckznb4 postcss-preset-env: 7.8.3_postcss@8.4.21 prompts: 2.4.2 react: 18.2.0 react-app-polyfill: 3.0.0 - react-dev-utils: 12.0.1_5nsnk2aswgmt3bqwilhpeaeih4 + react-dev-utils: 12.0.1_eqv7fpzrdfhyukx4iagl5sxiim react-refresh: 0.11.0 resolve: 1.22.1 resolve-url-loader: 4.0.0 - sass-loader: 12.6.0_webpack@5.75.0 + sass-loader: 12.6.0_webpack@5.78.0 semver: 7.3.8 - source-map-loader: 3.0.2_webpack@5.75.0 - style-loader: 3.3.1_webpack@5.75.0 + source-map-loader: 3.0.2_webpack@5.78.0 + style-loader: 3.3.1_webpack@5.78.0 tailwindcss: 3.2.6 - terser-webpack-plugin: 5.3.6_webpack@5.75.0 + terser-webpack-plugin: 5.3.6_webpack@5.78.0 typescript: 4.9.5 - webpack: 5.75.0 - webpack-dev-server: 4.11.1_webpack@5.75.0 - webpack-manifest-plugin: 4.1.1_webpack@5.75.0 - workbox-webpack-plugin: 6.5.4_webpack@5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 + webpack-dev-server: 4.11.1_webpack@5.78.0 + webpack-manifest-plugin: 4.1.1_webpack@5.78.0 + workbox-webpack-plugin: 6.5.4_webpack@5.78.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmjs.org/fsevents/2.3.2 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' @@ -13417,7 +12860,7 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: 2.3.1 + picomatch: registry.npmjs.org/picomatch/2.3.1 dev: false /real-require/0.1.0: @@ -13463,7 +12906,7 @@ packages: /regenerator-transform/0.15.1: resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} dependencies: - '@babel/runtime': 7.20.13 + '@babel/runtime': registry.npmjs.org/@babel/runtime/7.20.13 dev: false /regex-parser/2.2.11: @@ -13656,7 +13099,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmjs.org/fsevents/2.3.2 dev: true /rollup/2.79.1: @@ -13664,7 +13107,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmjs.org/fsevents/2.3.2 /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -13714,7 +13157,7 @@ packages: resolution: {integrity: sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==} dev: false - /sass-loader/12.6.0_webpack@5.75.0: + /sass-loader/12.6.0_webpack@5.78.0: resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -13735,20 +13178,13 @@ packages: dependencies: klona: 2.0.6 neo-async: 2.6.2 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /sax/1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: false - /saxes/5.0.1: - resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} - engines: {node: '>=10'} - dependencies: - xmlchars: 2.2.0 - dev: false - /saxes/6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -13761,15 +13197,6 @@ packages: dependencies: loose-envify: 1.4.0 - /schema-utils/2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} - dependencies: - '@types/json-schema': 7.0.11 - ajv: 6.12.6 - ajv-keywords: 3.5.2_ajv@6.12.6 - dev: false - /schema-utils/2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} engines: {node: '>= 8.9.0'} @@ -13875,7 +13302,7 @@ packages: debug: 2.6.9 escape-html: 1.0.3 http-errors: 1.6.3 - mime-types: 2.1.35 + mime-types: registry.npmjs.org/mime-types/2.1.35 parseurl: 1.3.3 transitivePeerDependencies: - supports-color @@ -14048,7 +13475,7 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - /source-map-loader/3.0.2_webpack@5.75.0: + /source-map-loader/3.0.2_webpack@5.78.0: resolution: {integrity: sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -14057,7 +13484,7 @@ packages: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.0.2 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /source-map-support/0.5.13: @@ -14389,13 +13816,13 @@ packages: escape-string-regexp: 1.0.5 dev: true - /style-loader/3.3.1_webpack@5.75.0: + /style-loader/3.3.1_webpack@5.78.0: resolution: {integrity: sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /styled-jsx/5.1.0_react@18.2.0: @@ -14421,7 +13848,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist/4.21.5 postcss: 8.4.21 postcss-selector-parser: 6.0.11 dev: false @@ -14501,13 +13928,14 @@ packages: /symbol-tree/3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true /synckit/0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.3.1 - tslib: 2.5.0 + tslib: registry.npmjs.org/tslib/2.5.0 dev: false /systemjs/6.13.0: @@ -14546,11 +13974,6 @@ packages: - ts-node dev: false - /tapable/1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: false - /tapable/2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -14584,7 +14007,7 @@ packages: supports-hyperlinks: 2.3.0 dev: false - /terser-webpack-plugin/5.3.6_webpack@5.75.0: + /terser-webpack-plugin/5.3.6_webpack@5.78.0: resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -14605,7 +14028,7 @@ packages: schema-utils: 3.1.1 serialize-javascript: 6.0.1 terser: 5.16.3 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false /terser/5.16.3: @@ -14614,7 +14037,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: 8.8.2 + acorn: registry.npmjs.org/acorn/8.8.2 commander: 2.20.3 source-map-support: 0.5.21 dev: false @@ -14703,6 +14126,7 @@ packages: punycode: 2.3.0 universalify: 0.2.0 url-parse: 1.5.10 + dev: true /tr46/1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -14710,13 +14134,6 @@ packages: punycode: 2.3.0 dev: false - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.3.0 - dev: false - /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -14872,7 +14289,7 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: - tslib: 1.14.1 + tslib: registry.npmjs.org/tslib/1.14.1 typescript: 4.9.3 dev: false @@ -14904,6 +14321,7 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 + dev: true /type-check/0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -14953,7 +14371,7 @@ packages: engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 - mime-types: 2.1.35 + mime-types: registry.npmjs.org/mime-types/2.1.35 dev: false /typed-array-length/1.0.4: @@ -15046,6 +14464,7 @@ packages: /universalify/0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} + dev: true /universalify/2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} @@ -15085,6 +14504,7 @@ packages: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -15182,7 +14602,7 @@ packages: resolve: 1.22.1 rollup: 2.78.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmjs.org/fsevents/2.3.2 dev: true /vite/3.2.3: @@ -15215,7 +14635,7 @@ packages: resolve: 1.22.1 rollup: 2.79.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmjs.org/fsevents/2.3.2 dev: true /vscode-oniguruma/1.7.0: @@ -15233,13 +14653,6 @@ packages: browser-process-hrtime: 1.0.0 dev: false - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: false - /w3c-xmlserializer/4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -15252,14 +14665,6 @@ packages: dependencies: makeerror: 1.0.12 - /watchpack/2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.10 - dev: false - /wbuf/1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} dependencies: @@ -15280,22 +14685,12 @@ packages: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: false - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - dev: false - - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: false - /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} dev: true - /webpack-dev-middleware/5.3.3_webpack@5.75.0: + /webpack-dev-middleware/5.3.3_webpack@5.78.0: resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -15303,13 +14698,13 @@ packages: dependencies: colorette: 2.0.19 memfs: 3.4.13 - mime-types: 2.1.35 + mime-types: registry.npmjs.org/mime-types/2.1.35 range-parser: 1.2.1 - schema-utils: 4.0.0 - webpack: 5.75.0 + schema-utils: registry.npmjs.org/schema-utils/4.0.0 + webpack: registry.npmjs.org/webpack/5.78.0 dev: false - /webpack-dev-server/4.11.1_webpack@5.75.0: + /webpack-dev-server/4.11.1_webpack@5.78.0: resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} engines: {node: '>= 12.13.0'} hasBin: true @@ -15347,8 +14742,8 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.75.0 - webpack-dev-middleware: 5.3.3_webpack@5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 + webpack-dev-middleware: 5.3.3_webpack@5.78.0 ws: 8.12.0 transitivePeerDependencies: - bufferutil @@ -15357,14 +14752,14 @@ packages: - utf-8-validate dev: false - /webpack-manifest-plugin/4.1.1_webpack@5.75.0: + /webpack-manifest-plugin/4.1.1_webpack@5.78.0: resolution: {integrity: sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==} engines: {node: '>=12.22.0'} peerDependencies: webpack: ^4.44.2 || ^5.47.0 dependencies: tapable: 2.2.1 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 webpack-sources: 2.3.1 dev: false @@ -15383,51 +14778,6 @@ packages: source-map: 0.6.1 dev: false - /webpack-sources/3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - dev: false - - /webpack/5.75.0: - resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - dependencies: - '@types/eslint-scope': 3.7.4 - '@types/estree': 0.0.51 - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/wasm-edit': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.8.2 - acorn-import-assertions: 1.8.0_acorn@8.8.2 - browserslist: 4.21.5 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.12.0 - es-module-lexer: 0.9.3 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.10 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.1.1 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.6_webpack@5.75.0 - watchpack: 2.4.0 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - dev: false - /websocket-driver/0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} engines: {node: '>=0.8.0'} @@ -15442,12 +14792,6 @@ packages: engines: {node: '>=0.8.0'} dev: false - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} - dependencies: - iconv-lite: 0.4.24 - dev: false - /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -15459,10 +14803,6 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: false - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: false - /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -15484,15 +14824,6 @@ packages: webidl-conversions: 4.0.2 dev: false - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: false - /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -15688,7 +15019,7 @@ packages: resolution: {integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==} dev: false - /workbox-webpack-plugin/6.5.4_webpack@5.75.0: + /workbox-webpack-plugin/6.5.4_webpack@5.78.0: resolution: {integrity: sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==} engines: {node: '>=10.0.0'} peerDependencies: @@ -15697,7 +15028,7 @@ packages: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 - webpack: 5.75.0 + webpack: registry.npmjs.org/webpack/5.78.0 webpack-sources: 1.4.3 workbox-build: 6.5.4 transitivePeerDependencies: @@ -15799,10 +15130,6 @@ packages: utf-8-validate: optional: true - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: false - /xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} @@ -15810,6 +15137,7 @@ packages: /xmlchars/2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} @@ -15947,3 +15275,3589 @@ packages: /yocto-queue/0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + + registry.npmjs.org/@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz} + name: '@babel/code-frame' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmjs.org/@babel/highlight/7.18.6 + + registry.npmjs.org/@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} + name: '@babel/helper-validator-identifier' + version: 7.19.1 + engines: {node: '>=6.9.0'} + + registry.npmjs.org/@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz} + name: '@babel/highlight' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmjs.org/@babel/helper-validator-identifier/7.19.1 + chalk: registry.npmjs.org/chalk/2.4.2 + js-tokens: registry.npmjs.org/js-tokens/4.0.0 + + registry.npmjs.org/@babel/runtime/7.20.13: + resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz} + name: '@babel/runtime' + version: 7.20.13 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmjs.org/regenerator-runtime/0.13.11 + + registry.npmjs.org/@esbuild/android-arm/0.15.18: + resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz} + name: '@esbuild/android-arm' + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@esbuild/linux-loong64/0.15.18: + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz} + name: '@esbuild/linux-loong64' + version: 0.15.18 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/@ethersproject/abi/5.7.0: + resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz} + name: '@ethersproject/abi' + version: 5.7.0 + dependencies: + '@ethersproject/address': registry.npmjs.org/@ethersproject/address/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/constants': registry.npmjs.org/@ethersproject/constants/5.7.0 + '@ethersproject/hash': registry.npmjs.org/@ethersproject/hash/5.7.0 + '@ethersproject/keccak256': registry.npmjs.org/@ethersproject/keccak256/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/abstract-provider/5.7.0: + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz} + name: '@ethersproject/abstract-provider' + version: 5.7.0 + dependencies: + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/networks': registry.npmjs.org/@ethersproject/networks/5.7.1 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/transactions': registry.npmjs.org/@ethersproject/transactions/5.7.0 + '@ethersproject/web': registry.npmjs.org/@ethersproject/web/5.7.1 + dev: false + + registry.npmjs.org/@ethersproject/abstract-signer/5.7.0: + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz} + name: '@ethersproject/abstract-signer' + version: 5.7.0 + dependencies: + '@ethersproject/abstract-provider': registry.npmjs.org/@ethersproject/abstract-provider/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/address/5.7.0: + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz} + name: '@ethersproject/address' + version: 5.7.0 + dependencies: + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/keccak256': registry.npmjs.org/@ethersproject/keccak256/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/rlp': registry.npmjs.org/@ethersproject/rlp/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/base64/5.7.0: + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz} + name: '@ethersproject/base64' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/basex/5.7.0: + resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz} + name: '@ethersproject/basex' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/bignumber/5.7.0: + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz} + name: '@ethersproject/bignumber' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + bn.js: registry.npmjs.org/bn.js/5.2.1 + dev: false + + registry.npmjs.org/@ethersproject/bytes/5.7.0: + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz} + name: '@ethersproject/bytes' + version: 5.7.0 + dependencies: + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/constants/5.7.0: + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz} + name: '@ethersproject/constants' + version: 5.7.0 + dependencies: + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/contracts/5.7.0: + resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz} + name: '@ethersproject/contracts' + version: 5.7.0 + dependencies: + '@ethersproject/abi': registry.npmjs.org/@ethersproject/abi/5.7.0 + '@ethersproject/abstract-provider': registry.npmjs.org/@ethersproject/abstract-provider/5.7.0 + '@ethersproject/abstract-signer': registry.npmjs.org/@ethersproject/abstract-signer/5.7.0 + '@ethersproject/address': registry.npmjs.org/@ethersproject/address/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/constants': registry.npmjs.org/@ethersproject/constants/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/transactions': registry.npmjs.org/@ethersproject/transactions/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/hash/5.7.0: + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz} + name: '@ethersproject/hash' + version: 5.7.0 + dependencies: + '@ethersproject/abstract-signer': registry.npmjs.org/@ethersproject/abstract-signer/5.7.0 + '@ethersproject/address': registry.npmjs.org/@ethersproject/address/5.7.0 + '@ethersproject/base64': registry.npmjs.org/@ethersproject/base64/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/keccak256': registry.npmjs.org/@ethersproject/keccak256/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/hdnode/5.7.0: + resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz} + name: '@ethersproject/hdnode' + version: 5.7.0 + dependencies: + '@ethersproject/abstract-signer': registry.npmjs.org/@ethersproject/abstract-signer/5.7.0 + '@ethersproject/basex': registry.npmjs.org/@ethersproject/basex/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/pbkdf2': registry.npmjs.org/@ethersproject/pbkdf2/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/sha2': registry.npmjs.org/@ethersproject/sha2/5.7.0 + '@ethersproject/signing-key': registry.npmjs.org/@ethersproject/signing-key/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + '@ethersproject/transactions': registry.npmjs.org/@ethersproject/transactions/5.7.0 + '@ethersproject/wordlists': registry.npmjs.org/@ethersproject/wordlists/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/json-wallets/5.7.0: + resolution: {integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz} + name: '@ethersproject/json-wallets' + version: 5.7.0 + dependencies: + '@ethersproject/abstract-signer': registry.npmjs.org/@ethersproject/abstract-signer/5.7.0 + '@ethersproject/address': registry.npmjs.org/@ethersproject/address/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/hdnode': registry.npmjs.org/@ethersproject/hdnode/5.7.0 + '@ethersproject/keccak256': registry.npmjs.org/@ethersproject/keccak256/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/pbkdf2': registry.npmjs.org/@ethersproject/pbkdf2/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/random': registry.npmjs.org/@ethersproject/random/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + '@ethersproject/transactions': registry.npmjs.org/@ethersproject/transactions/5.7.0 + aes-js: registry.npmjs.org/aes-js/3.0.0 + scrypt-js: registry.npmjs.org/scrypt-js/3.0.1 + dev: false + + registry.npmjs.org/@ethersproject/keccak256/5.7.0: + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz} + name: '@ethersproject/keccak256' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + js-sha3: registry.npmjs.org/js-sha3/0.8.0 + dev: false + + registry.npmjs.org/@ethersproject/logger/5.7.0: + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz} + name: '@ethersproject/logger' + version: 5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/networks/5.7.1: + resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz} + name: '@ethersproject/networks' + version: 5.7.1 + dependencies: + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/pbkdf2/5.7.0: + resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz} + name: '@ethersproject/pbkdf2' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/sha2': registry.npmjs.org/@ethersproject/sha2/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/properties/5.7.0: + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz} + name: '@ethersproject/properties' + version: 5.7.0 + dependencies: + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/providers/5.7.2: + resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz} + name: '@ethersproject/providers' + version: 5.7.2 + dependencies: + '@ethersproject/abstract-provider': registry.npmjs.org/@ethersproject/abstract-provider/5.7.0 + '@ethersproject/abstract-signer': registry.npmjs.org/@ethersproject/abstract-signer/5.7.0 + '@ethersproject/address': registry.npmjs.org/@ethersproject/address/5.7.0 + '@ethersproject/base64': registry.npmjs.org/@ethersproject/base64/5.7.0 + '@ethersproject/basex': registry.npmjs.org/@ethersproject/basex/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/constants': registry.npmjs.org/@ethersproject/constants/5.7.0 + '@ethersproject/hash': registry.npmjs.org/@ethersproject/hash/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/networks': registry.npmjs.org/@ethersproject/networks/5.7.1 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/random': registry.npmjs.org/@ethersproject/random/5.7.0 + '@ethersproject/rlp': registry.npmjs.org/@ethersproject/rlp/5.7.0 + '@ethersproject/sha2': registry.npmjs.org/@ethersproject/sha2/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + '@ethersproject/transactions': registry.npmjs.org/@ethersproject/transactions/5.7.0 + '@ethersproject/web': registry.npmjs.org/@ethersproject/web/5.7.1 + bech32: registry.npmjs.org/bech32/1.1.4 + ws: registry.npmjs.org/ws/7.4.6 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + registry.npmjs.org/@ethersproject/random/5.7.0: + resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz} + name: '@ethersproject/random' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/rlp/5.7.0: + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz} + name: '@ethersproject/rlp' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/sha2/5.7.0: + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz} + name: '@ethersproject/sha2' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + hash.js: registry.npmjs.org/hash.js/1.1.7 + dev: false + + registry.npmjs.org/@ethersproject/signing-key/5.7.0: + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz} + name: '@ethersproject/signing-key' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + bn.js: registry.npmjs.org/bn.js/5.2.1 + elliptic: registry.npmjs.org/elliptic/6.5.4 + hash.js: registry.npmjs.org/hash.js/1.1.7 + dev: false + + registry.npmjs.org/@ethersproject/solidity/5.7.0: + resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz} + name: '@ethersproject/solidity' + version: 5.7.0 + dependencies: + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/keccak256': registry.npmjs.org/@ethersproject/keccak256/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/sha2': registry.npmjs.org/@ethersproject/sha2/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/strings/5.7.0: + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz} + name: '@ethersproject/strings' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/constants': registry.npmjs.org/@ethersproject/constants/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/transactions/5.7.0: + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz} + name: '@ethersproject/transactions' + version: 5.7.0 + dependencies: + '@ethersproject/address': registry.npmjs.org/@ethersproject/address/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/constants': registry.npmjs.org/@ethersproject/constants/5.7.0 + '@ethersproject/keccak256': registry.npmjs.org/@ethersproject/keccak256/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/rlp': registry.npmjs.org/@ethersproject/rlp/5.7.0 + '@ethersproject/signing-key': registry.npmjs.org/@ethersproject/signing-key/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/units/5.7.0: + resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz} + name: '@ethersproject/units' + version: 5.7.0 + dependencies: + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/constants': registry.npmjs.org/@ethersproject/constants/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/wallet/5.7.0: + resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz} + name: '@ethersproject/wallet' + version: 5.7.0 + dependencies: + '@ethersproject/abstract-provider': registry.npmjs.org/@ethersproject/abstract-provider/5.7.0 + '@ethersproject/abstract-signer': registry.npmjs.org/@ethersproject/abstract-signer/5.7.0 + '@ethersproject/address': registry.npmjs.org/@ethersproject/address/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/hash': registry.npmjs.org/@ethersproject/hash/5.7.0 + '@ethersproject/hdnode': registry.npmjs.org/@ethersproject/hdnode/5.7.0 + '@ethersproject/json-wallets': registry.npmjs.org/@ethersproject/json-wallets/5.7.0 + '@ethersproject/keccak256': registry.npmjs.org/@ethersproject/keccak256/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/random': registry.npmjs.org/@ethersproject/random/5.7.0 + '@ethersproject/signing-key': registry.npmjs.org/@ethersproject/signing-key/5.7.0 + '@ethersproject/transactions': registry.npmjs.org/@ethersproject/transactions/5.7.0 + '@ethersproject/wordlists': registry.npmjs.org/@ethersproject/wordlists/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/web/5.7.1: + resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz} + name: '@ethersproject/web' + version: 5.7.1 + dependencies: + '@ethersproject/base64': registry.npmjs.org/@ethersproject/base64/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + dev: false + + registry.npmjs.org/@ethersproject/wordlists/5.7.0: + resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz} + name: '@ethersproject/wordlists' + version: 5.7.0 + dependencies: + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/hash': registry.npmjs.org/@ethersproject/hash/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + dev: false + + registry.npmjs.org/@jest/environment/27.5.1: + resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz} + name: '@jest/environment' + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/27.5.1 + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-mock: registry.npmjs.org/jest-mock/27.5.1 + dev: false + + registry.npmjs.org/@jest/environment/29.4.2: + resolution: {integrity: sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/environment/-/environment-29.4.2.tgz} + name: '@jest/environment' + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/29.4.2 + '@jest/types': registry.npmjs.org/@jest/types/29.4.2 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-mock: registry.npmjs.org/jest-mock/29.4.2 + dev: true + + registry.npmjs.org/@jest/fake-timers/27.5.1: + resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz} + name: '@jest/fake-timers' + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@sinonjs/fake-timers': registry.npmjs.org/@sinonjs/fake-timers/8.1.0 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-message-util: registry.npmjs.org/jest-message-util/27.5.1 + jest-mock: registry.npmjs.org/jest-mock/27.5.1 + jest-util: registry.npmjs.org/jest-util/27.5.1 + dev: false + + registry.npmjs.org/@jest/fake-timers/29.4.2: + resolution: {integrity: sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.4.2.tgz} + name: '@jest/fake-timers' + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmjs.org/@jest/types/29.4.2 + '@sinonjs/fake-timers': registry.npmjs.org/@sinonjs/fake-timers/10.0.2 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-message-util: registry.npmjs.org/jest-message-util/29.4.2 + jest-mock: registry.npmjs.org/jest-mock/29.4.2 + jest-util: registry.npmjs.org/jest-util/29.4.2 + dev: true + + registry.npmjs.org/@jest/schemas/28.1.3: + resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz} + name: '@jest/schemas' + version: 28.1.3 + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@sinclair/typebox': 0.24.51 + dev: false + + registry.npmjs.org/@jest/schemas/29.4.2: + resolution: {integrity: sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.2.tgz} + name: '@jest/schemas' + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': registry.npmjs.org/@sinclair/typebox/0.25.21 + dev: true + + registry.npmjs.org/@jest/types/27.5.1: + resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz} + name: '@jest/types' + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4 + '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports/3.0.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + '@types/yargs': registry.npmjs.org/@types/yargs/16.0.5 + chalk: registry.npmjs.org/chalk/4.1.2 + dev: false + + registry.npmjs.org/@jest/types/28.1.3: + resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz} + name: '@jest/types' + version: 28.1.3 + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/schemas': registry.npmjs.org/@jest/schemas/28.1.3 + '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4 + '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports/3.0.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + '@types/yargs': registry.npmjs.org/@types/yargs/17.0.22 + chalk: registry.npmjs.org/chalk/4.1.2 + dev: false + + registry.npmjs.org/@jest/types/29.4.2: + resolution: {integrity: sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/types/-/types-29.4.2.tgz} + name: '@jest/types' + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': registry.npmjs.org/@jest/schemas/29.4.2 + '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4 + '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports/3.0.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + '@types/yargs': registry.npmjs.org/@types/yargs/17.0.22 + chalk: registry.npmjs.org/chalk/4.1.2 + dev: true + + registry.npmjs.org/@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz} + name: '@jridgewell/gen-mapping' + version: 0.3.2 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmjs.org/@jridgewell/set-array/1.1.2 + '@jridgewell/sourcemap-codec': registry.npmjs.org/@jridgewell/sourcemap-codec/1.4.14 + '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping/0.3.17 + + registry.npmjs.org/@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.0 + engines: {node: '>=6.0.0'} + + registry.npmjs.org/@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz} + name: '@jridgewell/set-array' + version: 1.1.2 + engines: {node: '>=6.0.0'} + + registry.npmjs.org/@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz} + name: '@jridgewell/source-map' + version: 0.3.2 + dependencies: + '@jridgewell/gen-mapping': registry.npmjs.org/@jridgewell/gen-mapping/0.3.2 + '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping/0.3.17 + + registry.npmjs.org/@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.14 + + registry.npmjs.org/@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.17 + dependencies: + '@jridgewell/resolve-uri': registry.npmjs.org/@jridgewell/resolve-uri/3.1.0 + '@jridgewell/sourcemap-codec': registry.npmjs.org/@jridgewell/sourcemap-codec/1.4.14 + + registry.npmjs.org/@next/swc-android-arm-eabi/13.0.5: + resolution: {integrity: sha512-YO691dxHlviy6H0eghgwqn+5kU9J3iQnKERHTDSppqjjGDBl6ab4wz9XfI5AhljjkaTg3TknHoIEWFDoZ4Ve8g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.0.5.tgz} + name: '@next/swc-android-arm-eabi' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-android-arm64/13.0.5: + resolution: {integrity: sha512-ugbwffkUmp8cd2afehDC8LtQeFUxElRUBBngfB5UYSWBx18HW4OgzkPFIY8jUBH16zifvGZWXbICXJWDHrOLtw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.0.5.tgz} + name: '@next/swc-android-arm64' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-darwin-arm64/13.0.5: + resolution: {integrity: sha512-mshlh8QOtOalfZbc17uNAftWgqHTKnrv6QUwBe+mpGz04eqsSUzVz1JGZEdIkmuDxOz00cK2NPoc+VHDXh99IQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.0.5.tgz} + name: '@next/swc-darwin-arm64' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-darwin-x64/13.0.5: + resolution: {integrity: sha512-SfigOKW4Z2UB3ruUPyvrlDIkcJq1hiw1wvYApWugD+tQsAkYZKEoz+/8emCmeYZ6Gwgi1WHV+z52Oj8u7bEHPg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.0.5.tgz} + name: '@next/swc-darwin-x64' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-freebsd-x64/13.0.5: + resolution: {integrity: sha512-0NJg8HZr4yG8ynmMGFXQf+Mahvq4ZgBmUwSlLXXymgxEQgH17erH/LoR69uITtW+KTsALgk9axEt5AAabM4ucg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.0.5.tgz} + name: '@next/swc-freebsd-x64' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-linux-arm-gnueabihf/13.0.5: + resolution: {integrity: sha512-Cye+h3oDT3NDWjACMlRaolL8fokpKie34FlPj9nfoW7bYKmoMBY1d4IO/GgBF+5xEl7HkH0Ny/qex63vQ0pN+A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.0.5.tgz} + name: '@next/swc-linux-arm-gnueabihf' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-linux-arm64-gnu/13.0.5: + resolution: {integrity: sha512-5BfDS/VoRDR5QUGG9oedOCEZGmV2zxUVFYLUJVPMSMeIgqkjxWQBiG2BUHZI6/LGk9yvHmjx7BTvtBCLtRg6IQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.0.5.tgz} + name: '@next/swc-linux-arm64-gnu' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-linux-arm64-musl/13.0.5: + resolution: {integrity: sha512-xenvqlXz+KxVKAB1YR723gnVNszpsCvKZkiFFaAYqDGJ502YuqU2fwLsaSm/ASRizNcBYeo9HPLTyc3r/9cdMQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.0.5.tgz} + name: '@next/swc-linux-arm64-musl' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-linux-x64-gnu/13.0.5: + resolution: {integrity: sha512-9Ahi1bbdXwhrWQmOyoTod23/hhK05da/FzodiNqd6drrMl1y7+RujoEcU8Dtw3H1mGWB+yuTlWo8B4Iba8hqiQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.0.5.tgz} + name: '@next/swc-linux-x64-gnu' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-linux-x64-musl/13.0.5: + resolution: {integrity: sha512-V+1mnh49qmS9fOZxVRbzjhBEz9IUGJ7AQ80JPWAYQM5LI4TxfdiF4APLPvJ52rOmNeTqnVz1bbKtVOso+7EZ4w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.0.5.tgz} + name: '@next/swc-linux-x64-musl' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-win32-arm64-msvc/13.0.5: + resolution: {integrity: sha512-wRE9rkp7I+/3Jf2T9PFIJOKq3adMWYEFkPOA7XAkUfYbQHlDJm/U5cVCWUsKByyQq5RThwufI91sgd19MfxRxg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.0.5.tgz} + name: '@next/swc-win32-arm64-msvc' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-win32-ia32-msvc/13.0.5: + resolution: {integrity: sha512-Q1XQSLEhFuFhkKFdJIGt7cYQ4T3u6P5wrtUNreg5M+7P+fjSiC8+X+Vjcw+oebaacsdl0pWZlK+oACGafush1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.0.5.tgz} + name: '@next/swc-win32-ia32-msvc' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@next/swc-win32-x64-msvc/13.0.5: + resolution: {integrity: sha512-t5gRblrwwiNZP6cT7NkxlgxrFgHWtv9ei5vUraCLgBqzvIsa7X+PnarZUeQCXqz6Jg9JSGGT9j8lvzD97UqeJQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.0.5.tgz} + name: '@next/swc-win32-x64-msvc' + version: 13.0.5 + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmjs.org/@sinclair/typebox/0.25.21: + resolution: {integrity: sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz} + name: '@sinclair/typebox' + version: 0.25.21 + dev: true + + registry.npmjs.org/@sinonjs/commons/1.8.6: + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz} + name: '@sinonjs/commons' + version: 1.8.6 + dependencies: + type-detect: registry.npmjs.org/type-detect/4.0.8 + dev: false + + registry.npmjs.org/@sinonjs/commons/2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz} + name: '@sinonjs/commons' + version: 2.0.0 + dependencies: + type-detect: registry.npmjs.org/type-detect/4.0.8 + dev: true + + registry.npmjs.org/@sinonjs/fake-timers/10.0.2: + resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz} + name: '@sinonjs/fake-timers' + version: 10.0.2 + dependencies: + '@sinonjs/commons': registry.npmjs.org/@sinonjs/commons/2.0.0 + dev: true + + registry.npmjs.org/@sinonjs/fake-timers/8.1.0: + resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz} + name: '@sinonjs/fake-timers' + version: 8.1.0 + dependencies: + '@sinonjs/commons': registry.npmjs.org/@sinonjs/commons/1.8.6 + dev: false + + registry.npmjs.org/@testing-library/dom/8.20.0: + resolution: {integrity: sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz} + name: '@testing-library/dom' + version: 8.20.0 + engines: {node: '>=12'} + dependencies: + '@babel/code-frame': registry.npmjs.org/@babel/code-frame/7.18.6 + '@babel/runtime': registry.npmjs.org/@babel/runtime/7.20.13 + '@types/aria-query': registry.npmjs.org/@types/aria-query/5.0.1 + aria-query: registry.npmjs.org/aria-query/5.1.3 + chalk: registry.npmjs.org/chalk/4.1.2 + dom-accessibility-api: registry.npmjs.org/dom-accessibility-api/0.5.16 + lz-string: registry.npmjs.org/lz-string/1.4.4 + pretty-format: registry.npmjs.org/pretty-format/27.5.1 + dev: true + + registry.npmjs.org/@tootallnate/once/1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz} + name: '@tootallnate/once' + version: 1.1.2 + engines: {node: '>= 6'} + dev: false + + registry.npmjs.org/@tootallnate/once/2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz} + name: '@tootallnate/once' + version: 2.0.0 + engines: {node: '>= 10'} + dev: true + + registry.npmjs.org/@tronweb3/google-protobuf/3.21.2: + resolution: {integrity: sha512-IVcT2GfWX3K6tHUVhs14NP5uzKhQt4KeDya1g9ACxuZsUzsaoGUIGzceK2Ltu7xp1YV94AaHOf4yxLAivlvEkQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@tronweb3/google-protobuf/-/google-protobuf-3.21.2.tgz} + name: '@tronweb3/google-protobuf' + version: 3.21.2 + dev: false + + registry.npmjs.org/@types/aria-query/5.0.1: + resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz} + name: '@types/aria-query' + version: 5.0.1 + dev: true + + registry.npmjs.org/@types/eslint-scope/3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz} + name: '@types/eslint-scope' + version: 3.7.4 + dependencies: + '@types/eslint': registry.npmjs.org/@types/eslint/8.21.0 + '@types/estree': registry.npmjs.org/@types/estree/1.0.0 + + registry.npmjs.org/@types/eslint/8.21.0: + resolution: {integrity: sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz} + name: '@types/eslint' + version: 8.21.0 + dependencies: + '@types/estree': registry.npmjs.org/@types/estree/1.0.0 + '@types/json-schema': registry.npmjs.org/@types/json-schema/7.0.11 + + registry.npmjs.org/@types/estree/0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz} + name: '@types/estree' + version: 0.0.39 + dev: false + + registry.npmjs.org/@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz} + name: '@types/estree' + version: 0.0.51 + + registry.npmjs.org/@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz} + name: '@types/estree' + version: 1.0.0 + + registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz} + name: '@types/istanbul-lib-coverage' + version: 2.0.4 + + registry.npmjs.org/@types/istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz} + name: '@types/istanbul-lib-report' + version: 3.0.0 + dependencies: + '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4 + + registry.npmjs.org/@types/istanbul-reports/3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz} + name: '@types/istanbul-reports' + version: 3.0.1 + dependencies: + '@types/istanbul-lib-report': registry.npmjs.org/@types/istanbul-lib-report/3.0.0 + + registry.npmjs.org/@types/jsdom/20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz} + name: '@types/jsdom' + version: 20.0.1 + dependencies: + '@types/node': registry.npmjs.org/@types/node/18.13.0 + '@types/tough-cookie': registry.npmjs.org/@types/tough-cookie/4.0.2 + parse5: registry.npmjs.org/parse5/7.1.2 + dev: true + + registry.npmjs.org/@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz} + name: '@types/json-schema' + version: 7.0.11 + + registry.npmjs.org/@types/node/18.13.0: + resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz} + name: '@types/node' + version: 18.13.0 + + registry.npmjs.org/@types/stack-utils/2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz} + name: '@types/stack-utils' + version: 2.0.1 + + registry.npmjs.org/@types/tough-cookie/4.0.2: + resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz} + name: '@types/tough-cookie' + version: 4.0.2 + dev: true + + registry.npmjs.org/@types/yargs-parser/21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz} + name: '@types/yargs-parser' + version: 21.0.0 + + registry.npmjs.org/@types/yargs/16.0.5: + resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz} + name: '@types/yargs' + version: 16.0.5 + dependencies: + '@types/yargs-parser': registry.npmjs.org/@types/yargs-parser/21.0.0 + dev: false + + registry.npmjs.org/@types/yargs/17.0.22: + resolution: {integrity: sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz} + name: '@types/yargs' + version: 17.0.22 + dependencies: + '@types/yargs-parser': registry.npmjs.org/@types/yargs-parser/21.0.0 + + registry.npmjs.org/@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz} + name: '@webassemblyjs/ast' + version: 1.11.1 + dependencies: + '@webassemblyjs/helper-numbers': registry.npmjs.org/@webassemblyjs/helper-numbers/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 + + registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz} + name: '@webassemblyjs/floating-point-hex-parser' + version: 1.11.1 + + registry.npmjs.org/@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz} + name: '@webassemblyjs/helper-api-error' + version: 1.11.1 + + registry.npmjs.org/@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz} + name: '@webassemblyjs/helper-buffer' + version: 1.11.1 + + registry.npmjs.org/@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz} + name: '@webassemblyjs/helper-numbers' + version: 1.11.1 + dependencies: + '@webassemblyjs/floating-point-hex-parser': registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/1.11.1 + '@webassemblyjs/helper-api-error': registry.npmjs.org/@webassemblyjs/helper-api-error/1.11.1 + '@xtuc/long': registry.npmjs.org/@xtuc/long/4.2.2 + + registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz} + name: '@webassemblyjs/helper-wasm-bytecode' + version: 1.11.1 + + registry.npmjs.org/@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz} + name: '@webassemblyjs/helper-wasm-section' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 + '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen/1.11.1 + + registry.npmjs.org/@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz} + name: '@webassemblyjs/ieee754' + version: 1.11.1 + dependencies: + '@xtuc/ieee754': registry.npmjs.org/@xtuc/ieee754/1.2.0 + + registry.npmjs.org/@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz} + name: '@webassemblyjs/leb128' + version: 1.11.1 + dependencies: + '@xtuc/long': registry.npmjs.org/@xtuc/long/4.2.2 + + registry.npmjs.org/@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz} + name: '@webassemblyjs/utf8' + version: 1.11.1 + + registry.npmjs.org/@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz} + name: '@webassemblyjs/wasm-edit' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 + '@webassemblyjs/helper-wasm-section': registry.npmjs.org/@webassemblyjs/helper-wasm-section/1.11.1 + '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen/1.11.1 + '@webassemblyjs/wasm-opt': registry.npmjs.org/@webassemblyjs/wasm-opt/1.11.1 + '@webassemblyjs/wasm-parser': registry.npmjs.org/@webassemblyjs/wasm-parser/1.11.1 + '@webassemblyjs/wast-printer': registry.npmjs.org/@webassemblyjs/wast-printer/1.11.1 + + registry.npmjs.org/@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz} + name: '@webassemblyjs/wasm-gen' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 + '@webassemblyjs/ieee754': registry.npmjs.org/@webassemblyjs/ieee754/1.11.1 + '@webassemblyjs/leb128': registry.npmjs.org/@webassemblyjs/leb128/1.11.1 + '@webassemblyjs/utf8': registry.npmjs.org/@webassemblyjs/utf8/1.11.1 + + registry.npmjs.org/@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz} + name: '@webassemblyjs/wasm-opt' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer/1.11.1 + '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen/1.11.1 + '@webassemblyjs/wasm-parser': registry.npmjs.org/@webassemblyjs/wasm-parser/1.11.1 + + registry.npmjs.org/@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz} + name: '@webassemblyjs/wasm-parser' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-api-error': registry.npmjs.org/@webassemblyjs/helper-api-error/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 + '@webassemblyjs/ieee754': registry.npmjs.org/@webassemblyjs/ieee754/1.11.1 + '@webassemblyjs/leb128': registry.npmjs.org/@webassemblyjs/leb128/1.11.1 + '@webassemblyjs/utf8': registry.npmjs.org/@webassemblyjs/utf8/1.11.1 + + registry.npmjs.org/@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz} + name: '@webassemblyjs/wast-printer' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 + '@xtuc/long': registry.npmjs.org/@xtuc/long/4.2.2 + + registry.npmjs.org/@xtuc/ieee754/1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz} + name: '@xtuc/ieee754' + version: 1.2.0 + + registry.npmjs.org/@xtuc/long/4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz} + name: '@xtuc/long' + version: 4.2.2 + + registry.npmjs.org/abab/2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/abab/-/abab-2.0.6.tgz} + name: abab + version: 2.0.6 + + registry.npmjs.org/acorn-globals/6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz} + name: acorn-globals + version: 6.0.0 + dependencies: + acorn: registry.npmjs.org/acorn/7.4.1 + acorn-walk: registry.npmjs.org/acorn-walk/7.2.0 + dev: false + + registry.npmjs.org/acorn-globals/7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz} + name: acorn-globals + version: 7.0.1 + dependencies: + acorn: registry.npmjs.org/acorn/8.8.2 + acorn-walk: registry.npmjs.org/acorn-walk/8.2.0 + dev: true + + registry.npmjs.org/acorn-import-assertions/1.8.0_acorn@8.8.2: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz} + id: registry.npmjs.org/acorn-import-assertions/1.8.0 + name: acorn-import-assertions + version: 1.8.0 + peerDependencies: + acorn: ^8 + dependencies: + acorn: registry.npmjs.org/acorn/8.8.2 + + registry.npmjs.org/acorn-walk/7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz} + name: acorn-walk + version: 7.2.0 + engines: {node: '>=0.4.0'} + dev: false + + registry.npmjs.org/acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz} + name: acorn-walk + version: 8.2.0 + engines: {node: '>=0.4.0'} + dev: true + + registry.npmjs.org/acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz} + name: acorn + version: 7.4.1 + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + registry.npmjs.org/acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz} + name: acorn + version: 8.8.2 + engines: {node: '>=0.4.0'} + hasBin: true + + registry.npmjs.org/aes-js/3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz} + name: aes-js + version: 3.0.0 + dev: false + + registry.npmjs.org/agent-base/6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz} + name: agent-base + version: 6.0.2 + engines: {node: '>= 6.0.0'} + dependencies: + debug: registry.npmjs.org/debug/4.3.4 + transitivePeerDependencies: + - supports-color + + registry.npmjs.org/ajv-keywords/3.5.2_ajv@6.12.6: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz} + id: registry.npmjs.org/ajv-keywords/3.5.2 + name: ajv-keywords + version: 3.5.2 + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: registry.npmjs.org/ajv/6.12.6 + + registry.npmjs.org/ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmjs.org/fast-deep-equal/3.1.3 + fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify/2.1.0 + json-schema-traverse: registry.npmjs.org/json-schema-traverse/0.4.1 + uri-js: registry.npmjs.org/uri-js/4.4.1 + + registry.npmjs.org/ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + + registry.npmjs.org/ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: registry.npmjs.org/color-convert/1.9.3 + + registry.npmjs.org/ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmjs.org/color-convert/2.0.1 + + registry.npmjs.org/ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz} + name: ansi-styles + version: 5.2.0 + engines: {node: '>=10'} + + registry.npmjs.org/aria-query/5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz} + name: aria-query + version: 5.1.3 + dependencies: + deep-equal: registry.npmjs.org/deep-equal/2.2.0 + dev: true + + registry.npmjs.org/asynckit/0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz} + name: asynckit + version: 0.4.0 + + registry.npmjs.org/available-typed-arrays/1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} + name: available-typed-arrays + version: 1.0.5 + engines: {node: '>= 0.4'} + dev: true + + registry.npmjs.org/axios/0.26.1: + resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/axios/-/axios-0.26.1.tgz} + name: axios + version: 0.26.1 + dependencies: + follow-redirects: registry.npmjs.org/follow-redirects/1.15.2 + transitivePeerDependencies: + - debug + dev: false + + registry.npmjs.org/balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: true + + registry.npmjs.org/bech32/1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz} + name: bech32 + version: 1.1.4 + dev: false + + registry.npmjs.org/bignumber.js/9.1.1: + resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz} + name: bignumber.js + version: 9.1.1 + dev: false + + registry.npmjs.org/bn.js/4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz} + name: bn.js + version: 4.12.0 + dev: false + + registry.npmjs.org/bn.js/5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz} + name: bn.js + version: 5.2.1 + dev: false + + registry.npmjs.org/brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmjs.org/balanced-match/1.0.2 + concat-map: registry.npmjs.org/concat-map/0.0.1 + dev: true + + registry.npmjs.org/braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmjs.org/fill-range/7.0.1 + + registry.npmjs.org/brorand/1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz} + name: brorand + version: 1.1.0 + dev: false + + registry.npmjs.org/browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz} + name: browserslist + version: 4.21.5 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.npmjs.org/caniuse-lite/1.0.30001451 + electron-to-chromium: registry.npmjs.org/electron-to-chromium/1.4.294 + node-releases: registry.npmjs.org/node-releases/2.0.10 + update-browserslist-db: registry.npmjs.org/update-browserslist-db/1.0.10_browserslist@4.21.5 + + registry.npmjs.org/buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz} + name: buffer-from + version: 1.1.2 + + registry.npmjs.org/call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz} + name: call-bind + version: 1.0.2 + dependencies: + function-bind: registry.npmjs.org/function-bind/1.1.1 + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + dev: true + + registry.npmjs.org/caniuse-lite/1.0.30001451: + resolution: {integrity: sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz} + name: caniuse-lite + version: 1.0.30001451 + + registry.npmjs.org/chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.npmjs.org/ansi-styles/3.2.1 + escape-string-regexp: registry.npmjs.org/escape-string-regexp/1.0.5 + supports-color: registry.npmjs.org/supports-color/5.5.0 + + registry.npmjs.org/chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmjs.org/ansi-styles/4.3.0 + supports-color: registry.npmjs.org/supports-color/7.2.0 + + registry.npmjs.org/chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} + name: chrome-trace-event + version: 1.0.3 + engines: {node: '>=6.0'} + + registry.npmjs.org/ci-info/3.7.1: + resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz} + name: ci-info + version: 3.7.1 + engines: {node: '>=8'} + + registry.npmjs.org/color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmjs.org/color-name/1.1.3 + + registry.npmjs.org/color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmjs.org/color-name/1.1.4 + + registry.npmjs.org/color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + + registry.npmjs.org/color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + + registry.npmjs.org/combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz} + name: combined-stream + version: 1.0.8 + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: registry.npmjs.org/delayed-stream/1.0.0 + + registry.npmjs.org/commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/commander/-/commander-2.20.3.tgz} + name: commander + version: 2.20.3 + + registry.npmjs.org/concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: true + + registry.npmjs.org/copy-text-to-clipboard/3.0.1: + resolution: {integrity: sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz} + name: copy-text-to-clipboard + version: 3.0.1 + engines: {node: '>=12'} + dev: false + + registry.npmjs.org/core-js/3.27.2: + resolution: {integrity: sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz} + name: core-js + version: 3.27.2 + requiresBuild: true + dev: false + + registry.npmjs.org/cssom/0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz} + name: cssom + version: 0.3.8 + + registry.npmjs.org/cssom/0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz} + name: cssom + version: 0.4.4 + dev: false + + registry.npmjs.org/cssom/0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz} + name: cssom + version: 0.5.0 + dev: true + + registry.npmjs.org/cssstyle/2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz} + name: cssstyle + version: 2.3.0 + engines: {node: '>=8'} + dependencies: + cssom: registry.npmjs.org/cssom/0.3.8 + + registry.npmjs.org/data-urls/2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz} + name: data-urls + version: 2.0.0 + engines: {node: '>=10'} + dependencies: + abab: registry.npmjs.org/abab/2.0.6 + whatwg-mimetype: registry.npmjs.org/whatwg-mimetype/2.3.0 + whatwg-url: registry.npmjs.org/whatwg-url/8.7.0 + dev: false + + registry.npmjs.org/data-urls/3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz} + name: data-urls + version: 3.0.2 + engines: {node: '>=12'} + dependencies: + abab: registry.npmjs.org/abab/2.0.6 + whatwg-mimetype: registry.npmjs.org/whatwg-mimetype/3.0.0 + whatwg-url: registry.npmjs.org/whatwg-url/11.0.0 + dev: true + + registry.npmjs.org/debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmjs.org/ms/2.1.2 + + registry.npmjs.org/decimal.js/10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz} + name: decimal.js + version: 10.4.3 + + registry.npmjs.org/deep-equal/2.2.0: + resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz} + name: deep-equal + version: 2.2.0 + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + es-get-iterator: registry.npmjs.org/es-get-iterator/1.1.3 + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + is-arguments: registry.npmjs.org/is-arguments/1.1.1 + is-array-buffer: registry.npmjs.org/is-array-buffer/3.0.1 + is-date-object: registry.npmjs.org/is-date-object/1.0.5 + is-regex: registry.npmjs.org/is-regex/1.1.4 + is-shared-array-buffer: registry.npmjs.org/is-shared-array-buffer/1.0.2 + isarray: registry.npmjs.org/isarray/2.0.5 + object-is: registry.npmjs.org/object-is/1.1.5 + object-keys: registry.npmjs.org/object-keys/1.1.1 + object.assign: registry.npmjs.org/object.assign/4.1.4 + regexp.prototype.flags: registry.npmjs.org/regexp.prototype.flags/1.4.3 + side-channel: registry.npmjs.org/side-channel/1.0.4 + which-boxed-primitive: registry.npmjs.org/which-boxed-primitive/1.0.2 + which-collection: registry.npmjs.org/which-collection/1.0.1 + which-typed-array: registry.npmjs.org/which-typed-array/1.1.9 + dev: true + + registry.npmjs.org/deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} + name: deep-is + version: 0.1.4 + + registry.npmjs.org/define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz} + name: define-properties + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: registry.npmjs.org/has-property-descriptors/1.0.0 + object-keys: registry.npmjs.org/object-keys/1.1.1 + dev: true + + registry.npmjs.org/delayed-stream/1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz} + name: delayed-stream + version: 1.0.0 + engines: {node: '>=0.4.0'} + + registry.npmjs.org/dom-accessibility-api/0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz} + name: dom-accessibility-api + version: 0.5.16 + dev: true + + registry.npmjs.org/domexception/2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz} + name: domexception + version: 2.0.1 + engines: {node: '>=8'} + dependencies: + webidl-conversions: registry.npmjs.org/webidl-conversions/5.0.0 + dev: false + + registry.npmjs.org/domexception/4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz} + name: domexception + version: 4.0.0 + engines: {node: '>=12'} + dependencies: + webidl-conversions: registry.npmjs.org/webidl-conversions/7.0.0 + dev: true + + registry.npmjs.org/electron-to-chromium/1.4.294: + resolution: {integrity: sha512-PuHZB3jEN7D8WPPjLmBQAsqQz8tWHlkkB4n0E2OYw8RwVdmBYV0Wn+rUFH8JqYyIRb4HQhhedgxlZL163wqLrQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.294.tgz} + name: electron-to-chromium + version: 1.4.294 + + registry.npmjs.org/elliptic/6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz} + name: elliptic + version: 6.5.4 + dependencies: + bn.js: registry.npmjs.org/bn.js/4.12.0 + brorand: registry.npmjs.org/brorand/1.1.0 + hash.js: registry.npmjs.org/hash.js/1.1.7 + hmac-drbg: registry.npmjs.org/hmac-drbg/1.0.1 + inherits: registry.npmjs.org/inherits/2.0.4 + minimalistic-assert: registry.npmjs.org/minimalistic-assert/1.0.1 + minimalistic-crypto-utils: registry.npmjs.org/minimalistic-crypto-utils/1.0.1 + dev: false + + registry.npmjs.org/enhanced-resolve/5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz} + name: enhanced-resolve + version: 5.12.0 + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + tapable: registry.npmjs.org/tapable/2.2.1 + + registry.npmjs.org/entities/4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/entities/-/entities-4.4.0.tgz} + name: entities + version: 4.4.0 + engines: {node: '>=0.12'} + dev: true + + registry.npmjs.org/es-get-iterator/1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz} + name: es-get-iterator + version: 1.1.3 + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + has-symbols: registry.npmjs.org/has-symbols/1.0.3 + is-arguments: registry.npmjs.org/is-arguments/1.1.1 + is-map: registry.npmjs.org/is-map/2.0.2 + is-set: registry.npmjs.org/is-set/2.0.2 + is-string: registry.npmjs.org/is-string/1.0.7 + isarray: registry.npmjs.org/isarray/2.0.5 + stop-iteration-iterator: registry.npmjs.org/stop-iteration-iterator/1.0.0 + dev: true + + registry.npmjs.org/es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz} + name: es-module-lexer + version: 0.9.3 + + registry.npmjs.org/esbuild-android-64/0.15.18: + resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz} + name: esbuild-android-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-android-arm64/0.15.18: + resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz} + name: esbuild-android-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-darwin-64/0.15.18: + resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz} + name: esbuild-darwin-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-darwin-arm64/0.15.18: + resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz} + name: esbuild-darwin-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-freebsd-64/0.15.18: + resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz} + name: esbuild-freebsd-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-freebsd-arm64/0.15.18: + resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz} + name: esbuild-freebsd-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-linux-32/0.15.18: + resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz} + name: esbuild-linux-32 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-linux-64/0.15.18: + resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz} + name: esbuild-linux-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-linux-arm/0.15.18: + resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz} + name: esbuild-linux-arm + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-linux-arm64/0.15.18: + resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz} + name: esbuild-linux-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-linux-mips64le/0.15.18: + resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz} + name: esbuild-linux-mips64le + version: 0.15.18 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-linux-ppc64le/0.15.18: + resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz} + name: esbuild-linux-ppc64le + version: 0.15.18 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-linux-riscv64/0.15.18: + resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz} + name: esbuild-linux-riscv64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-linux-s390x/0.15.18: + resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz} + name: esbuild-linux-s390x + version: 0.15.18 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-netbsd-64/0.15.18: + resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz} + name: esbuild-netbsd-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-openbsd-64/0.15.18: + resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz} + name: esbuild-openbsd-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-sunos-64/0.15.18: + resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz} + name: esbuild-sunos-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-windows-32/0.15.18: + resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz} + name: esbuild-windows-32 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-windows-64/0.15.18: + resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz} + name: esbuild-windows-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/esbuild-windows-arm64/0.15.18: + resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz} + name: esbuild-windows-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmjs.org/escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz} + name: escalade + version: 3.1.1 + engines: {node: '>=6'} + + registry.npmjs.org/escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + + registry.npmjs.org/escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz} + name: escape-string-regexp + version: 2.0.0 + engines: {node: '>=8'} + + registry.npmjs.org/escodegen/2.0.0: + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz} + name: escodegen + version: 2.0.0 + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: registry.npmjs.org/esprima/4.0.1 + estraverse: registry.npmjs.org/estraverse/5.3.0 + esutils: registry.npmjs.org/esutils/2.0.3 + optionator: registry.npmjs.org/optionator/0.8.3 + optionalDependencies: + source-map: registry.npmjs.org/source-map/0.6.1 + + registry.npmjs.org/eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz} + name: eslint-scope + version: 5.1.1 + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: registry.npmjs.org/esrecurse/4.3.0 + estraverse: registry.npmjs.org/estraverse/4.3.0 + + registry.npmjs.org/esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz} + name: esprima + version: 4.0.1 + engines: {node: '>=4'} + hasBin: true + + registry.npmjs.org/esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmjs.org/estraverse/5.3.0 + + registry.npmjs.org/estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz} + name: estraverse + version: 4.3.0 + engines: {node: '>=4.0'} + + registry.npmjs.org/estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + + registry.npmjs.org/esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + + registry.npmjs.org/ethers/5.7.2: + resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz} + name: ethers + version: 5.7.2 + dependencies: + '@ethersproject/abi': registry.npmjs.org/@ethersproject/abi/5.7.0 + '@ethersproject/abstract-provider': registry.npmjs.org/@ethersproject/abstract-provider/5.7.0 + '@ethersproject/abstract-signer': registry.npmjs.org/@ethersproject/abstract-signer/5.7.0 + '@ethersproject/address': registry.npmjs.org/@ethersproject/address/5.7.0 + '@ethersproject/base64': registry.npmjs.org/@ethersproject/base64/5.7.0 + '@ethersproject/basex': registry.npmjs.org/@ethersproject/basex/5.7.0 + '@ethersproject/bignumber': registry.npmjs.org/@ethersproject/bignumber/5.7.0 + '@ethersproject/bytes': registry.npmjs.org/@ethersproject/bytes/5.7.0 + '@ethersproject/constants': registry.npmjs.org/@ethersproject/constants/5.7.0 + '@ethersproject/contracts': registry.npmjs.org/@ethersproject/contracts/5.7.0 + '@ethersproject/hash': registry.npmjs.org/@ethersproject/hash/5.7.0 + '@ethersproject/hdnode': registry.npmjs.org/@ethersproject/hdnode/5.7.0 + '@ethersproject/json-wallets': registry.npmjs.org/@ethersproject/json-wallets/5.7.0 + '@ethersproject/keccak256': registry.npmjs.org/@ethersproject/keccak256/5.7.0 + '@ethersproject/logger': registry.npmjs.org/@ethersproject/logger/5.7.0 + '@ethersproject/networks': registry.npmjs.org/@ethersproject/networks/5.7.1 + '@ethersproject/pbkdf2': registry.npmjs.org/@ethersproject/pbkdf2/5.7.0 + '@ethersproject/properties': registry.npmjs.org/@ethersproject/properties/5.7.0 + '@ethersproject/providers': registry.npmjs.org/@ethersproject/providers/5.7.2 + '@ethersproject/random': registry.npmjs.org/@ethersproject/random/5.7.0 + '@ethersproject/rlp': registry.npmjs.org/@ethersproject/rlp/5.7.0 + '@ethersproject/sha2': registry.npmjs.org/@ethersproject/sha2/5.7.0 + '@ethersproject/signing-key': registry.npmjs.org/@ethersproject/signing-key/5.7.0 + '@ethersproject/solidity': registry.npmjs.org/@ethersproject/solidity/5.7.0 + '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 + '@ethersproject/transactions': registry.npmjs.org/@ethersproject/transactions/5.7.0 + '@ethersproject/units': registry.npmjs.org/@ethersproject/units/5.7.0 + '@ethersproject/wallet': registry.npmjs.org/@ethersproject/wallet/5.7.0 + '@ethersproject/web': registry.npmjs.org/@ethersproject/web/5.7.1 + '@ethersproject/wordlists': registry.npmjs.org/@ethersproject/wordlists/5.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + registry.npmjs.org/eventemitter3/3.1.2: + resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz} + name: eventemitter3 + version: 3.1.2 + dev: false + + registry.npmjs.org/events/3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/events/-/events-3.3.0.tgz} + name: events + version: 3.3.0 + engines: {node: '>=0.8.x'} + + registry.npmjs.org/fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + + registry.npmjs.org/fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + + registry.npmjs.org/fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} + name: fast-levenshtein + version: 2.0.6 + + registry.npmjs.org/fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmjs.org/to-regex-range/5.0.1 + + registry.npmjs.org/follow-redirects/1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz} + name: follow-redirects + version: 1.15.2 + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + registry.npmjs.org/for-each/0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz} + name: for-each + version: 0.3.3 + dependencies: + is-callable: registry.npmjs.org/is-callable/1.2.7 + dev: true + + registry.npmjs.org/form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz} + name: form-data + version: 3.0.1 + engines: {node: '>= 6'} + dependencies: + asynckit: registry.npmjs.org/asynckit/0.4.0 + combined-stream: registry.npmjs.org/combined-stream/1.0.8 + mime-types: registry.npmjs.org/mime-types/2.1.35 + dev: false + + registry.npmjs.org/form-data/4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz} + name: form-data + version: 4.0.0 + engines: {node: '>= 6'} + dependencies: + asynckit: registry.npmjs.org/asynckit/0.4.0 + combined-stream: registry.npmjs.org/combined-stream/1.0.8 + mime-types: registry.npmjs.org/mime-types/2.1.35 + dev: true + + registry.npmjs.org/fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: true + + registry.npmjs.org/fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmjs.org/function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: true + + registry.npmjs.org/functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz} + name: functions-have-names + version: 1.2.3 + dev: true + + registry.npmjs.org/get-intrinsic/1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz} + name: get-intrinsic + version: 1.2.0 + dependencies: + function-bind: registry.npmjs.org/function-bind/1.1.1 + has: registry.npmjs.org/has/1.0.3 + has-symbols: registry.npmjs.org/has-symbols/1.0.3 + dev: true + + registry.npmjs.org/glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} + name: glob-to-regexp + version: 0.4.1 + + registry.npmjs.org/glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmjs.org/fs.realpath/1.0.0 + inflight: registry.npmjs.org/inflight/1.0.6 + inherits: registry.npmjs.org/inherits/2.0.4 + minimatch: registry.npmjs.org/minimatch/3.1.2 + once: registry.npmjs.org/once/1.4.0 + path-is-absolute: registry.npmjs.org/path-is-absolute/1.0.1 + dev: true + + registry.npmjs.org/gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz} + name: gopd + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + dev: true + + registry.npmjs.org/graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz} + name: graceful-fs + version: 4.2.10 + + registry.npmjs.org/has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz} + name: has-bigints + version: 1.0.2 + dev: true + + registry.npmjs.org/has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + + registry.npmjs.org/has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + + registry.npmjs.org/has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} + name: has-property-descriptors + version: 1.0.0 + dependencies: + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + dev: true + + registry.npmjs.org/has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + dev: true + + registry.npmjs.org/has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + name: has-tostringtag + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmjs.org/has-symbols/1.0.3 + dev: true + + registry.npmjs.org/has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmjs.org/function-bind/1.1.1 + dev: true + + registry.npmjs.org/hash.js/1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz} + name: hash.js + version: 1.1.7 + dependencies: + inherits: registry.npmjs.org/inherits/2.0.4 + minimalistic-assert: registry.npmjs.org/minimalistic-assert/1.0.1 + dev: false + + registry.npmjs.org/hmac-drbg/1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz} + name: hmac-drbg + version: 1.0.1 + dependencies: + hash.js: registry.npmjs.org/hash.js/1.1.7 + minimalistic-assert: registry.npmjs.org/minimalistic-assert/1.0.1 + minimalistic-crypto-utils: registry.npmjs.org/minimalistic-crypto-utils/1.0.1 + dev: false + + registry.npmjs.org/html-encoding-sniffer/2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz} + name: html-encoding-sniffer + version: 2.0.1 + engines: {node: '>=10'} + dependencies: + whatwg-encoding: registry.npmjs.org/whatwg-encoding/1.0.5 + dev: false + + registry.npmjs.org/html-encoding-sniffer/3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz} + name: html-encoding-sniffer + version: 3.0.0 + engines: {node: '>=12'} + dependencies: + whatwg-encoding: registry.npmjs.org/whatwg-encoding/2.0.0 + dev: true + + registry.npmjs.org/http-proxy-agent/4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz} + name: http-proxy-agent + version: 4.0.1 + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': registry.npmjs.org/@tootallnate/once/1.1.2 + agent-base: registry.npmjs.org/agent-base/6.0.2 + debug: registry.npmjs.org/debug/4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmjs.org/http-proxy-agent/5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz} + name: http-proxy-agent + version: 5.0.0 + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': registry.npmjs.org/@tootallnate/once/2.0.0 + agent-base: registry.npmjs.org/agent-base/6.0.2 + debug: registry.npmjs.org/debug/4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/https-proxy-agent/5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz} + name: https-proxy-agent + version: 5.0.1 + engines: {node: '>= 6'} + dependencies: + agent-base: registry.npmjs.org/agent-base/6.0.2 + debug: registry.npmjs.org/debug/4.3.4 + transitivePeerDependencies: + - supports-color + + registry.npmjs.org/iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz} + name: iconv-lite + version: 0.4.24 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmjs.org/safer-buffer/2.1.2 + dev: false + + registry.npmjs.org/iconv-lite/0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz} + name: iconv-lite + version: 0.6.3 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmjs.org/safer-buffer/2.1.2 + dev: true + + registry.npmjs.org/inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmjs.org/once/1.4.0 + wrappy: registry.npmjs.org/wrappy/1.0.2 + dev: true + + registry.npmjs.org/inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + + registry.npmjs.org/injectpromise/1.0.0: + resolution: {integrity: sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/injectpromise/-/injectpromise-1.0.0.tgz} + name: injectpromise + version: 1.0.0 + dev: false + + registry.npmjs.org/internal-slot/1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz} + name: internal-slot + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + has: registry.npmjs.org/has/1.0.3 + side-channel: registry.npmjs.org/side-channel/1.0.4 + dev: true + + registry.npmjs.org/interpret/1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz} + name: interpret + version: 1.4.0 + engines: {node: '>= 0.10'} + dev: true + + registry.npmjs.org/is-arguments/1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz} + name: is-arguments + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + has-tostringtag: registry.npmjs.org/has-tostringtag/1.0.0 + dev: true + + registry.npmjs.org/is-array-buffer/3.0.1: + resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz} + name: is-array-buffer + version: 3.0.1 + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + is-typed-array: registry.npmjs.org/is-typed-array/1.1.10 + dev: true + + registry.npmjs.org/is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz} + name: is-bigint + version: 1.0.4 + dependencies: + has-bigints: registry.npmjs.org/has-bigints/1.0.2 + dev: true + + registry.npmjs.org/is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + name: is-boolean-object + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + has-tostringtag: registry.npmjs.org/has-tostringtag/1.0.0 + dev: true + + registry.npmjs.org/is-callable/1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz} + name: is-callable + version: 1.2.7 + engines: {node: '>= 0.4'} + dev: true + + registry.npmjs.org/is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz} + name: is-core-module + version: 2.11.0 + dependencies: + has: registry.npmjs.org/has/1.0.3 + dev: true + + registry.npmjs.org/is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz} + name: is-date-object + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmjs.org/has-tostringtag/1.0.0 + dev: true + + registry.npmjs.org/is-map/2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz} + name: is-map + version: 2.0.2 + dev: true + + registry.npmjs.org/is-number-object/1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz} + name: is-number-object + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmjs.org/has-tostringtag/1.0.0 + dev: true + + registry.npmjs.org/is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + + registry.npmjs.org/is-potential-custom-element-name/1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz} + name: is-potential-custom-element-name + version: 1.0.1 + + registry.npmjs.org/is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + has-tostringtag: registry.npmjs.org/has-tostringtag/1.0.0 + dev: true + + registry.npmjs.org/is-set/2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz} + name: is-set + version: 2.0.2 + dev: true + + registry.npmjs.org/is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + name: is-shared-array-buffer + version: 1.0.2 + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + dev: true + + registry.npmjs.org/is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz} + name: is-string + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmjs.org/has-tostringtag/1.0.0 + dev: true + + registry.npmjs.org/is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz} + name: is-symbol + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmjs.org/has-symbols/1.0.3 + dev: true + + registry.npmjs.org/is-typed-array/1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz} + name: is-typed-array + version: 1.1.10 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmjs.org/available-typed-arrays/1.0.5 + call-bind: registry.npmjs.org/call-bind/1.0.2 + for-each: registry.npmjs.org/for-each/0.3.3 + gopd: registry.npmjs.org/gopd/1.0.1 + has-tostringtag: registry.npmjs.org/has-tostringtag/1.0.0 + dev: true + + registry.npmjs.org/is-weakmap/2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz} + name: is-weakmap + version: 2.0.1 + dev: true + + registry.npmjs.org/is-weakset/2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz} + name: is-weakset + version: 2.0.2 + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + dev: true + + registry.npmjs.org/isarray/2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz} + name: isarray + version: 2.0.5 + dev: true + + registry.npmjs.org/jest-environment-jsdom/27.5.1: + resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz} + name: jest-environment-jsdom + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/environment': registry.npmjs.org/@jest/environment/27.5.1 + '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/27.5.1 + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-mock: registry.npmjs.org/jest-mock/27.5.1 + jest-util: registry.npmjs.org/jest-util/27.5.1 + jsdom: registry.npmjs.org/jsdom/16.7.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: false + + registry.npmjs.org/jest-environment-jsdom/29.4.2: + resolution: {integrity: sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.4.2.tgz} + name: jest-environment-jsdom + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + '@jest/environment': registry.npmjs.org/@jest/environment/29.4.2 + '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/29.4.2 + '@jest/types': registry.npmjs.org/@jest/types/29.4.2 + '@types/jsdom': registry.npmjs.org/@types/jsdom/20.0.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-mock: registry.npmjs.org/jest-mock/29.4.2 + jest-util: registry.npmjs.org/jest-util/29.4.2 + jsdom: registry.npmjs.org/jsdom/20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + registry.npmjs.org/jest-message-util/27.5.1: + resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz} + name: jest-message-util + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@babel/code-frame': registry.npmjs.org/@babel/code-frame/7.18.6 + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/stack-utils': registry.npmjs.org/@types/stack-utils/2.0.1 + chalk: registry.npmjs.org/chalk/4.1.2 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + micromatch: registry.npmjs.org/micromatch/4.0.5 + pretty-format: registry.npmjs.org/pretty-format/27.5.1 + slash: registry.npmjs.org/slash/3.0.0 + stack-utils: registry.npmjs.org/stack-utils/2.0.6 + dev: false + + registry.npmjs.org/jest-message-util/29.4.2: + resolution: {integrity: sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.2.tgz} + name: jest-message-util + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': registry.npmjs.org/@babel/code-frame/7.18.6 + '@jest/types': registry.npmjs.org/@jest/types/29.4.2 + '@types/stack-utils': registry.npmjs.org/@types/stack-utils/2.0.1 + chalk: registry.npmjs.org/chalk/4.1.2 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + micromatch: registry.npmjs.org/micromatch/4.0.5 + pretty-format: registry.npmjs.org/pretty-format/29.4.2 + slash: registry.npmjs.org/slash/3.0.0 + stack-utils: registry.npmjs.org/stack-utils/2.0.6 + dev: true + + registry.npmjs.org/jest-mock/27.5.1: + resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz} + name: jest-mock + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + dev: false + + registry.npmjs.org/jest-mock/29.4.2: + resolution: {integrity: sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-mock/-/jest-mock-29.4.2.tgz} + name: jest-mock + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmjs.org/@jest/types/29.4.2 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + jest-util: registry.npmjs.org/jest-util/29.4.2 + dev: true + + registry.npmjs.org/jest-util/27.5.1: + resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz} + name: jest-util + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': registry.npmjs.org/@jest/types/27.5.1 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + chalk: registry.npmjs.org/chalk/4.1.2 + ci-info: registry.npmjs.org/ci-info/3.7.1 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + picomatch: registry.npmjs.org/picomatch/2.3.1 + dev: false + + registry.npmjs.org/jest-util/29.4.2: + resolution: {integrity: sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-util/-/jest-util-29.4.2.tgz} + name: jest-util + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmjs.org/@jest/types/29.4.2 + '@types/node': registry.npmjs.org/@types/node/18.13.0 + chalk: registry.npmjs.org/chalk/4.1.2 + ci-info: registry.npmjs.org/ci-info/3.7.1 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + picomatch: registry.npmjs.org/picomatch/2.3.1 + dev: true + + registry.npmjs.org/jest-worker/27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz} + name: jest-worker + version: 27.5.1 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': registry.npmjs.org/@types/node/18.13.0 + merge-stream: registry.npmjs.org/merge-stream/2.0.0 + supports-color: registry.npmjs.org/supports-color/8.1.1 + + registry.npmjs.org/js-sha3/0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz} + name: js-sha3 + version: 0.8.0 + dev: false + + registry.npmjs.org/js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + + registry.npmjs.org/jsdom/16.7.0: + resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz} + name: jsdom + version: 16.7.0 + engines: {node: '>=10'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: registry.npmjs.org/abab/2.0.6 + acorn: registry.npmjs.org/acorn/8.8.2 + acorn-globals: registry.npmjs.org/acorn-globals/6.0.0 + cssom: registry.npmjs.org/cssom/0.4.4 + cssstyle: registry.npmjs.org/cssstyle/2.3.0 + data-urls: registry.npmjs.org/data-urls/2.0.0 + decimal.js: registry.npmjs.org/decimal.js/10.4.3 + domexception: registry.npmjs.org/domexception/2.0.1 + escodegen: registry.npmjs.org/escodegen/2.0.0 + form-data: registry.npmjs.org/form-data/3.0.1 + html-encoding-sniffer: registry.npmjs.org/html-encoding-sniffer/2.0.1 + http-proxy-agent: registry.npmjs.org/http-proxy-agent/4.0.1 + https-proxy-agent: registry.npmjs.org/https-proxy-agent/5.0.1 + is-potential-custom-element-name: registry.npmjs.org/is-potential-custom-element-name/1.0.1 + nwsapi: registry.npmjs.org/nwsapi/2.2.2 + parse5: registry.npmjs.org/parse5/6.0.1 + saxes: registry.npmjs.org/saxes/5.0.1 + symbol-tree: registry.npmjs.org/symbol-tree/3.2.4 + tough-cookie: registry.npmjs.org/tough-cookie/4.1.2 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: registry.npmjs.org/w3c-xmlserializer/2.0.0 + webidl-conversions: registry.npmjs.org/webidl-conversions/6.1.0 + whatwg-encoding: registry.npmjs.org/whatwg-encoding/1.0.5 + whatwg-mimetype: registry.npmjs.org/whatwg-mimetype/2.3.0 + whatwg-url: registry.npmjs.org/whatwg-url/8.7.0 + ws: registry.npmjs.org/ws/7.5.9 + xml-name-validator: registry.npmjs.org/xml-name-validator/3.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + registry.npmjs.org/jsdom/20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz} + name: jsdom + version: 20.0.3 + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: registry.npmjs.org/abab/2.0.6 + acorn: registry.npmjs.org/acorn/8.8.2 + acorn-globals: registry.npmjs.org/acorn-globals/7.0.1 + cssom: registry.npmjs.org/cssom/0.5.0 + cssstyle: registry.npmjs.org/cssstyle/2.3.0 + data-urls: registry.npmjs.org/data-urls/3.0.2 + decimal.js: registry.npmjs.org/decimal.js/10.4.3 + domexception: registry.npmjs.org/domexception/4.0.0 + escodegen: registry.npmjs.org/escodegen/2.0.0 + form-data: registry.npmjs.org/form-data/4.0.0 + html-encoding-sniffer: registry.npmjs.org/html-encoding-sniffer/3.0.0 + http-proxy-agent: registry.npmjs.org/http-proxy-agent/5.0.0 + https-proxy-agent: registry.npmjs.org/https-proxy-agent/5.0.1 + is-potential-custom-element-name: registry.npmjs.org/is-potential-custom-element-name/1.0.1 + nwsapi: registry.npmjs.org/nwsapi/2.2.2 + parse5: registry.npmjs.org/parse5/7.1.2 + saxes: registry.npmjs.org/saxes/6.0.0 + symbol-tree: registry.npmjs.org/symbol-tree/3.2.4 + tough-cookie: registry.npmjs.org/tough-cookie/4.1.2 + w3c-xmlserializer: registry.npmjs.org/w3c-xmlserializer/4.0.0 + webidl-conversions: registry.npmjs.org/webidl-conversions/7.0.0 + whatwg-encoding: registry.npmjs.org/whatwg-encoding/2.0.0 + whatwg-mimetype: registry.npmjs.org/whatwg-mimetype/3.0.0 + whatwg-url: registry.npmjs.org/whatwg-url/11.0.0 + ws: registry.npmjs.org/ws/8.12.0 + xml-name-validator: registry.npmjs.org/xml-name-validator/4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + registry.npmjs.org/json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + name: json-parse-even-better-errors + version: 2.3.1 + + registry.npmjs.org/json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + + registry.npmjs.org/levn/0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/levn/-/levn-0.3.0.tgz} + name: levn + version: 0.3.0 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmjs.org/prelude-ls/1.1.2 + type-check: registry.npmjs.org/type-check/0.3.2 + + registry.npmjs.org/loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz} + name: loader-runner + version: 4.3.0 + engines: {node: '>=6.11.5'} + + registry.npmjs.org/lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + dev: false + + registry.npmjs.org/lz-string/1.4.4: + resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz} + name: lz-string + version: 1.4.4 + hasBin: true + dev: true + + registry.npmjs.org/merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + + registry.npmjs.org/micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmjs.org/braces/3.0.2 + picomatch: registry.npmjs.org/picomatch/2.3.1 + + registry.npmjs.org/mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz} + name: mime-db + version: 1.52.0 + engines: {node: '>= 0.6'} + + registry.npmjs.org/mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz} + name: mime-types + version: 2.1.35 + engines: {node: '>= 0.6'} + dependencies: + mime-db: registry.npmjs.org/mime-db/1.52.0 + + registry.npmjs.org/minimalistic-assert/1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz} + name: minimalistic-assert + version: 1.0.1 + dev: false + + registry.npmjs.org/minimalistic-crypto-utils/1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz} + name: minimalistic-crypto-utils + version: 1.0.1 + dev: false + + registry.npmjs.org/minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmjs.org/brace-expansion/1.1.11 + dev: true + + registry.npmjs.org/minimatch/5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz} + name: minimatch + version: 5.1.6 + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: false + + registry.npmjs.org/minimist/1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz} + name: minimist + version: 1.2.8 + dev: true + + registry.npmjs.org/ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + + registry.npmjs.org/mutation-observer/1.0.3: + resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz} + name: mutation-observer + version: 1.0.3 + dev: false + + registry.npmjs.org/neo-async/2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz} + name: neo-async + version: 2.6.2 + + registry.npmjs.org/node-releases/2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz} + name: node-releases + version: 2.0.10 + + registry.npmjs.org/nwsapi/2.2.2: + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz} + name: nwsapi + version: 2.2.2 + + registry.npmjs.org/object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz} + name: object-inspect + version: 1.12.3 + dev: true + + registry.npmjs.org/object-is/1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz} + name: object-is + version: 1.1.5 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + define-properties: registry.npmjs.org/define-properties/1.1.4 + dev: true + + registry.npmjs.org/object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz} + name: object-keys + version: 1.1.1 + engines: {node: '>= 0.4'} + dev: true + + registry.npmjs.org/object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz} + name: object.assign + version: 4.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + define-properties: registry.npmjs.org/define-properties/1.1.4 + has-symbols: registry.npmjs.org/has-symbols/1.0.3 + object-keys: registry.npmjs.org/object-keys/1.1.1 + dev: true + + registry.npmjs.org/once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmjs.org/wrappy/1.0.2 + dev: true + + registry.npmjs.org/optionator/0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz} + name: optionator + version: 0.8.3 + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: registry.npmjs.org/deep-is/0.1.4 + fast-levenshtein: registry.npmjs.org/fast-levenshtein/2.0.6 + levn: registry.npmjs.org/levn/0.3.0 + prelude-ls: registry.npmjs.org/prelude-ls/1.1.2 + type-check: registry.npmjs.org/type-check/0.3.2 + word-wrap: registry.npmjs.org/word-wrap/1.2.3 + + registry.npmjs.org/parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz} + name: parse5 + version: 6.0.1 + dev: false + + registry.npmjs.org/parse5/7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz} + name: parse5 + version: 7.1.2 + dependencies: + entities: registry.npmjs.org/entities/4.4.0 + dev: true + + registry.npmjs.org/path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmjs.org/path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.npmjs.org/picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + + registry.npmjs.org/picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + + registry.npmjs.org/prelude-ls/1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz} + name: prelude-ls + version: 1.1.2 + engines: {node: '>= 0.8.0'} + + registry.npmjs.org/pretty-format/27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz} + name: pretty-format + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: registry.npmjs.org/ansi-regex/5.0.1 + ansi-styles: registry.npmjs.org/ansi-styles/5.2.0 + react-is: registry.npmjs.org/react-is/17.0.2 + + registry.npmjs.org/pretty-format/28.1.3: + resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz} + name: pretty-format + version: 28.1.3 + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/schemas': registry.npmjs.org/@jest/schemas/28.1.3 + ansi-regex: registry.npmjs.org/ansi-regex/5.0.1 + ansi-styles: registry.npmjs.org/ansi-styles/5.2.0 + react-is: registry.npmjs.org/react-is/18.2.0 + dev: false + + registry.npmjs.org/pretty-format/29.4.2: + resolution: {integrity: sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.2.tgz} + name: pretty-format + version: 29.4.2 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': registry.npmjs.org/@jest/schemas/29.4.2 + ansi-styles: registry.npmjs.org/ansi-styles/5.2.0 + react-is: registry.npmjs.org/react-is/18.2.0 + dev: true + + registry.npmjs.org/psl/1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/psl/-/psl-1.9.0.tgz} + name: psl + version: 1.9.0 + + registry.npmjs.org/punycode/2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz} + name: punycode + version: 2.3.0 + engines: {node: '>=6'} + + registry.npmjs.org/querystringify/2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz} + name: querystringify + version: 2.2.0 + + registry.npmjs.org/randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz} + name: randombytes + version: 2.1.0 + dependencies: + safe-buffer: registry.npmjs.org/safe-buffer/5.2.1 + + registry.npmjs.org/react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz} + name: react-is + version: 17.0.2 + + registry.npmjs.org/react-is/18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz} + name: react-is + version: 18.2.0 + + registry.npmjs.org/rechoir/0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz} + name: rechoir + version: 0.6.2 + engines: {node: '>= 0.10'} + dependencies: + resolve: registry.npmjs.org/resolve/1.22.1 + dev: true + + registry.npmjs.org/regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + name: regenerator-runtime + version: 0.13.11 + + registry.npmjs.org/regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz} + name: regexp.prototype.flags + version: 1.4.3 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + define-properties: registry.npmjs.org/define-properties/1.1.4 + functions-have-names: registry.npmjs.org/functions-have-names/1.2.3 + dev: true + + registry.npmjs.org/requires-port/1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz} + name: requires-port + version: 1.0.0 + + registry.npmjs.org/resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz} + name: resolve + version: 1.22.1 + hasBin: true + dependencies: + is-core-module: registry.npmjs.org/is-core-module/2.11.0 + path-parse: registry.npmjs.org/path-parse/1.0.7 + supports-preserve-symlinks-flag: registry.npmjs.org/supports-preserve-symlinks-flag/1.0.0 + dev: true + + registry.npmjs.org/safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz} + name: safe-buffer + version: 5.2.1 + + registry.npmjs.org/safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz} + name: safer-buffer + version: 2.1.2 + + registry.npmjs.org/saxes/5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz} + name: saxes + version: 5.0.1 + engines: {node: '>=10'} + dependencies: + xmlchars: registry.npmjs.org/xmlchars/2.2.0 + dev: false + + registry.npmjs.org/saxes/6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz} + name: saxes + version: 6.0.0 + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: registry.npmjs.org/xmlchars/2.2.0 + dev: true + + registry.npmjs.org/schema-utils/2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz} + name: schema-utils + version: 2.7.0 + engines: {node: '>= 8.9.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + dev: false + + registry.npmjs.org/schema-utils/3.1.1: + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz} + name: schema-utils + version: 3.1.1 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': registry.npmjs.org/@types/json-schema/7.0.11 + ajv: registry.npmjs.org/ajv/6.12.6 + ajv-keywords: registry.npmjs.org/ajv-keywords/3.5.2_ajv@6.12.6 + + registry.npmjs.org/schema-utils/4.0.0: + resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz} + name: schema-utils + version: 4.0.0 + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 8.12.0 + ajv-formats: 2.1.1 + ajv-keywords: 5.1.0_ajv@8.12.0 + dev: false + + registry.npmjs.org/scrypt-js/3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz} + name: scrypt-js + version: 3.0.1 + dev: false + + registry.npmjs.org/semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/semver/-/semver-5.7.1.tgz} + name: semver + version: 5.7.1 + hasBin: true + dev: false + + registry.npmjs.org/serialize-javascript/6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz} + name: serialize-javascript + version: 6.0.1 + dependencies: + randombytes: registry.npmjs.org/randombytes/2.1.0 + + registry.npmjs.org/shelljs/0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz} + name: shelljs + version: 0.8.5 + engines: {node: '>=4'} + hasBin: true + dependencies: + glob: registry.npmjs.org/glob/7.2.3 + interpret: registry.npmjs.org/interpret/1.4.0 + rechoir: registry.npmjs.org/rechoir/0.6.2 + dev: true + + registry.npmjs.org/shx/0.3.4: + resolution: {integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/shx/-/shx-0.3.4.tgz} + name: shx + version: 0.3.4 + engines: {node: '>=6'} + hasBin: true + dependencies: + minimist: registry.npmjs.org/minimist/1.2.8 + shelljs: registry.npmjs.org/shelljs/0.8.5 + dev: true + + registry.npmjs.org/side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmjs.org/call-bind/1.0.2 + get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 + object-inspect: registry.npmjs.org/object-inspect/1.12.3 + dev: true + + registry.npmjs.org/slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + + registry.npmjs.org/source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz} + name: source-map-support + version: 0.5.21 + dependencies: + buffer-from: registry.npmjs.org/buffer-from/1.1.2 + source-map: registry.npmjs.org/source-map/0.6.1 + + registry.npmjs.org/source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + requiresBuild: true + + registry.npmjs.org/stack-utils/2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz} + name: stack-utils + version: 2.0.6 + engines: {node: '>=10'} + dependencies: + escape-string-regexp: registry.npmjs.org/escape-string-regexp/2.0.0 + + registry.npmjs.org/stop-iteration-iterator/1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz} + name: stop-iteration-iterator + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + internal-slot: registry.npmjs.org/internal-slot/1.0.5 + dev: true + + registry.npmjs.org/supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmjs.org/has-flag/3.0.0 + + registry.npmjs.org/supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmjs.org/has-flag/4.0.0 + + registry.npmjs.org/supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz} + name: supports-color + version: 8.1.1 + engines: {node: '>=10'} + dependencies: + has-flag: registry.npmjs.org/has-flag/4.0.0 + + registry.npmjs.org/supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: true + + registry.npmjs.org/symbol-tree/3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz} + name: symbol-tree + version: 3.2.4 + + registry.npmjs.org/tapable/1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz} + name: tapable + version: 1.1.3 + engines: {node: '>=6'} + dev: false + + registry.npmjs.org/tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz} + name: tapable + version: 2.2.1 + engines: {node: '>=6'} + + registry.npmjs.org/terser-webpack-plugin/5.3.6_webpack@5.78.0: + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz} + id: registry.npmjs.org/terser-webpack-plugin/5.3.6 + name: terser-webpack-plugin + version: 5.3.6 + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping/0.3.17 + jest-worker: registry.npmjs.org/jest-worker/27.5.1 + schema-utils: registry.npmjs.org/schema-utils/3.1.1 + serialize-javascript: registry.npmjs.org/serialize-javascript/6.0.1 + terser: registry.npmjs.org/terser/5.16.3 + webpack: registry.npmjs.org/webpack/5.78.0 + + registry.npmjs.org/terser/5.16.3: + resolution: {integrity: sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/terser/-/terser-5.16.3.tgz} + name: terser + version: 5.16.3 + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': registry.npmjs.org/@jridgewell/source-map/0.3.2 + acorn: registry.npmjs.org/acorn/8.8.2 + commander: registry.npmjs.org/commander/2.20.3 + source-map-support: registry.npmjs.org/source-map-support/0.5.21 + + registry.npmjs.org/to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmjs.org/is-number/7.0.0 + + registry.npmjs.org/tough-cookie/4.1.2: + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz} + name: tough-cookie + version: 4.1.2 + engines: {node: '>=6'} + dependencies: + psl: registry.npmjs.org/psl/1.9.0 + punycode: registry.npmjs.org/punycode/2.3.0 + universalify: registry.npmjs.org/universalify/0.2.0 + url-parse: registry.npmjs.org/url-parse/1.5.10 + + registry.npmjs.org/tr46/2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz} + name: tr46 + version: 2.1.0 + engines: {node: '>=8'} + dependencies: + punycode: registry.npmjs.org/punycode/2.3.0 + dev: false + + registry.npmjs.org/tr46/3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz} + name: tr46 + version: 3.0.0 + engines: {node: '>=12'} + dependencies: + punycode: registry.npmjs.org/punycode/2.3.0 + dev: true + + registry.npmjs.org/tronweb/5.1.0: + resolution: {integrity: sha512-8a+mYKVUzsUWjeTHSAKcxAp82FseFTLlNLoLQ0KIL1rIt6Dy5whcyJwYatxUktbaztl55lnImHbupkKqMdIj1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tronweb/-/tronweb-5.1.0.tgz} + name: tronweb + version: 5.1.0 + dependencies: + '@babel/runtime': registry.npmjs.org/@babel/runtime/7.20.13 + '@tronweb3/google-protobuf': registry.npmjs.org/@tronweb3/google-protobuf/3.21.2 + axios: registry.npmjs.org/axios/0.26.1 + bignumber.js: registry.npmjs.org/bignumber.js/9.1.1 + elliptic: registry.npmjs.org/elliptic/6.5.4 + ethers: registry.npmjs.org/ethers/5.7.2 + eventemitter3: registry.npmjs.org/eventemitter3/3.1.2 + injectpromise: registry.npmjs.org/injectpromise/1.0.0 + lodash: registry.npmjs.org/lodash/4.17.21 + semver: registry.npmjs.org/semver/5.7.1 + validator: registry.npmjs.org/validator/13.9.0 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + dev: false + + registry.npmjs.org/tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: false + + registry.npmjs.org/tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz} + name: tslib + version: 2.5.0 + dev: false + + registry.npmjs.org/type-check/0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz} + name: type-check + version: 0.3.2 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmjs.org/prelude-ls/1.1.2 + + registry.npmjs.org/type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz} + name: type-detect + version: 4.0.8 + engines: {node: '>=4'} + + registry.npmjs.org/universalify/0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz} + name: universalify + version: 0.2.0 + engines: {node: '>= 4.0.0'} + + registry.npmjs.org/update-browserslist-db/1.0.10_browserslist@4.21.5: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz} + id: registry.npmjs.org/update-browserslist-db/1.0.10 + name: update-browserslist-db + version: 1.0.10 + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: registry.npmjs.org/browserslist/4.21.5 + escalade: registry.npmjs.org/escalade/3.1.1 + picocolors: registry.npmjs.org/picocolors/1.0.0 + + registry.npmjs.org/uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmjs.org/punycode/2.3.0 + + registry.npmjs.org/url-parse/1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz} + name: url-parse + version: 1.5.10 + dependencies: + querystringify: registry.npmjs.org/querystringify/2.2.0 + requires-port: registry.npmjs.org/requires-port/1.0.0 + + registry.npmjs.org/validator/13.9.0: + resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/validator/-/validator-13.9.0.tgz} + name: validator + version: 13.9.0 + engines: {node: '>= 0.10'} + dev: false + + registry.npmjs.org/vconsole/3.15.0: + resolution: {integrity: sha512-8hq7wabPcRucSWQyN7/1tthMawP9JPvM95zgtMHpPknMMMCKj+abpoK7P7oKK4B0qw58C24Mdvo9+raUdpHyVQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/vconsole/-/vconsole-3.15.0.tgz} + name: vconsole + version: 3.15.0 + dependencies: + '@babel/runtime': registry.npmjs.org/@babel/runtime/7.20.13 + copy-text-to-clipboard: registry.npmjs.org/copy-text-to-clipboard/3.0.1 + core-js: registry.npmjs.org/core-js/3.27.2 + mutation-observer: registry.npmjs.org/mutation-observer/1.0.3 + dev: false + + registry.npmjs.org/w3c-xmlserializer/2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz} + name: w3c-xmlserializer + version: 2.0.0 + engines: {node: '>=10'} + dependencies: + xml-name-validator: registry.npmjs.org/xml-name-validator/3.0.0 + dev: false + + registry.npmjs.org/w3c-xmlserializer/4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz} + name: w3c-xmlserializer + version: 4.0.0 + engines: {node: '>=14'} + dependencies: + xml-name-validator: registry.npmjs.org/xml-name-validator/4.0.0 + dev: true + + registry.npmjs.org/watchpack/2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz} + name: watchpack + version: 2.4.0 + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: registry.npmjs.org/glob-to-regexp/0.4.1 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + + registry.npmjs.org/webidl-conversions/5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz} + name: webidl-conversions + version: 5.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmjs.org/webidl-conversions/6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz} + name: webidl-conversions + version: 6.1.0 + engines: {node: '>=10.4'} + dev: false + + registry.npmjs.org/webidl-conversions/7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz} + name: webidl-conversions + version: 7.0.0 + engines: {node: '>=12'} + dev: true + + registry.npmjs.org/webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz} + name: webpack-sources + version: 3.2.3 + engines: {node: '>=10.13.0'} + + registry.npmjs.org/webpack/5.78.0: + resolution: {integrity: sha512-gT5DP72KInmE/3azEaQrISjTvLYlSM0j1Ezhht/KLVkrqtv10JoP/RXhwmX/frrutOPuSq3o5Vq0ehR/4Vmd1g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webpack/-/webpack-5.78.0.tgz} + name: webpack + version: 5.78.0 + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': registry.npmjs.org/@types/eslint-scope/3.7.4 + '@types/estree': registry.npmjs.org/@types/estree/0.0.51 + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/wasm-edit': registry.npmjs.org/@webassemblyjs/wasm-edit/1.11.1 + '@webassemblyjs/wasm-parser': registry.npmjs.org/@webassemblyjs/wasm-parser/1.11.1 + acorn: registry.npmjs.org/acorn/8.8.2 + acorn-import-assertions: registry.npmjs.org/acorn-import-assertions/1.8.0_acorn@8.8.2 + browserslist: registry.npmjs.org/browserslist/4.21.5 + chrome-trace-event: registry.npmjs.org/chrome-trace-event/1.0.3 + enhanced-resolve: registry.npmjs.org/enhanced-resolve/5.12.0 + es-module-lexer: registry.npmjs.org/es-module-lexer/0.9.3 + eslint-scope: registry.npmjs.org/eslint-scope/5.1.1 + events: registry.npmjs.org/events/3.3.0 + glob-to-regexp: registry.npmjs.org/glob-to-regexp/0.4.1 + graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + json-parse-even-better-errors: registry.npmjs.org/json-parse-even-better-errors/2.3.1 + loader-runner: registry.npmjs.org/loader-runner/4.3.0 + mime-types: registry.npmjs.org/mime-types/2.1.35 + neo-async: registry.npmjs.org/neo-async/2.6.2 + schema-utils: registry.npmjs.org/schema-utils/3.1.1 + tapable: registry.npmjs.org/tapable/2.2.1 + terser-webpack-plugin: registry.npmjs.org/terser-webpack-plugin/5.3.6_webpack@5.78.0 + watchpack: registry.npmjs.org/watchpack/2.4.0 + webpack-sources: registry.npmjs.org/webpack-sources/3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + registry.npmjs.org/whatwg-encoding/1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz} + name: whatwg-encoding + version: 1.0.5 + dependencies: + iconv-lite: registry.npmjs.org/iconv-lite/0.4.24 + dev: false + + registry.npmjs.org/whatwg-encoding/2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz} + name: whatwg-encoding + version: 2.0.0 + engines: {node: '>=12'} + dependencies: + iconv-lite: registry.npmjs.org/iconv-lite/0.6.3 + dev: true + + registry.npmjs.org/whatwg-mimetype/2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz} + name: whatwg-mimetype + version: 2.3.0 + dev: false + + registry.npmjs.org/whatwg-mimetype/3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz} + name: whatwg-mimetype + version: 3.0.0 + engines: {node: '>=12'} + dev: true + + registry.npmjs.org/whatwg-url/11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz} + name: whatwg-url + version: 11.0.0 + engines: {node: '>=12'} + dependencies: + tr46: registry.npmjs.org/tr46/3.0.0 + webidl-conversions: registry.npmjs.org/webidl-conversions/7.0.0 + dev: true + + registry.npmjs.org/whatwg-url/8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz} + name: whatwg-url + version: 8.7.0 + engines: {node: '>=10'} + dependencies: + lodash: 4.17.21 + tr46: registry.npmjs.org/tr46/2.1.0 + webidl-conversions: registry.npmjs.org/webidl-conversions/6.1.0 + dev: false + + registry.npmjs.org/which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + name: which-boxed-primitive + version: 1.0.2 + dependencies: + is-bigint: registry.npmjs.org/is-bigint/1.0.4 + is-boolean-object: registry.npmjs.org/is-boolean-object/1.1.2 + is-number-object: registry.npmjs.org/is-number-object/1.0.7 + is-string: registry.npmjs.org/is-string/1.0.7 + is-symbol: registry.npmjs.org/is-symbol/1.0.4 + dev: true + + registry.npmjs.org/which-collection/1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz} + name: which-collection + version: 1.0.1 + dependencies: + is-map: registry.npmjs.org/is-map/2.0.2 + is-set: registry.npmjs.org/is-set/2.0.2 + is-weakmap: registry.npmjs.org/is-weakmap/2.0.1 + is-weakset: registry.npmjs.org/is-weakset/2.0.2 + dev: true + + registry.npmjs.org/which-typed-array/1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz} + name: which-typed-array + version: 1.1.9 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmjs.org/available-typed-arrays/1.0.5 + call-bind: registry.npmjs.org/call-bind/1.0.2 + for-each: registry.npmjs.org/for-each/0.3.3 + gopd: registry.npmjs.org/gopd/1.0.1 + has-tostringtag: registry.npmjs.org/has-tostringtag/1.0.0 + is-typed-array: registry.npmjs.org/is-typed-array/1.1.10 + dev: true + + registry.npmjs.org/word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz} + name: word-wrap + version: 1.2.3 + engines: {node: '>=0.10.0'} + + registry.npmjs.org/wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: true + + registry.npmjs.org/ws/7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ws/-/ws-7.4.6.tgz} + name: ws + version: 7.4.6 + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + registry.npmjs.org/ws/7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ws/-/ws-7.5.9.tgz} + name: ws + version: 7.5.9 + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + registry.npmjs.org/ws/8.12.0: + resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ws/-/ws-8.12.0.tgz} + name: ws + version: 8.12.0 + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + registry.npmjs.org/xml-name-validator/3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz} + name: xml-name-validator + version: 3.0.0 + dev: false + + registry.npmjs.org/xml-name-validator/4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz} + name: xml-name-validator + version: 4.0.0 + engines: {node: '>=12'} + dev: true + + registry.npmjs.org/xmlchars/2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz} + name: xmlchars + version: 2.2.0 diff --git a/tsconfig.all.json b/tsconfig.all.json index e44487d..de93a15 100644 --- a/tsconfig.all.json +++ b/tsconfig.all.json @@ -16,6 +16,12 @@ { "path": "./packages/adapters/walletconnect/tsconfig.all.json" }, + { + "path": "./packages/adapters/tokenpocket/tsconfig.all.json" + }, + { + "path": "./packages/adapters/bitkeep/tsconfig.all.json" + }, { "path": "./packages/react/react-hooks/tsconfig.all.json" }, From 00949dd78d49929e38250bbe16fa7a7f89c4544c Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Mon, 17 Apr 2023 11:41:32 +0800 Subject: [PATCH 02/12] feat: update docs and extract network util function --- demos/react-ui/vite-app/src/main.tsx | 6 +-- packages/adapters/adapters/README.md | 22 +++-------- packages/adapters/bitkeep/src/adapter.ts | 18 ++------- packages/adapters/tokenpocket/src/adapter.ts | 39 +++----------------- packages/adapters/tokenpocket/src/utils.ts | 19 +--------- packages/adapters/tronlink/src/adapter.ts | 26 +++++++------ pnpm-lock.yaml | 22 ++++------- 7 files changed, 44 insertions(+), 108 deletions(-) diff --git a/demos/react-ui/vite-app/src/main.tsx b/demos/react-ui/vite-app/src/main.tsx index 34ccb93..5b2eff3 100644 --- a/demos/react-ui/vite-app/src/main.tsx +++ b/demos/react-ui/vite-app/src/main.tsx @@ -7,9 +7,9 @@ import { Toaster } from 'react-hot-toast'; import { App } from './App'; import { ThemeProvider } from '@mui/material/styles'; import theme from './theme'; -import vConsole from 'vconsole' -new vConsole(); - +// import vConsole from 'vconsole' +// new vConsole(); +console.log(window.tronLink.ready, window.tronWeb.ready, window.tronWeb && window.tronWeb.defaultAddress) ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/packages/adapters/adapters/README.md b/packages/adapters/adapters/README.md index 3740008..40d26c3 100644 --- a/packages/adapters/adapters/README.md +++ b/packages/adapters/adapters/README.md @@ -231,7 +231,7 @@ try { openUrlWhenWalletNotFound?: boolean; /** * Timeout in millisecond for checking if TronLink wallet exists. - * Default is 10 * 1000ms + * Default is 30 * 1000ms */ checkTimeout?: number; /** @@ -312,7 +312,7 @@ try { ```typescript interface LedgerAdapterConfig { /** - * Set if open Wallet's website url when wallet is not installed. + * Set if open Wallet's website when wallet is not installed. * Default is true. */ openUrlWhenWalletNotFound?: boolean; @@ -401,13 +401,13 @@ try { ```typescript interface TokenPocketConfig { /** - * Set if open Wallet's website url when wallet is not installed. + * Set if open Wallet's website when wallet is not installed. * Default is true. */ openUrlWhenWalletNotFound?: boolean; /** * Timeout in millisecond for checking if TokenPocket wallet is supported. - * Default is 3 * 1000ms + * Default is 2 * 1000ms */ checkTimeout?: number; /** @@ -415,16 +415,6 @@ try { * Default is true. */ openTokenPocketAppOnMobile?: boolean; - /** - * The icon of your dapp. Used when open TokenPocket app in mobile device browsers. - * Default is current website icon. - */ - dappIcon?: string; - /** - * The name of your dapp. Used when open TokenPocket app in mobile device browsers. - * Default is `document.title`. - */ - dappName?: string; } ``` - `signMessage()`,`multiSign()`,`switchChain(chainId: string)` are not supported. @@ -435,13 +425,13 @@ try { ```typescript interface BitKeepConfig { /** - * Set if open Wallet's website url when wallet is not installed. + * Set if open Wallet's website when wallet is not installed. * Default is true. */ openUrlWhenWalletNotFound?: boolean; /** * Timeout in millisecond for checking if BitKeep wallet is supported. - * Default is 3 * 1000ms + * Default is 2 * 1000ms */ checkTimeout?: number; } diff --git a/packages/adapters/bitkeep/src/adapter.ts b/packages/adapters/bitkeep/src/adapter.ts index 404ea5e..ea916a2 100644 --- a/packages/adapters/bitkeep/src/adapter.ts +++ b/packages/adapters/bitkeep/src/adapter.ts @@ -7,11 +7,10 @@ import { WalletNotFoundError, WalletDisconnectedError, WalletSignTransactionError, - NetworkType, WalletConnectionError, WalletGetNetworkError, } from '@tronweb3/tronwallet-abstract-adapter'; -import { chainIdNetworkMap } from '@tronweb3/tronwallet-adapter-tronlink'; +import { getNetworkInfoByTronWeb } from '@tronweb3/tronwallet-adapter-tronlink'; import type { TronLinkWallet } from '@tronweb3/tronwallet-adapter-tronlink'; import type { Transaction, @@ -25,7 +24,7 @@ import { supportBitKeep } from './utils.js'; export interface BitKeepAdapterConfig extends BaseAdapterConfig { /** * Timeout in millisecond for checking if is support BitKeep. - * Default is 5 * 1000ms + * Default is 2 * 1000ms */ checkTimeout?: number; } @@ -92,7 +91,7 @@ export class BitKeepAdapter extends Adapter { } /** - * Get network information used by TronLink. + * Get network information used by TokenPocket. * @returns {Network} Current network information. */ async network(): Promise { @@ -102,15 +101,7 @@ export class BitKeepAdapter extends Adapter { const wallet = this._wallet; if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); try { - const { blockID = '' } = await wallet.tronWeb.trx.getBlockByNumber(0); - const chainId = `0x${blockID.slice(-8)}`; - return { - networkType: chainIdNetworkMap[chainId] || NetworkType.Unknown, - chainId, - fullNode: wallet.tronWeb.fullNode?.host || '', - solidityNode: wallet.tronWeb.solidityNode?.host || '', - eventServer: wallet.tronWeb.eventServer?.host || '', - }; + return await getNetworkInfoByTronWeb(wallet.tronWeb); } catch (e: any) { throw new WalletGetNetworkError(e?.message, e); } @@ -290,7 +281,6 @@ export class BitKeepAdapter extends Adapter { this.checkForWalletReady(); } } else { - // no tronlink support this._wallet = null; address = null; state = AdapterState.NotFound; diff --git a/packages/adapters/tokenpocket/src/adapter.ts b/packages/adapters/tokenpocket/src/adapter.ts index f08ec9d..747b0bb 100644 --- a/packages/adapters/tokenpocket/src/adapter.ts +++ b/packages/adapters/tokenpocket/src/adapter.ts @@ -8,7 +8,6 @@ import { WalletDisconnectedError, WalletSignTransactionError, isInMobileBrowser, - NetworkType, WalletGetNetworkError, } from '@tronweb3/tronwallet-abstract-adapter'; import type { @@ -18,14 +17,14 @@ import type { BaseAdapterConfig, Network, } from '@tronweb3/tronwallet-abstract-adapter'; -import { chainIdNetworkMap } from '@tronweb3/tronwallet-adapter-tronlink'; +import { getNetworkInfoByTronWeb } from '@tronweb3/tronwallet-adapter-tronlink'; import type { TronLinkWallet } from '@tronweb3/tronwallet-adapter-tronlink'; import { openTokenPocket, supportTokenPocket } from './utils.js'; export interface TokenPocketAdapterConfig extends BaseAdapterConfig { /** * Timeout in millisecond for checking if is in TokenPocket App. - * Default is 5 * 1000ms + * Default is 2 * 1000ms */ checkTimeout?: number; /** @@ -33,14 +32,6 @@ export interface TokenPocketAdapterConfig extends BaseAdapterConfig { * Default is true. */ openTokenPocketAppOnMobile?: boolean; - /** - * The icon of your dapp. Used when open TronLink app in mobile device browsers. - */ - dappIcon?: string; - /** - * The name of your dapp. Used when open TronLink app in mobile device browsers. - */ - dappName?: string; } export const TokenPocketAdapterName = 'TokenPocket' as AdapterName<'TokenPocket'>; @@ -60,13 +51,7 @@ export class TokenPocketAdapter extends Adapter { constructor(config: TokenPocketAdapterConfig = {}) { super(); - const { - checkTimeout = 2 * 1000, - dappIcon = '', - dappName = '', - openUrlWhenWalletNotFound = true, - openTokenPocketAppOnMobile = true, - } = config; + const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openTokenPocketAppOnMobile = true } = config; if (typeof checkTimeout !== 'number') { throw new Error('[TokenPocketAdapter] config.checkTimeout should be a number'); } @@ -74,8 +59,6 @@ export class TokenPocketAdapter extends Adapter { checkTimeout, openTokenPocketAppOnMobile, openUrlWhenWalletNotFound, - dappIcon, - dappName, }; this._connecting = false; this._wallet = null; @@ -115,7 +98,7 @@ export class TokenPocketAdapter extends Adapter { } /** - * Get network information used by TronLink. + * Get network information used by TokenPocket. * @returns {Network} Current network information. */ async network(): Promise { @@ -125,15 +108,7 @@ export class TokenPocketAdapter extends Adapter { const wallet = this._wallet; if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); try { - const { blockID = '' } = await wallet.tronWeb.trx.getBlockByNumber(0); - const chainId = `0x${blockID.slice(-8)}`; - return { - networkType: chainIdNetworkMap[chainId] || NetworkType.Unknown, - chainId, - fullNode: wallet.tronWeb.fullNode?.host || '', - solidityNode: wallet.tronWeb.solidityNode?.host || '', - eventServer: wallet.tronWeb.eventServer?.host || '', - }; + return await getNetworkInfoByTronWeb(wallet.tronWeb); } catch (e: any) { throw new WalletGetNetworkError(e?.message, e); } @@ -154,7 +129,6 @@ export class TokenPocketAdapter extends Adapter { } throw new WalletNotFoundError(); } - // lower version only support window.tronWeb, no window.tronLink if (!this._wallet) return; this._connecting = true; const wallet = this._wallet as TronLinkWallet; @@ -243,11 +217,10 @@ export class TokenPocketAdapter extends Adapter { } private checkIfOpenApp() { - const { dappName = '', dappIcon = '' } = this.config; if (this.config.openTokenPocketAppOnMobile === false) { return; } - if (openTokenPocket({ dappIcon, dappName })) { + if (openTokenPocket()) { throw new WalletNotFoundError(); } } diff --git a/packages/adapters/tokenpocket/src/utils.ts b/packages/adapters/tokenpocket/src/utils.ts index bfc1ed8..a63db0b 100644 --- a/packages/adapters/tokenpocket/src/utils.ts +++ b/packages/adapters/tokenpocket/src/utils.ts @@ -12,31 +12,16 @@ export function isInTokenPocket() { return isInBrowser() && typeof (window as any).tokenpocket !== 'undefined'; } -export function openTokenPocket( - { dappIcon, dappName }: { dappIcon: string; dappName: string } = { dappIcon: '', dappName: '' } -) { +export function openTokenPocket() { if (!supportTokenPocket() && isInMobileBrowser() && !isInTokenPocket()) { - let defaultDappName = '', - defaultDappIcon = ''; - try { - defaultDappName = document.title; - const link = document.querySelector('link[rel*="icon"]'); - if (link) { - defaultDappIcon = new URL(link.getAttribute('href') || '', location.href).toString(); - } - } catch (e) { - // console.error(e); - } const { origin, pathname, search, hash } = window.location; - const url = origin + pathname + search + (hash.includes('?') ? hash : `${hash}?_=1`); + const url = origin + pathname + search + hash; const params = { action: 'open', actionId: Date.now() + '', callbackUrl: 'http://someurl.com', // no need callback blockchain: 'Tron', chain: 'Tron', - dappIcon: dappIcon || defaultDappIcon, - dappName: dappName || defaultDappName, url, protocol: 'TokenPocket', version: '1.0', diff --git a/packages/adapters/tronlink/src/adapter.ts b/packages/adapters/tronlink/src/adapter.ts index 292a56e..269fabd 100644 --- a/packages/adapters/tronlink/src/adapter.ts +++ b/packages/adapters/tronlink/src/adapter.ts @@ -41,6 +41,18 @@ export const chainIdNetworkMap: Record = { '0x94a9059e': NetworkType.Shasta, '0xcd8690dc': NetworkType.Nile, }; + +export async function getNetworkInfoByTronWeb(tronWeb: TronWeb) { + const { blockID = '' } = await tronWeb.trx.getBlockByNumber(0); + const chainId = `0x${blockID.slice(-8)}`; + return { + networkType: chainIdNetworkMap[chainId] || NetworkType.Unknown, + chainId, + fullNode: tronWeb.fullNode?.host || '', + solidityNode: tronWeb.solidityNode?.host || '', + eventServer: tronWeb.eventServer?.host || '', + }; +} declare global { interface Window { tronLink?: TronLinkWallet; @@ -52,7 +64,7 @@ declare global { export interface TronLinkAdapterConfig extends BaseAdapterConfig { /** * Timeout in millisecond for checking if TronLink wallet exists. - * Default is 10 * 1000ms + * Default is 30 * 1000ms */ checkTimeout?: number; /** @@ -92,7 +104,7 @@ export class TronLinkAdapter extends Adapter { constructor(config: TronLinkAdapterConfig = {}) { super(); const { - checkTimeout = 10 * 1000, + checkTimeout = 30 * 1000, dappIcon = '', dappName = '', openUrlWhenWalletNotFound = true, @@ -155,15 +167,7 @@ export class TronLinkAdapter extends Adapter { const wallet = this._wallet; if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); try { - const { blockID = '' } = await wallet.tronWeb.trx.getBlockByNumber(0); - const chainId = `0x${blockID.slice(-8)}`; - return { - networkType: chainIdNetworkMap[chainId] || NetworkType.Unknown, - chainId, - fullNode: wallet.tronWeb.fullNode?.host || '', - solidityNode: wallet.tronWeb.solidityNode?.host || '', - eventServer: wallet.tronWeb.eventServer?.host || '', - }; + return await getNetworkInfoByTronWeb(wallet.tronWeb); } catch (e: any) { throw new WalletGetNetworkError(e?.message, e); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d6ceab..24da0e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -327,7 +327,7 @@ importers: '@ledgerhq/hw-transport': 6.27.1 '@ledgerhq/hw-transport-webhid': 6.27.1 '@testing-library/dom': ^8.20.0 - '@tronweb3/tronwallet-abstract-adapter': ^1.1.4 + '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 buffer: ^6.0.3 eventemitter3: ^4.0.0 preact: ^10.11.3 @@ -374,7 +374,7 @@ importers: packages/adapters/walletconnect: specifiers: - '@tronweb3/tronwallet-abstract-adapter': ^1.1.4 + '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 '@tronweb3/walletconnect-tron': ^1.0.0 '@walletconnect/sign-client': ^2.1.4 '@walletconnect/types': ^2.1.4 @@ -389,8 +389,8 @@ importers: packages/react/react-hooks: specifiers: - '@tronweb3/tronwallet-abstract-adapter': ^1.1.4 - '@tronweb3/tronwallet-adapter-tronlink': ^1.1.4 + '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 + '@tronweb3/tronwallet-adapter-tronlink': ^1.1.5 '@types/react': ^18.0.26 '@types/react-dom': ^18.0.6 jest-localstorage-mock: ^2.4.22 @@ -413,9 +413,9 @@ importers: '@testing-library/jest-dom': ^5.16.5 '@testing-library/react': ^13.4.0 '@testing-library/user-event': ^13.5.0 - '@tronweb3/tronwallet-abstract-adapter': ^1.1.4 - '@tronweb3/tronwallet-adapter-react-hooks': ^1.1.2 - '@tronweb3/tronwallet-adapter-tronlink': ^1.1.4 + '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 + '@tronweb3/tronwallet-adapter-react-hooks': ^1.1.3 + '@tronweb3/tronwallet-adapter-tronlink': ^1.1.5 '@types/jest': ^27.5.2 '@types/react': ^18.0.26 '@types/react-dom': ^18.0.0 @@ -14289,7 +14289,7 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: - tslib: registry.npmjs.org/tslib/1.14.1 + tslib: 1.14.1 typescript: 4.9.3 dev: false @@ -18526,12 +18526,6 @@ packages: - utf-8-validate dev: false - registry.npmjs.org/tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz} - name: tslib - version: 1.14.1 - dev: false - registry.npmjs.org/tslib/2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz} name: tslib From 82609318de97fa901cd2c1fb49d08a98cb12d178 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Tue, 18 Apr 2023 17:07:36 +0800 Subject: [PATCH 03/12] feat: add okxwallet-adapter --- README.md | 17 +- demos/dev-demo/package.json | 1 + demos/dev-demo/src/App.tsx | 5 + demos/dev-demo/src/BitKeepAdapterDemo.tsx | 2 +- demos/dev-demo/src/OkxWalletAdapterDemo.tsx | 274 +++++++++++++ demos/dev-demo/src/TokenPocketAdapterDemo.tsx | 2 +- demos/dev-demo/src/main.tsx | 2 +- demos/dev-demo/src/tronweb.ts | 1 + demos/dev-demo/vite.config.ts | 1 + demos/react-ui/create-react-app/src/App.tsx | 11 +- demos/react-ui/next-app/pages/_app.tsx | 5 +- demos/react-ui/vite-app/src/App.tsx | 5 +- demos/react-ui/vite-app/src/main.tsx | 1 - .../adapters/abstract-adapter/src/utils.ts | 5 +- packages/adapters/adapters/README.md | 175 +-------- packages/adapters/adapters/package.json | 1 + packages/adapters/adapters/src/index.ts | 1 + packages/adapters/adapters/tsconfig.all.json | 3 + packages/adapters/bitkeep/README.md | 55 ++- packages/adapters/ledger/README.md | 136 ++++++- packages/adapters/okxwallet/LICENSE | 20 + packages/adapters/okxwallet/README.md | 84 ++++ packages/adapters/okxwallet/jest.config.js | 17 + packages/adapters/okxwallet/package.json | 53 +++ packages/adapters/okxwallet/src/adapter.ts | 366 ++++++++++++++++++ packages/adapters/okxwallet/src/index.ts | 2 + packages/adapters/okxwallet/src/utils.ts | 13 + .../okxwallet/tests/units/adapter.test.ts | 32 ++ packages/adapters/okxwallet/tsconfig.all.json | 17 + packages/adapters/okxwallet/tsconfig.cjs.json | 7 + packages/adapters/okxwallet/tsconfig.esm.json | 8 + packages/adapters/tokenpocket/README.md | 61 ++- packages/adapters/tokenpocket/src/adapter.ts | 8 +- packages/adapters/tronlink/README.md | 86 ++++ packages/adapters/walletconnect/README.md | 89 +++-- pnpm-lock.yaml | 19 + tsconfig.all.json | 3 + 37 files changed, 1354 insertions(+), 234 deletions(-) create mode 100644 demos/dev-demo/src/OkxWalletAdapterDemo.tsx create mode 100644 packages/adapters/okxwallet/LICENSE create mode 100644 packages/adapters/okxwallet/README.md create mode 100644 packages/adapters/okxwallet/jest.config.js create mode 100644 packages/adapters/okxwallet/package.json create mode 100644 packages/adapters/okxwallet/src/adapter.ts create mode 100644 packages/adapters/okxwallet/src/index.ts create mode 100644 packages/adapters/okxwallet/src/utils.ts create mode 100644 packages/adapters/okxwallet/tests/units/adapter.test.ts create mode 100644 packages/adapters/okxwallet/tsconfig.all.json create mode 100644 packages/adapters/okxwallet/tsconfig.cjs.json create mode 100644 packages/adapters/okxwallet/tsconfig.esm.json diff --git a/README.md b/README.md index 111dacd..2df0e7d 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ This repository contains wallet adapters and components for Tron DApps. With out - [TronLink Extension](https://www.tronlink.org/): All versions - [BitKeep App](https://bitkeep.com/): All versions - [BitKeep Extension](https://bitkeep.com/): All versions +- [OkxWallet App](https://okx.com/): All versions +- [OkxWallet Extension](https://okx.com/): All versions - [TokenPocket App](https://www.tokenpocket.pro/): All versions - [Ledger](https://www.ledger.com/): All versions - [WalletConnect](https://walletconnect.org): `v2.0` @@ -124,6 +126,9 @@ tronwallet-adapter | | ├─tronlink # adapter for tronlink | | ├─ledger # adapter for ledger | | ├─walletconnect # adapter for walletconnect +| | ├─tokenpocket # adapter for TokenPocket +| | ├─bitkeep # adapter for BitKeep +| | ├─okxwallet # adapter for Okx Wallet | ├─react | | ├─react-hooks # react hooks to manage wallet state | | ├─react-ui # react ui components to select/connect wallets @@ -143,9 +148,12 @@ You can use the `@tronweb3/tronwallet-adapters` package, or add the individual w | package | description | npm | | ------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | | adapters | Includes all the wallets (with tree shaking) | [`@tronweb3/tronwallet-adapters`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapters) | -| [tronlink](https://www.tronlink.org/) | Adapter for tronlink extention and tronlink app(IOS and Android) | [`@tronweb3/tronwallet-adapter-tronlink`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-tronlink) | -| [ledger](https://www.ledger.com/) | Adapter for ledger | [`@tronweb3/tronwallet-adapter-ledger`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-ledger) | -| [walletconnect](https://walletconnect.com/) | Adapter for walletconnect | [`@tronweb3/tronwallet-adapter-walletconnect`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-walletconnect) | +| [tronlink](https://www.tronlink.org/) | Adapter for TronLink extention and TronLink app(IOS and Android) | [`@tronweb3/tronwallet-adapter-tronlink`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-tronlink) | +| [ledger](https://www.ledger.com/) | Adapter for Ledger | [`@tronweb3/tronwallet-adapter-ledger`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-ledger) | +| [walletconnect](https://walletconnect.com/) | Adapter for Walletconnect | [`@tronweb3/tronwallet-adapter-walletconnect`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-walletconnect) | +| [tokenpocket](https://tokenpocket.pro/) | Adapter for TokenPocket App | [`@tronweb3/tronwallet-adapter-tokenpocket`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-tokenpocket) | +| [bitkeep](https://bitkeep.com/) | Adapter for BitKeep extension and BitKeep App(IOS and Android) | [`@tronweb3/tronwallet-adapter-bitkeep`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-bitkeep) | +| [okxwallet](https://www.okx.com/) | Adapter for Okx Wallet extension and App(IOS and Android) | [`@tronweb3/tronwallet-adapter-okxwallet`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-okxwallet) | ### React Components @@ -165,6 +173,9 @@ This package contains all wallet adapters for Tron including: - [TronLink](https://www.tronlink.org/). - [Ledger](https://www.ledger.com/). - [WalletConnect](https://walletconnect.org). +- [TokenPocket](https://tokenpocket.pro/). +- [BitKeep](https://bitkeep.com). +- [Okx Wallet](https://okx.com). Code example: diff --git a/demos/dev-demo/package.json b/demos/dev-demo/package.json index e5e3fbd..99d1fb9 100644 --- a/demos/dev-demo/package.json +++ b/demos/dev-demo/package.json @@ -15,6 +15,7 @@ "@tronweb3/tronwallet-abstract-adapter": "^1.1.0", "@tronweb3/tronwallet-adapter-bitkeep": "^1.0.0", "@tronweb3/tronwallet-adapter-ledger": "^1.1.2", + "@tronweb3/tronwallet-adapter-okxwallet": "^1.0.0", "@tronweb3/tronwallet-adapter-react-hooks": "^1.0.0", "@tronweb3/tronwallet-adapter-react-ui": "^1.1.0", "@tronweb3/tronwallet-adapter-tokenpocket": "^1.0.0", diff --git a/demos/dev-demo/src/App.tsx b/demos/dev-demo/src/App.tsx index ed6223d..25c8c0b 100644 --- a/demos/dev-demo/src/App.tsx +++ b/demos/dev-demo/src/App.tsx @@ -7,6 +7,7 @@ import { TronLinkAdapterDemo } from './TronLinkAdapterDemo.js'; import { ReactHooksDemo } from './ReactHooksDemo.js'; import { TokenPocketAdapterDemo } from './TokenPocketAdapterDemo.js'; import { BitKeepAdapterDemo } from './BitKeepAdapterDemo.js'; +import { OkxWalletAdapterDemo } from './OkxWalletAdapterDemo.js'; interface TabPanelProps { children?: React.ReactNode; index: number; @@ -43,6 +44,7 @@ function App() { + @@ -66,6 +68,9 @@ function App() { + + + ); diff --git a/demos/dev-demo/src/BitKeepAdapterDemo.tsx b/demos/dev-demo/src/BitKeepAdapterDemo.tsx index d543c14..a9dcaee 100644 --- a/demos/dev-demo/src/BitKeepAdapterDemo.tsx +++ b/demos/dev-demo/src/BitKeepAdapterDemo.tsx @@ -76,7 +76,7 @@ export function BitKeepAdapterDemo() { async function onSignTransaction() { const tronWeb = (window as any).tronWeb as any; console.log(adapter.address) - const transaction = await tronWeb.transactionBuilder.sendTrx(receiver, tronWeb.toSun(0.1), adapter.address); + const transaction = await tronWeb.transactionBuilder.sendTrx(receiver, tronWeb.toSun(0.001), adapter.address); console.log('before signtransaction') const signedTransaction = await adapter.signTransaction(transaction); // const signedTransaction = await tronWeb.trx.sign(transaction); diff --git a/demos/dev-demo/src/OkxWalletAdapterDemo.tsx b/demos/dev-demo/src/OkxWalletAdapterDemo.tsx new file mode 100644 index 0000000..0c5715c --- /dev/null +++ b/demos/dev-demo/src/OkxWalletAdapterDemo.tsx @@ -0,0 +1,274 @@ +import type { ReactNode } from 'react'; +import { useEffect, useMemo, useState, useCallback } from 'react'; +// import './App.css'; +import { OkxWalletAdapter } from '@tronweb3/tronwallet-adapters'; +import type { Adapter } from '@tronweb3/tronwallet-abstract-adapter'; +import { AdapterState } from '@tronweb3/tronwallet-abstract-adapter'; +import { Box, Button, Typography, Tooltip, Select, MenuItem, Alert, FormControl, TextField } from '@mui/material'; +import { tronWeb } from './tronweb.js'; +const receiver = 'TMDKznuDWaZwfZHcM61FVFstyYNmK6Njk1'; +// const getTronWeb = () => window.okxwallet?.tronLink?.tronWeb as any || null; +const getTronWeb = () => tronWeb; + +export function OkxWalletAdapterDemo() { + const [connectState, setConnectState] = useState(AdapterState.NotFound); + const [account, setAccount] = useState(''); + const [readyState, setReadyState] = useState(''); + const [chainId, setChainId] = useState(''); + const [selectedChainId, setSelectedChainId] = useState('0xcd8690dc'); + const [open, setOpen] = useState(false); + const [signMessage, setSignMessage] = useState('Hello, Adapter'); + const [signedMessage, setSignedMessage] = useState(''); + const adapter = useMemo(() => new OkxWalletAdapter(), []); + + useEffect(() => { + setConnectState(adapter.state); + setAccount(adapter.address || ''); + setReadyState(adapter.readyState); + if (adapter.connected) { + adapter.network().then((res) => { + console.log(res); + setChainId(res.chainId) + }).catch(e => { + console.log(e) + }) + } + + adapter.on('readyStateChanged', () => { + console.log('readyState: ', adapter.readyState) + setReadyState(adapter.readyState) + }) + adapter.on('connect', () => { + console.log('connect: ', adapter.address); + setAccount(adapter.address || ''); + adapter.network().then((res) => { + console.log(res); + setChainId(res.chainId) + }).catch(e => { + console.log(e) + }) + }); + adapter.on('stateChanged', (state) => { + console.log('stateChanged: ', state); + setConnectState(state); + }); + adapter.on('accountsChanged', (data, preaddr) => { + console.log('accountsChanged: current', data,' pre: ', preaddr); + setAccount(data as string); + }); + + adapter.on('chainChanged', (data) => { + console.log('chainChanged: ', data); + setChainId((data as any).chainId); + }); + + adapter.on('disconnect', () => { + console.log('disconnect'); + }); + + return () => { + adapter.removeAllListeners(); + }; + }, [adapter]); + + function onSwitchChain() { + adapter.switchChain(selectedChainId); + } + + async function onSignTransaction() { + const tronWeb = getTronWeb(); + const transaction = await tronWeb.transactionBuilder.sendTrx(receiver, tronWeb.toSun(0.001), adapter.address); + const signedTransaction = await adapter.signTransaction(transaction); + console.log('signedTx', signedTransaction) + + // const signedTransaction = await tronWeb.trx.sign(transaction); + const res = await tronWeb.trx.sendRawTransaction(signedTransaction); + setOpen(true); + } + + const onSignMessage = useCallback( + async function () { + const res = await adapter.signMessage(signMessage); + setSignedMessage(res); + }, + [adapter, signMessage, setSignedMessage] + ); + + const onVerifyMessage = useCallback( + async function () { + const tronWeb = getTronWeb(); + const address = await tronWeb.trx.verifyMessageV2(signMessage, signedMessage); + alert(address === adapter.address ? 'success verify' : 'failed verify'); + }, + [signMessage, signedMessage, adapter] + ); + + async function handleConnect() { + try { + await adapter?.connect() + } catch(e: any) { + console.log(e.error?.message || e.message); + } + } + return ( + +

OkxWallet Demo

+ + Your account address: + + {account} + + + Current network you choose: {chainId} + + + + ReadyState: {readyState} + + + Current connection status:   + {connectState} + + + setSignMessage(e.target.value)}> + + + +      + +      + + + + +      + + + {open && ( + setOpen(false)} severity="success" sx={{ width: '100%', marginTop: 1 }}> + Success! You can confirm your transfer on{' '} + + Tron Scan + + + )} + +
+ ); +} + +export function Detail(props: { children: ReactNode }) { + return
{props.children}
; +} + +function MultiSignDemo(props: { address: string; adapter: Adapter }) { + const [address1, setAddress1] = useState(''); + const [open, setOpen] = useState(false); + + async function onApprove() { + const tronWeb = getTronWeb(); + const ownerAddress = tronWeb.address.toHex(props.address); + const ownerPermission = { + type: 0, + permission_name: 'owner', + threshold: 1, + keys: [ + { + address: ownerAddress, + weight: 1, + }, + ], + }; + const activePermission = { + type: 2, + permission_name: 'ActivePermission', + threshold: 2, + keys: [], + operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000', + } as any; + + activePermission.keys.push({ address: ownerAddress, weight: 1 }); + activePermission.keys.push({ address: tronWeb.address.toHex(address1), weight: 1 }); + + const updateTransaction = await tronWeb.transactionBuilder.updateAccountPermissions(ownerAddress, ownerPermission, null, [activePermission]); + const signed = await props.adapter.signTransaction(updateTransaction); + const res = await tronWeb.trx.sendRawTransaction(signed); + alert('update successfully.'); + } + + const [transferTransaction, setTransferTransaction] = useState(null); + const [canSend, setCanSend] = useState(false); + + const multiSignWithAddress1 = useCallback( + async function () { + const tronWeb = getTronWeb(); + const transaction = await tronWeb.transactionBuilder.sendTrx(receiver, tronWeb.toSun(0.1), props.address, { permissionId: 2 }); + const signedTransaction = await props.adapter.multiSign(transaction, null, 2); + setTransferTransaction(signedTransaction); + }, + [props.adapter, setTransferTransaction, props.address] + ); + const multiSignWithAddress2 = useCallback( + async function () { + console.log('first multi signed tx:', transferTransaction); + const signedTransaction = await props.adapter.multiSign(transferTransaction as any, null, 2); + console.log('second multi signed tx:', signedTransaction); + setTransferTransaction(signedTransaction); + const tronWeb = getTronWeb(); + const signWeight = await tronWeb.trx.getSignWeight(signedTransaction, 2); + console.log('signWeight: ', signWeight); + if (signWeight.current_weight >= 2) { + setCanSend(true); + } + }, + [transferTransaction, setTransferTransaction, setCanSend, props.adapter] + ); + async function broadcast() { + const tronWeb = getTronWeb(); + const res = await tronWeb.trx.broadcast(transferTransaction); + setOpen(true); + } + return ( + <> +

MultiSign Demo

+ {/*

You can input two address and click approve button to give them permission.

+
+ setAddress1(e.target.value)}> + +
*/} + +

You can click following buttons to multiSign and send the Transaction

+
+ + + +
+ {open && ( + setOpen(false)} severity="success" sx={{ width: '100%', marginTop: 1 }}> + Success! You can confirm your transfer on{' '} + + Tron Scan + + + )} + + ); +} diff --git a/demos/dev-demo/src/TokenPocketAdapterDemo.tsx b/demos/dev-demo/src/TokenPocketAdapterDemo.tsx index 569307c..f66eee2 100644 --- a/demos/dev-demo/src/TokenPocketAdapterDemo.tsx +++ b/demos/dev-demo/src/TokenPocketAdapterDemo.tsx @@ -18,7 +18,7 @@ export function TokenPocketAdapterDemo() { const [signMessage, setSignMessage] = useState('Hello, Adapter'); const [signedMessage, setSignedMessage] = useState(''); const adapter = useMemo(() => new TokenPocketAdapter({ - openTokenPocketAppOnMobile: true, + openAppWithDeeplink: true, openUrlWhenWalletNotFound: false, checkTimeout: 3000 }), []); diff --git a/demos/dev-demo/src/main.tsx b/demos/dev-demo/src/main.tsx index 736e828..be5e831 100644 --- a/demos/dev-demo/src/main.tsx +++ b/demos/dev-demo/src/main.tsx @@ -10,8 +10,8 @@ import VConsole from 'vconsole'; import './index.css'; import { AppWraper } from './AppWraper.js'; const vConsole = new VConsole(); +// console.log('load', window.tronWeb?.defaultAddress, window.okxwallet?.tronLink.tronWeb.defaultAddress); -const tron = window.tronLink as any; ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/demos/dev-demo/src/tronweb.ts b/demos/dev-demo/src/tronweb.ts index 9447019..5d2d428 100644 --- a/demos/dev-demo/src/tronweb.ts +++ b/demos/dev-demo/src/tronweb.ts @@ -3,5 +3,6 @@ import TronWeb from 'tronweb'; export const tronWeb: any = new TronWeb({ fullHost: 'https://api.nileex.io', + // fullHost: 'https://api.trongrid.io' }); (window as any).tronWeb1 = tronWeb; diff --git a/demos/dev-demo/vite.config.ts b/demos/dev-demo/vite.config.ts index 36e00b7..349f423 100644 --- a/demos/dev-demo/vite.config.ts +++ b/demos/dev-demo/vite.config.ts @@ -18,6 +18,7 @@ export default defineConfig({ server: { host: '0.0.0.0', port: 3003, + https: false }, build: { minify: false, diff --git a/demos/react-ui/create-react-app/src/App.tsx b/demos/react-ui/create-react-app/src/App.tsx index 8711bc9..2f8706b 100644 --- a/demos/react-ui/create-react-app/src/App.tsx +++ b/demos/react-ui/create-react-app/src/App.tsx @@ -11,7 +11,7 @@ import { } from '@tronweb3/tronwallet-adapter-react-ui'; import toast from 'react-hot-toast'; import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TextField, Alert } from '@mui/material'; -import { TronLinkAdapter } from '@tronweb3/tronwallet-adapters'; +import { BitKeepAdapter, OkxWalletAdapter, TokenPocketAdapter, TronLinkAdapter } from '@tronweb3/tronwallet-adapters'; import { WalletConnectAdapter } from '@tronweb3/tronwallet-adapter-walletconnect'; import { tronWeb } from './tronweb'; import { LedgerAdapter } from '@tronweb3/tronwallet-adapter-ledger'; @@ -38,8 +38,8 @@ export function App() { } else toast.error(e.message); } const adapters = useMemo(function () { - const tronLink1 = new TronLinkAdapter(); - const walletConnect1 = new WalletConnectAdapter({ + const tronLinkAdapter = new TronLinkAdapter(); + const walletConnectAdapter = new WalletConnectAdapter({ network: 'Nile', options: { relayUrl: 'wss://relay.walletconnect.com', @@ -56,7 +56,10 @@ export function App() { const ledger = new LedgerAdapter({ accountNumber: 2, }); - return [tronLink1, walletConnect1, ledger]; + const bitKeepAdapter = new BitKeepAdapter(); + const tokenPocketAdapter = new TokenPocketAdapter(); + const okxwalletAdapter = new OkxWalletAdapter(); + return [tronLinkAdapter, bitKeepAdapter, tokenPocketAdapter, okxwalletAdapter, walletConnectAdapter, ledger]; }, []); return ( diff --git a/demos/react-ui/next-app/pages/_app.tsx b/demos/react-ui/next-app/pages/_app.tsx index 081680e..e80a9fa 100644 --- a/demos/react-ui/next-app/pages/_app.tsx +++ b/demos/react-ui/next-app/pages/_app.tsx @@ -4,7 +4,7 @@ import type { WalletError } from '@tronweb3/tronwallet-abstract-adapter'; import { WalletDisconnectedError, WalletNotFoundError } from '@tronweb3/tronwallet-abstract-adapter'; // @ts-ignore import { toast } from 'react-hot-toast'; -import { BitKeepAdapter, TokenPocketAdapter, TronLinkAdapter, WalletConnectAdapter } from '@tronweb3/tronwallet-adapters'; +import { BitKeepAdapter, OkxWalletAdapter, TokenPocketAdapter, TronLinkAdapter, WalletConnectAdapter } from '@tronweb3/tronwallet-adapters'; import { useMemo } from 'react'; import { WalletProvider } from '@tronweb3/tronwallet-adapter-react-hooks'; import { WalletModalProvider } from '@tronweb3/tronwallet-adapter-react-ui'; @@ -40,7 +40,8 @@ export default function App({ Component, pageProps }: AppProps) { }); const bitKeepAdapter = new BitKeepAdapter(); const tokenPocketAdapter = new TokenPocketAdapter(); - return [tronLinkAdapter, bitKeepAdapter, tokenPocketAdapter, walletConnectAdapter, ledger]; + const okxwalletAdapter = new OkxWalletAdapter(); + return [tronLinkAdapter, bitKeepAdapter, tokenPocketAdapter, okxwalletAdapter, walletConnectAdapter, ledger]; }, []); /** diff --git a/demos/react-ui/vite-app/src/App.tsx b/demos/react-ui/vite-app/src/App.tsx index 8287094..28a0774 100644 --- a/demos/react-ui/vite-app/src/App.tsx +++ b/demos/react-ui/vite-app/src/App.tsx @@ -11,7 +11,7 @@ import { } from '@tronweb3/tronwallet-adapter-react-ui'; import toast from 'react-hot-toast'; import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TextField, Alert } from '@mui/material'; -import { TronLinkAdapter, TokenPocketAdapter, BitKeepAdapter } from '@tronweb3/tronwallet-adapters'; +import { TronLinkAdapter, TokenPocketAdapter, BitKeepAdapter, OkxWalletAdapter } from '@tronweb3/tronwallet-adapters'; import { WalletConnectAdapter } from '@tronweb3/tronwallet-adapter-walletconnect'; import { LedgerAdapter } from '@tronweb3/tronwallet-adapter-ledger'; import { tronWeb } from './tronweb'; @@ -59,7 +59,8 @@ export function App() { }); const tokenPocket = new TokenPocketAdapter(); const bitKeep = new BitKeepAdapter(); - return [tronLink1, walletConnect1, ledger, tokenPocket, bitKeep]; + const okxWalletAdapter = new OkxWalletAdapter(); + return [tronLink1, walletConnect1, ledger, tokenPocket, bitKeep, okxWalletAdapter]; }, []); return ( diff --git a/demos/react-ui/vite-app/src/main.tsx b/demos/react-ui/vite-app/src/main.tsx index 5b2eff3..c2f4011 100644 --- a/demos/react-ui/vite-app/src/main.tsx +++ b/demos/react-ui/vite-app/src/main.tsx @@ -9,7 +9,6 @@ import { ThemeProvider } from '@mui/material/styles'; import theme from './theme'; // import vConsole from 'vconsole' // new vConsole(); -console.log(window.tronLink.ready, window.tronWeb.ready, window.tronWeb && window.tronWeb.defaultAddress) ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/packages/adapters/abstract-adapter/src/utils.ts b/packages/adapters/abstract-adapter/src/utils.ts index 29a242f..fe4a245 100644 --- a/packages/adapters/abstract-adapter/src/utils.ts +++ b/packages/adapters/abstract-adapter/src/utils.ts @@ -48,5 +48,8 @@ export function checkAdapterState(check: () => boolean): void { * Simplily detect mobile device */ export function isInMobileBrowser() { - return navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i); + return ( + typeof navigator !== 'undefined' && + navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i) + ); } diff --git a/packages/adapters/adapters/README.md b/packages/adapters/adapters/README.md index 40d26c3..01ddbfa 100644 --- a/packages/adapters/adapters/README.md +++ b/packages/adapters/adapters/README.md @@ -6,10 +6,15 @@ As `@tronweb3/tronwallet-adapters` exports adapter of each wallet , you can use this package, or use the individual wallet adapter you want. -- [`@tronweb3/tronwallet-adapters`](https://npmjs.com/package/@tronweb3/tronwallet-adapters): Includes all the wallet adapters. -- [`@tronweb3/tronwallet-adapter-tronlink`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-tronlink): adapter for [TronLink](https://www.tronlink.org/). -- [`@tronweb3/tronwallet-adapter-walletconnect`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-walletconnect): adapter for [WalletConnect](https://docs.walletconnect.com/2.0/). -- [`@tronweb3/tronwallet-adapter-ledger`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-ledger): adapter for [Ledger](https://www.ledger.com/). +| NPM package | Description | Source Code | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| [`@tronweb3/tronwallet-adapters`](https://npmjs.com/package/@tronweb3/tronwallet-adapters) | Includes all the wallet adapters | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) | +| [`@tronweb3/tronwallet-adapter-tronlink`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-tronlink) | adapter for [TronLink](https://www.tronlink.org/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/tronlink) | +| [`@tronweb3/tronwallet-adapter-walletconnect`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-walletconnect) | adapter for adapter for [WalletConnect](https://docs.walletconnect.com/2.0/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/walletconnect) | +| [`@tronweb3/tronwallet-adapter-tokenpocket`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-tokenpocket) | adapter for [TokenPocket](https://tokenpocket.pro/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/tokenpocket) | +| [`@tronweb3/tronwallet-adapter-bitkeep`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-bitkeep) | adapter for [BitKeep](https://bitkeep.com/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/bitkeep) | +| [`@tronweb3/tronwallet-adapter-okxwallet`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-okxwallet) | adapter for [Okx Wallet](https://okx.com/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/okxwallet) | +| [`@tronweb3/tronwallet-adapter-ledger`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-ledger) | adapter for [Ledger](https://www.ledger.com/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/ledger) | ## Usage @@ -276,164 +281,4 @@ try { - **Don't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. - **Auto open TronLink app in mobile browser**. If developers call `connect()` method in mobile browser, it will open DApp in TronLink app to get tronlink wallet. -### WalletConnectAdapter - -- `Constructor(config: WalletConnectAdapterConfig)` - ```typescript - interface WalletConnectAdapterConfig { - /** - * Network to use, one of Mainnet, Shasta, Nile - * Default: Nile - */ - network: 'Mainnet' | 'Shasta' | 'Nile'; - /** - * Options passed to WalletConnect client - */ - options: { - projectId: ''; - // optional parameters - relayUrl: ''; - metadata: { - name: 'Wallet name'; - description: 'A short description for your wallet'; - url: ""; - icons: [""]; - }; - }; - } - ``` - More detail about WalletConnect client options please refer to the [WalletConnect document](https://docs.walletconnect.com/2.0/javascript/sign/dapp-usage). -- `multiSign()` and `switchChain(chainId: string)` are not supported. - -### LedgerAdapter - -- `Constructor(config: LedgerAdapterConfig)` - - ```typescript - interface LedgerAdapterConfig { - /** - * Set if open Wallet's website when wallet is not installed. - * Default is true. - */ - openUrlWhenWalletNotFound?: boolean; - /** - * Initial total accounts to get once connection is created, default is 1 - */ - accountNumber?: number; - - /** - * Hook function to call before connecting to ledger and geting accounts. - * By default, a modal will popup to reminder user to prepare the ledger and enter Tron app. - * You can specify a function to disable this modal. - */ - beforeConnect?: () => Promise | unknown; - - /** - * Hook function to call after connecting to ledger and geting initial accounts. - * The function should return the selected account including the index of account. - * Following operations such as `signMessage` will use the selected account. - */ - selectAccount?: (params: { accounts: Account[]; ledgerUtils: LedgerUtils }) => Promise; - - /** - * Function to get derivate BIP44 path by index. - * Default is `44'/195'/${index}'/0/0` - */ - getDerivationPath?: (index: number) => string; - } - interface Account { - /** - * The index to get BIP44 path. - */ - index: number; - /** - * The BIP44 path to derivate address. - */ - path: string; - /** - * The derivated address. - */ - address: string; - } - interface LedgerUtils { - /** - * Get accounts from ledger by index. `from` is included and `to` is excluded. - * User can use the function to load more accounts. - */ - getAccounts: (from: number, to: number) => Promise; - /** - * Request to get an address with specified index using getDerivationPath(index) to get BIP44 path. - * If `display` is true, will request user to approve on ledger. - * The promise will resove if user approve and reject if user cancel the operation. - */ - getAddress: (index: number, display: boolean) => Promise<{ publicKey: string; address: string }>; - } - ``` - -- Property: `ledgerUtils` - `ledgerUtils` on LedgerAdapter is used to get useful functions to interact with Ledger directly. `ledgerUtils` is defined as last section. - - - `getAccounts(from: number, to: number)` is a wrapped function to get multiple accounts by index range from ledger. - For example: - - ```typescript - const adapter = new LedgerAdapter(); - // get 5 accounts from ledger - const accounts = await adapter.ledgerUtils.getAcccounts(0, 5); - // [{ address: string, index: 0, path: "44'/195'/0'/0/0" }, ...] - ``` - - - `getAddress: (index: number, display: boolean)` is a raw function to request an address from ledger. - If `display` is true, will request user to approve on ledger. - For example, following code will request user approve on Ledger to confirm to connect their ledger. - - ```typescript - const adapter = new LedgerAdapter(); - const result = await adapter.ledgerUtils.getAddress(0, true); - // { address: 'some address', publicKey: 'publicKey for address' } - ``` - -- `multiSign()` and `switchChain(chainId: string)` are not supported. - -### TokenPocketAdapter - -- `Constructor(config: TokenPocketConfig)` - ```typescript - interface TokenPocketConfig { - /** - * Set if open Wallet's website when wallet is not installed. - * Default is true. - */ - openUrlWhenWalletNotFound?: boolean; - /** - * Timeout in millisecond for checking if TokenPocket wallet is supported. - * Default is 2 * 1000ms - */ - checkTimeout?: number; - /** - * Set if open TokenPocket app using DeepLink on mobile device. - * Default is true. - */ - openTokenPocketAppOnMobile?: boolean; - } - ``` -- `signMessage()`,`multiSign()`,`switchChain(chainId: string)` are not supported. - -### BitKeepConfig - -- `Constructor(config: BitKeepConfig)` - ```typescript - interface BitKeepConfig { - /** - * Set if open Wallet's website when wallet is not installed. - * Default is true. - */ - openUrlWhenWalletNotFound?: boolean; - /** - * Timeout in millisecond for checking if BitKeep wallet is supported. - * Default is 2 * 1000ms - */ - checkTimeout?: number; - } - ``` -- `signMessage()`,`multiSign()`,`switchChain(chainId: string)` are not supported. +Others adapters `Constructor` config api can be found in their source code `README`. diff --git a/packages/adapters/adapters/package.json b/packages/adapters/adapters/package.json index 3922492..eea4fc9 100644 --- a/packages/adapters/adapters/package.json +++ b/packages/adapters/adapters/package.json @@ -42,6 +42,7 @@ "dependencies": { "@tronweb3/tronwallet-adapter-bitkeep": "^1.0.0", "@tronweb3/tronwallet-adapter-ledger": "^1.1.6", + "@tronweb3/tronwallet-adapter-okxwallet": "^1.0.0", "@tronweb3/tronwallet-adapter-tokenpocket": "^1.0.0", "@tronweb3/tronwallet-adapter-tronlink": "^1.1.5", "@tronweb3/tronwallet-adapter-walletconnect": "^1.0.3" diff --git a/packages/adapters/adapters/src/index.ts b/packages/adapters/adapters/src/index.ts index 87ab66c..4aa3481 100644 --- a/packages/adapters/adapters/src/index.ts +++ b/packages/adapters/adapters/src/index.ts @@ -3,3 +3,4 @@ export * from '@tronweb3/tronwallet-adapter-walletconnect'; export * from '@tronweb3/tronwallet-adapter-ledger'; export * from '@tronweb3/tronwallet-adapter-tokenpocket'; export * from '@tronweb3/tronwallet-adapter-bitkeep'; +export * from '@tronweb3/tronwallet-adapter-okxwallet'; diff --git a/packages/adapters/adapters/tsconfig.all.json b/packages/adapters/adapters/tsconfig.all.json index 1f936d0..ad00a8f 100644 --- a/packages/adapters/adapters/tsconfig.all.json +++ b/packages/adapters/adapters/tsconfig.all.json @@ -16,6 +16,9 @@ { "path": "../bitkeep/tsconfig.all.json" }, + { + "path": "../okxwallet/tsconfig.all.json" + }, { "path": "./tsconfig.cjs.json" }, diff --git a/packages/adapters/bitkeep/README.md b/packages/adapters/bitkeep/README.md index 5eca80c..ddbfebb 100644 --- a/packages/adapters/bitkeep/README.md +++ b/packages/adapters/bitkeep/README.md @@ -6,10 +6,14 @@ This package provides an adapter to enable TRON DApps to connect to the [BitKeep ```typescript import { BitKeepAdapter } from '@tronweb3/tronwallet-adapter-bitkeep'; -// import TronWeb from 'tronweb'; +import TronWeb from 'tronweb'; +const tronWeb = new TronWeb({ + fullHost: 'https://api.trongrid.io', + headers: { 'TRON-PRO-API-KEY': 'your api key' }, +}); const adapter = new BitKeepAdapter(); -// connect to TokenPocket +// connect await adapter.connect(); // then you can get address @@ -19,15 +23,54 @@ console.log(adapter.address); const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address); // using adapter to sign the transaction const signedTransaction = await adapter.signTransaction(unSignedTransaction); -// broadcase the transaction +// broadcast the transaction await tronWeb.trx.sendRawTransaction(signedTransaction); ``` ## Documentation -For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) +- `Constructor(config: BitKeepConfig)` + + ```typescript + interface BitKeepConfig { + /** + * Set if open Wallet's website when wallet is not installed. + * Default is true. + */ + openUrlWhenWalletNotFound?: boolean; + /** + * Timeout in millisecond for checking if BitKeep wallet is supported. + * Default is 2 * 1000ms + */ + checkTimeout?: number; + } + ``` + +- `network()` method is supported to get current network information. The type of returned value is `Network` as follows: + + ```typescript + export enum NetworkType { + Mainnet = 'Mainnet', + Shasta = 'Shasta', + Nile = 'Nile', + /** + * When use custom node + */ + Unknown = 'Unknown', + } + + export type Network = { + networkType: NetworkType; + chainId: string; + fullNode: string; + solidityNode: string; + eventServer: string; + }; + ``` ### Caveats -- BitKeep App doesn't implement `signMessage()`, `multiSign()` and `switchChain()`. -- BitKeep App and BitKeep Extension will reload current page so there is no need to listen `accountsChanged` event. +- BitKeep App and Extension doesn't implement `signMessage()`, `multiSign()` and `switchChain()`. +- BitKeep App and Extension will reload current page so there is no need to listen `accountsChanged` event. + +For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) diff --git a/packages/adapters/ledger/README.md b/packages/adapters/ledger/README.md index 6c1ca3d..4a230c3 100644 --- a/packages/adapters/ledger/README.md +++ b/packages/adapters/ledger/README.md @@ -2,26 +2,130 @@ This package provides an adapter for the Ledger Wallet. -## Usage +## Demo ```typescript import { LedgerAdapter } from '@tronweb3/tronwallet-adapter-ledger'; +import TronWeb from 'tronweb'; +const tronWeb = new TronWeb({ + fullHost: 'https://api.trongrid.io', + headers: { 'TRON-PRO-API-KEY': 'your api key' }, +}); -const App = () => { - const adapters = useMemo( - () => [ - new LedgerAdapter({ - // Initial total accounts to get once connection is created - accountNumber: 5, - // Custom derivate path for address - getDerivationPath(index) { - return `44'/195'/0'/0/${index}`; - }, - }), - ], - [] - ); -}; +const adapter = new LedgerAdapter({ + // Initial total accounts to get once connection is created + accountNumber: 5, + // Custom derivate path for address + getDerivationPath(index) { + return `44'/195'/0'/0/${index}`; + }, +}); +// connect +await adapter.connect(); + +// then you can get address +console.log(adapter.address); + +// create a send TRX transaction +const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address); +// using adapter to sign the transaction +const signedTransaction = await adapter.signTransaction(unSignedTransaction); +// broadcast the transaction +await tronWeb.trx.sendRawTransaction(signedTransaction); ``` +## Documentation + +### API + +- `Constructor(config: LedgerAdapterConfig)` + + ```typescript + interface LedgerAdapterConfig { + /** + * Set if open Wallet's website when wallet is not installed. + * Default is true. + */ + openUrlWhenWalletNotFound?: boolean; + /** + * Initial total accounts to get once connection is created, default is 1 + */ + accountNumber?: number; + + /** + * Hook function to call before connecting to ledger and geting accounts. + * By default, a modal will popup to reminder user to prepare the ledger and enter Tron app. + * You can specify a function to disable this modal. + */ + beforeConnect?: () => Promise | unknown; + + /** + * Hook function to call after connecting to ledger and geting initial accounts. + * The function should return the selected account including the index of account. + * Following operations such as `signMessage` will use the selected account. + */ + selectAccount?: (params: { accounts: Account[]; ledgerUtils: LedgerUtils }) => Promise; + + /** + * Function to get derivate BIP44 path by index. + * Default is `44'/195'/${index}'/0/0` + */ + getDerivationPath?: (index: number) => string; + } + interface Account { + /** + * The index to get BIP44 path. + */ + index: number; + /** + * The BIP44 path to derivate address. + */ + path: string; + /** + * The derivated address. + */ + address: string; + } + interface LedgerUtils { + /** + * Get accounts from ledger by index. `from` is included and `to` is excluded. + * User can use the function to load more accounts. + */ + getAccounts: (from: number, to: number) => Promise; + /** + * Request to get an address with specified index using getDerivationPath(index) to get BIP44 path. + * If `display` is true, will request user to approve on ledger. + * The promise will resove if user approve and reject if user cancel the operation. + */ + getAddress: (index: number, display: boolean) => Promise<{ publicKey: string; address: string }>; + } + ``` + +- Property: `ledgerUtils` + `ledgerUtils` on LedgerAdapter is used to get useful functions to interact with Ledger directly. `ledgerUtils` is defined as last section. + + - `getAccounts(from: number, to: number)` is a wrapped function to get multiple accounts by index range from ledger. + For example: + + ```typescript + const adapter = new LedgerAdapter(); + // get 5 accounts from ledger + const accounts = await adapter.ledgerUtils.getAcccounts(0, 5); + // [{ address: string, index: 0, path: "44'/195'/0'/0/0" }, ...] + ``` + + - `getAddress: (index: number, display: boolean)` is a raw function to request an address from ledger. + If `display` is true, will request user to approve on ledger. + For example, following code will request user approve on Ledger to confirm to connect their ledger. + + ```typescript + const adapter = new LedgerAdapter(); + const result = await adapter.ledgerUtils.getAddress(0, true); + // { address: 'some address', publicKey: 'publicKey for address' } + ``` + +### Caveats + +- `multiSign()` and `switchChain(chainId: string)` are not supported. + For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) diff --git a/packages/adapters/okxwallet/LICENSE b/packages/adapters/okxwallet/LICENSE new file mode 100644 index 0000000..f8c1348 --- /dev/null +++ b/packages/adapters/okxwallet/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) +Copyright (c) 2022-Present, tronprotocol + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/adapters/okxwallet/README.md b/packages/adapters/okxwallet/README.md new file mode 100644 index 0000000..10aac37 --- /dev/null +++ b/packages/adapters/okxwallet/README.md @@ -0,0 +1,84 @@ +# `@tronweb3/tronwallet-adapter-okxwallet` + +This package provides an adapter to enable TRON DApps to connect to the [Okx Wallet extension](https://www.okx.com/download) and [Okx Wallet Wallet App](https://www.okx.com/download). + +## Demo + +```typescript +import { OkxWalletAdapter } from '@tronweb3/tronwallet-adapter-okxwallet'; + +const adapter = new OkxWalletAdapter(); +// connect to TokenPocket +await adapter.connect(); + +// then you can get address +console.log(adapter.address); + +// create a send TRX transaction +const unSignedTransaction = await window.okxwallet.tronLink.tronWeb.transactionBuilder.sendTrx( + targetAddress, + 100, + adapter.address +); +// using adapter to sign the transaction +const signedTransaction = await adapter.signTransaction(unSignedTransaction); +// broadcast the transaction +await window.okxwallet.tronLink.tronWeb.trx.sendRawTransaction(signedTransaction); +``` + +## Documentation + +### API + +- `Constructor(config: OkxWalletAdapterConfig)` + +```typescript +interface OkxWalletAdapterConfig { + /** + * Set if open Wallet's website when wallet is not installed. + * Default is true. + */ + openUrlWhenWalletNotFound?: boolean; + /** + * Timeout in millisecond for checking if TokenPocket wallet is supported. + * Default is 2 * 1000ms + */ + checkTimeout?: number; + /** + * Set if open TokenPocket app using DeepLink on mobile device. + * Default is true. + */ + openAppWithDeeplink?: boolean; +} +``` + +- `network()` method is supported to get current network information. The type of returned value is `Network` as follows: + + ```typescript + export enum NetworkType { + Mainnet = 'Mainnet', + Shasta = 'Shasta', + Nile = 'Nile', + /** + * When use custom node + */ + Unknown = 'Unknown', + } + + export type Network = { + networkType: NetworkType; + chainId: string; + fullNode: string; + solidityNode: string; + eventServer: string; + }; + ``` + +### Caveats + +- OkxWallet App and Extension doesn't implement `signMessage()`, `multiSign()` and `switchChain()`. +- OkxWallet Extension only support these: `accountsChanged`,`connect`,`disconnect`. +- OkxWallet App does not support any events. +- Deeplink only works for OKX App **version 6.1.38 or later**. + +For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) diff --git a/packages/adapters/okxwallet/jest.config.js b/packages/adapters/okxwallet/jest.config.js new file mode 100644 index 0000000..2a76755 --- /dev/null +++ b/packages/adapters/okxwallet/jest.config.js @@ -0,0 +1,17 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +export default { + preset: 'ts-jest', + testEnvironment: 'jsdom', + transform: { + '\\.tsx?$': [ + 'ts-jest', + { + useESM: true, + }, + ], + }, + moduleNameMapper: { + '(.+)\\.js': '$1', + }, + extensionsToTreatAsEsm: ['.ts'], +}; diff --git a/packages/adapters/okxwallet/package.json b/packages/adapters/okxwallet/package.json new file mode 100644 index 0000000..5031ba3 --- /dev/null +++ b/packages/adapters/okxwallet/package.json @@ -0,0 +1,53 @@ +{ + "name": "@tronweb3/tronwallet-adapter-okxwallet", + "version": "1.0.0", + "description": "Wallet adapter for TronLink Wallet extension and TronLink app.", + "keywords": [ + "TRON", + "TronWeb", + "TronLink" + ], + "author": "tronprotocol", + "repository": { + "type": "git", + "url": "https://github.com/tronprotocol/tronwallet-adapter" + }, + "license": "MIT", + "type": "module", + "sideEffects": false, + "engines": { + "node": ">=16", + "pnpm": ">=7" + }, + "main": "./lib/cjs/index.js", + "module": "./lib/esm/index.js", + "types": "./lib/types/index.d.ts", + "exports": { + "require": "./lib/cjs/index.js", + "import": "./lib/esm/index.js", + "types": "./lib/types/index.d.ts" + }, + "files": [ + "lib", + "src", + "LICENSE" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "clean": "shx mkdir -p lib && shx rm -rf lib", + "package": "shx echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json", + "test": "jest", + "test:coverage": "jest --coverage" + }, + "dependencies": { + "@tronweb3/tronwallet-abstract-adapter": "^1.1.5", + "@tronweb3/tronwallet-adapter-tronlink": "^1.1.5" + }, + "devDependencies": { + "@testing-library/dom": "^8.20.0", + "jest-environment-jsdom": "^29.3.1", + "shx": "^0.3.4" + } +} diff --git a/packages/adapters/okxwallet/src/adapter.ts b/packages/adapters/okxwallet/src/adapter.ts new file mode 100644 index 0000000..33578ee --- /dev/null +++ b/packages/adapters/okxwallet/src/adapter.ts @@ -0,0 +1,366 @@ +import { + Adapter, + AdapterState, + isInBrowser, + WalletReadyState, + WalletSignMessageError, + WalletNotFoundError, + WalletDisconnectedError, + WalletConnectionError, + WalletSignTransactionError, + WalletGetNetworkError, +} from '@tronweb3/tronwallet-abstract-adapter'; +import type { + Transaction, + SignedTransaction, + AdapterName, + BaseAdapterConfig, + Network, +} from '@tronweb3/tronwallet-abstract-adapter'; +import type { + AccountsChangedEventData, + TronLinkMessageEvent, + TronLinkWallet, +} from '@tronweb3/tronwallet-adapter-tronlink'; +import { getNetworkInfoByTronWeb } from '@tronweb3/tronwallet-adapter-tronlink'; +import { openOkxWallet, supportOkxWallet } from './utils.js'; + +declare global { + interface Window { + okxwallet?: { + tronLink: TronLinkWallet; + }; + } +} +export interface OkxWalletAdapterConfig extends BaseAdapterConfig { + /** + * Timeout in millisecond for checking if OkxWallet wallet exists. + * Default is 2 * 1000ms + */ + checkTimeout?: number; + /** + * Set if open OkxWallet app using DeepLink. + * Default is true. + */ + openAppWithDeeplink?: boolean; +} + +export const OkxWalletAdapterName = 'OKX Wallet' as AdapterName<'OKX Wallet'>; + +export class OkxWalletAdapter extends Adapter { + name = OkxWalletAdapterName; + url = 'https://okx.com'; + icon = + 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiByeD0iOCIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTIzLjU1ODMgMTUuODk2NUgxNi40NDc0QzE2LjE0NTMgMTUuODk2NSAxNS45MDA0IDE2LjE0MTQgMTUuOTAwNCAxNi40NDM1VjIzLjU1NDRDMTUuOTAwNCAyMy44NTY1IDE2LjE0NTMgMjQuMTAxNCAxNi40NDc0IDI0LjEwMTRIMjMuNTU4M0MyMy44NjA0IDI0LjEwMTQgMjQuMTA1MyAyMy44NTY1IDI0LjEwNTMgMjMuNTU0NFYxNi40NDM1QzI0LjEwNTMgMTYuMTQxNCAyMy44NjA0IDE1Ljg5NjUgMjMuNTU4MyAxNS44OTY1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE2LjQ0NzQgMTYuMzk2NUgyMy41NTgzQzIzLjU4NDIgMTYuMzk2NSAyMy42MDUzIDE2LjQxNzUgMjMuNjA1MyAxNi40NDM1VjIzLjU1NDRDMjMuNjA1MyAyMy41ODAzIDIzLjU4NDIgMjMuNjAxNCAyMy41NTgzIDIzLjYwMTRIMTYuNDQ3NEMxNi40MjE0IDIzLjYwMTQgMTYuNDAwNCAyMy41ODAzIDE2LjQwMDQgMjMuNTU0NFYxNi40NDM1QzE2LjQwMDQgMTYuNDE3NSAxNi40MjE0IDE2LjM5NjUgMTYuNDQ3NCAxNi4zOTY1WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTE1LjM1MDMgNy42OTE0MUg4LjIzOTM3QzcuOTM3MjggNy42OTE0MSA3LjY5MjM4IDcuOTM2MyA3LjY5MjM4IDguMjM4NFYxNS4zNDkzQzcuNjkyMzggMTUuNjUxNCA3LjkzNzI4IDE1Ljg5NjMgOC4yMzkzNyAxNS44OTYzSDE1LjM1MDNDMTUuNjUyMyAxNS44OTYzIDE1Ljg5NzIgMTUuNjUxNCAxNS44OTcyIDE1LjM0OTNWOC4yMzg0QzE1Ljg5NzIgNy45MzYzIDE1LjY1MjMgNy42OTE0MSAxNS4zNTAzIDcuNjkxNDFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOC4yMzkzNyA4LjE5MTQxSDE1LjM1MDNDMTUuMzc2MiA4LjE5MTQxIDE1LjM5NzIgOC4yMTI0NSAxNS4zOTcyIDguMjM4NFYxNS4zNDkzQzE1LjM5NzIgMTUuMzc1MiAxNS4zNzYyIDE1LjM5NjMgMTUuMzUwMyAxNS4zOTYzSDguMjM5MzdDOC4yMTM0MiAxNS4zOTYzIDguMTkyMzggMTUuMzc1MiA4LjE5MjM4IDE1LjM0OTNWOC4yMzg0QzguMTkyMzggOC4yMTI0NCA4LjIxMzQyIDguMTkxNDEgOC4yMzkzNyA4LjE5MTQxWiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTMxLjc2MDQgNy42OTE0MUgyNC42NDk1QzI0LjM0NzQgNy42OTE0MSAyNC4xMDI1IDcuOTM2MyAyNC4xMDI1IDguMjM4NFYxNS4zNDkzQzI0LjEwMjUgMTUuNjUxNCAyNC4zNDc0IDE1Ljg5NjMgMjQuNjQ5NSAxNS44OTYzSDMxLjc2MDRDMzIuMDYyNSAxNS44OTYzIDMyLjMwNzQgMTUuNjUxNCAzMi4zMDc0IDE1LjM0OTNWOC4yMzg0QzMyLjMwNzQgNy45MzYzIDMyLjA2MjUgNy42OTE0MSAzMS43NjA0IDcuNjkxNDFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjQuNjQ5NSA4LjE5MTQxSDMxLjc2MDRDMzEuNzg2NCA4LjE5MTQxIDMxLjgwNzQgOC4yMTI0NSAzMS44MDc0IDguMjM4NFYxNS4zNDkzQzMxLjgwNzQgMTUuMzc1MiAzMS43ODY0IDE1LjM5NjMgMzEuNzYwNCAxNS4zOTYzSDI0LjY0OTVDMjQuNjIzNiAxNS4zOTYzIDI0LjYwMjUgMTUuMzc1MiAyNC42MDI1IDE1LjM0OTNWOC4yMzg0QzI0LjYwMjUgOC4yMTI0NCAyNC42MjM2IDguMTkxNDEgMjQuNjQ5NSA4LjE5MTQxWiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTE1LjM1MDMgMjQuMDk5Nkg4LjIzOTM3QzcuOTM3MjggMjQuMDk5NiA3LjY5MjM4IDI0LjM0NDUgNy42OTIzOCAyNC42NDY2VjMxLjc1NzVDNy42OTIzOCAzMi4wNTk2IDcuOTM3MjggMzIuMzA0NSA4LjIzOTM3IDMyLjMwNDVIMTUuMzUwM0MxNS42NTI0IDMyLjMwNDUgMTUuODk3MyAzMi4wNTk2IDE1Ljg5NzMgMzEuNzU3NVYyNC42NDY2QzE1Ljg5NzMgMjQuMzQ0NSAxNS42NTI0IDI0LjA5OTYgMTUuMzUwMyAyNC4wOTk2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTguMjM5MzcgMjQuNTk5NkgxNS4zNTAzQzE1LjM3NjIgMjQuNTk5NiAxNS4zOTczIDI0LjYyMDYgMTUuMzk3MyAyNC42NDY2VjMxLjc1NzVDMTUuMzk3MyAzMS43ODM0IDE1LjM3NjIgMzEuODA0NSAxNS4zNTAzIDMxLjgwNDVIOC4yMzkzN0M4LjIxMzQyIDMxLjgwNDUgOC4xOTIzOCAzMS43ODM0IDguMTkyMzggMzEuNzU3NVYyNC42NDY2QzguMTkyMzggMjQuNjIwNiA4LjIxMzQyIDI0LjU5OTYgOC4yMzkzNyAyNC41OTk2WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPHBhdGggZD0iTTMxLjc2MDQgMjQuMDk5NkgyNC42NDk1QzI0LjM0NzQgMjQuMDk5NiAyNC4xMDI1IDI0LjM0NDUgMjQuMTAyNSAyNC42NDY2VjMxLjc1NzVDMjQuMTAyNSAzMi4wNTk2IDI0LjM0NzQgMzIuMzA0NSAyNC42NDk1IDMyLjMwNDVIMzEuNzYwNEMzMi4wNjI1IDMyLjMwNDUgMzIuMzA3NCAzMi4wNTk2IDMyLjMwNzQgMzEuNzU3NVYyNC42NDY2QzMyLjMwNzQgMjQuMzQ0NSAzMi4wNjI1IDI0LjA5OTYgMzEuNzYwNCAyNC4wOTk2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI0LjY0OTUgMjQuNTk5NkgzMS43NjA0QzMxLjc4NjQgMjQuNTk5NiAzMS44MDc0IDI0LjYyMDYgMzEuODA3NCAyNC42NDY2VjMxLjc1NzVDMzEuODA3NCAzMS43ODM0IDMxLjc4NjQgMzEuODA0NSAzMS43NjA0IDMxLjgwNDVIMjQuNjQ5NUMyNC42MjM2IDMxLjgwNDUgMjQuNjAyNSAzMS43ODM0IDI0LjYwMjUgMzEuNzU3NVYyNC42NDY2QzI0LjYwMjUgMjQuNjIwNiAyNC42MjM2IDI0LjU5OTYgMjQuNjQ5NSAyNC41OTk2WiIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLW9wYWNpdHk9IjAuMTUiLz4KPC9zdmc+Cg=='; + + config: Required; + private _readyState: WalletReadyState = isInBrowser() ? WalletReadyState.Loading : WalletReadyState.NotFound; + private _state: AdapterState = AdapterState.Loading; + private _connecting: boolean; + private _wallet: TronLinkWallet | null; + private _address: string | null; + + constructor(config: OkxWalletAdapterConfig = {}) { + super(); + const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openAppWithDeeplink = true } = config; + if (typeof checkTimeout !== 'number') { + throw new Error('[OkxWalletAdapter] config.checkTimeout should be a number'); + } + this.config = { + checkTimeout, + openAppWithDeeplink, + openUrlWhenWalletNotFound, + }; + this._connecting = false; + this._wallet = null; + this._address = null; + + if (!isInBrowser()) { + this._readyState = WalletReadyState.NotFound; + this.setState(AdapterState.NotFound); + return; + } + if (supportOkxWallet()) { + this._readyState = WalletReadyState.Found; + this._updateWallet(); + } else { + this._checkWallet().then(() => { + if (this.connected) { + this.emit('connect', this.address || ''); + } + }); + } + } + + get address() { + return this._address; + } + + get state() { + return this._state; + } + get readyState() { + return this._readyState; + } + + get connecting() { + return this._connecting; + } + + /** + * Get network information used by OkxWallet. + * @returns {Network} Current network information. + */ + async network(): Promise { + try { + await this._checkWallet(); + if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError(); + const wallet = this._wallet; + if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); + try { + return await getNetworkInfoByTronWeb(wallet.tronWeb); + } catch (e: any) { + throw new WalletGetNetworkError(e?.message, e); + } + } catch (e: any) { + this.emit('error', e); + throw e; + } + } + + async connect(): Promise { + try { + this.checkIfOpenOkxWallet(); + if (this.connected || this.connecting) return; + await this._checkWallet(); + if (this.state === AdapterState.NotFound) { + if (this.config.openUrlWhenWalletNotFound !== false && isInBrowser()) { + window.open(this.url, '_blank'); + } + throw new WalletNotFoundError(); + } + if (!this._wallet) return; + this._connecting = true; + const wallet = this._wallet as TronLinkWallet; + try { + const res = await wallet.request({ method: 'tron_requestAccounts' }); + if (!res) { + throw new WalletConnectionError('Request connect error.'); + } + if (res.code === 4000) { + throw new WalletConnectionError( + 'The same DApp has already initiated a request to connect to OkxWallet, and the pop-up window has not been closed.' + ); + } + if (res.code === 4001) { + throw new WalletConnectionError('The user rejected connection.'); + } + } catch (error: any) { + throw new WalletConnectionError(error?.message, error); + } + + const address = wallet.tronWeb.defaultAddress?.base58 || ''; + this.setAddress(address); + this.setState(AdapterState.Connected); + this._listenEvent(); + this.connected && this.emit('connect', this.address || ''); + } catch (error: any) { + this.emit('error', error); + throw error; + } finally { + this._connecting = false; + } + } + + async disconnect(): Promise { + this._stopListenEvent(); + if (this.state !== AdapterState.Connected) { + return; + } + this.setAddress(null); + this.setState(AdapterState.Disconnect); + this.emit('disconnect'); + } + + async signTransaction(transaction: Transaction, privateKey?: string): Promise { + try { + const wallet = await this.checkAndGetWallet(); + + try { + return await wallet.tronWeb.trx.sign(transaction, privateKey); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignTransactionError(error.message, error); + } else { + throw new WalletSignTransactionError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + async multiSign(...args: any[]): Promise { + try { + const wallet = await this.checkAndGetWallet(); + + try { + return await wallet.tronWeb.trx.multiSign(...args); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignTransactionError(error.message, error); + } else { + throw new WalletSignTransactionError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + async signMessage(message: string, privateKey?: string): Promise { + try { + const wallet = await this.checkAndGetWallet(); + try { + return await wallet.tronWeb.trx.signMessageV2(message, privateKey); + } catch (error: any) { + if (error instanceof Error) { + throw new WalletSignMessageError(error.message, error); + } else { + throw new WalletSignMessageError(error, new Error(error)); + } + } + } catch (error: any) { + this.emit('error', error); + throw error; + } + } + + private async checkAndGetWallet() { + this.checkIfOpenOkxWallet(); + await this._checkWallet(); + if (this.state !== AdapterState.Connected) throw new WalletDisconnectedError(); + const wallet = this._wallet; + if (!wallet || !wallet.tronWeb) throw new WalletDisconnectedError(); + return wallet as TronLinkWallet; + } + + private _listenEvent() { + this._stopListenEvent(); + window.addEventListener('message', this.messageHandler); + } + + private _stopListenEvent() { + window.removeEventListener('message', this.messageHandler); + } + + private messageHandler = (e: TronLinkMessageEvent) => { + const message = e.data?.message; + if (!message) { + return; + } + if (message.action === 'accountsChanged') { + setTimeout(() => { + const preAddr = this.address || ''; + if ((this._wallet as TronLinkWallet)?.ready) { + const address = (message.data as AccountsChangedEventData).address; + this.setAddress(address); + this.setState(AdapterState.Connected); + } else { + this.setAddress(null); + this.setState(AdapterState.Disconnect); + } + this.emit('accountsChanged', this.address || '', preAddr); + if (!preAddr && this.address) { + this.emit('connect', this.address); + } else if (preAddr && !this.address) { + this.emit('disconnect'); + } + }, 200); + } else if (message.action === 'connect') { + const address = (this._wallet as TronLinkWallet).tronWeb?.defaultAddress?.base58 || ''; + this.setAddress(address); + this.setState(AdapterState.Connected); + this.emit('connect', address); + } else if (message.action === 'disconnect') { + this.setAddress(null); + this.setState(AdapterState.Disconnect); + this.emit('disconnect'); + } + }; + + private checkIfOpenOkxWallet() { + if (this.config.openAppWithDeeplink === false) { + return; + } + if (openOkxWallet()) { + throw new WalletNotFoundError(); + } + } + + private _checkPromise: Promise | null = null; + /** + * check if wallet exists by interval, the promise only resolve when wallet detected or timeout + * @returns if OkxWallet exists + */ + private _checkWallet(): Promise { + if (this.readyState === WalletReadyState.Found) { + return Promise.resolve(true); + } + if (this._checkPromise) { + return this._checkPromise; + } + const interval = 100; + const maxTimes = Math.floor(this.config.checkTimeout / interval); + let times = 0, + timer: ReturnType; + this._checkPromise = new Promise((resolve) => { + const check = () => { + times++; + const isSupport = supportOkxWallet(); + if (isSupport || times > maxTimes) { + timer && clearInterval(timer); + this._readyState = isSupport ? WalletReadyState.Found : WalletReadyState.NotFound; + this._updateWallet(); + this.emit('readyStateChanged', this.readyState); + resolve(isSupport); + } + }; + timer = setInterval(check, interval); + check(); + }); + return this._checkPromise; + } + + private _updateWallet = () => { + let state = this.state; + let address = this.address; + if (supportOkxWallet()) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + this._wallet = window.okxwallet!.tronLink; + this._listenEvent(); + address = this._wallet.tronWeb?.defaultAddress?.base58 || null; + state = this._wallet.ready ? AdapterState.Connected : AdapterState.Disconnect; + } else { + this._wallet = null; + address = null; + state = AdapterState.NotFound; + } + this.setAddress(address); + this.setState(state); + }; + + private setAddress(address: string | null) { + this._address = address; + } + + private setState(state: AdapterState) { + const preState = this.state; + if (state !== preState) { + this._state = state; + this.emit('stateChanged', state); + } + } +} diff --git a/packages/adapters/okxwallet/src/index.ts b/packages/adapters/okxwallet/src/index.ts new file mode 100644 index 0000000..c4929c4 --- /dev/null +++ b/packages/adapters/okxwallet/src/index.ts @@ -0,0 +1,2 @@ +export * from './adapter.js'; +export * from './utils.js'; diff --git a/packages/adapters/okxwallet/src/utils.ts b/packages/adapters/okxwallet/src/utils.ts new file mode 100644 index 0000000..6df7074 --- /dev/null +++ b/packages/adapters/okxwallet/src/utils.ts @@ -0,0 +1,13 @@ +import { isInMobileBrowser } from '@tronweb3/tronwallet-abstract-adapter'; + +export function supportOkxWallet() { + return !!(window.okxwallet && window.okxwallet.tronLink); +} + +export function openOkxWallet() { + if (!supportOkxWallet() && isInMobileBrowser()) { + window.location.href = `okx://wallet/dapp/details?dappUrl=${window.location.href}`; + return true; + } + return false; +} diff --git a/packages/adapters/okxwallet/tests/units/adapter.test.ts b/packages/adapters/okxwallet/tests/units/adapter.test.ts new file mode 100644 index 0000000..fe04399 --- /dev/null +++ b/packages/adapters/okxwallet/tests/units/adapter.test.ts @@ -0,0 +1,32 @@ +import { OkxWalletAdapter } from '../../src/index.js'; + +window.open = jest.fn(); +beforeEach(function () { + jest.useFakeTimers(); + global.document = window.document; + global.navigator = window.navigator; + window.tronLink = undefined; + window.tron = undefined; +}); +describe('OkxWalletAdapter', function () { + describe('#adapter()', function () { + test('constructor', () => { + const adapter = new OkxWalletAdapter(); + expect(adapter.name).toEqual('OKX Wallet'); + expect(adapter).toHaveProperty('icon'); + expect(adapter).toHaveProperty('url'); + expect(adapter).toHaveProperty('readyState'); + expect(adapter).toHaveProperty('address'); + expect(adapter).toHaveProperty('connecting'); + expect(adapter).toHaveProperty('connected'); + + expect(adapter).toHaveProperty('connect'); + expect(adapter).toHaveProperty('disconnect'); + expect(adapter).toHaveProperty('signMessage'); + expect(adapter).toHaveProperty('signTransaction'); + + expect(adapter).toHaveProperty('on'); + expect(adapter).toHaveProperty('off'); + }); + }); +}); diff --git a/packages/adapters/okxwallet/tsconfig.all.json b/packages/adapters/okxwallet/tsconfig.all.json new file mode 100644 index 0000000..a1ded9c --- /dev/null +++ b/packages/adapters/okxwallet/tsconfig.all.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../tsconfig.root.json", + "references": [ + { + "path": "../abstract-adapter/tsconfig.all.json" + }, + { + "path": "../tronlink/tsconfig.all.json" + }, + { + "path": "./tsconfig.cjs.json" + }, + { + "path": "./tsconfig.esm.json" + } + ] +} diff --git a/packages/adapters/okxwallet/tsconfig.cjs.json b/packages/adapters/okxwallet/tsconfig.cjs.json new file mode 100644 index 0000000..099b9aa --- /dev/null +++ b/packages/adapters/okxwallet/tsconfig.cjs.json @@ -0,0 +1,7 @@ +{ + "extends": "../../../tsconfig.cjs.json", + "include": ["src"], + "compilerOptions": { + "outDir": "lib/cjs" + } +} diff --git a/packages/adapters/okxwallet/tsconfig.esm.json b/packages/adapters/okxwallet/tsconfig.esm.json new file mode 100644 index 0000000..4900d2f --- /dev/null +++ b/packages/adapters/okxwallet/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.esm.json", + "include": ["src"], + "compilerOptions": { + "outDir": "lib/esm", + "declarationDir": "lib/types" + } +} diff --git a/packages/adapters/tokenpocket/README.md b/packages/adapters/tokenpocket/README.md index 0a14821..6af3cbc 100644 --- a/packages/adapters/tokenpocket/README.md +++ b/packages/adapters/tokenpocket/README.md @@ -6,10 +6,15 @@ This package provides an adapter to enable TRON DApps to connect to the [TokenPo ```typescript import { TokenPocketAdapter } from '@tronweb3/tronwallet-adapter-tokenpocket'; -// import TronWeb from 'tronweb'; +import TronWeb from 'tronweb'; + +const tronWeb = new TronWeb({ + fullHost: 'https://api.trongrid.io', + headers: { 'TRON-PRO-API-KEY': 'your api key' }, +}); const adapter = new TokenPocketAdapter(); -// connect to TokenPocket +// connect await adapter.connect(); // then you can get address @@ -19,15 +24,61 @@ console.log(adapter.address); const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address); // using adapter to sign the transaction const signedTransaction = await adapter.signTransaction(unSignedTransaction); -// broadcase the transaction +// broadcast the transaction await tronWeb.trx.sendRawTransaction(signedTransaction); ``` ## Documentation -For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) +### API + +- `Constructor(config: TokenPocketConfig)` + +```typescript +interface TokenPocketConfig { + /** + * Set if open Wallet's website when wallet is not installed. + * Default is true. + */ + openUrlWhenWalletNotFound?: boolean; + /** + * Timeout in millisecond for checking if TokenPocket wallet is supported. + * Default is 2 * 1000ms + */ + checkTimeout?: number; + /** + * Set if open TokenPocket app using DeepLink on mobile device. + * Default is true. + */ + openAppWithDeeplink?: boolean; +} +``` + +- `network()` method is supported to get current network information. The type of returned value is `Network` as follows: + + ```typescript + export enum NetworkType { + Mainnet = 'Mainnet', + Shasta = 'Shasta', + Nile = 'Nile', + /** + * When use custom node + */ + Unknown = 'Unknown', + } + + export type Network = { + networkType: NetworkType; + chainId: string; + fullNode: string; + solidityNode: string; + eventServer: string; + }; + ``` ### Caveats - TokenPocket App doesn't implement `signMessage()`, `multiSign()` and `switchChain()`. -- TokenPocket App will reload current page so there is no need to listen `accountsChanged` event. +- TokenPocket App will be connected automatically and when user change accounts, the page will reload. So there is no need to to listen to `accountsChanged` event. + +For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) diff --git a/packages/adapters/tokenpocket/src/adapter.ts b/packages/adapters/tokenpocket/src/adapter.ts index 747b0bb..f351ec4 100644 --- a/packages/adapters/tokenpocket/src/adapter.ts +++ b/packages/adapters/tokenpocket/src/adapter.ts @@ -31,7 +31,7 @@ export interface TokenPocketAdapterConfig extends BaseAdapterConfig { * Set if open TokenPocket app using DeepLink. * Default is true. */ - openTokenPocketAppOnMobile?: boolean; + openAppWithDeeplink?: boolean; } export const TokenPocketAdapterName = 'TokenPocket' as AdapterName<'TokenPocket'>; @@ -51,13 +51,13 @@ export class TokenPocketAdapter extends Adapter { constructor(config: TokenPocketAdapterConfig = {}) { super(); - const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openTokenPocketAppOnMobile = true } = config; + const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openAppWithDeeplink = true } = config; if (typeof checkTimeout !== 'number') { throw new Error('[TokenPocketAdapter] config.checkTimeout should be a number'); } this.config = { checkTimeout, - openTokenPocketAppOnMobile, + openAppWithDeeplink, openUrlWhenWalletNotFound, }; this._connecting = false; @@ -217,7 +217,7 @@ export class TokenPocketAdapter extends Adapter { } private checkIfOpenApp() { - if (this.config.openTokenPocketAppOnMobile === false) { + if (this.config.openAppWithDeeplink === false) { return; } if (openTokenPocket()) { diff --git a/packages/adapters/tronlink/README.md b/packages/adapters/tronlink/README.md index 3cc8ee5..4036974 100644 --- a/packages/adapters/tronlink/README.md +++ b/packages/adapters/tronlink/README.md @@ -2,4 +2,90 @@ This package provides an adapter to enable TRON DApps to connect to the [TronLink Wallet extension](https://chrome.google.com/webstore/detail/tronlink/ibnejdfjmmkpcnlpebklmnkoeoihofec) and [TronLink Wallet App](https://www.tronlink.org/). +## Demo + +```typescript +import { TokenPocketAdapter } from '@tronweb3/tronwallet-adapter-tokenpocket'; +import TronWeb from 'tronweb'; + +const tronWeb = new TronWeb({ + fullHost: 'https://api.trongrid.io', + headers: { 'TRON-PRO-API-KEY': 'your api key' }, +}); + +const adapter = new TokenPocketAdapter(); +// connect +await adapter.connect(); + +// then you can get address +console.log(adapter.address); + +// create a send TRX transaction +const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address); +// using adapter to sign the transaction +const signedTransaction = await adapter.signTransaction(unSignedTransaction); +// broadcast the transaction +await tronWeb.trx.sendRawTransaction(signedTransaction); +``` + +## Documentation + +### API + +- `Constructor(config: TronLinkAdapterConfig)` + ```typescript + interface TronLinkAdapterConfig { + /** + * Set if open Wallet's website url when wallet is not installed. + * Default is true. + */ + openUrlWhenWalletNotFound?: boolean; + /** + * Timeout in millisecond for checking if TronLink wallet exists. + * Default is 30 * 1000ms + */ + checkTimeout?: number; + /** + * Set if open TronLink app using DeepLink on mobile device. + * Default is true. + */ + openTronLinkAppOnMobile?: boolean; + /** + * The icon of your dapp. Used when open TronLink app in mobile device browsers. + * Default is current website icon. + */ + dappIcon?: string; + /** + * The name of your dapp. Used when open TronLink app in mobile device browsers. + * Default is `document.title`. + */ + dappName?: string; + } + ``` +- `network()` method is supported to get current network information. The type of returned value is `Network` as follows: + + ```typescript + export enum NetworkType { + Mainnet = 'Mainnet', + Shasta = 'Shasta', + Nile = 'Nile', + /** + * When use custom node + */ + Unknown = 'Unknown', + } + + export type Network = { + networkType: NetworkType; + chainId: string; + fullNode: string; + solidityNode: string; + eventServer: string; + }; + ``` + +### Caveats + +- **Don't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. + For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) diff --git a/packages/adapters/walletconnect/README.md b/packages/adapters/walletconnect/README.md index a20970a..26f4aa2 100644 --- a/packages/adapters/walletconnect/README.md +++ b/packages/adapters/walletconnect/README.md @@ -2,32 +2,77 @@ This package provides an adapter to enable TRON DApps to connect to [WalletConnect](https://walletconnect.com/). -## Usage +## Demo ```typescript import { WalletConnectAdapter } from '@tronweb3/tronwallet-adapter-walletconnect'; +import TronWeb from 'tronweb'; -const App = () => { - const adapters = useMemo( - () => [ - new WalletConnectAdapter({ - network: 'Nile', - options: { - relayUrl: 'wss://relay.walletconnect.com', - // example walletconnect app project ID - projectId: 'e899c82be21d4acca2c8aec45e893598', - metadata: { - name: 'Example App', - description: 'Example App', - url: 'https://yourdapp-url.com', - icons: ['https://yourdapp-url.com/icon.png'], - }, - }, - }), - ], - [] - ); -}; +const tronWeb = new TronWeb({ + fullHost: 'https://api.trongrid.io', + headers: { 'TRON-PRO-API-KEY': 'your api key' }, +}); + +const adapter = new WalletConnectAdapter({ + network: 'Nile', + options: { + relayUrl: 'wss://relay.walletconnect.com', + // example walletconnect app project ID + projectId: 'e899c82be21d4acca2c8aec45e893598', + metadata: { + name: 'Example App', + description: 'Example App', + url: 'https://yourdapp-url.com', + icons: ['https://yourdapp-url.com/icon.png'], + }, + }, +}); +// connect +await adapter.connect(); + +// then you can get address +console.log(adapter.address); + +// create a send TRX transaction +const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address); +// using adapter to sign the transaction +const signedTransaction = await adapter.signTransaction(unSignedTransaction); +// broadcast the transaction +await tronWeb.trx.sendRawTransaction(signedTransaction); ``` +## Documentation + +### API + +- `Constructor(config: WalletConnectAdapterConfig)` + ```typescript + interface WalletConnectAdapterConfig { + /** + * Network to use, one of Mainnet, Shasta, Nile + * Default: Nile + */ + network: 'Mainnet' | 'Shasta' | 'Nile'; + /** + * Options passed to WalletConnect client + */ + options: { + projectId: ''; + // optional parameters + relayUrl: ''; + metadata: { + name: 'Wallet name'; + description: 'A short description for your wallet'; + url: ""; + icons: [""]; + }; + }; + } + ``` + More detail about WalletConnect client options please refer to the [WalletConnect document](https://docs.walletconnect.com/2.0/javascript/sign/dapp-usage). + +### Caveates + +- `multiSign()` and `switchChain(chainId: string)` are not supported. + For more information about wallet adapter, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters). diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 24da0e7..657b279 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -71,6 +71,7 @@ importers: '@tronweb3/tronwallet-abstract-adapter': ^1.1.0 '@tronweb3/tronwallet-adapter-bitkeep': ^1.0.0 '@tronweb3/tronwallet-adapter-ledger': ^1.1.2 + '@tronweb3/tronwallet-adapter-okxwallet': ^1.0.0 '@tronweb3/tronwallet-adapter-react-hooks': ^1.0.0 '@tronweb3/tronwallet-adapter-react-ui': ^1.1.0 '@tronweb3/tronwallet-adapter-tokenpocket': ^1.0.0 @@ -93,6 +94,7 @@ importers: '@tronweb3/tronwallet-abstract-adapter': link:../../packages/adapters/abstract-adapter '@tronweb3/tronwallet-adapter-bitkeep': link:../../packages/adapters/bitkeep '@tronweb3/tronwallet-adapter-ledger': link:../../packages/adapters/ledger + '@tronweb3/tronwallet-adapter-okxwallet': link:../../packages/adapters/okxwallet '@tronweb3/tronwallet-adapter-react-hooks': link:../../packages/react/react-hooks '@tronweb3/tronwallet-adapter-react-ui': link:../../packages/react/react-ui '@tronweb3/tronwallet-adapter-tokenpocket': link:../../packages/adapters/tokenpocket @@ -293,6 +295,7 @@ importers: specifiers: '@tronweb3/tronwallet-adapter-bitkeep': ^1.0.0 '@tronweb3/tronwallet-adapter-ledger': ^1.1.6 + '@tronweb3/tronwallet-adapter-okxwallet': ^1.0.0 '@tronweb3/tronwallet-adapter-tokenpocket': ^1.0.0 '@tronweb3/tronwallet-adapter-tronlink': ^1.1.5 '@tronweb3/tronwallet-adapter-walletconnect': ^1.0.3 @@ -300,6 +303,7 @@ importers: dependencies: '@tronweb3/tronwallet-adapter-bitkeep': link:../bitkeep '@tronweb3/tronwallet-adapter-ledger': link:../ledger + '@tronweb3/tronwallet-adapter-okxwallet': link:../okxwallet '@tronweb3/tronwallet-adapter-tokenpocket': link:../tokenpocket '@tronweb3/tronwallet-adapter-tronlink': link:../tronlink '@tronweb3/tronwallet-adapter-walletconnect': link:../walletconnect @@ -344,6 +348,21 @@ importers: '@testing-library/dom': 8.20.0 shx: 0.3.4 + packages/adapters/okxwallet: + specifiers: + '@testing-library/dom': ^8.20.0 + '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 + '@tronweb3/tronwallet-adapter-tronlink': ^1.1.5 + jest-environment-jsdom: ^29.3.1 + shx: ^0.3.4 + dependencies: + '@tronweb3/tronwallet-abstract-adapter': link:../abstract-adapter + '@tronweb3/tronwallet-adapter-tronlink': link:../tronlink + devDependencies: + '@testing-library/dom': registry.npmjs.org/@testing-library/dom/8.20.0 + jest-environment-jsdom: registry.npmjs.org/jest-environment-jsdom/29.4.2 + shx: registry.npmjs.org/shx/0.3.4 + packages/adapters/tokenpocket: specifiers: '@testing-library/dom': ^8.20.0 diff --git a/tsconfig.all.json b/tsconfig.all.json index de93a15..69dc82c 100644 --- a/tsconfig.all.json +++ b/tsconfig.all.json @@ -22,6 +22,9 @@ { "path": "./packages/adapters/bitkeep/tsconfig.all.json" }, + { + "path": "./packages/adapters/okxwallet/tsconfig.all.json" + }, { "path": "./packages/react/react-hooks/tsconfig.all.json" }, From c887eb0cd5ec3de49afabeb40913a9a93a4848b7 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Tue, 18 Apr 2023 17:09:45 +0800 Subject: [PATCH 04/12] docs: update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2df0e7d..2b35e64 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ You can use the `@tronweb3/tronwallet-adapters` package, or add the individual w | [tronlink](https://www.tronlink.org/) | Adapter for TronLink extention and TronLink app(IOS and Android) | [`@tronweb3/tronwallet-adapter-tronlink`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-tronlink) | | [ledger](https://www.ledger.com/) | Adapter for Ledger | [`@tronweb3/tronwallet-adapter-ledger`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-ledger) | | [walletconnect](https://walletconnect.com/) | Adapter for Walletconnect | [`@tronweb3/tronwallet-adapter-walletconnect`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-walletconnect) | -| [tokenpocket](https://tokenpocket.pro/) | Adapter for TokenPocket App | [`@tronweb3/tronwallet-adapter-tokenpocket`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-tokenpocket) | +| [tokenpocket](https://tokenpocket.pro/) | Adapter for TokenPocket App(IOS and Android) | [`@tronweb3/tronwallet-adapter-tokenpocket`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-tokenpocket) | | [bitkeep](https://bitkeep.com/) | Adapter for BitKeep extension and BitKeep App(IOS and Android) | [`@tronweb3/tronwallet-adapter-bitkeep`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-bitkeep) | | [okxwallet](https://www.okx.com/) | Adapter for Okx Wallet extension and App(IOS and Android) | [`@tronweb3/tronwallet-adapter-okxwallet`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-okxwallet) | From 9eb6d7770abab333f1adb1b941d99a1e7500e9f2 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Wed, 19 Apr 2023 11:41:33 +0800 Subject: [PATCH 05/12] docs: fix documentation error --- docs/wallet-adapters.md | 136 ++----------------- package.json | 2 +- packages/adapters/adapters/README.md | 2 +- packages/adapters/bitkeep/src/adapter.ts | 6 +- packages/adapters/okxwallet/README.md | 2 +- packages/adapters/okxwallet/package.json | 4 +- packages/adapters/tokenpocket/src/adapter.ts | 4 +- packages/adapters/tronlink/README.md | 6 +- packages/adapters/tronlink/src/adapter.ts | 2 +- 9 files changed, 26 insertions(+), 138 deletions(-) diff --git a/docs/wallet-adapters.md b/docs/wallet-adapters.md index ce7a415..0f5d73c 100644 --- a/docs/wallet-adapters.md +++ b/docs/wallet-adapters.md @@ -6,10 +6,15 @@ As `@tronweb3/tronwallet-adapters` exports adapter of each wallet , you can use this package, or use the individual wallet adapter you want. -- [`@tronweb3/tronwallet-adapters`](https://npmjs.com/package/@tronweb3/tronwallet-adapters): Includes all the wallet adapters. -- [`@tronweb3/tronwallet-adapter-tronlink`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-tronlink): adapter for [TronLink](https://www.tronlink.org/). -- [`@tronweb3/tronwallet-adapter-walletconnect`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-walletconnect): adapter for [WalletConnect](https://docs.walletconnect.com/2.0/). -- [`@tronweb3/tronwallet-adapter-ledger`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-ledger): adapter for [Ledger](https://www.ledger.com/). +| NPM package | Description | Source Code | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| [`@tronweb3/tronwallet-adapters`](https://npmjs.com/package/@tronweb3/tronwallet-adapters) | Includes all the wallet adapters | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) | +| [`@tronweb3/tronwallet-adapter-tronlink`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-tronlink) | adapter for [TronLink](https://www.tronlink.org/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/tronlink) | +| [`@tronweb3/tronwallet-adapter-walletconnect`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-walletconnect) | adapter for adapter for [WalletConnect](https://docs.walletconnect.com/2.0/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/walletconnect) | +| [`@tronweb3/tronwallet-adapter-tokenpocket`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-tokenpocket) | adapter for [TokenPocket](https://tokenpocket.pro/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/tokenpocket) | +| [`@tronweb3/tronwallet-adapter-bitkeep`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-bitkeep) | adapter for [BitKeep](https://bitkeep.com/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/bitkeep) | +| [`@tronweb3/tronwallet-adapter-okxwallet`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-okxwallet) | adapter for [Okx Wallet](https://okx.com/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/okxwallet) | +| [`@tronweb3/tronwallet-adapter-ledger`](https://npmjs.com/package/@tronweb3/tronwallet-adapter-ledger) | adapter for [Ledger](https://www.ledger.com/) | [View](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/ledger) | ## Usage @@ -261,7 +266,7 @@ try { /** * When use custom node */ - Unknown = 'Unknown' + Unknown = 'Unknown', } export type Network = { @@ -273,124 +278,7 @@ try { }; ``` -- **Don't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. +- **TronLink Doesn't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. - **Auto open TronLink app in mobile browser**. If developers call `connect()` method in mobile browser, it will open DApp in TronLink app to get tronlink wallet. -### WalletConnectAdapter - -- `Constructor(config: WalletConnectAdapterConfig)` - ```typescript - interface WalletConnectAdapterConfig { - /** - * Network to use, one of Mainnet, Shasta, Nile - * Default: Nile - */ - network: 'Mainnet' | 'Shasta' | 'Nile'; - /** - * Options passed to WalletConnect client - */ - options: { - projectId: ''; - // optional parameters - relayUrl: ''; - metadata: { - name: 'Wallet name'; - description: 'A short description for your wallet'; - url: ""; - icons: [""]; - }; - }; - } - ``` - More detail about WalletConnect client options please refer to the [WalletConnect document](https://docs.walletconnect.com/2.0/javascript/sign/dapp-usage). -- `multiSign()` and `switchChain(chainId: string)` are not supported. - -### LedgerAdapter - -- `Constructor(config: LedgerAdapterConfig)` - - ```typescript - interface LedgerAdapterConfig { - /** - * Set if open Wallet's website url when wallet is not installed. - * Default is true. - */ - openUrlWhenWalletNotFound?: boolean; - /** - * Initial total accounts to get once connection is created, default is 1 - */ - accountNumber?: number; - - /** - * Hook function to call before connecting to ledger and geting accounts. - * By default, a modal will popup to reminder user to prepare the ledger and enter Tron app. - * You can specify a function to disable this modal. - */ - beforeConnect?: () => Promise | unknown; - - /** - * Hook function to call after connecting to ledger and geting initial accounts. - * The function should return the selected account including the index of account. - * Following operations such as `signMessage` will use the selected account. - */ - selectAccount?: (params: { accounts: Account[]; ledgerUtils: LedgerUtils }) => Promise; - - /** - * Function to get derivate BIP44 path by index. - * Default is `44'/195'/${index}'/0/0` - */ - getDerivationPath?: (index: number) => string; - } - interface Account { - /** - * The index to get BIP44 path. - */ - index: number; - /** - * The BIP44 path to derivate address. - */ - path: string; - /** - * The derivated address. - */ - address: string; - } - interface LedgerUtils { - /** - * Get accounts from ledger by index. `from` is included and `to` is excluded. - * User can use the function to load more accounts. - */ - getAccounts: (from: number, to: number) => Promise; - /** - * Request to get an address with specified index using getDerivationPath(index) to get BIP44 path. - * If `display` is true, will request user to approve on ledger. - * The promise will resove if user approve and reject if user cancel the operation. - */ - getAddress: (index: number, display: boolean) => Promise<{ publicKey: string; address: string }>; - } - ``` - -- Property: `ledgerUtils` - `ledgerUtils` on LedgerAdapter is used to get useful functions to interact with Ledger directly. `ledgerUtils` is defined as last section. - - - `getAccounts(from: number, to: number)` is a wrapped function to get multiple accounts by index range from ledger. - For example: - - ```typescript - const adapter = new LedgerAdapter(); - // get 5 accounts from ledger - const accounts = await adapter.ledgerUtils.getAcccounts(0, 5); - // [{ address: string, index: 0, path: "44'/195'/0'/0/0" }, ...] - ``` - - - `getAddress: (index: number, display: boolean)` is a raw function to request an address from ledger. - If `display` is true, will request user to approve on ledger. - For example, following code will request user approve on Ledger to confirm to connect their ledger. - - ```typescript - const adapter = new LedgerAdapter(); - const result = await adapter.ledgerUtils.getAddress(0, true); - // { address: 'some address', publicKey: 'publicKey for address' } - ``` - -- `multiSign()` and `switchChain(chainId: string)` are not supported. +Others adapters `Constructor` config api can be found in their source code `README`. diff --git a/package.json b/package.json index 979f323..3a005a9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tronwallet-adapter", "description": "wallet adapters for TRON blockchain", - "version": "1.1.5", + "version": "1.1.6", "main": "index.js", "sideEffects": false, "private": true, diff --git a/packages/adapters/adapters/README.md b/packages/adapters/adapters/README.md index 01ddbfa..0f5d73c 100644 --- a/packages/adapters/adapters/README.md +++ b/packages/adapters/adapters/README.md @@ -278,7 +278,7 @@ try { }; ``` -- **Don't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. +- **TronLink Doesn't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. - **Auto open TronLink app in mobile browser**. If developers call `connect()` method in mobile browser, it will open DApp in TronLink app to get tronlink wallet. Others adapters `Constructor` config api can be found in their source code `README`. diff --git a/packages/adapters/bitkeep/src/adapter.ts b/packages/adapters/bitkeep/src/adapter.ts index ea916a2..8516e23 100644 --- a/packages/adapters/bitkeep/src/adapter.ts +++ b/packages/adapters/bitkeep/src/adapter.ts @@ -23,7 +23,7 @@ import { supportBitKeep } from './utils.js'; export interface BitKeepAdapterConfig extends BaseAdapterConfig { /** - * Timeout in millisecond for checking if is support BitKeep. + * Timeout in millisecond for checking if BitKeep is supported. * Default is 2 * 1000ms */ checkTimeout?: number; @@ -91,7 +91,7 @@ export class BitKeepAdapter extends Adapter { } /** - * Get network information used by TokenPocket. + * Get network information. * @returns {Network} Current network information. */ async network(): Promise { @@ -239,7 +239,7 @@ export class BitKeepAdapter extends Adapter { private _checkPromise: Promise | null = null; /** * check if wallet exists by interval, the promise only resolve when wallet detected or timeout - * @returns if TronLink exists + * @returns if wallet exists */ private _checkWallet(): Promise { if (this.readyState === WalletReadyState.Found) { diff --git a/packages/adapters/okxwallet/README.md b/packages/adapters/okxwallet/README.md index 10aac37..8d79a98 100644 --- a/packages/adapters/okxwallet/README.md +++ b/packages/adapters/okxwallet/README.md @@ -1,6 +1,6 @@ # `@tronweb3/tronwallet-adapter-okxwallet` -This package provides an adapter to enable TRON DApps to connect to the [Okx Wallet extension](https://www.okx.com/download) and [Okx Wallet Wallet App](https://www.okx.com/download). +This package provides an adapter to enable TRON DApps to connect to the [Okx Wallet extension](https://www.okx.com/download) and [Okx Wallet App](https://www.okx.com/download). ## Demo diff --git a/packages/adapters/okxwallet/package.json b/packages/adapters/okxwallet/package.json index 5031ba3..ae9e7ed 100644 --- a/packages/adapters/okxwallet/package.json +++ b/packages/adapters/okxwallet/package.json @@ -1,11 +1,11 @@ { "name": "@tronweb3/tronwallet-adapter-okxwallet", "version": "1.0.0", - "description": "Wallet adapter for TronLink Wallet extension and TronLink app.", + "description": "Wallet adapter for Okx Wallet extension and Okx Wallet app.", "keywords": [ "TRON", "TronWeb", - "TronLink" + "Okx Wallet" ], "author": "tronprotocol", "repository": { diff --git a/packages/adapters/tokenpocket/src/adapter.ts b/packages/adapters/tokenpocket/src/adapter.ts index f351ec4..a3e8450 100644 --- a/packages/adapters/tokenpocket/src/adapter.ts +++ b/packages/adapters/tokenpocket/src/adapter.ts @@ -98,7 +98,7 @@ export class TokenPocketAdapter extends Adapter { } /** - * Get network information used by TokenPocket. + * Get network information. * @returns {Network} Current network information. */ async network(): Promise { @@ -251,7 +251,7 @@ export class TokenPocketAdapter extends Adapter { private _checkPromise: Promise | null = null; /** * check if wallet exists by interval, the promise only resolve when wallet detected or timeout - * @returns if TronLink exists + * @returns if wallet exists */ private _checkWallet(): Promise { if (this.readyState === WalletReadyState.Found) { diff --git a/packages/adapters/tronlink/README.md b/packages/adapters/tronlink/README.md index 4036974..189deaf 100644 --- a/packages/adapters/tronlink/README.md +++ b/packages/adapters/tronlink/README.md @@ -5,7 +5,7 @@ This package provides an adapter to enable TRON DApps to connect to the [TronLin ## Demo ```typescript -import { TokenPocketAdapter } from '@tronweb3/tronwallet-adapter-tokenpocket'; +import { TronLinkAdapter } from '@tronweb3/tronwallet-adapter-tronlink'; import TronWeb from 'tronweb'; const tronWeb = new TronWeb({ @@ -13,7 +13,7 @@ const tronWeb = new TronWeb({ headers: { 'TRON-PRO-API-KEY': 'your api key' }, }); -const adapter = new TokenPocketAdapter(); +const adapter = new TronLinkAdapter(); // connect await adapter.connect(); @@ -86,6 +86,6 @@ await tronWeb.trx.sendRawTransaction(signedTransaction); ### Caveats -- **Don't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. +- **TronLink Doesn't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters) diff --git a/packages/adapters/tronlink/src/adapter.ts b/packages/adapters/tronlink/src/adapter.ts index 269fabd..28da710 100644 --- a/packages/adapters/tronlink/src/adapter.ts +++ b/packages/adapters/tronlink/src/adapter.ts @@ -457,7 +457,7 @@ export class TronLinkAdapter extends Adapter { private _checkPromise: Promise | null = null; /** * check if wallet exists by interval, the promise only resolve when wallet detected or timeout - * @returns if TronLink exists + * @returns if wallet exists */ private _checkWallet(): Promise { if (this.readyState === WalletReadyState.Found) { From 3f5197f080cbc3e8fce6396f071e193a9b41585a Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Thu, 20 Apr 2023 19:01:27 +0800 Subject: [PATCH 06/12] feat: optimize okx wallet adapter --- demos/dev-demo/src/BitKeepAdapterDemo.tsx | 1 + demos/dev-demo/src/OkxWalletAdapterDemo.tsx | 4 ++-- packages/adapters/okxwallet/src/adapter.ts | 13 +++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/demos/dev-demo/src/BitKeepAdapterDemo.tsx b/demos/dev-demo/src/BitKeepAdapterDemo.tsx index a9dcaee..e97d07d 100644 --- a/demos/dev-demo/src/BitKeepAdapterDemo.tsx +++ b/demos/dev-demo/src/BitKeepAdapterDemo.tsx @@ -62,6 +62,7 @@ export function BitKeepAdapterDemo() { adapter.on('disconnect', () => { console.log('disconnect'); setConnectState(AdapterState.Disconnect) + setAccount(adapter.address || ''); }); return () => { diff --git a/demos/dev-demo/src/OkxWalletAdapterDemo.tsx b/demos/dev-demo/src/OkxWalletAdapterDemo.tsx index 0c5715c..a382849 100644 --- a/demos/dev-demo/src/OkxWalletAdapterDemo.tsx +++ b/demos/dev-demo/src/OkxWalletAdapterDemo.tsx @@ -7,8 +7,8 @@ import { AdapterState } from '@tronweb3/tronwallet-abstract-adapter'; import { Box, Button, Typography, Tooltip, Select, MenuItem, Alert, FormControl, TextField } from '@mui/material'; import { tronWeb } from './tronweb.js'; const receiver = 'TMDKznuDWaZwfZHcM61FVFstyYNmK6Njk1'; -// const getTronWeb = () => window.okxwallet?.tronLink?.tronWeb as any || null; -const getTronWeb = () => tronWeb; +const getTronWeb = () => window.okxwallet?.tronLink?.tronWeb as any || null; +// const getTronWeb = () => tronWeb; export function OkxWalletAdapterDemo() { const [connectState, setConnectState] = useState(AdapterState.NotFound); diff --git a/packages/adapters/okxwallet/src/adapter.ts b/packages/adapters/okxwallet/src/adapter.ts index 33578ee..49db3c6 100644 --- a/packages/adapters/okxwallet/src/adapter.ts +++ b/packages/adapters/okxwallet/src/adapter.ts @@ -272,7 +272,10 @@ export class OkxWalletAdapter extends Adapter { this.setAddress(null); this.setState(AdapterState.Disconnect); } - this.emit('accountsChanged', this.address || '', preAddr); + const address = this.address || ''; + if (address !== preAddr) { + this.emit('accountsChanged', this.address || '', preAddr); + } if (!preAddr && this.address) { this.emit('connect', this.address); } else if (preAddr && !this.address) { @@ -280,10 +283,16 @@ export class OkxWalletAdapter extends Adapter { } }, 200); } else if (message.action === 'connect') { + const isCurConnected = this.connected; + const preAddress = this.address || ''; const address = (this._wallet as TronLinkWallet).tronWeb?.defaultAddress?.base58 || ''; this.setAddress(address); this.setState(AdapterState.Connected); - this.emit('connect', address); + if (!isCurConnected) { + this.emit('connect', address); + } else if (address !== preAddress) { + this.emit('accountsChanged', this.address || '', preAddress); + } } else if (message.action === 'disconnect') { this.setAddress(null); this.setState(AdapterState.Disconnect); From b6c33a57363ae4e6070780af5fc822b66dc0c716 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Thu, 20 Apr 2023 19:14:41 +0800 Subject: [PATCH 07/12] feat: add build dev demo --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 3a005a9..1653ade 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "build:ts": "tsc --build --verbose tsconfig.all.json", "build:other": "pnpm --recursive --filter \"@tronweb3/*\" run build", "build:clean": "pnpm run clean && pnpm run build && pnpm run package", + "build-dev-demo": "pnpm build && pnpm run --filter {demos/dev-demo} build", "package": "pnpm --recursive run package", "release": "pnpm prerelease && pnpm build:clean && pnpm test && changeset publish", "watch": "pnpm run watch:ts", From cc24b5b756c70e0cd933b9acb0a8d4d59f4bb10a Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Sun, 23 Apr 2023 17:52:44 +0800 Subject: [PATCH 08/12] fix: fix connect doesn't work in TronLink app --- demos/dev-demo/src/main.tsx | 2 +- packages/adapters/tronlink/src/adapter.ts | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/demos/dev-demo/src/main.tsx b/demos/dev-demo/src/main.tsx index be5e831..ab0cd5c 100644 --- a/demos/dev-demo/src/main.tsx +++ b/demos/dev-demo/src/main.tsx @@ -9,7 +9,7 @@ import theme from './theme'; import VConsole from 'vconsole'; import './index.css'; import { AppWraper } from './AppWraper.js'; -const vConsole = new VConsole(); +// const vConsole = new VConsole(); // console.log('load', window.tronWeb?.defaultAddress, window.okxwallet?.tronLink.tronWeb.defaultAddress); ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/packages/adapters/tronlink/src/adapter.ts b/packages/adapters/tronlink/src/adapter.ts index 28da710..c19ecc4 100644 --- a/packages/adapters/tronlink/src/adapter.ts +++ b/packages/adapters/tronlink/src/adapter.ts @@ -96,7 +96,6 @@ export class TronLinkAdapter extends Adapter { private _connecting: boolean; private _wallet: TronLinkWallet | Tron | null; private _address: string | null; - private _supportTronLink = false; // https://github.com/tronprotocol/tips/blob/master/tip-1193.md private _supportNewTronProtocol = false; // record if first connect event has emitted or not @@ -189,7 +188,7 @@ export class TronLinkAdapter extends Adapter { throw new WalletNotFoundError(); } // lower version only support window.tronWeb, no window.tronLink - if (!this._wallet || !this._supportTronLink) return; + if (!this._wallet) return; this._connecting = true; if (this._supportNewTronProtocol) { const wallet = this._wallet as Tron; @@ -210,7 +209,7 @@ export class TronLinkAdapter extends Adapter { } throw new WalletConnectionError(message, error); } - } else { + } else if (window.tronLink) { const wallet = this._wallet as TronLinkWallet; try { const res = await wallet.request({ method: 'tron_requestAccounts' }); @@ -235,6 +234,13 @@ export class TronLinkAdapter extends Adapter { this.setAddress(address); this.setState(AdapterState.Connected); this._listenTronLinkEvent(); + } else if (window.tronWeb) { + const wallet = this._wallet as TronLinkWallet; + const address = wallet.tronWeb.defaultAddress?.base58 || ''; + this.setAddress(address); + this.setState(AdapterState.Connected); + } else { + throw new WalletConnectionError('Cannot connect wallet.'); } this.connected && this.emit('connect', this.address || ''); } catch (error: any) { @@ -502,13 +508,11 @@ export class TronLinkAdapter extends Adapter { state = window.tronWeb?.defaultAddress ? AdapterState.Connected : AdapterState.Disconnect; } else if (window.tron && window.tron.isTronLink) { this._supportNewTronProtocol = true; - this._supportTronLink = true; this._wallet = window.tron; this._listenTronEvent(); address = (this._wallet.tronWeb && this._wallet.tronWeb?.defaultAddress?.base58) || null; state = address ? AdapterState.Connected : AdapterState.Disconnect; } else if (window.tronLink) { - this._supportTronLink = true; this._wallet = window.tronLink; this._listenTronLinkEvent(); address = this._wallet.tronWeb?.defaultAddress?.base58 || null; From 7dbda212783d506156d99f5150d83cbff680e178 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Sun, 23 Apr 2023 18:14:07 +0800 Subject: [PATCH 09/12] style(react-ui): keep button text line --- packages/react/react-ui/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react/react-ui/style.css b/packages/react/react-ui/style.css index 142172e..db92b67 100644 --- a/packages/react/react-ui/style.css +++ b/packages/react/react-ui/style.css @@ -17,6 +17,7 @@ line-height: 48px; user-select: none; -webkit-tap-highlight-color: transparent; + white-space: pre; } .adapter-react-button:focus { outline: none; From 7a9434aeefdc62ffa28df2722ceef6168fed0839 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Mon, 24 Apr 2023 16:10:50 +0800 Subject: [PATCH 10/12] fix: fix bitkeep mobile app connect error --- demos/dev-demo/src/BitKeepAdapterDemo.tsx | 1 + demos/dev-demo/src/TronLinkAdapterDemo.tsx | 1 + demos/dev-demo/src/main.tsx | 2 +- demos/react-ui/create-react-app/package.json | 1 + demos/react-ui/create-react-app/src/index.tsx | 2 + packages/adapters/bitkeep/src/adapter.ts | 15 +- pnpm-lock.yaml | 1906 ++++++----------- 7 files changed, 701 insertions(+), 1227 deletions(-) diff --git a/demos/dev-demo/src/BitKeepAdapterDemo.tsx b/demos/dev-demo/src/BitKeepAdapterDemo.tsx index e97d07d..a916652 100644 --- a/demos/dev-demo/src/BitKeepAdapterDemo.tsx +++ b/demos/dev-demo/src/BitKeepAdapterDemo.tsx @@ -37,6 +37,7 @@ export function BitKeepAdapterDemo() { adapter.on('readyStateChanged', async () => { console.log('readyState: ', adapter.readyState) setReadyState(adapter.readyState) + setConnectState(adapter.state) }) adapter.on('connect', () => { console.log('connect: ', adapter.address); diff --git a/demos/dev-demo/src/TronLinkAdapterDemo.tsx b/demos/dev-demo/src/TronLinkAdapterDemo.tsx index f053ac1..668baf2 100644 --- a/demos/dev-demo/src/TronLinkAdapterDemo.tsx +++ b/demos/dev-demo/src/TronLinkAdapterDemo.tsx @@ -66,6 +66,7 @@ export function TronLinkAdapterDemo() { adapter.on('disconnect', () => { console.log('disconnect'); + setAccount(adapter.address || '') }); return () => { diff --git a/demos/dev-demo/src/main.tsx b/demos/dev-demo/src/main.tsx index ab0cd5c..be5e831 100644 --- a/demos/dev-demo/src/main.tsx +++ b/demos/dev-demo/src/main.tsx @@ -9,7 +9,7 @@ import theme from './theme'; import VConsole from 'vconsole'; import './index.css'; import { AppWraper } from './AppWraper.js'; -// const vConsole = new VConsole(); +const vConsole = new VConsole(); // console.log('load', window.tronWeb?.defaultAddress, window.okxwallet?.tronLink.tronWeb.defaultAddress); ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/demos/react-ui/create-react-app/package.json b/demos/react-ui/create-react-app/package.json index b85c7c3..75f0233 100644 --- a/demos/react-ui/create-react-app/package.json +++ b/demos/react-ui/create-react-app/package.json @@ -33,6 +33,7 @@ "stream-http": "^3.2.0", "tronweb": "^4.4.0", "typescript": "^4.8.4", + "vconsole": "^3.15.0", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/demos/react-ui/create-react-app/src/index.tsx b/demos/react-ui/create-react-app/src/index.tsx index 0ed992d..a8052dc 100644 --- a/demos/react-ui/create-react-app/src/index.tsx +++ b/demos/react-ui/create-react-app/src/index.tsx @@ -7,7 +7,9 @@ import reportWebVitals from './reportWebVitals'; import { Toaster } from 'react-hot-toast'; import { ThemeProvider } from '@mui/material/styles'; import theme from './theme'; +import vConsole from 'vconsole' const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); +new vConsole(); root.render( diff --git a/packages/adapters/bitkeep/src/adapter.ts b/packages/adapters/bitkeep/src/adapter.ts index 8516e23..069f443 100644 --- a/packages/adapters/bitkeep/src/adapter.ts +++ b/packages/adapters/bitkeep/src/adapter.ts @@ -9,6 +9,7 @@ import { WalletSignTransactionError, WalletConnectionError, WalletGetNetworkError, + isInMobileBrowser, } from '@tronweb3/tronwallet-abstract-adapter'; import { getNetworkInfoByTronWeb } from '@tronweb3/tronwallet-adapter-tronlink'; import type { TronLinkWallet } from '@tronweb3/tronwallet-adapter-tronlink'; @@ -122,12 +123,14 @@ export class BitKeepAdapter extends Adapter { throw new WalletNotFoundError(); } const wallet = this._wallet as TronLinkWallet; - if (!wallet) return; - this._connecting = true; - try { - await wallet.request({ method: 'tron_requestAccounts' }); - } catch (e: any) { - throw new WalletConnectionError(e.message); + if (!isInMobileBrowser()) { + if (!wallet) return; + this._connecting = true; + try { + await wallet.request({ method: 'tron_requestAccounts' }); + } catch (e: any) { + throw new WalletConnectionError(e.message); + } } const address = wallet.tronWeb.defaultAddress?.base58 || ''; this.setAddress(address); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 657b279..b4ca65d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -144,6 +144,7 @@ importers: stream-http: ^3.2.0 tronweb: ^4.4.0 typescript: ^4.8.4 + vconsole: ^3.15.0 web-vitals: ^2.1.4 webpack: ^5.78.0 dependencies: @@ -177,9 +178,10 @@ importers: stream-http: 3.2.0 tronweb: 4.4.0 typescript: 4.9.5 + vconsole: 3.15.0 web-vitals: 2.1.4 devDependencies: - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 demos/react-ui/next-app: specifiers: @@ -2884,7 +2886,7 @@ packages: dependencies: '@jest/types': 28.1.3 '@types/node': 16.18.12 - chalk: registry.npmjs.org/chalk/4.1.2 + chalk: 4.1.2 jest-message-util: 28.1.3 jest-util: 28.1.3 slash: 3.0.0 @@ -2993,10 +2995,10 @@ packages: resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/27.5.1 - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - jest-mock: registry.npmjs.org/jest-mock/27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 18.13.0 + jest-mock: 27.5.1 dev: false /@jest/environment/29.4.2: @@ -3090,7 +3092,7 @@ packages: collect-v8-coverage: 1.0.1 exit: 0.1.2 glob: 7.2.3 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 istanbul-lib-coverage: 3.2.0 istanbul-lib-instrument: 5.2.1 istanbul-lib-report: 3.0.0 @@ -3165,7 +3167,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: callsites: 3.1.0 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 source-map: 0.6.1 dev: false @@ -3213,7 +3215,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/test-result': 27.5.1 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 jest-haste-map: 27.5.1 jest-runtime: 27.5.1 transitivePeerDependencies: @@ -3327,7 +3329,7 @@ packages: '@jridgewell/trace-mapping': 0.3.17 /@jridgewell/resolve-uri/3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: https://registry.yarnpkg.com/} engines: {node: '>=6.0.0'} /@jridgewell/set-array/1.1.2: @@ -3335,17 +3337,16 @@ packages: engines: {node: '>=6.0.0'} /@jridgewell/source-map/0.3.2: - resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==, registry: https://registry.yarnpkg.com/} dependencies: '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.17 - dev: false /@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: https://registry.yarnpkg.com/} /@jridgewell/trace-mapping/0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, registry: https://registry.yarnpkg.com/} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 @@ -3792,7 +3793,7 @@ packages: /@nicolo-ribaudo/eslint-scope-5-internals/5.1.1-v1: resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} dependencies: - eslint-scope: registry.npmjs.org/eslint-scope/5.1.1 + eslint-scope: 5.1.1 dev: false /@nodelib/fs.scandir/2.1.5: @@ -3861,7 +3862,7 @@ packages: react-refresh: 0.11.0 schema-utils: 3.1.1 source-map: 0.7.4 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 webpack-dev-server: 4.11.1_webpack@5.78.0 dev: false @@ -3931,7 +3932,7 @@ packages: peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@types/estree': registry.npmjs.org/@types/estree/0.0.39 + '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 rollup: 2.79.1 @@ -4287,6 +4288,11 @@ packages: dependencies: '@babel/runtime': 7.20.13 + /@tootallnate/once/1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, registry: https://registry.yarnpkg.com/} + engines: {node: '>= 6'} + dev: false + /@tootallnate/once/2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -4380,20 +4386,27 @@ packages: '@types/node': 16.18.12 dev: false + /@types/eslint-scope/3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==, registry: https://registry.yarnpkg.com/} + dependencies: + '@types/eslint': 8.21.0 + '@types/estree': 1.0.0 + /@types/eslint/8.21.0: - resolution: {integrity: sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==} + resolution: {integrity: sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==, registry: https://registry.yarnpkg.com/} dependencies: - '@types/estree': 0.0.51 + '@types/estree': 1.0.0 '@types/json-schema': 7.0.11 + + /@types/estree/0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, registry: https://registry.yarnpkg.com/} dev: false /@types/estree/0.0.51: - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - dev: false + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==, registry: https://registry.yarnpkg.com/} /@types/estree/1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - dev: true + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==, registry: https://registry.yarnpkg.com/} /@types/express-serve-static-core/4.17.33: resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==} @@ -4415,7 +4428,7 @@ packages: /@types/graceful-fs/4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': registry.npmjs.org/@types/node/18.13.0 + '@types/node': 18.13.0 /@types/html-minifier-terser/6.1.0: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} @@ -4461,7 +4474,7 @@ packages: dev: true /@types/json-schema/7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.yarnpkg.com/} /@types/json5/0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -4488,8 +4501,7 @@ packages: dev: false /@types/node/18.13.0: - resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} - dev: true + resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==, registry: https://registry.yarnpkg.com/} /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -4792,7 +4804,7 @@ packages: '@typescript-eslint/types': 5.51.0 '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.5 eslint: 8.33.0 - eslint-scope: registry.npmjs.org/eslint-scope/5.1.1 + eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.33.0 semver: 7.3.8 transitivePeerDependencies: @@ -5145,6 +5157,103 @@ packages: tslib: 1.14.1 dev: false + /@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==, registry: https://registry.yarnpkg.com/} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + + /@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==, registry: https://registry.yarnpkg.com/} + + /@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==, registry: https://registry.yarnpkg.com/} + + /@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==, registry: https://registry.yarnpkg.com/} + + /@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==, registry: https://registry.yarnpkg.com/} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@xtuc/long': 4.2.2 + + /@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==, registry: https://registry.yarnpkg.com/} + + /@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==, registry: https://registry.yarnpkg.com/} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + + /@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==, registry: https://registry.yarnpkg.com/} + dependencies: + '@xtuc/ieee754': 1.2.0 + + /@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==, registry: https://registry.yarnpkg.com/} + dependencies: + '@xtuc/long': 4.2.2 + + /@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==, registry: https://registry.yarnpkg.com/} + + /@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==, registry: https://registry.yarnpkg.com/} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/helper-wasm-section': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-opt': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/wast-printer': 1.11.1 + + /@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==, registry: https://registry.yarnpkg.com/} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 + + /@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==, registry: https://registry.yarnpkg.com/} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + + /@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==, registry: https://registry.yarnpkg.com/} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 + + /@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==, registry: https://registry.yarnpkg.com/} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 + + /@xtuc/ieee754/1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, registry: https://registry.yarnpkg.com/} + + /@xtuc/long/4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, registry: https://registry.yarnpkg.com/} + /JSONStream/1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -5160,10 +5269,17 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} dependencies: - mime-types: registry.npmjs.org/mime-types/2.1.35 + mime-types: 2.1.35 negotiator: 0.6.3 dev: false + /acorn-globals/6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==, registry: https://registry.yarnpkg.com/} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + dev: false + /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: @@ -5171,6 +5287,13 @@ packages: acorn-walk: 8.2.0 dev: true + /acorn-import-assertions/1.8.0_acorn@8.8.2: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==, registry: https://registry.yarnpkg.com/} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.8.2 + /acorn-jsx/5.3.2_acorn@8.8.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -5181,7 +5304,7 @@ packages: /acorn-node/1.8.2: resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} dependencies: - acorn: registry.npmjs.org/acorn/7.4.1 + acorn: 7.4.1 acorn-walk: 7.2.0 xtend: 4.0.2 dev: false @@ -5195,8 +5318,14 @@ packages: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} + /acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + /acorn/8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: https://registry.yarnpkg.com/} engines: {node: '>=0.4.0'} hasBin: true @@ -5217,13 +5346,12 @@ packages: resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 6.0.0'} dependencies: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /aggregate-error/3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} @@ -5243,12 +5371,11 @@ packages: dev: false /ajv-keywords/3.5.2_ajv@6.12.6: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: https://registry.yarnpkg.com/} peerDependencies: ajv: ^6.9.1 dependencies: ajv: 6.12.6 - dev: false /ajv-keywords/5.1.0_ajv@8.12.0: resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} @@ -5260,7 +5387,7 @@ packages: dev: false /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.yarnpkg.com/} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -5336,7 +5463,7 @@ packages: engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 - picomatch: registry.npmjs.org/picomatch/2.3.1 + picomatch: 2.3.1 /arg/4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -5476,8 +5603,7 @@ packages: dev: false /asynckit/0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.yarnpkg.com/} /at-least-node/1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} @@ -5496,7 +5622,7 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 caniuse-lite: 1.0.30001451 fraction.js: 4.2.0 normalize-range: 0.1.2 @@ -5576,7 +5702,7 @@ packages: loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /babel-plugin-istanbul/6.1.1: @@ -5909,7 +6035,7 @@ packages: dev: false /browserslist/4.21.5: - resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, registry: https://registry.yarnpkg.com/} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: @@ -5946,7 +6072,7 @@ packages: dev: false /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: https://registry.yarnpkg.com/} /buffer-xor/1.0.3: resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} @@ -6027,14 +6153,14 @@ packages: /caniuse-api/3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 caniuse-lite: 1.0.30001451 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: false /caniuse-lite/1.0.30001451: - resolution: {integrity: sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==} + resolution: {integrity: sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==, registry: https://registry.yarnpkg.com/} /case-sensitive-paths-webpack-plugin/2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} @@ -6109,9 +6235,13 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: registry.npmjs.org/fsevents/2.3.2 + fsevents: 2.3.2 dev: false + /chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=6.0'} + /ci-info/3.7.1: resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==} engines: {node: '>=8'} @@ -6217,7 +6347,7 @@ packages: engines: {node: '>= 4.0'} dependencies: '@types/q': 1.5.5 - chalk: registry.npmjs.org/chalk/2.4.2 + chalk: 2.4.2 q: 1.5.1 dev: false @@ -6249,14 +6379,13 @@ packages: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - dev: true /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.yarnpkg.com/} /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} @@ -6296,7 +6425,7 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} dependencies: - mime-db: registry.npmjs.org/mime-db/1.52.0 + mime-db: 1.52.0 dev: false /compression/1.7.4: @@ -6398,7 +6527,7 @@ packages: /core-js-compat/3.27.2: resolution: {integrity: sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==} dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 dev: false /core-js-pure/3.27.2: @@ -6574,7 +6703,7 @@ packages: postcss-modules-values: 4.0.0_postcss@8.4.21 postcss-value-parser: 4.2.0 semver: 7.3.8 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /css-minimizer-webpack-plugin/3.4.1_webpack@5.78.0: @@ -6602,7 +6731,7 @@ packages: schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /css-prefers-color-scheme/6.0.3_postcss@8.4.21: @@ -6744,19 +6873,21 @@ packages: dev: false /cssom/0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==, registry: https://registry.yarnpkg.com/} + + /cssom/0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==, registry: https://registry.yarnpkg.com/} + dev: false /cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} dev: true /cssstyle/2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==, registry: https://registry.yarnpkg.com/} engines: {node: '>=8'} dependencies: cssom: 0.3.8 - dev: true /csstype/3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} @@ -6792,6 +6923,15 @@ packages: engines: {node: '>=8'} dev: true + /data-urls/2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + dev: false + /data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -6865,8 +7005,7 @@ packages: dev: false /decimal.js/10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, registry: https://registry.yarnpkg.com/} /decode-uri-component/0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -6941,9 +7080,8 @@ packages: dev: false /delayed-stream/1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.yarnpkg.com/} engines: {node: '>=0.4.0'} - dev: true /depd/1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} @@ -7115,6 +7253,13 @@ packages: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: false + /domexception/2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=8'} + dependencies: + webidl-conversions: 5.0.0 + dev: false + /domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -7197,7 +7342,7 @@ packages: dev: false /electron-to-chromium/1.4.294: - resolution: {integrity: sha512-PuHZB3jEN7D8WPPjLmBQAsqQz8tWHlkkB4n0E2OYw8RwVdmBYV0Wn+rUFH8JqYyIRb4HQhhedgxlZL163wqLrQ==} + resolution: {integrity: sha512-PuHZB3jEN7D8WPPjLmBQAsqQz8tWHlkkB4n0E2OYw8RwVdmBYV0Wn+rUFH8JqYyIRb4HQhhedgxlZL163wqLrQ==, registry: https://registry.yarnpkg.com/} /elliptic/6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} @@ -7256,12 +7401,11 @@ packages: dev: false /enhanced-resolve/5.12.0: - resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==, registry: https://registry.yarnpkg.com/} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.10 tapable: 2.2.1 - dev: false /enquirer/2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} @@ -7345,6 +7489,9 @@ packages: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 + /es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==, registry: https://registry.yarnpkg.com/} + /es-set-tostringtag/2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -7397,7 +7544,7 @@ packages: dev: true /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.yarnpkg.com/} engines: {node: '>=6'} /escape-html/1.0.3: @@ -7417,7 +7564,7 @@ packages: engines: {node: '>=10'} /escodegen/2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==, registry: https://registry.yarnpkg.com/} engines: {node: '>=6.0'} hasBin: true dependencies: @@ -7426,8 +7573,7 @@ packages: esutils: 2.0.3 optionator: 0.8.3 optionalDependencies: - source-map: registry.npmjs.org/source-map/0.6.1 - dev: true + source-map: 0.6.1 /eslint-config-next/13.0.5_zmyfsul77535b2d7nzuoiqkehy: resolution: {integrity: sha512-lge94W7ME6kNCO96eCykq5GbKbllzmcDNDhh1/llMCRgNPl0+GIQ8dOoM0I7uRQVW56VmTXFybJFXgow11a5pg==} @@ -7783,6 +7929,13 @@ packages: - typescript dev: false + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + /eslint-scope/7.1.1: resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7820,7 +7973,7 @@ packages: micromatch: 4.0.5 normalize-path: 3.0.0 schema-utils: 4.0.0 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /eslint/8.33.0: @@ -7890,13 +8043,17 @@ packages: estraverse: 5.3.0 /esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.yarnpkg.com/} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=4.0'} + /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.yarnpkg.com/} engines: {node: '>=4.0'} /estree-walker/1.0.1: @@ -7961,9 +8118,8 @@ packages: dev: false /events/3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: https://registry.yarnpkg.com/} engines: {node: '>=0.8.x'} - dev: false /evp_bytestokey/1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} @@ -8137,13 +8293,13 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.1.1 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /filelist/1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: - minimatch: registry.npmjs.org/minimatch/5.1.6 + minimatch: 5.1.6 dev: false /filename-reserved-regex/2.0.0: @@ -8285,11 +8441,20 @@ packages: glob: 7.2.3 memfs: 3.4.13 minimatch: 3.1.2 - schema-utils: registry.npmjs.org/schema-utils/2.7.0 + schema-utils: 2.7.0 semver: 7.3.8 - tapable: registry.npmjs.org/tapable/1.1.3 + tapable: 1.1.3 typescript: 4.9.5 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 + dev: false + + /form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==, registry: https://registry.yarnpkg.com/} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 dev: false /form-data/4.0.0: @@ -8356,7 +8521,7 @@ packages: engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 dev: false @@ -8368,6 +8533,13 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} @@ -8463,6 +8635,9 @@ packages: dependencies: is-glob: 4.0.3 + /glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, registry: https://registry.yarnpkg.com/} + /glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: @@ -8587,7 +8762,7 @@ packages: get-intrinsic: 1.2.0 /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.yarnpkg.com/} /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -8706,6 +8881,13 @@ packages: wbuf: 1.7.3 dev: false + /html-encoding-sniffer/2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10'} + dependencies: + whatwg-encoding: 1.0.5 + dev: false + /html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -8745,7 +8927,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /htmlparser2/6.1.0: @@ -8786,6 +8968,17 @@ packages: resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} dev: false + /http-proxy-agent/4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, registry: https://registry.yarnpkg.com/} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + /http-proxy-agent/5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -8832,14 +9025,13 @@ packages: dev: false /https-proxy-agent/5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true /human-id/1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -9112,8 +9304,7 @@ packages: dev: false /is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, registry: https://registry.yarnpkg.com/} /is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -9277,7 +9468,7 @@ packages: hasBin: true dependencies: async: 3.2.4 - chalk: registry.npmjs.org/chalk/4.1.2 + chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 dev: false @@ -9303,22 +9494,22 @@ packages: resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': registry.npmjs.org/@jest/environment/27.5.1 + '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - chalk: registry.npmjs.org/chalk/4.1.2 + '@jest/types': 27.5.1 + '@types/node': 18.13.0 + chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 expect: 27.5.1 is-generator-fn: 2.1.0 jest-each: 27.5.1 jest-matcher-utils: 27.5.1 - jest-message-util: registry.npmjs.org/jest-message-util/27.5.1 + jest-message-util: 27.5.1 jest-runtime: 27.5.1 jest-snapshot: 27.5.1 - jest-util: registry.npmjs.org/jest-util/27.5.1 - pretty-format: registry.npmjs.org/pretty-format/27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 slash: 3.0.0 stack-utils: 2.0.6 throat: 6.0.2 @@ -9456,9 +9647,9 @@ packages: ci-info: 3.7.1 deepmerge: 4.3.0 glob: 7.2.3 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 jest-circus: 27.5.1 - jest-environment-jsdom: registry.npmjs.org/jest-environment-jsdom/27.5.1 + jest-environment-jsdom: 27.5.1 jest-environment-node: 27.5.1 jest-get-type: 27.5.1 jest-jasmine2: 27.5.1 @@ -9593,11 +9784,11 @@ packages: resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - chalk: registry.npmjs.org/chalk/4.1.2 + '@jest/types': 27.5.1 + chalk: 4.1.2 jest-get-type: 27.5.1 - jest-util: registry.npmjs.org/jest-util/27.5.1 - pretty-format: registry.npmjs.org/pretty-format/27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 dev: false /jest-each/29.4.2: @@ -9611,6 +9802,24 @@ packages: pretty-format: registry.npmjs.org/pretty-format/29.4.2 dev: true + /jest-environment-jsdom/27.5.1: + resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==, registry: https://registry.yarnpkg.com/} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/environment': 27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 18.13.0 + jest-mock: 27.5.1 + jest-util: 27.5.1 + jsdom: 16.7.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: false + /jest-environment-jsdom/29.4.2: resolution: {integrity: sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9638,12 +9847,12 @@ packages: resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': registry.npmjs.org/@jest/environment/27.5.1 - '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/27.5.1 - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - jest-mock: registry.npmjs.org/jest-mock/27.5.1 - jest-util: registry.npmjs.org/jest-util/27.5.1 + '@jest/environment': 27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 18.13.0 + jest-mock: 27.5.1 + jest-util: 27.5.1 dev: false /jest-environment-node/29.4.2: @@ -9684,7 +9893,7 @@ packages: micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: registry.npmjs.org/fsevents/2.3.2 + fsevents: 2.3.2 dev: false /jest-haste-map/29.4.2: @@ -9710,22 +9919,22 @@ packages: resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/environment': registry.npmjs.org/@jest/environment/27.5.1 + '@jest/environment': 27.5.1 '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - chalk: registry.npmjs.org/chalk/4.1.2 + '@jest/types': 27.5.1 + '@types/node': 18.13.0 + chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 is-generator-fn: 2.1.0 jest-each: 27.5.1 jest-matcher-utils: 27.5.1 - jest-message-util: registry.npmjs.org/jest-message-util/27.5.1 + jest-message-util: 27.5.1 jest-runtime: 27.5.1 jest-snapshot: 27.5.1 - jest-util: registry.npmjs.org/jest-util/27.5.1 - pretty-format: registry.npmjs.org/pretty-format/27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 throat: 6.0.2 transitivePeerDependencies: - supports-color @@ -9736,7 +9945,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: jest-get-type: 27.5.1 - pretty-format: registry.npmjs.org/pretty-format/27.5.1 + pretty-format: 27.5.1 dev: false /jest-leak-detector/29.4.2: @@ -9779,7 +9988,7 @@ packages: '@jest/types': 27.5.1 '@types/stack-utils': 2.0.1 chalk: 4.1.2 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 micromatch: 4.0.5 pretty-format: 27.5.1 slash: 3.0.0 @@ -9790,15 +9999,15 @@ packages: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@babel/code-frame': registry.npmjs.org/@babel/code-frame/7.18.6 - '@jest/types': registry.npmjs.org/@jest/types/28.1.3 - '@types/stack-utils': registry.npmjs.org/@types/stack-utils/2.0.1 - chalk: registry.npmjs.org/chalk/4.1.2 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 - micromatch: registry.npmjs.org/micromatch/4.0.5 - pretty-format: registry.npmjs.org/pretty-format/28.1.3 - slash: registry.npmjs.org/slash/3.0.0 - stack-utils: registry.npmjs.org/stack-utils/2.0.6 + '@babel/code-frame': 7.18.6 + '@jest/types': 28.1.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 dev: false /jest-message-util/29.4.2: @@ -9936,9 +10145,9 @@ packages: '@types/node': 16.18.12 chalk: 4.1.2 emittery: 0.8.1 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 jest-docblock: 27.5.1 - jest-environment-jsdom: registry.npmjs.org/jest-environment-jsdom/27.5.1 + jest-environment-jsdom: 27.5.1 jest-environment-node: 27.5.1 jest-haste-map: 27.5.1 jest-leak-detector: 27.5.1 @@ -10001,7 +10210,7 @@ packages: collect-v8-coverage: 1.0.1 execa: 5.1.1 glob: 7.2.3 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 jest-haste-map: 27.5.1 jest-message-util: 27.5.1 jest-mock: 27.5.1 @@ -10050,8 +10259,8 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': registry.npmjs.org/@types/node/18.13.0 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + '@types/node': 18.13.0 + graceful-fs: 4.2.10 dev: false /jest-snapshot/27.5.1: @@ -10070,7 +10279,7 @@ packages: babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 chalk: 4.1.2 expect: 27.5.1 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 jest-diff: 27.5.1 jest-get-type: 27.5.1 jest-haste-map: 27.5.1 @@ -10136,7 +10345,7 @@ packages: '@types/node': 16.18.12 chalk: 4.1.2 ci-info: 3.7.1 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 picomatch: 2.3.1 dev: false @@ -10243,13 +10452,12 @@ packages: dev: false /jest-worker/27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.18.12 + '@types/node': 18.13.0 merge-stream: 2.0.0 supports-color: 8.1.1 - dev: false /jest-worker/28.1.3: resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} @@ -10353,9 +10561,9 @@ packages: dependencies: argparse: 2.0.1 - /jsdom/20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} + /jsdom/16.7.0: + resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -10364,35 +10572,77 @@ packages: dependencies: abab: 2.0.6 acorn: 8.8.2 - acorn-globals: 7.0.1 - cssom: 0.5.0 + acorn-globals: 6.0.0 + cssom: 0.4.4 cssstyle: 2.3.0 - data-urls: 3.0.2 + data-urls: 2.0.0 decimal.js: 10.4.3 - domexception: 4.0.0 + domexception: 2.0.1 escodegen: 2.0.0 - form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 + form-data: 3.0.1 + html-encoding-sniffer: 2.0.1 + http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.2 - parse5: 7.1.2 - saxes: 6.0.0 + parse5: 6.0.1 + saxes: 5.0.1 symbol-tree: 3.2.4 tough-cookie: 4.1.2 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.12.0 - xml-name-validator: 4.0.0 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 2.0.0 + webidl-conversions: 6.1.0 + whatwg-encoding: 1.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + ws: 7.5.9 + xml-name-validator: 3.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - dev: true + dev: false + + /jsdom/20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.2 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.2 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.12.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true /jsesc/0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} @@ -10404,8 +10654,11 @@ packages: engines: {node: '>=4'} hasBin: true + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.yarnpkg.com/} + /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.yarnpkg.com/} /json-schema-traverse/1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -10444,7 +10697,7 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 + graceful-fs: 4.2.10 /jsonparse/1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} @@ -10500,12 +10753,11 @@ packages: engines: {node: '>=6'} /levn/0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 - dev: true /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} @@ -10573,6 +10825,10 @@ packages: strip-bom: 3.0.0 dev: true + /loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=6.11.5'} + /loader-utils/2.0.4: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} @@ -10842,7 +11098,7 @@ packages: dev: false /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: https://registry.yarnpkg.com/} /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -10869,16 +11125,14 @@ packages: dev: false /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 0.6'} - dev: true /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - dev: true /mime/1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} @@ -10906,7 +11160,7 @@ packages: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /minimalistic-assert/1.0.1: @@ -10928,11 +11182,10 @@ packages: dev: false /minimatch/5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, registry: https://registry.yarnpkg.com/} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - dev: true /minimist-options/4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} @@ -11036,8 +11289,7 @@ packages: dev: false /neo-async/2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: false + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.yarnpkg.com/} /next/13.0.5_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-awpc3DkphyKydwCotcBnuKwh6hMqkT5xdiBK4OatJtOZurDPBYLP62jtM2be/4OunpmwIbsS0Eyv+ZGU97ciEg==} @@ -11099,7 +11351,7 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} /node-releases/2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, registry: https://registry.yarnpkg.com/} /normalize-package-data/2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -11160,8 +11412,7 @@ packages: dev: false /nwsapi/2.2.2: - resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} - dev: true + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==, registry: https://registry.yarnpkg.com/} /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -11283,7 +11534,7 @@ packages: dev: false /optionator/0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 @@ -11292,7 +11543,6 @@ packages: prelude-ls: 1.1.2 type-check: 0.3.2 word-wrap: 1.2.3 - dev: true /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} @@ -11409,9 +11659,13 @@ packages: dependencies: '@babel/code-frame': 7.18.6 error-ex: 1.3.2 - json-parse-even-better-errors: registry.npmjs.org/json-parse-even-better-errors/2.3.1 + json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + /parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: https://registry.yarnpkg.com/} + dev: false + /parse5/7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: @@ -11657,7 +11911,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.21 @@ -11670,7 +11924,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false @@ -11896,7 +12150,7 @@ packages: klona: 2.0.6 postcss: 8.4.21 semver: 7.3.8 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /postcss-logical/5.0.4_postcss@8.4.21: @@ -11934,7 +12188,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 caniuse-api: 3.0.0 cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 @@ -11969,7 +12223,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 postcss-value-parser: 4.2.0 @@ -12112,7 +12366,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false @@ -12274,7 +12528,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 caniuse-api: 3.0.0 postcss: 8.4.21 dev: false @@ -12384,9 +12638,8 @@ packages: dev: true /prelude-ls/1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 0.8.0'} - dev: true /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -12425,6 +12678,16 @@ packages: ansi-styles: 5.2.0 react-is: 17.0.2 + /pretty-format/28.1.3: + resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==, registry: https://registry.yarnpkg.com/} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + dependencies: + '@jest/schemas': 28.1.3 + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: false + /pretty-format/29.4.2: resolution: {integrity: sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -12480,8 +12743,7 @@ packages: dev: true /psl/1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, registry: https://registry.yarnpkg.com/} /public-encrypt/4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} @@ -12495,7 +12757,7 @@ packages: dev: false /punycode/2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: https://registry.yarnpkg.com/} engines: {node: '>=6'} /q/1.5.1: @@ -12540,8 +12802,7 @@ packages: dev: false /querystringify/2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, registry: https://registry.yarnpkg.com/} /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -12570,7 +12831,6 @@ packages: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 - dev: false /randomfill/1.0.4: resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} @@ -12651,7 +12911,7 @@ packages: strip-ansi: 6.0.1 text-table: 0.2.0 typescript: 4.9.5 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 transitivePeerDependencies: - eslint - supports-color @@ -12760,12 +13020,12 @@ packages: tailwindcss: 3.2.6 terser-webpack-plugin: 5.3.6_webpack@5.78.0 typescript: 4.9.5 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 webpack-dev-server: 4.11.1_webpack@5.78.0 webpack-manifest-plugin: 4.1.1_webpack@5.78.0 workbox-webpack-plugin: 6.5.4_webpack@5.78.0 optionalDependencies: - fsevents: registry.npmjs.org/fsevents/2.3.2 + fsevents: 2.3.2 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' @@ -12879,7 +13139,7 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: registry.npmjs.org/picomatch/2.3.1 + picomatch: 2.3.1 dev: false /real-require/0.1.0: @@ -12925,7 +13185,7 @@ packages: /regenerator-transform/0.15.1: resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} dependencies: - '@babel/runtime': registry.npmjs.org/@babel/runtime/7.20.13 + '@babel/runtime': 7.20.13 dev: false /regex-parser/2.2.11: @@ -13126,7 +13386,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: registry.npmjs.org/fsevents/2.3.2 + fsevents: 2.3.2 /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -13197,13 +13457,20 @@ packages: dependencies: klona: 2.0.6 neo-async: 2.6.2 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /sax/1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: false + /saxes/5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10'} + dependencies: + xmlchars: 2.2.0 + dev: false + /saxes/6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -13216,6 +13483,15 @@ packages: dependencies: loose-envify: 1.4.0 + /schema-utils/2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==, registry: https://registry.yarnpkg.com/} + engines: {node: '>= 8.9.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + dev: false + /schema-utils/2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} engines: {node: '>= 8.9.0'} @@ -13226,13 +13502,12 @@ packages: dev: false /schema-utils/3.1.1: - resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.11 ajv: 6.12.6 ajv-keywords: 3.5.2_ajv@6.12.6 - dev: false /schema-utils/4.0.0: resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} @@ -13307,10 +13582,9 @@ packages: dev: false /serialize-javascript/6.0.1: - resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, registry: https://registry.yarnpkg.com/} dependencies: randombytes: 2.1.0 - dev: false /serve-index/1.9.1: resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} @@ -13321,7 +13595,7 @@ packages: debug: 2.6.9 escape-html: 1.0.3 http-errors: 1.6.3 - mime-types: registry.npmjs.org/mime-types/2.1.35 + mime-types: 2.1.35 parseurl: 1.3.3 transitivePeerDependencies: - supports-color @@ -13503,7 +13777,7 @@ packages: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.0.2 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /source-map-support/0.5.13: @@ -13514,11 +13788,10 @@ packages: dev: true /source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.yarnpkg.com/} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: false /source-map/0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} @@ -13841,7 +14114,7 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 dev: false /styled-jsx/5.1.0_react@18.2.0: @@ -13867,7 +14140,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 + browserslist: 4.21.5 postcss: 8.4.21 postcss-selector-parser: 6.0.11 dev: false @@ -13889,7 +14162,7 @@ packages: has-flag: 4.0.0 /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: https://registry.yarnpkg.com/} engines: {node: '>=10'} dependencies: has-flag: 4.0.0 @@ -13946,8 +14219,7 @@ packages: dev: false /symbol-tree/3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, registry: https://registry.yarnpkg.com/} /synckit/0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} @@ -13993,11 +14265,15 @@ packages: - ts-node dev: false - /tapable/2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + /tapable/1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==, registry: https://registry.yarnpkg.com/} engines: {node: '>=6'} dev: false + /tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=6'} + /temp-dir/2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -14027,7 +14303,7 @@ packages: dev: false /terser-webpack-plugin/5.3.6_webpack@5.78.0: - resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -14047,19 +14323,17 @@ packages: schema-utils: 3.1.1 serialize-javascript: 6.0.1 terser: 5.16.3 - webpack: registry.npmjs.org/webpack/5.78.0 - dev: false + webpack: 5.78.0 /terser/5.16.3: - resolution: {integrity: sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==} + resolution: {integrity: sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==, registry: https://registry.yarnpkg.com/} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: registry.npmjs.org/acorn/8.8.2 + acorn: 8.8.2 commander: 2.20.3 source-map-support: 0.5.21 - dev: false /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} @@ -14138,14 +14412,13 @@ packages: dev: false /tough-cookie/4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==, registry: https://registry.yarnpkg.com/} engines: {node: '>=6'} dependencies: psl: 1.9.0 punycode: 2.3.0 universalify: 0.2.0 url-parse: 1.5.10 - dev: true /tr46/1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -14153,6 +14426,13 @@ packages: punycode: 2.3.0 dev: false + /tr46/2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=8'} + dependencies: + punycode: 2.3.0 + dev: false + /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -14336,11 +14616,10 @@ packages: dev: true /type-check/0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 - dev: true /type-check/0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -14390,7 +14669,7 @@ packages: engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 - mime-types: registry.npmjs.org/mime-types/2.1.35 + mime-types: 2.1.35 dev: false /typed-array-length/1.0.4: @@ -14481,9 +14760,8 @@ packages: dev: true /universalify/0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, registry: https://registry.yarnpkg.com/} engines: {node: '>= 4.0.0'} - dev: true /universalify/2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} @@ -14504,7 +14782,7 @@ packages: dev: false /update-browserslist-db/1.0.10_browserslist@4.21.5: - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: https://registry.yarnpkg.com/} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -14514,16 +14792,15 @@ packages: picocolors: 1.0.0 /uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.yarnpkg.com/} dependencies: punycode: 2.3.0 /url-parse/1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, registry: https://registry.yarnpkg.com/} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - dev: true /util-deprecate/1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -14672,6 +14949,13 @@ packages: browser-process-hrtime: 1.0.0 dev: false + /w3c-xmlserializer/2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10'} + dependencies: + xml-name-validator: 3.0.0 + dev: false + /w3c-xmlserializer/4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -14684,6 +14968,13 @@ packages: dependencies: makeerror: 1.0.12 + /watchpack/2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + /wbuf/1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} dependencies: @@ -14704,6 +14995,16 @@ packages: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: false + /webidl-conversions/5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=8'} + dev: false + + /webidl-conversions/6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10.4'} + dev: false + /webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -14717,10 +15018,10 @@ packages: dependencies: colorette: 2.0.19 memfs: 3.4.13 - mime-types: registry.npmjs.org/mime-types/2.1.35 + mime-types: 2.1.35 range-parser: 1.2.1 - schema-utils: registry.npmjs.org/schema-utils/4.0.0 - webpack: registry.npmjs.org/webpack/5.78.0 + schema-utils: 4.0.0 + webpack: 5.78.0 dev: false /webpack-dev-server/4.11.1_webpack@5.78.0: @@ -14761,7 +15062,7 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 webpack-dev-middleware: 5.3.3_webpack@5.78.0 ws: 8.12.0 transitivePeerDependencies: @@ -14778,7 +15079,7 @@ packages: webpack: ^4.44.2 || ^5.47.0 dependencies: tapable: 2.2.1 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 webpack-sources: 2.3.1 dev: false @@ -14797,6 +15098,49 @@ packages: source-map: 0.6.1 dev: false + /webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10.13.0'} + + /webpack/5.78.0: + resolution: {integrity: sha512-gT5DP72KInmE/3azEaQrISjTvLYlSM0j1Ezhht/KLVkrqtv10JoP/RXhwmX/frrutOPuSq3o5Vq0ehR/4Vmd1g==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.2 + acorn-import-assertions: 1.8.0_acorn@8.8.2 + browserslist: 4.21.5 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.12.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.6_webpack@5.78.0 + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + /websocket-driver/0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} engines: {node: '>=0.8.0'} @@ -14811,6 +15155,12 @@ packages: engines: {node: '>=0.8.0'} dev: false + /whatwg-encoding/1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==, registry: https://registry.yarnpkg.com/} + dependencies: + iconv-lite: 0.4.24 + dev: false + /whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -14822,6 +15172,10 @@ packages: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} dev: false + /whatwg-mimetype/2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==, registry: https://registry.yarnpkg.com/} + dev: false + /whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} @@ -14843,6 +15197,15 @@ packages: webidl-conversions: 4.0.2 dev: false + /whatwg-url/8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==, registry: https://registry.yarnpkg.com/} + engines: {node: '>=10'} + dependencies: + lodash: 4.17.21 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + dev: false + /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -15047,7 +15410,7 @@ packages: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 - webpack: registry.npmjs.org/webpack/5.78.0 + webpack: 5.78.0 webpack-sources: 1.4.3 workbox-build: 6.5.4 transitivePeerDependencies: @@ -15125,7 +15488,7 @@ packages: optional: true /ws/7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, registry: https://registry.yarnpkg.com/} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -15149,14 +15512,17 @@ packages: utf-8-validate: optional: true + /xml-name-validator/3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==, registry: https://registry.yarnpkg.com/} + dev: false + /xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} dev: true /xmlchars/2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, registry: https://registry.yarnpkg.com/} /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} @@ -15302,12 +15668,14 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': registry.npmjs.org/@babel/highlight/7.18.6 + dev: true registry.npmjs.org/@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} name: '@babel/helper-validator-identifier' version: 7.19.1 engines: {node: '>=6.9.0'} + dev: true registry.npmjs.org/@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz} @@ -15318,6 +15686,7 @@ packages: '@babel/helper-validator-identifier': registry.npmjs.org/@babel/helper-validator-identifier/7.19.1 chalk: registry.npmjs.org/chalk/2.4.2 js-tokens: registry.npmjs.org/js-tokens/4.0.0 + dev: true registry.npmjs.org/@babel/runtime/7.20.13: resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz} @@ -15724,18 +16093,6 @@ packages: '@ethersproject/strings': registry.npmjs.org/@ethersproject/strings/5.7.0 dev: false - registry.npmjs.org/@jest/environment/27.5.1: - resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz} - name: '@jest/environment' - version: 27.5.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/27.5.1 - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - jest-mock: registry.npmjs.org/jest-mock/27.5.1 - dev: false - registry.npmjs.org/@jest/environment/29.4.2: resolution: {integrity: sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/environment/-/environment-29.4.2.tgz} name: '@jest/environment' @@ -15748,20 +16105,6 @@ packages: jest-mock: registry.npmjs.org/jest-mock/29.4.2 dev: true - registry.npmjs.org/@jest/fake-timers/27.5.1: - resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz} - name: '@jest/fake-timers' - version: 27.5.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@sinonjs/fake-timers': registry.npmjs.org/@sinonjs/fake-timers/8.1.0 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - jest-message-util: registry.npmjs.org/jest-message-util/27.5.1 - jest-mock: registry.npmjs.org/jest-mock/27.5.1 - jest-util: registry.npmjs.org/jest-util/27.5.1 - dev: false - registry.npmjs.org/@jest/fake-timers/29.4.2: resolution: {integrity: sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.4.2.tgz} name: '@jest/fake-timers' @@ -15776,15 +16119,6 @@ packages: jest-util: registry.npmjs.org/jest-util/29.4.2 dev: true - registry.npmjs.org/@jest/schemas/28.1.3: - resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz} - name: '@jest/schemas' - version: 28.1.3 - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - dependencies: - '@sinclair/typebox': 0.24.51 - dev: false - registry.npmjs.org/@jest/schemas/29.4.2: resolution: {integrity: sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.2.tgz} name: '@jest/schemas' @@ -15794,33 +16128,6 @@ packages: '@sinclair/typebox': registry.npmjs.org/@sinclair/typebox/0.25.21 dev: true - registry.npmjs.org/@jest/types/27.5.1: - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz} - name: '@jest/types' - version: 27.5.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4 - '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports/3.0.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - '@types/yargs': registry.npmjs.org/@types/yargs/16.0.5 - chalk: registry.npmjs.org/chalk/4.1.2 - dev: false - - registry.npmjs.org/@jest/types/28.1.3: - resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz} - name: '@jest/types' - version: 28.1.3 - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - dependencies: - '@jest/schemas': registry.npmjs.org/@jest/schemas/28.1.3 - '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4 - '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports/3.0.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - '@types/yargs': registry.npmjs.org/@types/yargs/17.0.22 - chalk: registry.npmjs.org/chalk/4.1.2 - dev: false - registry.npmjs.org/@jest/types/29.4.2: resolution: {integrity: sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/types/-/types-29.4.2.tgz} name: '@jest/types' @@ -15835,49 +16142,6 @@ packages: chalk: registry.npmjs.org/chalk/4.1.2 dev: true - registry.npmjs.org/@jridgewell/gen-mapping/0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz} - name: '@jridgewell/gen-mapping' - version: 0.3.2 - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': registry.npmjs.org/@jridgewell/set-array/1.1.2 - '@jridgewell/sourcemap-codec': registry.npmjs.org/@jridgewell/sourcemap-codec/1.4.14 - '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping/0.3.17 - - registry.npmjs.org/@jridgewell/resolve-uri/3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} - name: '@jridgewell/resolve-uri' - version: 3.1.0 - engines: {node: '>=6.0.0'} - - registry.npmjs.org/@jridgewell/set-array/1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz} - name: '@jridgewell/set-array' - version: 1.1.2 - engines: {node: '>=6.0.0'} - - registry.npmjs.org/@jridgewell/source-map/0.3.2: - resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz} - name: '@jridgewell/source-map' - version: 0.3.2 - dependencies: - '@jridgewell/gen-mapping': registry.npmjs.org/@jridgewell/gen-mapping/0.3.2 - '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping/0.3.17 - - registry.npmjs.org/@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} - name: '@jridgewell/sourcemap-codec' - version: 1.4.14 - - registry.npmjs.org/@jridgewell/trace-mapping/0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz} - name: '@jridgewell/trace-mapping' - version: 0.3.17 - dependencies: - '@jridgewell/resolve-uri': registry.npmjs.org/@jridgewell/resolve-uri/3.1.0 - '@jridgewell/sourcemap-codec': registry.npmjs.org/@jridgewell/sourcemap-codec/1.4.14 - registry.npmjs.org/@next/swc-android-arm-eabi/13.0.5: resolution: {integrity: sha512-YO691dxHlviy6H0eghgwqn+5kU9J3iQnKERHTDSppqjjGDBl6ab4wz9XfI5AhljjkaTg3TknHoIEWFDoZ4Ve8g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.0.5.tgz} name: '@next/swc-android-arm-eabi' @@ -16027,14 +16291,6 @@ packages: version: 0.25.21 dev: true - registry.npmjs.org/@sinonjs/commons/1.8.6: - resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz} - name: '@sinonjs/commons' - version: 1.8.6 - dependencies: - type-detect: registry.npmjs.org/type-detect/4.0.8 - dev: false - registry.npmjs.org/@sinonjs/commons/2.0.0: resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz} name: '@sinonjs/commons' @@ -16051,14 +16307,6 @@ packages: '@sinonjs/commons': registry.npmjs.org/@sinonjs/commons/2.0.0 dev: true - registry.npmjs.org/@sinonjs/fake-timers/8.1.0: - resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz} - name: '@sinonjs/fake-timers' - version: 8.1.0 - dependencies: - '@sinonjs/commons': registry.npmjs.org/@sinonjs/commons/1.8.6 - dev: false - registry.npmjs.org/@testing-library/dom/8.20.0: resolution: {integrity: sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.0.tgz} name: '@testing-library/dom' @@ -16075,13 +16323,6 @@ packages: pretty-format: registry.npmjs.org/pretty-format/27.5.1 dev: true - registry.npmjs.org/@tootallnate/once/1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz} - name: '@tootallnate/once' - version: 1.1.2 - engines: {node: '>= 6'} - dev: false - registry.npmjs.org/@tootallnate/once/2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz} name: '@tootallnate/once' @@ -16101,42 +16342,11 @@ packages: version: 5.0.1 dev: true - registry.npmjs.org/@types/eslint-scope/3.7.4: - resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz} - name: '@types/eslint-scope' - version: 3.7.4 - dependencies: - '@types/eslint': registry.npmjs.org/@types/eslint/8.21.0 - '@types/estree': registry.npmjs.org/@types/estree/1.0.0 - - registry.npmjs.org/@types/eslint/8.21.0: - resolution: {integrity: sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz} - name: '@types/eslint' - version: 8.21.0 - dependencies: - '@types/estree': registry.npmjs.org/@types/estree/1.0.0 - '@types/json-schema': registry.npmjs.org/@types/json-schema/7.0.11 - - registry.npmjs.org/@types/estree/0.0.39: - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz} - name: '@types/estree' - version: 0.0.39 - dev: false - - registry.npmjs.org/@types/estree/0.0.51: - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz} - name: '@types/estree' - version: 0.0.51 - - registry.npmjs.org/@types/estree/1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz} - name: '@types/estree' - version: 1.0.0 - registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz} name: '@types/istanbul-lib-coverage' version: 2.0.4 + dev: true registry.npmjs.org/@types/istanbul-lib-report/3.0.0: resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz} @@ -16144,6 +16354,7 @@ packages: version: 3.0.0 dependencies: '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage/2.0.4 + dev: true registry.npmjs.org/@types/istanbul-reports/3.0.1: resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz} @@ -16151,6 +16362,7 @@ packages: version: 3.0.1 dependencies: '@types/istanbul-lib-report': registry.npmjs.org/@types/istanbul-lib-report/3.0.0 + dev: true registry.npmjs.org/@types/jsdom/20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz} @@ -16162,20 +16374,17 @@ packages: parse5: registry.npmjs.org/parse5/7.1.2 dev: true - registry.npmjs.org/@types/json-schema/7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz} - name: '@types/json-schema' - version: 7.0.11 - registry.npmjs.org/@types/node/18.13.0: resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz} name: '@types/node' version: 18.13.0 + dev: true registry.npmjs.org/@types/stack-utils/2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz} name: '@types/stack-utils' version: 2.0.1 + dev: true registry.npmjs.org/@types/tough-cookie/4.0.2: resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz} @@ -16187,14 +16396,7 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz} name: '@types/yargs-parser' version: 21.0.0 - - registry.npmjs.org/@types/yargs/16.0.5: - resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz} - name: '@types/yargs' - version: 16.0.5 - dependencies: - '@types/yargs-parser': registry.npmjs.org/@types/yargs-parser/21.0.0 - dev: false + dev: true registry.npmjs.org/@types/yargs/17.0.22: resolution: {integrity: sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz} @@ -16202,151 +16404,13 @@ packages: version: 17.0.22 dependencies: '@types/yargs-parser': registry.npmjs.org/@types/yargs-parser/21.0.0 - - registry.npmjs.org/@webassemblyjs/ast/1.11.1: - resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz} - name: '@webassemblyjs/ast' - version: 1.11.1 - dependencies: - '@webassemblyjs/helper-numbers': registry.npmjs.org/@webassemblyjs/helper-numbers/1.11.1 - '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 - - registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/1.11.1: - resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz} - name: '@webassemblyjs/floating-point-hex-parser' - version: 1.11.1 - - registry.npmjs.org/@webassemblyjs/helper-api-error/1.11.1: - resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz} - name: '@webassemblyjs/helper-api-error' - version: 1.11.1 - - registry.npmjs.org/@webassemblyjs/helper-buffer/1.11.1: - resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz} - name: '@webassemblyjs/helper-buffer' - version: 1.11.1 - - registry.npmjs.org/@webassemblyjs/helper-numbers/1.11.1: - resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz} - name: '@webassemblyjs/helper-numbers' - version: 1.11.1 - dependencies: - '@webassemblyjs/floating-point-hex-parser': registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/1.11.1 - '@webassemblyjs/helper-api-error': registry.npmjs.org/@webassemblyjs/helper-api-error/1.11.1 - '@xtuc/long': registry.npmjs.org/@xtuc/long/4.2.2 - - registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1: - resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz} - name: '@webassemblyjs/helper-wasm-bytecode' - version: 1.11.1 - - registry.npmjs.org/@webassemblyjs/helper-wasm-section/1.11.1: - resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz} - name: '@webassemblyjs/helper-wasm-section' - version: 1.11.1 - dependencies: - '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 - '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer/1.11.1 - '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 - '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen/1.11.1 - - registry.npmjs.org/@webassemblyjs/ieee754/1.11.1: - resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz} - name: '@webassemblyjs/ieee754' - version: 1.11.1 - dependencies: - '@xtuc/ieee754': registry.npmjs.org/@xtuc/ieee754/1.2.0 - - registry.npmjs.org/@webassemblyjs/leb128/1.11.1: - resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz} - name: '@webassemblyjs/leb128' - version: 1.11.1 - dependencies: - '@xtuc/long': registry.npmjs.org/@xtuc/long/4.2.2 - - registry.npmjs.org/@webassemblyjs/utf8/1.11.1: - resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz} - name: '@webassemblyjs/utf8' - version: 1.11.1 - - registry.npmjs.org/@webassemblyjs/wasm-edit/1.11.1: - resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz} - name: '@webassemblyjs/wasm-edit' - version: 1.11.1 - dependencies: - '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 - '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer/1.11.1 - '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 - '@webassemblyjs/helper-wasm-section': registry.npmjs.org/@webassemblyjs/helper-wasm-section/1.11.1 - '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen/1.11.1 - '@webassemblyjs/wasm-opt': registry.npmjs.org/@webassemblyjs/wasm-opt/1.11.1 - '@webassemblyjs/wasm-parser': registry.npmjs.org/@webassemblyjs/wasm-parser/1.11.1 - '@webassemblyjs/wast-printer': registry.npmjs.org/@webassemblyjs/wast-printer/1.11.1 - - registry.npmjs.org/@webassemblyjs/wasm-gen/1.11.1: - resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz} - name: '@webassemblyjs/wasm-gen' - version: 1.11.1 - dependencies: - '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 - '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 - '@webassemblyjs/ieee754': registry.npmjs.org/@webassemblyjs/ieee754/1.11.1 - '@webassemblyjs/leb128': registry.npmjs.org/@webassemblyjs/leb128/1.11.1 - '@webassemblyjs/utf8': registry.npmjs.org/@webassemblyjs/utf8/1.11.1 - - registry.npmjs.org/@webassemblyjs/wasm-opt/1.11.1: - resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz} - name: '@webassemblyjs/wasm-opt' - version: 1.11.1 - dependencies: - '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 - '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer/1.11.1 - '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen/1.11.1 - '@webassemblyjs/wasm-parser': registry.npmjs.org/@webassemblyjs/wasm-parser/1.11.1 - - registry.npmjs.org/@webassemblyjs/wasm-parser/1.11.1: - resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz} - name: '@webassemblyjs/wasm-parser' - version: 1.11.1 - dependencies: - '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 - '@webassemblyjs/helper-api-error': registry.npmjs.org/@webassemblyjs/helper-api-error/1.11.1 - '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/1.11.1 - '@webassemblyjs/ieee754': registry.npmjs.org/@webassemblyjs/ieee754/1.11.1 - '@webassemblyjs/leb128': registry.npmjs.org/@webassemblyjs/leb128/1.11.1 - '@webassemblyjs/utf8': registry.npmjs.org/@webassemblyjs/utf8/1.11.1 - - registry.npmjs.org/@webassemblyjs/wast-printer/1.11.1: - resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz} - name: '@webassemblyjs/wast-printer' - version: 1.11.1 - dependencies: - '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 - '@xtuc/long': registry.npmjs.org/@xtuc/long/4.2.2 - - registry.npmjs.org/@xtuc/ieee754/1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz} - name: '@xtuc/ieee754' - version: 1.2.0 - - registry.npmjs.org/@xtuc/long/4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz} - name: '@xtuc/long' - version: 4.2.2 + dev: true registry.npmjs.org/abab/2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/abab/-/abab-2.0.6.tgz} name: abab version: 2.0.6 - - registry.npmjs.org/acorn-globals/6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz} - name: acorn-globals - version: 6.0.0 - dependencies: - acorn: registry.npmjs.org/acorn/7.4.1 - acorn-walk: registry.npmjs.org/acorn-walk/7.2.0 - dev: false + dev: true registry.npmjs.org/acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz} @@ -16357,23 +16421,6 @@ packages: acorn-walk: registry.npmjs.org/acorn-walk/8.2.0 dev: true - registry.npmjs.org/acorn-import-assertions/1.8.0_acorn@8.8.2: - resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz} - id: registry.npmjs.org/acorn-import-assertions/1.8.0 - name: acorn-import-assertions - version: 1.8.0 - peerDependencies: - acorn: ^8 - dependencies: - acorn: registry.npmjs.org/acorn/8.8.2 - - registry.npmjs.org/acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz} - name: acorn-walk - version: 7.2.0 - engines: {node: '>=0.4.0'} - dev: false - registry.npmjs.org/acorn-walk/8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz} name: acorn-walk @@ -16381,20 +16428,13 @@ packages: engines: {node: '>=0.4.0'} dev: true - registry.npmjs.org/acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz} - name: acorn - version: 7.4.1 - engines: {node: '>=0.4.0'} - hasBin: true - dev: false - registry.npmjs.org/acorn/8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz} name: acorn version: 8.8.2 engines: {node: '>=0.4.0'} hasBin: true + dev: true registry.npmjs.org/aes-js/3.0.0: resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz} @@ -16411,32 +16451,14 @@ packages: debug: registry.npmjs.org/debug/4.3.4 transitivePeerDependencies: - supports-color - - registry.npmjs.org/ajv-keywords/3.5.2_ajv@6.12.6: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz} - id: registry.npmjs.org/ajv-keywords/3.5.2 - name: ajv-keywords - version: 3.5.2 - peerDependencies: - ajv: ^6.9.1 - dependencies: - ajv: registry.npmjs.org/ajv/6.12.6 - - registry.npmjs.org/ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz} - name: ajv - version: 6.12.6 - dependencies: - fast-deep-equal: registry.npmjs.org/fast-deep-equal/3.1.3 - fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify/2.1.0 - json-schema-traverse: registry.npmjs.org/json-schema-traverse/0.4.1 - uri-js: registry.npmjs.org/uri-js/4.4.1 + dev: true registry.npmjs.org/ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz} name: ansi-regex version: 5.0.1 engines: {node: '>=8'} + dev: true registry.npmjs.org/ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz} @@ -16445,6 +16467,7 @@ packages: engines: {node: '>=4'} dependencies: color-convert: registry.npmjs.org/color-convert/1.9.3 + dev: true registry.npmjs.org/ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz} @@ -16453,12 +16476,14 @@ packages: engines: {node: '>=8'} dependencies: color-convert: registry.npmjs.org/color-convert/2.0.1 + dev: true registry.npmjs.org/ansi-styles/5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz} name: ansi-styles version: 5.2.0 engines: {node: '>=10'} + dev: true registry.npmjs.org/aria-query/5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz} @@ -16472,6 +16497,7 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz} name: asynckit version: 0.4.0 + dev: true registry.npmjs.org/available-typed-arrays/1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} @@ -16536,6 +16562,7 @@ packages: engines: {node: '>=8'} dependencies: fill-range: registry.npmjs.org/fill-range/7.0.1 + dev: true registry.npmjs.org/brorand/1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz} @@ -16543,23 +16570,6 @@ packages: version: 1.1.0 dev: false - registry.npmjs.org/browserslist/4.21.5: - resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz} - name: browserslist - version: 4.21.5 - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: registry.npmjs.org/caniuse-lite/1.0.30001451 - electron-to-chromium: registry.npmjs.org/electron-to-chromium/1.4.294 - node-releases: registry.npmjs.org/node-releases/2.0.10 - update-browserslist-db: registry.npmjs.org/update-browserslist-db/1.0.10_browserslist@4.21.5 - - registry.npmjs.org/buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz} - name: buffer-from - version: 1.1.2 - registry.npmjs.org/call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz} name: call-bind @@ -16569,11 +16579,6 @@ packages: get-intrinsic: registry.npmjs.org/get-intrinsic/1.2.0 dev: true - registry.npmjs.org/caniuse-lite/1.0.30001451: - resolution: {integrity: sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz} - name: caniuse-lite - version: 1.0.30001451 - registry.npmjs.org/chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz} name: chalk @@ -16583,6 +16588,7 @@ packages: ansi-styles: registry.npmjs.org/ansi-styles/3.2.1 escape-string-regexp: registry.npmjs.org/escape-string-regexp/1.0.5 supports-color: registry.npmjs.org/supports-color/5.5.0 + dev: true registry.npmjs.org/chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} @@ -16592,18 +16598,14 @@ packages: dependencies: ansi-styles: registry.npmjs.org/ansi-styles/4.3.0 supports-color: registry.npmjs.org/supports-color/7.2.0 - - registry.npmjs.org/chrome-trace-event/1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} - name: chrome-trace-event - version: 1.0.3 - engines: {node: '>=6.0'} + dev: true registry.npmjs.org/ci-info/3.7.1: resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz} name: ci-info version: 3.7.1 engines: {node: '>=8'} + dev: true registry.npmjs.org/color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz} @@ -16611,6 +16613,7 @@ packages: version: 1.9.3 dependencies: color-name: registry.npmjs.org/color-name/1.1.3 + dev: true registry.npmjs.org/color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz} @@ -16619,16 +16622,19 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: registry.npmjs.org/color-name/1.1.4 + dev: true registry.npmjs.org/color-name/1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz} name: color-name version: 1.1.3 + dev: true registry.npmjs.org/color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz} name: color-name version: 1.1.4 + dev: true registry.npmjs.org/combined-stream/1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz} @@ -16637,11 +16643,7 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: registry.npmjs.org/delayed-stream/1.0.0 - - registry.npmjs.org/commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/commander/-/commander-2.20.3.tgz} - name: commander - version: 2.20.3 + dev: true registry.npmjs.org/concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz} @@ -16667,12 +16669,7 @@ packages: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz} name: cssom version: 0.3.8 - - registry.npmjs.org/cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz} - name: cssom - version: 0.4.4 - dev: false + dev: true registry.npmjs.org/cssom/0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz} @@ -16687,17 +16684,7 @@ packages: engines: {node: '>=8'} dependencies: cssom: registry.npmjs.org/cssom/0.3.8 - - registry.npmjs.org/data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz} - name: data-urls - version: 2.0.0 - engines: {node: '>=10'} - dependencies: - abab: registry.npmjs.org/abab/2.0.6 - whatwg-mimetype: registry.npmjs.org/whatwg-mimetype/2.3.0 - whatwg-url: registry.npmjs.org/whatwg-url/8.7.0 - dev: false + dev: true registry.npmjs.org/data-urls/3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz} @@ -16722,11 +16709,13 @@ packages: optional: true dependencies: ms: registry.npmjs.org/ms/2.1.2 + dev: true registry.npmjs.org/decimal.js/10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz} name: decimal.js version: 10.4.3 + dev: true registry.npmjs.org/deep-equal/2.2.0: resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz} @@ -16756,6 +16745,7 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} name: deep-is version: 0.1.4 + dev: true registry.npmjs.org/define-properties/1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz} @@ -16772,6 +16762,7 @@ packages: name: delayed-stream version: 1.0.0 engines: {node: '>=0.4.0'} + dev: true registry.npmjs.org/dom-accessibility-api/0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz} @@ -16779,15 +16770,6 @@ packages: version: 0.5.16 dev: true - registry.npmjs.org/domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz} - name: domexception - version: 2.0.1 - engines: {node: '>=8'} - dependencies: - webidl-conversions: registry.npmjs.org/webidl-conversions/5.0.0 - dev: false - registry.npmjs.org/domexception/4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz} name: domexception @@ -16797,11 +16779,6 @@ packages: webidl-conversions: registry.npmjs.org/webidl-conversions/7.0.0 dev: true - registry.npmjs.org/electron-to-chromium/1.4.294: - resolution: {integrity: sha512-PuHZB3jEN7D8WPPjLmBQAsqQz8tWHlkkB4n0E2OYw8RwVdmBYV0Wn+rUFH8JqYyIRb4HQhhedgxlZL163wqLrQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.294.tgz} - name: electron-to-chromium - version: 1.4.294 - registry.npmjs.org/elliptic/6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz} name: elliptic @@ -16816,15 +16793,6 @@ packages: minimalistic-crypto-utils: registry.npmjs.org/minimalistic-crypto-utils/1.0.1 dev: false - registry.npmjs.org/enhanced-resolve/5.12.0: - resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz} - name: enhanced-resolve - version: 5.12.0 - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 - tapable: registry.npmjs.org/tapable/2.2.1 - registry.npmjs.org/entities/4.4.0: resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/entities/-/entities-4.4.0.tgz} name: entities @@ -16848,11 +16816,6 @@ packages: stop-iteration-iterator: registry.npmjs.org/stop-iteration-iterator/1.0.0 dev: true - registry.npmjs.org/es-module-lexer/0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz} - name: es-module-lexer - version: 0.9.3 - registry.npmjs.org/esbuild-android-64/0.15.18: resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz} name: esbuild-android-64 @@ -17073,23 +17036,19 @@ packages: dev: true optional: true - registry.npmjs.org/escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz} - name: escalade - version: 3.1.1 - engines: {node: '>=6'} - registry.npmjs.org/escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} name: escape-string-regexp version: 1.0.5 engines: {node: '>=0.8.0'} + dev: true registry.npmjs.org/escape-string-regexp/2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz} name: escape-string-regexp version: 2.0.0 engines: {node: '>=8'} + dev: true registry.npmjs.org/escodegen/2.0.0: resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz} @@ -17104,15 +17063,7 @@ packages: optionator: registry.npmjs.org/optionator/0.8.3 optionalDependencies: source-map: registry.npmjs.org/source-map/0.6.1 - - registry.npmjs.org/eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz} - name: eslint-scope - version: 5.1.1 - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: registry.npmjs.org/esrecurse/4.3.0 - estraverse: registry.npmjs.org/estraverse/4.3.0 + dev: true registry.npmjs.org/esprima/4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz} @@ -17120,32 +17071,21 @@ packages: version: 4.0.1 engines: {node: '>=4'} hasBin: true - - registry.npmjs.org/esrecurse/4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz} - name: esrecurse - version: 4.3.0 - engines: {node: '>=4.0'} - dependencies: - estraverse: registry.npmjs.org/estraverse/5.3.0 - - registry.npmjs.org/estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz} - name: estraverse - version: 4.3.0 - engines: {node: '>=4.0'} + dev: true registry.npmjs.org/estraverse/5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz} name: estraverse version: 5.3.0 engines: {node: '>=4.0'} + dev: true registry.npmjs.org/esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz} name: esutils version: 2.0.3 engines: {node: '>=0.10.0'} + dev: true registry.npmjs.org/ethers/5.7.2: resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz} @@ -17198,21 +17138,13 @@ packages: name: events version: 3.3.0 engines: {node: '>=0.8.x'} - - registry.npmjs.org/fast-deep-equal/3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} - name: fast-deep-equal - version: 3.1.3 - - registry.npmjs.org/fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} - name: fast-json-stable-stringify - version: 2.1.0 + dev: false registry.npmjs.org/fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} name: fast-levenshtein version: 2.0.6 + dev: true registry.npmjs.org/fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz} @@ -17221,6 +17153,7 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: registry.npmjs.org/to-regex-range/5.0.1 + dev: true registry.npmjs.org/follow-redirects/1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz} @@ -17242,17 +17175,6 @@ packages: is-callable: registry.npmjs.org/is-callable/1.2.7 dev: true - registry.npmjs.org/form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz} - name: form-data - version: 3.0.1 - engines: {node: '>= 6'} - dependencies: - asynckit: registry.npmjs.org/asynckit/0.4.0 - combined-stream: registry.npmjs.org/combined-stream/1.0.8 - mime-types: registry.npmjs.org/mime-types/2.1.35 - dev: false - registry.npmjs.org/form-data/4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz} name: form-data @@ -17277,6 +17199,7 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true registry.npmjs.org/function-bind/1.1.1: @@ -17301,11 +17224,6 @@ packages: has-symbols: registry.npmjs.org/has-symbols/1.0.3 dev: true - registry.npmjs.org/glob-to-regexp/0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} - name: glob-to-regexp - version: 0.4.1 - registry.npmjs.org/glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/glob/-/glob-7.2.3.tgz} name: glob @@ -17331,6 +17249,7 @@ packages: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz} name: graceful-fs version: 4.2.10 + dev: true registry.npmjs.org/has-bigints/1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz} @@ -17343,12 +17262,14 @@ packages: name: has-flag version: 3.0.0 engines: {node: '>=4'} + dev: true registry.npmjs.org/has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz} name: has-flag version: 4.0.0 engines: {node: '>=8'} + dev: true registry.npmjs.org/has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} @@ -17402,15 +17323,6 @@ packages: minimalistic-crypto-utils: registry.npmjs.org/minimalistic-crypto-utils/1.0.1 dev: false - registry.npmjs.org/html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz} - name: html-encoding-sniffer - version: 2.0.1 - engines: {node: '>=10'} - dependencies: - whatwg-encoding: registry.npmjs.org/whatwg-encoding/1.0.5 - dev: false - registry.npmjs.org/html-encoding-sniffer/3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz} name: html-encoding-sniffer @@ -17420,19 +17332,6 @@ packages: whatwg-encoding: registry.npmjs.org/whatwg-encoding/2.0.0 dev: true - registry.npmjs.org/http-proxy-agent/4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz} - name: http-proxy-agent - version: 4.0.1 - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': registry.npmjs.org/@tootallnate/once/1.1.2 - agent-base: registry.npmjs.org/agent-base/6.0.2 - debug: registry.npmjs.org/debug/4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - registry.npmjs.org/http-proxy-agent/5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz} name: http-proxy-agent @@ -17456,15 +17355,7 @@ packages: debug: registry.npmjs.org/debug/4.3.4 transitivePeerDependencies: - supports-color - - registry.npmjs.org/iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz} - name: iconv-lite - version: 0.4.24 - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: registry.npmjs.org/safer-buffer/2.1.2 - dev: false + dev: true registry.npmjs.org/iconv-lite/0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz} @@ -17595,11 +17486,13 @@ packages: name: is-number version: 7.0.0 engines: {node: '>=0.12.0'} + dev: true registry.npmjs.org/is-potential-custom-element-name/1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz} name: is-potential-custom-element-name version: 1.0.1 + dev: true registry.npmjs.org/is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz} @@ -17677,26 +17570,6 @@ packages: version: 2.0.5 dev: true - registry.npmjs.org/jest-environment-jsdom/27.5.1: - resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz} - name: jest-environment-jsdom - version: 27.5.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': registry.npmjs.org/@jest/environment/27.5.1 - '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers/27.5.1 - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - jest-mock: registry.npmjs.org/jest-mock/27.5.1 - jest-util: registry.npmjs.org/jest-util/27.5.1 - jsdom: registry.npmjs.org/jsdom/16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: false - registry.npmjs.org/jest-environment-jsdom/29.4.2: resolution: {integrity: sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.4.2.tgz} name: jest-environment-jsdom @@ -17722,23 +17595,6 @@ packages: - utf-8-validate dev: true - registry.npmjs.org/jest-message-util/27.5.1: - resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz} - name: jest-message-util - version: 27.5.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': registry.npmjs.org/@babel/code-frame/7.18.6 - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/stack-utils': registry.npmjs.org/@types/stack-utils/2.0.1 - chalk: registry.npmjs.org/chalk/4.1.2 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 - micromatch: registry.npmjs.org/micromatch/4.0.5 - pretty-format: registry.npmjs.org/pretty-format/27.5.1 - slash: registry.npmjs.org/slash/3.0.0 - stack-utils: registry.npmjs.org/stack-utils/2.0.6 - dev: false - registry.npmjs.org/jest-message-util/29.4.2: resolution: {integrity: sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.2.tgz} name: jest-message-util @@ -17756,16 +17612,6 @@ packages: stack-utils: registry.npmjs.org/stack-utils/2.0.6 dev: true - registry.npmjs.org/jest-mock/27.5.1: - resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz} - name: jest-mock - version: 27.5.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - dev: false - registry.npmjs.org/jest-mock/29.4.2: resolution: {integrity: sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-mock/-/jest-mock-29.4.2.tgz} name: jest-mock @@ -17777,20 +17623,6 @@ packages: jest-util: registry.npmjs.org/jest-util/29.4.2 dev: true - registry.npmjs.org/jest-util/27.5.1: - resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz} - name: jest-util - version: 27.5.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': registry.npmjs.org/@jest/types/27.5.1 - '@types/node': registry.npmjs.org/@types/node/18.13.0 - chalk: registry.npmjs.org/chalk/4.1.2 - ci-info: registry.npmjs.org/ci-info/3.7.1 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 - picomatch: registry.npmjs.org/picomatch/2.3.1 - dev: false - registry.npmjs.org/jest-util/29.4.2: resolution: {integrity: sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-util/-/jest-util-29.4.2.tgz} name: jest-util @@ -17805,16 +17637,6 @@ packages: picomatch: registry.npmjs.org/picomatch/2.3.1 dev: true - registry.npmjs.org/jest-worker/27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz} - name: jest-worker - version: 27.5.1 - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': registry.npmjs.org/@types/node/18.13.0 - merge-stream: registry.npmjs.org/merge-stream/2.0.0 - supports-color: registry.npmjs.org/supports-color/8.1.1 - registry.npmjs.org/js-sha3/0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz} name: js-sha3 @@ -17825,50 +17647,7 @@ packages: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz} name: js-tokens version: 4.0.0 - - registry.npmjs.org/jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz} - name: jsdom - version: 16.7.0 - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: registry.npmjs.org/abab/2.0.6 - acorn: registry.npmjs.org/acorn/8.8.2 - acorn-globals: registry.npmjs.org/acorn-globals/6.0.0 - cssom: registry.npmjs.org/cssom/0.4.4 - cssstyle: registry.npmjs.org/cssstyle/2.3.0 - data-urls: registry.npmjs.org/data-urls/2.0.0 - decimal.js: registry.npmjs.org/decimal.js/10.4.3 - domexception: registry.npmjs.org/domexception/2.0.1 - escodegen: registry.npmjs.org/escodegen/2.0.0 - form-data: registry.npmjs.org/form-data/3.0.1 - html-encoding-sniffer: registry.npmjs.org/html-encoding-sniffer/2.0.1 - http-proxy-agent: registry.npmjs.org/http-proxy-agent/4.0.1 - https-proxy-agent: registry.npmjs.org/https-proxy-agent/5.0.1 - is-potential-custom-element-name: registry.npmjs.org/is-potential-custom-element-name/1.0.1 - nwsapi: registry.npmjs.org/nwsapi/2.2.2 - parse5: registry.npmjs.org/parse5/6.0.1 - saxes: registry.npmjs.org/saxes/5.0.1 - symbol-tree: registry.npmjs.org/symbol-tree/3.2.4 - tough-cookie: registry.npmjs.org/tough-cookie/4.1.2 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: registry.npmjs.org/w3c-xmlserializer/2.0.0 - webidl-conversions: registry.npmjs.org/webidl-conversions/6.1.0 - whatwg-encoding: registry.npmjs.org/whatwg-encoding/1.0.5 - whatwg-mimetype: registry.npmjs.org/whatwg-mimetype/2.3.0 - whatwg-url: registry.npmjs.org/whatwg-url/8.7.0 - ws: registry.npmjs.org/ws/7.5.9 - xml-name-validator: registry.npmjs.org/xml-name-validator/3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false + dev: true registry.npmjs.org/jsdom/20.0.3: resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz} @@ -17913,16 +17692,6 @@ packages: - utf-8-validate dev: true - registry.npmjs.org/json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} - name: json-parse-even-better-errors - version: 2.3.1 - - registry.npmjs.org/json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} - name: json-schema-traverse - version: 0.4.1 - registry.npmjs.org/levn/0.3.0: resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/levn/-/levn-0.3.0.tgz} name: levn @@ -17931,12 +17700,7 @@ packages: dependencies: prelude-ls: registry.npmjs.org/prelude-ls/1.1.2 type-check: registry.npmjs.org/type-check/0.3.2 - - registry.npmjs.org/loader-runner/4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz} - name: loader-runner - version: 4.3.0 - engines: {node: '>=6.11.5'} + dev: true registry.npmjs.org/lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz} @@ -17951,11 +17715,6 @@ packages: hasBin: true dev: true - registry.npmjs.org/merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz} - name: merge-stream - version: 2.0.0 - registry.npmjs.org/micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz} name: micromatch @@ -17964,12 +17723,14 @@ packages: dependencies: braces: registry.npmjs.org/braces/3.0.2 picomatch: registry.npmjs.org/picomatch/2.3.1 + dev: true registry.npmjs.org/mime-db/1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz} name: mime-db version: 1.52.0 engines: {node: '>= 0.6'} + dev: true registry.npmjs.org/mime-types/2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz} @@ -17978,6 +17739,7 @@ packages: engines: {node: '>= 0.6'} dependencies: mime-db: registry.npmjs.org/mime-db/1.52.0 + dev: true registry.npmjs.org/minimalistic-assert/1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz} @@ -17999,15 +17761,6 @@ packages: brace-expansion: registry.npmjs.org/brace-expansion/1.1.11 dev: true - registry.npmjs.org/minimatch/5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz} - name: minimatch - version: 5.1.6 - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: false - registry.npmjs.org/minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz} name: minimist @@ -18018,6 +17771,7 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ms/-/ms-2.1.2.tgz} name: ms version: 2.1.2 + dev: true registry.npmjs.org/mutation-observer/1.0.3: resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz} @@ -18025,20 +17779,11 @@ packages: version: 1.0.3 dev: false - registry.npmjs.org/neo-async/2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz} - name: neo-async - version: 2.6.2 - - registry.npmjs.org/node-releases/2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz} - name: node-releases - version: 2.0.10 - registry.npmjs.org/nwsapi/2.2.2: resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz} name: nwsapi version: 2.2.2 + dev: true registry.npmjs.org/object-inspect/1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz} @@ -18095,12 +17840,7 @@ packages: prelude-ls: registry.npmjs.org/prelude-ls/1.1.2 type-check: registry.npmjs.org/type-check/0.3.2 word-wrap: registry.npmjs.org/word-wrap/1.2.3 - - registry.npmjs.org/parse5/6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz} - name: parse5 - version: 6.0.1 - dev: false + dev: true registry.npmjs.org/parse5/7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz} @@ -18123,22 +17863,19 @@ packages: version: 1.0.7 dev: true - registry.npmjs.org/picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz} - name: picocolors - version: 1.0.0 - registry.npmjs.org/picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz} name: picomatch version: 2.3.1 engines: {node: '>=8.6'} + dev: true registry.npmjs.org/prelude-ls/1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz} name: prelude-ls version: 1.1.2 engines: {node: '>= 0.8.0'} + dev: true registry.npmjs.org/pretty-format/27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz} @@ -18149,18 +17886,7 @@ packages: ansi-regex: registry.npmjs.org/ansi-regex/5.0.1 ansi-styles: registry.npmjs.org/ansi-styles/5.2.0 react-is: registry.npmjs.org/react-is/17.0.2 - - registry.npmjs.org/pretty-format/28.1.3: - resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz} - name: pretty-format - version: 28.1.3 - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - dependencies: - '@jest/schemas': registry.npmjs.org/@jest/schemas/28.1.3 - ansi-regex: registry.npmjs.org/ansi-regex/5.0.1 - ansi-styles: registry.npmjs.org/ansi-styles/5.2.0 - react-is: registry.npmjs.org/react-is/18.2.0 - dev: false + dev: true registry.npmjs.org/pretty-format/29.4.2: resolution: {integrity: sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.2.tgz} @@ -18177,34 +17903,32 @@ packages: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/psl/-/psl-1.9.0.tgz} name: psl version: 1.9.0 + dev: true registry.npmjs.org/punycode/2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz} name: punycode version: 2.3.0 engines: {node: '>=6'} + dev: true registry.npmjs.org/querystringify/2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz} name: querystringify version: 2.2.0 - - registry.npmjs.org/randombytes/2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz} - name: randombytes - version: 2.1.0 - dependencies: - safe-buffer: registry.npmjs.org/safe-buffer/5.2.1 + dev: true registry.npmjs.org/react-is/17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz} name: react-is version: 17.0.2 + dev: true registry.npmjs.org/react-is/18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz} name: react-is version: 18.2.0 + dev: true registry.npmjs.org/rechoir/0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz} @@ -18235,6 +17959,7 @@ packages: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz} name: requires-port version: 1.0.0 + dev: true registry.npmjs.org/resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz} @@ -18247,24 +17972,11 @@ packages: supports-preserve-symlinks-flag: registry.npmjs.org/supports-preserve-symlinks-flag/1.0.0 dev: true - registry.npmjs.org/safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz} - name: safe-buffer - version: 5.2.1 - registry.npmjs.org/safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz} name: safer-buffer version: 2.1.2 - - registry.npmjs.org/saxes/5.0.1: - resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz} - name: saxes - version: 5.0.1 - engines: {node: '>=10'} - dependencies: - xmlchars: registry.npmjs.org/xmlchars/2.2.0 - dev: false + dev: true registry.npmjs.org/saxes/6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz} @@ -18275,39 +17987,6 @@ packages: xmlchars: registry.npmjs.org/xmlchars/2.2.0 dev: true - registry.npmjs.org/schema-utils/2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz} - name: schema-utils - version: 2.7.0 - engines: {node: '>= 8.9.0'} - dependencies: - '@types/json-schema': 7.0.11 - ajv: 6.12.6 - ajv-keywords: 3.5.2_ajv@6.12.6 - dev: false - - registry.npmjs.org/schema-utils/3.1.1: - resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz} - name: schema-utils - version: 3.1.1 - engines: {node: '>= 10.13.0'} - dependencies: - '@types/json-schema': registry.npmjs.org/@types/json-schema/7.0.11 - ajv: registry.npmjs.org/ajv/6.12.6 - ajv-keywords: registry.npmjs.org/ajv-keywords/3.5.2_ajv@6.12.6 - - registry.npmjs.org/schema-utils/4.0.0: - resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz} - name: schema-utils - version: 4.0.0 - engines: {node: '>= 12.13.0'} - dependencies: - '@types/json-schema': 7.0.11 - ajv: 8.12.0 - ajv-formats: 2.1.1 - ajv-keywords: 5.1.0_ajv@8.12.0 - dev: false - registry.npmjs.org/scrypt-js/3.0.1: resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz} name: scrypt-js @@ -18321,13 +18000,6 @@ packages: hasBin: true dev: false - registry.npmjs.org/serialize-javascript/6.0.1: - resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz} - name: serialize-javascript - version: 6.0.1 - dependencies: - randombytes: registry.npmjs.org/randombytes/2.1.0 - registry.npmjs.org/shelljs/0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz} name: shelljs @@ -18366,14 +18038,7 @@ packages: name: slash version: 3.0.0 engines: {node: '>=8'} - - registry.npmjs.org/source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz} - name: source-map-support - version: 0.5.21 - dependencies: - buffer-from: registry.npmjs.org/buffer-from/1.1.2 - source-map: registry.npmjs.org/source-map/0.6.1 + dev: true registry.npmjs.org/source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz} @@ -18381,6 +18046,8 @@ packages: version: 0.6.1 engines: {node: '>=0.10.0'} requiresBuild: true + dev: true + optional: true registry.npmjs.org/stack-utils/2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz} @@ -18389,6 +18056,7 @@ packages: engines: {node: '>=10'} dependencies: escape-string-regexp: registry.npmjs.org/escape-string-regexp/2.0.0 + dev: true registry.npmjs.org/stop-iteration-iterator/1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz} @@ -18406,6 +18074,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: registry.npmjs.org/has-flag/3.0.0 + dev: true registry.npmjs.org/supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz} @@ -18414,14 +18083,7 @@ packages: engines: {node: '>=8'} dependencies: has-flag: registry.npmjs.org/has-flag/4.0.0 - - registry.npmjs.org/supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz} - name: supports-color - version: 8.1.1 - engines: {node: '>=10'} - dependencies: - has-flag: registry.npmjs.org/has-flag/4.0.0 + dev: true registry.npmjs.org/supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} @@ -18434,57 +18096,7 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz} name: symbol-tree version: 3.2.4 - - registry.npmjs.org/tapable/1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz} - name: tapable - version: 1.1.3 - engines: {node: '>=6'} - dev: false - - registry.npmjs.org/tapable/2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz} - name: tapable - version: 2.2.1 - engines: {node: '>=6'} - - registry.npmjs.org/terser-webpack-plugin/5.3.6_webpack@5.78.0: - resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz} - id: registry.npmjs.org/terser-webpack-plugin/5.3.6 - name: terser-webpack-plugin - version: 5.3.6 - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - dependencies: - '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping/0.3.17 - jest-worker: registry.npmjs.org/jest-worker/27.5.1 - schema-utils: registry.npmjs.org/schema-utils/3.1.1 - serialize-javascript: registry.npmjs.org/serialize-javascript/6.0.1 - terser: registry.npmjs.org/terser/5.16.3 - webpack: registry.npmjs.org/webpack/5.78.0 - - registry.npmjs.org/terser/5.16.3: - resolution: {integrity: sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/terser/-/terser-5.16.3.tgz} - name: terser - version: 5.16.3 - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': registry.npmjs.org/@jridgewell/source-map/0.3.2 - acorn: registry.npmjs.org/acorn/8.8.2 - commander: registry.npmjs.org/commander/2.20.3 - source-map-support: registry.npmjs.org/source-map-support/0.5.21 + dev: true registry.npmjs.org/to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz} @@ -18493,6 +18105,7 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: registry.npmjs.org/is-number/7.0.0 + dev: true registry.npmjs.org/tough-cookie/4.1.2: resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz} @@ -18504,15 +18117,7 @@ packages: punycode: registry.npmjs.org/punycode/2.3.0 universalify: registry.npmjs.org/universalify/0.2.0 url-parse: registry.npmjs.org/url-parse/1.5.10 - - registry.npmjs.org/tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz} - name: tr46 - version: 2.1.0 - engines: {node: '>=8'} - dependencies: - punycode: registry.npmjs.org/punycode/2.3.0 - dev: false + dev: true registry.npmjs.org/tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz} @@ -18558,38 +18163,21 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: registry.npmjs.org/prelude-ls/1.1.2 + dev: true registry.npmjs.org/type-detect/4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz} name: type-detect version: 4.0.8 engines: {node: '>=4'} + dev: true registry.npmjs.org/universalify/0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz} name: universalify version: 0.2.0 engines: {node: '>= 4.0.0'} - - registry.npmjs.org/update-browserslist-db/1.0.10_browserslist@4.21.5: - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz} - id: registry.npmjs.org/update-browserslist-db/1.0.10 - name: update-browserslist-db - version: 1.0.10 - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: registry.npmjs.org/browserslist/4.21.5 - escalade: registry.npmjs.org/escalade/3.1.1 - picocolors: registry.npmjs.org/picocolors/1.0.0 - - registry.npmjs.org/uri-js/4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz} - name: uri-js - version: 4.4.1 - dependencies: - punycode: registry.npmjs.org/punycode/2.3.0 + dev: true registry.npmjs.org/url-parse/1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz} @@ -18598,6 +18186,7 @@ packages: dependencies: querystringify: registry.npmjs.org/querystringify/2.2.0 requires-port: registry.npmjs.org/requires-port/1.0.0 + dev: true registry.npmjs.org/validator/13.9.0: resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/validator/-/validator-13.9.0.tgz} @@ -18617,15 +18206,6 @@ packages: mutation-observer: registry.npmjs.org/mutation-observer/1.0.3 dev: false - registry.npmjs.org/w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz} - name: w3c-xmlserializer - version: 2.0.0 - engines: {node: '>=10'} - dependencies: - xml-name-validator: registry.npmjs.org/xml-name-validator/3.0.0 - dev: false - registry.npmjs.org/w3c-xmlserializer/4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz} name: w3c-xmlserializer @@ -18635,29 +18215,6 @@ packages: xml-name-validator: registry.npmjs.org/xml-name-validator/4.0.0 dev: true - registry.npmjs.org/watchpack/2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz} - name: watchpack - version: 2.4.0 - engines: {node: '>=10.13.0'} - dependencies: - glob-to-regexp: registry.npmjs.org/glob-to-regexp/0.4.1 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 - - registry.npmjs.org/webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz} - name: webidl-conversions - version: 5.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmjs.org/webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz} - name: webidl-conversions - version: 6.1.0 - engines: {node: '>=10.4'} - dev: false - registry.npmjs.org/webidl-conversions/7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz} name: webidl-conversions @@ -18665,61 +18222,6 @@ packages: engines: {node: '>=12'} dev: true - registry.npmjs.org/webpack-sources/3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz} - name: webpack-sources - version: 3.2.3 - engines: {node: '>=10.13.0'} - - registry.npmjs.org/webpack/5.78.0: - resolution: {integrity: sha512-gT5DP72KInmE/3azEaQrISjTvLYlSM0j1Ezhht/KLVkrqtv10JoP/RXhwmX/frrutOPuSq3o5Vq0ehR/4Vmd1g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/webpack/-/webpack-5.78.0.tgz} - name: webpack - version: 5.78.0 - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - dependencies: - '@types/eslint-scope': registry.npmjs.org/@types/eslint-scope/3.7.4 - '@types/estree': registry.npmjs.org/@types/estree/0.0.51 - '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast/1.11.1 - '@webassemblyjs/wasm-edit': registry.npmjs.org/@webassemblyjs/wasm-edit/1.11.1 - '@webassemblyjs/wasm-parser': registry.npmjs.org/@webassemblyjs/wasm-parser/1.11.1 - acorn: registry.npmjs.org/acorn/8.8.2 - acorn-import-assertions: registry.npmjs.org/acorn-import-assertions/1.8.0_acorn@8.8.2 - browserslist: registry.npmjs.org/browserslist/4.21.5 - chrome-trace-event: registry.npmjs.org/chrome-trace-event/1.0.3 - enhanced-resolve: registry.npmjs.org/enhanced-resolve/5.12.0 - es-module-lexer: registry.npmjs.org/es-module-lexer/0.9.3 - eslint-scope: registry.npmjs.org/eslint-scope/5.1.1 - events: registry.npmjs.org/events/3.3.0 - glob-to-regexp: registry.npmjs.org/glob-to-regexp/0.4.1 - graceful-fs: registry.npmjs.org/graceful-fs/4.2.10 - json-parse-even-better-errors: registry.npmjs.org/json-parse-even-better-errors/2.3.1 - loader-runner: registry.npmjs.org/loader-runner/4.3.0 - mime-types: registry.npmjs.org/mime-types/2.1.35 - neo-async: registry.npmjs.org/neo-async/2.6.2 - schema-utils: registry.npmjs.org/schema-utils/3.1.1 - tapable: registry.npmjs.org/tapable/2.2.1 - terser-webpack-plugin: registry.npmjs.org/terser-webpack-plugin/5.3.6_webpack@5.78.0 - watchpack: registry.npmjs.org/watchpack/2.4.0 - webpack-sources: registry.npmjs.org/webpack-sources/3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - registry.npmjs.org/whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz} - name: whatwg-encoding - version: 1.0.5 - dependencies: - iconv-lite: registry.npmjs.org/iconv-lite/0.4.24 - dev: false - registry.npmjs.org/whatwg-encoding/2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz} name: whatwg-encoding @@ -18729,12 +18231,6 @@ packages: iconv-lite: registry.npmjs.org/iconv-lite/0.6.3 dev: true - registry.npmjs.org/whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz} - name: whatwg-mimetype - version: 2.3.0 - dev: false - registry.npmjs.org/whatwg-mimetype/3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz} name: whatwg-mimetype @@ -18752,17 +18248,6 @@ packages: webidl-conversions: registry.npmjs.org/webidl-conversions/7.0.0 dev: true - registry.npmjs.org/whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz} - name: whatwg-url - version: 8.7.0 - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: registry.npmjs.org/tr46/2.1.0 - webidl-conversions: registry.npmjs.org/webidl-conversions/6.1.0 - dev: false - registry.npmjs.org/which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} name: which-boxed-primitive @@ -18805,6 +18290,7 @@ packages: name: word-wrap version: 1.2.3 engines: {node: '>=0.10.0'} + dev: true registry.npmjs.org/wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz} @@ -18827,21 +18313,6 @@ packages: optional: true dev: false - registry.npmjs.org/ws/7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ws/-/ws-7.5.9.tgz} - name: ws - version: 7.5.9 - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - registry.npmjs.org/ws/8.12.0: resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ws/-/ws-8.12.0.tgz} name: ws @@ -18857,12 +18328,6 @@ packages: optional: true dev: true - registry.npmjs.org/xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz} - name: xml-name-validator - version: 3.0.0 - dev: false - registry.npmjs.org/xml-name-validator/4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz} name: xml-name-validator @@ -18874,3 +18339,4 @@ packages: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz} name: xmlchars version: 2.2.0 + dev: true From 1a23da91dcd925d5623b694a69455ba65831eb97 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Wed, 26 Apr 2023 10:04:45 +0800 Subject: [PATCH 11/12] chore: add jest-environment-jsdom to ledger adapter --- packages/adapters/ledger/package.json | 1 + pnpm-lock.yaml | 63 ++++++++++++++------------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/packages/adapters/ledger/package.json b/packages/adapters/ledger/package.json index db57792..f21ffae 100644 --- a/packages/adapters/ledger/package.json +++ b/packages/adapters/ledger/package.json @@ -51,6 +51,7 @@ }, "devDependencies": { "@testing-library/dom": "^8.20.0", + "jest-environment-jsdom": "^29.3.1", "shx": "^0.3.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b4ca65d..6fb5238 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -336,6 +336,7 @@ importers: '@tronweb3/tronwallet-abstract-adapter': ^1.1.5 buffer: ^6.0.3 eventemitter3: ^4.0.0 + jest-environment-jsdom: ^29.3.1 preact: ^10.11.3 shx: ^0.3.4 dependencies: @@ -348,6 +349,7 @@ importers: preact: 10.12.1 devDependencies: '@testing-library/dom': 8.20.0 + jest-environment-jsdom: 29.4.2 shx: 0.3.4 packages/adapters/okxwallet: @@ -4501,7 +4503,7 @@ packages: dev: false /@types/node/18.13.0: - resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -5325,7 +5327,7 @@ packages: dev: false /acorn/8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} hasBin: true @@ -5346,7 +5348,7 @@ packages: resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: debug: 4.3.4 @@ -5603,7 +5605,7 @@ packages: dev: false /asynckit/0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} /at-least-node/1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} @@ -6379,7 +6381,7 @@ packages: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 @@ -6873,7 +6875,7 @@ packages: dev: false /cssom/0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} /cssom/0.4.4: resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==, registry: https://registry.yarnpkg.com/} @@ -6884,7 +6886,7 @@ packages: dev: true /cssstyle/2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} dependencies: cssom: 0.3.8 @@ -7005,7 +7007,7 @@ packages: dev: false /decimal.js/10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} /decode-uri-component/0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -7080,7 +7082,7 @@ packages: dev: false /delayed-stream/1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} /depd/1.1.2: @@ -7564,7 +7566,7 @@ packages: engines: {node: '>=10'} /escodegen/2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} engines: {node: '>=6.0'} hasBin: true dependencies: @@ -8053,7 +8055,7 @@ packages: engines: {node: '>=4.0'} /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} /estree-walker/1.0.1: @@ -8118,7 +8120,7 @@ packages: dev: false /events/3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.yarnpkg.com/events/-/events-3.3.0.tgz} engines: {node: '>=0.8.x'} /evp_bytestokey/1.0.3: @@ -8762,7 +8764,7 @@ packages: get-intrinsic: 1.2.0 /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -9025,7 +9027,7 @@ packages: dev: false /https-proxy-agent/5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 @@ -9304,7 +9306,7 @@ packages: dev: false /is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} /is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -10753,7 +10755,7 @@ packages: engines: {node: '>=6'} /levn/0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 @@ -11125,11 +11127,11 @@ packages: dev: false /mime-db/1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} /mime-types/2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 @@ -11412,7 +11414,7 @@ packages: dev: false /nwsapi/2.2.2: - resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -11534,7 +11536,7 @@ packages: dev: false /optionator/0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 @@ -12638,7 +12640,7 @@ packages: dev: true /prelude-ls/1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} /prelude-ls/1.2.1: @@ -12743,7 +12745,7 @@ packages: dev: true /psl/1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} /public-encrypt/4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} @@ -12757,7 +12759,7 @@ packages: dev: false /punycode/2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} /q/1.5.1: @@ -12802,7 +12804,7 @@ packages: dev: false /querystringify/2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -13801,6 +13803,7 @@ packages: /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + requiresBuild: true /source-map/0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -14219,7 +14222,7 @@ packages: dev: false /symbol-tree/3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} /synckit/0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} @@ -14412,7 +14415,7 @@ packages: dev: false /tough-cookie/4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} engines: {node: '>=6'} dependencies: psl: 1.9.0 @@ -14616,7 +14619,7 @@ packages: dev: true /type-check/0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 @@ -14760,7 +14763,7 @@ packages: dev: true /universalify/0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} /universalify/2.0.0: @@ -14797,7 +14800,7 @@ packages: punycode: 2.3.0 /url-parse/1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 @@ -15522,7 +15525,7 @@ packages: dev: true /xmlchars/2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, registry: https://registry.yarnpkg.com/} + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} From 68e847b31dc6facca8e91728a4e7f4b17744fe67 Mon Sep 17 00:00:00 2001 From: Justin Zhu Date: Fri, 5 May 2023 14:07:17 +0800 Subject: [PATCH 12/12] docs: update docs --- README.md | 4 ++-- docs/wallet-adapters.md | 7 +++++++ packages/adapters/adapters/README.md | 10 +++++++++- packages/adapters/okxwallet/README.md | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2b35e64..be4712b 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ This repository contains wallet adapters and components for Tron DApps. With out - [TronLink Extension](https://www.tronlink.org/): All versions - [BitKeep App](https://bitkeep.com/): All versions - [BitKeep Extension](https://bitkeep.com/): All versions -- [OkxWallet App](https://okx.com/): All versions +- [OkxWallet App](https://okx.com/): Android all versions - [OkxWallet Extension](https://okx.com/): All versions - [TokenPocket App](https://www.tokenpocket.pro/): All versions - [Ledger](https://www.ledger.com/): All versions @@ -153,7 +153,7 @@ You can use the `@tronweb3/tronwallet-adapters` package, or add the individual w | [walletconnect](https://walletconnect.com/) | Adapter for Walletconnect | [`@tronweb3/tronwallet-adapter-walletconnect`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-walletconnect) | | [tokenpocket](https://tokenpocket.pro/) | Adapter for TokenPocket App(IOS and Android) | [`@tronweb3/tronwallet-adapter-tokenpocket`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-tokenpocket) | | [bitkeep](https://bitkeep.com/) | Adapter for BitKeep extension and BitKeep App(IOS and Android) | [`@tronweb3/tronwallet-adapter-bitkeep`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-bitkeep) | -| [okxwallet](https://www.okx.com/) | Adapter for Okx Wallet extension and App(IOS and Android) | [`@tronweb3/tronwallet-adapter-okxwallet`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-okxwallet) | +| [okxwallet](https://www.okx.com/) | Adapter for Okx Wallet extension and App(Android) | [`@tronweb3/tronwallet-adapter-okxwallet`](https://www.npmjs.com/package/@tronweb3/tronwallet-adapter-okxwallet) | ### React Components diff --git a/docs/wallet-adapters.md b/docs/wallet-adapters.md index 0f5d73c..1ce4fd8 100644 --- a/docs/wallet-adapters.md +++ b/docs/wallet-adapters.md @@ -281,4 +281,11 @@ try { - **TronLink Doesn't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. - **Auto open TronLink app in mobile browser**. If developers call `connect()` method in mobile browser, it will open DApp in TronLink app to get tronlink wallet. +### Others adapters Others adapters `Constructor` config api can be found in their source code `README`. + +- [TokenPocketAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/tokenpocket) +- [BitKeepAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/bitkeep) +- [OkxWalletAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/okxwallet) +- [WalletConnectAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/walletconnect) +- [LedgerAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/ledger) diff --git a/packages/adapters/adapters/README.md b/packages/adapters/adapters/README.md index 0f5d73c..8edf058 100644 --- a/packages/adapters/adapters/README.md +++ b/packages/adapters/adapters/README.md @@ -33,7 +33,7 @@ function App() { const adapter = useMemo(() => new TronLinkAdapter(), []); useEffect(() => { - setReadyState(adapter.state); + setReadyState(adapter.readyState); setAccount(adapter.address!); adapter.on('connect', () => { @@ -281,4 +281,12 @@ try { - **TronLink Doesn't support `disconnect` by DApp**. As TronLinkAdapter doesn't support disconnect by DApp website, call `adapter.disconnect()` won't disconnect from TronLink extension really. - **Auto open TronLink app in mobile browser**. If developers call `connect()` method in mobile browser, it will open DApp in TronLink app to get tronlink wallet. +### Others adapters + Others adapters `Constructor` config api can be found in their source code `README`. + +- [TokenPocketAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/tokenpocket) +- [BitKeepAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/bitkeep) +- [OkxWalletAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/okxwallet) +- [WalletConnectAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/walletconnect) +- [LedgerAdapter](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/ledger) diff --git a/packages/adapters/okxwallet/README.md b/packages/adapters/okxwallet/README.md index 8d79a98..6d28941 100644 --- a/packages/adapters/okxwallet/README.md +++ b/packages/adapters/okxwallet/README.md @@ -79,6 +79,6 @@ interface OkxWalletAdapterConfig { - OkxWallet App and Extension doesn't implement `signMessage()`, `multiSign()` and `switchChain()`. - OkxWallet Extension only support these: `accountsChanged`,`connect`,`disconnect`. - OkxWallet App does not support any events. -- Deeplink only works for OKX App **version 6.1.38 or later**. +- Deeplink only works for OKX App **version 6.1.38 or later** on Android. **OKX App on IOS currently doesn't work fine**. For more information about tronwallet adapters, please refer to [`@tronweb3/tronwallet-adapters`](https://github.com/tronprotocol/tronwallet-adapter/tree/main/packages/adapters/adapters)