From b623380dd039dd5e873385c0ea54089c14bd7948 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Mon, 15 Aug 2022 13:12:59 -0700 Subject: [PATCH] feat: show widget in token details (#4337) * build: install widgets * feat: show widget in token details * basic integration props * ts fix and update widget to 2.1.1 * url map * yarn-deduplicate --strategy=highest Co-authored-by: Jordan Frankfurt --- package.json | 1 + src/pages/TokenDetails/index.tsx | 51 +++++++++--- yarn.lock | 135 ++++++++++++++++++++++++++----- 3 files changed, 159 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index aa2082bcd3..6aebce1e14 100644 --- a/package.json +++ b/package.json @@ -140,6 +140,7 @@ "@uniswap/v3-core": "1.0.0", "@uniswap/v3-periphery": "^1.1.1", "@uniswap/v3-sdk": "^3.9.0", + "@uniswap/widgets": "^2.1.1", "@vanilla-extract/css": "^1.7.2", "@vanilla-extract/css-utils": "^0.1.2", "@vanilla-extract/dynamic": "^2.0.2", diff --git a/src/pages/TokenDetails/index.tsx b/src/pages/TokenDetails/index.tsx index 9fa81c1d34..f81d2ab3de 100644 --- a/src/pages/TokenDetails/index.tsx +++ b/src/pages/TokenDetails/index.tsx @@ -1,3 +1,4 @@ +import { SwapWidget } from '@uniswap/widgets' import { useWeb3React } from '@web3-react/core' import { LARGE_MEDIA_BREAKPOINT, @@ -13,11 +14,13 @@ import TokenDetail from 'components/Explore/TokenDetails/TokenDetail' import TokenSafetyMessage from 'components/TokenSafety/TokenSafetyMessage' import { getChainInfo } from 'constants/chainInfo' import { L1_CHAIN_IDS, L2_CHAIN_IDS, SupportedChainId, TESTNET_CHAIN_IDS } from 'constants/chains' +import { RPC_URLS } from 'constants/networks' import { checkWarning } from 'constants/tokenSafety' import { useToken } from 'hooks/Tokens' +import { useActiveLocale } from 'hooks/useActiveLocale' import { useNetworkTokenBalances } from 'hooks/useNetworkTokenBalances' import useTokenDetailPageQuery from 'hooks/useTokenDetailPageQuery' -import { useMemo } from 'react' +import { useCallback, useMemo } from 'react' import { useParams } from 'react-router-dom' import styled from 'styled-components/macro' @@ -53,22 +56,35 @@ const RightPanel = styled.div` display: none; } ` -const Widget = styled.div` - height: 348px; - width: 284px; - background-color: ${({ theme }) => theme.backgroundModule}; - border-radius: 12px; - border: 1px solid ${({ theme }) => theme.backgroundOutline}; -` + function NetworkBalances(tokenAddress: string) { return useNetworkTokenBalances({ address: tokenAddress }) } +// widget configuration +const WIDGET_THEME = {} +const ROUTER_URL = 'https://api.uniswap.org/v1/' +const WIDGET_URL_MAP = Object.keys(RPC_URLS).reduce( + (acc, cur) => ({ ...acc, [cur]: [RPC_URLS[cur as unknown as SupportedChainId]] }), + {} +) + export default function TokenDetails() { const { tokenAddress } = useParams<{ tokenAddress?: string }>() const { loading } = useTokenDetailPageQuery(tokenAddress) const tokenSymbol = useToken(tokenAddress)?.symbol + const locale = useActiveLocale() + const onTxSubmit = useCallback(() => { + console.log('onTxSubmit') + }, []) + const onTxSuccess = useCallback(() => { + console.log('onTxSuccess') + }, []) + const onTxFail = useCallback(() => { + console.log('onTxFail') + }, []) + let tokenDetail if (!tokenAddress) { // TODO: handle no address / invalid address cases @@ -82,7 +98,7 @@ export default function TokenDetails() { const tokenWarning = tokenAddress ? checkWarning(tokenAddress) : null /* network balance handling */ const { data: networkData } = tokenAddress ? NetworkBalances(tokenAddress) : { data: null } - const { chainId: connectedChainId } = useWeb3React() + const { chainId: connectedChainId, provider } = useWeb3React() const totalBalance = 4.3 // dummy data const chainsToList = useMemo(() => { @@ -122,7 +138,22 @@ export default function TokenDetails() { {tokenAddress && ( <> - + {tokenWarning && } {!loading && ( diff --git a/yarn.lock b/yarn.lock index ce913cd659..c25ed18281 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1078,7 +1078,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== @@ -4457,12 +4457,12 @@ resolved "https://registry.npmjs.org/@uniswap/merkle-distributor/-/merkle-distributor-1.0.1.tgz" integrity sha512-5gDiTI5hrXIh5UWTrxKYjw30QQDnpl8ckDSpefldNenDlYO1RKkdUYMYpvrqGi2r7YzLYTlO6+TDlNs6O7hDRw== -"@uniswap/redux-multicall@^1.1.5": +"@uniswap/redux-multicall@^1.1.1", "@uniswap/redux-multicall@^1.1.5": version "1.1.5" resolved "https://registry.yarnpkg.com/@uniswap/redux-multicall/-/redux-multicall-1.1.5.tgz#7c097047d489c1624038c0fbbd3d76dc705bf153" integrity sha512-RSMhfuAX2rPimnevvAAiwoyV2bCGTIKhVHEBOLTMF+oVxYcKKe9hCwx/cffY12t/usXWHlEJ//V7JoxTKI1Lyg== -"@uniswap/router-sdk@^1.3.0": +"@uniswap/router-sdk@^1.0.3", "@uniswap/router-sdk@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@uniswap/router-sdk/-/router-sdk-1.3.0.tgz#8c17e957f65099a18dda536cd05fc34e779628aa" integrity sha512-T6kXQFXrAkIHfCCmhyW+0xgUyuFVepL9rlwG9+MjnfVtmGIBssbMzyFKGk5HGQYlk6WQrm630W1j87kdfXpZ/Q== @@ -4485,7 +4485,7 @@ tiny-invariant "^1.1.0" toformat "^2.0.0" -"@uniswap/smart-order-router@^2.9.2": +"@uniswap/smart-order-router@^2.5.26", "@uniswap/smart-order-router@^2.9.2": version "2.9.2" resolved "https://registry.yarnpkg.com/@uniswap/smart-order-router/-/smart-order-router-2.9.2.tgz#3c9296b5b3821e191b6759a870330e4b10a9e9df" integrity sha512-t+ruGvZTOvOJcVjxNPSU4o3GuPU/RYHr8KSKZlAHkZfusjbWrOLrO/aHzy/ncoRMNQz1UMBWQ2n3LDzqBxbTkA== @@ -4595,7 +4595,7 @@ base64-sol "1.0.1" hardhat-watcher "^2.1.1" -"@uniswap/v3-sdk@^3.7.0", "@uniswap/v3-sdk@^3.8.3", "@uniswap/v3-sdk@^3.9.0": +"@uniswap/v3-sdk@^3.7.0", "@uniswap/v3-sdk@^3.8.2", "@uniswap/v3-sdk@^3.8.3", "@uniswap/v3-sdk@^3.9.0": version "3.9.0" resolved "https://registry.yarnpkg.com/@uniswap/v3-sdk/-/v3-sdk-3.9.0.tgz#de93fa19f89c29d460996aa4d0b4bb6531641105" integrity sha512-LuoF3UcY1DxSAQKJ3E4/1Eq4HaNp+x+7q9mvbpiu+/PBj+O1DjLforAMrKxu+RsA0aarmZtz7yBnAPy+akgfgQ== @@ -4618,6 +4618,59 @@ "@uniswap/v3-core" "1.0.0" "@uniswap/v3-periphery" "^1.0.1" +"@uniswap/widgets@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@uniswap/widgets/-/widgets-2.1.1.tgz#13aea0255b7516d86de6838d4de2507a9f84e0df" + integrity sha512-ZtJhZni1t1tM0ZsAu5INFDMa588RmRkXby8DAOou/RXz3dzh7jTKm7+wEph6QE9NE5eTdVvVgqbwH6QPLR3nuQ== + dependencies: + "@babel/runtime" "^7.17.0" + "@fontsource/ibm-plex-mono" "^4.5.1" + "@fontsource/inter" "^4.5.1" + "@popperjs/core" "^2.4.4" + "@reduxjs/toolkit" "^1.6.1" + "@uniswap/redux-multicall" "^1.1.1" + "@uniswap/router-sdk" "^1.0.3" + "@uniswap/sdk-core" "^3.0.1" + "@uniswap/smart-order-router" "^2.5.26" + "@uniswap/token-lists" "^1.0.0-beta.30" + "@uniswap/v2-sdk" "^3.0.1" + "@uniswap/v3-sdk" "^3.8.2" + "@web3-react/core" "8.0.35-beta.0" + "@web3-react/eip1193" "8.0.26-beta.0" + "@web3-react/empty" "8.0.20-beta.0" + "@web3-react/metamask" "8.0.28-beta.0" + "@web3-react/network" "8.0.27-beta.0" + "@web3-react/types" "8.0.20-beta.0" + "@web3-react/url" "8.0.25-beta.0" + "@web3-react/walletconnect" "8.0.35-beta.0" + ajv "^6.12.3" + cids "^1.0.0" + ethers "^5.1.4" + immer "^9.0.6" + jotai "^1.3.7" + jsbi "^3.1.4" + make-plural "^7.0.0" + ms.macro "^2.0.0" + multicodec "^3.0.1" + multihashes "^4.0.2" + node-vibrant "^3.2.1-alpha.1" + polished "^3.3.2" + popper-max-size-modifier "^0.2.0" + qrcode "^1.5.0" + react-feather "^2.0.8" + react-popper "^2.2.3" + react-virtualized-auto-sizer "^1.0.2" + react-window "^1.8.5" + rebass "^4.0.7" + setimmediate "^1.0.5" + tiny-invariant "^1.2.0" + wcag-contrast "^3.0.0" + wicg-inert "^3.1.1" + optionalDependencies: + bufferutil "^4.0.6" + encoding "^0.1.13" + utf-8-validate "^5.0.8" + "@vanilla-extract/babel-plugin@^1.1.7": version "1.1.7" resolved "https://registry.yarnpkg.com/@vanilla-extract/babel-plugin/-/babel-plugin-1.1.7.tgz#b086875db3f66963223b7eb9e6a961796c041ef9" @@ -5084,7 +5137,7 @@ dependencies: "@web3-react/types" "^8.0.20-beta.0" -"@web3-react/core@^8.0.35-beta.0": +"@web3-react/core@8.0.35-beta.0", "@web3-react/core@^8.0.35-beta.0": version "8.0.35-beta.0" resolved "https://registry.yarnpkg.com/@web3-react/core/-/core-8.0.35-beta.0.tgz#8667483bdbc283fc8377d7f56faba1ec2fcdb095" integrity sha512-vkEL2Vafu57lTA9T/cd3DNkZoDZ3G/JDUgxgjHqKLQVF4bPucrkeErqIHutAJ4suIi4bLOD0dFPMpFs+Bq7RgA== @@ -5095,14 +5148,14 @@ optionalDependencies: "@ethersproject/providers" "^5" -"@web3-react/eip1193@^8.0.26-beta.0": +"@web3-react/eip1193@8.0.26-beta.0", "@web3-react/eip1193@^8.0.26-beta.0": version "8.0.26-beta.0" resolved "https://registry.yarnpkg.com/@web3-react/eip1193/-/eip1193-8.0.26-beta.0.tgz#2e36423bab637a1fbc57b36d4f0f38ac531fd541" integrity sha512-n/2ajjABcP8DktZfXxSHrxtPIxeSRJ9tsgfmd9XPEIW9FO7xLzLrF+nloTSghtZ8H+ZKKcswlKjYq4rbX/oqHg== dependencies: "@web3-react/types" "^8.0.20-beta.0" -"@web3-react/empty@^8.0.20-beta.0": +"@web3-react/empty@8.0.20-beta.0", "@web3-react/empty@^8.0.20-beta.0": version "8.0.20-beta.0" resolved "https://registry.yarnpkg.com/@web3-react/empty/-/empty-8.0.20-beta.0.tgz#f8e2a6414ba49c7da3937776c213eb4c8ff6e2c7" integrity sha512-hde1Wq7w03cal6hD0E+seVg6ZFMWKcaSZ0S5UwJi5CDxhF79oL8QuzpvTBslohRkWqzqlvl52wCSVaY+l2+F8Q== @@ -5118,7 +5171,7 @@ "@gnosis.pm/safe-apps-sdk" "^7.5.0" "@web3-react/types" "^8.0.20-beta.0" -"@web3-react/metamask@^8.0.28-beta.0": +"@web3-react/metamask@8.0.28-beta.0", "@web3-react/metamask@^8.0.28-beta.0": version "8.0.28-beta.0" resolved "https://registry.yarnpkg.com/@web3-react/metamask/-/metamask-8.0.28-beta.0.tgz#f7e9e0de446727a961745cbec75c8cbf6c961388" integrity sha512-IXuVyj6vhRAhfGQ/sN4qgET8EEdqX844pB4kCDG9kjPD3LLm5kq47ykBosgTr9YCUtdHAXN0UaUimD0TbLMRFg== @@ -5126,7 +5179,7 @@ "@metamask/detect-provider" "^1.2.0" "@web3-react/types" "^8.0.20-beta.0" -"@web3-react/network@^8.0.27-beta.0": +"@web3-react/network@8.0.27-beta.0", "@web3-react/network@^8.0.27-beta.0": version "8.0.27-beta.0" resolved "https://registry.yarnpkg.com/@web3-react/network/-/network-8.0.27-beta.0.tgz#7cb522b02efc9d0f877ac285f350810fbf322292" integrity sha512-kLHilUpLkDejx0C5Rr57puQSEVA+BQmT58xN6D/elphcZpVHAIkbh/MCYm0XrnLmqq0uOjw+jDhEYBBn80ncHQ== @@ -5143,14 +5196,14 @@ "@web3-react/types" "^8.0.20-beta.0" zustand "^4.0.0-rc.0" -"@web3-react/types@^8.0.20-beta.0": +"@web3-react/types@8.0.20-beta.0", "@web3-react/types@^8.0.20-beta.0": version "8.0.20-beta.0" resolved "https://registry.yarnpkg.com/@web3-react/types/-/types-8.0.20-beta.0.tgz#6b4509bef8c5c7eb866e49295880c865c20fb565" integrity sha512-qOZYMyUmsm3Um6t6Pg3OgnE86ufhWZpB5/VxsooB8cdpXc/C/f8KMyYSeM63GoKSMScOKwfqV6yODFL7g/Qc8g== dependencies: zustand "^4.0.0-rc.0" -"@web3-react/url@^8.0.25-beta.0": +"@web3-react/url@8.0.25-beta.0", "@web3-react/url@^8.0.25-beta.0": version "8.0.25-beta.0" resolved "https://registry.yarnpkg.com/@web3-react/url/-/url-8.0.25-beta.0.tgz#68e464d2e78b89496e50e9e4a28e91281c4d53d6" integrity sha512-cjFfAFjsWF5vqJ7TG79HT72jNNWlcS9bqbNK2jvu25zej62zMpPvy4iyYiV7zy2SLbAQTdsgvIMYAdxRbnzlWg== @@ -5158,7 +5211,7 @@ "@ethersproject/providers" "^5" "@web3-react/types" "^8.0.20-beta.0" -"@web3-react/walletconnect@^8.0.35-beta.0": +"@web3-react/walletconnect@8.0.35-beta.0", "@web3-react/walletconnect@^8.0.35-beta.0": version "8.0.35-beta.0" resolved "https://registry.yarnpkg.com/@web3-react/walletconnect/-/walletconnect-8.0.35-beta.0.tgz#49c6c77447d58bfb295f28fa87c8fbfeec95cff5" integrity sha512-fUrqcnwAr5oecZ6VUE/7+RSVURrohbAgWMLKYxd8Zo47AtTPzgJ1t5Lydh/EX4xJPLhfK1LqX5YgMwiys3DvhQ== @@ -6580,6 +6633,13 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" +bufferutil@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + dependencies: + node-gyp-build "^4.3.0" + builtin-modules@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" @@ -8860,11 +8920,23 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +encode-utf8@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -10925,7 +10997,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6: +iconv-lite@0.6, iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -13618,10 +13690,10 @@ node-gettext@^3.0.0: dependencies: lodash.get "^4.4.2" -node-gyp-build@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== node-int64@^0.4.0: version "0.4.0" @@ -14494,6 +14566,11 @@ pngjs@^3.0.0, pngjs@^3.3.0, pngjs@^3.3.3: resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + pnp-webpack-plugin@1.6.4: version "1.6.4" resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" @@ -15455,6 +15532,16 @@ qrcode@1.4.4: pngjs "^3.3.0" yargs "^13.2.4" +qrcode@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.1.tgz#0103f97317409f7bc91772ef30793a54cd59f0cb" + integrity sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg== + dependencies: + dijkstrajs "^1.0.1" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" + qs@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" @@ -18475,6 +18562,13 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +utf-8-validate@^5.0.8: + version "5.0.9" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" + integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== + dependencies: + node-gyp-build "^4.3.0" + utf8@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" @@ -18946,6 +19040,11 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" +wicg-inert@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.1.2.tgz#df10cf756b773a96fce107c3ddcd43be5d1e3944" + integrity sha512-Ba9tGNYxXwaqKEi9sJJvPMKuo063umUPsHN0JJsjrs2j8KDSzkWLMZGZ+MH1Jf1Fq4OWZ5HsESJID6nRza2ang== + widest-line@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz"